{"version":3,"file":"static/js/main.e3ee5ff2.js","mappings":";6CAAAA,EAAOC,QAAU,CAAE,QAAWC,EAAQ,MAAqCC,YAAY,mBCAvFH,EAAOC,QAAU,CAAE,QAAWC,EAAQ,KAAqCC,YAAY,mBCAvFH,EAAOC,QAAU,CAAE,QAAWC,EAAQ,MAA8CC,YAAY,mBCAhGH,EAAOC,QAAU,CAAE,QAAWC,EAAQ,MAA+CC,YAAY,mBCAjGH,EAAOC,QAAU,CAAE,QAAWC,EAAQ,MAA+CC,YAAY,mBCAjGH,EAAOC,QAAU,CAAE,QAAWC,EAAQ,MAA8BC,YAAY,mBCAhFH,EAAOC,QAAU,CAAE,QAAWC,EAAQ,MAAuCC,YAAY,8BCEzFF,EAAQE,YAAa,EAErBF,EAAAA,QAAkB,SAAUG,EAAUC,GACpC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,oCAExB,+BCNAL,EAAQE,YAAa,EAErB,IAIgCI,EAJ5BC,EAAkBN,EAAQ,MAE1BO,GAE4BF,EAFcC,IAEOD,EAAIJ,WAAaI,EAAM,CAAEG,QAASH,GAEvFN,EAAAA,QAAkB,WAChB,SAASU,EAAiBC,EAAQC,GAChC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,IACjD,EAAIV,EAAiBC,SAASE,EAAQI,EAAWI,IAAKJ,EACxD,CACF,CAEA,OAAO,SAAUX,EAAagB,EAAYC,GAGxC,OAFID,GAAYV,EAAiBN,EAAYkB,UAAWF,GACpDC,GAAaX,EAAiBN,EAAaiB,GACxCjB,CACT,CACF,CAhBkB,gCCRlBJ,EAAQE,YAAa,EAErB,IAIgCI,EAJ5BiB,EAAUtB,EAAQ,KAElBuB,GAE4BlB,EAFMiB,IAEejB,EAAIJ,WAAaI,EAAM,CAAEG,QAASH,GAEvFN,EAAAA,QAAkBwB,EAASf,SAAW,SAAUE,GAC9C,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CACzC,IAAIa,EAASD,UAAUZ,GAEvB,IAAK,IAAIM,KAAOO,EACVC,OAAOL,UAAUM,eAAeC,KAAKH,EAAQP,KAC/CR,EAAOQ,GAAOO,EAAOP,GAG3B,CAEA,OAAOR,CACT,+BCpBAX,EAAQE,YAAa,EAErB,IAEI4B,EAAmBC,EAFD9B,EAAQ,OAM1B+B,EAAWD,EAFD9B,EAAQ,OAMlBgC,EAAWF,EAFA9B,EAAQ,OAIvB,SAAS8B,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAEG,QAASH,EAAO,CAE9FN,EAAAA,QAAkB,SAAUkC,EAAUC,GACpC,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI9B,UAAU,4DAAoF,qBAAf8B,EAA6B,aAAc,EAAIF,EAASxB,SAAS0B,KAG5JD,EAASZ,WAAY,EAAIU,EAASvB,SAAS0B,GAAcA,EAAWb,UAAW,CAC7Ec,YAAa,CACXC,MAAOH,EACPlB,YAAY,EACZE,UAAU,EACVD,cAAc,KAGdkB,IAAYL,EAAiBrB,SAAU,EAAIqB,EAAiBrB,SAASyB,EAAUC,GAAcD,EAASI,UAAYH,EACxH,+BC9BAnC,EAAQE,YAAa,EAErB,IAIgCI,EAJ5BiC,EAAWtC,EAAQ,MAEnBgC,GAE4B3B,EAFMiC,IAEejC,EAAIJ,WAAaI,EAAM,CAAEG,QAASH,GAEvFN,EAAAA,QAAkB,SAAUwC,EAAMX,GAChC,IAAKW,EACH,MAAM,IAAIC,eAAe,6DAG3B,OAAOZ,GAAuF,YAA7D,qBAATA,EAAuB,aAAc,EAAII,EAASxB,SAASoB,KAAuC,oBAATA,EAA8BW,EAAPX,CAC1I,+BCdA7B,EAAQE,YAAa,EAErB,IAEIwC,EAAaX,EAFD9B,EAAQ,OAMpB0C,EAAWZ,EAFD9B,EAAQ,OAIlB2C,EAAsC,oBAArBD,EAASlC,SAAwD,kBAAvBiC,EAAWjC,QAAuB,SAAUH,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAmC,oBAArBqC,EAASlC,SAA0BH,EAAI8B,cAAgBO,EAASlC,SAAWH,IAAQqC,EAASlC,QAAQa,UAAY,gBAAkBhB,CAAK,EAEtT,SAASyB,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAEG,QAASH,EAAO,CAE9FN,EAAAA,QAA8C,oBAArB2C,EAASlC,SAA0D,WAAhCmC,EAAQF,EAAWjC,SAAwB,SAAUH,GAC/G,MAAsB,qBAARA,EAAsB,YAAcsC,EAAQtC,EAC5D,EAAI,SAAUA,GACZ,OAAOA,GAAmC,oBAArBqC,EAASlC,SAA0BH,EAAI8B,cAAgBO,EAASlC,SAAWH,IAAQqC,EAASlC,QAAQa,UAAY,SAA0B,qBAARhB,EAAsB,YAAcsC,EAAQtC,EACrM,kBCpBAL,EAAQ,MACRF,EAAOC,QAAU,EAAjBD,MAAAA,OAAAA,sBCDAE,EAAQ,MACR,IAAI4C,EAAU5C,EAAAA,MAAAA,OACdF,EAAOC,QAAU,SAAgB8C,EAAGC,GAClC,OAAOF,EAAQG,OAAOF,EAAGC,EAC3B,kBCJA9C,EAAQ,MACR,IAAI4C,EAAU5C,EAAAA,MAAAA,OACdF,EAAOC,QAAU,SAAwBiD,EAAI9B,EAAK+B,GAChD,OAAOL,EAAQM,eAAeF,EAAI9B,EAAK+B,EACzC,kBCJAjD,EAAQ,IACRF,EAAOC,QAAU,EAAjBD,MAAAA,OAAAA,+BCDAE,EAAQ,MACRF,EAAOC,QAAU,EAAjBD,MAAAA,OAAAA,+BCDAE,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRF,EAAOC,QAAU,EAAjBD,MAAAA,uBCJAE,EAAQ,MACRA,EAAQ,MACRF,EAAOC,QAAUC,EAAAA,MAAAA,EAAoC,sBCFrDF,EAAOC,QAAU,SAAUiD,GACzB,GAAiB,mBAANA,EAAkB,MAAM5C,UAAU4C,EAAK,uBAClD,OAAOA,CACT,YCHAlD,EAAOC,QAAU,WAAyB,kBCA1C,IAAIoD,EAAWnD,EAAQ,MACvBF,EAAOC,QAAU,SAAUiD,GACzB,IAAKG,EAASH,GAAK,MAAM5C,UAAU4C,EAAK,sBACxC,OAAOA,CACT,kBCFA,IAAII,EAAYpD,EAAQ,MACpBqD,EAAWrD,EAAQ,KACnBsD,EAAkBtD,EAAQ,MAC9BF,EAAOC,QAAU,SAAUwD,GACzB,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGItB,EAHAuB,EAAIP,EAAUI,GACd3C,EAASwC,EAASM,EAAE9C,QACpB+C,EAAQN,EAAgBI,EAAW7C,GAIvC,GAAI0C,GAAeE,GAAMA,GAAI,KAAO5C,EAAS+C,GAG3C,IAFAxB,EAAQuB,EAAEC,OAEGxB,EAAO,OAAO,OAEtB,KAAMvB,EAAS+C,EAAOA,IAAS,IAAIL,GAAeK,KAASD,IAC5DA,EAAEC,KAAWH,EAAI,OAAOF,GAAeK,GAAS,EACpD,OAAQL,IAAgB,CAC5B,CACF,YCtBA,IAAIM,EAAW,CAAC,EAAEA,SAElB/D,EAAOC,QAAU,SAAUiD,GACzB,OAAOa,EAASjC,KAAKoB,GAAIc,MAAM,GAAI,EACrC,YCJA,IAAIC,EAAOjE,EAAOC,QAAU,CAAEiE,QAAS,UACrB,iBAAPC,MAAiBA,IAAMF,mBCAlC,IAAIG,EAAYlE,EAAQ,MACxBF,EAAOC,QAAU,SAAUoE,EAAIC,EAAMvD,GAEnC,GADAqD,EAAUC,QACGE,IAATD,EAAoB,OAAOD,EAC/B,OAAQtD,GACN,KAAK,EAAG,OAAO,SAAUyD,GACvB,OAAOH,EAAGvC,KAAKwC,EAAME,EACvB,EACA,KAAK,EAAG,OAAO,SAAUA,EAAGC,GAC1B,OAAOJ,EAAGvC,KAAKwC,EAAME,EAAGC,EAC1B,EACA,KAAK,EAAG,OAAO,SAAUD,EAAGC,EAAGC,GAC7B,OAAOL,EAAGvC,KAAKwC,EAAME,EAAGC,EAAGC,EAC7B,EAEF,OAAO,WACL,OAAOL,EAAGM,MAAML,EAAM5C,UACxB,CACF,YClBA1B,EAAOC,QAAU,SAAUiD,GACzB,QAAUqB,GAANrB,EAAiB,MAAM5C,UAAU,yBAA2B4C,GAChE,OAAOA,CACT,kBCHAlD,EAAOC,SAAWC,EAAQ,KAARA,EAAoB,WACpC,OAA+E,GAAxE0B,OAAOwB,eAAe,CAAC,EAAG,IAAK,CAAEwB,IAAK,WAAc,OAAO,CAAG,IAAKJ,CAC5E,oBCHA,IAAInB,EAAWnD,EAAQ,MACnB2E,EAAW3E,EAAAA,IAAAA,SAEX4E,EAAKzB,EAASwB,IAAaxB,EAASwB,EAASE,eACjD/E,EAAOC,QAAU,SAAUiD,GACzB,OAAO4B,EAAKD,EAASE,cAAc7B,GAAM,CAAC,CAC5C,YCLAlD,EAAOC,QACL,gGACA+E,MAAM,qBCFR,IAAIC,EAAU/E,EAAQ,KAClBgF,EAAOhF,EAAQ,MACfiF,EAAMjF,EAAQ,MAClBF,EAAOC,QAAU,SAAUiD,GACzB,IAAIkC,EAASH,EAAQ/B,GACjBmC,EAAaH,EAAKI,EACtB,GAAID,EAKF,IAJA,IAGIjE,EAHAmE,EAAUF,EAAWnC,GACrBsC,EAASL,EAAIG,EACbxE,EAAI,EAEDyE,EAAQxE,OAASD,GAAO0E,EAAO1D,KAAKoB,EAAI9B,EAAMmE,EAAQzE,OAAOsE,EAAOK,KAAKrE,GAChF,OAAOgE,CACX,kBCdA,IAAIM,EAASxF,EAAQ,IACjB+D,EAAO/D,EAAQ,MACfyF,EAAMzF,EAAQ,MACd0F,EAAO1F,EAAQ,MACf2F,EAAM3F,EAAQ,KACd4F,EAAY,YAEZC,EAAU,SAAUC,EAAMC,EAAMtE,GAClC,IASIP,EAAK8E,EAAKC,EATVC,EAAYJ,EAAOD,EAAQM,EAC3BC,EAAYN,EAAOD,EAAQQ,EAC3BC,EAAYR,EAAOD,EAAQU,EAC3BC,EAAWV,EAAOD,EAAQhD,EAC1B4D,EAAUX,EAAOD,EAAQa,EACzBC,EAAUb,EAAOD,EAAQe,EACzB7G,EAAUqG,EAAYrC,EAAOA,EAAKgC,KAAUhC,EAAKgC,GAAQ,CAAC,GAC1Dc,EAAW9G,EAAQ6F,GACnBlF,EAAS0F,EAAYZ,EAASc,EAAYd,EAAOO,IAASP,EAAOO,IAAS,CAAC,GAAGH,GAGlF,IAAK1E,KADDkF,IAAW3E,EAASsE,GACZtE,GAEVuE,GAAOE,GAAaxF,QAA0B2D,IAAhB3D,EAAOQ,KAC1ByE,EAAI5F,EAASmB,KAExB+E,EAAMD,EAAMtF,EAAOQ,GAAOO,EAAOP,GAEjCnB,EAAQmB,GAAOkF,GAAmC,mBAAf1F,EAAOQ,GAAqBO,EAAOP,GAEpEuF,GAAWT,EAAMP,EAAIQ,EAAKT,GAE1BmB,GAAWjG,EAAOQ,IAAQ+E,EAAO,SAAUa,GAC3C,IAAIX,EAAI,SAAU7B,EAAGC,EAAGC,GACtB,GAAIuC,gBAAgBD,EAAG,CACrB,OAAQtF,UAAUX,QAChB,KAAK,EAAG,OAAO,IAAIiG,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAExC,GACrB,KAAK,EAAG,OAAO,IAAIwC,EAAExC,EAAGC,GACxB,OAAO,IAAIuC,EAAExC,EAAGC,EAAGC,EACvB,CAAE,OAAOsC,EAAErC,MAAMsC,KAAMvF,UACzB,EAEA,OADA2E,EAAEP,GAAakB,EAAElB,GACVO,CAET,CAbmC,CAahCF,GAAOO,GAA0B,mBAAPP,EAAoBR,EAAIuB,SAASpF,KAAMqE,GAAOA,EAEvEO,KACDzG,EAAQkH,UAAYlH,EAAQkH,QAAU,CAAC,IAAI/F,GAAO+E,EAE/CH,EAAOD,EAAQqB,GAAKL,IAAaA,EAAS3F,IAAMwE,EAAKmB,EAAU3F,EAAK+E,IAG9E,EAEAJ,EAAQM,EAAI,EACZN,EAAQQ,EAAI,EACZR,EAAQU,EAAI,EACZV,EAAQhD,EAAI,EACZgD,EAAQa,EAAI,GACZb,EAAQe,EAAI,GACZf,EAAQsB,EAAI,GACZtB,EAAQqB,EAAI,IACZpH,EAAOC,QAAU8F,YC7DjB/F,EAAOC,QAAU,SAAUqH,GACzB,IACE,QAASA,GACX,CAAE,MAAOC,GACP,OAAO,CACT,CACF,UCLA,IAAI7B,EAAS1F,EAAOC,QAA2B,oBAAVuH,QAAyBA,OAAOC,MAAQA,KACzED,OAAwB,oBAAR/E,MAAuBA,KAAKgF,MAAQA,KAAOhF,KAE3DyE,SAAS,cAATA,GACc,iBAAPQ,MAAiBA,IAAMhC,YCLlC,IAAI7D,EAAiB,CAAC,EAAEA,eACxB7B,EAAOC,QAAU,SAAUiD,EAAI9B,GAC7B,OAAOS,EAAeC,KAAKoB,EAAI9B,EACjC,kBCHA,IAAIuG,EAAKzH,EAAQ,MACb0H,EAAa1H,EAAQ,MACzBF,EAAOC,QAAUC,EAAQ,MAAoB,SAAU2H,EAAQzG,EAAKkB,GAClE,OAAOqF,EAAGrC,EAAEuC,EAAQzG,EAAKwG,EAAW,EAAGtF,GACzC,EAAI,SAAUuF,EAAQzG,EAAKkB,GAEzB,OADAuF,EAAOzG,GAAOkB,EACPuF,CACT,kBCPA,IAAIhD,EAAW3E,EAAAA,IAAAA,SACfF,EAAOC,QAAU4E,GAAYA,EAASiD,gCCDtC9H,EAAOC,SAAWC,EAAQ,QAAsBA,EAAQ,KAARA,EAAoB,WAClE,OAA4G,GAArG0B,OAAOwB,eAAelD,EAAQ,KAARA,CAAyB,OAAQ,IAAK,CAAE0E,IAAK,WAAc,OAAO,CAAG,IAAKJ,CACzG,oBCDA,IAAIuD,EAAM7H,EAAQ,MAElBF,EAAOC,QAAU2B,OAAO,KAAKoG,qBAAqB,GAAKpG,OAAS,SAAUsB,GACxE,MAAkB,UAAX6E,EAAI7E,GAAkBA,EAAG8B,MAAM,IAAMpD,OAAOsB,EACrD,kBCJA,IAAI6E,EAAM7H,EAAQ,MAClBF,EAAOC,QAAUgI,MAAMC,SAAW,SAAiBC,GACjD,MAAmB,SAAZJ,EAAII,EACb,YCJAnI,EAAOC,QAAU,SAAUiD,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,CACvD,+BCDA,IAAID,EAAS/C,EAAQ,KACjBc,EAAad,EAAQ,MACrBkI,EAAiBlI,EAAQ,MACzBmI,EAAoB,CAAC,EAGzBnI,EAAQ,KAARA,CAAmBmI,EAAmBnI,EAAQ,KAARA,CAAkB,aAAa,WAAc,OAAO+G,IAAM,IAEhGjH,EAAOC,QAAU,SAAUI,EAAaiI,EAAMC,GAC5ClI,EAAYkB,UAAY0B,EAAOoF,EAAmB,CAAEE,KAAMvH,EAAW,EAAGuH,KACxEH,EAAe/H,EAAaiI,EAAO,YACrC,+BCXA,IAAIE,EAAUtI,EAAQ,MAClB6F,EAAU7F,EAAQ,MAClBuI,EAAWvI,EAAQ,MACnB0F,EAAO1F,EAAQ,MACfwI,EAAYxI,EAAQ,MACpByI,EAAczI,EAAQ,MACtBkI,EAAiBlI,EAAQ,MACzB0I,EAAiB1I,EAAQ,KACzB2I,EAAW3I,EAAQ,KAARA,CAAkB,YAC7B4I,IAAU,GAAGC,MAAQ,QAAU,GAAGA,QAElCC,EAAO,OACPC,EAAS,SAETC,EAAa,WAAc,OAAOjC,IAAM,EAE5CjH,EAAOC,QAAU,SAAUkJ,EAAMb,EAAMjI,EAAakI,EAAMa,EAASC,EAAQC,GACzEX,EAAYtI,EAAaiI,EAAMC,GAC/B,IAeIgB,EAASnI,EAAKiH,EAfdmB,EAAY,SAAUC,GACxB,IAAKX,GAASW,KAAQC,EAAO,OAAOA,EAAMD,GAC1C,OAAQA,GACN,KAAKT,EACL,KAAKC,EAAQ,OAAO,WAAoB,OAAO,IAAI5I,EAAY4G,KAAMwC,EAAO,EAC5E,OAAO,WAAqB,OAAO,IAAIpJ,EAAY4G,KAAMwC,EAAO,CACpE,EACIE,EAAMrB,EAAO,YACbsB,EAAaR,GAAWH,EACxBY,GAAa,EACbH,EAAQP,EAAK5H,UACbuI,EAAUJ,EAAMb,IAAaa,EAnBjB,eAmBuCN,GAAWM,EAAMN,GACpEW,EAAWD,GAAWN,EAAUJ,GAChCY,EAAWZ,EAAWQ,EAAwBJ,EAAU,WAArBO,OAAkCxF,EACrE0F,EAAqB,SAAR3B,GAAkBoB,EAAMQ,SAAqBJ,EAwB9D,GArBIG,IACF5B,EAAoBO,EAAeqB,EAAWnI,KAAK,IAAIqH,OAC7BvH,OAAOL,WAAa8G,EAAkBE,OAE9DH,EAAeC,EAAmBsB,GAAK,GAElCnB,GAAiD,mBAA/BH,EAAkBQ,IAAyBjD,EAAKyC,EAAmBQ,EAAUK,IAIpGU,GAAcE,GAAWA,EAAQ7D,OAASgD,IAC5CY,GAAa,EACbE,EAAW,WAAoB,OAAOD,EAAQhI,KAAKmF,KAAO,GAGtDuB,IAAWc,IAAYR,IAASe,GAAeH,EAAMb,IACzDjD,EAAK8D,EAAOb,EAAUkB,GAGxBrB,EAAUJ,GAAQyB,EAClBrB,EAAUiB,GAAOT,EACbE,EAMF,GALAG,EAAU,CACRY,OAAQP,EAAaG,EAAWP,EAAUP,GAC1CF,KAAMM,EAASU,EAAWP,EAAUR,GACpCkB,QAASF,GAEPV,EAAQ,IAAKlI,KAAOmI,EAChBnI,KAAOsI,GAAQjB,EAASiB,EAAOtI,EAAKmI,EAAQnI,SAC7C2E,EAAQA,EAAQhD,EAAIgD,EAAQM,GAAKyC,GAASe,GAAavB,EAAMiB,GAEtE,OAAOA,CACT,YCpEAvJ,EAAOC,QAAU,SAAUmK,EAAM9H,GAC/B,MAAO,CAAEA,MAAOA,EAAO8H,OAAQA,EACjC,YCFApK,EAAOC,QAAU,CAAC,YCAlBD,EAAOC,SAAU,kBCAjB,IAAIoK,EAAOnK,EAAQ,KAARA,CAAkB,QACzBmD,EAAWnD,EAAQ,MACnB2F,EAAM3F,EAAQ,KACdoK,EAAUpK,EAAAA,MAAAA,EACVqK,EAAK,EACLC,EAAe5I,OAAO4I,cAAgB,WACxC,OAAO,CACT,EACIC,GAAUvK,EAAQ,KAARA,EAAoB,WAChC,OAAOsK,EAAa5I,OAAO8I,kBAAkB,CAAC,GAChD,IACIC,EAAU,SAAUzH,GACtBoH,EAAQpH,EAAImH,EAAM,CAAE/H,MAAO,CACzBxB,EAAG,OAAQyJ,EACXK,EAAG,CAAC,IAER,EA8BIC,EAAO7K,EAAOC,QAAU,CAC1B6K,IAAKT,EACLU,MAAM,EACNC,QAhCY,SAAU9H,EAAID,GAE1B,IAAKI,EAASH,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAK2C,EAAI3C,EAAImH,GAAO,CAElB,IAAKG,EAAatH,GAAK,MAAO,IAE9B,IAAKD,EAAQ,MAAO,IAEpB0H,EAAQzH,EAEV,CAAE,OAAOA,EAAGmH,GAAMvJ,CACpB,EAqBEmK,QApBY,SAAU/H,EAAID,GAC1B,IAAK4C,EAAI3C,EAAImH,GAAO,CAElB,IAAKG,EAAatH,GAAK,OAAO,EAE9B,IAAKD,EAAQ,OAAO,EAEpB0H,EAAQzH,EAEV,CAAE,OAAOA,EAAGmH,GAAMO,CACpB,EAWEM,SATa,SAAUhI,GAEvB,OADIuH,GAAUI,EAAKE,MAAQP,EAAatH,KAAQ2C,EAAI3C,EAAImH,IAAOM,EAAQzH,GAChEA,CACT,gCC3CA,IAAIiI,EAAcjL,EAAQ,MACtB+E,EAAU/E,EAAQ,KAClBgF,EAAOhF,EAAQ,MACfiF,EAAMjF,EAAQ,MACdkL,EAAWlL,EAAQ,KACnBmL,EAAUnL,EAAQ,MAClBoL,EAAU1J,OAAO2J,OAGrBvL,EAAOC,SAAWqL,GAAWpL,EAAQ,KAARA,EAAoB,WAC/C,IAAIsL,EAAI,CAAC,EACL5E,EAAI,CAAC,EAELH,EAAIgF,SACJC,EAAI,uBAGR,OAFAF,EAAE/E,GAAK,EACPiF,EAAE1G,MAAM,IAAI2G,SAAQ,SAAUC,GAAKhF,EAAEgF,GAAKA,CAAG,IACjB,GAArBN,EAAQ,CAAC,EAAGE,GAAG/E,IAAW7E,OAAOmH,KAAKuC,EAAQ,CAAC,EAAG1E,IAAIiF,KAAK,KAAOH,CAC3E,IAAK,SAAgB9K,EAAQe,GAM3B,IALA,IAAImK,EAAIV,EAASxK,GACbmL,EAAOrK,UAAUX,OACjB+C,EAAQ,EACRuB,EAAaH,EAAKI,EAClBE,EAASL,EAAIG,EACVyG,EAAOjI,GAMZ,IALA,IAII1C,EAJAqF,EAAI4E,EAAQ3J,UAAUoC,MACtBiF,EAAO1D,EAAaJ,EAAQwB,GAAGuF,OAAO3G,EAAWoB,IAAMxB,EAAQwB,GAC/D1F,EAASgI,EAAKhI,OACdkL,EAAI,EAEDlL,EAASkL,GACd7K,EAAM2H,EAAKkD,KACNd,IAAe3F,EAAO1D,KAAK2E,EAAGrF,KAAM0K,EAAE1K,GAAOqF,EAAErF,IAEtD,OAAO0K,CACX,EAAIR,iBCpCJ,IAAIY,EAAWhM,EAAQ,MACnBiM,EAAMjM,EAAQ,MACdkM,EAAclM,EAAQ,MACtBmM,EAAWnM,EAAQ,IAARA,CAAyB,YACpCoM,EAAQ,WAAyB,EACjCxG,EAAY,YAGZyG,EAAa,WAEf,IAIIC,EAJAC,EAASvM,EAAQ,KAARA,CAAyB,UAClCY,EAAIsL,EAAYrL,OAcpB,IAVA0L,EAAOC,MAAMC,QAAU,OACvBzM,EAAAA,MAAAA,YAA+BuM,GAC/BA,EAAOG,IAAM,eAGbJ,EAAiBC,EAAOI,cAAchI,UACvBiI,OACfN,EAAeO,MAAMC,uCACrBR,EAAeS,QACfV,EAAaC,EAAenG,EACrBvF,YAAYyL,EAAWzG,GAAWsG,EAAYtL,IACrD,OAAOyL,GACT,EAEAvM,EAAOC,QAAU2B,OAAOqB,QAAU,SAAgBY,EAAGqJ,GACnD,IAAI9H,EAQJ,OAPU,OAANvB,GACFyI,EAAMxG,GAAaoG,EAASrI,GAC5BuB,EAAS,IAAIkH,EACbA,EAAMxG,GAAa,KAEnBV,EAAOiH,GAAYxI,GACduB,EAASmH,SACMhI,IAAf2I,EAA2B9H,EAAS+G,EAAI/G,EAAQ8H,EACzD,kBCxCA,IAAIhB,EAAWhM,EAAQ,MACnBiN,EAAiBjN,EAAQ,MACzBkN,EAAclN,EAAQ,MACtByH,EAAK/F,OAAOwB,eAEhBnD,EAAQqF,EAAIpF,EAAQ,MAAoB0B,OAAOwB,eAAiB,SAAwBS,EAAGd,EAAGsK,GAI5F,GAHAnB,EAASrI,GACTd,EAAIqK,EAAYrK,GAAG,GACnBmJ,EAASmB,GACLF,EAAgB,IAClB,OAAOxF,EAAG9D,EAAGd,EAAGsK,EAClB,CAAE,MAAO9F,GAAgB,CACzB,GAAI,QAAS8F,GAAc,QAASA,EAAY,MAAM/M,UAAU,4BAEhE,MADI,UAAW+M,IAAYxJ,EAAEd,GAAKsK,EAAW/K,OACtCuB,CACT,kBCfA,IAAI8D,EAAKzH,EAAQ,MACbgM,EAAWhM,EAAQ,MACnB+E,EAAU/E,EAAQ,KAEtBF,EAAOC,QAAUC,EAAQ,MAAoB0B,OAAOjB,iBAAmB,SAA0BkD,EAAGqJ,GAClGhB,EAASrI,GAKT,IAJA,IAGId,EAHAgG,EAAO9D,EAAQiI,GACfnM,EAASgI,EAAKhI,OACdD,EAAI,EAEDC,EAASD,GAAG6G,EAAGrC,EAAEzB,EAAGd,EAAIgG,EAAKjI,KAAMoM,EAAWnK,IACrD,OAAOc,CACT,kBCZA,IAAIsB,EAAMjF,EAAQ,MACd0H,EAAa1H,EAAQ,MACrBoD,EAAYpD,EAAQ,MACpBkN,EAAclN,EAAQ,MACtB2F,EAAM3F,EAAQ,KACdiN,EAAiBjN,EAAQ,MACzBoN,EAAO1L,OAAO2L,yBAElBtN,EAAQqF,EAAIpF,EAAQ,MAAoBoN,EAAO,SAAkCzJ,EAAGd,GAGlF,GAFAc,EAAIP,EAAUO,GACdd,EAAIqK,EAAYrK,GAAG,GACfoK,EAAgB,IAClB,OAAOG,EAAKzJ,EAAGd,EACjB,CAAE,MAAOwE,GAAgB,CACzB,GAAI1B,EAAIhC,EAAGd,GAAI,OAAO6E,GAAYzC,EAAIG,EAAExD,KAAK+B,EAAGd,GAAIc,EAAEd,GACxD,kBCdA,IAAIO,EAAYpD,EAAQ,MACpBsN,EAAOtN,EAAAA,MAAAA,EACP6D,EAAW,CAAC,EAAEA,SAEd0J,EAA+B,iBAAVjG,QAAsBA,QAAU5F,OAAO8L,oBAC5D9L,OAAO8L,oBAAoBlG,QAAU,GAUzCxH,EAAOC,QAAQqF,EAAI,SAA6BpC,GAC9C,OAAOuK,GAAoC,mBAArB1J,EAASjC,KAAKoB,GATjB,SAAUA,GAC7B,IACE,OAAOsK,EAAKtK,EACd,CAAE,MAAOqE,GACP,OAAOkG,EAAYzJ,OACrB,CACF,CAGiE2J,CAAezK,GAAMsK,EAAKlK,EAAUJ,GACrG,kBCjBA,IAAI0K,EAAQ1N,EAAQ,MAChB2N,EAAa3N,EAAAA,MAAAA,OAAmC,SAAU,aAE9DD,EAAQqF,EAAI1D,OAAO8L,qBAAuB,SAA6B7J,GACrE,OAAO+J,EAAM/J,EAAGgK,EAClB,gBCNA5N,EAAQqF,EAAI1D,OAAOkM,qCCCnB,IAAIjI,EAAM3F,EAAQ,KACdkL,EAAWlL,EAAQ,KACnBmM,EAAWnM,EAAQ,IAARA,CAAyB,YACpC6N,EAAcnM,OAAOL,UAEzBvB,EAAOC,QAAU2B,OAAOgH,gBAAkB,SAAU/E,GAElD,OADAA,EAAIuH,EAASvH,GACTgC,EAAIhC,EAAGwI,GAAkBxI,EAAEwI,GACH,mBAAjBxI,EAAExB,aAA6BwB,aAAaA,EAAExB,YAChDwB,EAAExB,YAAYd,UACdsC,aAAajC,OAASmM,EAAc,IAC/C,kBCZA,IAAIlI,EAAM3F,EAAQ,KACdoD,EAAYpD,EAAQ,MACpB8N,EAAe9N,EAAQ,KAARA,EAA6B,GAC5CmM,EAAWnM,EAAQ,IAARA,CAAyB,YAExCF,EAAOC,QAAU,SAAU4H,EAAQoG,GACjC,IAGI7M,EAHAyC,EAAIP,EAAUuE,GACd/G,EAAI,EACJsE,EAAS,GAEb,IAAKhE,KAAOyC,EAAOzC,GAAOiL,GAAUxG,EAAIhC,EAAGzC,IAAQgE,EAAOK,KAAKrE,GAE/D,KAAO6M,EAAMlN,OAASD,GAAO+E,EAAIhC,EAAGzC,EAAM6M,EAAMnN,SAC7CkN,EAAa5I,EAAQhE,IAAQgE,EAAOK,KAAKrE,IAE5C,OAAOgE,CACT,iBCfA,IAAIwI,EAAQ1N,EAAQ,MAChBkM,EAAclM,EAAQ,MAE1BF,EAAOC,QAAU2B,OAAOmH,MAAQ,SAAclF,GAC5C,OAAO+J,EAAM/J,EAAGuI,EAClB,gBCNAnM,EAAQqF,EAAI,CAAC,EAAE0C,qCCCf,IAAIjC,EAAU7F,EAAQ,MAClB+D,EAAO/D,EAAQ,MACfgO,EAAQhO,EAAQ,MACpBF,EAAOC,QAAU,SAAU6K,EAAKxD,GAC9B,IAAIjD,GAAMJ,EAAKrC,QAAU,CAAC,GAAGkJ,IAAQlJ,OAAOkJ,GACxCqD,EAAM,CAAC,EACXA,EAAIrD,GAAOxD,EAAKjD,GAChB0B,EAAQA,EAAQU,EAAIV,EAAQM,EAAI6H,GAAM,WAAc7J,EAAG,EAAI,IAAI,SAAU8J,EAC3E,YCTAnO,EAAOC,QAAU,SAAUmO,EAAQ9L,GACjC,MAAO,CACLrB,aAAuB,EAATmN,GACdlN,eAAyB,EAATkN,GAChBjN,WAAqB,EAATiN,GACZ9L,MAAOA,EAEX,kBCPAtC,EAAOC,QAAU,EAAjBD,sBCEA,IAAIqD,EAAWnD,EAAQ,MACnBgM,EAAWhM,EAAQ,MACnBmO,EAAQ,SAAUxK,EAAG6F,GAEvB,GADAwC,EAASrI,IACJR,EAASqG,IAAoB,OAAVA,EAAgB,MAAMpJ,UAAUoJ,EAAQ,4BAClE,EACA1J,EAAOC,QAAU,CACfqO,IAAK1M,OAAO2M,iBAAmB,aAAe,CAAC,EAC7C,SAAUC,EAAMC,EAAOH,GACrB,KACEA,EAAMpO,EAAQ,KAARA,CAAkBgH,SAASpF,KAAM5B,EAAAA,MAAAA,EAA4B0B,OAAOL,UAAW,aAAa+M,IAAK,IACnGE,EAAM,IACVC,IAAUD,aAAgBvG,MAC5B,CAAE,MAAOV,GAAKkH,GAAQ,CAAM,CAC5B,OAAO,SAAwB5K,EAAG6F,GAIhC,OAHA2E,EAAMxK,EAAG6F,GACL+E,EAAO5K,EAAEtB,UAAYmH,EACpB4E,EAAIzK,EAAG6F,GACL7F,CACT,CACF,CAZA,CAYE,CAAC,GAAG,QAASU,GACjB8J,MAAOA,mBCvBT,IAAIK,EAAMxO,EAAAA,MAAAA,EACN2F,EAAM3F,EAAQ,KACdyJ,EAAMzJ,EAAQ,KAARA,CAAkB,eAE5BF,EAAOC,QAAU,SAAUiD,EAAIyL,EAAKC,GAC9B1L,IAAO2C,EAAI3C,EAAK0L,EAAO1L,EAAKA,EAAG3B,UAAWoI,IAAM+E,EAAIxL,EAAIyG,EAAK,CAAEzI,cAAc,EAAMoB,MAAOqM,GAChG,iBCNA,IAAIE,EAAS3O,EAAQ,KAARA,CAAqB,QAC9B4O,EAAM5O,EAAQ,MAClBF,EAAOC,QAAU,SAAUmB,GACzB,OAAOyN,EAAOzN,KAASyN,EAAOzN,GAAO0N,EAAI1N,GAC3C,kBCJA,IAAI6C,EAAO/D,EAAQ,MACfwF,EAASxF,EAAQ,IACjB6O,EAAS,qBACTC,EAAQtJ,EAAOqJ,KAAYrJ,EAAOqJ,GAAU,CAAC,IAEhD/O,EAAOC,QAAU,SAAUmB,EAAKkB,GAC/B,OAAO0M,EAAM5N,KAAS4N,EAAM5N,QAAiBmD,IAAVjC,EAAsBA,EAAQ,CAAC,EACpE,GAAG,WAAY,IAAImD,KAAK,CACtBvB,QAASD,EAAKC,QACd+K,KAAM/O,EAAQ,MAAgB,OAAS,SACvCgP,UAAW,2DCVb,IAAIC,EAAYjP,EAAQ,MACpBkP,EAAUlP,EAAQ,MAGtBF,EAAOC,QAAU,SAAUoP,GACzB,OAAO,SAAU/K,EAAMgL,GACrB,IAGI9K,EAAGC,EAHH8K,EAAIC,OAAOJ,EAAQ9K,IACnBxD,EAAIqO,EAAUG,GACdG,EAAIF,EAAExO,OAEV,OAAID,EAAI,GAAKA,GAAK2O,EAAUJ,EAAY,QAAK9K,GAC7CC,EAAI+K,EAAEG,WAAW5O,IACN,OAAU0D,EAAI,OAAU1D,EAAI,IAAM2O,IAAMhL,EAAI8K,EAAEG,WAAW5O,EAAI,IAAM,OAAU2D,EAAI,MACxF4K,EAAYE,EAAEI,OAAO7O,GAAK0D,EAC1B6K,EAAYE,EAAEvL,MAAMlD,EAAGA,EAAI,GAA2B2D,EAAI,OAAzBD,EAAI,OAAU,IAAqB,KAC1E,CACF,kBChBA,IAAI2K,EAAYjP,EAAQ,MACpB0P,EAAMnI,KAAKmI,IACXC,EAAMpI,KAAKoI,IACf7P,EAAOC,QAAU,SAAU6D,EAAO/C,GAEhC,OADA+C,EAAQqL,EAAUrL,IACH,EAAI8L,EAAI9L,EAAQ/C,EAAQ,GAAK8O,EAAI/L,EAAO/C,EACzD,YCLA,IAAI+O,EAAOrI,KAAKqI,KACZC,EAAQtI,KAAKsI,MACjB/P,EAAOC,QAAU,SAAUiD,GACzB,OAAO8M,MAAM9M,GAAMA,GAAM,GAAKA,EAAK,EAAI6M,EAAQD,GAAM5M,EACvD,kBCJA,IAAImI,EAAUnL,EAAQ,MAClBkP,EAAUlP,EAAQ,MACtBF,EAAOC,QAAU,SAAUiD,GACzB,OAAOmI,EAAQ+D,EAAQlM,GACzB,iBCJA,IAAIiM,EAAYjP,EAAQ,MACpB2P,EAAMpI,KAAKoI,IACf7P,EAAOC,QAAU,SAAUiD,GACzB,OAAOA,EAAK,EAAI2M,EAAIV,EAAUjM,GAAK,kBAAoB,CACzD,iBCJA,IAAIkM,EAAUlP,EAAQ,MACtBF,EAAOC,QAAU,SAAUiD,GACzB,OAAOtB,OAAOwN,EAAQlM,GACxB,kBCHA,IAAIG,EAAWnD,EAAQ,MAGvBF,EAAOC,QAAU,SAAUiD,EAAIuD,GAC7B,IAAKpD,EAASH,GAAK,OAAOA,EAC1B,IAAImB,EAAI4L,EACR,GAAIxJ,GAAkC,mBAArBpC,EAAKnB,EAAGa,YAA4BV,EAAS4M,EAAM5L,EAAGvC,KAAKoB,IAAM,OAAO+M,EACzF,GAAgC,mBAApB5L,EAAKnB,EAAGgN,WAA2B7M,EAAS4M,EAAM5L,EAAGvC,KAAKoB,IAAM,OAAO+M,EACnF,IAAKxJ,GAAkC,mBAArBpC,EAAKnB,EAAGa,YAA4BV,EAAS4M,EAAM5L,EAAGvC,KAAKoB,IAAM,OAAO+M,EAC1F,MAAM3P,UAAU,0CAClB,YCXA,IAAIiK,EAAK,EACL4F,EAAK1I,KAAK2I,SACdpQ,EAAOC,QAAU,SAAUmB,GACzB,MAAO,UAAU4K,YAAezH,IAARnD,EAAoB,GAAKA,EAAK,QAASmJ,EAAK4F,GAAIpM,SAAS,IACnF,kBCJA,IAAI2B,EAASxF,EAAQ,IACjB+D,EAAO/D,EAAQ,MACfsI,EAAUtI,EAAQ,MAClBmQ,EAASnQ,EAAQ,MACjBkD,EAAiBlD,EAAAA,MAAAA,EACrBF,EAAOC,QAAU,SAAUgG,GACzB,IAAIqK,EAAUrM,EAAKwH,SAAWxH,EAAKwH,OAASjD,EAAU,CAAC,EAAI9C,EAAO+F,QAAU,CAAC,GACvD,KAAlBxF,EAAK0J,OAAO,IAAe1J,KAAQqK,GAAUlN,EAAekN,EAASrK,EAAM,CAAE3D,MAAO+N,EAAO/K,EAAEW,IACnG,kBCRAhG,EAAQqF,EAAI,EAAZrF,sBCAA,IAAI+O,EAAQ9O,EAAQ,KAARA,CAAqB,OAC7B4O,EAAM5O,EAAQ,MACduL,EAASvL,EAAAA,IAAAA,OACTqQ,EAA8B,mBAAV9E,GAETzL,EAAOC,QAAU,SAAUgG,GACxC,OAAO+I,EAAM/I,KAAU+I,EAAM/I,GAC3BsK,GAAc9E,EAAOxF,KAAUsK,EAAa9E,EAASqD,GAAK,UAAY7I,GAC1E,GAES+I,MAAQA,+BCTjB,IAAIwB,EAAmBtQ,EAAQ,MAC3BuQ,EAAOvQ,EAAQ,MACfwI,EAAYxI,EAAQ,MACpBoD,EAAYpD,EAAQ,MAMxBF,EAAOC,QAAUC,EAAQ,KAARA,CAA0B+H,MAAO,SAAS,SAAUyI,EAAUjH,GAC7ExC,KAAK0J,GAAKrN,EAAUoN,GACpBzJ,KAAK2J,GAAK,EACV3J,KAAK4J,GAAKpH,CAEZ,IAAG,WACD,IAAI5F,EAAIoD,KAAK0J,GACTlH,EAAOxC,KAAK4J,GACZ/M,EAAQmD,KAAK2J,KACjB,OAAK/M,GAAKC,GAASD,EAAE9C,QACnBkG,KAAK0J,QAAKpM,EACHkM,EAAK,IAEaA,EAAK,EAApB,QAARhH,EAA+B3F,EACvB,UAAR2F,EAAiC5F,EAAEC,GACxB,CAACA,EAAOD,EAAEC,IAC3B,GAAG,UAGH4E,EAAUoI,UAAYpI,EAAUT,MAEhCuI,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,2BChCjB,IAAIzK,EAAU7F,EAAQ,MAEtB6F,EAAQA,EAAQU,EAAIV,EAAQM,EAAG,SAAU,CAAEkF,OAAQrL,EAAQ,wBCH3D,IAAI6F,EAAU7F,EAAQ,MAEtB6F,EAAQA,EAAQU,EAAG,SAAU,CAAExD,OAAQ/C,EAAQ,uBCF/C,IAAI6F,EAAU7F,EAAQ,MAEtB6F,EAAQA,EAAQU,EAAIV,EAAQM,GAAKnG,EAAQ,MAAmB,SAAU,CAAEkD,eAAgBlD,EAAAA,MAAAA,kBCDxF,IAAIkL,EAAWlL,EAAQ,KACnB6Q,EAAkB7Q,EAAQ,KAE9BA,EAAQ,KAARA,CAAyB,kBAAkB,WACzC,OAAO,SAAwBgD,GAC7B,OAAO6N,EAAgB3F,EAASlI,GAClC,CACF,oBCPA,IAAI6C,EAAU7F,EAAQ,MACtB6F,EAAQA,EAAQU,EAAG,SAAU,CAAE8H,eAAgBrO,EAAAA,MAAAA,+CCD/C,IAAI8Q,EAAM9Q,EAAQ,IAARA,EAAwB,GAGlCA,EAAQ,KAARA,CAA0BsP,OAAQ,UAAU,SAAUkB,GACpDzJ,KAAK0J,GAAKnB,OAAOkB,GACjBzJ,KAAK2J,GAAK,CAEZ,IAAG,WACD,IAEIK,EAFApN,EAAIoD,KAAK0J,GACT7M,EAAQmD,KAAK2J,GAEjB,OAAI9M,GAASD,EAAE9C,OAAe,CAAEuB,WAAOiC,EAAW6F,MAAM,IACxD6G,EAAQD,EAAInN,EAAGC,GACfmD,KAAK2J,IAAMK,EAAMlQ,OACV,CAAEuB,MAAO2O,EAAO7G,MAAM,GAC/B,iCCdA,IAAI1E,EAASxF,EAAQ,IACjB2F,EAAM3F,EAAQ,KACdiL,EAAcjL,EAAQ,MACtB6F,EAAU7F,EAAQ,MAClBuI,EAAWvI,EAAQ,MACnBmK,EAAOnK,EAAAA,MAAAA,IACPgR,EAAShR,EAAQ,MACjB2O,EAAS3O,EAAQ,MACjBkI,EAAiBlI,EAAQ,MACzB4O,EAAM5O,EAAQ,MACdiR,EAAMjR,EAAQ,MACdmQ,EAASnQ,EAAQ,MACjBkR,EAAYlR,EAAQ,MACpBmR,EAAWnR,EAAQ,MACnBgI,EAAUhI,EAAQ,MAClBgM,EAAWhM,EAAQ,MACnBmD,EAAWnD,EAAQ,MACnBkL,EAAWlL,EAAQ,KACnBoD,EAAYpD,EAAQ,MACpBkN,EAAclN,EAAQ,MACtB0H,EAAa1H,EAAQ,MACrBoR,EAAUpR,EAAQ,KAClBqR,EAAUrR,EAAQ,MAClBsR,EAAQtR,EAAQ,MAChBuR,EAAQvR,EAAQ,MAChBwR,EAAMxR,EAAQ,MACd0N,EAAQ1N,EAAQ,KAChBoN,EAAOkE,EAAMlM,EACbqC,EAAK+J,EAAIpM,EACTkI,EAAO+D,EAAQjM,EACfgL,EAAU5K,EAAO+F,OACjBkG,EAAQjM,EAAOkM,KACfC,EAAaF,GAASA,EAAMG,UAC5BhM,EAAY,YACZiM,EAASZ,EAAI,WACba,EAAeb,EAAI,eACnB3L,EAAS,CAAC,EAAEwC,qBACZiK,EAAiBpD,EAAO,mBACxBqD,EAAarD,EAAO,WACpBsD,EAAYtD,EAAO,cACnBd,EAAcnM,OAAOkE,GACrBsM,EAA+B,mBAAX9B,KAA2BmB,EAAMnM,EACrD+M,EAAU3M,EAAO2M,QAEjBC,GAAUD,IAAYA,EAAQvM,KAAeuM,EAAQvM,GAAWyM,UAGhEC,EAAgBrH,GAAe+F,GAAO,WACxC,OAES,GAFFI,EAAQ3J,EAAG,CAAC,EAAG,IAAK,CACzB/C,IAAK,WAAc,OAAO+C,EAAGV,KAAM,IAAK,CAAE3E,MAAO,IAAKkC,CAAG,KACvDA,CACN,IAAK,SAAUtB,EAAI9B,EAAK4B,GACtB,IAAIyP,EAAYnF,EAAKS,EAAa3M,GAC9BqR,UAAkB1E,EAAY3M,GAClCuG,EAAGzE,EAAI9B,EAAK4B,GACRyP,GAAavP,IAAO6K,GAAapG,EAAGoG,EAAa3M,EAAKqR,EAC5D,EAAI9K,EAEA+K,EAAO,SAAU/D,GACnB,IAAIgE,EAAMT,EAAWvD,GAAO2C,EAAQhB,EAAQxK,IAE5C,OADA6M,EAAI9B,GAAKlC,EACFgE,CACT,EAEIC,EAAWR,GAAyC,iBAApB9B,EAAQuC,SAAuB,SAAU3P,GAC3E,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,OAAOA,aAAcoN,CACvB,EAEIwC,EAAkB,SAAwB5P,EAAI9B,EAAK4B,GAKrD,OAJIE,IAAO6K,GAAa+E,EAAgBX,EAAW/Q,EAAK4B,GACxDkJ,EAAShJ,GACT9B,EAAMgM,EAAYhM,GAAK,GACvB8K,EAASlJ,GACL6C,EAAIqM,EAAY9Q,IACb4B,EAAE/B,YAID4E,EAAI3C,EAAI6O,IAAW7O,EAAG6O,GAAQ3Q,KAAM8B,EAAG6O,GAAQ3Q,IAAO,GAC1D4B,EAAIsO,EAAQtO,EAAG,CAAE/B,WAAY2G,EAAW,GAAG,OAJtC/B,EAAI3C,EAAI6O,IAASpK,EAAGzE,EAAI6O,EAAQnK,EAAW,EAAG,CAAC,IACpD1E,EAAG6O,GAAQ3Q,IAAO,GAIXoR,EAActP,EAAI9B,EAAK4B,IACzB2E,EAAGzE,EAAI9B,EAAK4B,EACvB,EACI+P,EAAoB,SAA0B7P,EAAIH,GACpDmJ,EAAShJ,GAKT,IAJA,IAGI9B,EAHA2H,EAAOsI,EAAStO,EAAIO,EAAUP,IAC9BjC,EAAI,EACJ2O,EAAI1G,EAAKhI,OAEN0O,EAAI3O,GAAGgS,EAAgB5P,EAAI9B,EAAM2H,EAAKjI,KAAMiC,EAAE3B,IACrD,OAAO8B,CACT,EAII8P,EAAwB,SAA8B5R,GACxD,IAAI6R,EAAIzN,EAAO1D,KAAKmF,KAAM7F,EAAMgM,EAAYhM,GAAK,IACjD,QAAI6F,OAAS8G,GAAelI,EAAIqM,EAAY9Q,KAASyE,EAAIsM,EAAW/Q,QAC7D6R,IAAMpN,EAAIoB,KAAM7F,KAASyE,EAAIqM,EAAY9Q,IAAQyE,EAAIoB,KAAM8K,IAAW9K,KAAK8K,GAAQ3Q,KAAO6R,EACnG,EACIC,EAA4B,SAAkChQ,EAAI9B,GAGpE,GAFA8B,EAAKI,EAAUJ,GACf9B,EAAMgM,EAAYhM,GAAK,GACnB8B,IAAO6K,IAAelI,EAAIqM,EAAY9Q,IAASyE,EAAIsM,EAAW/Q,GAAlE,CACA,IAAI4B,EAAIsK,EAAKpK,EAAI9B,GAEjB,OADI4B,IAAK6C,EAAIqM,EAAY9Q,IAAUyE,EAAI3C,EAAI6O,IAAW7O,EAAG6O,GAAQ3Q,KAAO4B,EAAE/B,YAAa,GAChF+B,CAHuE,CAIhF,EACImQ,GAAuB,SAA6BjQ,GAKtD,IAJA,IAGI9B,EAHA6M,EAAQT,EAAKlK,EAAUJ,IACvBkC,EAAS,GACTtE,EAAI,EAEDmN,EAAMlN,OAASD,GACf+E,EAAIqM,EAAY9Q,EAAM6M,EAAMnN,OAASM,GAAO2Q,GAAU3Q,GAAOiJ,GAAMjF,EAAOK,KAAKrE,GACpF,OAAOgE,CACX,EACIgO,GAAyB,SAA+BlQ,GAM1D,IALA,IAII9B,EAJAiS,EAAQnQ,IAAO6K,EACfE,EAAQT,EAAK6F,EAAQlB,EAAY7O,EAAUJ,IAC3CkC,EAAS,GACTtE,EAAI,EAEDmN,EAAMlN,OAASD,IAChB+E,EAAIqM,EAAY9Q,EAAM6M,EAAMnN,OAAUuS,IAAQxN,EAAIkI,EAAa3M,IAAcgE,EAAOK,KAAKyM,EAAW9Q,IACxG,OAAOgE,CACX,EAGKgN,IAYH3J,GAXA6H,EAAU,WACR,GAAIrJ,gBAAgBqJ,EAAS,MAAMhQ,UAAU,gCAC7C,IAAIqO,EAAMG,EAAIpN,UAAUX,OAAS,EAAIW,UAAU,QAAK6C,GAChD+O,EAAO,SAAUhR,GACf2E,OAAS8G,GAAauF,EAAKxR,KAAKqQ,EAAW7P,GAC3CuD,EAAIoB,KAAM8K,IAAWlM,EAAIoB,KAAK8K,GAASpD,KAAM1H,KAAK8K,GAAQpD,IAAO,GACrE6D,EAAcvL,KAAM0H,EAAK/G,EAAW,EAAGtF,GACzC,EAEA,OADI6I,GAAemH,GAAQE,EAAczE,EAAaY,EAAK,CAAEzN,cAAc,EAAMoN,IAAKgF,IAC/EZ,EAAK/D,EACd,GACiB7I,GAAY,YAAY,WACvC,OAAOmB,KAAK4J,EACd,IAEAW,EAAMlM,EAAI4N,EACVxB,EAAIpM,EAAIwN,EACR5S,EAAAA,MAAAA,EAA8BqR,EAAQjM,EAAI6N,GAC1CjT,EAAAA,MAAAA,EAA6B8S,EAC7BvB,EAAMnM,EAAI8N,GAENjI,IAAgBjL,EAAQ,OAC1BuI,EAASsF,EAAa,uBAAwBiF,GAAuB,GAGvE3C,EAAO/K,EAAI,SAAUW,GACnB,OAAOyM,EAAKvB,EAAIlL,GAClB,GAGFF,EAAQA,EAAQQ,EAAIR,EAAQe,EAAIf,EAAQM,GAAK+L,EAAY,CAAE3G,OAAQ6E,IAEnE,IAAK,IAAIiD,GAEP,iHACAvO,MAAM,KAAMiH,GAAI,EAAGsH,GAAWxS,OAASkL,IAAGkF,EAAIoC,GAAWtH,OAE3D,IAAK,IAAIuH,GAAmB5F,EAAMuD,EAAInC,OAAQpD,GAAI,EAAG4H,GAAiBzS,OAAS6K,IAAIwF,EAAUoC,GAAiB5H,OAE9G7F,EAAQA,EAAQU,EAAIV,EAAQM,GAAK+L,EAAY,SAAU,CAErD,IAAO,SAAUhR,GACf,OAAOyE,EAAIoM,EAAgB7Q,GAAO,IAC9B6Q,EAAe7Q,GACf6Q,EAAe7Q,GAAOkP,EAAQlP,EACpC,EAEAqS,OAAQ,SAAgBd,GACtB,IAAKC,EAASD,GAAM,MAAMrS,UAAUqS,EAAM,qBAC1C,IAAK,IAAIvR,KAAO6Q,EAAgB,GAAIA,EAAe7Q,KAASuR,EAAK,OAAOvR,CAC1E,EACAsS,UAAW,WAAcpB,GAAS,CAAM,EACxCqB,UAAW,WAAcrB,GAAS,CAAO,IAG3CvM,EAAQA,EAAQU,EAAIV,EAAQM,GAAK+L,EAAY,SAAU,CAErDnP,OA/FY,SAAgBC,EAAIH,GAChC,YAAawB,IAANxB,EAAkBuO,EAAQpO,GAAM6P,EAAkBzB,EAAQpO,GAAKH,EACxE,EA+FEK,eAAgB0P,EAEhBnS,iBAAkBoS,EAElBxF,yBAA0B2F,EAE1BxF,oBAAqByF,GAErBrF,sBAAuBsF,KAKzB,IAAIQ,GAAsB1C,GAAO,WAAcO,EAAMnM,EAAE,EAAI,IAE3DS,EAAQA,EAAQU,EAAIV,EAAQM,EAAIuN,GAAqB,SAAU,CAC7D9F,sBAAuB,SAA+B5K,GACpD,OAAOuO,EAAMnM,EAAE8F,EAASlI,GAC1B,IAIFyO,GAAS5L,EAAQA,EAAQU,EAAIV,EAAQM,IAAM+L,GAAclB,GAAO,WAC9D,IAAIzK,EAAI6J,IAIR,MAA0B,UAAnBuB,EAAW,CAACpL,KAA2C,MAAxBoL,EAAW,CAAErN,EAAGiC,KAAyC,MAAzBoL,EAAWjQ,OAAO6E,GAC1F,KAAK,OAAQ,CACXqL,UAAW,SAAmB5O,GAI5B,IAHA,IAEI2Q,EAAUC,EAFVC,EAAO,CAAC7Q,GACRpC,EAAI,EAEDY,UAAUX,OAASD,GAAGiT,EAAKtO,KAAK/D,UAAUZ,MAEjD,GADAgT,EAAYD,EAAWE,EAAK,IACvB1Q,EAASwQ,SAAoBtP,IAAPrB,KAAoB0P,EAAS1P,GAMxD,OALKgF,EAAQ2L,KAAWA,EAAW,SAAUzS,EAAKkB,GAEhD,GADwB,mBAAbwR,IAAyBxR,EAAQwR,EAAUhS,KAAKmF,KAAM7F,EAAKkB,KACjEsQ,EAAStQ,GAAQ,OAAOA,CAC/B,GACAyR,EAAK,GAAKF,EACHhC,EAAWlN,MAAMgN,EAAOoC,EACjC,IAIFzD,EAAQxK,GAAWkM,IAAiB9R,EAAQ,KAARA,CAAmBoQ,EAAQxK,GAAYkM,EAAc1B,EAAQxK,GAAWoK,SAE5G9H,EAAekI,EAAS,UAExBlI,EAAeX,KAAM,QAAQ,GAE7BW,EAAe1C,EAAOkM,KAAM,QAAQ,mBCrPpC1R,EAAQ,KAARA,CAAyB,iCCAzBA,EAAQ,KAARA,CAAyB,8BCAzBA,EAAQ,MAYR,IAXA,IAAIwF,EAASxF,EAAQ,IACjB0F,EAAO1F,EAAQ,MACfwI,EAAYxI,EAAQ,MACpB8T,EAAgB9T,EAAQ,KAARA,CAAkB,eAElC+T,EAAe,wbAIUjP,MAAM,KAE1BlE,EAAI,EAAGA,EAAImT,EAAalT,OAAQD,IAAK,CAC5C,IAAIwH,EAAO2L,EAAanT,GACpBoT,EAAaxO,EAAO4C,GACpBoB,EAAQwK,GAAcA,EAAW3S,UACjCmI,IAAUA,EAAMsK,IAAgBpO,EAAK8D,EAAOsK,EAAe1L,GAC/DI,EAAUJ,GAAQI,EAAUT,KAC9B,6DClBA,IAAIkM,EAAE,WAAW,OAAOA,EAAEvS,OAAO2J,QAAQ,SAAS4I,GAAG,IAAI,IAAIrT,EAAEsT,EAAE,EAAE7E,EAAE7N,UAAUX,OAAOqT,EAAE7E,EAAE6E,IAAI,IAAI,IAAI5P,KAAK1D,EAAEY,UAAU0S,GAAGxS,OAAOL,UAAUM,eAAeC,KAAKhB,EAAE0D,KAAK2P,EAAE3P,GAAG1D,EAAE0D,IAAI,OAAO2P,CAAC,EAAEA,EAAExP,MAAMsC,KAAKvF,UAAU,EAAEZ,EAAE,WAAW,SAASA,EAAEA,EAAEsT,EAAE7E,GAAG,IAAI/K,EAAEyC,KAAKA,KAAKoN,OAAOD,EAAEnN,KAAKqN,QAAQ/E,EAAEtI,KAAK/C,QAAQ,QAAQ+C,KAAKsN,SAAS,CAACC,SAAS,EAAEC,cAAc,EAAEC,SAAS,EAAEC,WAAU,EAAGC,aAAY,EAAGC,qBAAoB,EAAGC,qBAAqB,IAAIC,kBAAkB,IAAIC,UAAU,IAAIC,QAAQ,IAAIC,OAAO,GAAGC,OAAO,GAAGC,iBAAgB,EAAGC,eAAe,IAAIC,eAAc,GAAIrO,KAAKsO,YAAY,KAAKtO,KAAK0N,WAAU,EAAG1N,KAAKuO,WAAU,EAAGvO,KAAKwO,MAAM,GAAGxO,KAAKuN,SAAS,EAAEvN,KAAKyO,QAAO,EAAGzO,KAAK0O,MAAK,EAAG1O,KAAK2O,MAAM,SAASzB,GAAG3P,EAAEqR,YAAYrR,EAAEqR,UAAU1B,GAAG,IAAIrT,EAAEqT,EAAE3P,EAAEqR,UAAUrR,EAAEsR,UAAUtR,EAAEkQ,SAAS5T,EAAE0D,EAAEmQ,UAAUnQ,EAAEgR,UAAUhR,EAAEuR,SAASvR,EAAEgQ,SAAShQ,EAAEwR,SAASlV,EAAE,EAAE0D,EAAEgQ,SAAShQ,EAAE6P,OAAO7P,EAAEkQ,UAAUlQ,EAAEuR,SAASvR,EAAEwR,SAASlV,EAAE0D,EAAEgQ,SAAShQ,EAAE6P,OAAO7P,EAAEgQ,SAAShQ,EAAEkQ,UAAUlQ,EAAEuR,SAASvR,EAAEgQ,UAAUhQ,EAAE6P,OAAO7P,EAAEgQ,WAAW1T,EAAE0D,EAAEkQ,UAAU,IAAIN,EAAE5P,EAAEgR,UAAUhR,EAAEuR,SAASvR,EAAE6P,OAAO7P,EAAEuR,SAASvR,EAAE6P,OAAO7P,EAAEuR,SAAS3B,EAAE5P,EAAE6P,OAAO7P,EAAEuR,SAASvR,EAAEuR,SAASE,OAAOzR,EAAEuR,SAASG,QAAQ1R,EAAE8P,QAAQG,gBAAgBjQ,EAAE2R,WAAW3R,EAAEuR,UAAUjV,EAAE0D,EAAEkQ,SAASlQ,EAAE4R,IAAIC,sBAAsB7R,EAAEoR,OAAO,OAAOpR,EAAE+Q,YAAY/Q,EAAE8R,OAAO9R,EAAE+Q,aAAa/Q,EAAE8P,QAAQiC,oBAAoB/R,EAAE8P,QAAQiC,oBAAoB,EAAEtP,KAAKuP,aAAa,SAASrC,GAAG,IAAIrT,EAAEsT,EAAE7E,EAAEhI,EAAEkP,EAAEtC,EAAE,EAAE,IAAI,GAAGrT,EAAE2G,KAAKiP,IAAIvC,GAAG+B,QAAQ1R,EAAE8P,QAAQG,eAAe,IAAIkC,GAAG7V,GAAG,IAAIkE,MAAM,KAAK,GAAGoP,EAAEuC,EAAE,GAAGpH,EAAEoH,EAAE5V,OAAO,EAAEyD,EAAE8P,QAAQW,QAAQ0B,EAAE,GAAG,GAAGnS,EAAE8P,QAAQM,YAAY,CAACrN,EAAE,GAAG,IAAI,IAAIkI,EAAE,EAAEmH,EAAE,EAAEC,EAAE,EAAEC,EAAE1C,EAAErT,OAAO8V,EAAEC,IAAID,EAAErS,EAAE8P,QAAQO,qBAAqB,IAAIgC,IAAIpH,EAAE,EAAEmH,EAAE,GAAG,IAAIC,GAAGD,EAAEnH,GAAG,IAAIlI,EAAE/C,EAAE8P,QAAQU,UAAUzN,GAAGqP,IAAIrP,EAAE6M,EAAE0C,EAAED,EAAE,GAAGtP,EAAE6M,EAAE7M,CAAC,CAAC,OAAO/C,EAAE8P,QAAQyC,UAAUvS,EAAE8P,QAAQyC,SAAShW,SAASqT,EAAEA,EAAE4C,QAAQ,UAAU,SAAS7C,GAAG,OAAO3P,EAAE8P,QAAQyC,UAAU5C,EAAE,IAAI5E,EAAEA,EAAEyH,QAAQ,UAAU,SAAS7C,GAAG,OAAO3P,EAAE8P,QAAQyC,UAAU5C,EAAE,KAAKsC,EAAEjS,EAAE8P,QAAQY,OAAOd,EAAE7E,EAAE/K,EAAE8P,QAAQa,MAAM,EAAElO,KAAKgQ,YAAY,SAAS9C,EAAErT,EAAEsT,EAAE7E,GAAG,OAAO6E,GAAG,EAAE3M,KAAKyP,IAAI,GAAG,GAAG/C,EAAE5E,IAAI,KAAK,KAAKzO,CAAC,EAAEmG,KAAKqN,QAAQH,EAAEA,EAAE,CAAC,EAAElN,KAAKsN,UAAUhF,GAAGtI,KAAKkQ,aAAalQ,KAAKqN,QAAQ6C,aAAalQ,KAAKqN,QAAQ6C,aAAalQ,KAAKuP,aAAavP,KAAK+O,SAAS/O,KAAKqN,QAAQ0B,SAAS/O,KAAKqN,QAAQ0B,SAAS/O,KAAKgQ,YAAYhQ,KAAKuN,SAASvN,KAAKmQ,cAAcnQ,KAAKqN,QAAQE,UAAUvN,KAAK8O,SAAS9O,KAAKuN,SAASvN,KAAKoN,OAAOpN,KAAKmQ,cAAchD,GAAGnN,KAAKqN,QAAQG,cAAchN,KAAKmI,IAAI3I,KAAKqN,QAAQG,eAAexN,KAAKoQ,gBAAgBpQ,KAAKqN,QAAQU,UAAUxF,OAAOvI,KAAKqN,QAAQU,WAAW/N,KAAK0N,UAAU1N,KAAKqN,QAAQK,UAAU,KAAK1N,KAAKqN,QAAQU,YAAY/N,KAAKqN,QAAQM,aAAY,GAAI3N,KAAKtD,GAAG,iBAAiB7C,EAAE+D,SAASyS,eAAexW,GAAGA,EAAEmG,KAAKtD,GAAGsD,KAAKkP,WAAWlP,KAAKuN,UAAUvN,KAAKwO,MAAM,wCAAwC,oBAAoBjO,QAAQP,KAAKqN,QAAQc,kBAAkBnO,KAAKwO,MAAM8B,QAAQ9B,MAAMxO,KAAKwO,MAAM3U,IAAI0G,OAAOgQ,YAAYhQ,OAAOgQ,aAAa,GAAGhQ,OAAOgQ,YAAY/R,MAAM,WAAW,OAAOjB,EAAEiT,aAAajT,EAAE,IAAIgD,OAAOkQ,SAAS,WAAWlQ,OAAOgQ,YAAY7L,SAAS,SAASwI,GAAG,OAAOA,GAAG,GAAG,EAAElN,KAAKwQ,aAAaxQ,OAAO,CAAC,OAAOnG,EAAES,UAAUkW,aAAa,SAAStD,GAAG,GAAGA,GAAG3M,SAAS2M,EAAEwB,KAAK,CAAC,IAAI7U,EAAE0G,OAAOmQ,YAAYnQ,OAAOoQ,QAAQxD,EAAED,EAAExQ,GAAGkU,wBAAwBtI,EAAE6E,EAAE0D,IAAItQ,OAAOuQ,YAAYvT,EAAE4P,EAAE0D,IAAI1D,EAAE4D,OAAOxQ,OAAOuQ,YAAYvT,EAAE1D,GAAG0D,EAAEgD,OAAOoQ,SAASzD,EAAEuB,QAAQvB,EAAEuB,QAAO,EAAGuC,YAAY,WAAW,OAAO9D,EAAE+D,OAAO,GAAG/D,EAAEG,QAAQe,gBAAgBlB,EAAEG,QAAQgB,gBAAgBnB,EAAEwB,MAAK,KAAMnO,OAAOoQ,QAAQpT,GAAG+K,EAAEzO,KAAKqT,EAAEuB,QAAQvB,EAAEgE,OAAO,CAAC,EAAErX,EAAES,UAAU6W,iCAAiC,WAAW,IAAIjE,EAAElN,KAAKsO,YAAYtO,KAAKsO,YAAYtO,KAAKoN,OAAOpN,KAAKuO,UAAUvO,KAAKuN,SAASL,EAAE,IAAIrT,EAAEqT,EAAElN,KAAKuN,SAAS,GAAG/M,KAAKiP,IAAI5V,GAAGmG,KAAKqN,QAAQQ,sBAAsB7N,KAAKqN,QAAQK,UAAU,CAAC1N,KAAKsO,YAAYpB,EAAE,IAAIC,EAAEnN,KAAKuO,UAAU,GAAG,EAAEvO,KAAKoN,OAAOF,EAAEC,EAAEnN,KAAKqN,QAAQS,kBAAkB9N,KAAKyN,SAASzN,KAAKyN,SAAS,CAAC,MAAMzN,KAAKoN,OAAOF,EAAElN,KAAKsO,YAAY,KAAK,OAAOtO,KAAKsO,YAAYtO,KAAK0N,WAAU,EAAG1N,KAAK0N,UAAU1N,KAAKqN,QAAQK,SAAS,EAAE7T,EAAES,UAAU2W,MAAM,SAAS/D,GAAGlN,KAAKwO,QAAQxO,KAAKqN,QAAQ+D,iBAAiBpR,KAAKqN,QAAQ+D,kBAAkBlE,IAAIlN,KAAKqN,QAAQiC,mBAAmBpC,GAAGlN,KAAKyN,SAAS,GAAGzN,KAAKmR,mCAAmCnR,KAAKyO,QAAO,EAAGzO,KAAKmP,IAAIC,sBAAsBpP,KAAK2O,QAAQ3O,KAAKkP,WAAWlP,KAAKoN,QAAQ,EAAEvT,EAAES,UAAU+W,YAAY,WAAWrR,KAAKyO,QAAQzO,KAAK4O,UAAU,KAAK5O,KAAKyN,SAASzN,KAAK6O,UAAU7O,KAAKuN,SAASvN,KAAK8O,SAAS9O,KAAKmR,mCAAmCnR,KAAKmP,IAAIC,sBAAsBpP,KAAK2O,QAAQ2C,qBAAqBtR,KAAKmP,KAAKnP,KAAKyO,QAAQzO,KAAKyO,MAAM,EAAE5U,EAAES,UAAU4W,MAAM,WAAWI,qBAAqBtR,KAAKmP,KAAKnP,KAAKyO,QAAO,EAAGzO,KAAKoQ,gBAAgBpQ,KAAKuN,SAASvN,KAAKmQ,cAAcnQ,KAAKqN,QAAQE,UAAUvN,KAAK8O,SAAS9O,KAAKuN,SAASvN,KAAKkP,WAAWlP,KAAKuN,SAAS,EAAE1T,EAAES,UAAU+U,OAAO,SAASnC,GAAGoE,qBAAqBtR,KAAKmP,KAAKnP,KAAK4O,UAAU,KAAK5O,KAAKoN,OAAOpN,KAAKmQ,cAAcjD,GAAGlN,KAAKoN,SAASpN,KAAK8O,WAAW9O,KAAKuN,SAASvN,KAAK8O,SAAS,MAAM9O,KAAKsO,aAAatO,KAAKoQ,gBAAgBpQ,KAAKsO,YAAY,KAAKtO,KAAKmR,mCAAmCnR,KAAKmP,IAAIC,sBAAsBpP,KAAK2O,OAAO,EAAE9U,EAAES,UAAU4U,WAAW,SAAShC,GAAG,IAAIrT,EAAE,GAAGmG,KAAKtD,GAAG,CAAC,IAAIyQ,EAAEnN,KAAKkQ,aAAahD,IAAM,QAAQrT,EAAEmG,KAAKqN,QAAQkE,cAAS,IAAS1X,OAAE,EAAOA,EAAE2X,QAAOxR,KAAKqN,QAAQkE,OAAOC,OAAOxR,KAAKtD,GAAGyQ,GAAW,UAAUnN,KAAKtD,GAAG+U,QAAQzR,KAAKtD,GAAGrB,MAAM8R,EAAM,SAASnN,KAAKtD,GAAG+U,SAAS,UAAUzR,KAAKtD,GAAG+U,QAAQzR,KAAKtD,GAAGgV,YAAYvE,EAAEnN,KAAKtD,GAAGiV,UAAUxE,CAAC,CAAC,EAAEtT,EAAES,UAAUsX,aAAa,SAAS1E,GAAG,MAAM,iBAAiBA,IAAInE,MAAMmE,EAAE,EAAErT,EAAES,UAAU6V,cAAc,SAASjD,GAAG,IAAIrT,EAAEmV,OAAO9B,GAAG,OAAOlN,KAAK4R,aAAa/X,GAAGA,GAAGmG,KAAKwO,MAAM,yCAAyCzJ,OAAOmI,GAAG,KAAK,EAAErT,EAAES,UAAU8V,cAAc,WAAWpQ,KAAK4O,UAAU,KAAK5O,KAAKyN,SAAS,IAAIuB,OAAOhP,KAAKqN,QAAQI,UAAUzN,KAAK6O,UAAU7O,KAAKyN,QAAQ,EAAE5T,CAAC,CAAj1K,mBCAtN,IAAIgY,EAAe5Y,EAAQ,KACvB6Y,EAAO7Y,EAAAA,MAAAA,KASX,SAAS8Y,EAAWC,EAAOC,GACvBjS,KAAKgS,MAAQA,EACbhS,KAAKiS,gBAAkBA,EACvBjS,KAAKkS,SAAW,GAChBlS,KAAKmS,IAAM5R,OAAO6R,WAAWJ,GAE7B,IAAIxW,EAAOwE,KACXA,KAAKqS,SAAW,SAASF,GAErB3W,EAAK2W,IAAMA,EAAIG,eAAiBH,EAChC3W,EAAK+W,QACT,EACAvS,KAAKmS,IAAIK,YAAYxS,KAAKqS,SAC9B,CAEAN,EAAWzX,UAAY,CAEnBmY,WAAaV,EAWbW,WAAa,SAASC,GAClB,IAAIC,EAAK,IAAIf,EAAac,GAC1B3S,KAAKkS,SAAS1T,KAAKoU,GAEnB5S,KAAK6S,WAAaD,EAAGE,IACzB,EAOAC,cAAgB,SAASJ,GACrB,IAAIT,EAAWlS,KAAKkS,SACpBJ,EAAKI,GAAU,SAASvC,EAAG9V,GACvB,GAAG8V,EAAEqD,OAAOL,GAER,OADAhD,EAAEsD,WACMf,EAASgB,OAAOrZ,EAAE,EAElC,GACJ,EAOAgZ,QAAU,WACN,OAAO7S,KAAKmS,IAAIU,SAAW7S,KAAKiS,eACpC,EAKAkB,MAAQ,WACJrB,EAAK9R,KAAKkS,UAAU,SAASS,GACzBA,EAAQM,SACZ,IACAjT,KAAKmS,IAAIiB,eAAepT,KAAKqS,UAC7BrS,KAAKkS,SAASpY,OAAS,CAC3B,EAKAyY,OAAS,WACL,IAAIc,EAASrT,KAAK6S,UAAY,KAAO,MAErCf,EAAK9R,KAAKkS,UAAU,SAASS,GACzBA,EAAQU,IACZ,GACJ,GAGJta,EAAOC,QAAU+Y,kBC5FjB,IAAIA,EAAa9Y,EAAQ,MACrBqa,EAAOra,EAAQ,MACf6Y,EAAOwB,EAAKxB,KACZyB,EAAaD,EAAKC,WAClBtS,EAAUqS,EAAKrS,QAQnB,SAASuS,IACL,IAAIjT,OAAO6R,WACP,MAAM,IAAIqB,MAAM,8DAGpBzT,KAAK0T,QAAU,CAAC,EAChB1T,KAAK2T,oBAAsBpT,OAAO6R,WAAW,YAAYS,OAC7D,CAEAW,EAAmBlZ,UAAY,CAE3Bc,YAAcoY,EAadI,SAAW,SAASC,EAAGxG,EAASyG,GAC5B,IAAIJ,EAAkB1T,KAAK0T,QACvBzB,EAAkB6B,GAAiB9T,KAAK2T,mBAoB5C,OAlBID,EAAQG,KACRH,EAAQG,GAAK,IAAI9B,EAAW8B,EAAG5B,IAIhCsB,EAAWlG,KACVA,EAAU,CAAE0G,MAAQ1G,IAEpBpM,EAAQoM,KACRA,EAAU,CAACA,IAEfyE,EAAKzE,GAAS,SAASsF,GACfY,EAAWZ,KACXA,EAAU,CAAEoB,MAAQpB,IAExBe,EAAQG,GAAGnB,WAAWC,EAC1B,IAEO3S,IACX,EAQAgU,WAAa,SAASH,EAAGlB,GACrB,IAAIX,EAAQhS,KAAK0T,QAAQG,GAYzB,OAVG7B,IACIW,EACCX,EAAMe,cAAcJ,IAGpBX,EAAMmB,eACCnT,KAAK0T,QAAQG,KAIrB7T,IACX,GAGJjH,EAAOC,QAAUwa,WC1EjB,SAAS3B,EAAaxE,GAClBrN,KAAKqN,QAAUA,GACdA,EAAQ4G,YAAcjU,KAAKkU,OAChC,CAEArC,EAAavX,UAAY,CAErBc,YAAcyW,EAOdqC,MAAQ,WACDlU,KAAKqN,QAAQ6G,OACZlU,KAAKqN,QAAQ6G,QAEjBlU,KAAKmU,aAAc,CACvB,EAOArB,GAAK,YACA9S,KAAKmU,aAAenU,KAAKkU,QAC1BlU,KAAKqN,QAAQ0G,OAAS/T,KAAKqN,QAAQ0G,OACvC,EAOAK,IAAM,WACFpU,KAAKqN,QAAQgH,SAAWrU,KAAKqN,QAAQgH,SACzC,EAQApB,QAAU,WACNjT,KAAKqN,QAAQ4F,QAAUjT,KAAKqN,QAAQ4F,UAAYjT,KAAKoU,KACzD,EASApB,OAAS,SAASrZ,GACd,OAAOqG,KAAKqN,UAAY1T,GAAUqG,KAAKqN,QAAQ0G,QAAUpa,CAC7D,GAIJZ,EAAOC,QAAU6Y,YClCjB9Y,EAAOC,QAAU,CACbua,WALJ,SAAoB5Z,GAChB,MAAyB,oBAAXA,CAClB,EAIIsH,QAhBJ,SAAiBtH,GACb,MAAmD,mBAA5CgB,OAAOL,UAAUwC,SAASY,MAAM/D,EAC3C,EAeImY,KApCJ,SAAcwC,EAAYlX,GAKtB,IAJA,IAAIvD,EAAS,EACTC,EAASwa,EAAWxa,OAGjBD,EAAIC,IAEK,IADLsD,EAAGkX,EAAWza,GAAIA,GADVA,KAMvB,kBCjBA,IAAI2Z,EAAqBva,EAAQ,MACjCF,EAAOC,QAAU,IAAIwa,8BCCrB,IAAIe,EAAUtb,EAAQ,MAMlBub,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXnW,MAAM,GAEJoW,EAAgB,CAClBnW,MAAM,EACNlF,QAAQ,EACRQ,WAAW,EACX8a,QAAQ,EACRC,QAAQ,EACR5a,WAAW,EACX6a,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACTZ,cAAc,EACdC,aAAa,EACbK,WAAW,EACXnW,MAAM,GAEJ0W,EAAe,CAAC,EAIpB,SAASC,EAAWC,GAElB,OAAIpB,EAAQqB,OAAOD,GACVJ,EAIFE,EAAaE,EAAoB,WAAMnB,CAChD,CAXAiB,EAAalB,EAAQsB,YAhBK,CACxB,UAAY,EACZrE,QAAQ,EACRoD,cAAc,EACdC,aAAa,EACbK,WAAW,GAYbO,EAAalB,EAAQuB,MAAQP,EAY7B,IAAIpZ,EAAiBxB,OAAOwB,eACxBsK,EAAsB9L,OAAO8L,oBAC7BI,EAAwBlM,OAAOkM,sBAC/BP,EAA2B3L,OAAO2L,yBAClC3E,EAAiBhH,OAAOgH,eACxBoU,EAAkBpb,OAAOL,UAsC7BvB,EAAOC,QArCP,SAASgd,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBzU,EAAeuU,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,EAE9D,CAEA,IAAIrU,EAAO2E,EAAoByP,GAE3BrP,IACF/E,EAAOA,EAAKiD,OAAO8B,EAAsBqP,KAM3C,IAHA,IAAIG,EAAgBX,EAAWO,GAC3BK,EAAgBZ,EAAWQ,GAEtBrc,EAAI,EAAGA,EAAIiI,EAAKhI,SAAUD,EAAG,CACpC,IAAIM,EAAM2H,EAAKjI,GAEf,IAAKsb,EAAchb,MAAUgc,IAAaA,EAAUhc,OAAWmc,IAAiBA,EAAcnc,OAAWkc,IAAiBA,EAAclc,IAAO,CAC7I,IAAIJ,EAAauM,EAAyB4P,EAAiB/b,GAE3D,IAEEgC,EAAe8Z,EAAiB9b,EAAKJ,EACvC,CAAE,MAAOuG,GAAI,CACf,CACF,CACF,CAEA,OAAO2V,CACT,kBCpGA,IAAIM,EAAetd,EAAQ,MAOvBud,EAAS,SAAUld,GACrB,IAAImd,EAAK,GACLC,EAAW/b,OAAOmH,KAAKxI,GAmB3B,OAlBAod,EAAShS,SAAQ,SAAUiS,EAAS9Z,GAClC,IAAIxB,EAAQ/B,EAAIqd,IATF,SAAUA,GAE1B,MADS,kBACCpP,KAAKoP,EACjB,EASQC,CAFJD,EAAUJ,EAAaI,KAEsB,kBAAVtb,IACjCA,GAAgB,MAGhBob,IADY,IAAVpb,EACIsb,GACa,IAAVtb,EACH,OAASsb,EAET,IAAMA,EAAU,KAAOtb,EAAQ,IAEnCwB,EAAQ6Z,EAAS5c,OAAO,IAC1B2c,GAAM,QAEV,IACOA,CACT,EAqBA1d,EAAOC,QAnBO,SAAUgZ,GACtB,IAAIyE,EAAK,GACT,MAAqB,kBAAVzE,EACFA,EAGLA,aAAiBhR,OACnBgR,EAAMtN,SAAQ,SAAUmP,EAAGhX,GACzB4Z,GAAMD,EAAO3C,GACThX,EAAQmV,EAAMlY,OAAO,IACvB2c,GAAM,KAEV,IACOA,GAGFD,EAAOxE,EAChB,iBCtCA,IAGI6E,EAAM,IAGNC,EAAY,kBAGZC,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SAGfC,EAA8B,iBAAV5Y,EAAAA,GAAsBA,EAAAA,GAAUA,EAAAA,EAAO9D,SAAWA,QAAU8D,EAAAA,EAGhF6Y,EAA0B,iBAAR9b,MAAoBA,MAAQA,KAAKb,SAAWA,QAAUa,KAGxE+b,EAAOF,GAAcC,GAAYrX,SAAS,cAATA,GAUjCuX,EAPc7c,OAAOL,UAOQwC,SAG7B2a,EAAYjX,KAAKmI,IACjB+O,EAAYlX,KAAKoI,IAkBjB+O,EAAM,WACR,OAAOJ,EAAKK,KAAKD,KACnB,EA2MA,SAASvb,EAASf,GAChB,IAAI0D,SAAc1D,EAClB,QAASA,IAAkB,UAAR0D,GAA4B,YAARA,EACzC,CA2EA,SAAS8Y,EAASxc,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAhCF,SAAkBA,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,CAC3B,CAqBKyc,CAAazc,IAAUmc,EAAe3c,KAAKQ,IAAUyb,CAC1D,CA6BMnL,CAAStQ,GACX,OAAOwb,EAET,GAAIza,EAASf,GAAQ,CACnB,IAAI0c,EAAgC,mBAAjB1c,EAAM4N,QAAwB5N,EAAM4N,UAAY5N,EACnEA,EAAQe,EAAS2b,GAAUA,EAAQ,GAAMA,CAC3C,CACA,GAAoB,iBAAT1c,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAM0U,QAAQgH,EAAQ,IAC9B,IAAIiB,EAAWf,EAAW1P,KAAKlM,GAC/B,OAAQ2c,GAAYd,EAAU3P,KAAKlM,GAC/B8b,EAAa9b,EAAM0B,MAAM,GAAIib,EAAW,EAAI,GAC3ChB,EAAWzP,KAAKlM,GAASwb,GAAOxb,CACvC,CAEAtC,EAAOC,QAtPP,SAAkBif,EAAMC,EAAM7K,GAC5B,IAAI8K,EACAC,EACAC,EACAla,EACAma,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARV,EACT,MAAM,IAAI5e,UArIQ,uBA+IpB,SAASuf,EAAWC,GAClB,IAAI/L,EAAOqL,EACPW,EAAUV,EAKd,OAHAD,EAAWC,OAAW9a,EACtBkb,EAAiBK,EACjB1a,EAAS8Z,EAAKva,MAAMob,EAAShM,EAE/B,CAmBA,SAASiM,EAAaF,GACpB,IAAIG,EAAoBH,EAAON,EAM/B,YAAyBjb,IAAjBib,GAA+BS,GAAqBd,GACzDc,EAAoB,GAAON,GANJG,EAAOL,GAM8BH,CACjE,CAEA,SAASY,IACP,IAAIJ,EAAOlB,IACX,GAAIoB,EAAaF,GACf,OAAOK,EAAaL,GAGtBP,EAAUtH,WAAWiI,EAzBvB,SAAuBJ,GACrB,IAEI1a,EAAS+Z,GAFWW,EAAON,GAI/B,OAAOG,EAAShB,EAAUvZ,EAAQka,GAHRQ,EAAOL,IAGkCra,CACrE,CAmBqCgb,CAAcN,GACnD,CAEA,SAASK,EAAaL,GAKpB,OAJAP,OAAUhb,EAINqb,GAAYR,EACPS,EAAWC,IAEpBV,EAAWC,OAAW9a,EACfa,EACT,CAcA,SAASib,IACP,IAAIP,EAAOlB,IACP0B,EAAaN,EAAaF,GAM9B,GAJAV,EAAW1d,UACX2d,EAAWpY,KACXuY,EAAeM,EAEXQ,EAAY,CACd,QAAgB/b,IAAZgb,EACF,OAvEN,SAAqBO,GAMnB,OAJAL,EAAiBK,EAEjBP,EAAUtH,WAAWiI,EAAcf,GAE5BO,EAAUG,EAAWC,GAAQ1a,CACtC,CAgEamb,CAAYf,GAErB,GAAIG,EAGF,OADAJ,EAAUtH,WAAWiI,EAAcf,GAC5BU,EAAWL,EAEtB,CAIA,YAHgBjb,IAAZgb,IACFA,EAAUtH,WAAWiI,EAAcf,IAE9B/Z,CACT,CAGA,OAxGA+Z,EAAOL,EAASK,IAAS,EACrB9b,EAASiR,KACXoL,IAAYpL,EAAQoL,QAEpBJ,GADAK,EAAS,YAAarL,GACHoK,EAAUI,EAASxK,EAAQgL,UAAY,EAAGH,GAAQG,EACrEM,EAAW,aAActL,IAAYA,EAAQsL,SAAWA,GAiG1DS,EAAUG,OAnCV,gBACkBjc,IAAZgb,GACFkB,aAAalB,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUhb,CACjD,EA8BA8b,EAAUK,MA5BV,WACE,YAAmBnc,IAAZgb,EAAwBna,EAAS+a,EAAavB,IACvD,EA2BOyB,CACT,qDC1PuC,IAAkBM,QAAnC,qBAAdC,YAAiDD,QAI/C,WAAc,aAEtB,IAAIE,MAAQ,6BACRC,aAAe,GACfC,eAAgB,EAChBC,qBAAuB,OAEvBC,aAAe,SAAsBC,GACvCH,gBAAkBG,CACpB,EAEIC,aAAe,WACjB,OAAOJ,aACT,EAEIK,gBAAkB,SAAyB9e,GAC7Cwe,aAAexe,CACjB,EAEI+e,gBAAkB,WACpB,OAAOP,YACT,EAEA,SAASQ,UAAUtb,GAEjB,OAAOnB,SAASE,cAAciB,EAChC,CAEA,SAASub,gBAAgBC,EAASC,GAChC,IAAI3gB,EAEA4gB,EADAC,EAAMH,EAAQzgB,OAGlB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAGxB,IAAK,IAAI8gB,KAFTF,EAAkBF,EAAQ1gB,GAAGS,UAGvBK,OAAOL,UAAUM,eAAeC,KAAK4f,EAAiBE,KAAOH,EAAYlgB,UAAUqgB,GAAQF,EAAgBE,GAGrH,CAEA,SAASC,cAAcha,EAAQia,GAC7B,OAAOlgB,OAAO2L,yBAAyB1F,EAAQia,EACjD,CAEA,SAASC,oBAAoBxgB,GAC3B,SAASygB,IAAiB,CAG1B,OADAA,EAAczgB,UAAYA,EACnBygB,CACT,CAGA,IAAIC,uBAAyB,WAC3B,SAASC,EAAgBC,GACvBlb,KAAKmb,OAAS,GACdnb,KAAKkb,aAAeA,EACpBlb,KAAKob,QAAU,EACfpb,KAAKqb,UAAW,CAClB,CAoFA,OAlFAJ,EAAgB3gB,UAAY,CAC1BghB,SAAU,SAAkBC,GAC1Bvb,KAAKmb,OAAO3c,KAAK+c,EACnB,EACAC,MAAO,WACL,IAAI3hB,EACA6gB,EAAM1a,KAAKmb,OAAOrhB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKmb,OAAOthB,GAAG2hB,OAEnB,EACAC,OAAQ,WACN,IAAI5hB,EACA6gB,EAAM1a,KAAKmb,OAAOrhB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKmb,OAAOthB,GAAG4hB,QAEnB,EACAC,QAAS,SAAiBC,GACxB,IAAI9hB,EACA6gB,EAAM1a,KAAKmb,OAAOrhB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKmb,OAAOthB,GAAG6hB,QAAQC,EAE3B,EACAC,YAAa,SAAqBC,GAChC,OAAI7b,KAAKkb,aACAlb,KAAKkb,aAAaW,GAGvBtb,OAAOub,KACF,IAAIvb,OAAOub,KAAK,CACrBnW,IAAK,CAACkW,KAIH,CACLE,WAAW,EACXC,KAAM,WACJhc,KAAK+b,WAAY,CACnB,EACAE,KAAM,WACJjc,KAAK+b,WAAY,CACnB,EACAG,QAAS,WAAoB,EAC7BC,KAAM,WAAiB,EACvBC,UAAW,WAAsB,EAErC,EACAC,gBAAiB,SAAyBnB,GACxClb,KAAKkb,aAAeA,CACtB,EACAkB,UAAW,SAAmB/gB,GAC5B2E,KAAKob,QAAU/f,EAEf2E,KAAKsc,eACP,EACAC,KAAM,WACJvc,KAAKqb,UAAW,EAEhBrb,KAAKsc,eACP,EACAE,OAAQ,WACNxc,KAAKqb,UAAW,EAEhBrb,KAAKsc,eACP,EACAG,UAAW,WACT,OAAOzc,KAAKob,OACd,EACAkB,cAAe,WACb,IAAIziB,EACA6gB,EAAM1a,KAAKmb,OAAOrhB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKmb,OAAOthB,GAAG6iB,OAAO1c,KAAKob,SAAWpb,KAAKqb,SAAW,EAAI,GAE9D,GAEK,WACL,OAAO,IAAIJ,CACb,CACF,CA7F6B,GA+FzB0B,iBAAmB,WACrB,SAASC,EAAmB7d,EAAM2b,GAChC,IAEIrf,EAFAxB,EAAI,EACJgjB,EAAM,GAGV,OAAQ9d,GACN,IAAK,QACL,IAAK,SACH1D,EAAQ,EACR,MAEF,QACEA,EAAQ,IAIZ,IAAKxB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgjB,EAAIre,KAAKnD,GAGX,OAAOwhB,CACT,CAkBA,MAAiC,oBAAtBC,mBAA4D,oBAAjBC,aAhBtD,SAAiChe,EAAM2b,GACrC,MAAa,YAAT3b,EACK,IAAIge,aAAarC,GAGb,UAAT3b,EACK,IAAIie,WAAWtC,GAGX,WAAT3b,EACK,IAAI+d,kBAAkBpC,GAGxBkC,EAAmB7d,EAAM2b,EAClC,EAMOkC,CACT,CA7CuB,GA+CvB,SAASK,iBAAiBvC,GACxB,OAAO1Z,MAAMtD,MAAM,KAAM,CACvB5D,OAAQ4gB,GAEZ,CAEA,SAASwC,UAAU5jB,GAAuV,OAA1O4jB,UAArD,oBAAX1Y,QAAoD,kBAApBA,OAAOoH,SAAqC,SAAiBtS,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkL,QAAyBlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAAK,EAAY4jB,UAAU5jB,EAAM,CACjY,IAAI6jB,iBAAkB,EAClBC,kBAAoB,KACpBC,sBAAwB,KACxBC,WAAa,GACbC,SAAW,iCAAiChW,KAAKoS,UAAU6D,WAC3DC,oBAAqB,EACrBC,MAAQld,KAAKyP,IACb0N,OAASnd,KAAKod,KACdC,QAAUrd,KAAKsI,MACfgV,MAAQtd,KAAKmI,IACboV,MAAQvd,KAAKoI,IACboV,OAAS,CAAC,EAYd,SAASC,qBACP,MAAO,CAAC,CACV,EAZA,WACE,IACIpkB,EADAqkB,EAAgB,CAAC,MAAO,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,QAAS,QAAS,MAAO,OAAQ,MAAO,QAAS,SAAU,QAAS,OAAQ,MAAO,QAAS,OAAQ,QAAS,MAAO,MAAO,MAAO,SAAU,QAAS,OAAQ,MAAO,OAAQ,OAAQ,MAAO,OAAQ,QAAS,IAAK,OAAQ,MAAO,SAAU,QAAS,KAAM,UAAW,SAExWxD,EAAMwD,EAAcpkB,OAExB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmkB,OAAOE,EAAcrkB,IAAM2G,KAAK0d,EAAcrkB,GAEjD,CARD,GAcAmkB,OAAO7U,OAAS3I,KAAK2I,OAErB6U,OAAOvO,IAAM,SAAUzG,GAGrB,GAAe,WAFFkU,UAAUlU,IAEIA,EAAIlP,OAAQ,CACrC,IACID,EADAskB,EAASlB,iBAAiBjU,EAAIlP,QAE9B4gB,EAAM1R,EAAIlP,OAEd,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBskB,EAAOtkB,GAAK2G,KAAKiP,IAAIzG,EAAInP,IAG3B,OAAOskB,CACT,CAEA,OAAO3d,KAAKiP,IAAIzG,EAClB,EAEA,IAAIoV,qBAAuB,IACvBC,UAAY7d,KAAK8d,GAAK,IACtBC,YAAc,MAElB,SAASC,YAAYvE,GACnBwD,qBAAuBxD,CACzB,CAEA,SAASwE,MAAMpjB,GACb,OAAIoiB,mBACKjd,KAAKke,MAAMrjB,GAGbA,CACT,CAEA,SAASsjB,SAASC,GAChBA,EAAQnZ,MAAMoZ,SAAW,WACzBD,EAAQnZ,MAAMoL,IAAM,EACpB+N,EAAQnZ,MAAMqZ,KAAO,EACrBF,EAAQnZ,MAAMC,QAAU,QACxBkZ,EAAQnZ,MAAMsZ,gBAAkB,MAChCH,EAAQnZ,MAAMuZ,sBAAwB,MACtCJ,EAAQnZ,MAAMwZ,mBAAqB,UACnCL,EAAQnZ,MAAMyZ,yBAA2B,UACzCN,EAAQnZ,MAAM0Z,eAAiB,cAC/BP,EAAQnZ,MAAM2Z,qBAAuB,cACrCR,EAAQnZ,MAAM4Z,kBAAoB,aACpC,CAEA,SAASC,kBAAkBvgB,EAAMwgB,EAAaC,EAAWC,GACvDzf,KAAKjB,KAAOA,EACZiB,KAAKuf,YAAcA,EACnBvf,KAAKwf,UAAYA,EACjBxf,KAAK0f,UAAYD,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASE,gBAAgB5gB,EAAM0gB,GAC7Bzf,KAAKjB,KAAOA,EACZiB,KAAK0f,UAAYD,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASG,oBAAoB7gB,EAAM8gB,EAAYC,EAAaL,GAC1Dzf,KAAKjB,KAAOA,EACZiB,KAAK8f,YAAcA,EACnB9f,KAAK6f,WAAaA,EAClB7f,KAAK0f,UAAYD,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASM,oBAAoBhhB,EAAMihB,EAAYC,GAC7CjgB,KAAKjB,KAAOA,EACZiB,KAAKggB,WAAaA,EAClBhgB,KAAKigB,YAAcA,CACrB,CAEA,SAASC,eAAenhB,EAAMpF,GAC5BqG,KAAKjB,KAAOA,EACZiB,KAAKrG,OAASA,CAChB,CAEA,SAASwmB,wBAAwBC,EAAab,GAC5Cvf,KAAKjB,KAAO,mBACZiB,KAAKogB,YAAcA,EACnBpgB,KAAKuf,YAAcA,CACrB,CAEA,SAASc,mBAAmBD,GAC1BpgB,KAAKjB,KAAO,cACZiB,KAAKogB,YAAcA,CACrB,CAEA,SAASE,4BAA4BvhB,EAAMqhB,GACzCpgB,KAAKjB,KAAOA,EACZiB,KAAKogB,YAAcA,CACrB,CAEA,IAAIG,gBAAkB,WACpB,IAAIC,EAAS,EACb,OAAO,WAEL,OAAOlD,WAAa,qBADpBkD,GAAU,EAEZ,CACF,CANsB,GAQtB,SAASC,SAAS9Q,EAAGrH,EAAGoY,GACtB,IAAIhR,EACAiR,EACAnjB,EACA3D,EACAwE,EACAwR,EACAgE,EACA3G,EAOJ,OAJA2C,EAAI6Q,GAAK,EAAIpY,GACbuL,EAAI6M,GAAK,GAFTriB,EAAQ,EAAJsR,GADJ9V,EAAI2G,KAAKsI,MAAU,EAAJ6G,KAGErH,GACjB4E,EAAIwT,GAAK,GAAK,EAAIriB,GAAKiK,GAEfzO,EAAI,GACV,KAAK,EACH6V,EAAIgR,EACJC,EAAIzT,EACJ1P,EAAIqS,EACJ,MAEF,KAAK,EACHH,EAAImE,EACJ8M,EAAID,EACJljB,EAAIqS,EACJ,MAEF,KAAK,EACHH,EAAIG,EACJ8Q,EAAID,EACJljB,EAAI0P,EACJ,MAEF,KAAK,EACHwC,EAAIG,EACJ8Q,EAAI9M,EACJrW,EAAIkjB,EACJ,MAEF,KAAK,EACHhR,EAAIxC,EACJyT,EAAI9Q,EACJrS,EAAIkjB,EACJ,MAEF,KAAK,EACHhR,EAAIgR,EACJC,EAAI9Q,EACJrS,EAAIqW,EAOR,MAAO,CAACnE,EAAGiR,EAAGnjB,EAChB,CAEA,SAASojB,SAASlR,EAAGiR,EAAGnjB,GACtB,IAGImS,EAHAhH,EAAMnI,KAAKmI,IAAI+G,EAAGiR,EAAGnjB,GACrBoL,EAAMpI,KAAKoI,IAAI8G,EAAGiR,EAAGnjB,GACrBqjB,EAAIlY,EAAMC,EAEVN,EAAY,IAARK,EAAY,EAAIkY,EAAIlY,EACxB+X,EAAI/X,EAAM,IAEd,OAAQA,GACN,KAAKC,EACH+G,EAAI,EACJ,MAEF,KAAKD,EACHC,EAAIgR,EAAInjB,EAAIqjB,GAAKF,EAAInjB,EAAI,EAAI,GAC7BmS,GAAK,EAAIkR,EACT,MAEF,KAAKF,EACHhR,EAAInS,EAAIkS,EAAQ,EAAJmR,EACZlR,GAAK,EAAIkR,EACT,MAEF,KAAKrjB,EACHmS,EAAID,EAAIiR,EAAQ,EAAJE,EACZlR,GAAK,EAAIkR,EAOb,MAAO,CAAClR,EAAGrH,EAAGoY,EAChB,CAEA,SAASI,mBAAmBC,EAAOC,GACjC,IAAIC,EAAML,SAAoB,IAAXG,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAE,EAAI,IAAMD,EAENC,EAAI,GAAK,EACXA,EAAI,GAAK,EACAA,EAAI,IAAM,IACnBA,EAAI,GAAK,GAGJR,SAASQ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,SAASC,mBAAmBH,EAAOC,GACjC,IAAIC,EAAML,SAAoB,IAAXG,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAE,EAAI,IAAMD,EAENC,EAAI,GAAK,EACXA,EAAI,GAAK,EACAA,EAAI,GAAK,IAClBA,EAAI,GAAK,GAGJR,SAASQ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,SAASE,YAAYJ,EAAOC,GAC1B,IAAIC,EAAML,SAAoB,IAAXG,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAE,EAAI,IAAMD,EAAS,IAEfC,EAAI,GAAK,EACXA,EAAI,IAAM,EACDA,EAAI,GAAK,IAClBA,EAAI,IAAM,GAGLR,SAASQ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,IAAIG,SAAW,WACb,IACIvnB,EACAwnB,EAFAC,EAAW,GAIf,IAAKznB,EAAI,EAAGA,EAAI,IAAKA,GAAK,EACxBwnB,EAAMxnB,EAAEiD,SAAS,IACjBwkB,EAASznB,GAAoB,IAAfwnB,EAAIvnB,OAAe,IAAMunB,EAAMA,EAG/C,OAAO,SAAU3R,EAAGiR,EAAGnjB,GAarB,OAZIkS,EAAI,IACNA,EAAI,GAGFiR,EAAI,IACNA,EAAI,GAGFnjB,EAAI,IACNA,EAAI,GAGC,IAAM8jB,EAAS5R,GAAK4R,EAASX,GAAKW,EAAS9jB,EACpD,CACF,CAzBe,GA2BX+jB,mBAAqB,SAA4BtH,GACnDkD,kBAAoBlD,CACtB,EAEIuH,mBAAqB,WACvB,OAAOrE,eACT,EAEIsE,qBAAuB,SAA8BpmB,GACvD+hB,kBAAoB/hB,CACtB,EAEIqmB,qBAAuB,WACzB,OAAOtE,iBACT,EAEIuE,wBAA0B,SAAiCtmB,GAC7DgiB,sBAAwBhiB,CAC1B,EAEIumB,wBAA0B,WAC5B,OAAOvE,qBACT,EAEIwE,wBAA0B,SAAiCxmB,GAC7D+iB,qBAAuB/iB,CACzB,EAEIymB,wBAA0B,WAC5B,OAAO1D,oBACT,EAEI2D,YAAc,SAAqB1mB,GACrCiiB,WAAajiB,CACf,EAEI2mB,YAAc,WAChB,OAAO1E,UACT,EAEA,SAAS2E,SAASljB,GAEhB,OAAOnB,SAASskB,gBAAgBtI,MAAO7a,EACzC,CAEA,SAASojB,UAAU7oB,GAAuV,OAA1O6oB,UAArD,oBAAX3d,QAAoD,kBAApBA,OAAOoH,SAAqC,SAAiBtS,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkL,QAAyBlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAAK,EAAY6oB,UAAU7oB,EAAM,CAEjY,IAAI8oB,YAAc,WAChB,IAEIC,EACAC,EAHAC,EAAa,EACbC,EAAY,GAGZC,EAAc,CAChBC,UAAW,WAAsB,EACjCC,YAAa,SAAqBC,GAChCP,EAAS,CACPQ,KAAMD,GAEV,GAEEE,EAAc,CAChBH,YAAa,SAAqBE,GAChCJ,EAAYC,UAAU,CACpBG,KAAMA,GAEV,GAiBF,SAASE,IACFT,IACHA,EAhBJ,SAAsBllB,GACpB,GAAImD,OAAOyiB,QAAUziB,OAAO0iB,MAAQ/I,eAAgB,CAClD,IAAIgJ,EAAO,IAAID,KAAK,CAAC,4CAA6C7lB,EAAGN,YAAa,CAChFiC,KAAM,oBAGJokB,EAAMC,IAAIC,gBAAgBH,GAC9B,OAAO,IAAIF,OAAOG,EACpB,CAGA,OADAd,EAAWjlB,EACJqlB,CACT,CAIqBa,EAAa,SAAqBhjB,GAknBjD,GA3EKwiB,EAAYV,cACfU,EAAYV,YAviBd,WACE,SAASmB,EAAeC,EAAQC,GAC9B,IAAIC,EACA7pB,EAEAmL,EACA2e,EACAhf,EACAif,EAJAlJ,EAAM8I,EAAO1pB,OAMjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAGxB,GAAI,OAFJ6pB,EAAYF,EAAO3pB,MAEO6pB,EAAUG,UAAW,CAG7C,GAFAH,EAAUG,WAAY,EAElBH,EAAUI,QAAS,CACrB,IAAIC,EAAYL,EAAUM,gBAG1B,IAFAL,EAAOI,EAAUjqB,OAEZkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzB,GAAI+e,EAAU/e,GAAGif,GAAGtf,EAAE9K,EACpBqqB,EAA6BH,EAAU/e,GAAGif,GAAGtf,QAI7C,IAFAif,EAAOG,EAAU/e,GAAGif,GAAGtf,EAAE7K,OAEpB6K,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACrBof,EAAU/e,GAAGif,GAAGtf,EAAEA,GAAG2D,GACvB4b,EAA6BH,EAAU/e,GAAGif,GAAGtf,EAAEA,GAAG2D,EAAE,IAGlDyb,EAAU/e,GAAGif,GAAGtf,EAAEA,GAAGrE,GACvB4jB,EAA6BH,EAAU/e,GAAGif,GAAGtf,EAAEA,GAAGrE,EAAE,GAK9D,CAEqB,IAAjBojB,EAAUS,IACZT,EAAUF,OAASY,EAAeV,EAAUW,MAAOZ,GACnDF,EAAeG,EAAUF,OAAQC,IACP,IAAjBC,EAAUS,GACnBG,EAAeZ,EAAUa,QACC,IAAjBb,EAAUS,IACnBK,EAAad,EAEjB,CAEJ,CA4CA,SAASU,EAAe9gB,EAAImgB,GAC1B,IAAIgB,EAhBN,SAAkBnhB,EAAImgB,GAIpB,IAHA,IAAI5pB,EAAI,EACJ6gB,EAAM+I,EAAM3pB,OAETD,EAAI6gB,GAAK,CACd,GAAI+I,EAAM5pB,GAAGyJ,KAAOA,EAClB,OAAOmgB,EAAM5pB,GAGfA,GAAK,CACP,CAEA,OAAO,IACT,CAGa6qB,CAASphB,EAAImgB,GAExB,OAAIgB,EACGA,EAAKjB,OAAOmB,OAKVha,KAAKia,MAAMja,KAAKE,UAAU4Z,EAAKjB,UAJpCiB,EAAKjB,OAAOmB,QAAS,EACdF,EAAKjB,QAMT,IACT,CAEA,SAASc,EAAezH,GACtB,IAAIhjB,EAEAmL,EACA2e,EAEJ,IAAK9pB,EAJKgjB,EAAI/iB,OAIC,EAAGD,GAAK,EAAGA,GAAK,EAC7B,GAAkB,OAAdgjB,EAAIhjB,GAAGsqB,GACT,GAAItH,EAAIhjB,GAAGgrB,GAAGlgB,EAAE9K,EACdqqB,EAA6BrH,EAAIhjB,GAAGgrB,GAAGlgB,QAIvC,IAFAgf,EAAO9G,EAAIhjB,GAAGgrB,GAAGlgB,EAAE7K,OAEdkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACrB6X,EAAIhjB,GAAGgrB,GAAGlgB,EAAEK,GAAGsD,GACjB4b,EAA6BrH,EAAIhjB,GAAGgrB,GAAGlgB,EAAEK,GAAGsD,EAAE,IAG5CuU,EAAIhjB,GAAGgrB,GAAGlgB,EAAEK,GAAG1E,GACjB4jB,EAA6BrH,EAAIhjB,GAAGgrB,GAAGlgB,EAAEK,GAAG1E,EAAE,QAI7B,OAAduc,EAAIhjB,GAAGsqB,IAChBG,EAAezH,EAAIhjB,GAAGoC,GAG5B,CAEA,SAASioB,EAA6BtB,GACpC,IAAI/oB,EACA6gB,EAAMkI,EAAK/oB,EAAEC,OAEjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB+oB,EAAK/oB,EAAEA,GAAG,IAAM+oB,EAAKlC,EAAE7mB,GAAG,GAC1B+oB,EAAK/oB,EAAEA,GAAG,IAAM+oB,EAAKlC,EAAE7mB,GAAG,GAC1B+oB,EAAKpT,EAAE3V,GAAG,IAAM+oB,EAAKlC,EAAE7mB,GAAG,GAC1B+oB,EAAKpT,EAAE3V,GAAG,IAAM+oB,EAAKlC,EAAE7mB,GAAG,EAE9B,CAEA,SAASirB,EAAaC,EAASC,GAC7B,IAAIC,EAAcD,EAAoBA,EAAkBjnB,MAAM,KAAO,CAAC,IAAK,IAAK,KAEhF,OAAIgnB,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,MAIzBA,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,MAIzBA,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,KAItB,MACT,CAEA,IAAIG,EAAY,WACd,IAAIC,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASC,EAAgBC,GACvB,IAAIC,EAAeD,EAAUnY,EAAE2T,EAC/BwE,EAAUnY,EAAE2T,EAAI,CACdlc,EAAG,CAAC,CACF2D,EAAGgd,EACHpY,EAAG,IAGT,CAEA,SAASqY,EAAc/B,GACrB,IAAI3pB,EACA6gB,EAAM8I,EAAO1pB,OAEjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACH,IAAjB2pB,EAAO3pB,GAAGsqB,IACZiB,EAAgB5B,EAAO3pB,GAG7B,CAEA,OAAO,SAAU2rB,GACf,GAAIV,EAAaK,EAAgBK,EAAc9E,KAC7C6E,EAAcC,EAAchC,QAExBgC,EAAcC,QAAQ,CACxB,IAAI5rB,EACA6gB,EAAM8K,EAAcC,OAAO3rB,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpB2rB,EAAcC,OAAO5rB,GAAG2pB,QAC1B+B,EAAcC,EAAcC,OAAO5rB,GAAG2pB,OAG5C,CAEJ,CACF,CAxCgB,GA0CZkC,EAAa,WACf,IAAIP,EAAiB,CAAC,EAAG,EAAG,IAC5B,OAAO,SAAUK,GACf,GAAIA,EAAcG,QAAUb,EAAaK,EAAgBK,EAAc9E,GAAI,CACzE,IAAI7mB,EACA6gB,EAAM8K,EAAcG,MAAM7rB,OAE9B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAC3B,IAAI+rB,EAAWJ,EAAcG,MAAM9rB,GAE/B+rB,EAAS/C,MAAQ+C,EAAS/C,KAAK0B,SACjCD,EAAesB,EAAS/C,KAAK0B,QAC7BqB,EAAS/C,KAAKgD,GAAK,EACnBD,EAAS/C,KAAKiD,GAAK,MACnBF,EAAS/C,KAAKkD,GAAK,EACnBH,EAAS/C,KAAKmD,GAAK,EACnBJ,EAAS/C,KAAKgC,GAAK,CACjBhV,EAAG,CACDlL,EAAG,CAAC,EAAG,GACPpH,EAAG,GAEL+K,EAAG,CACD3D,EAAG,CAAC,IAAK,KACTpH,EAAG,GAELA,EAAG,CACDoH,EAAG,CAAC,EAAG,GACPpH,EAAG,GAELmS,EAAG,CACD/K,EAAG,EACHpH,EAAG,GAELiS,EAAG,CACD7K,EAAG,IACHpH,EAAG,IAIFioB,EAAcG,MAAM9rB,GAAGqT,IAC1B0Y,EAAS/C,KAAK0B,OAAO/lB,KAAK,CACxB2lB,GAAI,OAENyB,EAAS/C,KAAK0B,OAAO,GAAGtoB,GAAGuC,KAAK,CAC9BqR,EAAG,CACDlL,EAAG,CAAC,EAAG,GACPpH,EAAG,GAEL+K,EAAG,CACD3D,EAAG,CAAC,IAAK,KACTpH,EAAG,GAELA,EAAG,CACDoH,EAAG,CAAC,EAAG,GACPpH,EAAG,GAELmS,EAAG,CACD/K,EAAG,EACHpH,EAAG,GAELiS,EAAG,CACD7K,EAAG,IACHpH,EAAG,GAEL0oB,GAAI,CACFthB,EAAG,EACHpH,EAAG,GAEL2oB,GAAI,CACFvhB,EAAG,EACHpH,EAAG,GAEL4mB,GAAI,QAIZ,CACF,CACF,CACF,CA/EiB,GAiFbgC,EAAsB,WACxB,IAAIhB,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASC,EAAgBC,GACvB,IAAIe,EAAWf,EAAUnY,EAAE2C,EAED,kBAAfuW,EAAS7oB,IAClB6oB,EAAS7oB,EAAI,CACXA,EAAG,EACHoH,EAAGyhB,EAAS7oB,IAIU,kBAAf6oB,EAASvW,IAClBuW,EAASvW,EAAI,CACXtS,EAAG,EACHoH,EAAGyhB,EAASvW,IAIU,kBAAfuW,EAAS1W,IAClB0W,EAAS1W,EAAI,CACXnS,EAAG,EACHoH,EAAGyhB,EAAS1W,GAGlB,CAEA,SAAS6V,EAAc/B,GACrB,IAAI3pB,EACA6gB,EAAM8I,EAAO1pB,OAEjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACH,IAAjB2pB,EAAO3pB,GAAGsqB,IACZiB,EAAgB5B,EAAO3pB,GAG7B,CAEA,OAAO,SAAU2rB,GACf,GAAIV,EAAaK,EAAgBK,EAAc9E,KAC7C6E,EAAcC,EAAchC,QAExBgC,EAAcC,QAAQ,CACxB,IAAI5rB,EACA6gB,EAAM8K,EAAcC,OAAO3rB,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpB2rB,EAAcC,OAAO5rB,GAAG2pB,QAC1B+B,EAAcC,EAAcC,OAAO5rB,GAAG2pB,OAG5C,CAEJ,CACF,CAvD0B,GAyDtB6C,EAAc,WAChB,IAAIlB,EAAiB,CAAC,EAAG,EAAG,GAE5B,SAASmB,EAAc/B,GACrB,IAAI1qB,EAEAmL,EACA2e,EAFAjJ,EAAM6J,EAAOzqB,OAIjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAqB,OAAjB0qB,EAAO1qB,GAAGsqB,GACZmC,EAAc/B,EAAO1qB,GAAGoC,SACnB,GAAqB,OAAjBsoB,EAAO1qB,GAAGsqB,IAAgC,OAAjBI,EAAO1qB,GAAGsqB,GAC5C,GAAII,EAAO1qB,GAAG4D,EAAEkH,GAAK4f,EAAO1qB,GAAG4D,EAAEkH,EAAE,GAAG9K,EAGpC,IAFA8pB,EAAOY,EAAO1qB,GAAG4D,EAAEkH,EAAE7K,OAEhBkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACrBuf,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAGsD,IACnBic,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAGsD,EAAE,IAAM,IACzBic,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAGsD,EAAE,IAAM,IACzBic,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAGsD,EAAE,IAAM,IACzBic,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAGsD,EAAE,IAAM,KAGvBic,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAG1E,IACnBikB,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAG1E,EAAE,IAAM,IACzBikB,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAG1E,EAAE,IAAM,IACzBikB,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAG1E,EAAE,IAAM,IACzBikB,EAAO1qB,GAAG4D,EAAEkH,EAAEK,GAAG1E,EAAE,IAAM,UAI7BikB,EAAO1qB,GAAG4D,EAAEkH,EAAE,IAAM,IACpB4f,EAAO1qB,GAAG4D,EAAEkH,EAAE,IAAM,IACpB4f,EAAO1qB,GAAG4D,EAAEkH,EAAE,IAAM,IACpB4f,EAAO1qB,GAAG4D,EAAEkH,EAAE,IAAM,GAI5B,CAEA,SAAS4gB,EAAc/B,GACrB,IAAI3pB,EACA6gB,EAAM8I,EAAO1pB,OAEjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACH,IAAjB2pB,EAAO3pB,GAAGsqB,IACZmC,EAAc9C,EAAO3pB,GAAG0qB,OAG9B,CAEA,OAAO,SAAUiB,GACf,GAAIV,EAAaK,EAAgBK,EAAc9E,KAC7C6E,EAAcC,EAAchC,QAExBgC,EAAcC,QAAQ,CACxB,IAAI5rB,EACA6gB,EAAM8K,EAAcC,OAAO3rB,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpB2rB,EAAcC,OAAO5rB,GAAG2pB,QAC1B+B,EAAcC,EAAcC,OAAO5rB,GAAG2pB,OAG5C,CAEJ,CACF,CApEkB,GAsEd+C,EAAc,WAChB,IAAIpB,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASqB,EAAsB3J,GAC7B,IAAIhjB,EAEAmL,EACA2e,EAEJ,IAAK9pB,EAJKgjB,EAAI/iB,OAIC,EAAGD,GAAK,EAAGA,GAAK,EAC7B,GAAkB,OAAdgjB,EAAIhjB,GAAGsqB,GACT,GAAItH,EAAIhjB,GAAGgrB,GAAGlgB,EAAE9K,EACdgjB,EAAIhjB,GAAGgrB,GAAGlgB,EAAElH,EAAIof,EAAIhjB,GAAG4sB,YAIvB,IAFA9C,EAAO9G,EAAIhjB,GAAGgrB,GAAGlgB,EAAE7K,OAEdkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACrB6X,EAAIhjB,GAAGgrB,GAAGlgB,EAAEK,GAAGsD,IACjBuU,EAAIhjB,GAAGgrB,GAAGlgB,EAAEK,GAAGsD,EAAE,GAAG7K,EAAIof,EAAIhjB,GAAG4sB,QAG7B5J,EAAIhjB,GAAGgrB,GAAGlgB,EAAEK,GAAG1E,IACjBuc,EAAIhjB,GAAGgrB,GAAGlgB,EAAEK,GAAG1E,EAAE,GAAG7C,EAAIof,EAAIhjB,GAAG4sB,YAId,OAAd5J,EAAIhjB,GAAGsqB,IAChBqC,EAAsB3J,EAAIhjB,GAAGoC,GAGnC,CAEA,SAASspB,EAAc/B,GACrB,IAAIE,EACA7pB,EAEAmL,EACA2e,EACAhf,EACAif,EAJAlJ,EAAM8I,EAAO1pB,OAMjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAG3B,IAFA6pB,EAAYF,EAAO3pB,IAELiqB,QAAS,CACrB,IAAIC,EAAYL,EAAUM,gBAG1B,IAFAL,EAAOI,EAAUjqB,OAEZkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzB,GAAI+e,EAAU/e,GAAGif,GAAGtf,EAAE9K,EACpBkqB,EAAU/e,GAAGif,GAAGtf,EAAElH,EAAIsmB,EAAU/e,GAAG0hB,QAInC,IAFA9C,EAAOG,EAAU/e,GAAGif,GAAGtf,EAAE7K,OAEpB6K,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACrBof,EAAU/e,GAAGif,GAAGtf,EAAEA,GAAG2D,IACvByb,EAAU/e,GAAGif,GAAGtf,EAAEA,GAAG2D,EAAE,GAAG7K,EAAIsmB,EAAU/e,GAAG0hB,IAGzC3C,EAAU/e,GAAGif,GAAGtf,EAAEA,GAAGrE,IACvByjB,EAAU/e,GAAGif,GAAGtf,EAAEA,GAAGrE,EAAE,GAAG7C,EAAIsmB,EAAU/e,GAAG0hB,GAKrD,CAEqB,IAAjBhD,EAAUS,IACZqC,EAAsB9C,EAAUa,OAEpC,CACF,CAEA,OAAO,SAAUiB,GACf,GAAIV,EAAaK,EAAgBK,EAAc9E,KAC7C6E,EAAcC,EAAchC,QAExBgC,EAAcC,QAAQ,CACxB,IAAI5rB,EACA6gB,EAAM8K,EAAcC,OAAO3rB,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpB2rB,EAAcC,OAAO5rB,GAAG2pB,QAC1B+B,EAAcC,EAAcC,OAAO5rB,GAAG2pB,OAG5C,CAEJ,CACF,CAzFkB,GA0GlB,SAASgB,EAAa3B,GACI,IAApBA,EAAK3V,EAAE3P,EAAEzD,QAAyB+oB,EAAK3V,EAAE2C,CAE/C,CAEA,IAAI8W,EAAW,CACfA,aArBA,SAAsBnB,GAChBA,EAAcoB,aAIlBP,EAAYb,GACZN,EAAUM,GACVE,EAAWF,GACXW,EAAoBX,GACpBe,EAAYf,GACZjC,EAAeiC,EAAchC,OAAQgC,EAAcC,QA/drD,SAAuBE,EAAOF,GAC5B,GAAIE,EAAO,CACT,IAAI9rB,EAAI,EACJ6gB,EAAMiL,EAAM7rB,OAEhB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACL,IAAf8rB,EAAM9rB,GAAGqT,IAEXyY,EAAM9rB,GAAGgpB,KAAKW,OAASY,EAAeuB,EAAM9rB,GAAGgpB,KAAKwB,MAAOoB,GAa3DlC,EAAeoC,EAAM9rB,GAAGgpB,KAAKW,OAAQiC,GAG3C,CACF,CAucEoB,CAAcrB,EAAcG,MAAOH,EAAcC,QACjDD,EAAcoB,YAAa,EAC7B,GAcA,OALAD,EAASN,YAAcA,EACvBM,EAASjB,WAAaA,EACtBiB,EAASR,oBAAsBA,EAC/BQ,EAASJ,YAAcA,EACvBI,EAASpD,eAAiBA,EACnBoD,CACT,CAG4BG,IAGvBhE,EAAYiE,cACfjE,EAAYiE,YAAc,WACxB,SAASC,EAAeC,GAGtB,IAAIC,EAAoBD,EAAIE,kBAAkB,gBAE9C,OAAID,GAA0C,SAArBD,EAAIG,eAAkE,IAAvCF,EAAkBG,QAAQ,SAI9EJ,EAAIK,UAAwC,WAA5BnF,UAAU8E,EAAIK,UAHzBL,EAAIK,SAOTL,EAAIK,UAAoC,kBAAjBL,EAAIK,SACtB3c,KAAKia,MAAMqC,EAAIK,UAGpBL,EAAIM,aACC5c,KAAKia,MAAMqC,EAAIM,cAGjB,IACT,CAyCA,MAAO,CACLC,KAxCF,SAAmB5E,EAAM6E,EAAUC,EAAUC,GAC3C,IAAIL,EACAL,EAAM,IAAIW,eAEd,IAEEX,EAAIG,aAAe,MACrB,CAAE,MAAOS,GAAM,CAGfZ,EAAIa,mBAAqB,WACvB,GAAuB,IAAnBb,EAAIc,WACN,GAAmB,MAAfd,EAAIe,OACNV,EAAWN,EAAeC,GAC1BS,EAASJ,QAET,IACEA,EAAWN,EAAeC,GAC1BS,EAASJ,EACX,CAAE,MAAOO,GACHF,GACFA,EAAcE,EAElB,CAGN,EAEA,IAEEZ,EAAIphB,KAAK,CAAC,IAAK,IAAK,KAAKjB,KAAK,IAAKge,GAAM,EAC3C,CAAE,MAAOpU,GAEPyY,EAAIphB,KAAK,CAAC,IAAK,IAAK,KAAKjB,KAAK,IAAK6iB,EAAW,IAAM7E,GAAM,EAC5D,CAEAqE,EAAIgB,MACN,EAKF,CAnE0B,IAsER,kBAAhB3nB,EAAEuiB,KAAK9jB,KACT+jB,EAAYiE,YAAYS,KAAKlnB,EAAEuiB,KAAKD,KAAMtiB,EAAEuiB,KAAK4E,UAAU,SAAU5E,GACnEC,EAAYV,YAAY8F,aAAarF,GAErCC,EAAYH,YAAY,CACtBrf,GAAIhD,EAAEuiB,KAAKvf,GACX6kB,QAAStF,EACTmF,OAAQ,WAEZ,IAAG,WACDlF,EAAYH,YAAY,CACtBrf,GAAIhD,EAAEuiB,KAAKvf,GACX0kB,OAAQ,SAEZ,SACK,GAAoB,aAAhB1nB,EAAEuiB,KAAK9jB,KAAqB,CACrC,IAAIqpB,EAAY9nB,EAAEuiB,KAAKuF,UAEvBtF,EAAYV,YAAY8F,aAAaE,GAErCtF,EAAYH,YAAY,CACtBrf,GAAIhD,EAAEuiB,KAAKvf,GACX6kB,QAASC,EACTJ,OAAQ,WAEZ,KAA2B,aAAhB1nB,EAAEuiB,KAAK9jB,MAChB+jB,EAAYiE,YAAYS,KAAKlnB,EAAEuiB,KAAKD,KAAMtiB,EAAEuiB,KAAK4E,UAAU,SAAU5E,GACnEC,EAAYH,YAAY,CACtBrf,GAAIhD,EAAEuiB,KAAKvf,GACX6kB,QAAStF,EACTmF,OAAQ,WAEZ,IAAG,WACDlF,EAAYH,YAAY,CACtBrf,GAAIhD,EAAEuiB,KAAKvf,GACX0kB,OAAQ,SAEZ,GAEJ,IAEA1F,EAAeI,UAAY,SAAU2F,GACnC,IAAIxF,EAAOwF,EAAMxF,KACbvf,EAAKuf,EAAKvf,GACVglB,EAAU9F,EAAUlf,GACxBkf,EAAUlf,GAAM,KAEI,YAAhBuf,EAAKmF,OACPM,EAAQC,WAAW1F,EAAKsF,SACfG,EAAQE,SACjBF,EAAQE,SAEZ,EAEJ,CAEA,SAASC,EAAcF,EAAYC,GAEjC,IAAIllB,EAAK,cADTif,GAAc,GAMd,OAJAC,EAAUlf,GAAM,CACdilB,WAAYA,EACZC,QAASA,GAEJllB,CACT,CAkCA,MAAO,CACLolB,cAjCF,SAAuB9F,EAAM2F,EAAYC,GACvCzF,IACA,IAAI4F,EAAYF,EAAcF,EAAYC,GAC1ClG,EAAeK,YAAY,CACzB5jB,KAAM,gBACN6jB,KAAMA,EACN6E,SAAUlnB,OAAOqoB,SAASC,OAAStoB,OAAOqoB,SAASE,SACnDxlB,GAAIqlB,GAER,EAyBEI,SAvBF,SAAkBnG,EAAM2F,EAAYC,GAClCzF,IACA,IAAI4F,EAAYF,EAAcF,EAAYC,GAC1ClG,EAAeK,YAAY,CACzB5jB,KAAM,WACN6jB,KAAMA,EACN6E,SAAUlnB,OAAOqoB,SAASC,OAAStoB,OAAOqoB,SAASE,SACnDxlB,GAAIqlB,GAER,EAeEK,kBAbF,SAA2BC,EAAMV,EAAYC,GAC3CzF,IACA,IAAI4F,EAAYF,EAAcF,EAAYC,GAC1ClG,EAAeK,YAAY,CACzB5jB,KAAM,WACNqpB,UAAWa,EACX3lB,GAAIqlB,GAER,EAOF,CA9vBkB,GAgwBdO,eAAiB,WACnB,IAAIC,EAAa,WACf,IAAIC,EAAS/O,UAAU,UACvB+O,EAAOC,MAAQ,EACfD,EAAOrY,OAAS,EAChB,IAAIrS,EAAM0qB,EAAOE,WAAW,MAG5B,OAFA5qB,EAAI6qB,UAAY,gBAChB7qB,EAAI8qB,SAAS,EAAG,EAAG,EAAG,GACfJ,CACT,CARiB,GAUjB,SAASK,IACPzpB,KAAK0pB,cAAgB,EAEjB1pB,KAAK0pB,eAAiB1pB,KAAK2pB,aAAe3pB,KAAK4pB,sBAAwB5pB,KAAK6pB,eAC1E7pB,KAAK8pB,gBACP9pB,KAAK8pB,eAAe,KAG1B,CAEA,SAASC,IACP/pB,KAAK4pB,qBAAuB,EAExB5pB,KAAK0pB,eAAiB1pB,KAAK2pB,aAAe3pB,KAAK4pB,sBAAwB5pB,KAAK6pB,eAC1E7pB,KAAK8pB,gBACP9pB,KAAK8pB,eAAe,KAG1B,CAEA,SAASE,EAAcC,EAAWC,EAAYC,GAC5C,IAAIvH,EAAO,GAEX,GAAIqH,EAAU3pB,EACZsiB,EAAOqH,EAAUpa,OACZ,GAAIqa,EAAY,CACrB,IAAIE,EAAYH,EAAUpa,GAEY,IAAlCua,EAAU/C,QAAQ,aACpB+C,EAAYA,EAAUrsB,MAAM,KAAK,IAGnC6kB,EAAOsH,EAAaE,CACtB,MACExH,EAAOuH,EACPvH,GAAQqH,EAAUra,EAAIqa,EAAUra,EAAI,GACpCgT,GAAQqH,EAAUpa,EAGpB,OAAO+S,CACT,CAEA,SAASyH,EAAgBC,GACvB,IAAI9J,EAAS,EACT+J,EAAaC,YAAY,YACjBF,EAAIG,UAENpB,OAAS7I,EAAS,OACxBxgB,KAAK0qB,eAELC,cAAcJ,IAGhB/J,GAAU,CACZ,EAAEoK,KAAK5qB,MAAO,GAChB,CAkDA,SAAS6qB,EAAkBhI,GACzB,IAAIiI,EAAK,CACPb,UAAWpH,GAETD,EAAOoH,EAAcnH,EAAM7iB,KAAKkqB,WAAYlqB,KAAK4iB,MAUrD,OATAR,YAAY2G,SAASnG,EAAM,SAAUmI,GACnCD,EAAGR,IAAMS,EAET/qB,KAAKgrB,gBACP,EAAEJ,KAAK5qB,MAAO,WACZ8qB,EAAGR,IAAM,CAAC,EAEVtqB,KAAKgrB,gBACP,EAAEJ,KAAK5qB,OACA8qB,CACT,CAiEA,SAASG,IACPjrB,KAAK0qB,aAAejB,EAAYmB,KAAK5qB,MACrCA,KAAKgrB,eAAiBjB,EAAca,KAAK5qB,MACzCA,KAAKqqB,gBAAkBA,EAAgBO,KAAK5qB,MAC5CA,KAAK6qB,kBAAoBA,EAAkBD,KAAK5qB,MAChDA,KAAKkqB,WAAa,GAClBlqB,KAAK4iB,KAAO,GACZ5iB,KAAK2pB,YAAc,EACnB3pB,KAAK6pB,cAAgB,EACrB7pB,KAAK0pB,aAAe,EACpB1pB,KAAK4pB,oBAAsB,EAC3B5pB,KAAK8pB,eAAiB,KACtB9pB,KAAKkrB,OAAS,EAChB,CAgBA,OAdAD,EAAsB3wB,UAAY,CAChC6wB,WA/EF,SAAoB1F,EAAQ2F,GAE1B,IAAIvxB,EADJmG,KAAK8pB,eAAiBsB,EAEtB,IAAI1Q,EAAM+K,EAAO3rB,OAEjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACnB4rB,EAAO5rB,GAAG2pB,SACRiC,EAAO5rB,GAAGqT,GAAqB,QAAhBuY,EAAO5rB,GAAGqT,EAGH,IAAhBuY,EAAO5rB,GAAGqT,IACnBlN,KAAK6pB,eAAiB,EACtB7pB,KAAKkrB,OAAO1sB,KAAKwB,KAAK6qB,kBAAkBpF,EAAO5rB,OAJ/CmG,KAAK2pB,aAAe,EACpB3pB,KAAKkrB,OAAO1sB,KAAKwB,KAAKqrB,iBAAiB5F,EAAO5rB,MAOtD,EAgEEyxB,cA1DF,SAAuB1I,GACrB5iB,KAAKkqB,WAAatH,GAAQ,EAC5B,EAyDE2I,QA/DF,SAAiB3I,GACf5iB,KAAK4iB,KAAOA,GAAQ,EACtB,EA8DE4I,aApCF,WACE,OAAOxrB,KAAK2pB,cAAgB3pB,KAAK0pB,YACnC,EAmCE+B,eAjCF,WACE,OAAOzrB,KAAK6pB,gBAAkB7pB,KAAK4pB,mBACrC,EAgCE3W,QA3CF,WACEjT,KAAK8pB,eAAiB,KACtB9pB,KAAKkrB,OAAOpxB,OAAS,CACvB,EAyCE4xB,SA3DF,SAAkBzB,GAIhB,IAHA,IAAIpwB,EAAI,EACJ6gB,EAAM1a,KAAKkrB,OAAOpxB,OAEfD,EAAI6gB,GAAK,CACd,GAAI1a,KAAKkrB,OAAOrxB,GAAGowB,YAAcA,EAC/B,OAAOjqB,KAAKkrB,OAAOrxB,GAAGywB,IAGxBzwB,GAAK,CACP,CAEA,OAAO,IACT,EA+CE8xB,cAzHF,SAAuB1B,GACrB,IAAIrH,EAAOoH,EAAcC,EAAWjqB,KAAKkqB,WAAYlqB,KAAK4iB,MACtD0H,EAAMjQ,UAAU,OACpBiQ,EAAIsB,YAAc,YAClBtB,EAAIuB,iBAAiB,OAAQ7rB,KAAK0qB,cAAc,GAChDJ,EAAIuB,iBAAiB,QAAS,WAC5Bf,EAAGR,IAAMnB,EAETnpB,KAAK0qB,cACP,EAAEE,KAAK5qB,OAAO,GACdsqB,EAAI3kB,IAAMid,EACV,IAAIkI,EAAK,CACPR,IAAKA,EACLL,UAAWA,GAEb,OAAOa,CACT,EA0GEgB,gBAxJF,SAAyB7B,GACvB,IAAIrH,EAAOoH,EAAcC,EAAWjqB,KAAKkqB,WAAYlqB,KAAK4iB,MACtD0H,EAAMrI,SAAS,SAEf1E,SACFvd,KAAKqqB,gBAAgBC,GAErBA,EAAIuB,iBAAiB,OAAQ7rB,KAAK0qB,cAAc,GAGlDJ,EAAIuB,iBAAiB,QAAS,WAC5Bf,EAAGR,IAAMnB,EAETnpB,KAAK0qB,cACP,EAAEE,KAAK5qB,OAAO,GACdsqB,EAAIyB,eAAe,+BAAgC,OAAQnJ,GAEvD5iB,KAAKgsB,eAAeC,OACtBjsB,KAAKgsB,eAAeC,OAAO3B,GAE3BtqB,KAAKgsB,eAAeE,YAAY5B,GAGlC,IAAIQ,EAAK,CACPR,IAAKA,EACLL,UAAWA,GAEb,OAAOa,CACT,EA6HErB,YAAaA,EACbM,cAAeA,EACfoC,aApCF,SAAsBptB,EAAMqtB,GACb,QAATrtB,GACFiB,KAAKgsB,eAAiBI,EACtBpsB,KAAKqrB,iBAAmBrrB,KAAK8rB,gBAAgBlB,KAAK5qB,OAElDA,KAAKqrB,iBAAmBrrB,KAAK2rB,cAAcf,KAAK5qB,KAEpD,GA+BOirB,CACT,CAlOqB,GAoOrB,SAASoB,YAAa,CAEtBA,UAAU/xB,UAAY,CACpBgyB,aAAc,SAAsBC,EAAWzf,GAC7C,GAAI9M,KAAKwsB,KAAKD,GAGZ,IAFA,IAAIE,EAAYzsB,KAAKwsB,KAAKD,GAEjB1yB,EAAI,EAAGA,EAAI4yB,EAAU3yB,OAAQD,GAAK,EACzC4yB,EAAU5yB,GAAGiT,EAGnB,EACA+e,iBAAkB,SAA0BU,EAAW7E,GAOrD,OANK1nB,KAAKwsB,KAAKD,KACbvsB,KAAKwsB,KAAKD,GAAa,IAGzBvsB,KAAKwsB,KAAKD,GAAW/tB,KAAKkpB,GAEnB,WACL1nB,KAAK0sB,oBAAoBH,EAAW7E,EACtC,EAAEkD,KAAK5qB,KACT,EACA0sB,oBAAqB,SAA6BH,EAAW7E,GAC3D,GAAKA,GAEE,GAAI1nB,KAAKwsB,KAAKD,GAAY,CAI/B,IAHA,IAAI1yB,EAAI,EACJ6gB,EAAM1a,KAAKwsB,KAAKD,GAAWzyB,OAExBD,EAAI6gB,GACL1a,KAAKwsB,KAAKD,GAAW1yB,KAAO6tB,IAC9B1nB,KAAKwsB,KAAKD,GAAWrZ,OAAOrZ,EAAG,GAE/BA,GAAK,EACL6gB,GAAO,GAGT7gB,GAAK,EAGFmG,KAAKwsB,KAAKD,GAAWzyB,SACxBkG,KAAKwsB,KAAKD,GAAa,KAE3B,OAnBEvsB,KAAKwsB,KAAKD,GAAa,IAoB3B,GAGF,IAAII,aAAe,WACjB,SAASC,EAAkBzE,GAMzB,IALA,IAEI0E,EAFAC,EAAQ3E,EAAQpqB,MAAM,QACtB+D,EAAO,CAAC,EAERirB,EAAY,EAEPlzB,EAAI,EAAGA,EAAIizB,EAAMhzB,OAAQD,GAAK,EAGjB,KAFpBgzB,EAAOC,EAAMjzB,GAAGkE,MAAM,MAEbjE,SACPgI,EAAK+qB,EAAK,IAAMA,EAAK,GAAGG,OACxBD,GAAa,GAIjB,GAAkB,IAAdA,EACF,MAAM,IAAItZ,MAGZ,OAAO3R,CACT,CAEA,OAAO,SAAUmrB,GAGf,IAFA,IAAIC,EAAU,GAELrzB,EAAI,EAAGA,EAAIozB,EAASnzB,OAAQD,GAAK,EAAG,CAC3C,IAAIszB,EAAUF,EAASpzB,GACnBuzB,EAAa,CACfvU,KAAMsU,EAAQE,GACd5f,SAAU0f,EAAQG,IAGpB,IACEF,EAAWjF,QAAUxd,KAAKia,MAAMqI,EAASpzB,GAAG0zB,GAC9C,CAAE,MAAOC,GACP,IACEJ,EAAWjF,QAAUyE,EAAkBK,EAASpzB,GAAG0zB,GACrD,CAAE,MAAOE,GACPL,EAAWjF,QAAU,CACnBnpB,KAAMiuB,EAASpzB,GAAG0zB,GAEtB,CACF,CAEAL,EAAQ1uB,KAAK4uB,EACf,CAEA,OAAOF,CACT,CACF,CAlDmB,GAoDfQ,iBAAmB,WACrB,SAASC,EAAoBlJ,GAC3BzkB,KAAK4tB,aAAapvB,KAAKimB,EACzB,CAEA,OAAO,WACL,SAASoJ,EAAqB7uB,GAI5B,IAHA,IAAInF,EAAI,EACJ6gB,EAAM1a,KAAK4tB,aAAa9zB,OAErBD,EAAI6gB,GAAK,CACd,GAAI1a,KAAK4tB,aAAa/zB,GAAGgpB,MAAQ7iB,KAAK4tB,aAAa/zB,GAAGgpB,KAAKiL,KAAO9uB,EAKhE,OAJIgB,KAAK4tB,aAAa/zB,GAAGk0B,cAAgB/tB,KAAK4tB,aAAa/zB,GAAGgpB,KAAKmL,IACjEhuB,KAAK4tB,aAAa/zB,GAAGk0B,aAAa/tB,KAAKiuB,cAGlCjuB,KAAK4tB,aAAa/zB,GAAGq0B,cAG9Br0B,GAAK,CACP,CAEA,OAAO,IACT,CAKA,OAHAg0B,EAAqBD,aAAe,GACpCC,EAAqBI,aAAe,EACpCJ,EAAqBF,oBAAsBA,EACpCE,CACT,CACF,CA9BuB,GAgCnBM,UAAY,CAAC,EAEbC,iBAAmB,SAA0Bj0B,EAAKkB,GACpD8yB,UAAUh0B,GAAOkB,CACnB,EAEA,SAASgzB,YAAYl0B,GACnB,OAAOg0B,UAAUh0B,EACnB,CAEA,SAASm0B,wBAEP,GAAIH,UAAU/E,OACZ,MAAO,SAIT,IAAK,IAAIjvB,KAAOg0B,UACd,GAAIA,UAAUh0B,GACZ,OAAOA,EAIX,MAAO,EACT,CAEA,SAASo0B,UAAUj1B,GAAuV,OAA1Oi1B,UAArD,oBAAX/pB,QAAoD,kBAApBA,OAAOoH,SAAqC,SAAiBtS,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkL,QAAyBlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAAK,EAAYi1B,UAAUj1B,EAAM,CAEjY,IAAIk1B,cAAgB,WAClBxuB,KAAKwsB,KAAO,GACZxsB,KAAKhB,KAAO,GACZgB,KAAK4iB,KAAO,GACZ5iB,KAAKyuB,UAAW,EAChBzuB,KAAKiuB,aAAe,EACpBjuB,KAAK0uB,gBAAkB,EACvB1uB,KAAKggB,WAAa,EAClBhgB,KAAKigB,YAAc,EACnBjgB,KAAK2uB,UAAY,EACjB3uB,KAAK4uB,UAAY,EACjB5uB,KAAK6uB,UAAY,EACjB7uB,KAAK8uB,cAAgB,EACrB9uB,KAAK+uB,UAAY,EACjB/uB,KAAKwlB,cAAgB,CAAC,EACtBxlB,KAAKylB,OAAS,GACdzlB,KAAKgvB,UAAW,EAChBhvB,KAAKivB,UAAW,EAChBjvB,KAAKkvB,MAAO,EACZlvB,KAAKmvB,SAAW,KAChBnvB,KAAKovB,YAAc7O,kBACnBvgB,KAAKkqB,WAAa,GAClBlqB,KAAKqvB,cAAgB,EACrBrvB,KAAKsvB,WAAa,EAClBtvB,KAAKuvB,kBAAoB/N,qBACzBxhB,KAAKwvB,SAAW,GAChBxvB,KAAKyvB,OAAQ,EACbzvB,KAAK0vB,gBAAiB,EACtB1vB,KAAK2vB,iBAAmBjC,mBACxB1tB,KAAK4vB,eAAiB,IAAI1G,eAC1BlpB,KAAK6vB,gBAAkB7U,yBACvBhb,KAAKktB,QAAU,GACfltB,KAAK8vB,gBAAkB9vB,KAAK8vB,gBAAgBlF,KAAK5qB,MACjDA,KAAK+vB,aAAe/vB,KAAK+vB,aAAanF,KAAK5qB,MAC3CA,KAAKgwB,kBAAoBhwB,KAAKgwB,kBAAkBpF,KAAK5qB,MACrDA,KAAKiwB,gBAAkB,IAAI3Q,kBAAkB,aAAc,EAAG,EAAG,GACjEtf,KAAKod,kBAAoBsE,sBAC3B,EAEApH,gBAAgB,CAAC+R,WAAYmC,eAE7BA,cAAcl0B,UAAU41B,UAAY,SAAUC,IACxCA,EAAOC,SAAWD,EAAOE,aAC3BrwB,KAAKowB,QAAUD,EAAOC,SAAWD,EAAOE,WAG1C,IAAIC,EAAW,MAEXH,EAAOG,SACTA,EAAWH,EAAOG,SACTH,EAAOhB,WAChBmB,EAAWH,EAAOhB,UAGpB,IAAIoB,EAAgBlC,YAAYiC,GAChCtwB,KAAKmvB,SAAW,IAAIoB,EAAcvwB,KAAMmwB,EAAOK,kBAC/CxwB,KAAK4vB,eAAezD,aAAamE,EAAUtwB,KAAKmvB,SAASsB,WAAWC,MACpE1wB,KAAKmvB,SAASwB,oBAAoB3wB,KAAK2vB,kBACvC3vB,KAAKswB,SAAWA,EAEI,KAAhBH,EAAOjB,MAA+B,OAAhBiB,EAAOjB,WAAiC5xB,IAAhB6yB,EAAOjB,OAAsC,IAAhBiB,EAAOjB,KACpFlvB,KAAKkvB,MAAO,GACa,IAAhBiB,EAAOjB,KAChBlvB,KAAKkvB,MAAO,EAEZlvB,KAAKkvB,KAAO9X,SAAS+Y,EAAOjB,KAAM,IAGpClvB,KAAKivB,WAAW,aAAckB,IAASA,EAAOlB,SAC9CjvB,KAAKhB,KAAOmxB,EAAOnxB,KAAOmxB,EAAOnxB,KAAO,GACxCgB,KAAK4wB,kBAAmBj2B,OAAOL,UAAUM,eAAeC,KAAKs1B,EAAQ,qBAAsBA,EAAOS,iBAClG5wB,KAAKkqB,WAAaiG,EAAOjG,WACzBlqB,KAAK6wB,eAAiBV,EAAOU,eAEzBV,EAAOjV,cACTlb,KAAK6vB,gBAAgBxT,gBAAgB8T,EAAOjV,cAG1CiV,EAAO3K,cACTxlB,KAAK8wB,eAAeX,EAAO3K,eAClB2K,EAAOvN,QACuB,IAAnCuN,EAAOvN,KAAKmO,YAAY,MAC1B/wB,KAAK4iB,KAAOuN,EAAOvN,KAAKoO,OAAO,EAAGb,EAAOvN,KAAKmO,YAAY,MAAQ,GAElE/wB,KAAK4iB,KAAOuN,EAAOvN,KAAKoO,OAAO,EAAGb,EAAOvN,KAAKmO,YAAY,KAAO,GAGnE/wB,KAAKixB,SAAWd,EAAOvN,KAAKoO,OAAOb,EAAOvN,KAAKmO,YAAY,KAAO,GAClE/wB,KAAKixB,SAAWjxB,KAAKixB,SAASD,OAAO,EAAGhxB,KAAKixB,SAASF,YAAY,UAClE3O,YAAYsG,cAAcyH,EAAOvN,KAAM5iB,KAAK8vB,gBAAiB9vB,KAAK+vB,cAEtE,EAEAvB,cAAcl0B,UAAUy1B,aAAe,WACrC/vB,KAAKkxB,QAAQ,cACf,EAEA1C,cAAcl0B,UAAUw2B,eAAiB,SAAUjO,GACjDT,YAAY4G,kBAAkBnG,EAAM7iB,KAAK8vB,gBAC3C,EAEAtB,cAAcl0B,UAAU62B,QAAU,SAAUf,EAAS5K,GAC/CA,GAC+B,WAA7B+I,UAAU/I,KACZA,EAAgB7a,KAAKia,MAAMY,IAI/B,IAAI2K,EAAS,CACXC,QAASA,EACT5K,cAAeA,GAEb4L,EAAoBhB,EAAQiB,WAChClB,EAAOvN,KAAOwO,EAAkBE,aAAa,uBAC3CF,EAAkBE,aAAa,uBAAuBj2B,MAAQ+1B,EAAkBE,aAAa,gBAC7FF,EAAkBE,aAAa,gBAAgBj2B,MAAQ+1B,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAWj2B,MAAQ,GACvJ80B,EAAOG,SAAWc,EAAkBE,aAAa,kBAC/CF,EAAkBE,aAAa,kBAAkBj2B,MAAQ+1B,EAAkBE,aAAa,gBACxFF,EAAkBE,aAAa,gBAAgBj2B,MAAQ+1B,EAAkBE,aAAa,WACtFF,EAAkBE,aAAa,WAAWj2B,MAAQ+1B,EAAkBE,aAAa,oBACjFF,EAAkBE,aAAa,oBAAoBj2B,MAAQ+1B,EAAkBE,aAAa,eAAiBF,EAAkBE,aAAa,eAAej2B,MAAQizB,yBAA2B,SAC9L,IAAIY,EAAOkC,EAAkBE,aAAa,kBACxCF,EAAkBE,aAAa,kBAAkBj2B,MAAQ+1B,EAAkBE,aAAa,gBACxFF,EAAkBE,aAAa,gBAAgBj2B,MAAQ+1B,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAWj2B,MAAQ,GAE1I,UAAT6zB,EACFiB,EAAOjB,MAAO,EACI,SAATA,EACTiB,EAAOjB,MAAO,EACI,KAATA,IACTiB,EAAOjB,KAAO9X,SAAS8X,EAAM,KAG/B,IAAID,EAAWmC,EAAkBE,aAAa,sBAC5CF,EAAkBE,aAAa,sBAAsBj2B,MAAQ+1B,EAAkBE,aAAa,oBAC5FF,EAAkBE,aAAa,oBAAoBj2B,OAAQ+1B,EAAkBE,aAAa,gBAAiBF,EAAkBE,aAAa,eAAej2B,MAC3J80B,EAAOlB,SAAwB,UAAbA,EAClBkB,EAAOnxB,KAAOoyB,EAAkBE,aAAa,aAC3CF,EAAkBE,aAAa,aAAaj2B,MAAQ+1B,EAAkBE,aAAa,gBACnFF,EAAkBE,aAAa,gBAAgBj2B,MAAQ+1B,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAWj2B,MAAQ,GAKrI,WAJF+1B,EAAkBE,aAAa,uBAC7CF,EAAkBE,aAAa,uBAAuBj2B,MAAQ+1B,EAAkBE,aAAa,qBAC7FF,EAAkBE,aAAa,qBAAqBj2B,MAAQ+1B,EAAkBE,aAAa,gBAAkBF,EAAkBE,aAAa,gBAAgBj2B,MAAQ,MAGpK80B,EAAOoB,WAAY,GAGhBpB,EAAOvN,KAGV5iB,KAAKkwB,UAAUC,GAFfnwB,KAAKkxB,QAAQ,UAIjB,EAEA1C,cAAcl0B,UAAUk3B,cAAgB,SAAU3O,GAC5CA,EAAKiD,GAAK9lB,KAAKwlB,cAAcM,KAC/B9lB,KAAKwlB,cAAcM,GAAKjD,EAAKiD,GAC7B9lB,KAAKigB,YAAczf,KAAKsI,MAAM+Z,EAAKiD,GAAK9lB,KAAKwlB,cAAcK,KAG7D,IACIhsB,EAGAmL,EAJAwe,EAASxjB,KAAKwlB,cAAchC,OAE5B9I,EAAM8I,EAAO1pB,OACb23B,EAAY5O,EAAKW,OAEjBG,EAAO8N,EAAU33B,OAErB,IAAKkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAGzB,IAFAnL,EAAI,EAEGA,EAAI6gB,GAAK,CACd,GAAI8I,EAAO3pB,GAAGyJ,KAAOmuB,EAAUzsB,GAAG1B,GAAI,CACpCkgB,EAAO3pB,GAAK43B,EAAUzsB,GACtB,KACF,CAEAnL,GAAK,CACP,CAQF,IALIgpB,EAAK8C,OAAS9C,EAAK6O,SACrB1xB,KAAKmvB,SAASsB,WAAWkB,YAAYC,SAAS/O,EAAK8C,OACnD3lB,KAAKmvB,SAASsB,WAAWkB,YAAYE,SAAShP,EAAK6O,MAAO1xB,KAAKmvB,SAASsB,WAAWC,OAGjF7N,EAAK4C,OAGP,IAFA/K,EAAMmI,EAAK4C,OAAO3rB,OAEbD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKwlB,cAAcC,OAAOjnB,KAAKqkB,EAAK4C,OAAO5rB,IAI/CmG,KAAKwlB,cAAcoB,YAAa,EAChCxE,YAAY4G,kBAAkBhpB,KAAKwlB,cAAexlB,KAAKgwB,kBACzD,EAEAxB,cAAcl0B,UAAU01B,kBAAoB,SAAUnN,GACpD7iB,KAAKwlB,cAAgB3C,EACrB,IAAIzF,EAAoBsE,uBAEpBtE,GACFA,EAAkB0U,gBAAgB9xB,MAGpCA,KAAK+xB,iBACP,EAEAvD,cAAcl0B,UAAUy3B,gBAAkB,WACxC,IAAIvC,EAAWxvB,KAAKwlB,cAAcgK,SAElC,IAAKA,GAAgC,IAApBA,EAAS11B,SAAiBkG,KAAK4wB,iBAG9C,OAFA5wB,KAAKkxB,QAAQ,mBACblxB,KAAKqvB,cAAgBrvB,KAAKigB,aAI5B,IAAI+R,EAAUxC,EAASyC,QACvBjyB,KAAKqvB,cAAgB2C,EAAQnZ,KAAO7Y,KAAK2uB,UACzC,IAAIuD,EAAclyB,KAAK4iB,KAAO5iB,KAAKixB,SAAW,IAAMjxB,KAAKsvB,WAAa,QACtEtvB,KAAKsvB,YAAc,EACnBlN,YAAY2G,SAASmJ,EAAalyB,KAAKwxB,cAAc5G,KAAK5qB,MAAO,WAC/DA,KAAKkxB,QAAQ,cACf,EAAEtG,KAAK5qB,MACT,EAEAwuB,cAAcl0B,UAAU63B,aAAe,WACtBnyB,KAAKwlB,cAAcgK,WAGhCxvB,KAAKqvB,cAAgBrvB,KAAKigB,aAG5BjgB,KAAK+xB,iBACP,EAEAvD,cAAcl0B,UAAU83B,aAAe,WACrCpyB,KAAKkxB,QAAQ,iBACblxB,KAAKqyB,aACP,EAEA7D,cAAcl0B,UAAUg4B,cAAgB,WACtCtyB,KAAK4vB,eAAetE,cAActrB,KAAKkqB,YACvClqB,KAAK4vB,eAAerE,QAAQvrB,KAAK4iB,MACjC5iB,KAAK4vB,eAAezE,WAAWnrB,KAAKwlB,cAAcC,OAAQzlB,KAAKoyB,aAAaxH,KAAK5qB,MACnF,EAEAwuB,cAAcl0B,UAAUw1B,gBAAkB,SAAUyC,GAClD,GAAKvyB,KAAKmvB,SAIV,IACEnvB,KAAKwlB,cAAgB+M,EAEjBvyB,KAAK6wB,gBACP7wB,KAAKigB,YAAczf,KAAKsI,MAAM9I,KAAK6wB,eAAe,GAAK7wB,KAAK6wB,eAAe,IAC3E7wB,KAAKggB,WAAaxf,KAAKke,MAAM1e,KAAK6wB,eAAe,MAEjD7wB,KAAKigB,YAAczf,KAAKsI,MAAM9I,KAAKwlB,cAAcM,GAAK9lB,KAAKwlB,cAAcK,IACzE7lB,KAAKggB,WAAaxf,KAAKke,MAAM1e,KAAKwlB,cAAcK,KAGlD7lB,KAAKmvB,SAASW,gBAAgByC,GAEzBA,EAAS9M,SACZ8M,EAAS9M,OAAS,IAGpBzlB,KAAKylB,OAASzlB,KAAKwlB,cAAcC,OACjCzlB,KAAK2uB,UAAY3uB,KAAKwlB,cAAcgN,GACpCxyB,KAAK4uB,UAAY5uB,KAAKwlB,cAAcgN,GAAK,IACzCxyB,KAAKmvB,SAASsD,wBAAwBF,EAAS9M,QAC/CzlB,KAAKktB,QAAUP,aAAa4F,EAASrF,SAAW,IAChDltB,KAAKkxB,QAAQ,gBACblxB,KAAKsyB,gBACLtyB,KAAKmyB,eACLnyB,KAAK0yB,oBACL1yB,KAAK2yB,qBAED3yB,KAAKgvB,UACPhvB,KAAK6vB,gBAAgBrU,OAEzB,CAAE,MAAOhN,GACPxO,KAAK4yB,mBAAmBpkB,EAC1B,CACF,EAEAggB,cAAcl0B,UAAUq4B,mBAAqB,WACtC3yB,KAAKmvB,WAINnvB,KAAKmvB,SAASsB,WAAWkB,YAAYlD,SACvCzuB,KAAKqyB,cAELrhB,WAAWhR,KAAK2yB,mBAAmB/H,KAAK5qB,MAAO,IAEnD,EAEAwuB,cAAcl0B,UAAU+3B,YAAc,WACpC,IAAKryB,KAAKyuB,UAAYzuB,KAAKmvB,SAASsB,WAAWkB,YAAYlD,WAAazuB,KAAK4vB,eAAepE,gBAAiD,WAA/BxrB,KAAKmvB,SAAS0D,eAA8B7yB,KAAK4vB,eAAenE,iBAAkB,CAC9LzrB,KAAKyuB,UAAW,EAChB,IAAIrR,EAAoBsE,uBAEpBtE,GACFA,EAAkB0U,gBAAgB9xB,MAGpCA,KAAKmvB,SAAS2D,YACd9hB,WAAW,WACThR,KAAKkxB,QAAQ,YACf,EAAEtG,KAAK5qB,MAAO,GACdA,KAAK+yB,YAED/yB,KAAKivB,UACPjvB,KAAKgc,MAET,CACF,EAEAwS,cAAcl0B,UAAU04B,OAAS,SAAU3J,EAAOtY,GAEhD,IAAIkiB,EAA0B,kBAAV5J,EAAqBA,OAAQ/rB,EAE7C41B,EAA4B,kBAAXniB,EAAsBA,OAASzT,EAEpD0C,KAAKmvB,SAASgE,oBAAoBF,EAAQC,EAC5C,EAEA1E,cAAcl0B,UAAU84B,YAAc,SAAUnZ,GAC9Cja,KAAKuvB,oBAAsBtV,CAC7B,EAEAuU,cAAcl0B,UAAUy4B,UAAY,WAClC/yB,KAAKiuB,aAAejuB,KAAKuvB,kBAAoBvvB,KAAK0uB,kBAAoB1uB,KAAK0uB,gBAEvE1uB,KAAKqvB,gBAAkBrvB,KAAKigB,aAAejgB,KAAKiuB,aAAejuB,KAAKqvB,gBACtErvB,KAAKiuB,aAAejuB,KAAKqvB,eAG3BrvB,KAAKkxB,QAAQ,cACblxB,KAAKqzB,cACLrzB,KAAKkxB,QAAQ,aACf,EAEA1C,cAAcl0B,UAAU+4B,YAAc,WACpC,IAAsB,IAAlBrzB,KAAKyuB,UAAuBzuB,KAAKmvB,SAIrC,IACMnvB,KAAKod,mBACPpd,KAAKod,kBAAkBkW,aAGzBtzB,KAAKmvB,SAASkE,YAAYrzB,KAAKiuB,aAAejuB,KAAKggB,WACrD,CAAE,MAAOxR,GACPxO,KAAKuzB,wBAAwB/kB,EAC/B,CACF,EAEAggB,cAAcl0B,UAAU0hB,KAAO,SAAUhd,GACnCA,GAAQgB,KAAKhB,OAASA,IAIJ,IAAlBgB,KAAKgvB,WACPhvB,KAAKgvB,UAAW,EAChBhvB,KAAKkxB,QAAQ,SACblxB,KAAK6vB,gBAAgBpU,SAEjBzb,KAAKyvB,QACPzvB,KAAKyvB,OAAQ,EACbzvB,KAAKkxB,QAAQ,YAGnB,EAEA1C,cAAcl0B,UAAUkhB,MAAQ,SAAUxc,GACpCA,GAAQgB,KAAKhB,OAASA,IAIJ,IAAlBgB,KAAKgvB,WACPhvB,KAAKgvB,UAAW,EAChBhvB,KAAKkxB,QAAQ,UACblxB,KAAKyvB,OAAQ,EACbzvB,KAAKkxB,QAAQ,SACblxB,KAAK6vB,gBAAgBrU,QAEzB,EAEAgT,cAAcl0B,UAAUk5B,YAAc,SAAUx0B,GAC1CA,GAAQgB,KAAKhB,OAASA,KAIJ,IAAlBgB,KAAKgvB,SACPhvB,KAAKgc,OAELhc,KAAKwb,QAET,EAEAgT,cAAcl0B,UAAUm5B,KAAO,SAAUz0B,GACnCA,GAAQgB,KAAKhB,OAASA,IAI1BgB,KAAKwb,QACLxb,KAAK+uB,UAAY,EACjB/uB,KAAK0vB,gBAAiB,EACtB1vB,KAAK0zB,wBAAwB,GAC/B,EAEAlF,cAAcl0B,UAAUq5B,cAAgB,SAAUC,GAGhD,IAFA,IAAIC,EAEKh6B,EAAI,EAAGA,EAAImG,KAAKktB,QAAQpzB,OAAQD,GAAK,EAG5C,IAFAg6B,EAAS7zB,KAAKktB,QAAQrzB,IAEXsuB,SAAW0L,EAAO1L,QAAQnpB,OAAS40B,EAC5C,OAAOC,EAIX,OAAO,IACT,EAEArF,cAAcl0B,UAAUw5B,YAAc,SAAUz4B,EAAO04B,EAAS/0B,GAC9D,IAAIA,GAAQgB,KAAKhB,OAASA,EAA1B,CAIA,IAAIg1B,EAAWhlB,OAAO3T,GAEtB,GAAI0N,MAAMirB,GAAW,CACnB,IAAIH,EAAS7zB,KAAK2zB,cAAct4B,GAE5Bw4B,GACF7zB,KAAK8zB,YAAYD,EAAOhb,MAAM,EAElC,MAAWkb,EACT/zB,KAAK0zB,wBAAwBr4B,GAE7B2E,KAAK0zB,wBAAwBr4B,EAAQ2E,KAAKi0B,eAG5Cj0B,KAAKwb,OAhBL,CAiBF,EAEAgT,cAAcl0B,UAAU45B,YAAc,SAAU74B,EAAO04B,EAAS/0B,GAC9D,IAAIA,GAAQgB,KAAKhB,OAASA,EAA1B,CAIA,IAAIg1B,EAAWhlB,OAAO3T,GAEtB,GAAI0N,MAAMirB,GAAW,CACnB,IAAIH,EAAS7zB,KAAK2zB,cAAct4B,GAE5Bw4B,IACGA,EAAOpmB,SAGVzN,KAAKm0B,aAAa,CAACN,EAAOhb,KAAMgb,EAAOhb,KAAOgb,EAAOpmB,WAAW,GAFhEzN,KAAK8zB,YAAYD,EAAOhb,MAAM,GAKpC,MACE7Y,KAAK8zB,YAAYE,EAAUD,EAAS/0B,GAGtCgB,KAAKgc,MAlBL,CAmBF,EAEAwS,cAAcl0B,UAAU85B,YAAc,SAAU/4B,GAC9C,IAAsB,IAAlB2E,KAAKgvB,WAAuC,IAAlBhvB,KAAKyuB,SAAnC,CAIA,IAAI4F,EAAYr0B,KAAK0uB,gBAAkBrzB,EAAQ2E,KAAKi0B,cAChDK,GAAc,EAGdD,GAAar0B,KAAKigB,YAAc,GAAKjgB,KAAKi0B,cAAgB,EACvDj0B,KAAKkvB,MAAQlvB,KAAK+uB,YAAc/uB,KAAKkvB,KAK/BmF,GAAar0B,KAAKigB,aAC3BjgB,KAAK+uB,WAAa,EAEb/uB,KAAKu0B,cAAcF,EAAYr0B,KAAKigB,eACvCjgB,KAAK0zB,wBAAwBW,EAAYr0B,KAAKigB,aAC9CjgB,KAAK0vB,gBAAiB,EACtB1vB,KAAKkxB,QAAQ,kBAGflxB,KAAK0zB,wBAAwBW,GAbxBr0B,KAAKu0B,cAAcF,EAAYr0B,KAAKigB,YAAcoU,EAAYr0B,KAAKigB,YAAc,KACpFqU,GAAc,EACdD,EAAYr0B,KAAKigB,YAAc,GAa1BoU,EAAY,EAChBr0B,KAAKu0B,cAAcF,EAAYr0B,KAAKigB,gBACnCjgB,KAAKkvB,MAAUlvB,KAAK+uB,aAAe,IAAmB,IAAd/uB,KAAKkvB,MAU/CoF,GAAc,EACdD,EAAY,IATZr0B,KAAK0zB,wBAAwB1zB,KAAKigB,YAAcoU,EAAYr0B,KAAKigB,aAE5DjgB,KAAK0vB,eAGR1vB,KAAKkxB,QAAQ,gBAFblxB,KAAK0vB,gBAAiB,IAU5B1vB,KAAK0zB,wBAAwBW,GAG3BC,IACFt0B,KAAK0zB,wBAAwBW,GAC7Br0B,KAAKwb,QACLxb,KAAKkxB,QAAQ,YA9Cf,CAgDF,EAEA1C,cAAcl0B,UAAUk6B,cAAgB,SAAU3X,EAAKmE,GACrDhhB,KAAK+uB,UAAY,EAEblS,EAAI,GAAKA,EAAI,IACX7c,KAAKi0B,cAAgB,IACnBj0B,KAAK6uB,UAAY,EACnB7uB,KAAKy0B,UAAUz0B,KAAK6uB,WAEpB7uB,KAAK00B,cAAc,IAIvB10B,KAAKigB,YAAcpD,EAAI,GAAKA,EAAI,GAChC7c,KAAKqvB,cAAgBrvB,KAAKigB,YAC1BjgB,KAAKggB,WAAanD,EAAI,GACtB7c,KAAK0zB,wBAAwB1zB,KAAKigB,YAAc,KAAQe,IAC/CnE,EAAI,GAAKA,EAAI,KAClB7c,KAAKi0B,cAAgB,IACnBj0B,KAAK6uB,UAAY,EACnB7uB,KAAKy0B,UAAUz0B,KAAK6uB,WAEpB7uB,KAAK00B,aAAa,IAItB10B,KAAKigB,YAAcpD,EAAI,GAAKA,EAAI,GAChC7c,KAAKqvB,cAAgBrvB,KAAKigB,YAC1BjgB,KAAKggB,WAAanD,EAAI,GACtB7c,KAAK0zB,wBAAwB,KAAQ1S,IAGvChhB,KAAKkxB,QAAQ,eACf,EAEA1C,cAAcl0B,UAAUq6B,WAAa,SAAUC,EAAMC,GACnD,IAAIC,GAAgB,EAEhB90B,KAAKgvB,WACHhvB,KAAK0uB,gBAAkB1uB,KAAKggB,WAAa4U,EAC3CE,EAAeF,EACN50B,KAAK0uB,gBAAkB1uB,KAAKggB,WAAa6U,IAClDC,EAAeD,EAAMD,IAIzB50B,KAAKggB,WAAa4U,EAClB50B,KAAKigB,YAAc4U,EAAMD,EACzB50B,KAAKqvB,cAAgBrvB,KAAKigB,aAEJ,IAAlB6U,GACF90B,KAAK8zB,YAAYgB,GAAc,EAEnC,EAEAtG,cAAcl0B,UAAU65B,aAAe,SAAUtX,EAAKkY,GAKpD,GAJIA,IACF/0B,KAAKwvB,SAAS11B,OAAS,GAGC,WAAtBy0B,UAAU1R,EAAI,IAAkB,CAClC,IAAIhjB,EACA6gB,EAAMmC,EAAI/iB,OAEd,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKwvB,SAAShxB,KAAKqe,EAAIhjB,GAE3B,MACEmG,KAAKwvB,SAAShxB,KAAKqe,GAGjB7c,KAAKwvB,SAAS11B,QAAUi7B,GAC1B/0B,KAAKw0B,cAAcx0B,KAAKwvB,SAASyC,QAAS,GAGxCjyB,KAAKgvB,UACPhvB,KAAKgc,MAET,EAEAwS,cAAcl0B,UAAU06B,cAAgB,SAAUD,GAChD/0B,KAAKwvB,SAAS11B,OAAS,EACvBkG,KAAKwvB,SAAShxB,KAAK,CAACwB,KAAKwlB,cAAcK,GAAI7lB,KAAKwlB,cAAcM,KAE1DiP,GACF/0B,KAAKu0B,cAAc,EAEvB,EAEA/F,cAAcl0B,UAAUi6B,cAAgB,SAAUvT,GAChD,QAAIhhB,KAAKwvB,SAAS11B,SAChBkG,KAAKw0B,cAAcx0B,KAAKwvB,SAASyC,QAASjR,IACnC,EAIX,EAEAwN,cAAcl0B,UAAU2Y,QAAU,SAAUjU,GACtCA,GAAQgB,KAAKhB,OAASA,IAASgB,KAAKmvB,WAIxCnvB,KAAKmvB,SAASlc,UACdjT,KAAK4vB,eAAe3c,UACpBjT,KAAKkxB,QAAQ,WACblxB,KAAKwsB,KAAO,KACZxsB,KAAKi1B,aAAe,KACpBj1B,KAAKk1B,eAAiB,KACtBl1B,KAAKuoB,WAAa,KAClBvoB,KAAKm1B,eAAiB,KACtBn1B,KAAKo1B,UAAY,KACjBp1B,KAAKmvB,SAAW,KAChBnvB,KAAKod,kBAAoB,KACzBpd,KAAK4vB,eAAiB,KACtB5vB,KAAK2vB,iBAAmB,KAC1B,EAEAnB,cAAcl0B,UAAUo5B,wBAA0B,SAAUr4B,GAC1D2E,KAAK0uB,gBAAkBrzB,EACvB2E,KAAK+yB,WACP,EAEAvE,cAAcl0B,UAAUm6B,SAAW,SAAUzrB,GAC3ChJ,KAAK6uB,UAAY7lB,EACjBhJ,KAAK0yB,mBACP,EAEAlE,cAAcl0B,UAAUo6B,aAAe,SAAU1rB,GAC/ChJ,KAAK8uB,cAAgB9lB,EAAM,GAAK,EAAI,EACpChJ,KAAK0yB,mBACP,EAEAlE,cAAcl0B,UAAU+6B,QAAU,SAAUC,GAC1Ct1B,KAAKkvB,KAAOoG,CACd,EAEA9G,cAAcl0B,UAAU8hB,UAAY,SAAUpT,EAAKhK,GAC7CA,GAAQgB,KAAKhB,OAASA,GAI1BgB,KAAK6vB,gBAAgBzT,UAAUpT,EACjC,EAEAwlB,cAAcl0B,UAAUmiB,UAAY,WAClC,OAAOzc,KAAK6vB,gBAAgBpT,WAC9B,EAEA+R,cAAcl0B,UAAUiiB,KAAO,SAAUvd,GACnCA,GAAQgB,KAAKhB,OAASA,GAI1BgB,KAAK6vB,gBAAgBtT,MACvB,EAEAiS,cAAcl0B,UAAUkiB,OAAS,SAAUxd,GACrCA,GAAQgB,KAAKhB,OAASA,GAI1BgB,KAAK6vB,gBAAgBrT,QACvB,EAEAgS,cAAcl0B,UAAUo4B,kBAAoB,WAC1C1yB,KAAKi0B,cAAgBj0B,KAAK4uB,UAAY5uB,KAAK6uB,UAAY7uB,KAAK8uB,cAC5D9uB,KAAK6vB,gBAAgBnU,QAAQ1b,KAAK6uB,UAAY7uB,KAAK8uB,cACrD,EAEAN,cAAcl0B,UAAUi7B,QAAU,WAChC,OAAOv1B,KAAK4iB,IACd,EAEA4L,cAAcl0B,UAAU0vB,cAAgB,SAAUC,GAChD,IAAIrH,EAAO,GAEX,GAAIqH,EAAU3pB,EACZsiB,EAAOqH,EAAUpa,OACZ,GAAI7P,KAAKkqB,WAAY,CAC1B,IAAIE,EAAYH,EAAUpa,GAEY,IAAlCua,EAAU/C,QAAQ,aACpB+C,EAAYA,EAAUrsB,MAAM,KAAK,IAGnC6kB,EAAO5iB,KAAKkqB,WAAaE,CAC3B,MACExH,EAAO5iB,KAAK4iB,KACZA,GAAQqH,EAAUra,EAAIqa,EAAUra,EAAI,GACpCgT,GAAQqH,EAAUpa,EAGpB,OAAO+S,CACT,EAEA4L,cAAcl0B,UAAUk7B,aAAe,SAAUlyB,GAI/C,IAHA,IAAIzJ,EAAI,EACJ6gB,EAAM1a,KAAKylB,OAAO3rB,OAEfD,EAAI6gB,GAAK,CACd,GAAIpX,IAAOtD,KAAKylB,OAAO5rB,GAAGyJ,GACxB,OAAOtD,KAAKylB,OAAO5rB,GAGrBA,GAAK,CACP,CAEA,OAAO,IACT,EAEA20B,cAAcl0B,UAAUqE,KAAO,WAC7BqB,KAAKmvB,SAASxwB,MAChB,EAEA6vB,cAAcl0B,UAAUm7B,KAAO,WAC7Bz1B,KAAKmvB,SAASsG,MAChB,EAEAjH,cAAcl0B,UAAUo7B,YAAc,SAAU3B,GAC9C,OAAOA,EAAU/zB,KAAKigB,YAAcjgB,KAAKigB,YAAcjgB,KAAK2uB,SAC9D,EAEAH,cAAcl0B,UAAUq7B,mBAAqB,SAAU/S,EAAM0C,EAAczoB,GACzE,IACgBmD,KAAKmvB,SAASyG,iBAAiBhT,GACrC+S,mBAAmBrQ,EAAczoB,EAC3C,CAAE,MAAO2R,GAAQ,CAEnB,EAEAggB,cAAcl0B,UAAU42B,QAAU,SAAUlyB,GAC1C,GAAIgB,KAAKwsB,MAAQxsB,KAAKwsB,KAAKxtB,GACzB,OAAQA,GACN,IAAK,aACHgB,KAAKssB,aAAattB,EAAM,IAAIsgB,kBAAkBtgB,EAAMgB,KAAKiuB,aAAcjuB,KAAKigB,YAAajgB,KAAKi0B,gBAC9F,MAEF,IAAK,aACHj0B,KAAKiwB,gBAAgB1Q,YAAcvf,KAAKiuB,aACxCjuB,KAAKiwB,gBAAgBzQ,UAAYxf,KAAKigB,YACtCjgB,KAAKiwB,gBAAgBvQ,UAAY1f,KAAKi0B,cACtCj0B,KAAKssB,aAAattB,EAAMgB,KAAKiwB,iBAC7B,MAEF,IAAK,eACHjwB,KAAKssB,aAAattB,EAAM,IAAI4gB,oBAAoB5gB,EAAMgB,KAAKkvB,KAAMlvB,KAAK+uB,UAAW/uB,KAAK4uB,YACtF,MAEF,IAAK,WACH5uB,KAAKssB,aAAattB,EAAM,IAAI2gB,gBAAgB3gB,EAAMgB,KAAK4uB,YACvD,MAEF,IAAK,eACH5uB,KAAKssB,aAAattB,EAAM,IAAI+gB,oBAAoB/gB,EAAMgB,KAAKggB,WAAYhgB,KAAKigB,cAC5E,MAEF,IAAK,UACHjgB,KAAKssB,aAAattB,EAAM,IAAIkhB,eAAelhB,EAAMgB,OACjD,MAEF,QACEA,KAAKssB,aAAattB,GAIX,eAATA,GAAyBgB,KAAKi1B,cAChCj1B,KAAKi1B,aAAap6B,KAAKmF,KAAM,IAAIsf,kBAAkBtgB,EAAMgB,KAAKiuB,aAAcjuB,KAAKigB,YAAajgB,KAAK4uB,YAGxF,iBAAT5vB,GAA2BgB,KAAKk1B,gBAClCl1B,KAAKk1B,eAAer6B,KAAKmF,KAAM,IAAI4f,oBAAoB5gB,EAAMgB,KAAKkvB,KAAMlvB,KAAK+uB,UAAW/uB,KAAK4uB,YAGlF,aAAT5vB,GAAuBgB,KAAKuoB,YAC9BvoB,KAAKuoB,WAAW1tB,KAAKmF,KAAM,IAAI2f,gBAAgB3gB,EAAMgB,KAAK4uB,YAG/C,iBAAT5vB,GAA2BgB,KAAKm1B,gBAClCn1B,KAAKm1B,eAAet6B,KAAKmF,KAAM,IAAI+f,oBAAoB/gB,EAAMgB,KAAKggB,WAAYhgB,KAAKigB,cAGxE,YAATjhB,GAAsBgB,KAAKo1B,WAC7Bp1B,KAAKo1B,UAAUv6B,KAAKmF,KAAM,IAAIkgB,eAAelhB,EAAMgB,MAEvD,EAEAwuB,cAAcl0B,UAAUi5B,wBAA0B,SAAUnT,GAC1D,IAAI5R,EAAQ,IAAI2R,wBAAwBC,EAAapgB,KAAKiuB,cAC1DjuB,KAAKssB,aAAa,QAAS9d,GAEvBxO,KAAKwoB,SACPxoB,KAAKwoB,QAAQ3tB,KAAKmF,KAAMwO,EAE5B,EAEAggB,cAAcl0B,UAAUs4B,mBAAqB,SAAUxS,GACrD,IAAI5R,EAAQ,IAAI6R,mBAAmBD,EAAapgB,KAAKiuB,cACrDjuB,KAAKssB,aAAa,QAAS9d,GAEvBxO,KAAKwoB,SACPxoB,KAAKwoB,QAAQ3tB,KAAKmF,KAAMwO,EAE5B,EAEA,IAAIqnB,iBAAmB,WACrB,IAAIlP,EAAW,CAAC,EACZmP,EAAuB,GACvBC,EAAW,EACXrb,EAAM,EACNsb,EAAuB,EACvBC,GAAW,EACXC,GAAY,EAEhB,SAASC,EAAcC,GAIrB,IAHA,IAAIv8B,EAAI,EACJw8B,EAAWD,EAAGz8B,OAEXE,EAAI6gB,GACLob,EAAqBj8B,GAAGuuB,YAAciO,IACxCP,EAAqB5iB,OAAOrZ,EAAG,GAC/BA,GAAK,EACL6gB,GAAO,EAEF2b,EAASrH,UACZsH,KAIJz8B,GAAK,CAET,CAEA,SAAS08B,EAAkB3X,EAAS4G,GAClC,IAAK5G,EACH,OAAO,KAKT,IAFA,IAAI/kB,EAAI,EAEDA,EAAI6gB,GAAK,CACd,GAAIob,EAAqBj8B,GAAG28B,OAAS5X,GAA4C,OAAjCkX,EAAqBj8B,GAAG28B,KACtE,OAAOV,EAAqBj8B,GAAGuuB,UAGjCvuB,GAAK,CACP,CAEA,IAAIw8B,EAAW,IAAI7H,cAGnB,OAFAsC,EAAeuF,EAAUzX,GACzByX,EAASlF,QAAQvS,EAAS4G,GACnB6Q,CACT,CAcA,SAASI,IACPT,GAAwB,EACxBU,GACF,CAEA,SAASJ,IACPN,GAAwB,CAC1B,CAEA,SAASlF,EAAeuF,EAAUzX,GAChCyX,EAASxK,iBAAiB,UAAWsK,GACrCE,EAASxK,iBAAiB,UAAW4K,GACrCJ,EAASxK,iBAAiB,QAASyK,GACnCR,EAAqBt3B,KAAK,CACxBg4B,KAAM5X,EACNwJ,UAAWiO,IAEb3b,GAAO,CACT,CAiCA,SAASe,EAAOkb,GACd,IACI98B,EADA+8B,EAAcD,EAAUZ,EAG5B,IAAKl8B,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAUgM,YAAYwC,GAGhDb,EAAWY,EAEPX,IAAyBE,EAC3B31B,OAAO6O,sBAAsBqM,GAE7Bwa,GAAW,CAEf,CAEA,SAASY,EAAMF,GACbZ,EAAWY,EACXp2B,OAAO6O,sBAAsBqM,EAC/B,CA+EA,SAASib,KACFR,GAAaF,GACZC,IACF11B,OAAO6O,sBAAsBynB,GAC7BZ,GAAW,EAGjB,CAsDA,OAnBAtP,EAAS4P,kBAAoBA,EAC7B5P,EAAS+B,cA7KT,SAAuByH,GACrB,IAAIkG,EAAW,IAAI7H,cAGnB,OAFAsC,EAAeuF,EAAU,MACzBA,EAASnG,UAAUC,GACZkG,CACT,EAyKA1P,EAAS8N,SAvKT,SAAkBzrB,EAAKof,GACrB,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAUqM,SAASzrB,EAAKof,EAEpD,EAkKAzB,EAAS+N,aAhKT,SAAsB1rB,EAAKof,GACzB,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAUsM,aAAa1rB,EAAKof,EAExD,EA2JAzB,EAAS3K,KAzJT,SAAcoM,GACZ,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAUpM,KAAKoM,EAE3C,EAoJAzB,EAASnL,MA5HT,SAAe4M,GACb,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAU5M,MAAM4M,EAE5C,EAuHAzB,EAAS8M,KA7GT,SAAcrL,GACZ,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAUqL,KAAKrL,EAE3C,EAwGAzB,EAAS6M,YAtGT,SAAqBpL,GACnB,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAUoL,YAAYpL,EAElD,EAiGAzB,EAASmQ,iBAvFT,SAA0BtR,EAAeuR,EAAY5H,GACnD,IACIt1B,EADAm9B,EAAe,GAAGjyB,OAAO,GAAGhI,MAAMlC,KAAK+C,SAASq5B,uBAAuB,WAAY,GAAGl6B,MAAMlC,KAAK+C,SAASq5B,uBAAuB,eAEjIC,EAAWF,EAAal9B,OAE5B,IAAKD,EAAI,EAAGA,EAAIq9B,EAAUr9B,GAAK,EACzBs1B,GACF6H,EAAan9B,GAAGs9B,aAAa,eAAgBhI,GAG/CoH,EAAkBS,EAAan9B,GAAI2rB,GAGrC,GAAIuR,GAA2B,IAAbG,EAAgB,CAC3B/H,IACHA,EAAW,OAGb,IAAIiI,EAAOx5B,SAASy5B,qBAAqB,QAAQ,GACjDD,EAAKE,UAAY,GACjB,IAAIC,EAAMld,UAAU,OACpBkd,EAAI9xB,MAAM4jB,MAAQ,OAClBkO,EAAI9xB,MAAMsL,OAAS,OACnBwmB,EAAIJ,aAAa,eAAgBhI,GACjCiI,EAAKlL,YAAYqL,GACjBhB,EAAkBgB,EAAK/R,EACzB,CACF,EA6DAmB,EAASqM,OA3DT,WACE,IAAIn5B,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAU4K,QAEtC,EAuDArM,EAASmN,YA1HT,SAAqBz4B,EAAO04B,EAAS3L,GACnC,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAU0L,YAAYz4B,EAAO04B,EAAS3L,EAElE,EAqHAzB,EAAS1T,QAnGT,SAAiBmV,GACf,IAAIvuB,EAEJ,IAAKA,EAAI6gB,EAAM,EAAG7gB,GAAK,EAAGA,GAAK,EAC7Bi8B,EAAqBj8B,GAAGuuB,UAAUnV,QAAQmV,EAE9C,EA8FAzB,EAAS6Q,OA9CT,WACEtB,GAAY,CACd,EA6CAvP,EAAS8Q,SA3CT,WACEvB,GAAY,EACZQ,GACF,EAyCA/P,EAASvK,UAvCT,SAAmBpT,EAAKof,GACtB,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAUhM,UAAUpT,EAAKof,EAErD,EAkCAzB,EAASpK,KAhCT,SAAc6L,GACZ,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAU7L,KAAK6L,EAE3C,EA2BAzB,EAASnK,OAzBT,SAAgB4L,GACd,IAAIvuB,EAEJ,IAAKA,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBi8B,EAAqBj8B,GAAGuuB,UAAU5L,OAAO4L,EAE7C,EAoBAzB,EAAS+Q,wBA9NT,WACE,IAAI79B,EACAq9B,EAAWpB,EAAqBh8B,OAChC69B,EAAa,GAEjB,IAAK99B,EAAI,EAAGA,EAAIq9B,EAAUr9B,GAAK,EAC7B89B,EAAWn5B,KAAKs3B,EAAqBj8B,GAAGuuB,WAG1C,OAAOuP,CACT,EAqNOhR,CACT,CAjRuB,GAoRnBiR,cAAgB,WAWlB,IAAI9M,EAAK,CACTA,gBAGA,SAAyBvtB,EAAGC,EAAGC,EAAGojB,EAAGiN,GACnC,IAAI+J,EAAM/J,IAAO,OAASvwB,EAAI,IAAMC,EAAI,IAAMC,EAAI,IAAMojB,GAAG9Q,QAAQ,MAAO,KAE1E,GAAI+nB,EAAQD,GACV,OAAOC,EAAQD,GAGjB,IAAIE,EAAY,IAAIC,EAAa,CAACz6B,EAAGC,EAAGC,EAAGojB,IAE3C,OADAiX,EAAQD,GAAOE,EACRA,CACT,GAZID,EAAU,CAAC,EAmBXG,EAAmB,GACnBC,EAAkB,GAAOD,EAAmB,GAC5CE,EAAgD,oBAAjBpb,aAEnC,SAASxY,EAAE6zB,EAAKC,GACd,OAAO,EAAM,EAAMA,EAAM,EAAMD,CACjC,CAEA,SAASz4B,EAAEy4B,EAAKC,GACd,OAAO,EAAMA,EAAM,EAAMD,CAC3B,CAEA,SAASr4B,EAAEq4B,GACT,OAAO,EAAMA,CACf,CAGA,SAASE,EAAWC,EAAIH,EAAKC,GAC3B,QAAS9zB,EAAE6zB,EAAKC,GAAOE,EAAK54B,EAAEy4B,EAAKC,IAAQE,EAAKx4B,EAAEq4B,IAAQG,CAC5D,CAGA,SAASC,EAASD,EAAIH,EAAKC,GACzB,OAAO,EAAM9zB,EAAE6zB,EAAKC,GAAOE,EAAKA,EAAK,EAAM54B,EAAEy4B,EAAKC,GAAOE,EAAKx4B,EAAEq4B,EAClE,CAoCA,SAASJ,EAAaS,GACpBz4B,KAAK04B,GAAKD,EACVz4B,KAAK24B,eAAiBR,EAAwB,IAAIpb,aAAakb,GAAoB,IAAIj3B,MAAMi3B,GAC7Fj4B,KAAK44B,cAAe,EACpB54B,KAAKrC,IAAMqC,KAAKrC,IAAIitB,KAAK5qB,KAC3B,CAqEA,OAnEAg4B,EAAa19B,UAAY,CACvBqD,IAAK,SAAak7B,GAChB,IAAIC,EAAM94B,KAAK04B,GAAG,GACdK,EAAM/4B,KAAK04B,GAAG,GACdM,EAAMh5B,KAAK04B,GAAG,GACdO,EAAMj5B,KAAK04B,GAAG,GAElB,OADK14B,KAAK44B,cAAc54B,KAAKk5B,cACzBJ,IAAQC,GAAOC,IAAQC,EAAYJ,EAG7B,IAANA,EAAgB,EACV,IAANA,EAAgB,EACbP,EAAWt4B,KAAKm5B,UAAUN,GAAIE,EAAKE,EAC5C,EAEAC,YAAa,WACX,IAAIJ,EAAM94B,KAAK04B,GAAG,GACdK,EAAM/4B,KAAK04B,GAAG,GACdM,EAAMh5B,KAAK04B,GAAG,GACdO,EAAMj5B,KAAK04B,GAAG,GAClB14B,KAAK44B,cAAe,EAEhBE,IAAQC,GAAOC,IAAQC,GACzBj5B,KAAKo5B,mBAET,EACAA,kBAAmB,WAIjB,IAHA,IAAIN,EAAM94B,KAAK04B,GAAG,GACdM,EAAMh5B,KAAK04B,GAAG,GAET7+B,EAAI,EAAGA,EAAIo+B,IAAoBp+B,EACtCmG,KAAK24B,eAAe9+B,GAAKy+B,EAAWz+B,EAAIq+B,EAAiBY,EAAKE,EAElE,EAKAG,UAAW,SAAmBE,GAQ5B,IAPA,IAAIP,EAAM94B,KAAK04B,GAAG,GACdM,EAAMh5B,KAAK04B,GAAG,GACdY,EAAgBt5B,KAAK24B,eACrBY,EAAgB,EAChBC,EAAgB,EAChBC,EAAaxB,EAAmB,EAE7BuB,IAAkBC,GAAcH,EAAcE,IAAkBH,IAAMG,EAC3ED,GAAiBrB,EAKnB,IACIwB,EAAYH,GADJF,EAAKC,IAFfE,KAEgDF,EAAcE,EAAgB,GAAKF,EAAcE,IAC5DtB,EACnCyB,EAAenB,EAASkB,EAAWZ,EAAKE,GAE5C,OAAIW,GA9He,KAgDvB,SAA8BN,EAAIO,EAASd,EAAKE,GAC9C,IAAK,IAAIn/B,EAAI,EAAGA,EAlDM,IAkDmBA,EAAG,CAC1C,IAAIggC,EAAerB,EAASoB,EAASd,EAAKE,GAC1C,GAAqB,IAAjBa,EAAsB,OAAOD,EAEjCA,IADetB,EAAWsB,EAASd,EAAKE,GAAOK,GACzBQ,CACxB,CAEA,OAAOD,CACT,CAsEaE,CAAqBT,EAAIK,EAAWZ,EAAKE,GAG7B,IAAjBW,EACKD,EAtGb,SAAyBL,EAAIU,EAAIC,EAAIlB,EAAKE,GACxC,IAAIiB,EACAC,EACArgC,EAAI,EAER,IAEEogC,EAAW3B,EADX4B,EAAWH,GAAMC,EAAKD,GAAM,EACIjB,EAAKE,GAAOK,GAE7B,EACbW,EAAKE,EAELH,EAAKG,QAEA15B,KAAKiP,IAAIwqB,GA1CQ,QA0C+BpgC,EAzC1B,IA2C/B,OAAOqgC,CACT,CAwFWC,CAAgBd,EAAIE,EAAeA,EAAgBrB,EAAiBY,EAAKE,EAClF,GAEKlO,CACT,CAvKoB,GAyKhBsP,QAKK,CACL,OALF,SAAiBvd,GACf,OAAOA,EAAI9X,OAAOkY,iBAAiBJ,EAAI/iB,QACzC,GAOEugC,YACK,SAAUC,EAAejwB,EAASkwB,GACvC,IAAIC,EAAU,EACVC,EAAaH,EACbI,EAAOzd,iBAAiBwd,GAiC5B,MAhCS,CACPE,WAIF,WAUE,OAPIH,EAEQE,EADVF,GAAW,GAGDnwB,GAId,EAdEuwB,QAgBF,SAAiBhc,GACX4b,IAAYC,IACdC,EAAON,QAAgB,OAAEM,GACzBD,GAAc,GAGZF,GACFA,EAAS3b,GAGX8b,EAAKF,GAAW5b,EAChB4b,GAAW,CACb,EAGF,EAGEK,iBASKR,YAAY,GARnB,WACE,MAAO,CACLS,YAAa,EACbC,SAAUpe,iBAAiB,UAAWmF,2BACtCkZ,QAASre,iBAAiB,UAAWmF,2BAEzC,IAKEmZ,mBAmBKZ,YAAY,GAlBnB,WACE,MAAO,CACLW,QAAS,GACTE,YAAa,EAEjB,IAEA,SAAiBtc,GACf,IAAI/kB,EACA6gB,EAAMkE,EAAQoc,QAAQlhC,OAE1B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBghC,iBAAiBD,QAAQhc,EAAQoc,QAAQnhC,IAG3C+kB,EAAQoc,QAAQlhC,OAAS,CAC3B,IAKF,SAASqhC,cACP,IAAIC,EAAO56B,KAEX,SAAS66B,EAAcC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACzC,IAAIC,EAAON,EAAKG,EAAKF,EAAKG,EAAKF,EAAKG,EAAKD,EAAKD,EAAKE,EAAKL,EAAKE,EAAKD,EAClE,OAAOK,GAAQ,MAASA,EAAO,IACjC,CA2BA,IAAIC,EACK,SAAUC,EAAKC,EAAKC,EAAKC,GAC9B,IACIt3B,EACA9K,EACA6gB,EACAwhB,EACAC,EAEAC,EAPAC,EAAgBva,0BAMhBgZ,EAAc,EAEd9wB,EAAQ,GACRsyB,EAAY,GACZC,EAAa1B,iBAAiBF,aAGlC,IAFAjgB,EAAMshB,EAAIliC,OAEL6K,EAAI,EAAGA,EAAI03B,EAAe13B,GAAK,EAAG,CAIrC,IAHAw3B,EAAOx3B,GAAK03B,EAAgB,GAC5BD,EAAa,EAERviC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBqiC,EAAUxe,MAAM,EAAIye,EAAM,GAAKL,EAAIjiC,GAAK,EAAI6jB,MAAM,EAAIye,EAAM,GAAKA,EAAOH,EAAIniC,GAAK,GAAK,EAAIsiC,GAAQze,MAAMye,EAAM,GAAKF,EAAIpiC,GAAK6jB,MAAMye,EAAM,GAAKJ,EAAIliC,GACjJmQ,EAAMnQ,GAAKqiC,EAEU,OAAjBI,EAAUziC,KACZuiC,GAAc1e,MAAM1T,EAAMnQ,GAAKyiC,EAAUziC,GAAI,IAG/CyiC,EAAUziC,GAAKmQ,EAAMnQ,GAGnBuiC,IAEFtB,GADAsB,EAAaze,OAAOye,IAItBG,EAAWxB,SAASp2B,GAAKw3B,EACzBI,EAAWvB,QAAQr2B,GAAKm2B,CAC1B,CAGA,OADAyB,EAAWzB,YAAcA,EAClByB,CACT,EA4BF,SAASC,EAAW1iC,GAClBkG,KAAKy8B,cAAgB,EACrBz8B,KAAKy4B,OAAS,IAAIz3B,MAAMlH,EAC1B,CAEA,SAAS4iC,EAAUC,EAAS3yB,GAC1BhK,KAAK48B,cAAgBD,EACrB38B,KAAKgK,MAAQA,CACf,CAEA,IAAI6yB,EAAkB,WACpB,IAAIC,EAAa,CAAC,EAClB,OAAO,SAAUhB,EAAKC,EAAKC,EAAKC,GAC9B,IAAIc,GAAcjB,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,IAAIlsB,QAAQ,MAAO,KAElJ,IAAK+sB,EAAWC,GAAa,CAC3B,IACIp4B,EACA9K,EACA6gB,EACAwhB,EACAC,EAEAC,EACApyB,EARAqyB,EAAgBva,0BAMhBgZ,EAAc,EAGdwB,EAAY,KAEG,IAAfR,EAAIhiC,SAAiBgiC,EAAI,KAAOC,EAAI,IAAMD,EAAI,KAAOC,EAAI,KAAOV,EAAcS,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,GAAID,EAAI,GAAKE,EAAI,GAAIF,EAAI,GAAKE,EAAI,KAAOX,EAAcS,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAKE,EAAI,GAAIF,EAAI,GAAKE,EAAI,MACjOI,EAAgB,GAGlB,IAAIW,EAAa,IAAIR,EAAWH,GAGhC,IAFA3hB,EAAMshB,EAAIliC,OAEL6K,EAAI,EAAGA,EAAI03B,EAAe13B,GAAK,EAAG,CAKrC,IAJAqF,EAAQiT,iBAAiBvC,GACzByhB,EAAOx3B,GAAK03B,EAAgB,GAC5BD,EAAa,EAERviC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBqiC,EAAUxe,MAAM,EAAIye,EAAM,GAAKL,EAAIjiC,GAAK,EAAI6jB,MAAM,EAAIye,EAAM,GAAKA,GAAQL,EAAIjiC,GAAKmiC,EAAIniC,IAAM,GAAK,EAAIsiC,GAAQze,MAAMye,EAAM,IAAMJ,EAAIliC,GAAKoiC,EAAIpiC,IAAM6jB,MAAMye,EAAM,GAAKJ,EAAIliC,GACvKmQ,EAAMnQ,GAAKqiC,EAEO,OAAdI,IACFF,GAAc1e,MAAM1T,EAAMnQ,GAAKyiC,EAAUziC,GAAI,IAKjDihC,GADAsB,EAAaze,OAAOye,GAEpBY,EAAWvE,OAAO9zB,GAAK,IAAI+3B,EAAUN,EAAYpyB,GACjDsyB,EAAYtyB,CACd,CAEAgzB,EAAWP,cAAgB3B,EAC3BgC,EAAWC,GAAcC,CAC3B,CAEA,OAAOF,EAAWC,EACpB,CACF,CAlDsB,GAoDtB,SAASE,EAAgBd,EAAMa,GAC7B,IAAIjC,EAAWiC,EAAWjC,SACtBC,EAAUgC,EAAWhC,QACrBtgB,EAAMqgB,EAASjhC,OACfojC,EAAUrf,SAASnD,EAAM,GAAKyhB,GAC9BgB,EAAYhB,EAAOa,EAAWlC,YAC9BsC,EAAQ,EAEZ,GAAIF,IAAYxiB,EAAM,GAAiB,IAAZwiB,GAAiBC,IAAcnC,EAAQkC,GAChE,OAAOnC,EAASmC,GAMlB,IAHA,IAAIG,EAAMrC,EAAQkC,GAAWC,GAAa,EAAI,EAC1CljB,GAAO,EAEJA,GAQL,GAPI+gB,EAAQkC,IAAYC,GAAanC,EAAQkC,EAAU,GAAKC,GAC1DC,GAASD,EAAYnC,EAAQkC,KAAalC,EAAQkC,EAAU,GAAKlC,EAAQkC,IACzEjjB,GAAO,GAEPijB,GAAWG,EAGTH,EAAU,GAAKA,GAAWxiB,EAAM,EAAG,CAErC,GAAIwiB,IAAYxiB,EAAM,EACpB,OAAOqgB,EAASmC,GAGlBjjB,GAAO,CACT,CAGF,OAAO8gB,EAASmC,IAAYnC,EAASmC,EAAU,GAAKnC,EAASmC,IAAYE,CAC3E,CAUA,IAAIE,EAAsB3gB,iBAAiB,UAAW,GAyDtD,MAAO,CACL4gB,kBA7LF,SAA2BC,GACzB,IAKI3jC,EALA4jC,EAAiBxC,mBAAmBN,aACpClU,EAAS+W,EAAU//B,EACnBigC,EAAQF,EAAU9c,EAClBid,EAAQH,EAAUhuB,EAClBouB,EAAQJ,EAAU3jC,EAElB6gB,EAAM8iB,EAAUhD,QAChBQ,EAAUyC,EAAezC,QACzBE,EAAc,EAElB,IAAKrhC,EAAI,EAAGA,EAAI6gB,EAAM,EAAG7gB,GAAK,EAC5BmhC,EAAQnhC,GAAKgiC,EAAgB6B,EAAM7jC,GAAI6jC,EAAM7jC,EAAI,GAAI8jC,EAAM9jC,GAAI+jC,EAAM/jC,EAAI,IACzEqhC,GAAeF,EAAQnhC,GAAGihC,YAS5B,OANIrU,GAAU/L,IACZsgB,EAAQnhC,GAAKgiC,EAAgB6B,EAAM7jC,GAAI6jC,EAAM,GAAIC,EAAM9jC,GAAI+jC,EAAM,IACjE1C,GAAeF,EAAQnhC,GAAGihC,aAG5B2C,EAAevC,YAAcA,EACtBuC,CACT,EAuKEI,cAzDF,SAAuB/B,EAAKC,EAAKC,EAAKC,EAAK6B,EAAWC,EAASf,GACzDc,EAAY,EACdA,EAAY,EACHA,EAAY,IACrBA,EAAY,GAGd,IAGIjkC,EAHAmkC,EAAKf,EAAgBa,EAAWd,GAEhCiB,EAAKhB,EADTc,EAAUA,EAAU,EAAI,EAAIA,EACMf,GAE9BtiB,EAAMohB,EAAIhiC,OACVokC,EAAK,EAAIF,EACTG,EAAK,EAAIF,EACTG,EAASF,EAAKA,EAAKA,EACnBG,EAAWL,EAAKE,EAAKA,EAAK,EAE1BI,EAAWN,EAAKA,EAAKE,EAAK,EAE1BK,EAASP,EAAKA,EAAKA,EAEnBQ,EAASN,EAAKA,EAAKC,EACnBM,EAAWT,EAAKE,EAAKC,EAAKD,EAAKF,EAAKG,EAAKD,EAAKA,EAAKD,EAEnDS,EAAWV,EAAKA,EAAKG,EAAKD,EAAKF,EAAKC,EAAKD,EAAKE,EAAKD,EAEnDU,EAASX,EAAKA,EAAKC,EAEnBW,EAASV,EAAKC,EAAKA,EACnBU,EAAWb,EAAKG,EAAKA,EAAKD,EAAKD,EAAKE,EAAKD,EAAKC,EAAKF,EAEnDa,EAAWd,EAAKC,EAAKE,EAAKD,EAAKD,EAAKA,EAAKD,EAAKG,EAAKF,EAEnDc,EAASf,EAAKC,EAAKA,EAEnBe,EAASb,EAAKA,EAAKA,EACnBc,EAAWhB,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,EAEnDiB,EAAWjB,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,EAEnDkB,EAASlB,EAAKA,EAAKA,EAEvB,IAAKpkC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxByjC,EAAwB,EAAJzjC,GAASuhC,EAAK1c,MAAoF,KAA7E0f,EAAStC,EAAIjiC,GAAKwkC,EAAWrC,EAAIniC,GAAKykC,EAAWrC,EAAIpiC,GAAK0kC,EAASxC,EAAIliC,KAAc,IAE9HyjC,EAAwB,EAAJzjC,EAAQ,GAAKuhC,EAAK1c,MAAoF,KAA7E8f,EAAS1C,EAAIjiC,GAAK4kC,EAAWzC,EAAIniC,GAAK6kC,EAAWzC,EAAIpiC,GAAK8kC,EAAS5C,EAAIliC,KAAc,IAElIyjC,EAAwB,EAAJzjC,EAAQ,GAAKuhC,EAAK1c,MAAoF,KAA7EkgB,EAAS9C,EAAIjiC,GAAKglC,EAAW7C,EAAIniC,GAAKilC,EAAW7C,EAAIpiC,GAAKklC,EAAShD,EAAIliC,KAAc,IAElIyjC,EAAwB,EAAJzjC,EAAQ,GAAKuhC,EAAK1c,MAAoF,KAA7EsgB,EAASlD,EAAIjiC,GAAKolC,EAAWjD,EAAIniC,GAAKqlC,EAAWjD,EAAIpiC,GAAKslC,EAASpD,EAAIliC,KAAc,IAGpI,OAAOyjC,CACT,EAKE8B,kBApEF,SAA2BtD,EAAKC,EAAKC,EAAKC,EAAKoD,EAASrC,GACtD,IAAIiB,EAAKhB,EAAgBoC,EAASrC,GAC9BmB,EAAK,EAAIF,EAGb,MAAO,CAFG7C,EAAK1c,MAAwK,KAAjKyf,EAAKA,EAAKA,EAAKrC,EAAI,IAAMmC,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,GAAMjC,EAAI,IAAMiC,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,GAAMhC,EAAI,GAAKgC,EAAKA,EAAKA,EAAKlC,EAAI,KAAc,IACrLX,EAAK1c,MAAwK,KAAjKyf,EAAKA,EAAKA,EAAKrC,EAAI,IAAMmC,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,GAAMjC,EAAI,IAAMiC,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,GAAMhC,EAAI,GAAKgC,EAAKA,EAAKA,EAAKlC,EAAI,KAAc,IAEjM,EA+DEc,gBAAiBA,EACjBxB,cAAeA,EACfiE,cAvQF,SAAuBhE,EAAIC,EAAIgE,EAAI/D,EAAIC,EAAI+D,EAAI9D,EAAIC,EAAI8D,GACrD,GAAW,IAAPF,GAAmB,IAAPC,GAAmB,IAAPC,EAC1B,OAAOpE,EAAcC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAG3C,IAGI+D,EAHAC,EAAQvE,EAAKxd,KAAKwd,EAAKnrB,IAAIurB,EAAKF,EAAI,GAAKF,EAAKnrB,IAAIwrB,EAAKF,EAAI,GAAKH,EAAKnrB,IAAIuvB,EAAKD,EAAI,IAClFK,EAAQxE,EAAKxd,KAAKwd,EAAKnrB,IAAIyrB,EAAKJ,EAAI,GAAKF,EAAKnrB,IAAI0rB,EAAKJ,EAAI,GAAKH,EAAKnrB,IAAIwvB,EAAKF,EAAI,IAClFM,EAAQzE,EAAKxd,KAAKwd,EAAKnrB,IAAIyrB,EAAKF,EAAI,GAAKJ,EAAKnrB,IAAI0rB,EAAKF,EAAI,GAAKL,EAAKnrB,IAAIwvB,EAAKD,EAAI,IAetF,OAVIE,EAFAC,EAAQC,EACND,EAAQE,EACCF,EAAQC,EAAQC,EAEhBA,EAAQD,EAAQD,EAEpBE,EAAQD,EACNC,EAAQD,EAAQD,EAEhBC,EAAQD,EAAQE,IAGV,MAAUH,EAAW,IAC1C,EAkPF,CAEA,IAAII,IAAM3E,cAEN4E,UAAYhmB,oBACZimB,QAAUx/B,KAAKiP,IAEnB,SAASwwB,iBAAiBC,EAAUC,GAClC,IACIC,EADAC,EAAargC,KAAKqgC,WAGA,qBAAlBrgC,KAAKsgC,WACPF,EAAWzjB,iBAAiB,UAAW3c,KAAKugC,GAAGzmC,SAWjD,IARA,IAII0mC,EACAC,EACAC,EA6BA/7B,EACAif,EACAuY,EACAxY,EACA3e,EACA27B,EAxCAC,EAAiBT,EAAQU,UACzBhnC,EAAI+mC,EACJlmB,EAAM1a,KAAK8gC,UAAUhnC,OAAS,EAC9BmgB,GAAO,EAKJA,GAAM,CAIX,GAHAumB,EAAUxgC,KAAK8gC,UAAUjnC,GACzB4mC,EAAczgC,KAAK8gC,UAAUjnC,EAAI,GAE7BA,IAAM6gB,EAAM,GAAKwlB,GAAYO,EAAYvzB,EAAImzB,EAAY,CACvDG,EAAQ7wB,IACV6wB,EAAUC,GAGZG,EAAiB,EACjB,KACF,CAEA,GAAIH,EAAYvzB,EAAImzB,EAAaH,EAAU,CACzCU,EAAiB/mC,EACjB,KACF,CAEIA,EAAI6gB,EAAM,EACZ7gB,GAAK,GAEL+mC,EAAiB,EACjB3mB,GAAO,EAEX,CAEAymB,EAAmB1gC,KAAK+gC,kBAAkBlnC,IAAM,CAAC,EAOjD,IAEImnC,EAFAC,EAAcR,EAAYvzB,EAAImzB,EAC9Ba,EAAUV,EAAQtzB,EAAImzB,EAG1B,GAAIG,EAAQW,GAAI,CACTT,EAAiB1D,aACpB0D,EAAiB1D,WAAa8C,IAAIjD,gBAAgB2D,EAAQl4B,EAAGm4B,EAAYn4B,GAAKk4B,EAAQlgC,EAAGkgC,EAAQW,GAAIX,EAAQY,KAG/G,IAAIpE,EAAa0D,EAAiB1D,WAElC,GAAIkD,GAAYe,GAAef,EAAWgB,EAAS,CACjD,IAAIG,EAAMnB,GAAYe,EAAcjE,EAAWvE,OAAO3+B,OAAS,EAAI,EAGnE,IAFA8pB,EAAOoZ,EAAWvE,OAAO4I,GAAKr3B,MAAMlQ,OAE/B6K,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACzBy7B,EAASz7B,GAAKq4B,EAAWvE,OAAO4I,GAAKr3B,MAAMrF,EAG/C,KAAO,CACD+7B,EAAiBY,OACnBX,EAAMD,EAAiBY,QAEvBX,EAAM/I,cAAc2J,gBAAgBf,EAAQhxB,EAAEqpB,EAAG2H,EAAQhxB,EAAEgyB,EAAGhB,EAAQ3mC,EAAEg/B,EAAG2H,EAAQ3mC,EAAE2nC,EAAGhB,EAAQrzB,GAAGxP,IACnG+iC,EAAiBY,OAASX,GAG5BxE,EAAOwE,GAAKT,EAAWgB,IAAYD,EAAcC,IACjD,IACIO,EADAC,EAAiB1E,EAAWP,cAAgBN,EAE5CrB,EAAcqF,EAAQwB,UAAYzB,GAAYC,EAAQyB,qBAAuB/nC,EAAIsmC,EAAQ0B,iBAAmB,EAKhH,IAJA78B,EAAIm7B,EAAQwB,UAAYzB,GAAYC,EAAQyB,qBAAuB/nC,EAAIsmC,EAAQ2B,WAAa,EAC5F7nB,GAAO,EACP0J,EAAOqZ,EAAWvE,OAAO3+B,OAElBmgB,GAAM,CAGX,GAFA6gB,GAAekC,EAAWvE,OAAOzzB,GAAG43B,cAEb,IAAnB8E,GAAiC,IAATvF,GAAcn3B,IAAMg4B,EAAWvE,OAAO3+B,OAAS,EAAG,CAG5E,IAFA8pB,EAAOoZ,EAAWvE,OAAOzzB,GAAGgF,MAAMlQ,OAE7B6K,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACzBy7B,EAASz7B,GAAKq4B,EAAWvE,OAAOzzB,GAAGgF,MAAMrF,GAG3C,KACF,CAAO,GAAI+8B,GAAkB5G,GAAe4G,EAAiB5G,EAAckC,EAAWvE,OAAOzzB,EAAI,GAAG43B,cAAe,CAIjH,IAHA6E,GAAeC,EAAiB5G,GAAekC,EAAWvE,OAAOzzB,EAAI,GAAG43B,cACxEhZ,EAAOoZ,EAAWvE,OAAOzzB,GAAGgF,MAAMlQ,OAE7B6K,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACzBy7B,EAASz7B,GAAKq4B,EAAWvE,OAAOzzB,GAAGgF,MAAMrF,IAAMq4B,EAAWvE,OAAOzzB,EAAI,GAAGgF,MAAMrF,GAAKq4B,EAAWvE,OAAOzzB,GAAGgF,MAAMrF,IAAM88B,EAGtH,KACF,CAEIz8B,EAAI2e,EAAO,EACb3e,GAAK,EAELiV,GAAO,CAEX,CAEAkmB,EAAQ2B,WAAa98B,EACrBm7B,EAAQ0B,iBAAmB/G,EAAckC,EAAWvE,OAAOzzB,GAAG43B,cAC9DuD,EAAQyB,mBAAqB/nC,CAC/B,CACF,KAAO,CACL,IAAIkoC,EACAC,EACAC,EACAC,EACAC,EAIJ,GAHAznB,EAAM8lB,EAAQl4B,EAAExO,OAChBknC,EAAWP,EAAYn4B,GAAKk4B,EAAQlgC,EAEhCN,KAAKoiC,IAAoB,IAAd5B,EAAQ7wB,EACjBuwB,GAAYe,GACdb,EAAS,GAAKY,EAAS,GACvBZ,EAAS,GAAKY,EAAS,GACvBZ,EAAS,GAAKY,EAAS,IACdd,GAAYgB,GACrBd,EAAS,GAAKI,EAAQl4B,EAAE,GACxB83B,EAAS,GAAKI,EAAQl4B,EAAE,GACxB83B,EAAS,GAAKI,EAAQl4B,EAAE,IAKxB+5B,kBAAkBjC,EAAUkC,MAHZC,iBAAiB/B,EAAQl4B,GAC3Bi6B,iBAAiBvB,IACnBd,EAAWgB,IAAYD,EAAcC,UAInD,IAAKrnC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACN,IAAd2mC,EAAQ7wB,IACNuwB,GAAYe,EACd9E,EAAO,EACE+D,EAAWgB,EACpB/E,EAAO,GAEHqE,EAAQhxB,EAAEqpB,EAAEz9B,cAAgB4F,OACzB0/B,EAAiBY,SACpBZ,EAAiBY,OAAS,IAGvBZ,EAAiBY,OAAOznC,GAQ3B8mC,EAAMD,EAAiBY,OAAOznC,IAP9BkoC,OAA0BzkC,IAAnBkjC,EAAQhxB,EAAEqpB,EAAEh/B,GAAmB2mC,EAAQhxB,EAAEqpB,EAAE,GAAK2H,EAAQhxB,EAAEqpB,EAAEh/B,GACnEmoC,OAA0B1kC,IAAnBkjC,EAAQhxB,EAAEgyB,EAAE3nC,GAAmB2mC,EAAQhxB,EAAEgyB,EAAE,GAAKhB,EAAQhxB,EAAEgyB,EAAE3nC,GACnEooC,OAAyB3kC,IAAnBkjC,EAAQ3mC,EAAEg/B,EAAEh/B,GAAmB2mC,EAAQ3mC,EAAEg/B,EAAE,GAAK2H,EAAQ3mC,EAAEg/B,EAAEh/B,GAClEqoC,OAAyB5kC,IAAnBkjC,EAAQ3mC,EAAE2nC,EAAE3nC,GAAmB2mC,EAAQ3mC,EAAE2nC,EAAE,GAAKhB,EAAQ3mC,EAAE2nC,EAAE3nC,GAClE8mC,EAAM/I,cAAc2J,gBAAgBQ,EAAMC,EAAMC,EAAKC,GAAKvkC,IAC1D+iC,EAAiBY,OAAOznC,GAAK8mC,IAIrBD,EAAiBY,OAQ3BX,EAAMD,EAAiBY,QAPvBS,EAAOvB,EAAQhxB,EAAEqpB,EACjBmJ,EAAOxB,EAAQhxB,EAAEgyB,EACjBS,EAAMzB,EAAQ3mC,EAAEg/B,EAChBqJ,EAAM1B,EAAQ3mC,EAAE2nC,EAChBb,EAAM/I,cAAc2J,gBAAgBQ,EAAMC,EAAMC,EAAKC,GAAKvkC,IAC1D6iC,EAAQE,iBAAmBC,GAK7BxE,EAAOwE,GAAKT,EAAWgB,IAAYD,EAAcC,MAIrDF,EAAWP,EAAYn4B,GAAKk4B,EAAQlgC,EACpC6hC,EAAyB,IAAd3B,EAAQ7wB,EAAU6wB,EAAQl4B,EAAEzO,GAAK2mC,EAAQl4B,EAAEzO,IAAMmnC,EAASnnC,GAAK2mC,EAAQl4B,EAAEzO,IAAMsiC,EAEpE,qBAAlBn8B,KAAKsgC,SACPF,EAASvmC,GAAKsoC,EAEd/B,EAAW+B,CAInB,CAGA,OADAhC,EAAQU,UAAYD,EACbR,CACT,CAGA,SAASkC,MAAM/kC,EAAGC,EAAG0P,GACnB,IASIs1B,EACAC,EACAC,EACAC,EACAC,EAbA1jC,EAAM,GACN2jC,EAAKtlC,EAAE,GACPulC,EAAKvlC,EAAE,GACPwlC,EAAKxlC,EAAE,GACPylC,EAAKzlC,EAAE,GACP0lC,EAAKzlC,EAAE,GACP0lC,EAAK1lC,EAAE,GACP2lC,EAAK3lC,EAAE,GACP4lC,EAAK5lC,EAAE,GA8BX,OAxBAilC,EAAQI,EAAKI,EAAKH,EAAKI,EAAKH,EAAKI,EAAKH,EAAKI,GAE/B,IACVX,GAASA,EACTQ,GAAMA,EACNC,GAAMA,EACNC,GAAMA,EACNC,GAAMA,GAGJ,EAAMX,EAAQ,MAChBD,EAAQhiC,KAAK6iC,KAAKZ,GAClBC,EAAQliC,KAAK8iC,IAAId,GACjBG,EAASniC,KAAK8iC,KAAK,EAAMp2B,GAAKs1B,GAASE,EACvCE,EAASpiC,KAAK8iC,IAAIp2B,EAAIs1B,GAASE,IAE/BC,EAAS,EAAMz1B,EACf01B,EAAS11B,GAGXhO,EAAI,GAAKyjC,EAASE,EAAKD,EAASK,EAChC/jC,EAAI,GAAKyjC,EAASG,EAAKF,EAASM,EAChChkC,EAAI,GAAKyjC,EAASI,EAAKH,EAASO,EAChCjkC,EAAI,GAAKyjC,EAASK,EAAKJ,EAASQ,EACzBlkC,CACT,CAEA,SAASmjC,kBAAkBnjC,EAAKqkC,GAC9B,IAAIC,EAAKD,EAAK,GACVE,EAAKF,EAAK,GACVG,EAAKH,EAAK,GACVI,EAAKJ,EAAK,GACVK,EAAUpjC,KAAKqjC,MAAM,EAAIJ,EAAKE,EAAK,EAAIH,EAAKE,EAAI,EAAI,EAAID,EAAKA,EAAK,EAAIC,EAAKA,GAC3EI,EAAWtjC,KAAKujC,KAAK,EAAIP,EAAKC,EAAK,EAAIC,EAAKC,GAC5CK,EAAOxjC,KAAKqjC,MAAM,EAAIL,EAAKG,EAAK,EAAIF,EAAKC,EAAI,EAAI,EAAIF,EAAKA,EAAK,EAAIE,EAAKA,GAC5ExkC,EAAI,GAAK0kC,EAAUvlB,UACnBnf,EAAI,GAAK4kC,EAAWzlB,UACpBnf,EAAI,GAAK8kC,EAAO3lB,SAClB,CAEA,SAASkkB,iBAAiBr/B,GACxB,IAAI0gC,EAAU1gC,EAAO,GAAKmb,UACtBylB,EAAW5gC,EAAO,GAAKmb,UACvB2lB,EAAO9gC,EAAO,GAAKmb,UACnB4lB,EAAKzjC,KAAK0jC,IAAIN,EAAU,GACxBO,EAAK3jC,KAAK0jC,IAAIJ,EAAW,GACzBM,EAAK5jC,KAAK0jC,IAAIF,EAAO,GACrBK,EAAK7jC,KAAK8iC,IAAIM,EAAU,GACxBU,EAAK9jC,KAAK8iC,IAAIQ,EAAW,GACzBS,EAAK/jC,KAAK8iC,IAAIU,EAAO,GAKzB,MAAO,CAHCK,EAAKC,EAAKF,EAAKH,EAAKE,EAAKI,EACzBF,EAAKF,EAAKC,EAAKH,EAAKK,EAAKC,EACzBN,EAAKK,EAAKF,EAAKC,EAAKF,EAAKI,EAHzBN,EAAKE,EAAKC,EAAKC,EAAKC,EAAKC,EAKnC,CAEA,SAASC,wBACP,IAAItE,EAAWlgC,KAAKykB,KAAKggB,cAAgBzkC,KAAKqgC,WAC1CtK,EAAW/1B,KAAK8gC,UAAU,GAAG5zB,EAAIlN,KAAKqgC,WACtCqE,EAAU1kC,KAAK8gC,UAAU9gC,KAAK8gC,UAAUhnC,OAAS,GAAGoT,EAAIlN,KAAKqgC,WAEjE,KAAMH,IAAalgC,KAAK2kC,SAAShD,WAAa3hC,KAAK2kC,SAAShD,YAAc5B,YAAc//B,KAAK2kC,SAAShD,WAAa+C,GAAWxE,GAAYwE,GAAW1kC,KAAK2kC,SAAShD,UAAY5L,GAAYmK,EAAWnK,IAAY,CAC5M/1B,KAAK2kC,SAAShD,WAAazB,IAC7BlgC,KAAK2kC,SAAS/C,oBAAsB,EACpC5hC,KAAK2kC,SAAS9D,UAAY,GAG5B,IAAI+D,EAAe5kC,KAAKigC,iBAAiBC,EAAUlgC,KAAK2kC,UACxD3kC,KAAKugC,GAAKqE,CACZ,CAGA,OADA5kC,KAAK2kC,SAAShD,UAAYzB,EACnBlgC,KAAKugC,EACd,CAEA,SAASsE,UAAU77B,GACjB,IAAI87B,EAEJ,GAAsB,mBAAlB9kC,KAAKsgC,SACPwE,EAAkB97B,EAAMhJ,KAAK+kC,KAEzB/E,QAAQhgC,KAAK0gB,EAAIokB,GAAmB,OACtC9kC,KAAK0gB,EAAIokB,EACT9kC,KAAKglC,MAAO,QAMd,IAHA,IAAInrC,EAAI,EACJ6gB,EAAM1a,KAAK0gB,EAAE5mB,OAEVD,EAAI6gB,GACToqB,EAAkB97B,EAAInP,GAAKmG,KAAK+kC,KAE5B/E,QAAQhgC,KAAK0gB,EAAE7mB,GAAKirC,GAAmB,OACzC9kC,KAAK0gB,EAAE7mB,GAAKirC,EACZ9kC,KAAKglC,MAAO,GAGdnrC,GAAK,CAGX,CAEA,SAASorC,yBACP,GAAIjlC,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,SAAYllC,KAAKmlC,gBAAgBrrC,OAI3E,GAAIkG,KAAKolC,KACPplC,KAAK6kC,UAAU7kC,KAAKugC,QADtB,CAOA,IAAI1mC,EAFJmG,KAAKolC,MAAO,EACZplC,KAAKglC,KAAOhlC,KAAKqlC,cAEjB,IAAI3qB,EAAM1a,KAAKmlC,gBAAgBrrC,OAC3BwrC,EAAatlC,KAAKulC,GAAKvlC,KAAKugC,GAAKvgC,KAAK6iB,KAAKle,EAE/C,IAAK9K,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxByrC,EAAatlC,KAAKmlC,gBAAgBtrC,GAAGyrC,GAGvCtlC,KAAK6kC,UAAUS,GACftlC,KAAKqlC,eAAgB,EACrBrlC,KAAKolC,MAAO,EACZplC,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,OAfpC,CAgBF,CAEA,SAASM,UAAUC,GACjBzlC,KAAKmlC,gBAAgB3mC,KAAKinC,GAC1BzlC,KAAKqwB,UAAUqV,mBAAmB1lC,KACpC,CAEA,SAAS2lC,cAAcnP,EAAM3T,EAAMkiB,EAAM1U,GACvCrwB,KAAKsgC,SAAW,iBAChBtgC,KAAK+kC,KAAOA,GAAQ,EACpB/kC,KAAK6iB,KAAOA,EACZ7iB,KAAK0gB,EAAIqkB,EAAOliB,EAAKle,EAAIogC,EAAOliB,EAAKle,EACrC3E,KAAKugC,GAAK1d,EAAKle,EACf3E,KAAKglC,MAAO,EACZhlC,KAAKw2B,KAAOA,EACZx2B,KAAKqwB,UAAYA,EACjBrwB,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAK2E,GAAI,EACT3E,KAAKulC,IAAK,EACVvlC,KAAK4lC,IAAM,EACX5lC,KAAKmlC,gBAAkB,GACvBnlC,KAAKqlC,eAAgB,EACrBrlC,KAAK6lC,SAAWZ,uBAChBjlC,KAAK6kC,UAAYA,UACjB7kC,KAAKwlC,UAAYA,SACnB,CAEA,SAASM,yBAAyBtP,EAAM3T,EAAMkiB,EAAM1U,GAWlD,IAAIx2B,EAVJmG,KAAKsgC,SAAW,mBAChBtgC,KAAK+kC,KAAOA,GAAQ,EACpB/kC,KAAK6iB,KAAOA,EACZ7iB,KAAKglC,MAAO,EACZhlC,KAAKw2B,KAAOA,EACZx2B,KAAKqwB,UAAYA,EACjBrwB,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAK2E,GAAI,EACT3E,KAAKulC,IAAK,EACVvlC,KAAKklC,SAAW,EAEhB,IAAIxqB,EAAMmI,EAAKle,EAAE7K,OAKjB,IAJAkG,KAAK0gB,EAAI/D,iBAAiB,UAAWjC,GACrC1a,KAAKugC,GAAK5jB,iBAAiB,UAAWjC,GACtC1a,KAAK4lC,IAAMjpB,iBAAiB,UAAWjC,GAElC7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAK0gB,EAAE7mB,GAAKgpB,EAAKle,EAAE9K,GAAKmG,KAAK+kC,KAC7B/kC,KAAKugC,GAAG1mC,GAAKgpB,EAAKle,EAAE9K,GAGtBmG,KAAKqlC,eAAgB,EACrBrlC,KAAKmlC,gBAAkB,GACvBnlC,KAAK6lC,SAAWZ,uBAChBjlC,KAAK6kC,UAAYA,UACjB7kC,KAAKwlC,UAAYA,SACnB,CAEA,SAASO,uBAAuBvP,EAAM3T,EAAMkiB,EAAM1U,GAChDrwB,KAAKsgC,SAAW,iBAChBtgC,KAAK8gC,UAAYje,EAAKle,EACtB3E,KAAK+gC,kBAAoB,GACzB/gC,KAAKqgC,WAAa7J,EAAK3T,KAAKkD,GAC5B/lB,KAAKklC,SAAW,EAChBllC,KAAK2kC,SAAW,CACdhD,UAAW5B,UACXc,UAAW,EACXxlC,MAAO,EACPumC,oBAAqB,GAEvB5hC,KAAK2E,GAAI,EACT3E,KAAKulC,IAAK,EACVvlC,KAAK6iB,KAAOA,EACZ7iB,KAAK+kC,KAAOA,GAAQ,EACpB/kC,KAAKw2B,KAAOA,EACZx2B,KAAKqwB,UAAYA,EACjBrwB,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAK0gB,EAAIqf,UACT//B,KAAKugC,GAAKR,UACV//B,KAAKqlC,eAAgB,EACrBrlC,KAAK6lC,SAAWZ,uBAChBjlC,KAAK6kC,UAAYA,UACjB7kC,KAAKigC,iBAAmBA,iBACxBjgC,KAAKmlC,gBAAkB,CAACX,sBAAsB5Z,KAAK5qB,OACnDA,KAAKwlC,UAAYA,SACnB,CAEA,SAASQ,kCAAkCxP,EAAM3T,EAAMkiB,EAAM1U,GAE3D,IAAIx2B,EADJmG,KAAKsgC,SAAW,mBAEhB,IACIh4B,EACAhI,EACA6gC,EACAC,EAJA1mB,EAAMmI,EAAKle,EAAE7K,OAMjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAM,EAAG7gB,GAAK,EACxBgpB,EAAKle,EAAE9K,GAAGsnC,IAAMte,EAAKle,EAAE9K,GAAGyO,GAAKua,EAAKle,EAAE9K,EAAI,IAAMgpB,EAAKle,EAAE9K,EAAI,GAAGyO,IAChEA,EAAIua,EAAKle,EAAE9K,GAAGyO,EACdhI,EAAIuiB,EAAKle,EAAE9K,EAAI,GAAGyO,EAClB64B,EAAKte,EAAKle,EAAE9K,GAAGsnC,GACfC,EAAKve,EAAKle,EAAE9K,GAAGunC,IAEE,IAAb94B,EAAExO,SAAkBwO,EAAE,KAAOhI,EAAE,IAAMgI,EAAE,KAAOhI,EAAE,KAAOw/B,IAAIzE,cAAc/yB,EAAE,GAAIA,EAAE,GAAIhI,EAAE,GAAIA,EAAE,GAAIgI,EAAE,GAAK64B,EAAG,GAAI74B,EAAE,GAAK64B,EAAG,KAAOrB,IAAIzE,cAAc/yB,EAAE,GAAIA,EAAE,GAAIhI,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAK8gC,EAAG,GAAI9gC,EAAE,GAAK8gC,EAAG,KAAoB,IAAb94B,EAAExO,SAAkBwO,EAAE,KAAOhI,EAAE,IAAMgI,EAAE,KAAOhI,EAAE,IAAMgI,EAAE,KAAOhI,EAAE,KAAOw/B,IAAIR,cAAch3B,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIhI,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIgI,EAAE,GAAK64B,EAAG,GAAI74B,EAAE,GAAK64B,EAAG,GAAI74B,EAAE,GAAK64B,EAAG,KAAOrB,IAAIR,cAAch3B,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIhI,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAK8gC,EAAG,GAAI9gC,EAAE,GAAK8gC,EAAG,GAAI9gC,EAAE,GAAK8gC,EAAG,OACldve,EAAKle,EAAE9K,GAAGsnC,GAAK,KACfte,EAAKle,EAAE9K,GAAGunC,GAAK,MAGb94B,EAAE,KAAOhI,EAAE,IAAMgI,EAAE,KAAOhI,EAAE,IAAgB,IAAV6gC,EAAG,IAAsB,IAAVA,EAAG,IAAsB,IAAVC,EAAG,IAAsB,IAAVA,EAAG,KACnE,IAAb94B,EAAExO,QAAgBwO,EAAE,KAAOhI,EAAE,IAAgB,IAAV6gC,EAAG,IAAsB,IAAVC,EAAG,MACvDve,EAAKle,EAAE9K,GAAGsnC,GAAK,KACfte,EAAKle,EAAE9K,GAAGunC,GAAK,OAMvBphC,KAAKmlC,gBAAkB,CAACX,sBAAsB5Z,KAAK5qB,OACnDA,KAAK6iB,KAAOA,EACZ7iB,KAAK8gC,UAAYje,EAAKle,EACtB3E,KAAK+gC,kBAAoB,GACzB/gC,KAAKqgC,WAAa7J,EAAK3T,KAAKkD,GAC5B/lB,KAAK2E,GAAI,EACT3E,KAAKulC,IAAK,EACVvlC,KAAKqlC,eAAgB,EACrBrlC,KAAK+kC,KAAOA,GAAQ,EACpB/kC,KAAKw2B,KAAOA,EACZx2B,KAAKqwB,UAAYA,EACjBrwB,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAK6lC,SAAWZ,uBAChBjlC,KAAK6kC,UAAYA,UACjB7kC,KAAKigC,iBAAmBA,iBACxBjgC,KAAKklC,SAAW,EAChB,IAAIe,EAASpjB,EAAKle,EAAE,GAAG2D,EAAExO,OAIzB,IAHAkG,KAAK0gB,EAAI/D,iBAAiB,UAAWspB,GACrCjmC,KAAKugC,GAAK5jB,iBAAiB,UAAWspB,GAEjCpsC,EAAI,EAAGA,EAAIosC,EAAQpsC,GAAK,EAC3BmG,KAAK0gB,EAAE7mB,GAAKkmC,UACZ//B,KAAKugC,GAAG1mC,GAAKkmC,UAGf//B,KAAK2kC,SAAW,CACdhD,UAAW5B,UACXc,UAAW,EACXxlC,MAAOshB,iBAAiB,UAAWspB,IAErCjmC,KAAKwlC,UAAYA,SACnB,CAEA,IAAIU,gBAkCO,CACPC,QAlCF,SAAiB3P,EAAM3T,EAAM9jB,EAAMgmC,EAAM1U,GAKvC,IAAIxgB,EAEJ,GANIgT,EAAKujB,MACPvjB,EAAO2T,EAAK/F,WAAW4V,YAAYF,QAAQtjB,IAKxCA,EAAKle,EAAE7K,OAEL,GAAyB,kBAAd+oB,EAAKle,EAAE,GACvBkL,EAAI,IAAIi2B,yBAAyBtP,EAAM3T,EAAMkiB,EAAM1U,QAEnD,OAAQtxB,GACN,KAAK,EACH8Q,EAAI,IAAIk2B,uBAAuBvP,EAAM3T,EAAMkiB,EAAM1U,GACjD,MAEF,KAAK,EACHxgB,EAAI,IAAIm2B,kCAAkCxP,EAAM3T,EAAMkiB,EAAM1U,QAVhExgB,EAAI,IAAI81B,cAAcnP,EAAM3T,EAAMkiB,EAAM1U,GAsB1C,OAJIxgB,EAAEs1B,gBAAgBrrC,QACpBu2B,EAAUqV,mBAAmB71B,GAGxBA,CACT,GAQF,SAASy2B,2BAA4B,CAErCA,yBAAyBhsC,UAAY,CACnCorC,mBAAoB,SAA4B7qB,IACA,IAA1C7a,KAAKumC,kBAAkBlf,QAAQxM,KACjC7a,KAAKumC,kBAAkB/nC,KAAKqc,GAC5B7a,KAAKqwB,UAAUqV,mBAAmB1lC,MAClCA,KAAKwmC,aAAc,EAEvB,EACAC,yBAA0B,WAExB,IAAI5sC,EADJmG,KAAKglC,MAAO,EAEZ,IAAItqB,EAAM1a,KAAKumC,kBAAkBzsC,OAEjC,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKumC,kBAAkB1sC,GAAGgsC,WAEtB7lC,KAAKumC,kBAAkB1sC,GAAGmrC,OAC5BhlC,KAAKglC,MAAO,EAGlB,EACA0B,6BAA8B,SAAsCrW,GAClErwB,KAAKqwB,UAAYA,EACjBrwB,KAAKumC,kBAAoB,GACzBvmC,KAAKglC,MAAO,EACZhlC,KAAKwmC,aAAc,CACrB,GAGF,IAAIG,UAKKtM,YAAY,GAJnB,WACE,OAAO1d,iBAAiB,UAAW,EACrC,IAKF,SAASiqB,YACP5mC,KAAKvC,GAAI,EACTuC,KAAKw6B,QAAU,EACfx6B,KAAKy6B,WAAa,EAClBz6B,KAAK0gB,EAAIzD,iBAAiBjd,KAAKy6B,YAC/Bz6B,KAAKwP,EAAIyN,iBAAiBjd,KAAKy6B,YAC/Bz6B,KAAKnG,EAAIojB,iBAAiBjd,KAAKy6B,WACjC,CAEAmM,UAAUtsC,UAAUusC,YAAc,SAAUpgB,EAAQ/L,GAClD1a,KAAKvC,EAAIgpB,EACTzmB,KAAK8mC,UAAUpsB,GAGf,IAFA,IAAI7gB,EAAI,EAEDA,EAAI6gB,GACT1a,KAAK0gB,EAAE7mB,GAAK8sC,UAAUhM,aACtB36B,KAAKwP,EAAE3V,GAAK8sC,UAAUhM,aACtB36B,KAAKnG,EAAEA,GAAK8sC,UAAUhM,aACtB9gC,GAAK,CAET,EAEA+sC,UAAUtsC,UAAUwsC,UAAY,SAAUpsB,GACxC,KAAO1a,KAAKy6B,WAAa/f,GACvB1a,KAAK+mC,oBAGP/mC,KAAKw6B,QAAU9f,CACjB,EAEAksB,UAAUtsC,UAAUysC,kBAAoB,WACtC/mC,KAAK0gB,EAAI1gB,KAAK0gB,EAAE3b,OAAOkY,iBAAiBjd,KAAKy6B,aAC7Cz6B,KAAKnG,EAAImG,KAAKnG,EAAEkL,OAAOkY,iBAAiBjd,KAAKy6B,aAC7Cz6B,KAAKwP,EAAIxP,KAAKwP,EAAEzK,OAAOkY,iBAAiBjd,KAAKy6B,aAC7Cz6B,KAAKy6B,YAAc,CACrB,EAEAmM,UAAUtsC,UAAU0sC,QAAU,SAAUnO,EAAG2I,EAAGziC,EAAMsJ,EAAK0H,GACvD,IAAI8M,EAOJ,OANA7c,KAAKw6B,QAAUh6B,KAAKmI,IAAI3I,KAAKw6B,QAASnyB,EAAM,GAExCrI,KAAKw6B,SAAWx6B,KAAKy6B,YACvBz6B,KAAK+mC,oBAGChoC,GACN,IAAK,IACH8d,EAAM7c,KAAK0gB,EACX,MAEF,IAAK,IACH7D,EAAM7c,KAAKnG,EACX,MAEF,IAAK,IACHgjB,EAAM7c,KAAKwP,EACX,MAEF,QACEqN,EAAM,KAILA,EAAIxU,IAAQwU,EAAIxU,KAAS0H,KAC5B8M,EAAIxU,GAAOs+B,UAAUhM,cAGvB9d,EAAIxU,GAAK,GAAKwwB,EACdhc,EAAIxU,GAAK,GAAKm5B,CAChB,EAEAoF,UAAUtsC,UAAU2sC,YAAc,SAAUC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIl/B,EAAK0H,GACvE/P,KAAKgnC,QAAQE,EAAIC,EAAI,IAAK9+B,EAAK0H,GAC/B/P,KAAKgnC,QAAQI,EAAIC,EAAI,IAAKh/B,EAAK0H,GAC/B/P,KAAKgnC,QAAQM,EAAIC,EAAI,IAAKl/B,EAAK0H,EACjC,EAEA62B,UAAUtsC,UAAUktC,QAAU,WAC5B,IAAIC,EAAU,IAAIb,UAClBa,EAAQZ,YAAY7mC,KAAKvC,EAAGuC,KAAKw6B,SACjC,IAAIkN,EAAW1nC,KAAK0gB,EAChBinB,EAAY3nC,KAAKwP,EACjBo4B,EAAW5nC,KAAKnG,EAChB+6B,EAAO,EAEP50B,KAAKvC,IACPgqC,EAAQR,YAAYS,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAIE,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAID,EAAU,GAAG,GAAIA,EAAU,GAAG,GAAI,GAAG,GACzH/S,EAAO,GAGT,IAEI/6B,EAFAguC,EAAM7nC,KAAKw6B,QAAU,EACrB9f,EAAM1a,KAAKw6B,QAGf,IAAK3gC,EAAI+6B,EAAM/6B,EAAI6gB,EAAK7gB,GAAK,EAC3B4tC,EAAQR,YAAYS,EAASG,GAAK,GAAIH,EAASG,GAAK,GAAID,EAASC,GAAK,GAAID,EAASC,GAAK,GAAIF,EAAUE,GAAK,GAAIF,EAAUE,GAAK,GAAIhuC,GAAG,GACrIguC,GAAO,EAGT,OAAOJ,CACT,EAEAb,UAAUtsC,UAAUR,OAAS,WAC3B,OAAOkG,KAAKw6B,OACd,EAEA,IAAIsN,UAAY,WAoCd,IAAIpuB,EAAU2gB,YAAY,GAnC1B,WACE,OAAO,IAAIuM,SACb,IAEA,SAAiBmB,GACf,IACIluC,EADA6gB,EAAMqtB,EAAUvN,QAGpB,IAAK3gC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB8sC,UAAU/L,QAAQmN,EAAUrnB,EAAE7mB,IAC9B8sC,UAAU/L,QAAQmN,EAAUluC,EAAEA,IAC9B8sC,UAAU/L,QAAQmN,EAAUv4B,EAAE3V,IAC9BkuC,EAAUrnB,EAAE7mB,GAAK,KACjBkuC,EAAUluC,EAAEA,GAAK,KACjBkuC,EAAUv4B,EAAE3V,GAAK,KAGnBkuC,EAAUvN,QAAU,EACpBuN,EAAUtqC,GAAI,CAChB,IAkBA,OADAic,EAAQsuB,MAfR,SAAeC,GACb,IACIpuC,EADAquC,EAASxuB,EAAQihB,aAEjBjgB,OAAwBpd,IAAlB2qC,EAAMzN,QAAwByN,EAAMvnB,EAAE5mB,OAASmuC,EAAMzN,QAI/D,IAHA0N,EAAOpB,UAAUpsB,GACjBwtB,EAAOzqC,EAAIwqC,EAAMxqC,EAEZ5D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBquC,EAAOjB,YAAYgB,EAAMvnB,EAAE7mB,GAAG,GAAIouC,EAAMvnB,EAAE7mB,GAAG,GAAIouC,EAAMz4B,EAAE3V,GAAG,GAAIouC,EAAMz4B,EAAE3V,GAAG,GAAIouC,EAAMpuC,EAAEA,GAAG,GAAIouC,EAAMpuC,EAAEA,GAAG,GAAIA,GAG/G,OAAOquC,CACT,EAIOxuB,CACT,CAvCgB,GAyChB,SAASyuB,kBACPnoC,KAAKw6B,QAAU,EACfx6B,KAAKy6B,WAAa,EAClBz6B,KAAKukB,OAAStH,iBAAiBjd,KAAKy6B,WACtC,CAEA0N,gBAAgB7tC,UAAU8tC,SAAW,SAAU5K,GACzCx9B,KAAKw6B,UAAYx6B,KAAKy6B,aACxBz6B,KAAKukB,OAASvkB,KAAKukB,OAAOxf,OAAOkY,iBAAiBjd,KAAKy6B,aACvDz6B,KAAKy6B,YAAc,GAGrBz6B,KAAKukB,OAAOvkB,KAAKw6B,SAAWgD,EAC5Bx9B,KAAKw6B,SAAW,CAClB,EAEA2N,gBAAgB7tC,UAAU+tC,cAAgB,WACxC,IAAIxuC,EAEJ,IAAKA,EAAI,EAAGA,EAAImG,KAAKw6B,QAAS3gC,GAAK,EACjCiuC,UAAUlN,QAAQ56B,KAAKukB,OAAO1qB,IAGhCmG,KAAKw6B,QAAU,CACjB,EAEA,IAAI8N,oBAAsB,WACxB,IAAIxd,EAAK,CACPyd,mBAOF,WAUE,OAPI/N,EAEgBE,EADlBF,GAAW,GAGO,IAAI2N,eAI1B,EAjBEvN,QAmBF,SAAiB4N,GACf,IAAI3uC,EACA6gB,EAAM8tB,EAAgBhO,QAE1B,IAAK3gC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBiuC,UAAUlN,QAAQ4N,EAAgBjkB,OAAO1qB,IAG3C2uC,EAAgBhO,QAAU,EAEtBA,IAAYC,IACdC,EAAON,QAAgB,OAAEM,GACzBD,GAAc,GAGhBC,EAAKF,GAAWgO,EAChBhO,GAAW,CACb,GAlCIA,EAAU,EACVC,EAAa,EACbC,EAAOzd,iBAAiBwd,GAkC5B,OAAO3P,CACT,CA1C0B,GA4CtB2d,qBAAuB,WACzB,IAAI1I,GAAa,OAEjB,SAAS2I,EAAiBxI,EAAUyI,EAAexI,GACjD,IACIyI,EACAC,EACAC,EACA9jC,EACAL,EACAgf,EACAC,EACAuY,EACA4M,EATAnI,EAAiBT,EAAQU,UAUzB0E,EAAKvlC,KAAK8gC,UAEd,GAAIZ,EAAWqF,EAAG,GAAGr4B,EAAIlN,KAAKqgC,WAC5BuI,EAAWrD,EAAG,GAAGj9B,EAAE,GACnBwgC,GAAS,EACTlI,EAAiB,OACZ,GAAIV,GAAYqF,EAAGA,EAAGzrC,OAAS,GAAGoT,EAAIlN,KAAKqgC,WAChDuI,EAAWrD,EAAGA,EAAGzrC,OAAS,GAAGwO,EAAIi9B,EAAGA,EAAGzrC,OAAS,GAAGwO,EAAE,GAAKi9B,EAAGA,EAAGzrC,OAAS,GAAGwG,EAAE,GAO9EwoC,GAAS,MACJ,CAQL,IAPA,IAGItI,EACAC,EACAC,EALA7mC,EAAI+mC,EACJlmB,EAAM6qB,EAAGzrC,OAAS,EAClBmgB,GAAO,EAKJA,IACLumB,EAAU+E,EAAG1rC,MACb4mC,EAAc8E,EAAG1rC,EAAI,IAELqT,EAAIlN,KAAKqgC,WAAaH,KAIlCrmC,EAAI6gB,EAAM,EACZ7gB,GAAK,EAELogB,GAAO,EAQX,GAJAymB,EAAmB1gC,KAAK+gC,kBAAkBlnC,IAAM,CAAC,EAEjD+mC,EAAiB/mC,IADjBivC,EAAuB,IAAdtI,EAAQ7wB,GAGJ,CACX,GAAIuwB,GAAYO,EAAYvzB,EAAIlN,KAAKqgC,WACnClE,EAAO,OACF,GAAI+D,EAAWM,EAAQtzB,EAAIlN,KAAKqgC,WACrClE,EAAO,MACF,CACL,IAAIwE,EAEAD,EAAiBY,OACnBX,EAAMD,EAAiBY,QAEvBX,EAAM/I,cAAc2J,gBAAgBf,EAAQhxB,EAAEqpB,EAAG2H,EAAQhxB,EAAEgyB,EAAGhB,EAAQ3mC,EAAEg/B,EAAG2H,EAAQ3mC,EAAE2nC,GAAG7jC,IACxF+iC,EAAiBY,OAASX,GAG5BxE,EAAOwE,GAAKT,GAAYM,EAAQtzB,EAAIlN,KAAKqgC,cAAgBI,EAAYvzB,EAAIlN,KAAKqgC,YAAcG,EAAQtzB,EAAIlN,KAAKqgC,aAC/G,CAEAwI,EAAWpI,EAAYn4B,EAAIm4B,EAAYn4B,EAAE,GAAKk4B,EAAQlgC,EAAE,EAC1D,CAEAsoC,EAAWpI,EAAQl4B,EAAE,EACvB,CAMA,IAJAqb,EAAOglB,EAAcnO,QACrB5W,EAAOglB,EAAS/uC,EAAE,GAAGC,OACrBqmC,EAAQU,UAAYD,EAEf57B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzB,IAAKL,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACzBokC,EAAcD,EAASF,EAAS/uC,EAAEmL,GAAGL,GAAKikC,EAAS/uC,EAAEmL,GAAGL,IAAMkkC,EAAShvC,EAAEmL,GAAGL,GAAKikC,EAAS/uC,EAAEmL,GAAGL,IAAMw3B,EACrGwM,EAAc9uC,EAAEmL,GAAGL,GAAKokC,EACxBA,EAAcD,EAASF,EAASp5B,EAAExK,GAAGL,GAAKikC,EAASp5B,EAAExK,GAAGL,IAAMkkC,EAASr5B,EAAExK,GAAGL,GAAKikC,EAASp5B,EAAExK,GAAGL,IAAMw3B,EACrGwM,EAAcn5B,EAAExK,GAAGL,GAAKokC,EACxBA,EAAcD,EAASF,EAASloB,EAAE1b,GAAGL,GAAKikC,EAASloB,EAAE1b,GAAGL,IAAMkkC,EAASnoB,EAAE1b,GAAGL,GAAKikC,EAASloB,EAAE1b,GAAGL,IAAMw3B,EACrGwM,EAAcjoB,EAAE1b,GAAGL,GAAKokC,CAG9B,CAEA,SAASC,IACP,IAAI9I,EAAWlgC,KAAKykB,KAAKggB,cAAgBzkC,KAAKqgC,WAC1CtK,EAAW/1B,KAAK8gC,UAAU,GAAG5zB,EAAIlN,KAAKqgC,WACtCqE,EAAU1kC,KAAK8gC,UAAU9gC,KAAK8gC,UAAUhnC,OAAS,GAAGoT,EAAIlN,KAAKqgC,WAC7DsB,EAAY3hC,KAAK2kC,SAAShD,UAS9B,OAPMA,IAAc5B,IAAc4B,EAAY5L,GAAYmK,EAAWnK,GAAY4L,EAAY+C,GAAWxE,EAAWwE,KAEjH1kC,KAAK2kC,SAAS9D,UAAYc,EAAYzB,EAAWlgC,KAAK2kC,SAAS9D,UAAY,EAC3E7gC,KAAK0oC,iBAAiBxI,EAAUlgC,KAAKugC,GAAIvgC,KAAK2kC,WAGhD3kC,KAAK2kC,SAAShD,UAAYzB,EACnBlgC,KAAKugC,EACd,CAEA,SAAS0I,IACPjpC,KAAKkpC,MAAQlpC,KAAKmpC,oBACpB,CAmBA,SAAStE,EAAU4C,IAjBnB,SAAqB2B,EAAQC,GAC3B,GAAID,EAAO5O,UAAY6O,EAAO7O,SAAW4O,EAAO3rC,IAAM4rC,EAAO5rC,EAC3D,OAAO,EAGT,IAAI5D,EACA6gB,EAAM0uB,EAAO5O,QAEjB,IAAK3gC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAIuvC,EAAO1oB,EAAE7mB,GAAG,KAAOwvC,EAAO3oB,EAAE7mB,GAAG,IAAMuvC,EAAO1oB,EAAE7mB,GAAG,KAAOwvC,EAAO3oB,EAAE7mB,GAAG,IAAMuvC,EAAO55B,EAAE3V,GAAG,KAAOwvC,EAAO75B,EAAE3V,GAAG,IAAMuvC,EAAO55B,EAAE3V,GAAG,KAAOwvC,EAAO75B,EAAE3V,GAAG,IAAMuvC,EAAOvvC,EAAEA,GAAG,KAAOwvC,EAAOxvC,EAAEA,GAAG,IAAMuvC,EAAOvvC,EAAEA,GAAG,KAAOwvC,EAAOxvC,EAAEA,GAAG,GAC1N,OAAO,EAIX,OAAO,CACT,EAGOyvC,CAAYtpC,KAAK0gB,EAAG+mB,KACvBznC,KAAK0gB,EAAIonB,UAAUE,MAAMP,GACzBznC,KAAKmpC,qBAAqBd,gBAC1BroC,KAAKmpC,qBAAqBf,SAASpoC,KAAK0gB,GACxC1gB,KAAKglC,MAAO,EACZhlC,KAAKkpC,MAAQlpC,KAAKmpC,qBAEtB,CAEA,SAASlE,IACP,GAAIjlC,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,QAI1C,GAAKllC,KAAKmlC,gBAAgBrrC,OAK1B,GAAIkG,KAAKolC,KACPplC,KAAK6kC,UAAU7kC,KAAKugC,QADtB,CAOA,IAAI+E,EAUAzrC,EAZJmG,KAAKolC,MAAO,EACZplC,KAAKglC,MAAO,EAIVM,EADEtlC,KAAKulC,GACMvlC,KAAKugC,GACTvgC,KAAK6iB,KAAKgC,GACN7kB,KAAK6iB,KAAKgC,GAAGlgB,EAEb3E,KAAK6iB,KAAKoB,GAAGtf,EAI5B,IAAI+V,EAAM1a,KAAKmlC,gBAAgBrrC,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxByrC,EAAatlC,KAAKmlC,gBAAgBtrC,GAAGyrC,GAGvCtlC,KAAK6kC,UAAUS,GACftlC,KAAKolC,MAAO,EACZplC,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,OAvBpC,MAPEllC,KAAKglC,MAAO,CA+BhB,CAEA,SAASuE,EAAc/S,EAAM3T,EAAM9jB,GACjCiB,KAAKsgC,SAAW,QAChBtgC,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAKqwB,UAAYmG,EACjBx2B,KAAKw2B,KAAOA,EACZx2B,KAAK6iB,KAAOA,EACZ7iB,KAAK2E,GAAI,EACT3E,KAAKulC,IAAK,EACVvlC,KAAKglC,MAAO,EACZ,IAAI5e,EAAoB,IAATrnB,EAAa8jB,EAAKoB,GAAGtf,EAAIke,EAAKgC,GAAGlgB,EAChD3E,KAAK0gB,EAAIonB,UAAUE,MAAM5hB,GACzBpmB,KAAKugC,GAAKuH,UAAUE,MAAMhoC,KAAK0gB,GAC/B1gB,KAAKmpC,qBAAuBb,oBAAoBC,qBAChDvoC,KAAKkpC,MAAQlpC,KAAKmpC,qBAClBnpC,KAAKkpC,MAAMd,SAASpoC,KAAK0gB,GACzB1gB,KAAKkR,MAAQ+3B,EACbjpC,KAAKmlC,gBAAkB,EACzB,CAEA,SAASK,EAAUC,GACjBzlC,KAAKmlC,gBAAgB3mC,KAAKinC,GAC1BzlC,KAAKqwB,UAAUqV,mBAAmB1lC,KACpC,CAOA,SAASwpC,EAAuBhT,EAAM3T,EAAM9jB,GAC1CiB,KAAKsgC,SAAW,QAChBtgC,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAKw2B,KAAOA,EACZx2B,KAAKqwB,UAAYmG,EACjBx2B,KAAKqgC,WAAa7J,EAAK3T,KAAKkD,GAC5B/lB,KAAK8gC,UAAqB,IAAT/hC,EAAa8jB,EAAKoB,GAAGtf,EAAIke,EAAKgC,GAAGlgB,EAClD3E,KAAK+gC,kBAAoB,GACzB/gC,KAAK2E,GAAI,EACT3E,KAAKulC,IAAK,EACV,IAAI7qB,EAAM1a,KAAK8gC,UAAU,GAAGx4B,EAAE,GAAGzO,EAAEC,OACnCkG,KAAK0gB,EAAIonB,UAAUnN,aACnB36B,KAAK0gB,EAAEmmB,YAAY7mC,KAAK8gC,UAAU,GAAGx4B,EAAE,GAAG7K,EAAGid,GAC7C1a,KAAKugC,GAAKuH,UAAUE,MAAMhoC,KAAK0gB,GAC/B1gB,KAAKmpC,qBAAuBb,oBAAoBC,qBAChDvoC,KAAKkpC,MAAQlpC,KAAKmpC,qBAClBnpC,KAAKkpC,MAAMd,SAASpoC,KAAK0gB,GACzB1gB,KAAK2hC,UAAY5B,EACjB//B,KAAKkR,MAAQ+3B,EACbjpC,KAAK2kC,SAAW,CACdhD,UAAW5B,EACXc,UAAW,GAEb7gC,KAAKmlC,gBAAkB,CAAC6D,EAA4Bpe,KAAK5qB,MAC3D,CA7BAupC,EAAcjvC,UAAUouC,iBAAmBA,EAC3Ca,EAAcjvC,UAAUurC,SAAWZ,EACnCsE,EAAcjvC,UAAUuqC,UAAYA,EACpC0E,EAAcjvC,UAAUkrC,UAAYA,EA4BpCgE,EAAuBlvC,UAAUurC,SAAWZ,EAC5CuE,EAAuBlvC,UAAUouC,iBAAmBA,EACpDc,EAAuBlvC,UAAUuqC,UAAYA,EAC7C2E,EAAuBlvC,UAAUkrC,UAAYA,EAE7C,IAAIiE,EAAmB,WACrB,IAAIC,EAASnrB,YAEb,SAASorB,EAAwBnT,EAAM3T,GACrC7iB,KAAK0gB,EAAIonB,UAAUnN,aACnB36B,KAAK0gB,EAAEmmB,aAAY,EAAM,GACzB7mC,KAAKmpC,qBAAuBb,oBAAoBC,qBAChDvoC,KAAKkpC,MAAQlpC,KAAKmpC,qBAClBnpC,KAAKmpC,qBAAqBf,SAASpoC,KAAK0gB,GACxC1gB,KAAK6gB,EAAIgC,EAAKhC,EACd7gB,KAAKw2B,KAAOA,EACZx2B,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAKklC,SAAW,EAChBllC,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKhT,EAAG,EAAG,EAAG7P,MACrDA,KAAKsI,EAAI49B,gBAAgBC,QAAQ3P,EAAM3T,EAAKva,EAAG,EAAG,EAAGtI,MAEjDA,KAAKumC,kBAAkBzsC,OACzBkG,KAAK2E,GAAI,GAET3E,KAAK2E,GAAI,EACT3E,KAAK4pC,mBAET,CAoDA,OAlDAD,EAAwBrvC,UAAY,CAClC4W,MAAO+3B,EACPpD,SAAU,WACJ7lC,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,UAI1CllC,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,QACpCllC,KAAKymC,2BAEDzmC,KAAKglC,MACPhlC,KAAK4pC,mBAET,EACAA,iBAAkB,WAChB,IAAIC,EAAK7pC,KAAK6P,EAAE6Q,EAAE,GACdopB,EAAK9pC,KAAK6P,EAAE6Q,EAAE,GACdqpB,EAAK/pC,KAAKsI,EAAEoY,EAAE,GAAK,EACnB2jB,EAAKrkC,KAAKsI,EAAEoY,EAAE,GAAK,EAEnBspB,EAAiB,IAAXhqC,KAAK6gB,EAEXopB,EAAKjqC,KAAK0gB,EACdupB,EAAGvpB,EAAE,GAAG,GAAKmpB,EACbI,EAAGvpB,EAAE,GAAG,GAAKopB,EAAKzF,EAClB4F,EAAGvpB,EAAE,GAAG,GAAKspB,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGvpB,EAAE,GAAG,GAAKopB,EACbG,EAAGvpB,EAAE,GAAG,GAAKmpB,EACbI,EAAGvpB,EAAE,GAAG,GAAKopB,EAAKzF,EAClB4F,EAAGvpB,EAAE,GAAG,GAAKspB,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGvpB,EAAE,GAAG,GAAKopB,EACbG,EAAGpwC,EAAE,GAAG,GAAKmwC,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAGpwC,EAAE,GAAG,GAAKiwC,EAAKzF,EAClB4F,EAAGpwC,EAAE,GAAG,GAAKmwC,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGpwC,EAAE,GAAG,GAAKiwC,EAAKzF,EAAKqF,EACvBO,EAAGpwC,EAAE,GAAG,GAAKmwC,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAGpwC,EAAE,GAAG,GAAKiwC,EAAKzF,EAClB4F,EAAGpwC,EAAE,GAAG,GAAKmwC,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGpwC,EAAE,GAAG,GAAKiwC,EAAKzF,EAAKqF,EACvBO,EAAGz6B,EAAE,GAAG,GAAKw6B,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAGz6B,EAAE,GAAG,GAAKs6B,EAAKzF,EAClB4F,EAAGz6B,EAAE,GAAG,GAAKw6B,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGz6B,EAAE,GAAG,GAAKs6B,EAAKzF,EAAKqF,EACvBO,EAAGz6B,EAAE,GAAG,GAAKw6B,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAGz6B,EAAE,GAAG,GAAKs6B,EAAKzF,EAClB4F,EAAGz6B,EAAE,GAAG,GAAKw6B,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGz6B,EAAE,GAAG,GAAKs6B,EAAKzF,EAAKqF,CACzB,GAEFpvB,gBAAgB,CAACgsB,0BAA2BqD,GACrCA,CACT,CA5EuB,GA8EnBO,EAAoB,WACtB,SAASC,EAAyB3T,EAAM3T,GACtC7iB,KAAK0gB,EAAIonB,UAAUnN,aACnB36B,KAAK0gB,EAAEmmB,aAAY,EAAM,GACzB7mC,KAAKw2B,KAAOA,EACZx2B,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAK6iB,KAAOA,EACZ7iB,KAAKklC,SAAW,EAChBllC,KAAK6gB,EAAIgC,EAAKhC,EACd7gB,KAAK0mC,6BAA6BlQ,GAElB,IAAZ3T,EAAKunB,IACPpqC,KAAKqqC,GAAKnE,gBAAgBC,QAAQ3P,EAAM3T,EAAKwnB,GAAI,EAAG,EAAGrqC,MACvDA,KAAKnC,GAAKqoC,gBAAgBC,QAAQ3P,EAAM3T,EAAKhlB,GAAI,EAAG,IAAMmC,MAC1DA,KAAKsqC,cAAgBtqC,KAAKuqC,mBAE1BvqC,KAAKsqC,cAAgBtqC,KAAKwqC,qBAG5BxqC,KAAKikB,GAAKiiB,gBAAgBC,QAAQ3P,EAAM3T,EAAKoB,GAAI,EAAG,EAAGjkB,MACvDA,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKhT,EAAG,EAAG,EAAG7P,MACrDA,KAAK0P,EAAIw2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnT,EAAG,EAAG2O,UAAWre,MAC7DA,KAAKyqC,GAAKvE,gBAAgBC,QAAQ3P,EAAM3T,EAAK4nB,GAAI,EAAG,EAAGzqC,MACvDA,KAAK0qC,GAAKxE,gBAAgBC,QAAQ3P,EAAM3T,EAAK6nB,GAAI,EAAG,IAAM1qC,MAC1DA,KAAKmpC,qBAAuBb,oBAAoBC,qBAChDvoC,KAAKmpC,qBAAqBf,SAASpoC,KAAK0gB,GACxC1gB,KAAKkpC,MAAQlpC,KAAKmpC,qBAEdnpC,KAAKumC,kBAAkBzsC,OACzBkG,KAAK2E,GAAI,GAET3E,KAAK2E,GAAI,EACT3E,KAAKsqC,gBAET,CAuFA,OArFAH,EAAyB7vC,UAAY,CACnC4W,MAAO+3B,EACPpD,SAAU,WACJ7lC,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,UAI1CllC,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,QACpCllC,KAAKymC,2BAEDzmC,KAAKglC,MACPhlC,KAAKsqC,gBAET,EACAC,kBAAmB,WACjB,IAaI1wC,EACA8wC,EACAC,EACAC,EAhBAC,EAAiC,EAAxBtqC,KAAKsI,MAAM9I,KAAKikB,GAAGvD,GAC5BqqB,EAAkB,EAAVvqC,KAAK8d,GAASwsB,EAKtBE,GAAW,EACXC,EAAUjrC,KAAKyqC,GAAG/pB,EAClBwqB,EAAWlrC,KAAKqqC,GAAG3pB,EACnByqB,EAAYnrC,KAAK0qC,GAAGhqB,EACpB0qB,EAAaprC,KAAKnC,GAAG6iB,EACrB2qB,EAAmB,EAAI7qC,KAAK8d,GAAK2sB,GAAoB,EAATH,GAC5CQ,EAAoB,EAAI9qC,KAAK8d,GAAK4sB,GAAqB,EAATJ,GAK9CS,GAAc/qC,KAAK8d,GAAK,EAC5BitB,GAAcvrC,KAAK0P,EAAEgR,EACrB,IAAI2c,EAAsB,IAAhBr9B,KAAK6iB,KAAKhC,GAAW,EAAI,EAGnC,IAFA7gB,KAAK0gB,EAAE8Z,QAAU,EAEZ3gC,EAAI,EAAGA,EAAIixC,EAAQjxC,GAAK,EAAG,CAE9B+wC,EAAYI,EAAWG,EAAYC,EACnCP,EAAeG,EAAWK,EAAmBC,EAC7C,IAAIzS,GAHJ8R,EAAMK,EAAWC,EAAUC,GAGb1qC,KAAK0jC,IAAIqH,GACnB/J,EAAImJ,EAAMnqC,KAAK8iC,IAAIiI,GACnBC,EAAW,IAAN3S,GAAiB,IAAN2I,EAAU,EAAIA,EAAIhhC,KAAKod,KAAKib,EAAIA,EAAI2I,EAAIA,GACxDiK,EAAW,IAAN5S,GAAiB,IAAN2I,EAAU,GAAK3I,EAAIr4B,KAAKod,KAAKib,EAAIA,EAAI2I,EAAIA,GAC7D3I,IAAM74B,KAAK6P,EAAE6Q,EAAE,GACf8gB,IAAMxhC,KAAK6P,EAAE6Q,EAAE,GACf1gB,KAAK0gB,EAAEumB,YAAYpO,EAAG2I,EAAG3I,EAAI2S,EAAKX,EAAeD,EAAYvN,EAAKmE,EAAIiK,EAAKZ,EAAeD,EAAYvN,EAAKxE,EAAI2S,EAAKX,EAAeD,EAAYvN,EAAKmE,EAAIiK,EAAKZ,EAAeD,EAAYvN,EAAKxjC,GAAG,GAMhMmxC,GAAYA,EACZO,GAAcR,EAAQ1N,CACxB,CACF,EACAmN,qBAAsB,WACpB,IAKI3wC,EALAixC,EAAStqC,KAAKsI,MAAM9I,KAAKikB,GAAGvD,GAC5BqqB,EAAkB,EAAVvqC,KAAK8d,GAASwsB,EACtBH,EAAM3qC,KAAKyqC,GAAG/pB,EACdkqB,EAAY5qC,KAAK0qC,GAAGhqB,EACpBmqB,EAAe,EAAIrqC,KAAK8d,GAAKqsB,GAAgB,EAATG,GAEpCS,EAAwB,IAAV/qC,KAAK8d,GACnB+e,EAAsB,IAAhBr9B,KAAK6iB,KAAKhC,GAAW,EAAI,EAInC,IAHA0qB,GAAcvrC,KAAK0P,EAAEgR,EACrB1gB,KAAK0gB,EAAE8Z,QAAU,EAEZ3gC,EAAI,EAAGA,EAAIixC,EAAQjxC,GAAK,EAAG,CAC9B,IAAIg/B,EAAI8R,EAAMnqC,KAAK0jC,IAAIqH,GACnB/J,EAAImJ,EAAMnqC,KAAK8iC,IAAIiI,GACnBC,EAAW,IAAN3S,GAAiB,IAAN2I,EAAU,EAAIA,EAAIhhC,KAAKod,KAAKib,EAAIA,EAAI2I,EAAIA,GACxDiK,EAAW,IAAN5S,GAAiB,IAAN2I,EAAU,GAAK3I,EAAIr4B,KAAKod,KAAKib,EAAIA,EAAI2I,EAAIA,GAC7D3I,IAAM74B,KAAK6P,EAAE6Q,EAAE,GACf8gB,IAAMxhC,KAAK6P,EAAE6Q,EAAE,GACf1gB,KAAK0gB,EAAEumB,YAAYpO,EAAG2I,EAAG3I,EAAI2S,EAAKX,EAAeD,EAAYvN,EAAKmE,EAAIiK,EAAKZ,EAAeD,EAAYvN,EAAKxE,EAAI2S,EAAKX,EAAeD,EAAYvN,EAAKmE,EAAIiK,EAAKZ,EAAeD,EAAYvN,EAAKxjC,GAAG,GAChM0xC,GAAcR,EAAQ1N,CACxB,CAEAr9B,KAAKkpC,MAAMpvC,OAAS,EACpBkG,KAAKkpC,MAAM,GAAKlpC,KAAK0gB,CACvB,GAEFpG,gBAAgB,CAACgsB,0BAA2B6D,GACrCA,CACT,CA1HwB,GA4HpBuB,EAAoB,WACtB,SAASC,EAAyBnV,EAAM3T,GACtC7iB,KAAK0gB,EAAIonB,UAAUnN,aACnB36B,KAAK0gB,EAAEjjB,GAAI,EACXuC,KAAKmpC,qBAAuBb,oBAAoBC,qBAChDvoC,KAAKmpC,qBAAqBf,SAASpoC,KAAK0gB,GACxC1gB,KAAKkpC,MAAQlpC,KAAKmpC,qBAClBnpC,KAAKw2B,KAAOA,EACZx2B,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAKklC,SAAW,EAChBllC,KAAK6gB,EAAIgC,EAAKhC,EACd7gB,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKhT,EAAG,EAAG,EAAG7P,MACrDA,KAAKsI,EAAI49B,gBAAgBC,QAAQ3P,EAAM3T,EAAKva,EAAG,EAAG,EAAGtI,MACrDA,KAAK0P,EAAIw2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnT,EAAG,EAAG,EAAG1P,MAEjDA,KAAKumC,kBAAkBzsC,OACzBkG,KAAK2E,GAAI,GAET3E,KAAK2E,GAAI,EACT3E,KAAK4rC,oBAET,CA4DA,OA1DAD,EAAyBrxC,UAAY,CACnCsxC,kBAAmB,WACjB,IAAI/B,EAAK7pC,KAAK6P,EAAE6Q,EAAE,GACdopB,EAAK9pC,KAAK6P,EAAE6Q,EAAE,GACdmrB,EAAK7rC,KAAKsI,EAAEoY,EAAE,GAAK,EACnBorB,EAAK9rC,KAAKsI,EAAEoY,EAAE,GAAK,EACnBhC,EAAQX,MAAM8tB,EAAIC,EAAI9rC,KAAK0P,EAAEgR,GAC7BgpB,EAAShrB,GAAS,EAAIH,aAC1Bve,KAAK0gB,EAAE8Z,QAAU,EAEF,IAAXx6B,KAAK6gB,GAAsB,IAAX7gB,KAAK6gB,GACvB7gB,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrG1pC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAO,GAAG,GAEvF,IAAVA,GACF1e,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrG9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAI,GAAG,GACrG9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrG1pC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAO,GAAG,GACrG1e,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrG9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAI,GAAG,KAErG9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAClF9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAI,MAGpF9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAO,GAAG,GAEvF,IAAVA,GACF1e,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrG9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAI,GAAG,GACrG9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrG1pC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAO,GAAG,GACrG1e,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrG9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAKntB,EAAOorB,EAAKgC,EAAI,GAAG,GACrG9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKptB,EAAOmrB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,KAErG1pC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,GACrF9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,GACrF9rC,KAAK0gB,EAAEumB,YAAY4C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,IAG3F,EACAjG,SAAU,WACJ7lC,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,UAI1CllC,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,QACpCllC,KAAKymC,2BAEDzmC,KAAKglC,MACPhlC,KAAK4rC,oBAET,EACA16B,MAAO+3B,GAET3uB,gBAAgB,CAACgsB,0BAA2BqF,GACrCA,CACT,CAnFwB,GAwHpB7gB,EAAK,CACTA,aApCA,SAAsB0L,EAAM3T,EAAM9jB,GAChC,IAAI8b,EAuBJ,OArBa,IAAT9b,GAAuB,IAATA,EAKd8b,GAJsB,IAAT9b,EAAa8jB,EAAKoB,GAAKpB,EAAKgC,IACvBlgB,EAEX7K,OACA,IAAI0vC,EAAuBhT,EAAM3T,EAAM9jB,GAEvC,IAAIwqC,EAAc/S,EAAM3T,EAAM9jB,GAErB,IAATA,EACT8b,EAAO,IAAI6wB,EAAkBlV,EAAM3T,GACjB,IAAT9jB,EACT8b,EAAO,IAAI4uB,EAAiBjT,EAAM3T,GAChB,IAAT9jB,IACT8b,EAAO,IAAIqvB,EAAkB1T,EAAM3T,IAGjChI,EAAKlW,GACP6xB,EAAKkP,mBAAmB7qB,GAGnBA,CACT,EAYAiQ,uBAVA,WACE,OAAOye,CACT,EASAze,gCAPA,WACE,OAAO0e,CACT,GAMA,OAAO1e,CACT,CAzjB2B,GAwlBvBihB,OAAS,WACX,IAAIC,EAAOxrC,KAAK0jC,IACZ+H,EAAOzrC,KAAK8iC,IACZ4I,EAAO1rC,KAAK2rC,IACZC,EAAO5rC,KAAKke,MAEhB,SAASxN,IAiBP,OAhBAlR,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,GAAK,EAChBoG,KAAKpG,MAAM,IAAM,EACjBoG,KAAKpG,MAAM,IAAM,EACjBoG,KAAKpG,MAAM,IAAM,EACjBoG,KAAKpG,MAAM,IAAM,EACjBoG,KAAKpG,MAAM,IAAM,EACjBoG,KAAKpG,MAAM,IAAM,EACVoG,IACT,CAEA,SAASqsC,EAAOtB,GACd,GAAc,IAAVA,EACF,OAAO/qC,KAGT,IAAIssC,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO/qC,KAAK0J,GAAG4iC,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASE,EAAQzB,GACf,GAAc,IAAVA,EACF,OAAO/qC,KAGT,IAAIssC,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO/qC,KAAK0J,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG4iC,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASG,EAAQ1B,GACf,GAAc,IAAVA,EACF,OAAO/qC,KAGT,IAAIssC,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO/qC,KAAK0J,GAAG4iC,EAAM,EAAGC,EAAM,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAM,EAAGD,EAAM,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASI,EAAQ3B,GACf,GAAc,IAAVA,EACF,OAAO/qC,KAGT,IAAIssC,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO/qC,KAAK0J,GAAG4iC,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASK,EAAMC,EAAIxC,GACjB,OAAOpqC,KAAK0J,GAAG,EAAG0gC,EAAIwC,EAAI,EAAG,EAAG,EAClC,CAEA,SAASC,EAAKhK,EAAIC,GAChB,OAAO9iC,KAAK2sC,MAAMT,EAAKrJ,GAAKqJ,EAAKpJ,GACnC,CAEA,SAASgK,EAAajK,EAAIkI,GACxB,IAAIuB,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO/qC,KAAK0J,GAAG4iC,EAAMC,EAAM,EAAG,GAAIA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG5iC,GAAG,EAAG,EAAG,EAAG,EAAGwiC,EAAKrJ,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGn5B,GAAG4iC,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrM,CAEA,SAASS,EAAMH,EAAIxC,EAAI4C,GAKrB,OAJKA,GAAa,IAAPA,IACTA,EAAK,GAGI,IAAPJ,GAAmB,IAAPxC,GAAmB,IAAP4C,EACnBhtC,KAGFA,KAAK0J,GAAGkjC,EAAI,EAAG,EAAG,EAAG,EAAGxC,EAAI,EAAG,EAAG,EAAG,EAAG4C,EAAI,EAAG,EAAG,EAAG,EAAG,EACjE,CAEA,SAASC,EAAa1vC,EAAGC,EAAGC,EAAGojB,EAAGvgB,EAAGjC,EAAGsiB,EAAGhR,EAAG9V,EAAGmL,EAAGL,EAAG6D,EAAG0kC,EAAG//B,EAAGqC,EAAGK,GAiBjE,OAhBA7P,KAAKpG,MAAM,GAAK2D,EAChByC,KAAKpG,MAAM,GAAK4D,EAChBwC,KAAKpG,MAAM,GAAK6D,EAChBuC,KAAKpG,MAAM,GAAKinB,EAChB7gB,KAAKpG,MAAM,GAAK0G,EAChBN,KAAKpG,MAAM,GAAKyE,EAChB2B,KAAKpG,MAAM,GAAK+mB,EAChB3gB,KAAKpG,MAAM,GAAK+V,EAChB3P,KAAKpG,MAAM,GAAKC,EAChBmG,KAAKpG,MAAM,GAAKoL,EAChBhF,KAAKpG,MAAM,IAAM+K,EACjB3E,KAAKpG,MAAM,IAAM4O,EACjBxI,KAAKpG,MAAM,IAAMszC,EACjBltC,KAAKpG,MAAM,IAAMuT,EACjBnN,KAAKpG,MAAM,IAAM4V,EACjBxP,KAAKpG,MAAM,IAAMiW,EACV7P,IACT,CAEA,SAASmtC,EAAUC,EAAIjpB,EAAIkpB,GAGzB,OAFAA,EAAKA,GAAM,EAEA,IAAPD,GAAmB,IAAPjpB,GAAmB,IAAPkpB,EACnBrtC,KAAK0J,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG0jC,EAAIjpB,EAAIkpB,EAAI,GAG1DrtC,IACT,CAEA,SAASstC,EAAUC,EAAIC,EAAIrJ,EAAIsJ,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC7E,IAAI3V,EAAK14B,KAAKpG,MAEd,GAAW,IAAP2zC,GAAmB,IAAPC,GAAmB,IAAPrJ,GAAmB,IAAPsJ,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,EAStI,OANAvV,EAAG,IAAMA,EAAG,IAAM6U,EAAK7U,EAAG,IAAMwV,EAChCxV,EAAG,IAAMA,EAAG,IAAMiV,EAAKjV,EAAG,IAAMyV,EAChCzV,EAAG,IAAMA,EAAG,IAAMsV,EAAKtV,EAAG,IAAM0V,EAChC1V,EAAG,KAAO2V,EAEVruC,KAAKsuC,qBAAsB,EACpBtuC,KAGT,IAAIuuC,EAAK7V,EAAG,GACR8V,EAAK9V,EAAG,GACRuL,EAAKvL,EAAG,GACR+V,EAAK/V,EAAG,GACRgW,EAAKhW,EAAG,GACRiW,EAAKjW,EAAG,GACRkW,EAAKlW,EAAG,GACRmW,EAAKnW,EAAG,GACRoW,EAAKpW,EAAG,GACRqW,EAAKrW,EAAG,GACRsW,EAAKtW,EAAG,IACRuW,EAAKvW,EAAG,IACRwW,EAAKxW,EAAG,IACRyW,EAAKzW,EAAG,IACR0W,EAAK1W,EAAG,IACRoR,EAAKpR,EAAG,IAwBZ,OAjBAA,EAAG,GAAK6V,EAAKhB,EAAKiB,EAAKd,EAAKzJ,EAAK6J,EAAKW,EAAKP,EAC3CxV,EAAG,GAAK6V,EAAKf,EAAKgB,EAAKb,EAAK1J,EAAK8J,EAAKU,EAAKN,EAC3CzV,EAAG,GAAK6V,EAAKpK,EAAKqK,EAAKZ,EAAK3J,EAAK+J,EAAKS,EAAKL,EAC3C1V,EAAG,GAAK6V,EAAKd,EAAKe,EAAKX,EAAK5J,EAAKgK,EAAKQ,EAAKJ,EAC3C3V,EAAG,GAAKgW,EAAKnB,EAAKoB,EAAKjB,EAAKkB,EAAKd,EAAKe,EAAKX,EAC3CxV,EAAG,GAAKgW,EAAKlB,EAAKmB,EAAKhB,EAAKiB,EAAKb,EAAKc,EAAKV,EAC3CzV,EAAG,GAAKgW,EAAKvK,EAAKwK,EAAKf,EAAKgB,EAAKZ,EAAKa,EAAKT,EAC3C1V,EAAG,GAAKgW,EAAKjB,EAAKkB,EAAKd,EAAKe,EAAKX,EAAKY,EAAKR,EAC3C3V,EAAG,GAAKoW,EAAKvB,EAAKwB,EAAKrB,EAAKsB,EAAKlB,EAAKmB,EAAKf,EAC3CxV,EAAG,GAAKoW,EAAKtB,EAAKuB,EAAKpB,EAAKqB,EAAKjB,EAAKkB,EAAKd,EAC3CzV,EAAG,IAAMoW,EAAK3K,EAAK4K,EAAKnB,EAAKoB,EAAKhB,EAAKiB,EAAKb,EAC5C1V,EAAG,IAAMoW,EAAKrB,EAAKsB,EAAKlB,EAAKmB,EAAKf,EAAKgB,EAAKZ,EAC5C3V,EAAG,IAAMwW,EAAK3B,EAAK4B,EAAKzB,EAAK0B,EAAKtB,EAAKhE,EAAKoE,EAC5CxV,EAAG,IAAMwW,EAAK1B,EAAK2B,EAAKxB,EAAKyB,EAAKrB,EAAKjE,EAAKqE,EAC5CzV,EAAG,IAAMwW,EAAK/K,EAAKgL,EAAKvB,EAAKwB,EAAKpB,EAAKlE,EAAKsE,EAC5C1V,EAAG,IAAMwW,EAAKzB,EAAK0B,EAAKtB,EAAKuB,EAAKnB,EAAKnE,EAAKuE,EAC5CruC,KAAKsuC,qBAAsB,EACpBtuC,IACT,CAEA,SAASqvC,EAASC,GAChB,IAAIC,EAAcD,EAAO11C,MACzB,OAAOoG,KAAKstC,UAAUiC,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,IAAKA,EAAY,IAAKA,EAAY,IAAKA,EAAY,IAAKA,EAAY,IAAKA,EAAY,IACzR,CAEA,SAASC,IAMP,OALKxvC,KAAKsuC,sBACRtuC,KAAKyvC,YAAgC,IAAlBzvC,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA8B,IAAlBoG,KAAKpG,MAAM,IAA+B,IAAnBoG,KAAKpG,MAAM,KAAgC,IAAnBoG,KAAKpG,MAAM,KAAgC,IAAnBoG,KAAKpG,MAAM,KAAgC,IAAnBoG,KAAKpG,MAAM,KAAgC,IAAnBoG,KAAKpG,MAAM,KAAgC,IAAnBoG,KAAKpG,MAAM,KAC5XoG,KAAKsuC,qBAAsB,GAGtBtuC,KAAKyvC,SACd,CAEA,SAASz8B,EAAO08B,GAGd,IAFA,IAAI71C,EAAI,EAEDA,EAAI,IAAI,CACb,GAAI61C,EAAK91C,MAAMC,KAAOmG,KAAKpG,MAAMC,GAC/B,OAAO,EAGTA,GAAK,CACP,CAEA,OAAO,CACT,CAEA,SAASmuC,EAAM0H,GACb,IAAI71C,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB61C,EAAK91C,MAAMC,GAAKmG,KAAKpG,MAAMC,GAG7B,OAAO61C,CACT,CAEA,SAASC,EAAe/1C,GACtB,IAAIC,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBmG,KAAKpG,MAAMC,GAAKD,EAAMC,EAE1B,CAEA,SAAS+1C,EAAa/W,EAAG2I,EAAGqO,GAC1B,MAAO,CACLhX,EAAGA,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,IAC1E4nC,EAAG3I,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,IAC1Ei2C,EAAGhX,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,IAAMoG,KAAKpG,MAAM,IAM/E,CAEA,SAASk2C,EAASjX,EAAG2I,EAAGqO,GACtB,OAAOhX,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,GAChF,CAEA,SAASm2C,EAASlX,EAAG2I,EAAGqO,GACtB,OAAOhX,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,GAChF,CAEA,SAASo2C,EAASnX,EAAG2I,EAAGqO,GACtB,OAAOhX,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,IAAMoG,KAAKpG,MAAM,GACjF,CAEA,SAASq2C,IACP,IAAIC,EAAclwC,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,GACzE2D,EAAIyC,KAAKpG,MAAM,GAAKs2C,EACpB1yC,GAAKwC,KAAKpG,MAAM,GAAKs2C,EACrBzyC,GAAKuC,KAAKpG,MAAM,GAAKs2C,EACrBrvB,EAAI7gB,KAAKpG,MAAM,GAAKs2C,EACpB5vC,GAAKN,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,IAAMoG,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,KAAOs2C,EACxE7xC,IAAM2B,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,IAAMoG,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,KAAOs2C,EACzEC,EAAgB,IAAIpE,OAOxB,OANAoE,EAAcv2C,MAAM,GAAK2D,EACzB4yC,EAAcv2C,MAAM,GAAK4D,EACzB2yC,EAAcv2C,MAAM,GAAK6D,EACzB0yC,EAAcv2C,MAAM,GAAKinB,EACzBsvB,EAAcv2C,MAAM,IAAM0G,EAC1B6vC,EAAcv2C,MAAM,IAAMyE,EACnB8xC,CACT,CAEA,SAASC,EAAansB,GAEpB,OADoBjkB,KAAKiwC,mBACJI,kBAAkBpsB,EAAG,GAAIA,EAAG,GAAIA,EAAG,IAAM,EAChE,CAEA,SAASqsB,EAAcC,GACrB,IAAI12C,EACA6gB,EAAM61B,EAAIz2C,OACV02C,EAAS,GAEb,IAAK32C,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB22C,EAAO32C,GAAKu2C,EAAaG,EAAI12C,IAG/B,OAAO22C,CACT,CAEA,SAASC,EAAoB3U,EAAKC,EAAKC,GACrC,IAAInf,EAAMF,iBAAiB,UAAW,GAEtC,GAAI3c,KAAKwvC,aACP3yB,EAAI,GAAKif,EAAI,GACbjf,EAAI,GAAKif,EAAI,GACbjf,EAAI,GAAKkf,EAAI,GACblf,EAAI,GAAKkf,EAAI,GACblf,EAAI,GAAKmf,EAAI,GACbnf,EAAI,GAAKmf,EAAI,OACR,CACL,IAAI6N,EAAK7pC,KAAKpG,MAAM,GAChBkwC,EAAK9pC,KAAKpG,MAAM,GAChB82C,EAAK1wC,KAAKpG,MAAM,GAChB+2C,EAAK3wC,KAAKpG,MAAM,GAChBg3C,EAAM5wC,KAAKpG,MAAM,IACjBi3C,EAAM7wC,KAAKpG,MAAM,IACrBijB,EAAI,GAAKif,EAAI,GAAK+N,EAAK/N,EAAI,GAAK4U,EAAKE,EACrC/zB,EAAI,GAAKif,EAAI,GAAKgO,EAAKhO,EAAI,GAAK6U,EAAKE,EACrCh0B,EAAI,GAAKkf,EAAI,GAAK8N,EAAK9N,EAAI,GAAK2U,EAAKE,EACrC/zB,EAAI,GAAKkf,EAAI,GAAK+N,EAAK/N,EAAI,GAAK4U,EAAKE,EACrCh0B,EAAI,GAAKmf,EAAI,GAAK6N,EAAK7N,EAAI,GAAK0U,EAAKE,EACrC/zB,EAAI,GAAKmf,EAAI,GAAK8N,EAAK9N,EAAI,GAAK2U,EAAKE,CACvC,CAEA,OAAOh0B,CACT,CAEA,SAASwzB,EAAkBxX,EAAG2I,EAAGqO,GAS/B,OANI7vC,KAAKwvC,aACD,CAAC3W,EAAG2I,EAAGqO,GAEP,CAAChX,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,IAAKi/B,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,GAAKoG,KAAKpG,MAAM,IAAKi/B,EAAI74B,KAAKpG,MAAM,GAAK4nC,EAAIxhC,KAAKpG,MAAM,GAAKi2C,EAAI7vC,KAAKpG,MAAM,IAAMoG,KAAKpG,MAAM,IAI3O,CAEA,SAASk3C,EAAwBjY,EAAG2I,GAClC,GAAIxhC,KAAKwvC,aACP,OAAO3W,EAAI,IAAM2I,EAGnB,IAAI9I,EAAK14B,KAAKpG,MACd,OAAO4G,KAAKke,MAAyC,KAAlCma,EAAIH,EAAG,GAAK8I,EAAI9I,EAAG,GAAKA,EAAG,MAAc,IAAM,IAAMl4B,KAAKke,MAAyC,KAAlCma,EAAIH,EAAG,GAAK8I,EAAI9I,EAAG,GAAKA,EAAG,MAAc,GAC/H,CAEA,SAASqY,IAWP,IALA,IAAIl3C,EAAI,EACJD,EAAQoG,KAAKpG,MACbo3C,EAAW,YAGRn3C,EAAI,IACTm3C,GAAY5E,EAHN,IAGWxyC,EAAMC,IAHjB,IAINm3C,GAAkB,KAANn3C,EAAW,IAAM,IAC7BA,GAAK,EAGP,OAAOm3C,CACT,CAEA,SAASC,EAAoBjoC,GAG3B,OAAIA,EAAM,MAAYA,EAAM,GAAKA,GAAO,MAAYA,EAAM,EACjDojC,EAHD,IAGMpjC,GAHN,IAMDA,CACT,CAEA,SAASkoC,IAMP,IAAIt3C,EAAQoG,KAAKpG,MAcjB,MAAO,UAZEq3C,EAAoBr3C,EAAM,IAYX,IAVfq3C,EAAoBr3C,EAAM,IAUA,IAR1Bq3C,EAAoBr3C,EAAM,IAQW,IANrCq3C,EAAoBr3C,EAAM,IAMsB,IAJhDq3C,EAAoBr3C,EAAM,KAIiC,IAF3Dq3C,EAAoBr3C,EAAM,KAE4C,GACjF,CAEA,OAAO,WACLoG,KAAKkR,MAAQA,EACblR,KAAKqsC,OAASA,EACdrsC,KAAKwsC,QAAUA,EACfxsC,KAAKysC,QAAUA,EACfzsC,KAAK0sC,QAAUA,EACf1sC,KAAK6sC,KAAOA,EACZ7sC,KAAK8sC,aAAeA,EACpB9sC,KAAK2sC,MAAQA,EACb3sC,KAAK+sC,MAAQA,EACb/sC,KAAKitC,aAAeA,EACpBjtC,KAAKmtC,UAAYA,EACjBntC,KAAKstC,UAAYA,EACjBttC,KAAKqvC,SAAWA,EAChBrvC,KAAK4vC,aAAeA,EACpB5vC,KAAK8vC,SAAWA,EAChB9vC,KAAK+vC,SAAWA,EAChB/vC,KAAKgwC,SAAWA,EAChBhwC,KAAKqwC,kBAAoBA,EACzBrwC,KAAKywC,oBAAsBA,EAC3BzwC,KAAK8wC,wBAA0BA,EAC/B9wC,KAAK+wC,MAAQA,EACb/wC,KAAKkxC,QAAUA,EACflxC,KAAKgoC,MAAQA,EACbhoC,KAAK2vC,eAAiBA,EACtB3vC,KAAKgT,OAASA,EACdhT,KAAKswC,cAAgBA,EACrBtwC,KAAKowC,aAAeA,EACpBpwC,KAAKiwC,iBAAmBA,EACxBjwC,KAAK0J,GAAK1J,KAAKstC,UACfttC,KAAKwvC,WAAaA,EAClBxvC,KAAKyvC,WAAY,EACjBzvC,KAAKsuC,qBAAsB,EAC3BtuC,KAAKpG,MAAQ+iB,iBAAiB,UAAW,IACzC3c,KAAKkR,OACP,CACF,CAhba,GAkbb,SAASigC,UAAU73C,GAAuV,OAA1O63C,UAArD,oBAAX3sC,QAAoD,kBAApBA,OAAOoH,SAAqC,SAAiBtS,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkL,QAAyBlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAAK,EAAY63C,UAAU73C,EAAM,CACjY,IAAI83C,OAAS,CAAC,EACVra,WAAa,mBACbvR,cAAgB,sBAChB2J,SAAW,GAEf,SAASkiB,YAAYC,GACnBn3B,gBAAgBm3B,EAClB,CAEA,SAASxa,oBACY,IAAfC,WACFlB,iBAAiBiB,iBAAiBtR,cAAeuR,WAAY5H,UAE7D0G,iBAAiBiB,kBAErB,CAEA,SAASya,qBAAqBt3B,GAC5BsH,mBAAmBtH,EACrB,CAEA,SAASu3B,UAAUvjC,GACjB8T,YAAY9T,EACd,CAEA,SAASya,cAAcyH,GAKrB,OAJmB,IAAf4G,aACF5G,EAAO3K,cAAgB7a,KAAKia,MAAMY,gBAG7BqQ,iBAAiBnN,cAAcyH,EACxC,CAEA,SAASshB,WAAWp2C,GAClB,GAAqB,kBAAVA,EACT,OAAQA,GACN,IAAK,OACHwmB,wBAAwB,KACxB,MAEF,QACA,IAAK,SACHA,wBAAwB,IACxB,MAEF,IAAK,MACHA,wBAAwB,SAGlB9Y,MAAM1N,IAAUA,EAAQ,GAClCwmB,wBAAwBxmB,GAGtBymB,2BAA6B,GAC/BtD,aAAY,GAEZA,aAAY,EAEhB,CAEA,SAASkzB,YACP,MAA4B,qBAAd/3B,SAChB,CAEA,SAASg4B,cAAc5yC,EAAMwS,GACd,gBAATxS,GACF0iB,qBAAqBlQ,EAEzB,CAEA,SAASqgC,WAAW5yC,GAClB,OAAQA,GACN,IAAK,kBACH,OAAOknC,gBAET,IAAK,uBACH,OAAOuC,qBAET,IAAK,SACH,OAAOsD,OAET,QACE,OAAO,KAEb,CA+BA,SAAS8F,aACqB,aAAxBj0C,SAASmqB,aACX4C,cAAcmnB,yBACdhb,mBAEJ,CAEA,SAASib,iBAAiBC,GAGxB,IAFA,IAAIC,EAAOC,YAAYn0C,MAAM,KAEpBlE,EAAI,EAAGA,EAAIo4C,EAAKn4C,OAAQD,GAAK,EAAG,CACvC,IAAIs4C,EAAOF,EAAKp4C,GAAGkE,MAAM,KAEzB,GAAIq0C,mBAAmBD,EAAK,KAAOH,EAEjC,OAAOI,mBAAmBD,EAAK,GAEnC,CAEA,OAAO,IACT,CAjDAf,OAAOp1B,KAAO6Z,iBAAiB7Z,KAC/Bo1B,OAAO51B,MAAQqa,iBAAiBra,MAChC41B,OAAOj3B,gBAAkBk3B,YACzBD,OAAO5d,YAAcqC,iBAAiBrC,YACtC4d,OAAO3c,SAAWoB,iBAAiBpB,SACnC2c,OAAO1c,aAAemB,iBAAiBnB,aACvC0c,OAAO3d,KAAOoC,iBAAiBpC,KAC/B2d,OAAOta,iBAAmBA,iBAC1Bsa,OAAO7a,kBAAoBV,iBAAiBU,kBAC5C6a,OAAO1oB,cAAgBA,cACvB0oB,OAAOG,qBAAuBA,qBAC9BH,OAAOpe,OAAS6C,iBAAiB7C,OAEjCoe,OAAOtd,YAAc+B,iBAAiB/B,YACtCsd,OAAOn+B,QAAU4iB,iBAAiB5iB,QAClCm+B,OAAOK,WAAaA,WACpBL,OAAOM,UAAYA,UACnBN,OAAOO,cAAgBA,cACvBP,OAAO5Z,OAAS3B,iBAAiB2B,OACjC4Z,OAAO3Z,SAAW5B,iBAAiB4B,SACnC2Z,OAAOh1B,UAAYyZ,iBAAiBzZ,UACpCg1B,OAAO70B,KAAOsZ,iBAAiBtZ,KAC/B60B,OAAO50B,OAASqZ,iBAAiBrZ,OACjC40B,OAAO1Z,wBAA0B7B,iBAAiB6B,wBAClD0Z,OAAOiB,aAAer4B,aACtBo3B,OAAOkB,YAAcd,UACrBJ,OAAOmB,aAAeX,WACtBR,OAAOn0C,QAAU,SAwBjB,IAAIi1C,YAAc,GAElB,GAAInb,WAAY,CACd,IAAIyb,QAAU50C,SAASy5B,qBAAqB,UACxCx6B,MAAQ21C,QAAQ14C,OAAS,EACzB24C,SAAWD,QAAQ31C,QAAU,CAC/B8I,IAAK,IAEPusC,YAAcO,SAAS9sC,IAAM8sC,SAAS9sC,IAAIoK,QAAQ,aAAc,IAAM,GAEtEof,SAAW4iB,iBAAiB,WAC9B,CAEA,IAAID,wBAA0BtnB,YAAYqnB,WAAY,KAEtD,IACgF,WAAxBV,UAAUn4C,UAA8F05C,oBAAAA,IAIhK,CAAE,MAAO7qB,KAAM,CAGf,IAAI8qB,eAAiB,WACnB,IAAI7nB,EAAK,CAAC,EACN8nB,EAAY,CAAC,EAcjB,OAbA9nB,EAAG+nB,iBAGH,SAA0B/kB,EAAIpU,GACvBk5B,EAAU9kB,KACb8kB,EAAU9kB,GAAMpU,EAEpB,EANAoR,EAAGgoB,YAQH,SAAqBhlB,EAAI0I,EAAM3T,GAC7B,OAAO,IAAI+vB,EAAU9kB,GAAI0I,EAAM3T,EACjC,EAEOiI,CACT,CAjBqB,GAmBrB,SAASioB,gBAAiB,CAmD1B,SAASC,eAAgB,CAgZzB,SAASC,yBAA0B,CAjcnCF,cAAcz4C,UAAU44C,uBAAyB,WAAa,EAE9DH,cAAcz4C,UAAU64C,mBAAqB,WAAa,EAE1DJ,cAAcz4C,UAAU8tC,SAAW,SAAUvlB,GAC3C,IAAK7iB,KAAKymB,OAAQ,CAEhB5D,EAAKuf,GAAG/R,UAAUqV,mBAAmB7iB,EAAKuf,IAC1C,IAAI5E,EAAY,CACdyK,MAAOplB,EAAKuf,GACZvf,KAAMA,EACNsmB,qBAAsBb,oBAAoBC,sBAE5CvoC,KAAKukB,OAAO/lB,KAAKg/B,GACjBx9B,KAAKmzC,mBAAmB3V,GAEpBx9B,KAAKwmC,aACP3jB,EAAKuwB,eAET,CACF,EAEAL,cAAcz4C,UAAUs6B,KAAO,SAAU4B,EAAM3T,GAC7C7iB,KAAKukB,OAAS,GACdvkB,KAAKw2B,KAAOA,EACZx2B,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAKkzC,uBAAuB1c,EAAM3T,GAClC7iB,KAAKklC,QAAUnrB,oBACf/Z,KAAKymB,QAAS,EACdzmB,KAAK2E,GAAI,EAEL3E,KAAKumC,kBAAkBzsC,OACzBkG,KAAK2E,GAAI,EAET3E,KAAK6lC,UAAS,EAElB,EAEAkN,cAAcz4C,UAAU+4C,YAAc,WAChCrzC,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,UAI1CllC,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,QACpCllC,KAAKymC,2BACP,EAEAnsB,gBAAgB,CAACgsB,0BAA2ByM,eAI5Cz4B,gBAAgB,CAACy4B,eAAgBC,cAEjCA,aAAa14C,UAAU44C,uBAAyB,SAAU1c,EAAM3T,GAC9D7iB,KAAKsI,EAAI49B,gBAAgBC,QAAQ3P,EAAM3T,EAAKva,EAAG,EAAG,IAAMtI,MACxDA,KAAKM,EAAI4lC,gBAAgBC,QAAQ3P,EAAM3T,EAAKviB,EAAG,EAAG,IAAMN,MACxDA,KAAKwP,EAAI02B,gBAAgBC,QAAQ3P,EAAM3T,EAAKrT,EAAG,EAAG,EAAGxP,MACrDA,KAAKszC,OAAS,EACdtzC,KAAKuzC,OAAS,EACdvzC,KAAK6lC,SAAW7lC,KAAKqzC,YACrBrzC,KAAKktC,EAAIrqB,EAAKqqB,EACdltC,KAAKwmC,cAAgBxmC,KAAKsI,EAAE68B,gBAAgBrrC,UAAYkG,KAAKM,EAAE6kC,gBAAgBrrC,UAAYkG,KAAKwP,EAAE21B,gBAAgBrrC,MACpH,EAEAk5C,aAAa14C,UAAU64C,mBAAqB,SAAU3V,GACpDA,EAAUgW,UAAY,EACxB,EAEAR,aAAa14C,UAAUm5C,oBAAsB,SAAUnrC,EAAGhI,EAAGozC,EAAa5Y,EAAa6Y,GACrF,IAAInkB,EAAW,GAEXlvB,GAAK,EACPkvB,EAAShxB,KAAK,CACZ8J,EAAGA,EACHhI,EAAGA,IAEIgI,GAAK,EACdknB,EAAShxB,KAAK,CACZ8J,EAAGA,EAAI,EACPhI,EAAGA,EAAI,KAGTkvB,EAAShxB,KAAK,CACZ8J,EAAGA,EACHhI,EAAG,IAELkvB,EAAShxB,KAAK,CACZ8J,EAAG,EACHhI,EAAGA,EAAI,KAIX,IACIzG,EAEA+5C,EAHAC,EAAgB,GAEhBn5B,EAAM8U,EAAS11B,OAGnB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAIzB,IAAIi6C,EACAC,GAJNH,EAAYpkB,EAAS31B,IAELyG,EAAIqzC,EAAsB7Y,GAAe8Y,EAAUtrC,EAAIqrC,EAAsB7Y,EAAc4Y,IAKvGI,EADEF,EAAUtrC,EAAIqrC,GAAuB7Y,EAC9B,GAEC8Y,EAAUtrC,EAAIqrC,EAAsB7Y,GAAe4Y,EAI7DK,EADEH,EAAUtzC,EAAIqzC,GAAuB7Y,EAAc4Y,EAC5C,GAECE,EAAUtzC,EAAIqzC,EAAsB7Y,GAAe4Y,EAG/DG,EAAcr1C,KAAK,CAACs1C,EAAQC,IAEhC,CAMA,OAJKF,EAAc/5C,QACjB+5C,EAAcr1C,KAAK,CAAC,EAAG,IAGlBq1C,CACT,EAEAb,aAAa14C,UAAU05C,iBAAmB,SAAUR,GAClD,IAAI35C,EACA6gB,EAAM84B,EAAU15C,OAEpB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBohC,mBAAmBL,QAAQ4Y,EAAU35C,IAIvC,OADA25C,EAAU15C,OAAS,EACZ05C,CACT,EAEAR,aAAa14C,UAAU25C,cAAgB,SAAU5O,GAC/C,IAAI/8B,EACAhI,EAwCA4zC,EACAr6C,EAvCJ,GAAImG,KAAKglC,MAAQK,EAAe,CAC9B,IAAI71B,EAAIxP,KAAKwP,EAAEkR,EAAI,IAAM,IAsBzB,GApBIlR,EAAI,IACNA,GAAK,IAILlH,EADEtI,KAAKsI,EAAEoY,EAAI,EACT,EAAIlR,EACCxP,KAAKsI,EAAEoY,EAAI,EAChB,EAAIlR,EAEJxP,KAAKsI,EAAEoY,EAAIlR,IAIflP,EADEN,KAAKM,EAAEogB,EAAI,EACT,EAAIlR,EACCxP,KAAKM,EAAEogB,EAAI,EAChB,EAAIlR,EAEJxP,KAAKM,EAAEogB,EAAIlR,GAGN,CACT,IAAI2kC,EAAK7rC,EACTA,EAAIhI,EACJA,EAAI6zC,CACN,CAEA7rC,EAA4B,KAAxB9H,KAAKke,MAAU,IAAJpW,GACfhI,EAA4B,KAAxBE,KAAKke,MAAU,IAAJpe,GACfN,KAAKszC,OAAShrC,EACdtI,KAAKuzC,OAASjzC,CAChB,MACEgI,EAAItI,KAAKszC,OACThzC,EAAIN,KAAKuzC,OAKX,IACIvuC,EACA2e,EACA6vB,EACAptB,EACAguB,EALA15B,EAAM1a,KAAKukB,OAAOzqB,OAMlB65C,EAAsB,EAE1B,GAAIrzC,IAAMgI,EACR,IAAKzO,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKukB,OAAO1qB,GAAGsvC,qBAAqBd,gBACpCroC,KAAKukB,OAAO1qB,GAAGouC,MAAMjD,MAAO,EAC5BhlC,KAAKukB,OAAO1qB,GAAGouC,MAAMiB,MAAQlpC,KAAKukB,OAAO1qB,GAAGsvC,qBAExCnpC,KAAKglC,OACPhlC,KAAKukB,OAAO1qB,GAAG25C,UAAU15C,OAAS,QAGjC,GAAY,IAANwG,GAAiB,IAANgI,GAAiB,IAANhI,GAAiB,IAANgI,GAyGvC,GAAItI,KAAKglC,KACd,IAAKnrC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAGxBmG,KAAKukB,OAAO1qB,GAAG25C,UAAU15C,OAAS,EAClCkG,KAAKukB,OAAO1qB,GAAGouC,MAAMjD,MAAO,MA9GwB,CACtD,IACIxH,EACA2L,EAFA3Z,EAAW,GAIf,IAAK31B,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAGxB,IAFA2jC,EAAYx9B,KAAKukB,OAAO1qB,IAETouC,MAAMjD,MAAShlC,KAAKglC,MAASK,GAA4B,IAAXrlC,KAAKktC,EAE3D,CAKL,GAHAvpB,GADAuwB,EAAa1W,EAAUyK,MAAMiB,OACX1O,QAClB4Z,EAAmB,GAEd5W,EAAUyK,MAAMjD,MAAQxH,EAAUgW,UAAU15C,OAC/Cs6C,EAAmB5W,EAAU4W,qBACxB,CAGL,IAFAZ,EAAYxzC,KAAKg0C,iBAAiBxW,EAAUgW,WAEvCxuC,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzBohB,EAAW0Z,IAAIvC,kBAAkB2W,EAAW3vB,OAAOvf,IACnDwuC,EAAUh1C,KAAK4nB,GACfguB,GAAoBhuB,EAAS8U,YAG/BsC,EAAU4W,iBAAmBA,EAC7B5W,EAAUgW,UAAYA,CACxB,CAEAG,GAAuBS,EACvB5W,EAAUyK,MAAMjD,MAAO,CACzB,MAvBExH,EAAUyK,MAAMiB,MAAQ1L,EAAU2L,qBA0BtC,IAGIkL,EAHAP,EAASxrC,EACTyrC,EAASzzC,EACTw6B,EAAc,EAGlB,IAAKjhC,EAAI6gB,EAAM,EAAG7gB,GAAK,EAAGA,GAAK,EAG7B,IAFA2jC,EAAYx9B,KAAKukB,OAAO1qB,IAEVouC,MAAMjD,KAAM,CAaxB,KAZAmE,EAAuB3L,EAAU2L,sBACZd,gBAEN,IAAXroC,KAAKktC,GAAWxyB,EAAM,GACxB25B,EAAQr0C,KAAKyzC,oBAAoBnrC,EAAGhI,EAAGk9B,EAAU4W,iBAAkBtZ,EAAa6Y,GAChF7Y,GAAe0C,EAAU4W,kBAEzBC,EAAQ,CAAC,CAACP,EAAQC,IAGpBpwB,EAAO0wB,EAAMv6C,OAERkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAAG,CAC5B8uC,EAASO,EAAMrvC,GAAG,GAClB+uC,EAASM,EAAMrvC,GAAG,GAClBwqB,EAAS11B,OAAS,EAEdi6C,GAAU,EACZvkB,EAAShxB,KAAK,CACZ8J,EAAGk1B,EAAU4W,iBAAmBN,EAChCxzC,EAAGk9B,EAAU4W,iBAAmBL,IAEzBD,GAAU,EACnBtkB,EAAShxB,KAAK,CACZ8J,EAAGk1B,EAAU4W,kBAAoBN,EAAS,GAC1CxzC,EAAGk9B,EAAU4W,kBAAoBL,EAAS,MAG5CvkB,EAAShxB,KAAK,CACZ8J,EAAGk1B,EAAU4W,iBAAmBN,EAChCxzC,EAAGk9B,EAAU4W,mBAEf5kB,EAAShxB,KAAK,CACZ8J,EAAG,EACHhI,EAAGk9B,EAAU4W,kBAAoBL,EAAS,MAI9C,IAAIO,EAAgBt0C,KAAKu0C,UAAU/W,EAAWhO,EAAS,IAEvD,GAAIA,EAAS,GAAGlnB,IAAMknB,EAAS,GAAGlvB,EAAG,CACnC,GAAIkvB,EAAS11B,OAAS,EAGpB,GAF4B0jC,EAAUyK,MAAMiB,MAAM3kB,OAAOiZ,EAAUyK,MAAMiB,MAAM1O,QAAU,GAE/D/8B,EAAG,CAC3B,IAAI+2C,EAAYF,EAAcG,MAC9Bz0C,KAAK00C,SAASJ,EAAenL,GAC7BmL,EAAgBt0C,KAAKu0C,UAAU/W,EAAWhO,EAAS,GAAIglB,EACzD,MACEx0C,KAAK00C,SAASJ,EAAenL,GAC7BmL,EAAgBt0C,KAAKu0C,UAAU/W,EAAWhO,EAAS,IAIvDxvB,KAAK00C,SAASJ,EAAenL,EAC/B,CACF,CAEA3L,EAAUyK,MAAMiB,MAAQC,CAC1B,CAEJ,CAQF,EAEA6J,aAAa14C,UAAUo6C,SAAW,SAAUC,EAAUxL,GACpD,IAAItvC,EACA6gB,EAAMi6B,EAAS76C,OAEnB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBsvC,EAAqBf,SAASuM,EAAS96C,GAE3C,EAEAm5C,aAAa14C,UAAUs6C,WAAa,SAAU9Y,EAAKC,EAAKC,EAAKC,EAAK8L,EAAW1/B,EAAKwsC,GAChF9M,EAAUf,QAAQjL,EAAI,GAAIA,EAAI,GAAI,IAAK1zB,GACvC0/B,EAAUf,QAAQhL,EAAI,GAAIA,EAAI,GAAI,IAAK3zB,EAAM,GAEzCwsC,GACF9M,EAAUf,QAAQlL,EAAI,GAAIA,EAAI,GAAI,IAAKzzB,GAGzC0/B,EAAUf,QAAQ/K,EAAI,GAAIA,EAAI,GAAI,IAAK5zB,EAAM,EAC/C,EAEA2qC,aAAa14C,UAAUw6C,oBAAsB,SAAUrc,EAAQsP,EAAW1/B,EAAKwsC,GAC7E9M,EAAUf,QAAQvO,EAAO,GAAIA,EAAO,GAAI,IAAKpwB,GAC7C0/B,EAAUf,QAAQvO,EAAO,GAAIA,EAAO,GAAI,IAAKpwB,EAAM,GAE/CwsC,GACF9M,EAAUf,QAAQvO,EAAO,GAAIA,EAAO,GAAI,IAAKpwB,GAG/C0/B,EAAUf,QAAQvO,EAAO,GAAIA,EAAO,GAAI,IAAKpwB,EAAM,EACrD,EAEA2qC,aAAa14C,UAAUi6C,UAAY,SAAU/W,EAAWuX,EAAchN,GACpE,IAEIluC,EAEAmL,EACA2e,EAEAqxB,EACAC,EACAja,EACAhJ,EAEAkL,EAZAsW,EAAYhW,EAAUgW,UACtBU,EAAa1W,EAAUyK,MAAMiB,MAAM3kB,OAEnC7J,EAAM8iB,EAAUyK,MAAMiB,MAAM1O,QAG5BM,EAAc,EAKdvW,EAAS,GAETswB,GAAW,EAaf,IAXK9M,GAKHkN,EAAelN,EAAUvN,QACzB0C,EAAU6K,EAAUvN,UALpBuN,EAAYD,UAAUnN,aACtBsa,EAAe,EACf/X,EAAU,GAMZ3Y,EAAO/lB,KAAKupC,GAEPluC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAK3B,IAJAmhC,EAAUwY,EAAU35C,GAAGmhC,QACvB+M,EAAUtqC,EAAIy2C,EAAWr6C,GAAG4D,EAC5BkmB,EAAOuwB,EAAWr6C,GAAG4D,EAAIu9B,EAAQlhC,OAASkhC,EAAQlhC,OAAS,EAEtDkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAGzB,GAAI81B,GAFJka,EAAoBha,EAAQh2B,EAAI,IAEI81B,YAAcia,EAAazsC,EAC7DwyB,GAAeka,EAAkBla,YACjCiN,EAAUtqC,GAAI,MACT,IAAIq9B,EAAcia,EAAaz0C,EAAG,CACvCynC,EAAUtqC,GAAI,EACd,KACF,CACMs3C,EAAazsC,GAAKwyB,GAAeia,EAAaz0C,GAAKw6B,EAAcka,EAAkBla,aACrF96B,KAAK40C,WAAWV,EAAWr6C,GAAG6mB,EAAE1b,EAAI,GAAIkvC,EAAWr6C,GAAG2V,EAAExK,EAAI,GAAIkvC,EAAWr6C,GAAGA,EAAEmL,GAAIkvC,EAAWr6C,GAAG6mB,EAAE1b,GAAI+iC,EAAWkN,EAAcJ,GACjIA,GAAW,IAEX7iB,EAAU8N,IAAIjC,cAAcqW,EAAWr6C,GAAG6mB,EAAE1b,EAAI,GAAIkvC,EAAWr6C,GAAG6mB,EAAE1b,GAAIkvC,EAAWr6C,GAAG2V,EAAExK,EAAI,GAAIkvC,EAAWr6C,GAAGA,EAAEmL,IAAK+vC,EAAazsC,EAAIwyB,GAAeka,EAAkBla,aAAcia,EAAaz0C,EAAIw6B,GAAeka,EAAkBla,YAAaE,EAAQh2B,EAAI,IAChQhF,KAAK80C,oBAAoB9iB,EAAS+V,EAAWkN,EAAcJ,GAE3DA,GAAW,EACX9M,EAAUtqC,GAAI,GAGhBq9B,GAAeka,EAAkBla,YACjCma,GAAgB,CAClB,CAGF,GAAIf,EAAWr6C,GAAG4D,GAAKu9B,EAAQlhC,OAAQ,CAGrC,GAFAk7C,EAAoBha,EAAQh2B,EAAI,GAE5B81B,GAAeia,EAAaz0C,EAAG,CACjC,IAAIm8B,EAAgBzB,EAAQh2B,EAAI,GAAG81B,YAE/Bia,EAAazsC,GAAKwyB,GAAeia,EAAaz0C,GAAKw6B,EAAc2B,GACnEz8B,KAAK40C,WAAWV,EAAWr6C,GAAG6mB,EAAE1b,EAAI,GAAIkvC,EAAWr6C,GAAG2V,EAAExK,EAAI,GAAIkvC,EAAWr6C,GAAGA,EAAE,GAAIq6C,EAAWr6C,GAAG6mB,EAAE,GAAIqnB,EAAWkN,EAAcJ,GACjIA,GAAW,IAEX7iB,EAAU8N,IAAIjC,cAAcqW,EAAWr6C,GAAG6mB,EAAE1b,EAAI,GAAIkvC,EAAWr6C,GAAG6mB,EAAE,GAAIwzB,EAAWr6C,GAAG2V,EAAExK,EAAI,GAAIkvC,EAAWr6C,GAAGA,EAAE,IAAKk7C,EAAazsC,EAAIwyB,GAAe2B,GAAgBsY,EAAaz0C,EAAIw6B,GAAe2B,EAAezB,EAAQh2B,EAAI,IAChOhF,KAAK80C,oBAAoB9iB,EAAS+V,EAAWkN,EAAcJ,GAE3DA,GAAW,EACX9M,EAAUtqC,GAAI,EAElB,MACEsqC,EAAUtqC,GAAI,EAGhBq9B,GAAeka,EAAkBla,YACjCma,GAAgB,CAClB,CAOA,GALIlN,EAAUvN,UACZuN,EAAUf,QAAQe,EAAUrnB,EAAEwc,GAAS,GAAI6K,EAAUrnB,EAAEwc,GAAS,GAAI,IAAKA,GACzE6K,EAAUf,QAAQe,EAAUrnB,EAAEqnB,EAAUvN,QAAU,GAAG,GAAIuN,EAAUrnB,EAAEqnB,EAAUvN,QAAU,GAAG,GAAI,IAAKuN,EAAUvN,QAAU,IAGvHM,EAAcia,EAAaz0C,EAC7B,MAGEzG,EAAI6gB,EAAM,IACZqtB,EAAYD,UAAUnN,aACtBka,GAAW,EACXtwB,EAAO/lB,KAAKupC,GACZkN,EAAe,EAEnB,CAEA,OAAO1wB,CACT,EAIAjK,gBAAgB,CAACy4B,eAAgBE,wBAEjCA,uBAAuB34C,UAAU44C,uBAAyB,SAAU1c,EAAM3T,GACxE7iB,KAAK6lC,SAAW7lC,KAAKqzC,YACrBrzC,KAAKk1C,OAAShP,gBAAgBC,QAAQ3P,EAAM3T,EAAKtlB,EAAG,EAAG,KAAMyC,MAC7DA,KAAKwmC,cAAgBxmC,KAAKk1C,OAAO/P,gBAAgBrrC,MACnD,EAEAm5C,uBAAuB34C,UAAU66C,YAAc,SAAUvyB,EAAMsyB,GAC7D,IAAI7V,EAAU6V,EAAS,IACnBE,EAAc,CAAC,EAAG,GAClBC,EAAazyB,EAAK4X,QAClB3gC,EAAI,EAER,IAAKA,EAAI,EAAGA,EAAIw7C,EAAYx7C,GAAK,EAC/Bu7C,EAAY,IAAMxyB,EAAKlC,EAAE7mB,GAAG,GAC5Bu7C,EAAY,IAAMxyB,EAAKlC,EAAE7mB,GAAG,GAG9Bu7C,EAAY,IAAMC,EAClBD,EAAY,IAAMC,EAClB,IAEInO,EACAC,EACAC,EACAC,EACAC,EACAC,EAPA+N,EAAaxN,UAAUnN,aAS3B,IARA2a,EAAW73C,EAAImlB,EAAKnlB,EAQf5D,EAAI,EAAGA,EAAIw7C,EAAYx7C,GAAK,EAC/BqtC,EAAKtkB,EAAKlC,EAAE7mB,GAAG,IAAMu7C,EAAY,GAAKxyB,EAAKlC,EAAE7mB,GAAG,IAAMwlC,EACtD8H,EAAKvkB,EAAKlC,EAAE7mB,GAAG,IAAMu7C,EAAY,GAAKxyB,EAAKlC,EAAE7mB,GAAG,IAAMwlC,EACtD+H,EAAKxkB,EAAKpT,EAAE3V,GAAG,IAAMu7C,EAAY,GAAKxyB,EAAKpT,EAAE3V,GAAG,KAAOwlC,EACvDgI,EAAKzkB,EAAKpT,EAAE3V,GAAG,IAAMu7C,EAAY,GAAKxyB,EAAKpT,EAAE3V,GAAG,KAAOwlC,EACvDiI,EAAK1kB,EAAK/oB,EAAEA,GAAG,IAAMu7C,EAAY,GAAKxyB,EAAK/oB,EAAEA,GAAG,KAAOwlC,EACvDkI,EAAK3kB,EAAK/oB,EAAEA,GAAG,IAAMu7C,EAAY,GAAKxyB,EAAK/oB,EAAEA,GAAG,KAAOwlC,EACvDiW,EAAWrO,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI1tC,GAGjD,OAAOy7C,CACT,EAEArC,uBAAuB34C,UAAU25C,cAAgB,SAAU5O,GACzD,IAAI6O,EACAr6C,EAEAmL,EACA2e,EAIE6Z,EACA2L,EAPFzuB,EAAM1a,KAAKukB,OAAOzqB,OAGlBo7C,EAASl1C,KAAKk1C,OAAOx0B,EAEzB,GAAe,IAAXw0B,EAIF,IAAKr7C,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAI3B,GAFAsvC,GADA3L,EAAYx9B,KAAKukB,OAAO1qB,IACSsvC,qBAE1B3L,EAAUyK,MAAMjD,MAAShlC,KAAKglC,MAASK,EAM5C,IALA8D,EAAqBd,gBACrB7K,EAAUyK,MAAMjD,MAAO,EACvBkP,EAAa1W,EAAUyK,MAAMiB,MAAM3kB,OACnCZ,EAAO6Z,EAAUyK,MAAMiB,MAAM1O,QAExBx1B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzBmkC,EAAqBf,SAASpoC,KAAKm1C,YAAYjB,EAAWlvC,GAAIkwC,IAIlE1X,EAAUyK,MAAMiB,MAAQ1L,EAAU2L,oBACpC,CAGGnpC,KAAKumC,kBAAkBzsC,SAC1BkG,KAAKglC,MAAO,EAEhB,EAEA,IAAIuQ,yBAA2B,WAC7B,IAAIC,EAAgB,CAAC,EAAG,GAkLxB,SAASC,EAAkBjf,EAAM3T,EAAMwN,GAwBrC,GAvBArwB,KAAKw2B,KAAOA,EACZx2B,KAAKklC,SAAW,EAChBllC,KAAKsgC,SAAW,YAChBtgC,KAAK6iB,KAAOA,EACZ7iB,KAAK0gB,EAAI,IAAIqrB,OAEb/rC,KAAK01C,IAAM,IAAI3J,OACf/rC,KAAK21C,uBAAyB,EAC9B31C,KAAK0mC,6BAA6BrW,GAAamG,GAE3C3T,EAAKhT,GAAKgT,EAAKhT,EAAEvH,GACnBtI,KAAKkJ,GAAKg9B,gBAAgBC,QAAQ3P,EAAM3T,EAAKhT,EAAEgpB,EAAG,EAAG,EAAG74B,MACxDA,KAAK41C,GAAK1P,gBAAgBC,QAAQ3P,EAAM3T,EAAKhT,EAAE2xB,EAAG,EAAG,EAAGxhC,MAEpD6iB,EAAKhT,EAAEggC,IACT7vC,KAAK61C,GAAK3P,gBAAgBC,QAAQ3P,EAAM3T,EAAKhT,EAAEggC,EAAG,EAAG,EAAG7vC,QAG1DA,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKhT,GAAK,CAC/ClL,EAAG,CAAC,EAAG,EAAG,IACT,EAAG,EAAG3E,MAGP6iB,EAAKizB,GAAI,CAKX,GAJA91C,KAAK81C,GAAK5P,gBAAgBC,QAAQ3P,EAAM3T,EAAKizB,GAAI,EAAGz3B,UAAWre,MAC/DA,KAAK+1C,GAAK7P,gBAAgBC,QAAQ3P,EAAM3T,EAAKkzB,GAAI,EAAG13B,UAAWre,MAC/DA,KAAKg2C,GAAK9P,gBAAgBC,QAAQ3P,EAAM3T,EAAKmzB,GAAI,EAAG33B,UAAWre,MAE3D6iB,EAAK4nB,GAAG9lC,EAAE,GAAGy8B,GAAI,CACnB,IAAIvnC,EACA6gB,EAAMmI,EAAK4nB,GAAG9lC,EAAE7K,OAEpB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgpB,EAAK4nB,GAAG9lC,EAAE9K,GAAGsnC,GAAK,KAClBte,EAAK4nB,GAAG9lC,EAAE9K,GAAGunC,GAAK,IAEtB,CAEAphC,KAAKyqC,GAAKvE,gBAAgBC,QAAQ3P,EAAM3T,EAAK4nB,GAAI,EAAGpsB,UAAWre,MAE/DA,KAAKyqC,GAAGrI,IAAK,CACf,MACEpiC,KAAK0P,EAAIw2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnT,GAAK,CAC/C/K,EAAG,GACF,EAAG0Z,UAAWre,MAGf6iB,EAAKoD,KACPjmB,KAAKimB,GAAKigB,gBAAgBC,QAAQ3P,EAAM3T,EAAKoD,GAAI,EAAG5H,UAAWre,MAC/DA,KAAKkmB,GAAKggB,gBAAgBC,QAAQ3P,EAAM3T,EAAKqD,GAAI,EAAG7H,UAAWre,OAGjEA,KAAKzC,EAAI2oC,gBAAgBC,QAAQ3P,EAAM3T,EAAKtlB,GAAK,CAC/CoH,EAAG,CAAC,EAAG,EAAG,IACT,EAAG,EAAG3E,MACTA,KAAKsI,EAAI49B,gBAAgBC,QAAQ3P,EAAM3T,EAAKva,GAAK,CAC/C3D,EAAG,CAAC,IAAK,IAAK,MACb,EAAG,IAAM3E,MAER6iB,EAAKrT,EACPxP,KAAKwP,EAAI02B,gBAAgBC,QAAQ3P,EAAM3T,EAAKrT,EAAG,EAAG,IAAMgnB,GAExDx2B,KAAKwP,EAAI,CACPw1B,MAAM,EACNtkB,EAAG,GAIP1gB,KAAKi2C,UAAW,EAEXj2C,KAAKumC,kBAAkBzsC,QAC1BkG,KAAK6lC,UAAS,EAElB,CAgBA,OAdA4P,EAAkBn7C,UAAY,CAC5B47C,cA7PF,SAAuBC,GACrB,IAAInR,EAAOhlC,KAAKglC,KAChBhlC,KAAKymC,2BACLzmC,KAAKglC,KAAOhlC,KAAKglC,MAAQA,EAErBhlC,KAAKzC,GACP44C,EAAIhJ,WAAWntC,KAAKzC,EAAEmjB,EAAE,IAAK1gB,KAAKzC,EAAEmjB,EAAE,GAAI1gB,KAAKzC,EAAEmjB,EAAE,IAGjD1gB,KAAKsI,GACP6tC,EAAIpJ,MAAM/sC,KAAKsI,EAAEoY,EAAE,GAAI1gB,KAAKsI,EAAEoY,EAAE,GAAI1gB,KAAKsI,EAAEoY,EAAE,IAG3C1gB,KAAKimB,IACPkwB,EAAIrJ,cAAc9sC,KAAKimB,GAAGvF,EAAG1gB,KAAKkmB,GAAGxF,GAGnC1gB,KAAK0P,EACPymC,EAAI9J,QAAQrsC,KAAK0P,EAAEgR,GAEnBy1B,EAAIzJ,SAAS1sC,KAAKg2C,GAAGt1B,GAAG+rB,QAAQzsC,KAAK+1C,GAAGr1B,GAAG8rB,QAAQxsC,KAAK81C,GAAGp1B,GAAGgsB,SAAS1sC,KAAKyqC,GAAG/pB,EAAE,IAAI+rB,QAAQzsC,KAAKyqC,GAAG/pB,EAAE,IAAI8rB,QAAQxsC,KAAKyqC,GAAG/pB,EAAE,IAG3H1gB,KAAK6iB,KAAKhT,EAAEvH,EACVtI,KAAK6iB,KAAKhT,EAAEggC,EACdsG,EAAIhJ,UAAUntC,KAAKkJ,GAAGwX,EAAG1gB,KAAK41C,GAAGl1B,GAAI1gB,KAAK61C,GAAGn1B,GAE7Cy1B,EAAIhJ,UAAUntC,KAAKkJ,GAAGwX,EAAG1gB,KAAK41C,GAAGl1B,EAAG,GAGtCy1B,EAAIhJ,UAAUntC,KAAK6P,EAAE6Q,EAAE,GAAI1gB,KAAK6P,EAAE6Q,EAAE,IAAK1gB,KAAK6P,EAAE6Q,EAAE,GAEtD,EA8NEmlB,SA5NF,SAAqBuQ,GACnB,GAAIp2C,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,QAA1C,CAWA,GAPIllC,KAAKi2C,WACPj2C,KAAKq2C,qBACLr2C,KAAKi2C,UAAW,GAGlBj2C,KAAKymC,2BAEDzmC,KAAKglC,MAAQoR,EAAa,CAC5B,IAAIznB,EAqBJ,GApBA3uB,KAAK0gB,EAAEivB,eAAe3vC,KAAK01C,IAAI97C,OAE3BoG,KAAK21C,uBAAyB,GAChC31C,KAAK0gB,EAAEysB,WAAWntC,KAAKzC,EAAEmjB,EAAE,IAAK1gB,KAAKzC,EAAEmjB,EAAE,GAAI1gB,KAAKzC,EAAEmjB,EAAE,IAGpD1gB,KAAK21C,uBAAyB,GAChC31C,KAAK0gB,EAAEqsB,MAAM/sC,KAAKsI,EAAEoY,EAAE,GAAI1gB,KAAKsI,EAAEoY,EAAE,GAAI1gB,KAAKsI,EAAEoY,EAAE,IAG9C1gB,KAAKimB,IAAMjmB,KAAK21C,uBAAyB,GAC3C31C,KAAK0gB,EAAEosB,cAAc9sC,KAAKimB,GAAGvF,EAAG1gB,KAAKkmB,GAAGxF,GAGtC1gB,KAAK0P,GAAK1P,KAAK21C,uBAAyB,EAC1C31C,KAAK0gB,EAAE2rB,QAAQrsC,KAAK0P,EAAEgR,IACZ1gB,KAAK0P,GAAK1P,KAAK21C,uBAAyB,GAClD31C,KAAK0gB,EAAEgsB,SAAS1sC,KAAKg2C,GAAGt1B,GAAG+rB,QAAQzsC,KAAK+1C,GAAGr1B,GAAG8rB,QAAQxsC,KAAK81C,GAAGp1B,GAAGgsB,SAAS1sC,KAAKyqC,GAAG/pB,EAAE,IAAI+rB,QAAQzsC,KAAKyqC,GAAG/pB,EAAE,IAAI8rB,QAAQxsC,KAAKyqC,GAAG/pB,EAAE,IAG9H1gB,KAAKs2C,aAAc,CACrB,IAAIxK,EACAyK,EAGJ,GAFA5nB,EAAY3uB,KAAKw2B,KAAK/F,WAAW9B,UAE7B3uB,KAAK6P,GAAK7P,KAAK6P,EAAEixB,WAAa9gC,KAAK6P,EAAE2mC,eACnCx2C,KAAK6P,EAAE80B,SAAShD,UAAY3hC,KAAK6P,EAAEwwB,YAAcrgC,KAAK6P,EAAEixB,UAAU,GAAG5zB,GACvE4+B,EAAK9rC,KAAK6P,EAAE2mC,gBAAgBx2C,KAAK6P,EAAEixB,UAAU,GAAG5zB,EAAI,KAAQyhB,EAAW,GACvE4nB,EAAKv2C,KAAK6P,EAAE2mC,eAAex2C,KAAK6P,EAAEixB,UAAU,GAAG5zB,EAAIyhB,EAAW,IACrD3uB,KAAK6P,EAAE80B,SAAShD,UAAY3hC,KAAK6P,EAAEwwB,YAAcrgC,KAAK6P,EAAEixB,UAAU9gC,KAAK6P,EAAEixB,UAAUhnC,OAAS,GAAGoT,GACxG4+B,EAAK9rC,KAAK6P,EAAE2mC,eAAex2C,KAAK6P,EAAEixB,UAAU9gC,KAAK6P,EAAEixB,UAAUhnC,OAAS,GAAGoT,EAAIyhB,EAAW,GACxF4nB,EAAKv2C,KAAK6P,EAAE2mC,gBAAgBx2C,KAAK6P,EAAEixB,UAAU9gC,KAAK6P,EAAEixB,UAAUhnC,OAAS,GAAGoT,EAAI,KAAQyhB,EAAW,KAEjGmd,EAAK9rC,KAAK6P,EAAE0wB,GACZgW,EAAKv2C,KAAK6P,EAAE2mC,gBAAgBx2C,KAAK6P,EAAE80B,SAAShD,UAAY3hC,KAAK6P,EAAEwwB,WAAa,KAAQ1R,EAAW3uB,KAAK6P,EAAEwwB,kBAEnG,GAAIrgC,KAAKkJ,IAAMlJ,KAAKkJ,GAAG43B,WAAa9gC,KAAK41C,GAAG9U,WAAa9gC,KAAKkJ,GAAGstC,gBAAkBx2C,KAAK41C,GAAGY,eAAgB,CAChH1K,EAAK,GACLyK,EAAK,GACL,IAAIrtC,EAAKlJ,KAAKkJ,GACV0sC,EAAK51C,KAAK41C,GAEV1sC,EAAGy7B,SAAShD,UAAYz4B,EAAGm3B,YAAcn3B,EAAG43B,UAAU,GAAG5zB,GAC3D4+B,EAAG,GAAK5iC,EAAGstC,gBAAgBttC,EAAG43B,UAAU,GAAG5zB,EAAI,KAAQyhB,EAAW,GAClEmd,EAAG,GAAK8J,EAAGY,gBAAgBZ,EAAG9U,UAAU,GAAG5zB,EAAI,KAAQyhB,EAAW,GAClE4nB,EAAG,GAAKrtC,EAAGstC,eAAettC,EAAG43B,UAAU,GAAG5zB,EAAIyhB,EAAW,GACzD4nB,EAAG,GAAKX,EAAGY,eAAeZ,EAAG9U,UAAU,GAAG5zB,EAAIyhB,EAAW,IAChDzlB,EAAGy7B,SAAShD,UAAYz4B,EAAGm3B,YAAcn3B,EAAG43B,UAAU53B,EAAG43B,UAAUhnC,OAAS,GAAGoT,GACxF4+B,EAAG,GAAK5iC,EAAGstC,eAAettC,EAAG43B,UAAU53B,EAAG43B,UAAUhnC,OAAS,GAAGoT,EAAIyhB,EAAW,GAC/Emd,EAAG,GAAK8J,EAAGY,eAAeZ,EAAG9U,UAAU8U,EAAG9U,UAAUhnC,OAAS,GAAGoT,EAAIyhB,EAAW,GAC/E4nB,EAAG,GAAKrtC,EAAGstC,gBAAgBttC,EAAG43B,UAAU53B,EAAG43B,UAAUhnC,OAAS,GAAGoT,EAAI,KAAQyhB,EAAW,GACxF4nB,EAAG,GAAKX,EAAGY,gBAAgBZ,EAAG9U,UAAU8U,EAAG9U,UAAUhnC,OAAS,GAAGoT,EAAI,KAAQyhB,EAAW,KAExFmd,EAAK,CAAC5iC,EAAGq3B,GAAIqV,EAAGrV,IAChBgW,EAAG,GAAKrtC,EAAGstC,gBAAgBttC,EAAGy7B,SAAShD,UAAYz4B,EAAGm3B,WAAa,KAAQ1R,EAAWzlB,EAAGm3B,YACzFkW,EAAG,GAAKX,EAAGY,gBAAgBZ,EAAGjR,SAAShD,UAAYiU,EAAGvV,WAAa,KAAQ1R,EAAWinB,EAAGvV,YAE7F,MAEEyL,EADAyK,EAAKf,EAIPx1C,KAAK0gB,EAAE2rB,QAAQ7rC,KAAKqjC,MAAMiI,EAAG,GAAKyK,EAAG,GAAIzK,EAAG,GAAKyK,EAAG,IACtD,CAEIv2C,KAAK6iB,KAAKhT,GAAK7P,KAAK6iB,KAAKhT,EAAEvH,EACzBtI,KAAK6iB,KAAKhT,EAAEggC,EACd7vC,KAAK0gB,EAAEysB,UAAUntC,KAAKkJ,GAAGwX,EAAG1gB,KAAK41C,GAAGl1B,GAAI1gB,KAAK61C,GAAGn1B,GAEhD1gB,KAAK0gB,EAAEysB,UAAUntC,KAAKkJ,GAAGwX,EAAG1gB,KAAK41C,GAAGl1B,EAAG,GAGzC1gB,KAAK0gB,EAAEysB,UAAUntC,KAAK6P,EAAE6Q,EAAE,GAAI1gB,KAAK6P,EAAE6Q,EAAE,IAAK1gB,KAAK6P,EAAE6Q,EAAE,GAEzD,CAEA1gB,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,OAvFpC,CAwFF,EAkIEmR,mBAhIF,WAIE,GAHAr2C,KAAK21C,uBAAyB,EAC9B31C,KAAK01C,IAAIxkC,SAEJlR,KAAKzC,EAAE4nC,gBAAgBrrC,SAC1BkG,KAAK01C,IAAIvI,WAAWntC,KAAKzC,EAAEmjB,EAAE,IAAK1gB,KAAKzC,EAAEmjB,EAAE,GAAI1gB,KAAKzC,EAAEmjB,EAAE,IACxD1gB,KAAK21C,uBAAyB,GAK3B31C,KAAKsI,EAAE68B,gBAAgBrrC,QAA5B,CAOA,GANEkG,KAAK01C,IAAI3I,MAAM/sC,KAAKsI,EAAEoY,EAAE,GAAI1gB,KAAKsI,EAAEoY,EAAE,GAAI1gB,KAAKsI,EAAEoY,EAAE,IAClD1gB,KAAK21C,uBAAyB,EAK5B31C,KAAKimB,GAAI,CACX,GAAKjmB,KAAKimB,GAAGkf,gBAAgBrrC,QAAWkG,KAAKkmB,GAAGif,gBAAgBrrC,OAI9D,OAHAkG,KAAK01C,IAAI5I,cAAc9sC,KAAKimB,GAAGvF,EAAG1gB,KAAKkmB,GAAGxF,GAC1C1gB,KAAK21C,uBAAyB,CAIlC,CAEI31C,KAAK0P,EACF1P,KAAK0P,EAAEy1B,gBAAgBrrC,SAC1BkG,KAAK01C,IAAIrJ,QAAQrsC,KAAK0P,EAAEgR,GACxB1gB,KAAK21C,uBAAyB,GAEtB31C,KAAKg2C,GAAG7Q,gBAAgBrrC,QAAWkG,KAAK+1C,GAAG5Q,gBAAgBrrC,QAAWkG,KAAK81C,GAAG3Q,gBAAgBrrC,QAAWkG,KAAKyqC,GAAGtF,gBAAgBrrC,SAC3IkG,KAAK01C,IAAIhJ,SAAS1sC,KAAKg2C,GAAGt1B,GAAG+rB,QAAQzsC,KAAK+1C,GAAGr1B,GAAG8rB,QAAQxsC,KAAK81C,GAAGp1B,GAAGgsB,SAAS1sC,KAAKyqC,GAAG/pB,EAAE,IAAI+rB,QAAQzsC,KAAKyqC,GAAG/pB,EAAE,IAAI8rB,QAAQxsC,KAAKyqC,GAAG/pB,EAAE,IAClI1gB,KAAK21C,uBAAyB,EAlBhC,CAoBF,EA6FEc,WA3FF,WACE,GA4FFn8B,gBAAgB,CAACgsB,0BAA2BmP,GAC5CA,EAAkBn7C,UAAUorC,mBA1F5B,SAA4B7qB,GAC1B7a,KAAK02C,oBAAoB77B,GAEzB7a,KAAKw2B,KAAKkP,mBAAmB7qB,GAC7B7a,KAAKi2C,UAAW,CAClB,EAsFAR,EAAkBn7C,UAAUo8C,oBAAsBpQ,yBAAyBhsC,UAAUorC,mBAM9E,CACLiR,qBALF,SAA8BngB,EAAM3T,EAAMwN,GACxC,OAAO,IAAIolB,EAAkBjf,EAAM3T,EAAMwN,EAC3C,EAKF,CAhR+B,GAkR/B,SAASumB,mBAAoB,CAkS7B,SAASC,uBAAwB,CA0HjC,SAASC,WAAWv5C,EAAGC,GACrB,OAAyB,IAAlBgD,KAAKiP,IAAIlS,EAAIC,IAAegD,KAAKoI,IAAIpI,KAAKiP,IAAIlS,GAAIiD,KAAKiP,IAAIjS,GACpE,CAEA,SAASu5C,UAAU14C,GACjB,OAAOmC,KAAKiP,IAAIpR,IAAM,IACxB,CAEA,SAAS24C,KAAKnN,EAAIC,EAAIoL,GACpB,OAAOrL,GAAM,EAAIqL,GAAUpL,EAAKoL,CAClC,CAEA,SAAS+B,UAAUpN,EAAIC,EAAIoL,GACzB,MAAO,CAAC8B,KAAKnN,EAAG,GAAIC,EAAG,GAAIoL,GAAS8B,KAAKnN,EAAG,GAAIC,EAAG,GAAIoL,GACzD,CAEA,SAASgC,UAAU35C,EAAGC,EAAGC,GAEvB,GAAU,IAANF,EAAS,MAAO,GACpB,IAAI+K,EAAI9K,EAAIA,EAAI,EAAID,EAAIE,EAExB,GAAI6K,EAAI,EAAG,MAAO,GAClB,IAAI6uC,GAAc35C,GAAK,EAAID,GAE3B,GAAU,IAAN+K,EAAS,MAAO,CAAC6uC,GACrB,IAAIC,EAAQ52C,KAAKod,KAAKtV,IAAM,EAAI/K,GAEhC,MAAO,CAAC45C,EAAaC,EAAOD,EAAaC,EAC3C,CAEA,SAASC,uBAAuBxN,EAAIC,EAAIuE,EAAIiJ,GAC1C,MAAO,CAAO,EAAIxN,EAATD,EAAc,EAAIwE,EAAKiJ,EAAI,EAAIzN,EAAK,EAAIC,EAAK,EAAIuE,GAAK,EAAIxE,EAAK,EAAIC,EAAID,EAClF,CAEA,SAAS0N,YAAY1nC,GACnB,OAAO,IAAI2nC,iBAAiB3nC,EAAGA,EAAGA,EAAGA,GAAG,EAC1C,CAEA,SAAS2nC,iBAAiB3N,EAAIC,EAAIuE,EAAIiJ,EAAIG,GACpCA,GAAaC,WAAW7N,EAAIC,KAC9BA,EAAKmN,UAAUpN,EAAIyN,EAAI,EAAI,IAGzBG,GAAaC,WAAWrJ,EAAIiJ,KAC9BjJ,EAAK4I,UAAUpN,EAAIyN,EAAI,EAAI,IAG7B,IAAIK,EAASN,uBAAuBxN,EAAG,GAAIC,EAAG,GAAIuE,EAAG,GAAIiJ,EAAG,IACxDM,EAASP,uBAAuBxN,EAAG,GAAIC,EAAG,GAAIuE,EAAG,GAAIiJ,EAAG,IAC5Dt3C,KAAKzC,EAAI,CAACo6C,EAAO,GAAIC,EAAO,IAC5B53C,KAAKxC,EAAI,CAACm6C,EAAO,GAAIC,EAAO,IAC5B53C,KAAKvC,EAAI,CAACk6C,EAAO,GAAIC,EAAO,IAC5B53C,KAAK6gB,EAAI,CAAC82B,EAAO,GAAIC,EAAO,IAC5B53C,KAAKy4B,OAAS,CAACoR,EAAIC,EAAIuE,EAAIiJ,EAC7B,CAkDA,SAASO,QAAQ/X,EAAKrb,GACpB,IAAI7b,EAAMk3B,EAAIrH,OAAO,GAAGhU,GACpB9b,EAAMm3B,EAAIrH,OAAOqH,EAAIrH,OAAO3+B,OAAS,GAAG2qB,GAE5C,GAAI7b,EAAMD,EAAK,CACb,IAAIrI,EAAIqI,EACRA,EAAMC,EACNA,EAAMtI,CACR,CAKA,IAFA,IAAIjC,EAAI64C,UAAU,EAAIpX,EAAIviC,EAAEknB,GAAO,EAAIqb,EAAItiC,EAAEinB,GAAOqb,EAAIriC,EAAEgnB,IAEjD5qB,EAAI,EAAGA,EAAIwE,EAAEvE,OAAQD,GAAK,EACjC,GAAIwE,EAAExE,GAAK,GAAKwE,EAAExE,GAAK,EAAG,CACxB,IAAImP,EAAM82B,EAAI91B,MAAM3L,EAAExE,IAAI4qB,GACtBzb,EAAMJ,EAAKA,EAAMI,EAAaA,EAAML,IAAKA,EAAMK,EACrD,CAGF,MAAO,CACLJ,IAAKA,EACLD,IAAKA,EAET,CAuBA,SAASmvC,cAAchY,EAAK7B,EAAI8Z,GAC9B,IAAIC,EAAMlY,EAAImY,cACd,MAAO,CACLC,GAAIF,EAAIE,GACRC,GAAIH,EAAIG,GACR9uB,MAAO2uB,EAAI3uB,MACXtY,OAAQinC,EAAIjnC,OACZ+uB,IAAKA,EACL5yB,GAAI+wB,EAAK8Z,GAAM,EACf9Z,GAAIA,EACJ8Z,GAAIA,EAER,CAEA,SAASK,UAAUv1B,GACjB,IAAI9kB,EAAQ8kB,EAAKid,IAAI/hC,MAAM,IAC3B,MAAO,CAAC+5C,cAAc/5C,EAAM,GAAI8kB,EAAKob,GAAIpb,EAAK3V,GAAI4qC,cAAc/5C,EAAM,GAAI8kB,EAAK3V,EAAG2V,EAAKk1B,IACzF,CAEA,SAASM,aAAa7J,EAAIhB,GACxB,OAAiC,EAA1BhtC,KAAKiP,IAAI++B,EAAG0J,GAAK1K,EAAG0K,IAAU1J,EAAGnlB,MAAQmkB,EAAGnkB,OAAmC,EAA1B7oB,KAAKiP,IAAI++B,EAAG2J,GAAK3K,EAAG2K,IAAU3J,EAAGz9B,OAASy8B,EAAGz8B,MAC3G,CAEA,SAASunC,eAAe7J,EAAIhB,EAAI8K,EAAOC,EAAWC,EAAeC,GAC/D,GAAKL,aAAa5J,EAAIhB,GAEtB,GAAI8K,GAASG,GAAgBjK,EAAGplB,OAASmvB,GAAa/J,EAAG19B,QAAUynC,GAAa/K,EAAGpkB,OAASmvB,GAAa/K,EAAG18B,QAAUynC,EACpHC,EAAcj6C,KAAK,CAACiwC,EAAGvhC,EAAGugC,EAAGvgC,QAD/B,CAKA,IAAIyrC,EAAMP,UAAU3J,GAChBmK,EAAMR,UAAU3K,GACpB6K,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,EAPpE,CAQF,CAoBA,SAASG,aAAat7C,EAAGC,GACvB,MAAO,CAACD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GACvF,CAEA,SAASs7C,iBAAiBC,EAAQC,EAAMC,EAAQC,GAC9C,IAAIpN,EAAK,CAACiN,EAAO,GAAIA,EAAO,GAAI,GAC5BxC,EAAK,CAACyC,EAAK,GAAIA,EAAK,GAAI,GACxBG,EAAK,CAACF,EAAO,GAAIA,EAAO,GAAI,GAC5BG,EAAK,CAACF,EAAK,GAAIA,EAAK,GAAI,GACxBxpC,EAAImpC,aAAaA,aAAa/M,EAAIyK,GAAKsC,aAAaM,EAAIC,IAC5D,OAAIrC,UAAUrnC,EAAE,IAAY,KACrB,CAACA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAChC,CAEA,SAAS2pC,YAAYxpC,EAAGk7B,EAAOjxC,GAC7B,MAAO,CAAC+V,EAAE,GAAKrP,KAAK0jC,IAAI6G,GAASjxC,EAAQ+V,EAAE,GAAKrP,KAAK8iC,IAAIyH,GAASjxC,EACpE,CAEA,SAASw/C,cAAcxP,EAAIuE,GACzB,OAAO7tC,KAAK+4C,MAAMzP,EAAG,GAAKuE,EAAG,GAAIvE,EAAG,GAAKuE,EAAG,GAC9C,CAEA,SAASqJ,WAAW5N,EAAIuE,GACtB,OAAOyI,WAAWhN,EAAG,GAAIuE,EAAG,KAAOyI,WAAWhN,EAAG,GAAIuE,EAAG,GAC1D,CAEA,SAASmL,iBAAkB,CAY3B,SAASC,SAASC,EAAc1vC,EAAO+gC,EAAOrrB,EAAWi6B,EAAWC,EAAcC,GAChF,IAAIC,EAAO/O,EAAQvqC,KAAK8d,GAAK,EACzBy7B,EAAOhP,EAAQvqC,KAAK8d,GAAK,EACzBpV,EAAKc,EAAM,GAAKxJ,KAAK0jC,IAAI6G,GAASrrB,EAAYi6B,EAC9C/D,EAAK5rC,EAAM,GAAKxJ,KAAK8iC,IAAIyH,GAASrrB,EAAYi6B,EAClDD,EAAazS,YAAY/9B,EAAI0sC,EAAI1sC,EAAK1I,KAAK0jC,IAAI4V,GAAQF,EAAchE,EAAKp1C,KAAK8iC,IAAIwW,GAAQF,EAAc1wC,EAAK1I,KAAK0jC,IAAI6V,GAAQF,EAAajE,EAAKp1C,KAAK8iC,IAAIyW,GAAQF,EAAaH,EAAa5/C,SAC9L,CAEA,SAASkgD,uBAAuBle,EAAKC,GACnC,IAAIke,EAAS,CAACle,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IACxCoe,EAAiB,IAAV15C,KAAK8d,GAEhB,MADoB,CAAC9d,KAAK0jC,IAAIgW,GAAOD,EAAO,GAAKz5C,KAAK8iC,IAAI4W,GAAOD,EAAO,GAAIz5C,KAAK8iC,IAAI4W,GAAOD,EAAO,GAAKz5C,KAAK0jC,IAAIgW,GAAOD,EAAO,GAEjI,CAEA,SAASE,mBAAmBv3B,EAAMw3B,GAChC,IAAIC,EAAoB,IAARD,EAAYx3B,EAAK9oB,SAAW,EAAIsgD,EAAM,EAClDE,GAAaF,EAAM,GAAKx3B,EAAK9oB,SAG7BygD,EAAUP,uBAFEp3B,EAAKlC,EAAE25B,GACPz3B,EAAKlC,EAAE45B,IAEvB,OAAO95C,KAAKqjC,MAAM,EAAG,GAAKrjC,KAAKqjC,MAAM0W,EAAQ,GAAIA,EAAQ,GAC3D,CAEA,SAASC,aAAad,EAAc92B,EAAMw3B,EAAKT,EAAWc,EAAWC,EAAWh7B,GAC9E,IAAIqrB,EAAQoP,mBAAmBv3B,EAAMw3B,GACjCpwC,EAAQ4Y,EAAKlC,EAAE05B,EAAMx3B,EAAK4X,SAC1BmgB,EAAY/3B,EAAKlC,EAAU,IAAR05B,EAAYx3B,EAAK4X,QAAU,EAAI4f,EAAM,GACxDQ,EAAYh4B,EAAKlC,GAAG05B,EAAM,GAAKx3B,EAAK4X,SACpCqgB,EAAyB,IAAdH,EAAkBl6C,KAAKod,KAAKpd,KAAKyP,IAAIjG,EAAM,GAAK2wC,EAAU,GAAI,GAAKn6C,KAAKyP,IAAIjG,EAAM,GAAK2wC,EAAU,GAAI,IAAM,EACtHG,EAAyB,IAAdJ,EAAkBl6C,KAAKod,KAAKpd,KAAKyP,IAAIjG,EAAM,GAAK4wC,EAAU,GAAI,GAAKp6C,KAAKyP,IAAIjG,EAAM,GAAK4wC,EAAU,GAAI,IAAM,EAC1HnB,SAASC,EAAc92B,EAAKlC,EAAE05B,EAAMx3B,EAAK4X,SAAUuQ,EAAOrrB,EAAWi6B,EAAWmB,GAA8B,GAAjBL,EAAY,IAASI,GAA8B,GAAjBJ,EAAY,IAASC,EACtJ,CAEA,SAASK,cAAcrB,EAAc1nB,EAAS2nB,EAAWc,EAAWC,EAAWh7B,GAC7E,IAAK,IAAI7lB,EAAI,EAAGA,EAAI4gD,EAAW5gD,GAAK,EAAG,CACrC,IAAIqT,GAAKrT,EAAI,IAAM4gD,EAAY,GAC3BO,EAAqB,IAAdN,EAAkBl6C,KAAKod,KAAKpd,KAAKyP,IAAI+hB,EAAQyG,OAAO,GAAG,GAAKzG,EAAQyG,OAAO,GAAG,GAAI,GAAKj4B,KAAKyP,IAAI+hB,EAAQyG,OAAO,GAAG,GAAKzG,EAAQyG,OAAO,GAAG,GAAI,IAAM,EAC1JsS,EAAQ/Y,EAAQipB,YAAY/tC,GAEhCusC,SAASC,EADG1nB,EAAQhoB,MAAMkD,GACI69B,EAAOrrB,EAAWi6B,EAAWqB,GAA0B,GAAjBP,EAAY,IAASO,GAA0B,GAAjBP,EAAY,IAASC,GACvHh7B,GAAaA,CACf,CAEA,OAAOA,CACT,CAqEA,SAASw7B,aAAapR,EAAIuE,EAAI6G,GAC5B,IAAInK,EAAQvqC,KAAKqjC,MAAMwK,EAAG,GAAKvE,EAAG,GAAIuE,EAAG,GAAKvE,EAAG,IACjD,MAAO,CAACuP,YAAYvP,EAAIiB,EAAOmK,GAASmE,YAAYhL,EAAItD,EAAOmK,GACjE,CAEA,SAASiG,cAAcnpB,EAASkjB,GAC9B,IAAIrL,EACAuR,EACAC,EACAC,EACAC,EACAjE,EACAh3C,EAEJupC,GADAvpC,EAAI46C,aAAalpB,EAAQyG,OAAO,GAAIzG,EAAQyG,OAAO,GAAIyc,IAChD,GACPkG,EAAM96C,EAAE,GAER+6C,GADA/6C,EAAI46C,aAAalpB,EAAQyG,OAAO,GAAIzG,EAAQyG,OAAO,GAAIyc,IAC/C,GACRoG,EAAMh7C,EAAE,GAERi7C,GADAj7C,EAAI46C,aAAalpB,EAAQyG,OAAO,GAAIzG,EAAQyG,OAAO,GAAIyc,IAC/C,GACRoC,EAAKh3C,EAAE,GACP,IAAIwpC,EAAKgP,iBAAiBjP,EAAIuR,EAAKC,EAAKC,GAC7B,OAAPxR,IAAaA,EAAKsR,GACtB,IAAI/M,EAAKyK,iBAAiByC,EAAKjE,EAAI+D,EAAKC,GAExC,OADW,OAAPjN,IAAaA,EAAKkN,GACf,IAAI/D,iBAAiB3N,EAAIC,EAAIuE,EAAIiJ,EAC1C,CAEA,SAASkE,UAAU9B,EAAc+B,EAAMC,EAAMC,EAAUC,GACrD,IAAI/R,EAAK4R,EAAKhjB,OAAO,GACjBqR,EAAK4R,EAAKjjB,OAAO,GAErB,GAAiB,IAAbkjB,EAAgB,OAAO9R,EAE3B,GAAI6N,WAAW7N,EAAIC,GAAK,OAAOD,EAE/B,GAAiB,IAAb8R,EAAgB,CAClB,IAAIE,GAAYJ,EAAKK,aAAa,GAC9BC,GAAWL,EAAKI,aAAa,GAAKt7C,KAAK8d,GACvC09B,EAASlD,iBAAiBjP,EAAIwP,YAAYxP,EAAIgS,EAAWr7C,KAAK8d,GAAK,EAAG,KAAMwrB,EAAIuP,YAAYvP,EAAI+R,EAAWr7C,KAAK8d,GAAK,EAAG,MACxH29B,EAASD,EAAS1C,cAAc0C,EAAQnS,GAAMyP,cAAczP,EAAIC,GAAM,EACtEqC,EAAMkN,YAAYxP,EAAIgS,EAAU,EAAII,EAAS19B,aAIjD,OAHAm7B,EAAa1S,QAAQmF,EAAI,GAAIA,EAAI,GAAI,IAAKuN,EAAa5/C,SAAW,GAClEqyC,EAAMkN,YAAYvP,EAAIiS,EAAS,EAAIE,EAAS19B,aAC5Cm7B,EAAazS,YAAY6C,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIqC,EAAI,GAAIA,EAAI,GAAIuN,EAAa5/C,UAC3EgwC,CACT,CAGA,IAEIoS,EAAepD,iBAFVpB,WAAW7N,EAAI4R,EAAKhjB,OAAO,IAAMgjB,EAAKhjB,OAAO,GAAKgjB,EAAKhjB,OAAO,GAE/BoR,EAAIC,EADnC4N,WAAW5N,EAAI4R,EAAKjjB,OAAO,IAAMijB,EAAKjjB,OAAO,GAAKijB,EAAKjjB,OAAO,IAGvE,OAAIyjB,GAAgB5C,cAAc4C,EAAcrS,GAAM+R,GACpDlC,EAAazS,YAAYiV,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIxC,EAAa5/C,UACrIoiD,GAGFrS,CACT,CAEA,SAASsS,gBAAgB5+C,EAAGC,GAC1B,IAAI4+C,EAAY7+C,EAAEk7C,cAAcj7C,GAEhC,OADI4+C,EAAUtiD,QAAUg9C,WAAWsF,EAAU,GAAG,GAAI,IAAIA,EAAUnqB,QAC9DmqB,EAAUtiD,OAAesiD,EAAU,GAChC,IACT,CAEA,SAASC,yBAAyB9+C,EAAGC,GACnC,IAAI8+C,EAAO/+C,EAAER,QACTw/C,EAAO/+C,EAAET,QACTq/C,EAAYD,gBAAgB5+C,EAAEA,EAAEzD,OAAS,GAAI0D,EAAE,IAOnD,OALI4+C,IACFE,EAAK/+C,EAAEzD,OAAS,GAAKyD,EAAEA,EAAEzD,OAAS,GAAGiE,MAAMq+C,EAAU,IAAI,GACzDG,EAAK,GAAK/+C,EAAE,GAAGO,MAAMq+C,EAAU,IAAI,IAGjC7+C,EAAEzD,OAAS,GAAK0D,EAAE1D,OAAS,IAC7BsiD,EAAYD,gBAAgB5+C,EAAE,GAAIC,EAAEA,EAAE1D,OAAS,KAGtC,CAAC,CAACyD,EAAE,GAAGQ,MAAMq+C,EAAU,IAAI,IAAK,CAAC5+C,EAAEA,EAAE1D,OAAS,GAAGiE,MAAMq+C,EAAU,IAAI,KAIzE,CAACE,EAAMC,EAChB,CAEA,SAASC,mBAAmBhtB,GAG1B,IAFA,IAAIlvB,EAEKzG,EAAI,EAAGA,EAAI21B,EAAS11B,OAAQD,GAAK,EACxCyG,EAAI+7C,yBAAyB7sB,EAAS31B,EAAI,GAAI21B,EAAS31B,IACvD21B,EAAS31B,EAAI,GAAKyG,EAAE,GACpBkvB,EAAS31B,GAAKyG,EAAE,GASlB,OANIkvB,EAAS11B,OAAS,IACpBwG,EAAI+7C,yBAAyB7sB,EAASA,EAAS11B,OAAS,GAAI01B,EAAS,IACrEA,EAASA,EAAS11B,OAAS,GAAKwG,EAAE,GAClCkvB,EAAS,GAAKlvB,EAAE,IAGXkvB,CACT,CAEA,SAASitB,mBAAmBzqB,EAASkjB,GAOnC,IACIp2B,EACA49B,EACA3+C,EACA4+C,EAJAC,EAAO5qB,EAAQ6qB,mBAMnB,GAAoB,IAAhBD,EAAK9iD,OACP,MAAO,CAACqhD,cAAcnpB,EAASkjB,IAGjC,GAAoB,IAAhB0H,EAAK9iD,QAAgBg9C,WAAW8F,EAAK,GAAI,GAI3C,OAFA99B,GADA/gB,EAAQi0B,EAAQj0B,MAAM6+C,EAAK,KACd,GACbF,EAAQ3+C,EAAM,GACP,CAACo9C,cAAcr8B,EAAMo2B,GAASiG,cAAcuB,EAAOxH,IAI5Dp2B,GADA/gB,EAAQi0B,EAAQj0B,MAAM6+C,EAAK,KACd,GACb,IAAI1vC,GAAK0vC,EAAK,GAAKA,EAAK,KAAO,EAAIA,EAAK,IAIxC,OAFAD,GADA5+C,EAAQA,EAAM,GAAGA,MAAMmP,IACX,GACZwvC,EAAQ3+C,EAAM,GACP,CAACo9C,cAAcr8B,EAAMo2B,GAASiG,cAAcwB,EAAKzH,GAASiG,cAAcuB,EAAOxH,GACxF,CAEA,SAAS4H,qBAAsB,CAwG/B,SAASC,kBAAkBC,GAOzB,IANA,IAAIC,EAASD,EAASE,OAASF,EAASE,OAAOn/C,MAAM,KAAO,GACxDo/C,EAAU,SACVD,EAAS,SACTxiC,EAAMuiC,EAAOnjD,OAGRD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAG5B,OAFYojD,EAAOpjD,GAAGujD,eAGpB,IAAK,SACHF,EAAS,SACT,MAEF,IAAK,OACHC,EAAU,MACV,MAEF,IAAK,QACHA,EAAU,MACV,MAEF,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,UACL,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,QACL,IAAK,OACHA,EAAU,MAQhB,MAAO,CACL13C,MAAOy3C,EACPG,OAAQL,EAASG,SAAWA,EAEhC,CAriCA7iC,gBAAgB,CAACy4B,eAAgB6D,kBAEjCA,iBAAiBt8C,UAAU44C,uBAAyB,SAAU1c,EAAM3T,GAClE7iB,KAAK6lC,SAAW7lC,KAAKqzC,YACrBrzC,KAAKvC,EAAIyoC,gBAAgBC,QAAQ3P,EAAM3T,EAAKplB,EAAG,EAAG,KAAMuC,MACxDA,KAAKwP,EAAI02B,gBAAgBC,QAAQ3P,EAAM3T,EAAKrT,EAAG,EAAG,KAAMxP,MACxDA,KAAKs9C,GAAK/H,yBAAyBoB,qBAAqBngB,EAAM3T,EAAKy6B,GAAIt9C,MACvEA,KAAKu9C,GAAKrX,gBAAgBC,QAAQ3P,EAAM3T,EAAKy6B,GAAGC,GAAI,EAAG,IAAMv9C,MAC7DA,KAAKw9C,GAAKtX,gBAAgBC,QAAQ3P,EAAM3T,EAAKy6B,GAAGE,GAAI,EAAG,IAAMx9C,MAC7DA,KAAK6iB,KAAOA,EAEP7iB,KAAKumC,kBAAkBzsC,QAC1BkG,KAAK6lC,UAAS,GAGhB7lC,KAAKwmC,cAAgBxmC,KAAKumC,kBAAkBzsC,OAC5CkG,KAAKy9C,QAAU,IAAI1R,OACnB/rC,KAAK09C,QAAU,IAAI3R,OACnB/rC,KAAK29C,QAAU,IAAI5R,OACnB/rC,KAAK49C,QAAU,IAAI7R,OACnB/rC,KAAKsvC,OAAS,IAAIvD,MACpB,EAEA6K,iBAAiBt8C,UAAUujD,gBAAkB,SAAUJ,EAASC,EAASC,EAASrQ,EAAWnR,EAAM2hB,GACjG,IAAIzgB,EAAMygB,GAAO,EAAI,EACjBC,EAASzQ,EAAUhlC,EAAEoY,EAAE,IAAM,EAAI4sB,EAAUhlC,EAAEoY,EAAE,KAAO,EAAIyb,GAC1D6hB,EAAS1Q,EAAUhlC,EAAEoY,EAAE,IAAM,EAAI4sB,EAAUhlC,EAAEoY,EAAE,KAAO,EAAIyb,GAC9DshB,EAAQtQ,UAAUG,EAAUz9B,EAAE6Q,EAAE,GAAK2c,EAAMlB,EAAMmR,EAAUz9B,EAAE6Q,EAAE,GAAK2c,EAAMlB,EAAMmR,EAAUz9B,EAAE6Q,EAAE,IAC9Fg9B,EAAQvQ,WAAWG,EAAU/vC,EAAEmjB,EAAE,IAAK4sB,EAAU/vC,EAAEmjB,EAAE,GAAI4sB,EAAU/vC,EAAEmjB,EAAE,IACtEg9B,EAAQrR,QAAQiB,EAAU59B,EAAEgR,EAAI2c,EAAMlB,GACtCuhB,EAAQvQ,UAAUG,EAAU/vC,EAAEmjB,EAAE,GAAI4sB,EAAU/vC,EAAEmjB,EAAE,GAAI4sB,EAAU/vC,EAAEmjB,EAAE,IACpEi9B,EAAQxQ,WAAWG,EAAU/vC,EAAEmjB,EAAE,IAAK4sB,EAAU/vC,EAAEmjB,EAAE,GAAI4sB,EAAU/vC,EAAEmjB,EAAE,IACtEi9B,EAAQ5Q,MAAM+Q,EAAM,EAAIC,EAASA,EAAQD,EAAM,EAAIE,EAASA,GAC5DL,EAAQxQ,UAAUG,EAAU/vC,EAAEmjB,EAAE,GAAI4sB,EAAU/vC,EAAEmjB,EAAE,GAAI4sB,EAAU/vC,EAAEmjB,EAAE,GACtE,EAEAk2B,iBAAiBt8C,UAAUs6B,KAAO,SAAU4B,EAAM3Z,EAAKxU,EAAK41C,GAY1D,IAXAj+C,KAAKw2B,KAAOA,EACZx2B,KAAK6c,IAAMA,EACX7c,KAAKqI,IAAMA,EACXrI,KAAKi+C,UAAYA,EACjBj+C,KAAKk+C,eAAiB,EACtBl+C,KAAKm+C,UAAY,GACjBn+C,KAAKo+C,QAAU,GACfp+C,KAAKklC,SAAW,EAChBllC,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAKkzC,uBAAuB1c,EAAM3Z,EAAIxU,IAE/BA,EAAM,GACXA,GAAO,EAEPrI,KAAKm+C,UAAUE,QAAQxhC,EAAIxU,IAGzBrI,KAAKumC,kBAAkBzsC,OACzBkG,KAAK2E,GAAI,EAET3E,KAAK6lC,UAAS,EAElB,EAEA+Q,iBAAiBt8C,UAAUgkD,cAAgB,SAAUC,GACnD,IAAI1kD,EACA6gB,EAAM6jC,EAASzkD,OAEnB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB0kD,EAAS1kD,GAAG2kD,YAAa,EAEF,OAAnBD,EAAS1kD,GAAGsqB,IACdnkB,KAAKs+C,cAAcC,EAAS1kD,GAAGoC,GAGrC,EAEA26C,iBAAiBt8C,UAAUmkD,cAAgB,SAAUF,GACnD,IAAIG,EAAc/zC,KAAKia,MAAMja,KAAKE,UAAU0zC,IAE5C,OADAv+C,KAAKs+C,cAAcI,GACZA,CACT,EAEA9H,iBAAiBt8C,UAAUqkD,kBAAoB,SAAUJ,EAAUK,GACjE,IAAI/kD,EACA6gB,EAAM6jC,EAASzkD,OAEnB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB0kD,EAAS1kD,GAAGglD,QAAUD,EAEC,OAAnBL,EAAS1kD,GAAGsqB,IACdnkB,KAAK2+C,kBAAkBJ,EAAS1kD,GAAGoC,GAAI2iD,EAG7C,EAEAhI,iBAAiBt8C,UAAU25C,cAAgB,SAAU5O,GACnD,IAAIyZ,EACAC,EACAllD,EACAwjC,EACA2hB,EACAC,GAAc,EAElB,GAAIj/C,KAAKglC,MAAQK,EAAe,CAC9B,IAmEIuZ,EAnEAM,EAAS1+C,KAAKqI,KAAK7I,KAAKvC,EAAEijB,GAE9B,GAAI1gB,KAAKo+C,QAAQtkD,OAASolD,EAAQ,CAChC,KAAOl/C,KAAKo+C,QAAQtkD,OAASolD,GAAQ,CACnC,IAAIC,EAAQ,CACVljD,GAAI+D,KAAKy+C,cAAcz+C,KAAKm+C,WAC5Bh6B,GAAI,MAENg7B,EAAMljD,GAAGuC,KAAK,CACZjB,EAAG,CACDA,EAAG,EACH6hD,GAAI,EACJz6C,EAAG,CAAC,EAAG,IAETmpB,GAAI,YACJte,EAAG,CACDjS,EAAG,EACH6hD,GAAI,EACJz6C,EAAG,KAELkL,EAAG,CACDtS,EAAG,EACH6hD,GAAI,EACJz6C,EAAG,CAAC,EAAG,IAET+K,EAAG,CACDnS,EAAG,EACH6hD,GAAI,EACJz6C,EAAG,CAAC,CACF2D,EAAG,EACHhI,EAAG,EACH4M,EAAG,GACF,CACD5E,EAAG,EACHhI,EAAG,EACH4M,EAAG,KAGP5E,EAAG,CACD/K,EAAG,EACH6hD,GAAI,EACJz6C,EAAG,CAAC,IAAK,MAEXuhB,GAAI,CACF3oB,EAAG,EACH6hD,GAAI,EACJz6C,EAAG,GAELshB,GAAI,CACF1oB,EAAG,EACH6hD,GAAI,EACJz6C,EAAG,GAELwf,GAAI,OAENnkB,KAAK6c,IAAI3J,OAAO,EAAG,EAAGisC,GAEtBn/C,KAAKo+C,QAAQlrC,OAAO,EAAG,EAAGisC,GAE1Bn/C,KAAKk+C,gBAAkB,CACzB,CAEAl+C,KAAKw2B,KAAK6oB,eACVJ,GAAc,CAChB,CAKA,IAHAD,EAAO,EAGFnlD,EAAI,EAAGA,GAAKmG,KAAKo+C,QAAQtkD,OAAS,EAAGD,GAAK,EAAG,CAKhD,GAJA+kD,EAAaI,EAAOE,EACpBl/C,KAAKo+C,QAAQvkD,GAAGglD,QAAUD,EAC1B5+C,KAAK2+C,kBAAkB3+C,KAAKo+C,QAAQvkD,GAAGoC,GAAI2iD,IAEtCA,EAAY,CACf,IAAIU,EAAQt/C,KAAKi+C,UAAUpkD,GAAGoC,GAC1BsjD,EAAgBD,EAAMA,EAAMxlD,OAAS,GAEJ,IAAjCylD,EAAcjS,UAAUxnB,GAAGpF,GAC7B6+B,EAAcjS,UAAUxnB,GAAGkf,MAAO,EAClCua,EAAcjS,UAAUxnB,GAAGpF,EAAI,GAE/B6+B,EAAcjS,UAAUxnB,GAAGkf,MAAO,CAEtC,CAEAga,GAAQ,CACV,CAEAh/C,KAAKk+C,eAAiBgB,EAEtB,IAAIl+B,EAAShhB,KAAKwP,EAAEkR,EAChB8+B,EAAex+B,EAAS,EACxBy+B,EAAcz+B,EAAS,EAAIxgB,KAAKsI,MAAMkY,GAAUxgB,KAAKqI,KAAKmY,GAC1D0+B,EAAS1/C,KAAKy9C,QAAQ7jD,MACtB+lD,EAAS3/C,KAAK09C,QAAQ9jD,MACtBgmD,EAAS5/C,KAAK29C,QAAQ/jD,MAC1BoG,KAAKy9C,QAAQvsC,QACblR,KAAK09C,QAAQxsC,QACblR,KAAK29C,QAAQzsC,QACblR,KAAK49C,QAAQ1sC,QACblR,KAAKsvC,OAAOp+B,QACZ,IA2BIlM,EACA2e,EA5BAk8B,EAAY,EAEhB,GAAI7+B,EAAS,EAAG,CACd,KAAO6+B,EAAYJ,GACjBz/C,KAAK69C,gBAAgB79C,KAAKy9C,QAASz9C,KAAK09C,QAAS19C,KAAK29C,QAAS39C,KAAKs9C,GAAI,GAAG,GAC3EuC,GAAa,EAGXL,IACFx/C,KAAK69C,gBAAgB79C,KAAKy9C,QAASz9C,KAAK09C,QAAS19C,KAAK29C,QAAS39C,KAAKs9C,GAAIkC,GAAc,GACtFK,GAAaL,EAEjB,MAAO,GAAIx+B,EAAS,EAAG,CACrB,KAAO6+B,EAAYJ,GACjBz/C,KAAK69C,gBAAgB79C,KAAKy9C,QAASz9C,KAAK09C,QAAS19C,KAAK29C,QAAS39C,KAAKs9C,GAAI,GAAG,GAC3EuC,GAAa,EAGXL,IACFx/C,KAAK69C,gBAAgB79C,KAAKy9C,QAASz9C,KAAK09C,QAAS19C,KAAK29C,QAAS39C,KAAKs9C,IAAKkC,GAAc,GACvFK,GAAaL,EAEjB,CAQA,IANA3lD,EAAoB,IAAhBmG,KAAK6iB,KAAKqqB,EAAU,EAAIltC,KAAKk+C,eAAiB,EAClD7gB,EAAsB,IAAhBr9B,KAAK6iB,KAAKqqB,EAAU,GAAK,EAC/B8R,EAAOh/C,KAAKk+C,eAILc,GAAM,CAQX,GALAr7B,GADAo7B,GADAD,EAAQ9+C,KAAKi+C,UAAUpkD,GAAGoC,IACH6iD,EAAMhlD,OAAS,GAAGwzC,UAAUwS,OAAOp/B,EAAE9mB,OACtCE,OACtBglD,EAAMA,EAAMhlD,OAAS,GAAGwzC,UAAUwS,OAAO9a,MAAO,EAChD8Z,EAAMA,EAAMhlD,OAAS,GAAGwzC,UAAUxnB,GAAGkf,MAAO,EAC5C8Z,EAAMA,EAAMhlD,OAAS,GAAGwzC,UAAUxnB,GAAGpF,EAA4B,IAAxB1gB,KAAKk+C,eAAuBl+C,KAAKu9C,GAAG78B,EAAI1gB,KAAKu9C,GAAG78B,GAAK1gB,KAAKw9C,GAAG98B,EAAI1gB,KAAKu9C,GAAG78B,IAAM7mB,GAAKmG,KAAKk+C,eAAiB,IAEjI,IAAd2B,EAAiB,CASnB,KARU,IAANhmD,GAAmB,IAARwjC,GAAaxjC,IAAMmG,KAAKk+C,eAAiB,IAAc,IAAT7gB,IAC3Dr9B,KAAK69C,gBAAgB79C,KAAKy9C,QAASz9C,KAAK09C,QAAS19C,KAAK29C,QAAS39C,KAAKs9C,GAAI,GAAG,GAG7Et9C,KAAKsvC,OAAOhC,UAAUqS,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KACvM3/C,KAAKsvC,OAAOhC,UAAUsS,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KACvM5/C,KAAKsvC,OAAOhC,UAAUoS,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KAElM16C,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzB+5C,EAAe/5C,GAAKhF,KAAKsvC,OAAO11C,MAAMoL,GAGxChF,KAAKsvC,OAAOp+B,OACd,MAGE,IAFAlR,KAAKsvC,OAAOp+B,QAEPlM,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzB+5C,EAAe/5C,GAAKhF,KAAKsvC,OAAO11C,MAAMoL,GAI1C66C,GAAa,EACbb,GAAQ,EACRnlD,GAAKwjC,CACP,CACF,MAKE,IAJA2hB,EAAOh/C,KAAKk+C,eACZrkD,EAAI,EACJwjC,EAAM,EAEC2hB,GAELD,GADAD,EAAQ9+C,KAAKi+C,UAAUpkD,GAAGoC,IACH6iD,EAAMhlD,OAAS,GAAGwzC,UAAUwS,OAAOp/B,EAAE9mB,MAC5DklD,EAAMA,EAAMhlD,OAAS,GAAGwzC,UAAUwS,OAAO9a,MAAO,EAChD8Z,EAAMA,EAAMhlD,OAAS,GAAGwzC,UAAUxnB,GAAGkf,MAAO,EAC5Cga,GAAQ,EACRnlD,GAAKwjC,EAIT,OAAO4hB,CACT,EAEArI,iBAAiBt8C,UAAU8tC,SAAW,WAAa,EAInD9tB,gBAAgB,CAACy4B,eAAgB8D,sBAEjCA,qBAAqBv8C,UAAU44C,uBAAyB,SAAU1c,EAAM3T,GACtE7iB,KAAK6lC,SAAW7lC,KAAKqzC,YACrBrzC,KAAK+/C,GAAK7Z,gBAAgBC,QAAQ3P,EAAM3T,EAAKnT,EAAG,EAAG,KAAM1P,MACzDA,KAAKwmC,cAAgBxmC,KAAK+/C,GAAG5a,gBAAgBrrC,MAC/C,EAEA+8C,qBAAqBv8C,UAAU66C,YAAc,SAAUvyB,EAAMlE,GAC3D,IAEI7kB,EAFAy7C,EAAaxN,UAAUnN,aAC3B2a,EAAW73C,EAAImlB,EAAKnlB,EAEpB,IACIuiD,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAnZ,EACAC,EACAC,EACAC,EACAC,EACAC,EAbA7sB,EAAMkI,EAAK4X,QAOX39B,EAAQ,EAQZ,IAAKhD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmmD,EAAWp9B,EAAKlC,EAAE7mB,GAClBqmD,EAAWt9B,EAAKpT,EAAE3V,GAClBomD,EAAWr9B,EAAK/oB,EAAEA,GAEdmmD,EAAS,KAAOE,EAAS,IAAMF,EAAS,KAAOE,EAAS,IAAMF,EAAS,KAAOC,EAAS,IAAMD,EAAS,KAAOC,EAAS,GAC7G,IAANpmD,GAAWA,IAAM6gB,EAAM,GAAOkI,EAAKnlB,GASpC0iD,EADQ,IAANtmD,EACQ+oB,EAAKlC,EAAEhG,EAAM,GAEbkI,EAAKlC,EAAE7mB,EAAI,GAIvBwmD,GADAD,EAAW5/C,KAAKod,KAAKpd,KAAKyP,IAAI+vC,EAAS,GAAKG,EAAQ,GAAI,GAAK3/C,KAAKyP,IAAI+vC,EAAS,GAAKG,EAAQ,GAAI,KACxE3/C,KAAKoI,IAAIw3C,EAAW,EAAG1hC,GAAS0hC,EAAW,EAEnElZ,EADAI,EAAK0Y,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAGhDlZ,EADAI,EAAKyY,EAAS,IAAMA,EAAS,GAAKG,EAAQ,IAAME,EAEhDjZ,EAAKF,GAAMA,EAAK8Y,EAAS,IAAMzhC,YAC/B8oB,EAAKF,GAAMA,EAAK6Y,EAAS,IAAMzhC,YAC/B+2B,EAAWrO,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI1qC,GAC/CA,GAAS,EAGPsjD,EADEtmD,IAAM6gB,EAAM,EACJkI,EAAKlC,EAAE,GAEPkC,EAAKlC,EAAE7mB,EAAI,GAIvBwmD,GADAD,EAAW5/C,KAAKod,KAAKpd,KAAKyP,IAAI+vC,EAAS,GAAKG,EAAQ,GAAI,GAAK3/C,KAAKyP,IAAI+vC,EAAS,GAAKG,EAAQ,GAAI,KACxE3/C,KAAKoI,IAAIw3C,EAAW,EAAG1hC,GAAS0hC,EAAW,EAEnElZ,EADAE,EAAK4Y,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAGhDlZ,EADAE,EAAK2Y,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAEhD/Y,EAAKJ,GAAMA,EAAK8Y,EAAS,IAAMzhC,YAC/BgpB,EAAKJ,GAAMA,EAAK6Y,EAAS,IAAMzhC,YAC/B+2B,EAAWrO,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI1qC,GAC/CA,GAAS,IAvCTy4C,EAAWrO,YAAY+Y,EAAS,GAAIA,EAAS,GAAIE,EAAS,GAAIA,EAAS,GAAID,EAAS,GAAIA,EAAS,GAAIpjD,GAKrGA,GAAS,IAqCXy4C,EAAWrO,YAAYrkB,EAAKlC,EAAE7mB,GAAG,GAAI+oB,EAAKlC,EAAE7mB,GAAG,GAAI+oB,EAAKpT,EAAE3V,GAAG,GAAI+oB,EAAKpT,EAAE3V,GAAG,GAAI+oB,EAAK/oB,EAAEA,GAAG,GAAI+oB,EAAK/oB,EAAEA,GAAG,GAAIgD,GAC3GA,GAAS,GAIb,OAAOy4C,CACT,EAEAuB,qBAAqBv8C,UAAU25C,cAAgB,SAAU5O,GACvD,IAAI6O,EACAr6C,EAEAmL,EACA2e,EAIE6Z,EACA2L,EAPFzuB,EAAM1a,KAAKukB,OAAOzqB,OAGlBimD,EAAK//C,KAAK+/C,GAAGr/B,EAEjB,GAAW,IAAPq/B,EAIF,IAAKlmD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAI3B,GAFAsvC,GADA3L,EAAYx9B,KAAKukB,OAAO1qB,IACSsvC,qBAE1B3L,EAAUyK,MAAMjD,MAAShlC,KAAKglC,MAASK,EAM5C,IALA8D,EAAqBd,gBACrB7K,EAAUyK,MAAMjD,MAAO,EACvBkP,EAAa1W,EAAUyK,MAAMiB,MAAM3kB,OACnCZ,EAAO6Z,EAAUyK,MAAMiB,MAAM1O,QAExBx1B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzBmkC,EAAqBf,SAASpoC,KAAKm1C,YAAYjB,EAAWlvC,GAAI+6C,IAIlEviB,EAAUyK,MAAMiB,MAAQ1L,EAAU2L,oBACpC,CAGGnpC,KAAKumC,kBAAkBzsC,SAC1BkG,KAAKglC,MAAO,EAEhB,EA0DAwS,iBAAiBl9C,UAAU0P,MAAQ,SAAUkD,GAC3C,MAAO,GAAGlN,KAAKzC,EAAE,GAAK2P,EAAIlN,KAAKxC,EAAE,IAAM0P,EAAIlN,KAAKvC,EAAE,IAAMyP,EAAIlN,KAAK6gB,EAAE,KAAM7gB,KAAKzC,EAAE,GAAK2P,EAAIlN,KAAKxC,EAAE,IAAM0P,EAAIlN,KAAKvC,EAAE,IAAMyP,EAAIlN,KAAK6gB,EAAE,GACpI,EAEA22B,iBAAiBl9C,UAAUgmD,WAAa,SAAUpzC,GAChD,MAAO,EAAE,EAAIA,EAAIlN,KAAKzC,EAAE,GAAK,EAAIyC,KAAKxC,EAAE,IAAM0P,EAAIlN,KAAKvC,EAAE,IAAK,EAAIyP,EAAIlN,KAAKzC,EAAE,GAAK,EAAIyC,KAAKxC,EAAE,IAAM0P,EAAIlN,KAAKvC,EAAE,GAChH,EAEA+5C,iBAAiBl9C,UAAUwhD,aAAe,SAAU5uC,GAClD,IAAI2C,EAAI7P,KAAKsgD,WAAWpzC,GACxB,OAAO1M,KAAKqjC,MAAMh0B,EAAE,GAAIA,EAAE,GAC5B,EAEA2nC,iBAAiBl9C,UAAU2gD,YAAc,SAAU/tC,GACjD,IAAI2C,EAAI7P,KAAKsgD,WAAWpzC,GACxB,OAAO1M,KAAKqjC,MAAMh0B,EAAE,GAAIA,EAAE,GAC5B,EAEA2nC,iBAAiBl9C,UAAUuiD,iBAAmB,WAC5C,IAAI0D,EAAQvgD,KAAKzC,EAAE,GAAKyC,KAAKxC,EAAE,GAAKwC,KAAKzC,EAAE,GAAKyC,KAAKxC,EAAE,GACvD,GAAIu5C,UAAUwJ,GAAQ,MAAO,GAC7B,IAAIC,GAAS,IAAOxgD,KAAKzC,EAAE,GAAKyC,KAAKvC,EAAE,GAAKuC,KAAKzC,EAAE,GAAKyC,KAAKvC,EAAE,IAAM8iD,EACjEE,EAASD,EAAQA,EAAQ,EAAI,GAAKxgD,KAAKxC,EAAE,GAAKwC,KAAKvC,EAAE,GAAKuC,KAAKxC,EAAE,GAAKwC,KAAKvC,EAAE,IAAM8iD,EACvF,GAAIE,EAAS,EAAG,MAAO,GACvB,IAAIlpC,EAAO/W,KAAKod,KAAK6iC,GAErB,OAAI1J,UAAUx/B,GACRA,EAAO,GAAKA,EAAO,EAAU,CAACipC,GAC3B,GAGF,CAACA,EAAQjpC,EAAMipC,EAAQjpC,GAAMmpC,QAAO,SAAUhxC,GACnD,OAAOA,EAAI,GAAKA,EAAI,CACtB,GACF,EAEA8nC,iBAAiBl9C,UAAUyD,MAAQ,SAAUmP,GAC3C,GAAIA,GAAK,EAAG,MAAO,CAACqqC,YAAYv3C,KAAKy4B,OAAO,IAAKz4B,MACjD,GAAIkN,GAAK,EAAG,MAAO,CAAClN,KAAMu3C,YAAYv3C,KAAKy4B,OAAOz4B,KAAKy4B,OAAO3+B,OAAS,KACvE,IAAI6mD,EAAM1J,UAAUj3C,KAAKy4B,OAAO,GAAIz4B,KAAKy4B,OAAO,GAAIvrB,GAChD0zC,EAAM3J,UAAUj3C,KAAKy4B,OAAO,GAAIz4B,KAAKy4B,OAAO,GAAIvrB,GAChD0jC,EAAMqG,UAAUj3C,KAAKy4B,OAAO,GAAIz4B,KAAKy4B,OAAO,GAAIvrB,GAChD2zC,EAAM5J,UAAU0J,EAAKC,EAAK1zC,GAC1B4zC,EAAM7J,UAAU2J,EAAKhQ,EAAK1jC,GAC1BoqC,EAAKL,UAAU4J,EAAKC,EAAK5zC,GAC7B,MAAO,CAAC,IAAIsqC,iBAAiBx3C,KAAKy4B,OAAO,GAAIkoB,EAAKE,EAAKvJ,GAAI,GAAO,IAAIE,iBAAiBF,EAAIwJ,EAAKlQ,EAAK5wC,KAAKy4B,OAAO,IAAI,GACvH,EA4BA+e,iBAAiBl9C,UAAUymD,OAAS,WAClC,MAAO,CACLloB,EAAGgf,QAAQ73C,KAAM,GACjBwhC,EAAGqW,QAAQ73C,KAAM,GAErB,EAEAw3C,iBAAiBl9C,UAAU29C,YAAc,WACvC,IAAI8I,EAAS/gD,KAAK+gD,SAClB,MAAO,CACLjiC,KAAMiiC,EAAOloB,EAAEjwB,IACf8zC,MAAOqE,EAAOloB,EAAElwB,IAChBkI,IAAKkwC,EAAOvf,EAAE54B,IACdo4C,OAAQD,EAAOvf,EAAE74B,IACjB0gB,MAAO03B,EAAOloB,EAAElwB,IAAMo4C,EAAOloB,EAAEjwB,IAC/BmI,OAAQgwC,EAAOvf,EAAE74B,IAAMo4C,EAAOvf,EAAE54B,IAChCsvC,IAAK6I,EAAOloB,EAAElwB,IAAMo4C,EAAOloB,EAAEjwB,KAAO,EACpCuvC,IAAK4I,EAAOvf,EAAE74B,IAAMo4C,EAAOvf,EAAE54B,KAAO,EAExC,EAyCA4uC,iBAAiBl9C,UAAUm+C,cAAgB,SAAU1gC,EAAOygC,EAAWE,QACnDp7C,IAAdk7C,IAAyBA,EAAY,QACpBl7C,IAAjBo7C,IAA4BA,EAAe,GAC/C,IAAID,EAAgB,GAEpB,OADAH,eAAeR,cAAc93C,KAAM,EAAG,GAAI83C,cAAc//B,EAAO,EAAG,GAAI,EAAGygC,EAAWC,EAAeC,GAC5FD,CACT,EAEAjB,iBAAiBzC,aAAe,SAAUhN,EAAWlrC,GACnD,IAAIy9C,GAAaz9C,EAAQ,GAAKkrC,EAAUjuC,SACxC,OAAO,IAAI09C,iBAAiBzP,EAAUrnB,EAAE7jB,GAAQkrC,EAAUv4B,EAAE3S,GAAQkrC,EAAUluC,EAAEygD,GAAYvS,EAAUrnB,EAAE45B,IAAY,EACtH,EAEA9C,iBAAiByJ,qBAAuB,SAAUlZ,EAAWlrC,GAC3D,IAAIy9C,GAAaz9C,EAAQ,GAAKkrC,EAAUjuC,SACxC,OAAO,IAAI09C,iBAAiBzP,EAAUrnB,EAAE45B,GAAYvS,EAAUluC,EAAEygD,GAAYvS,EAAUv4B,EAAE3S,GAAQkrC,EAAUrnB,EAAE7jB,IAAQ,EACtH,EA8BAyd,gBAAgB,CAACy4B,eAAgByG,gBAEjCA,eAAel/C,UAAU44C,uBAAyB,SAAU1c,EAAM3T,GAChE7iB,KAAK6lC,SAAW7lC,KAAKqzC,YACrBrzC,KAAK25C,UAAYzT,gBAAgBC,QAAQ3P,EAAM3T,EAAKva,EAAG,EAAG,KAAMtI,MAChEA,KAAKy6C,UAAYvU,gBAAgBC,QAAQ3P,EAAM3T,EAAKnT,EAAG,EAAG,KAAM1P,MAChEA,KAAKkhD,WAAahb,gBAAgBC,QAAQ3P,EAAM3T,EAAKoB,GAAI,EAAG,KAAMjkB,MAClEA,KAAKwmC,YAAwD,IAA1CxmC,KAAK25C,UAAUxU,gBAAgBrrC,QAA0D,IAA1CkG,KAAKy6C,UAAUtV,gBAAgBrrC,QAA2D,IAA3CkG,KAAKkhD,WAAW/b,gBAAgBrrC,MACnJ,EAiDA0/C,eAAel/C,UAAU66C,YAAc,SAAUvyB,EAAM+2B,EAAWc,EAAWC,GAC3E,IAAI/rC,EAAQiU,EAAK4X,QACb8a,EAAaxN,UAAUnN,aAO3B,GANA2a,EAAW73C,EAAImlB,EAAKnlB,EAEfmlB,EAAKnlB,IACRkR,GAAS,GAGG,IAAVA,EAAa,OAAO2mC,EACxB,IAAI51B,GAAa,EACbsS,EAAUwlB,iBAAiBzC,aAAanyB,EAAM,GAClD43B,aAAalF,EAAY1yB,EAAM,EAAG+2B,EAAWc,EAAWC,EAAWh7B,GAEnE,IAAK,IAAI7lB,EAAI,EAAGA,EAAI8U,EAAO9U,GAAK,EAC9B6lB,EAAYq7B,cAAczF,EAAYtjB,EAAS2nB,EAAWc,EAAWC,GAAYh7B,GAK/EsS,EAHEn4B,IAAM8U,EAAQ,GAAMiU,EAAKnlB,EAGjB+5C,iBAAiBzC,aAAanyB,GAAO/oB,EAAI,GAAK8U,GAF9C,KAKZ6rC,aAAalF,EAAY1yB,EAAM/oB,EAAI,EAAG8/C,EAAWc,EAAWC,EAAWh7B,GAGzE,OAAO41B,CACT,EAEAkE,eAAel/C,UAAU25C,cAAgB,SAAU5O,GACjD,IAAI6O,EACAr6C,EAEAmL,EACA2e,EAME6Z,EACA2L,EATFzuB,EAAM1a,KAAKukB,OAAOzqB,OAGlB6/C,EAAY35C,KAAK25C,UAAUj5B,EAC3B+5B,EAAYj6C,KAAKmI,IAAI,EAAGnI,KAAKke,MAAM1e,KAAKy6C,UAAU/5B,IAClDg6B,EAAY16C,KAAKkhD,WAAWxgC,EAEhC,GAAkB,IAAdi5B,EAIF,IAAK9/C,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAI3B,GAFAsvC,GADA3L,EAAYx9B,KAAKukB,OAAO1qB,IACSsvC,qBAE1B3L,EAAUyK,MAAMjD,MAAShlC,KAAKglC,MAASK,EAM5C,IALA8D,EAAqBd,gBACrB7K,EAAUyK,MAAMjD,MAAO,EACvBkP,EAAa1W,EAAUyK,MAAMiB,MAAM3kB,OACnCZ,EAAO6Z,EAAUyK,MAAMiB,MAAM1O,QAExBx1B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzBmkC,EAAqBf,SAASpoC,KAAKm1C,YAAYjB,EAAWlvC,GAAI20C,EAAWc,EAAWC,IAIxFld,EAAUyK,MAAMiB,MAAQ1L,EAAU2L,oBACpC,CAGGnpC,KAAKumC,kBAAkBzsC,SAC1BkG,KAAKglC,MAAO,EAEhB,EAiJA1qB,gBAAgB,CAACy4B,eAAgB+J,oBAEjCA,mBAAmBxiD,UAAU44C,uBAAyB,SAAU1c,EAAM3T,GACpE7iB,KAAK6lC,SAAW7lC,KAAKqzC,YACrBrzC,KAAKk1C,OAAShP,gBAAgBC,QAAQ3P,EAAM3T,EAAKtlB,EAAG,EAAG,KAAMyC,MAC7DA,KAAK47C,WAAa1V,gBAAgBC,QAAQ3P,EAAM3T,EAAKs+B,GAAI,EAAG,KAAMnhD,MAClEA,KAAK27C,SAAW94B,EAAKu+B,GACrBphD,KAAKwmC,YAAqD,IAAvCxmC,KAAKk1C,OAAO/P,gBAAgBrrC,MACjD,EAEAgjD,mBAAmBxiD,UAAU66C,YAAc,SAAUkM,EAAanM,EAAQyG,EAAUC,GAClF,IAAIlC,EAAe5R,UAAUnN,aAC7B+e,EAAaj8C,EAAI4jD,EAAY5jD,EAC7B,IAMI5D,EACAmL,EACAgtB,EARArjB,EAAQ0yC,EAAYvnD,SAEnBunD,EAAY5jD,IACfkR,GAAS,GAMX,IAAI2yC,EAAgB,GAEpB,IAAKznD,EAAI,EAAGA,EAAI8U,EAAO9U,GAAK,EAC1Bm4B,EAAUwlB,iBAAiBzC,aAAasM,EAAaxnD,GACrDynD,EAAc9iD,KAAKi+C,mBAAmBzqB,EAASkjB,IAGjD,IAAKmM,EAAY5jD,EACf,IAAK5D,EAAI8U,EAAQ,EAAG9U,GAAK,EAAGA,GAAK,EAC/Bm4B,EAAUwlB,iBAAiByJ,qBAAqBI,EAAaxnD,GAC7DynD,EAAc9iD,KAAKi+C,mBAAmBzqB,EAASkjB,IAInDoM,EAAgB9E,mBAAmB8E,GAEnC,IAAIhlB,EAAY,KACZilB,EAAU,KAEd,IAAK1nD,EAAI,EAAGA,EAAIynD,EAAcxnD,OAAQD,GAAK,EAAG,CAC5C,IAAI2nD,EAAeF,EAAcznD,GAIjC,IAHI0nD,IAASjlB,EAAYkf,UAAU9B,EAAc6H,EAASC,EAAa,GAAI7F,EAAUC,IACrF2F,EAAUC,EAAaA,EAAa1nD,OAAS,GAExCkL,EAAI,EAAGA,EAAIw8C,EAAa1nD,OAAQkL,GAAK,EACxCgtB,EAAUwvB,EAAax8C,GAEnBs3B,GAAaob,WAAW1lB,EAAQyG,OAAO,GAAI6D,GAC7Cod,EAAa1S,QAAQhV,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAI,IAAKihB,EAAa5/C,SAAW,GAE9F4/C,EAAazS,YAAYjV,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIihB,EAAa5/C,UAG5K4/C,EAAazS,YAAYjV,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIzG,EAAQyG,OAAO,GAAG,GAAIihB,EAAa5/C,UAC1KwiC,EAAYtK,EAAQyG,OAAO,EAE/B,CAGA,OADI6oB,EAAcxnD,QAAQ0hD,UAAU9B,EAAc6H,EAASD,EAAc,GAAG,GAAI3F,EAAUC,GACnFlC,CACT,EAEAoD,mBAAmBxiD,UAAU25C,cAAgB,SAAU5O,GACrD,IAAI6O,EACAr6C,EAEAmL,EACA2e,EAME6Z,EACA2L,EATFzuB,EAAM1a,KAAKukB,OAAOzqB,OAGlBo7C,EAASl1C,KAAKk1C,OAAOx0B,EACrBk7B,EAAa57C,KAAK47C,WAAWl7B,EAC7Bi7B,EAAW37C,KAAK27C,SAEpB,GAAe,IAAXzG,EAIF,IAAKr7C,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAI3B,GAFAsvC,GADA3L,EAAYx9B,KAAKukB,OAAO1qB,IACSsvC,qBAE1B3L,EAAUyK,MAAMjD,MAAShlC,KAAKglC,MAASK,EAM5C,IALA8D,EAAqBd,gBACrB7K,EAAUyK,MAAMjD,MAAO,EACvBkP,EAAa1W,EAAUyK,MAAMiB,MAAM3kB,OACnCZ,EAAO6Z,EAAUyK,MAAMiB,MAAM1O,QAExBx1B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzBmkC,EAAqBf,SAASpoC,KAAKm1C,YAAYjB,EAAWlvC,GAAIkwC,EAAQyG,EAAUC,IAIpFpe,EAAUyK,MAAMiB,MAAQ1L,EAAU2L,oBACpC,CAGGnpC,KAAKumC,kBAAkBzsC,SAC1BkG,KAAKglC,MAAO,EAEhB,EAkDA,IAAIyc,YAAc,WAChB,IACIC,EAAY,CACd/9C,EAAG,EACHg+C,KAAM,EACNp9B,OAAQ,GACR1B,KAAM,CACJ0B,OAAQ,KAGRq9B,EAAqB,GAEzBA,EAAqBA,EAAmB78C,OAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAChP,IAAI88C,EAAwB,OAMxBC,EAAkC,OAClCC,EAAkC,OAClCC,EAAqB,CAAC,WAAY,WAAY,WAAY,WAAY,YAiB1E,SAASC,EAAUC,EAAMC,GACvB,IAAIC,EAAa/nC,UAAU,QAE3B+nC,EAAWjrB,aAAa,eAAe,GACvCirB,EAAW38C,MAAM48C,WAAaF,EAC9B,IAAIG,EAAOjoC,UAAU,QAErBioC,EAAKhrB,UAAY,iBAEjB8qB,EAAW38C,MAAMoZ,SAAW,WAC5BujC,EAAW38C,MAAMqZ,KAAO,WACxBsjC,EAAW38C,MAAMoL,IAAM,WAEvBuxC,EAAW38C,MAAM88C,SAAW,QAE5BH,EAAW38C,MAAM+8C,YAAc,SAC/BJ,EAAW38C,MAAMg9C,UAAY,SAC7BL,EAAW38C,MAAMi9C,WAAa,SAC9BN,EAAW38C,MAAMk9C,cAAgB,IACjCP,EAAWl2B,YAAYo2B,GACvB1kD,SAASw5B,KAAKlL,YAAYk2B,GAE1B,IAAI/4B,EAAQi5B,EAAKM,YAEjB,OADAN,EAAK78C,MAAM48C,WAtCb,SAAyBH,GACvB,IACIroD,EADAgpD,EAAcX,EAAKnkD,MAAM,KAEzB2c,EAAMmoC,EAAY/oD,OAClBgpD,EAAkB,GAEtB,IAAKjpD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACD,eAAnBgpD,EAAYhpD,IAA0C,cAAnBgpD,EAAYhpD,IACjDipD,EAAgBtkD,KAAKqkD,EAAYhpD,IAIrC,OAAOipD,EAAgBl+C,KAAK,IAC9B,CAyB0Bm+C,CAAgBb,GAAQ,KAAOC,EAChD,CACLG,KAAMA,EACN3+C,EAAG0lB,EACH25B,OAAQZ,EAEZ,CA6CA,SAASa,EAAajG,EAAUv1C,GAC9B,IACIy7C,EADAC,EAASvlD,SAASw5B,MAAQ3vB,EAAM,MAAQ,SAExC27C,EAAYrG,kBAAkBC,GAElC,GAAe,QAAXmG,EAAkB,CACpB,IAAIE,EAAUphC,SAAS,QACvBohC,EAAQ59C,MAAM88C,SAAW,QAEzBc,EAAQlsB,aAAa,cAAe6lB,EAASsG,SAC7CD,EAAQlsB,aAAa,aAAcisB,EAAU39C,OAC7C49C,EAAQlsB,aAAa,cAAeisB,EAAU/F,QAC9CgG,EAAQ3xC,YAAc,IAElBsrC,EAASuG,QACXF,EAAQ59C,MAAM48C,WAAa,UAC3BgB,EAAQlsB,aAAa,QAAS6lB,EAASuG,SAEvCF,EAAQ59C,MAAM48C,WAAarF,EAASsG,QAGtC77C,EAAIykB,YAAYm3B,GAChBH,EAASG,CACX,KAAO,CACL,IAAIG,EAAgB,IAAIC,gBAAgB,IAAK,KAAKn6B,WAAW,MAC7Dk6B,EAActB,KAAOkB,EAAU39C,MAAQ,IAAM29C,EAAU/F,OAAS,UAAYL,EAASsG,QACrFJ,EAASM,CACX,CAWA,MAAO,CACLE,YAVF,SAAiBC,GACf,MAAe,QAAXR,GACFD,EAAOxxC,YAAciyC,EACdT,EAAOU,yBAGTV,EAAOQ,YAAYC,GAAMt6B,KAClC,EAKF,CAwMA,SAASw6B,EAAaC,GACpB,IAAIC,EAAY,EACZltB,EAAQitB,EAAOr7C,WAAW,GAE9B,GAAIouB,GAAS,OAAUA,GAAS,MAAQ,CACtC,IAAImtB,EAASF,EAAOr7C,WAAW,GAE3Bu7C,GAAU,OAAUA,GAAU,QAChCD,EAA+B,MAAlBltB,EAAQ,OAAkBmtB,EAAS,MAAS,MAE7D,CAEA,OAAOD,CACT,CAsBA,SAASE,EAAeH,GACtB,IAAIC,EAAYF,EAAaC,GAE7B,OAAIC,GAAajC,GAAmCiC,GAAahC,CAKnE,CA2CA,IAAImC,EAAO,WACTlkD,KAAK0xB,MAAQ,GACb1xB,KAAK2lB,MAAQ,KACb3lB,KAAKmkD,cAAgB,EACrBnkD,KAAKyuB,UAAW,EAChBzuB,KAAKokD,SAAU,EACfpkD,KAAK+1B,SAAWne,KAAKD,MACrB3X,KAAKqkD,kBAAoBrkD,KAAKskD,YAAY15B,KAAK5qB,MAC/CA,KAAKukD,uBAAyBvkD,KAAKwkD,iBAAiB55B,KAAK5qB,KAC3D,EAEAkkD,EAAKO,WAjFL,SAAoBC,EAAeC,GACjC,IAAIC,EAAMF,EAAc5nD,SAAS,IAAM6nD,EAAe7nD,SAAS,IAC/D,OAA4C,IAArCklD,EAAmB36B,QAAQu9B,EACpC,EA+EAV,EAAKW,kBA7EL,SAA2BC,GACzB,OArWiC,OAqW1BA,CACT,EA4EAZ,EAAKa,YApDL,SAAqBjB,GACnB,OAAOG,EAAeH,EAAO9yB,OAAO,EAAG,KAAOizB,EAAeH,EAAO9yB,OAAO,EAAG,GAChF,EAmDAkzB,EAAKD,eAAiBA,EACtBC,EAAKc,oBAlDL,SAA6BC,GAC3B,OAA+C,IAAxCrD,EAAmBv6B,QAAQ49B,EACpC,EAiDAf,EAAKgB,eA5CL,SAAwBvB,EAAM9mD,GAC5B,IAAIknD,EAAYF,EAAaF,EAAK3yB,OAAOn0B,EAAO,IAEhD,GAAIknD,IAAclC,EAChB,OAAO,EAGT,IAAIlzC,EAAQ,EAGZ,IAFA9R,GAAS,EAEF8R,EAAQ,GAAG,CAGhB,IAFAo1C,EAAYF,EAAaF,EAAK3yB,OAAOn0B,EAAO,KAvZzB,QAyZiBknD,EAxZjB,OAyZjB,OAAO,EAGTp1C,GAAS,EACT9R,GAAS,CACX,CAEA,OAla0B,SAkanBgnD,EAAaF,EAAK3yB,OAAOn0B,EAAO,GACzC,EAuBAqnD,EAAKiB,oBA3EL,SAA6BL,GAC3B,OA7WqC,QA6W9BA,CACT,EA0EAZ,EAAKrC,sBAAwBA,EAC7B,IAAIuD,EAAgB,CAClBxzB,SArMF,SAAkBjM,GAChB,GAAKA,EAAL,CAQA,IAAI9rB,EAJCmG,KAAK2lB,QACR3lB,KAAK2lB,MAAQ,IAIf,IACI3gB,EAEAqgD,EAHA3qC,EAAMiL,EAAM7rB,OAEZ6pB,EAAO3jB,KAAK2lB,MAAM7rB,OAGtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAI3B,IAHAmL,EAAI,EACJqgD,GAAQ,EAEDrgD,EAAI2e,GACL3jB,KAAK2lB,MAAM3gB,GAAGS,QAAUkgB,EAAM9rB,GAAG4L,OAASzF,KAAK2lB,MAAM3gB,GAAGs+C,UAAY39B,EAAM9rB,GAAGypD,SAAWtjD,KAAK2lB,MAAM3gB,GAAGsgD,KAAO3/B,EAAM9rB,GAAGyrD,KACxHD,GAAQ,GAGVrgD,GAAK,EAGFqgD,IACHrlD,KAAK2lB,MAAMnnB,KAAKmnB,EAAM9rB,IACtB8pB,GAAQ,EAEZ,CA5BA,CA6BF,EAsKEkO,SAjTF,SAAkBmrB,EAAUtsB,GAC1B,GAAKssB,EAAL,CAKA,GAAIh9C,KAAK2lB,MAGP,OAFA3lB,KAAKyuB,UAAW,OAChBzuB,KAAK0xB,MAAQsrB,EAASuI,MAIxB,IAAK3nD,SAASw5B,KAOZ,OANAp3B,KAAKyuB,UAAW,EAChBuuB,EAASuI,KAAK7gD,SAAQ,SAAUme,GAC9BA,EAAKqgC,OAASD,EAAapgC,GAC3BA,EAAK2iC,MAAQ,CAAC,CAChB,SACAxlD,KAAK0xB,MAAQsrB,EAASuI,MAIxB,IACI1rD,EADA4rD,EAAUzI,EAASuI,KAEnB7qC,EAAM+qC,EAAQ3rD,OACd4rD,EAAgBhrC,EAEpB,IAAK7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAC3B,IACI8rD,EACA3gD,EAFA4gD,GAAiB,EAOrB,GAJAH,EAAQ5rD,GAAGgsD,QAAS,EACpBJ,EAAQ5rD,GAAGisD,SAAW7D,EAAUwD,EAAQ5rD,GAAGypD,QAAS,aACpDmC,EAAQ5rD,GAAGksD,SAAW9D,EAAUwD,EAAQ5rD,GAAGypD,QAAS,cAE/CmC,EAAQ5rD,GAAGmsD,OAGT,GAA2B,MAAvBP,EAAQ5rD,GAAGosD,SAAyC,IAAtBR,EAAQ5rD,GAAGgvB,QAOlD,IANA88B,EAAiB/nD,SAASsoD,iBAAiB,kCAAoCT,EAAQ5rD,GAAGypD,QAAU,qCAAuCmC,EAAQ5rD,GAAGypD,QAAU,OAE7IxpD,OAAS,IAC1B8rD,GAAiB,GAGfA,EAAgB,CAClB,IAAIt9C,EAAI+R,UAAU,SAClB/R,EAAE6uB,aAAa,YAAasuB,EAAQ5rD,GAAGosD,SACvC39C,EAAE6uB,aAAa,WAAYsuB,EAAQ5rD,GAAGgvB,QACtCvgB,EAAE6uB,aAAa,WAAYsuB,EAAQ5rD,GAAGypD,SACtCh7C,EAAEvJ,KAAO,WACTuJ,EAAEgvB,UAAY,4BAA8BmuB,EAAQ5rD,GAAGypD,QAAU,mCAAqCmC,EAAQ5rD,GAAGmsD,MAAQ,OACzHt1B,EAAKxE,YAAY5jB,EACnB,OACK,GAA2B,MAAvBm9C,EAAQ5rD,GAAGosD,SAAyC,IAAtBR,EAAQ5rD,GAAGgvB,OAAc,CAGhE,IAFA88B,EAAiB/nD,SAASsoD,iBAAiB,2CAEtClhD,EAAI,EAAGA,EAAI2gD,EAAe7rD,OAAQkL,GAAK,GACgB,IAAtD2gD,EAAe3gD,GAAGssC,KAAKjqB,QAAQo+B,EAAQ5rD,GAAGmsD,SAE5CJ,GAAiB,GAIrB,GAAIA,EAAgB,CAClB,IAAIp9C,EAAI6R,UAAU,QAClB7R,EAAE2uB,aAAa,YAAasuB,EAAQ5rD,GAAGosD,SACvCz9C,EAAE2uB,aAAa,WAAYsuB,EAAQ5rD,GAAGgvB,QACtCrgB,EAAEzJ,KAAO,WACTyJ,EAAE29C,IAAM,aACR39C,EAAE8oC,KAAOmU,EAAQ5rD,GAAGmsD,MACpBpoD,SAASw5B,KAAKlL,YAAY1jB,EAC5B,CACF,MAAO,GAA2B,MAAvBi9C,EAAQ5rD,GAAGosD,SAAyC,IAAtBR,EAAQ5rD,GAAGgvB,OAAc,CAGhE,IAFA88B,EAAiB/nD,SAASsoD,iBAAiB,+CAEtClhD,EAAI,EAAGA,EAAI2gD,EAAe7rD,OAAQkL,GAAK,EACtCygD,EAAQ5rD,GAAGmsD,QAAUL,EAAe3gD,GAAGW,MAEzCigD,GAAiB,GAIrB,GAAIA,EAAgB,CAClB,IAAIQ,EAAK/rC,UAAU,QACnB+rC,EAAGjvB,aAAa,YAAasuB,EAAQ5rD,GAAGosD,SACxCG,EAAGjvB,aAAa,WAAYsuB,EAAQ5rD,GAAGgvB,QACvCu9B,EAAGjvB,aAAa,MAAO,cACvBivB,EAAGjvB,aAAa,OAAQsuB,EAAQ5rD,GAAGmsD,OACnCt1B,EAAKxE,YAAYk6B,EACnB,CACF,OAvDEX,EAAQ5rD,GAAGgsD,QAAS,EACpBH,GAAiB,EAwDnBD,EAAQ5rD,GAAGqpD,OAASD,EAAawC,EAAQ5rD,GAAI62B,GAC7C+0B,EAAQ5rD,GAAG2rD,MAAQ,CAAC,EACpBxlD,KAAK0xB,MAAMlzB,KAAKinD,EAAQ5rD,GAC1B,CAEsB,IAAlB6rD,EACF1lD,KAAKyuB,UAAW,EAIhBzd,WAAWhR,KAAKwkD,iBAAiB55B,KAAK5qB,MAAO,IAnG/C,MAFEA,KAAKyuB,UAAW,CAuGpB,EAyME43B,YArKF,SAAqBC,EAAO7gD,EAAOy8C,GAIjC,IAHA,IAAIroD,EAAI,EACJ6gB,EAAM1a,KAAK2lB,MAAM7rB,OAEdD,EAAI6gB,GAAK,CACd,GAAI1a,KAAK2lB,MAAM9rB,GAAGyrD,KAAOgB,GAAStmD,KAAK2lB,MAAM9rB,GAAG4L,QAAUA,GAASzF,KAAK2lB,MAAM9rB,GAAGypD,UAAYpB,EAC3F,OAAOliD,KAAK2lB,MAAM9rB,GAGpBA,GAAK,CACP,CAQA,OANsB,kBAAVysD,GAA8C,KAAxBA,EAAM79C,WAAW,KAAc69C,IAAUh2C,SAAWA,QAAQi2C,OAC1FvmD,KAAKokD,UACPpkD,KAAKokD,SAAU,EACf9zC,QAAQi2C,KAAK,oDAAqDD,EAAO7gD,EAAOy8C,IAG3ER,CACT,EAmJE8E,cA5HF,SAAuBxnD,GAIrB,IAHA,IAAInF,EAAI,EACJ6gB,EAAM1a,KAAK0xB,MAAM53B,OAEdD,EAAI6gB,GAAK,CACd,GAAI1a,KAAK0xB,MAAM73B,GAAG4sD,QAAUznD,EAC1B,OAAOgB,KAAK0xB,MAAM73B,GAGpBA,GAAK,CACP,CAEA,OAAOmG,KAAK0xB,MAAM,EACpB,EAgHEgyB,YAlJF,SAAqBgD,EAAQC,EAAUhF,GACrC,IAAI3E,EAAWh9C,KAAKwmD,cAAcG,GAG9B9pD,EAAQ6pD,EAEZ,IAAK1J,EAASwI,MAAM3oD,GAAQ,CAC1B,IAAIwmD,EAAUrG,EAASkG,OAEvB,GAAe,MAAXwD,EAAgB,CAClB,IAAIE,EAAavD,EAAQK,YAAY,IAAMgD,EAAS,KAChDG,EAAaxD,EAAQK,YAAY,MACrC1G,EAASwI,MAAM3oD,IAAU+pD,EAAaC,GAAc,GACtD,MACE7J,EAASwI,MAAM3oD,GAASwmD,EAAQK,YAAYgD,GAAU,GAE1D,CAEA,OAAO1J,EAASwI,MAAM3oD,GAAS8kD,CACjC,EAgIE6C,iBA3YF,WACE,IAAI3qD,EAEAyoD,EACA3+C,EAFA+W,EAAM1a,KAAK0xB,MAAM53B,OAGjBgtD,EAAcpsC,EAElB,IAAK7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBmG,KAAK0xB,MAAM73B,GAAGgsD,OAChBiB,GAAe,EACoB,MAA1B9mD,KAAK0xB,MAAM73B,GAAGosD,SAA4C,IAAzBjmD,KAAK0xB,MAAM73B,GAAGgvB,OACxD7oB,KAAK0xB,MAAM73B,GAAGgsD,QAAS,GAEvBvD,EAAOtiD,KAAK0xB,MAAM73B,GAAGisD,SAASxD,KAC9B3+C,EAAI3D,KAAK0xB,MAAM73B,GAAGisD,SAASniD,EAEvB2+C,EAAKM,cAAgBj/C,GACvBmjD,GAAe,EACf9mD,KAAK0xB,MAAM73B,GAAGgsD,QAAS,IAEvBvD,EAAOtiD,KAAK0xB,MAAM73B,GAAGksD,SAASzD,KAC9B3+C,EAAI3D,KAAK0xB,MAAM73B,GAAGksD,SAASpiD,EAEvB2+C,EAAKM,cAAgBj/C,IACvBmjD,GAAe,EACf9mD,KAAK0xB,MAAM73B,GAAGgsD,QAAS,IAIvB7lD,KAAK0xB,MAAM73B,GAAGgsD,SAChB7lD,KAAK0xB,MAAM73B,GAAGksD,SAAS/C,OAAOZ,WAAW2E,YAAY/mD,KAAK0xB,MAAM73B,GAAGksD,SAAS/C,QAC5EhjD,KAAK0xB,MAAM73B,GAAGisD,SAAS9C,OAAOZ,WAAW2E,YAAY/mD,KAAK0xB,MAAM73B,GAAGisD,SAAS9C,UAK9D,IAAhB8D,GAAqBlvC,KAAKD,MAAQ3X,KAAK+1B,SAxGxB,IAyGjB/kB,WAAWhR,KAAKukD,uBAAwB,IAExCvzC,WAAWhR,KAAKqkD,kBAAmB,GAEvC,EAmWEC,YA9BF,WACEtkD,KAAKyuB,UAAW,CAClB,GA+BA,OADAy1B,EAAK5pD,UAAY8qD,EACVlB,CACT,CArdkB,GAudlB,SAAS8C,YAAYxhC,GACnBxlB,KAAKwlB,cAAgBA,CACvB,CAUA,SAASyhC,YAAYzhC,GACnB,OAAO,IAAIwhC,YAAYxhC,EACzB,CAEA,SAAS0hC,oBAAqB,CAZ9BF,YAAY1sD,UAAU6rC,QAAU,SAAUtjB,GACxC,OAAI7iB,KAAKwlB,cAAc2hC,OAASnnD,KAAKwlB,cAAc2hC,MAAMtkC,EAAKujB,KACrDzrC,OAAO2J,OAAOue,EAAM7iB,KAAKwlB,cAAc2hC,MAAMtkC,EAAKujB,KAAKv2B,GAGzDgT,CACT,EAQAqkC,kBAAkB5sD,UAAY,CAC5B8sD,eAAgB,WAEdpnD,KAAKqnD,WAAY,EAEjBrnD,KAAKsnD,QAAS,EAEdtnD,KAAKunD,eAAgB,EAErBvnD,KAAKwnD,qBAAuB,EAC9B,EACAC,uBAAwB,SAAgC9xC,IACA,IAAlD3V,KAAKwnD,qBAAqBngC,QAAQ1R,IACpC3V,KAAKwnD,qBAAqBhpD,KAAKmX,EAEnC,EACA+xC,0BAA2B,SAAmC/xC,IACN,IAAlD3V,KAAKwnD,qBAAqBngC,QAAQ1R,IACpC3V,KAAKwnD,qBAAqBt0C,OAAOlT,KAAKwnD,qBAAqBngC,QAAQ1R,GAAY,EAEnF,EACAgyC,uBAAwB,SAAgCC,GACtD5nD,KAAK6nD,iBAAiBD,EACxB,EACAE,kBAAmB,WACb9nD,KAAK+nD,eAAeC,MAAMx4C,EAAEkR,GAAK,GAC9B1gB,KAAKunD,eAAiBvnD,KAAKywB,WAAWw3B,aAAaC,oBACtDloD,KAAKunD,eAAgB,EACrBvnD,KAAKrB,QAEEqB,KAAKunD,gBACdvnD,KAAKunD,eAAgB,EACrBvnD,KAAKy1B,OAET,EAUAoyB,iBAAkB,SAA0BD,GACtC5nD,KAAK6iB,KAAKgD,GAAK7lB,KAAK6iB,KAAKkD,IAAM6hC,GAAO5nD,KAAK6iB,KAAKiD,GAAK9lB,KAAK6iB,KAAKkD,GAAK6hC,GAC/C,IAAnB5nD,KAAKqnD,YACPrnD,KAAKywB,WAAWuU,MAAO,EACvBhlC,KAAKglC,MAAO,EACZhlC,KAAKqnD,WAAY,EACjBrnD,KAAKy1B,SAEqB,IAAnBz1B,KAAKqnD,YACdrnD,KAAKywB,WAAWuU,MAAO,EACvBhlC,KAAKqnD,WAAY,EACjBrnD,KAAKrB,OAET,EACAwpD,iBAAkB,WAChB,IAAItuD,EACA6gB,EAAM1a,KAAKwnD,qBAAqB1tD,OAEpC,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKwnD,qBAAqB3tD,GAAGw5B,YAAYrzB,KAAKqlC,cAKlD,EACA+iB,iBAAkB,WAChB,MAAO,CACLv3C,IAAK,EACLiO,KAAM,EACNuK,MAAO,IACPtY,OAAQ,IAEZ,EACAs3C,aAAc,WACZ,OAAqB,IAAjBroD,KAAK6iB,KAAKsB,GACL,CACLxgB,EAAG3D,KAAK6iB,KAAKylC,SAASj/B,MACtB1Z,EAAG3P,KAAK6iB,KAAKylC,SAASv3C,QAInB,CACLpN,EAAG3D,KAAK6iB,KAAKwG,MACb1Z,EAAG3P,KAAK6iB,KAAK9R,OAEjB,GAGF,IAAIw3C,aAAe,WACjB,IAAIC,EAAiB,CACnB,EAAG,cACH,EAAG,WACH,EAAG,SACH,EAAG,UACH,EAAG,SACH,EAAG,UACH,EAAG,cACH,EAAG,aACH,EAAG,aACH,EAAG,aACH,GAAI,aACJ,GAAI,YACJ,GAAI,MACJ,GAAI,aACJ,GAAI,QACJ,GAAI,cAEN,OAAO,SAAUxgD,GACf,OAAOwgD,EAAexgD,IAAS,EACjC,CACF,CAtBmB,GAwBnB,SAASygD,aAAa5lC,EAAM2T,EAAMnG,GAChCrwB,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnC,EAAG,EAAG,EAAG2P,EACvD,CAEA,SAASq4B,YAAY7lC,EAAM2T,EAAMnG,GAC/BrwB,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnC,EAAG,EAAG,EAAG2P,EACvD,CAEA,SAASs4B,YAAY9lC,EAAM2T,EAAMnG,GAC/BrwB,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnC,EAAG,EAAG,EAAG2P,EACvD,CAEA,SAASu4B,YAAY/lC,EAAM2T,EAAMnG,GAC/BrwB,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnC,EAAG,EAAG,EAAG2P,EACvD,CAEA,SAASw4B,iBAAiBhmC,EAAM2T,EAAMnG,GACpCrwB,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnC,EAAG,EAAG,EAAG2P,EACvD,CAEA,SAASy4B,gBAAgBjmC,EAAM2T,EAAMnG,GACnCrwB,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnC,EAAG,EAAG,EAAG2P,EACvD,CAEA,SAAS04B,eAAelmC,EAAM2T,EAAMnG,GAClCrwB,KAAK6P,EAAIq2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKnC,EAAG,EAAG,EAAG2P,EACvD,CAEA,SAAS24B,gBACPhpD,KAAK6P,EAAI,CAAC,CACZ,CAEA,SAASo5C,eAAepmC,EAAMjE,GAC5B,IAEI/kB,EAFAqvD,EAAUrmC,EAAKsmC,IAAM,GACzBnpD,KAAKopD,eAAiB,GAEtB,IACIC,EADA3uC,EAAMwuC,EAAQpvD,OAGlB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBwvD,EAAa,IAAIC,YAAYJ,EAAQrvD,GAAI+kB,GACzC5e,KAAKopD,eAAe5qD,KAAK6qD,EAE7B,CAEA,SAASC,YAAYzmC,EAAMjE,GACzB5e,KAAK40B,KAAK/R,EAAMjE,EAClB,CA+DA,SAAS2qC,cAAe,CAkFxB,SAASC,eAAgB,CAiDzB,SAASC,eAAe5mC,EAAM4N,EAAYhM,GACxCzkB,KAAK+/B,YACL//B,KAAKonD,iBACLpnD,KAAKiqB,UAAYwG,EAAW+E,aAAa3S,EAAKwB,OAC9CrkB,KAAK+qB,YAAc0F,EAAWi5B,YAAYh+B,SAAS1rB,KAAKiqB,WACxDjqB,KAAK2pD,aAAa9mC,EAAM4N,EAAYhM,EACtC,CA6BA,SAASmlC,aAAa/mC,EAAM4N,EAAYhM,GACtCzkB,KAAK+/B,YACL//B,KAAKonD,iBACLpnD,KAAKiqB,UAAYwG,EAAW+E,aAAa3S,EAAKwB,OAC9CrkB,KAAK2pD,aAAa9mC,EAAM4N,EAAYhM,GACpCzkB,KAAK6pD,YAAa,EAClB7pD,KAAK8pD,UAAW,EAChB,IAAIjuC,EAAY7b,KAAKywB,WAAWzG,cAAchqB,KAAKiqB,WACnDjqB,KAAKub,MAAQvb,KAAKywB,WAAWZ,gBAAgBjU,YAAYC,GACzD7b,KAAK+pD,aAAe,EACpB/pD,KAAKywB,WAAWZ,gBAAgBvU,SAAStb,MACzCA,KAAKgqD,kBAAoB,EACzBhqD,KAAKob,QAAU,EACfpb,KAAKiqD,gBAAkB,KACvBjqD,KAAKqtB,GAAKxK,EAAKwK,GAAK6Y,gBAAgBC,QAAQnmC,KAAM6iB,EAAKwK,GAAI,EAAGoD,EAAW9B,UAAW3uB,MAAQ,CAC1FkqD,cAAc,GAEhBlqD,KAAKmqD,GAAKjkB,gBAAgBC,QAAQnmC,KAAM6iB,EAAKunC,IAAMvnC,EAAKunC,GAAGD,GAAKtnC,EAAKunC,GAAGD,GAAK,CAC3ExlD,EAAG,CAAC,MACH,EAAG,IAAM3E,KACd,CA0EA,SAASqqD,eAAgB,CAjUzB/vC,gBAAgB,CAACgsB,0BAA2BgjB,aAC5CA,YAAYhvD,UAAUurC,SAAWyjB,YAAYhvD,UAAUmsC,yBAEvD6iB,YAAYhvD,UAAUs6B,KAAO,SAAU/R,EAAMjE,GAI3C,IAAI/kB,EAHJmG,KAAK6iB,KAAOA,EACZ7iB,KAAKopD,eAAiB,GACtBppD,KAAK0mC,6BAA6B9nB,GAElC,IACI0rC,EADA5vC,EAAM1a,KAAK6iB,KAAKsmC,GAAGrvD,OAEnBovD,EAAUlpD,KAAK6iB,KAAKsmC,GAExB,IAAKtvD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAG3B,OAFAywD,EAAM,KAEEpB,EAAQrvD,GAAGsqB,IACjB,KAAK,EACHmmC,EAAM,IAAI7B,aAAaS,EAAQrvD,GAAI+kB,EAAS5e,MAC5C,MAEF,KAAK,EACHsqD,EAAM,IAAI5B,YAAYQ,EAAQrvD,GAAI+kB,EAAS5e,MAC3C,MAEF,KAAK,EACHsqD,EAAM,IAAI3B,YAAYO,EAAQrvD,GAAI+kB,EAAS5e,MAC3C,MAEF,KAAK,EACHsqD,EAAM,IAAI1B,YAAYM,EAAQrvD,GAAI+kB,EAAS5e,MAC3C,MAEF,KAAK,EACL,KAAK,EACHsqD,EAAM,IAAIvB,eAAeG,EAAQrvD,GAAI+kB,EAAS5e,MAC9C,MAEF,KAAK,GACHsqD,EAAM,IAAIzB,iBAAiBK,EAAQrvD,GAAI+kB,EAAS5e,MAChD,MAEF,KAAK,GACHsqD,EAAM,IAAIxB,gBAAgBI,EAAQrvD,GAAI+kB,EAAS5e,MAC/C,MAEF,KAAK,EACHsqD,EAAM,IAAIrB,eAAeC,EAAQrvD,GAAI+kB,EAAS5e,MAC9C,MAGF,QACEsqD,EAAM,IAAItB,cAAcE,EAAQrvD,GAAI+kB,EAAS5e,MAI7CsqD,GACFtqD,KAAKopD,eAAe5qD,KAAK8rD,EAE7B,CACF,EAIAf,YAAYjvD,UAAY,CACtBiwD,WAAY,WACV,IAAKvqD,KAAK6iB,KAAKiB,QACb,OAAO,EAMT,IAHA,IAAIjqB,EAAI,EACJ6gB,EAAM1a,KAAK6iB,KAAKmB,gBAAgBlqB,OAE7BD,EAAI6gB,GAAK,CACd,GAA0C,MAAtC1a,KAAK6iB,KAAKmB,gBAAgBnqB,GAAGmO,OAAoD,IAApChI,KAAK6iB,KAAKmB,gBAAgBnqB,GAAG6sB,GAC5E,OAAO,EAGT7sB,GAAK,CACP,CAEA,OAAO,CACT,EACAi4B,gBAAiB,WACf,IAAIzU,EAAwBuE,0BAE5B,GAAKvE,EAAL,CAIA,IAAImtC,EAA2BntC,EAAsB,SACjDotC,EAA6BptC,EAAsB,WACnDqtC,EAA2BrtC,EAAsB,SACjDstC,EAA0BttC,EAAsB,QAChDutC,EAA0BvtC,EAAsB,QACpDrd,KAAK6qD,eAAiBL,EAAyBxqD,MAE3CA,KAAK6iB,KAAKiB,SAAW9jB,KAAK8qD,aAC5B9qD,KAAK6qD,eAAeE,sBAAsB/qD,KAAK8qD,aAGjD,IAAIE,EAAmBP,EAA2BQ,uBAAuBjrD,KAAMA,KAAK6qD,gBACpF7qD,KAAK6qD,eAAeK,yBAAyBF,GAExB,IAAjBhrD,KAAK6iB,KAAKsB,IAAYnkB,KAAK6iB,KAAKmL,GAClChuB,KAAKkuB,cAAgB08B,EAAwB5qD,MACnB,IAAjBA,KAAK6iB,KAAKsB,IACnBnkB,KAAK6qD,eAAeM,eAAiBT,EAAyB1qD,KAAKorD,WAAYprD,KAAKqrD,UAAWrrD,KAAK6qD,gBACpG7qD,KAAK6qD,eAAeS,QAAUtrD,KAAK6qD,eAAeM,gBACxB,IAAjBnrD,KAAK6iB,KAAKsB,KACnBnkB,KAAK6qD,eAAeU,cAAgBZ,EAAwB3qD,MAC5DA,KAAK6qD,eAAelH,KAAO3jD,KAAK6qD,eAAeU,cAvBjD,CAyBF,EACAC,aAAc,WACZ,IAAIC,EAAiBlD,aAAavoD,KAAK6iB,KAAK6oC,KACjC1rD,KAAK2rD,aAAe3rD,KAAK4rD,cAC/BnmD,MAAM,kBAAoBgmD,CACjC,EACA9B,aAAc,SAAsB9mC,EAAM4N,EAAYhM,GACpDzkB,KAAKywB,WAAaA,EAClBzwB,KAAKykB,KAAOA,EACZzkB,KAAK6iB,KAAOA,EACZ7iB,KAAK6rD,QAAUtrC,kBAEVvgB,KAAK6iB,KAAKmD,KACbhmB,KAAK6iB,KAAKmD,GAAK,GAIjBhmB,KAAK8rD,eAAiB,IAAI7C,eAAejpD,KAAK6iB,KAAM7iB,KAAMA,KAAKumC,kBACjE,EACAwlB,QAAS,WACP,OAAO/rD,KAAKjB,IACd,EACAqpD,iBAAkB,WAA6B,GAWjDoB,aAAalvD,UAAY,CAMvBylC,UAAW,WAET//B,KAAKqlC,eAAgB,EAErBrlC,KAAKumC,kBAAoB,GAEzBvmC,KAAKglC,MAAO,CACd,EAYAgnB,kBAAmB,SAA2BpE,EAAKqE,GACjD,IAAIpyD,EACA6gB,EAAM1a,KAAKumC,kBAAkBzsC,OAEjC,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GACpBoyD,GAAajsD,KAAKksD,WAAoD,cAAvClsD,KAAKumC,kBAAkB1sC,GAAGymC,YAC3DtgC,KAAKumC,kBAAkB1sC,GAAGgsC,WAEtB7lC,KAAKumC,kBAAkB1sC,GAAGmrC,OAC5BhlC,KAAKywB,WAAWuU,MAAO,EACvBhlC,KAAKglC,MAAO,GAIpB,EACAU,mBAAoB,SAA4B7qB,IACA,IAA1C7a,KAAKumC,kBAAkBlf,QAAQxM,IACjC7a,KAAKumC,kBAAkB/nC,KAAKqc,EAEhC,GAWF4uC,eAAenvD,UAAUyzB,aAAe,WAAa,EAErDzT,gBAAgB,CAAC4sC,kBAAmBqC,YAAaC,cAAeC,gBAEhEA,eAAenvD,UAAU6xD,eAAiB,WACxC,OAAO,IACT,EAEA1C,eAAenvD,UAAU+4B,YAAc,WAAa,EAEpDo2B,eAAenvD,UAAU2Y,QAAU,WAAa,EAEhDw2C,eAAenvD,UAAUw3B,gBAAkB,WACzC,IAAIzU,EAAwBuE,0BAE5B,GAAKvE,EAAL,CAIA,IAAI+uC,EAAmB/uC,EAAsB,WAC7Crd,KAAK6qD,eAAiBuB,EAAiBpsD,KAHvC,CAIF,EAEAypD,eAAenvD,UAAU+xD,eAAiB,WACxC,OAAOrsD,KAAK+qB,WACd,EAwBA6+B,aAAatvD,UAAUyzB,aAAe,SAAU65B,GAI9C,GAHA5nD,KAAK2nD,uBAAuBC,GAAK,GACjC5nD,KAAKgsD,kBAAkBpE,GAAK,GAEvB5nD,KAAKqtB,GAAG68B,aAIXlqD,KAAK+pD,aAAenC,EAAM5nD,KAAK6iB,KAAKmD,OAJX,CACzB,IAAIsmC,EAAetsD,KAAKqtB,GAAG3M,EAC3B1gB,KAAK+pD,aAAeuC,CACtB,CAIAtsD,KAAKob,QAAUpb,KAAKmqD,GAAGzpC,EAAE,GACzB,IAAI6rC,EAAcvsD,KAAKob,QAAUpb,KAAKgqD,kBAElChqD,KAAKiqD,kBAAoBsC,IAC3BvsD,KAAKiqD,gBAAkBsC,EACvBvsD,KAAKub,MAAMmB,OAAO6vC,GAEtB,EAEAjyC,gBAAgB,CAAC4sC,kBAAmBqC,YAAaC,cAAeI,cAEhEA,aAAatvD,UAAU+4B,YAAc,WAC/BrzB,KAAKqnD,WAAarnD,KAAK8pD,WACpB9pD,KAAK6pD,aAIE7pD,KAAKub,MAAMW,WAAa1b,KAAKiP,IAAIzP,KAAK+pD,aAAe/pD,KAAKywB,WAAW9B,UAAY3uB,KAAKub,MAAMU,QAAU,KAChHjc,KAAKub,MAAMU,KAAKjc,KAAK+pD,aAAe/pD,KAAKywB,WAAW9B,YAJpD3uB,KAAKub,MAAMS,OACXhc,KAAKub,MAAMU,KAAKjc,KAAK+pD,aAAe/pD,KAAKywB,WAAW9B,WACpD3uB,KAAK6pD,YAAa,GAKxB,EAEAD,aAAatvD,UAAUm7B,KAAO,WAAa,EAG3Cm0B,aAAatvD,UAAUqE,KAAO,WAC5BqB,KAAKub,MAAMC,QACXxb,KAAK6pD,YAAa,CACpB,EAEAD,aAAatvD,UAAUkhB,MAAQ,WAC7Bxb,KAAKub,MAAMC,QACXxb,KAAK6pD,YAAa,EAClB7pD,KAAK8pD,UAAW,CAClB,EAEAF,aAAatvD,UAAUmhB,OAAS,WAC9Bzb,KAAK8pD,UAAW,CAClB,EAEAF,aAAatvD,UAAUohB,QAAU,SAAUC,GACzC3b,KAAKub,MAAMY,KAAKR,EAClB,EAEAiuC,aAAatvD,UAAUoiB,OAAS,SAAU8vC,GACxCxsD,KAAKgqD,kBAAoBwC,EACzBxsD,KAAKiqD,gBAAkBuC,EAAcxsD,KAAKob,QAC1Cpb,KAAKub,MAAMmB,OAAO1c,KAAKiqD,gBACzB,EAEAL,aAAatvD,UAAU6xD,eAAiB,WACtC,OAAO,IACT,EAEAvC,aAAatvD,UAAU2Y,QAAU,WAAa,EAE9C22C,aAAatvD,UAAU8tD,iBAAmB,WAAa,EAEvDwB,aAAatvD,UAAUw3B,gBAAkB,WAAa,EAItDu4B,aAAa/vD,UAAUmyD,YAAc,SAAU7E,GAC7C,IAAI/tD,EAEAgpB,EADAnI,EAAM1a,KAAKwjB,OAAO1pB,OAItB,IAFAkG,KAAKujB,gBAAiB,EAEjB1pB,EAAI6gB,EAAM,EAAG7gB,GAAK,EAAGA,GAAK,EACxBmG,KAAKu+C,SAAS1kD,KACjBgpB,EAAO7iB,KAAKwjB,OAAO3pB,IAEVgsB,GAAKhD,EAAKkD,IAAM6hC,EAAM5nD,KAAKwjB,OAAO3pB,GAAGksB,IAAMlD,EAAKiD,GAAKjD,EAAKkD,GAAK6hC,EAAM5nD,KAAKwjB,OAAO3pB,GAAGksB,IAC3F/lB,KAAK0sD,UAAU7yD,GAInBmG,KAAKujB,iBAAiBvjB,KAAKu+C,SAAS1kD,IAAKmG,KAAKujB,eAGhDvjB,KAAK2sD,sBACP,EAEAtC,aAAa/vD,UAAUsyD,WAAa,SAAUC,GAC5C,OAAQA,EAAM1oC,IACZ,KAAK,EACH,OAAOnkB,KAAK8sD,YAAYD,GAE1B,KAAK,EACH,OAAO7sD,KAAK+sD,WAAWF,GAEzB,KAAK,EACH,OAAO7sD,KAAKgtD,YAAYH,GAE1B,KAAK,EAkBL,QACE,OAAO7sD,KAAKitD,WAAWJ,GAhBzB,KAAK,EACH,OAAO7sD,KAAKktD,YAAYL,GAE1B,KAAK,EACH,OAAO7sD,KAAKmtD,WAAWN,GAEzB,KAAK,EACH,OAAO7sD,KAAK4b,YAAYixC,GAE1B,KAAK,GACH,OAAO7sD,KAAKotD,aAAaP,GAE3B,KAAK,GACH,OAAO7sD,KAAKqtD,cAAcR,GAKhC,EAEAxC,aAAa/vD,UAAU8yD,aAAe,WACpC,MAAM,IAAI35C,MAAM,mDAClB,EAEA42C,aAAa/vD,UAAUshB,YAAc,SAAUiH,GAC7C,OAAO,IAAI+mC,aAAa/mC,EAAM7iB,KAAKywB,WAAYzwB,KACjD,EAEAqqD,aAAa/vD,UAAU+yD,cAAgB,SAAUxqC,GAC/C,OAAO,IAAI4mC,eAAe5mC,EAAM7iB,KAAKywB,WAAYzwB,KACnD,EAEAqqD,aAAa/vD,UAAUgzD,cAAgB,WACrC,IAAIzzD,EACA6gB,EAAM1a,KAAKwjB,OAAO1pB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAK0sD,UAAU7yD,GAGjBmG,KAAK2sD,sBACP,EAEAtC,aAAa/vD,UAAUk3B,cAAgB,SAAUC,GAE/C,IAAI53B,EADJmG,KAAKujB,gBAAiB,EAEtB,IACIve,EADA0V,EAAM+W,EAAU33B,OAEhB6pB,EAAO3jB,KAAKwjB,OAAO1pB,OAEvB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAGxB,IAFAmL,EAAI,EAEGA,EAAI2e,GAAM,CACf,GAAI3jB,KAAKwjB,OAAOxe,GAAG1B,KAAOmuB,EAAU53B,GAAGyJ,GAAI,CACzCtD,KAAKwjB,OAAOxe,GAAKysB,EAAU53B,GAC3B,KACF,CAEAmL,GAAK,CACP,CAEJ,EAEAqlD,aAAa/vD,UAAUq2B,oBAAsB,SAAU48B,GACrDvtD,KAAKywB,WAAWd,iBAAmB49B,CACrC,EAEAlD,aAAa/vD,UAAUw4B,UAAY,WAC5B9yB,KAAKywB,WAAW+8B,iBACnBxtD,KAAKstD,eAET,EAEAjD,aAAa/vD,UAAUmzD,sBAAwB,SAAU7uC,EAAS8uC,EAAYC,GAM5E,IALA,IAAIpP,EAAWv+C,KAAKu+C,SAChB/6B,EAASxjB,KAAKwjB,OACd3pB,EAAI,EACJ6gB,EAAM8I,EAAO1pB,OAEVD,EAAI6gB,GACL8I,EAAO3pB,GAAGwnC,KAAOqsB,IAEdnP,EAAS1kD,KAAsB,IAAhB0kD,EAAS1kD,IAI3B8zD,EAAUnvD,KAAK+/C,EAAS1kD,IACxB0kD,EAAS1kD,GAAG+zD,mBAEatwD,IAArBkmB,EAAO3pB,GAAGmpD,OACZhjD,KAAKytD,sBAAsB7uC,EAAS4E,EAAO3pB,GAAGmpD,OAAQ2K,GAEtD/uC,EAAQivC,aAAaF,KATvB3tD,KAAK0sD,UAAU7yD,GACfmG,KAAK8tD,kBAAkBlvC,KAa3B/kB,GAAK,CAET,EAEAwwD,aAAa/vD,UAAUwzD,kBAAoB,SAAUlvC,GACnD5e,KAAK+tD,gBAAgBvvD,KAAKogB,EAC5B,EAEAyrC,aAAa/vD,UAAUm4B,wBAA0B,SAAUhN,GACzD,IAAI5rB,EACA6gB,EAAM+K,EAAO3rB,OAEjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAI4rB,EAAO5rB,GAAGm0B,GAAI,CAChB,IAAIvJ,EAAOzkB,KAAK+sD,WAAWtnC,EAAO5rB,IAClC4qB,EAAKqN,kBACL9xB,KAAKywB,WAAWd,iBAAiBhC,oBAAoBlJ,EACvD,CAEJ,EAEA4lC,aAAa/vD,UAAU+V,eAAiB,SAAUgxB,GAChD,IAAIxnC,EACA6gB,EAAM1a,KAAKu+C,SAASzkD,OAExB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAImG,KAAKu+C,SAAS1kD,GAAGgpB,KAAKwe,MAAQA,EAChC,OAAOrhC,KAAKu+C,SAAS1kD,GAIzB,OAAO,IACT,EAEAwwD,aAAa/vD,UAAUs7B,iBAAmB,SAAUhT,GAClD,IACIhE,EADAovC,EAAYprC,EAAKqP,QAGrB,GAAyB,kBAAd+7B,EACTpvC,EAAU5e,KAAKu+C,SAASyP,OACnB,CACL,IAAIn0D,EACA6gB,EAAM1a,KAAKu+C,SAASzkD,OAExB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAImG,KAAKu+C,SAAS1kD,GAAGgpB,KAAKiL,KAAOkgC,EAAW,CAC1CpvC,EAAU5e,KAAKu+C,SAAS1kD,GACxB,KACF,CAEJ,CAEA,OAAoB,IAAhB+oB,EAAK9oB,OACA8kB,EAGFA,EAAQgX,iBAAiBhT,EAClC,EAEAynC,aAAa/vD,UAAU2zD,gBAAkB,SAAU17B,EAAU27B,GAC3DluD,KAAKywB,WAAWkB,YAAc,IAAI8vB,YAClCzhD,KAAKywB,WAAW4V,YAAc4gB,YAAY10B,GAC1CvyB,KAAKywB,WAAWkB,YAAYC,SAASW,EAAS5M,OAC9C3lB,KAAKywB,WAAWkB,YAAYE,SAASU,EAASb,MAAOw8B,GACrDluD,KAAKywB,WAAW+E,aAAex1B,KAAKmuD,cAAc34B,aAAa5K,KAAK5qB,KAAKmuD,eACzEnuD,KAAKywB,WAAWzG,cAAgBhqB,KAAKmuD,cAAcnkC,cAAcY,KAAK5qB,KAAKmuD,eAC3EnuD,KAAKywB,WAAWi5B,YAAc1pD,KAAKmuD,cAAcv+B,eACjD5vB,KAAKywB,WAAWZ,gBAAkB7vB,KAAKmuD,cAAct+B,gBACrD7vB,KAAKywB,WAAWyU,QAAU,EAC1BllC,KAAKywB,WAAW9B,UAAY4D,EAASC,GACrCxyB,KAAKywB,WAAW3C,GAAKyE,EAASzE,GAC9B9tB,KAAKywB,WAAW29B,SAAW,CACzBzqD,EAAG4uB,EAAS5uB,EACZgM,EAAG4iB,EAAS5iB,EAEhB,EAEA,IAAI0+C,YAAc,CAChBC,iBAAkB,mBAGpB,SAASC,mBAAoB,CA6J7B,SAASC,YAAY3rC,EAAMjE,EAAS6R,GAClCzwB,KAAK6iB,KAAOA,EACZ7iB,KAAK4e,QAAUA,EACf5e,KAAKywB,WAAaA,EAClBzwB,KAAK88B,WAAa,GAClB98B,KAAKgkB,gBAAkBhkB,KAAK6iB,KAAKmB,iBAAmB,GACpDhkB,KAAKyuD,YAAc,KACnB,IACI50D,EAIA+oB,EALA8N,EAAO1wB,KAAKywB,WAAWC,KAEvBhW,EAAM1a,KAAKgkB,gBAAkBhkB,KAAKgkB,gBAAgBlqB,OAAS,EAC/DkG,KAAK0uD,SAAWzxC,iBAAiBvC,GACjC1a,KAAK2uD,UAAY,GAEjB,IAGI3pD,EACA2e,EAEAirC,EACAC,EACAC,EACAj2B,EATAk2B,EAAa/uD,KAAKgkB,gBAClBrV,EAAQ,EACRqgD,EAAe,GAGfnD,EAAUtrC,kBAKV0uC,EAAW,WACXC,EAAU,YAEd,IAAKr1D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAkBxB,IAjB2B,MAAvBk1D,EAAWl1D,GAAGmO,MAAuC,MAAvB+mD,EAAWl1D,GAAGmO,MAAgB+mD,EAAWl1D,GAAGikD,KAA6B,MAAtBiR,EAAWl1D,GAAG2V,EAAE7K,GAAaoqD,EAAWl1D,GAAG2V,EAAEqpB,KAChIo2B,EAAW,OACXC,EAAU,QAGgB,MAAvBH,EAAWl1D,GAAGmO,MAAuC,MAAvB+mD,EAAWl1D,GAAGmO,MAA2B,IAAV2G,EAOhEigD,EAAO,OANPA,EAAO3sC,SAAS,SACXkV,aAAa,OAAQ,WAC1By3B,EAAKz3B,aAAa,QAASn3B,KAAK4e,QAAQ6F,KAAK5B,KAAKlf,GAAK,GACvDirD,EAAKz3B,aAAa,SAAUn3B,KAAK4e,QAAQ6F,KAAK5B,KAAKlT,GAAK,GACxDq/C,EAAaxwD,KAAKowD,IAKpBhsC,EAAOX,SAAS,QAEW,MAAvB8sC,EAAWl1D,GAAGmO,KAEhBhI,KAAK0uD,SAAS70D,GAAK,CACjBisB,GAAIogB,gBAAgBC,QAAQnmC,KAAK4e,QAASmwC,EAAWl1D,GAAG2V,EAAG,EAAG,IAAMxP,KAAK4e,SACzE/D,KAAM4tB,qBAAqB0mB,aAAanvD,KAAK4e,QAASmwC,EAAWl1D,GAAI,GACrE28B,KAAM5T,EACNwsC,SAAU,IAEZ1+B,EAAKxE,YAAYtJ,OACZ,CAIL,IAAIysC,EAgCJ,GAnCA1gD,GAAS,EACTiU,EAAKuU,aAAa,OAA+B,MAAvB43B,EAAWl1D,GAAGmO,KAAe,UAAY,WACnE4a,EAAKuU,aAAa,YAAa,WAGL,IAAtB43B,EAAWl1D,GAAGg/B,EAAEl0B,GAClBsqD,EAAW,OACXC,EAAU,OACVr2B,EAAIqN,gBAAgBC,QAAQnmC,KAAK4e,QAASmwC,EAAWl1D,GAAGg/B,EAAG,EAAG,KAAM74B,KAAK4e,SACzEywC,EAAW9uC,mBACXsuC,EAAW5sC,SAAS,WACXkV,aAAa,KAAMk4B,IAC5BP,EAAU7sC,SAAS,iBACXkV,aAAa,WAAY,SACjC23B,EAAQ33B,aAAa,KAAM,iBAC3B23B,EAAQ33B,aAAa,SAAU,KAC/B03B,EAAS3iC,YAAY4iC,GACrBp+B,EAAKxE,YAAY2iC,GACjBjsC,EAAKuU,aAAa,SAAiC,MAAvB43B,EAAWl1D,GAAGmO,KAAe,UAAY,aAErE8mD,EAAU,KACVj2B,EAAI,MAIN74B,KAAK88B,WAAWjjC,GAAK,CACnB28B,KAAM5T,EACNiW,EAAGA,EACHy2B,MAAOR,EACPM,SAAU,GACVG,aAAc,GACdC,SAAUH,EACVI,WAAY,GAGa,MAAvBV,EAAWl1D,GAAGmO,KAAc,CAC9B2b,EAAOqrC,EAAal1D,OACpB,IAAI6mB,EAAIsB,SAAS,KAEjB,IAAKjd,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzB2b,EAAEuL,YAAY8iC,EAAahqD,IAG7B,IAAI0qD,EAAOztC,SAAS,QACpBytC,EAAKv4B,aAAa,YAAa,SAC/Bu4B,EAAKv4B,aAAa,KAAM00B,EAAU,IAAMl9C,GACxC+gD,EAAKxjC,YAAYtJ,GACjB8N,EAAKxE,YAAYwjC,GACjB/uC,EAAEwW,aAAa,OAAQ,OAAS/c,kBAAoB,IAAMyxC,EAAU,IAAMl9C,EAAQ,KAClFqgD,EAAal1D,OAAS,EACtBk1D,EAAaxwD,KAAKmiB,EACpB,MACEquC,EAAaxwD,KAAKokB,GAGhBmsC,EAAWl1D,GAAGikD,MAAQ99C,KAAK2uD,YAC7B3uD,KAAK2uD,UAAY3uD,KAAK2vD,wBAIxB3vD,KAAK0uD,SAAS70D,GAAK,CACjB28B,KAAM5T,EACNwsC,SAAU,GACVtpC,GAAIogB,gBAAgBC,QAAQnmC,KAAK4e,QAASmwC,EAAWl1D,GAAG2V,EAAG,EAAG,IAAMxP,KAAK4e,SACzE/D,KAAM4tB,qBAAqB0mB,aAAanvD,KAAK4e,QAASmwC,EAAWl1D,GAAI,GACrE+1D,QAAShB,GAGN5uD,KAAK0uD,SAAS70D,GAAGghB,KAAKlW,GACzB3E,KAAK6vD,SAASd,EAAWl1D,GAAImG,KAAK0uD,SAAS70D,GAAGghB,KAAK6F,EAAG1gB,KAAK0uD,SAAS70D,GAExE,CAMF,IAHAmG,KAAKyuD,YAAcxsC,SAASgtC,GAC5Bv0C,EAAMs0C,EAAal1D,OAEdD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKyuD,YAAYviC,YAAY8iC,EAAan1D,IAGxC8U,EAAQ,IACV3O,KAAKyuD,YAAYt3B,aAAa,KAAM00B,GACpC7rD,KAAK4e,QAAQkxC,cAAc34B,aAAa+3B,EAAS,OAAS90C,kBAAoB,IAAMyxC,EAAU,KAC9Fn7B,EAAKxE,YAAYlsB,KAAKyuD,cAGpBzuD,KAAK0uD,SAAS50D,QAChBkG,KAAK4e,QAAQ6oC,uBAAuBznD,KAExC,CA3SAuuD,iBAAiBj0D,UAAY,CAC3By1D,cAAe,WACb,IAAI5Z,EAAM,IAAIpK,OACd/rC,KAAK+nD,eAAiB,CACpBC,MAAOhoD,KAAK6iB,KAAKgC,GAAK0wB,yBAAyBoB,qBAAqB32C,KAAMA,KAAK6iB,KAAKgC,GAAI7kB,MAAQ,CAC9FwP,EAAG,GAELwgD,SAAS,EACTC,cAAc,EACdC,QAAQ,EACR/Z,IAAKA,EACLga,SAAUha,EACVia,aAAc,GAGZpwD,KAAK6iB,KAAKwtC,KACZrwD,KAAK+nD,eAAeC,MAAM1R,cAAe,GAIvCt2C,KAAK6iB,KAAKsB,EAEhB,EACAmsC,gBAAiB,WAIf,GAHAtwD,KAAK+nD,eAAemI,OAASlwD,KAAK+nD,eAAeC,MAAMx4C,EAAEw1B,MAAQhlC,KAAKqlC,cACtErlC,KAAK+nD,eAAeiI,QAAUhwD,KAAK+nD,eAAeC,MAAMhjB,MAAQhlC,KAAKqlC,cAEjErlC,KAAK2tD,UAAW,CAClB,IAAIxX,EACAoa,EAAWvwD,KAAK+nD,eAAe5R,IAC/Bt8C,EAAI,EACJ6gB,EAAM1a,KAAK2tD,UAAU7zD,OAEzB,IAAKkG,KAAK+nD,eAAeiI,QACvB,KAAOn2D,EAAI6gB,GAAK,CACd,GAAI1a,KAAK2tD,UAAU9zD,GAAGkuD,eAAeC,MAAMhjB,KAAM,CAC/ChlC,KAAK+nD,eAAeiI,SAAU,EAC9B,KACF,CAEAn2D,GAAK,CACP,CAGF,GAAImG,KAAK+nD,eAAeiI,QAItB,IAHA7Z,EAAMn2C,KAAK+nD,eAAeC,MAAMtnC,EAAE9mB,MAClC22D,EAAS5gB,eAAewG,GAEnBt8C,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB02D,EAASlhB,SAASrvC,KAAK2tD,UAAU9zD,GAAGkuD,eAAeC,MAAMtnC,EAG/D,CAEI1gB,KAAK+nD,eAAeiI,UACtBhwD,KAAK+nD,eAAekI,aAAejwD,KAAK+nD,eAAeiI,SAGrDhwD,KAAK+nD,eAAemI,SACtBlwD,KAAK+nD,eAAeqI,aAAepwD,KAAK+nD,eAAeC,MAAMx4C,EAAEkR,EAEnE,EACA8vC,qBAAsB,WACpB,GAAIxwD,KAAKywD,gBAAiB,CACxB,IAAI52D,EAAI,EACJ6gB,EAAM1a,KAAKywD,gBAAgB32D,OAG/B,GAFAkG,KAAK+nD,eAAekI,aAAejwD,KAAK+nD,eAAeiI,SAElDhwD,KAAK+nD,eAAekI,eAAiBjwD,KAAK+nD,eAAemI,OAC5D,KAAOr2D,EAAI6gB,GACL1a,KAAKywD,gBAAgB52D,GAAGmrC,OAC1BhlC,KAAK+nD,eAAekI,cAAe,GAGjCjwD,KAAKywD,gBAAgB52D,GAAGq2D,SAAWlwD,KAAK+nD,eAAemI,SACzDlwD,KAAK+nD,eAAeqI,aAAepwD,KAAK+nD,eAAeC,MAAMx4C,EAAEkR,EAC/D1gB,KAAK+nD,eAAemI,QAAS,GAG/Br2D,GAAK,EAIT,GAAImG,KAAK+nD,eAAekI,aAAc,CACpC,IAAIE,EAAWnwD,KAAK+nD,eAAeoI,SAGnC,IAFAnwD,KAAKywD,gBAAgB,GAAGnhB,OAAOtH,MAAMmoB,GAEhCt2D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAC3B,IAAI62D,EAAO1wD,KAAKywD,gBAAgB52D,GAAGy1C,OACnC6gB,EAAS9gB,SAASqhB,EACpB,CAEAP,EAAS9gB,SAASrvC,KAAK+nD,eAAe5R,IACxC,CAEA,GAAIn2C,KAAK+nD,eAAemI,OAAQ,CAC9B,IAAIS,EAAU3wD,KAAK+nD,eAAeqI,aAElC,IAAKv2D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB82D,GAA6C,IAAlC3wD,KAAKywD,gBAAgB52D,GAAG+2D,QAGrC5wD,KAAK+nD,eAAeqI,aAAeO,CACrC,CACF,CACF,EACAE,uBAAwB,WACtB,GAAI7wD,KAAK8wD,yBAA0B,CACjC,IAAIC,EAAmB/wD,KAAK8wD,yBAAyBE,WAAW3C,YAAYC,kBAE5E,GAAIyC,EAAiBj3D,OAAQ,CAC3BkG,KAAKywD,gBAAkB,GACvBzwD,KAAK+nD,eAAeoI,SAAW,IAAIpkB,OACnC,IAAIlyC,EAAI,EACJ6gB,EAAMq2C,EAAiBj3D,OAE3B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKywD,gBAAgBjyD,KAAKuyD,EAAiBl3D,GAE/C,CACF,CACF,EACAo3D,cAAe,SAAuBhtC,GACpC,IAAIitC,EAAa,GACjBA,EAAW1yD,KAAKwB,KAAK+nD,gBAIrB,IAHA,IAeIluD,EAfAogB,GAAO,EACPwK,EAAOzkB,KAAKykB,KAETxK,GACDwK,EAAKsjC,gBACHtjC,EAAK5B,KAAKiB,SACZotC,EAAWh+C,OAAO,EAAG,EAAGuR,EAAKsjC,gBAG/BtjC,EAAOA,EAAKA,MAEZxK,GAAO,EAKX,IACIk3C,EADAz2C,EAAMw2C,EAAWp3D,OAGrB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBs3D,EAAQD,EAAWr3D,GAAGs8C,IAAI9F,kBAAkB,EAAG,EAAG,GAElDpsB,EAAK,CAACA,EAAG,GAAKktC,EAAM,GAAIltC,EAAG,GAAKktC,EAAM,GAAI,GAG5C,OAAOltC,CACT,EACAmtC,QAAS,IAAIrlB,QAqJfyiB,YAAYl0D,UAAU+2D,gBAAkB,SAAUhpD,GAChD,OAAOrI,KAAK0uD,SAASrmD,GAAKwS,IAC5B,EAEA2zC,YAAYl0D,UAAU+4B,YAAc,SAAUi+B,GAC5C,IACIz3D,EADA02D,EAAWvwD,KAAK4e,QAAQmpC,eAAe5R,IAEvCz7B,EAAM1a,KAAKgkB,gBAAgBlqB,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EASxB,IARImG,KAAK0uD,SAAS70D,GAAGghB,KAAKmqB,MAAQssB,IAChCtxD,KAAK6vD,SAAS7vD,KAAKgkB,gBAAgBnqB,GAAImG,KAAK0uD,SAAS70D,GAAGghB,KAAK6F,EAAG1gB,KAAK0uD,SAAS70D,KAG5EmG,KAAK0uD,SAAS70D,GAAGisB,GAAGkf,MAAQssB,IAC9BtxD,KAAK0uD,SAAS70D,GAAG28B,KAAKW,aAAa,eAAgBn3B,KAAK0uD,SAAS70D,GAAGisB,GAAGpF,GAGpC,MAAjC1gB,KAAKgkB,gBAAgBnqB,GAAGmO,OACtBhI,KAAK0uD,SAAS70D,GAAG+1D,UAAY5vD,KAAK4e,QAAQmpC,eAAeC,MAAMhjB,MAAQssB,IACzEtxD,KAAK0uD,SAAS70D,GAAG+1D,QAAQz4B,aAAa,YAAao5B,EAAStgB,mBAAmBiB,WAG7ElxC,KAAK88B,WAAWjjC,GAAGg/B,IAAM74B,KAAK88B,WAAWjjC,GAAGg/B,EAAEmM,MAAQssB,IAAe,CACvE,IAAIxC,EAAU9uD,KAAK88B,WAAWjjC,GAAGy1D,MAE7BtvD,KAAK88B,WAAWjjC,GAAGg/B,EAAEnY,EAAI,GACa,UAApC1gB,KAAK88B,WAAWjjC,GAAG01D,eACrBvvD,KAAK88B,WAAWjjC,GAAG01D,aAAe,QAClCvvD,KAAK88B,WAAWjjC,GAAG28B,KAAKW,aAAa,SAAU,OAAS/c,kBAAoB,IAAMpa,KAAK88B,WAAWjjC,GAAG21D,SAAW,MAGlHV,EAAQ33B,aAAa,UAAWn3B,KAAK88B,WAAWjjC,GAAGg/B,EAAEnY,KAEb,WAApC1gB,KAAK88B,WAAWjjC,GAAG01D,eACrBvvD,KAAK88B,WAAWjjC,GAAG01D,aAAe,SAClCvvD,KAAK88B,WAAWjjC,GAAG28B,KAAKW,aAAa,SAAU,OAGjDn3B,KAAK88B,WAAWjjC,GAAG28B,KAAKW,aAAa,eAAyC,EAAzBn3B,KAAK88B,WAAWjjC,GAAGg/B,EAAEnY,GAE9E,CAGN,EAEA8tC,YAAYl0D,UAAUi3D,eAAiB,WACrC,OAAOvxD,KAAKyuD,WACd,EAEAD,YAAYl0D,UAAUq1D,qBAAuB,WAC3C,IAAI/sC,EAAO,QAKX,OAJAA,GAAQ,KAAO5iB,KAAKywB,WAAW29B,SAASzqD,EACxCif,GAAQ,KAAO5iB,KAAKywB,WAAW29B,SAASz+C,EACxCiT,GAAQ,MAAQ5iB,KAAKywB,WAAW29B,SAASzqD,EACzCif,GAAQ,MAAQ5iB,KAAKywB,WAAW29B,SAASz+C,EAAI,GAE/C,EAEA6+C,YAAYl0D,UAAUu1D,SAAW,SAAUzpC,EAAUorC,EAAW9C,GAC9D,IACI70D,EACA6gB,EAFA+2C,EAAa,KAAOD,EAAU9wC,EAAE,GAAG,GAAK,IAAM8wC,EAAU9wC,EAAE,GAAG,GAKjE,IAFAhG,EAAM82C,EAAUh3B,QAEX3gC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAExB43D,GAAc,KAAOD,EAAUhiD,EAAE3V,EAAI,GAAG,GAAK,IAAM23D,EAAUhiD,EAAE3V,EAAI,GAAG,GAAK,IAAM23D,EAAU33D,EAAEA,GAAG,GAAK,IAAM23D,EAAU33D,EAAEA,GAAG,GAAK,IAAM23D,EAAU9wC,EAAE7mB,GAAG,GAAK,IAAM23D,EAAU9wC,EAAE7mB,GAAG,GAShL,GALI23D,EAAU/zD,GAAKid,EAAM,IACvB+2C,GAAc,KAAOD,EAAUhiD,EAAE3V,EAAI,GAAG,GAAK,IAAM23D,EAAUhiD,EAAE3V,EAAI,GAAG,GAAK,IAAM23D,EAAU33D,EAAE,GAAG,GAAK,IAAM23D,EAAU33D,EAAE,GAAG,GAAK,IAAM23D,EAAU9wC,EAAE,GAAG,GAAK,IAAM8wC,EAAU9wC,EAAE,GAAG,IAI5KguC,EAASU,WAAaqC,EAAY,CACpC,IAAIC,EAAiB,GAEjBhD,EAASl4B,OACPg7B,EAAU/zD,IACZi0D,EAAiBtrC,EAAS03B,IAAM99C,KAAK2uD,UAAY8C,EAAaA,GAGhE/C,EAASl4B,KAAKW,aAAa,IAAKu6B,IAGlChD,EAASU,SAAWqC,CACtB,CACF,EAEAjD,YAAYl0D,UAAU2Y,QAAU,WAC9BjT,KAAK4e,QAAU,KACf5e,KAAKywB,WAAa,KAClBzwB,KAAKyuD,YAAc,KACnBzuD,KAAK6iB,KAAO,KACZ7iB,KAAKgkB,gBAAkB,IACzB,EAEA,IAAI2tC,eAAiB,WACnB,IAAI7mC,EAAK,CACTA,aAGA,SAAsB8mC,EAAOC,GAC3B,IAAIC,EAAM7vC,SAAS,UAWnB,OAVA6vC,EAAI36B,aAAa,KAAMy6B,IAEC,IAApBC,IACFC,EAAI36B,aAAa,cAAe,qBAChC26B,EAAI36B,aAAa,IAAK,MACtB26B,EAAI36B,aAAa,IAAK,MACtB26B,EAAI36B,aAAa,QAAS,QAC1B26B,EAAI36B,aAAa,SAAU,SAGtB26B,CACT,EAfAhnC,6BAiBA,WACE,IAAIinC,EAAgB9vC,SAAS,iBAI7B,OAHA8vC,EAAc56B,aAAa,OAAQ,UACnC46B,EAAc56B,aAAa,8BAA+B,QAC1D46B,EAAc56B,aAAa,SAAU,8CAC9B46B,CACT,GAEA,OAAOjnC,CACT,CA7BqB,GA+BjBknC,eAAiB,WACnB,IAAIlnC,EAAK,CACPmkC,UAAU,EACVgD,eAAe,EACfC,gBAA4C,qBAApBzO,iBAW1B,OARI,WAAWl8C,KAAKoS,UAAU6D,YAAc,UAAUjW,KAAKoS,UAAU6D,YAAc,WAAWjW,KAAKoS,UAAU6D,YAAc,aAAajW,KAAKoS,UAAU6D,cACrJsN,EAAGmkC,UAAW,GAGZ,WAAW1nD,KAAKoS,UAAU6D,aAC5BsN,EAAGmnC,eAAgB,GAGdnnC,CACT,CAhBqB,GAkBjBqnC,oBAAsB,CAAC,EACvBC,SAAW,iBAEf,SAASC,WAAW77B,GAClB,IAAI38B,EAOAy4D,EANA53D,EAAS,gBACTggB,EAAM8b,EAAK3T,KAAKsmC,GAAK3yB,EAAK3T,KAAKsmC,GAAGrvD,OAAS,EAC3C83D,EAAQrxC,kBACRuxC,EAAMH,eAAeY,aAAaX,GAAO,GACzCjjD,EAAQ,EAIZ,IAHA3O,KAAKwyD,QAAU,GAGV34D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAC3By4D,EAAgB,KAChB,IAAIvzD,EAAOy3B,EAAK3T,KAAKsmC,GAAGtvD,GAAGsqB,GAEvBguC,oBAAoBpzD,KAEtBuzD,EAAgB,IAAIG,EADPN,oBAAoBpzD,GAAM2zD,QACZZ,EAAKt7B,EAAKs1B,eAAe1C,eAAevvD,GAAI28B,EAAM47B,SAAWzjD,EAAOjU,GAC/FA,EAAS03D,SAAWzjD,EAEhBwjD,oBAAoBpzD,GAAM4zD,iBAC5BhkD,GAAS,IAIT2jD,GACFtyD,KAAKwyD,QAAQh0D,KAAK8zD,EAEtB,CAEI3jD,IACF6nB,EAAK/F,WAAWC,KAAKxE,YAAY4lC,GACjCt7B,EAAKo1B,aAAaz0B,aAAa,SAAU,OAAS/c,kBAAoB,IAAMw3C,EAAQ,MAGlF5xD,KAAKwyD,QAAQ14D,QACf08B,EAAKixB,uBAAuBznD,KAEhC,CAyBA,SAAS4yD,iBAAiBtvD,EAAIovD,EAAQC,GACpCR,oBAAoB7uD,GAAM,CACxBovD,OAAQA,EACRC,eAAgBA,EAEpB,CAEA,SAASE,iBAAkB,CA6L3B,SAASC,mBAAoB,CAgD7B,SAASC,uBAAwB,CAoEjC,SAASC,cAAcnwC,EAAM4N,EAAYhM,GACvCzkB,KAAKiqB,UAAYwG,EAAW+E,aAAa3S,EAAKwB,OAE1CrkB,KAAKiqB,WAAajqB,KAAKiqB,UAAUmc,MACnCpmC,KAAKiqB,UAAYwG,EAAW4V,YAAYF,QAAQnmC,KAAKiqB,YAGvDjqB,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,GACnCzkB,KAAKkzD,WAAa,CAChBriD,IAAK,EACLiO,KAAM,EACNuK,MAAOrpB,KAAKiqB,UAAUtmB,EACtBoN,OAAQ/Q,KAAKiqB,UAAUta,EAE3B,CAkBA,SAASwjD,iBAAiBv0C,EAASC,GACjC7e,KAAKw2B,KAAO5X,EACZ5e,KAAKqI,IAAMwW,CACb,CAEA,SAASu0C,gBAAiB,CApX1Bf,WAAW/3D,UAAU+4B,YAAc,SAAUgS,GAC3C,IAAIxrC,EACA6gB,EAAM1a,KAAKwyD,QAAQ14D,OAEvB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKwyD,QAAQ34D,GAAGw5B,YAAYgS,EAEhC,EAEAgtB,WAAW/3D,UAAU02D,WAAa,SAAUjyD,GAC1C,IAAIlF,EACA6gB,EAAM1a,KAAKwyD,QAAQ14D,OACnBovD,EAAU,GAEd,IAAKrvD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBmG,KAAKwyD,QAAQ34D,GAAGkF,OAASA,GAC3BmqD,EAAQ1qD,KAAKwB,KAAKwyD,QAAQ34D,IAI9B,OAAOqvD,CACT,EAWA2J,eAAev4D,UAAY,CACzB+4D,oBAAqB,WACnBrzD,KAAK4rD,aAAe3pC,SAAS,IAC/B,EACAqxC,wBAAyB,WACvBtzD,KAAKuzD,aAAetxC,SAAS,KAC7BjiB,KAAKwzD,mBAAqBxzD,KAAK4rD,aAC/B5rD,KAAK8vD,cAAgB9vD,KAAK4rD,aAC1B5rD,KAAKyzD,cAAe,EACpB,IAAIC,EAAqB,KAEzB,GAAI1zD,KAAK6iB,KAAK8wC,GAAI,CAChB3zD,KAAK4zD,WAAa,CAAC,EACnB,IAAIC,EAAK5xC,SAAS,KAClB4xC,EAAG18B,aAAa,KAAMn3B,KAAK6rD,SAC3BgI,EAAG3nC,YAAYlsB,KAAK4rD,cACpB8H,EAAqBG,EACrB7zD,KAAKywB,WAAWC,KAAKxE,YAAY2nC,EACnC,MAAW7zD,KAAK6iB,KAAKixC,IACnB9zD,KAAKuzD,aAAarnC,YAAYlsB,KAAK4rD,cACnC8H,EAAqB1zD,KAAKuzD,aAC1BvzD,KAAK2rD,YAAc3rD,KAAKuzD,cAExBvzD,KAAK2rD,YAAc3rD,KAAK4rD,aAY1B,GATI5rD,KAAK6iB,KAAKkxC,IACZ/zD,KAAK4rD,aAAaz0B,aAAa,KAAMn3B,KAAK6iB,KAAKkxC,IAG7C/zD,KAAK6iB,KAAK6D,IACZ1mB,KAAK4rD,aAAaz0B,aAAa,QAASn3B,KAAK6iB,KAAK6D,IAI/B,IAAjB1mB,KAAK6iB,KAAKsB,KAAankB,KAAK6iB,KAAKmxC,GAAI,CACvC,IAAIC,EAAKhyC,SAAS,YACdgC,EAAKhC,SAAS,QAClBgC,EAAGkT,aAAa,IAAK,SAAWn3B,KAAK6iB,KAAKlf,EAAI,OAAS3D,KAAK6iB,KAAKlf,EAAI,IAAM3D,KAAK6iB,KAAKlT,EAAI,OAAS3P,KAAK6iB,KAAKlT,EAAI,KAChH,IAAIukD,EAAS3zC,kBAKb,GAJA0zC,EAAG98B,aAAa,KAAM+8B,GACtBD,EAAG/nC,YAAYjI,GACfjkB,KAAKywB,WAAWC,KAAKxE,YAAY+nC,GAE7Bj0D,KAAKuqD,aAAc,CACrB,IAAI4J,EAAUlyC,SAAS,KACvBkyC,EAAQh9B,aAAa,YAAa,OAAS/c,kBAAoB,IAAM85C,EAAS,KAC9EC,EAAQjoC,YAAYlsB,KAAK4rD,cACzB5rD,KAAKwzD,mBAAqBW,EAEtBT,EACFA,EAAmBxnC,YAAYlsB,KAAKwzD,oBAEpCxzD,KAAK2rD,YAAc3rD,KAAKwzD,kBAE5B,MACExzD,KAAK4rD,aAAaz0B,aAAa,YAAa,OAAS/c,kBAAoB,IAAM85C,EAAS,IAE5F,CAEqB,IAAjBl0D,KAAK6iB,KAAK6oC,IACZ1rD,KAAKwrD,cAET,EACA4I,cAAe,WACTp0D,KAAK+nD,eAAekI,cACtBjwD,KAAKwzD,mBAAmBr8B,aAAa,YAAan3B,KAAK+nD,eAAeoI,SAASjf,WAG7ElxC,KAAK+nD,eAAemI,QACtBlwD,KAAKwzD,mBAAmBr8B,aAAa,UAAWn3B,KAAK+nD,eAAeqI,aAExE,EACAiE,mBAAoB,WAClBr0D,KAAK4rD,aAAe,KACpB5rD,KAAKuzD,aAAe,KACpBvzD,KAAK8qD,YAAY73C,SACnB,EACAk5C,eAAgB,WACd,OAAInsD,KAAK6iB,KAAKmxC,GACL,KAGFh0D,KAAK2rD,WACd,EACA2I,2BAA4B,WAC1Bt0D,KAAK8qD,YAAc,IAAI0D,YAAYxuD,KAAK6iB,KAAM7iB,KAAMA,KAAKywB,YACzDzwB,KAAK8wD,yBAA2B,IAAIuB,WAAWryD,MAC/CA,KAAK6wD,wBACP,EACA0D,SAAU,SAAkBC,GAQ1B,GAJKx0D,KAAK4zD,aACR5zD,KAAK4zD,WAAa,CAAC,IAGhB5zD,KAAK4zD,WAAWY,GAAY,CAC/B,IACI5C,EACAE,EACA2C,EACAZ,EAJAvwD,EAAKtD,KAAK6rD,QAAU,IAAM2I,EAM9B,GAAkB,IAAdA,GAAiC,IAAdA,EAAiB,CACtC,IAAIE,EAASzyC,SAAS,QACtByyC,EAAOv9B,aAAa,KAAM7zB,GAC1BoxD,EAAOv9B,aAAa,YAA2B,IAAdq9B,EAAkB,YAAc,UACjEC,EAAaxyC,SAAS,QACX8J,eAAe,+BAAgC,OAAQ,IAAM/rB,KAAK6rD,SAC7E6I,EAAOxoC,YAAYuoC,GACnBz0D,KAAKywB,WAAWC,KAAKxE,YAAYwoC,GAE5B1C,eAAe/C,UAA0B,IAAduF,IAC9BE,EAAOv9B,aAAa,YAAa,aACjCy6B,EAAQrxC,kBACRuxC,EAAMH,eAAeY,aAAaX,GAClC5xD,KAAKywB,WAAWC,KAAKxE,YAAY4lC,GACjCA,EAAI5lC,YAAYylC,eAAegD,iCAC/Bd,EAAK5xC,SAAS,MACXiK,YAAYuoC,GACfC,EAAOxoC,YAAY2nC,GACnBA,EAAG18B,aAAa,SAAU,OAAS/c,kBAAoB,IAAMw3C,EAAQ,KAEzE,MAAO,GAAkB,IAAd4C,EAAiB,CAC1B,IAAII,EAAY3yC,SAAS,QACzB2yC,EAAUz9B,aAAa,KAAM7zB,GAC7BsxD,EAAUz9B,aAAa,YAAa,SACpC,IAAI09B,EAAc5yC,SAAS,KAC3B2yC,EAAU1oC,YAAY2oC,GACtBjD,EAAQrxC,kBACRuxC,EAAMH,eAAeY,aAAaX,GAElC,IAAIkD,EAAQ7yC,SAAS,uBACrB6yC,EAAM39B,aAAa,KAAM,iBACzB26B,EAAI5lC,YAAY4oC,GAChB,IAAIC,EAAS9yC,SAAS,WACtB8yC,EAAO59B,aAAa,OAAQ,SAC5B49B,EAAO59B,aAAa,cAAe,WACnC29B,EAAM5oC,YAAY6oC,GAElB/0D,KAAKywB,WAAWC,KAAKxE,YAAY4lC,GACjC,IAAIkD,EAAY/yC,SAAS,QACzB+yC,EAAU79B,aAAa,QAASn3B,KAAKykB,KAAK5B,KAAKlf,GAC/CqxD,EAAU79B,aAAa,SAAUn3B,KAAKykB,KAAK5B,KAAKlT,GAChDqlD,EAAU79B,aAAa,IAAK,KAC5B69B,EAAU79B,aAAa,IAAK,KAC5B69B,EAAU79B,aAAa,OAAQ,WAC/B69B,EAAU79B,aAAa,UAAW,KAClC09B,EAAY19B,aAAa,SAAU,OAAS/c,kBAAoB,IAAMw3C,EAAQ,KAC9EiD,EAAY3oC,YAAY8oC,IACxBP,EAAaxyC,SAAS,QACX8J,eAAe,+BAAgC,OAAQ,IAAM/rB,KAAK6rD,SAC7EgJ,EAAY3oC,YAAYuoC,GAEnBzC,eAAe/C,WAClB2F,EAAUz9B,aAAa,YAAa,aACpC26B,EAAI5lC,YAAYylC,eAAegD,gCAC/Bd,EAAK5xC,SAAS,KACd4yC,EAAY3oC,YAAY8oC,GACxBnB,EAAG3nC,YAAYlsB,KAAK4rD,cACpBiJ,EAAY3oC,YAAY2nC,IAG1B7zD,KAAKywB,WAAWC,KAAKxE,YAAY0oC,EACnC,CAEA50D,KAAK4zD,WAAWY,GAAalxD,CAC/B,CAEA,OAAOtD,KAAK4zD,WAAWY,EACzB,EACAS,SAAU,SAAkB3xD,GACrBtD,KAAKuzD,cAIVvzD,KAAKuzD,aAAap8B,aAAa,OAAQ,OAAS/c,kBAAoB,IAAM9W,EAAK,IACjF,GAUFwvD,iBAAiBx4D,UAAY,CAM3B46D,cAAe,WAEbl1D,KAAK2tD,UAAY,GAEjB3tD,KAAKksD,WAAY,EACjBlsD,KAAKm1D,gBACP,EASAtH,aAAc,SAAsBF,GAClC3tD,KAAK2tD,UAAYA,CACnB,EAOAC,YAAa,WACX5tD,KAAKksD,WAAY,CACnB,EAOAiJ,eAAgB,gBACW73D,IAArB0C,KAAK6iB,KAAKmgC,QACZhjD,KAAKykB,KAAKgpC,sBAAsBztD,KAAMA,KAAK6iB,KAAKmgC,OAAQ,GAE5D,GAoEA1oC,gBAAgB,CAAC4sC,kBAAmBpsC,oBA9DnB,CACfm4C,YAAa,SAAqBpwC,EAAM4N,EAAYhM,GAClDzkB,KAAK+/B,YACL//B,KAAK2pD,aAAa9mC,EAAM4N,EAAYhM,GACpCzkB,KAAK+vD,cAAcltC,EAAM4N,EAAYhM,GACrCzkB,KAAKk1D,gBACLl1D,KAAKonD,iBACLpnD,KAAKqzD,sBACLrzD,KAAKszD,0BACLtzD,KAAKs0D,6BACLt0D,KAAKo1D,gBACLp1D,KAAKrB,MACP,EACAA,KAAM,WAECqB,KAAKsnD,QAAYtnD,KAAKqnD,YAAarnD,KAAKunD,iBAChCvnD,KAAK2rD,aAAe3rD,KAAK4rD,cAC/BnmD,MAAMC,QAAU,OACrB1F,KAAKsnD,QAAS,EAElB,EACA7xB,KAAM,WAEAz1B,KAAKqnD,YAAcrnD,KAAKunD,gBACrBvnD,KAAK6iB,KAAKmxC,MACFh0D,KAAK2rD,aAAe3rD,KAAK4rD,cAC/BnmD,MAAMC,QAAU,SAGvB1F,KAAKsnD,QAAS,EACdtnD,KAAKqlC,eAAgB,EAEzB,EACAhS,YAAa,WAGPrzB,KAAK6iB,KAAKmxC,IAAMh0D,KAAKsnD,SAIzBtnD,KAAKswD,kBACLtwD,KAAKmoD,mBACLnoD,KAAKwwD,uBACLxwD,KAAKo0D,gBACLp0D,KAAKq1D,qBAEDr1D,KAAKqlC,gBACPrlC,KAAKqlC,eAAgB,GAEzB,EACAgwB,mBAAoB,WAA+B,EACnDtnC,aAAc,SAAsB65B,GAClC5nD,KAAKglC,MAAO,EACZhlC,KAAK2nD,uBAAuBC,GAC5B5nD,KAAKgsD,kBAAkBpE,EAAK5nD,KAAKqnD,WACjCrnD,KAAK8nD,mBACP,EACA70C,QAAS,WACPjT,KAAKs1D,UAAY,KACjBt1D,KAAKq0D,oBACP,KAEoEtB,sBAmBxEz4C,gBAAgB,CAACivC,YAAagF,iBAAkBsE,eAAgBC,iBAAkBtJ,aAAcuJ,sBAAuBC,eAEvHA,cAAc14D,UAAU86D,cAAgB,WACtC,IAAIv5C,EAAY7b,KAAKywB,WAAWzG,cAAchqB,KAAKiqB,WACnDjqB,KAAKs1D,UAAYrzC,SAAS,SAC1BjiB,KAAKs1D,UAAUn+B,aAAa,QAASn3B,KAAKiqB,UAAUtmB,EAAI,MACxD3D,KAAKs1D,UAAUn+B,aAAa,SAAUn3B,KAAKiqB,UAAUta,EAAI,MACzD3P,KAAKs1D,UAAUn+B,aAAa,sBAAuBn3B,KAAKiqB,UAAUsrC,IAAMv1D,KAAKywB,WAAWw3B,aAAauN,0BACrGx1D,KAAKs1D,UAAUvpC,eAAe,+BAAgC,OAAQlQ,GACtE7b,KAAK4rD,aAAa1/B,YAAYlsB,KAAKs1D,UACrC,EAEAtC,cAAc14D,UAAU8tD,iBAAmB,WACzC,OAAOpoD,KAAKkzD,UACd,EASAE,cAAc94D,UAAY,CACxBm7D,oBAAqB,SAA6B5yC,GAChD,IAAIhpB,EACA6gB,EAAM1a,KAAK01D,eAAe57D,OAE9B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAK01D,eAAe77D,GAAGuuC,SAASvlB,EAEpC,EACA8yC,2BAA4B,SAAoC9yC,GAI9D,IAHA,IACInI,EAAM1a,KAAK01D,eAAe57D,OADtB,EAGG4gB,GACT,GAAI1a,KAAK01D,eAJH,GAIqBE,oBAAoB/yC,GAC7C,OAAO,EAIX,OAAO,CACT,EACAgzC,gBAAiB,WACf,GAAK71D,KAAK01D,eAAe57D,OAAzB,CAIA,IAAID,EACA6gB,EAAM1a,KAAKukB,OAAOzqB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKukB,OAAO1qB,GAAGuoC,GAAGlxB,QAMpB,IAAKrX,GAHL6gB,EAAM1a,KAAK01D,eAAe57D,QAGX,EAAGD,GAAK,IACAmG,KAAK01D,eAAe77D,GAAGo6C,cAAcj0C,KAAKqlC,eADvCxrC,GAAK,GAZ/B,CAoBF,EACAi8D,uBAAwB,SAAgCt/B,GAKtD,IAJA,IAAI+nB,EAAWv+C,KAAK+1D,kBAChBl8D,EAAI,EACJ6gB,EAAM6jC,EAASzkD,OAEZD,EAAI6gB,GAAK,CACd,GAAI6jC,EAAS1kD,GAAG28B,OAASA,EACvB,OAAO+nB,EAAS1kD,GAAGwO,IAGrBxO,GAAK,CACP,CAEA,OAAO,CACT,EACAm8D,oBAAqB,SAA6Bx/B,EAAMnuB,GAItD,IAHA,IAAIk2C,EAAWv+C,KAAK+1D,kBAChBl8D,EAAI0kD,EAASzkD,OAEVD,GAGL,GAAI0kD,EAFJ1kD,GAAK,GAEW28B,OAASA,EAEvB,YADA+nB,EAAS1kD,GAAGwO,IAAMA,GAKtBk2C,EAAS//C,KAAK,IAAI20D,iBAAiB38B,EAAMnuB,GAC3C,EACA0lB,aAAc,SAAsB65B,GAClC5nD,KAAK2nD,uBAAuBC,GAC5B5nD,KAAKgsD,kBAAkBpE,EAAK5nD,KAAKqnD,UACnC,GAGF,IAAI4O,YAAc,CAChB,EAAG,OACH,EAAG,QACH,EAAG,UAEDC,aAAe,CACjB,EAAG,QACH,EAAG,QACH,EAAG,SAGL,SAASC,aAAaC,EAAcC,EAAOpuB,GACzCjoC,KAAKs2D,OAAS,GACdt2D,KAAKi9C,OAAS,GACdj9C,KAAKo2D,aAAeA,EACpBp2D,KAAKu2D,KAAO,GACZv2D,KAAKoiC,GAAK6F,EACVjoC,KAAKw2D,IAAMH,EAIXr2D,KAAKwmC,cAAgByB,EAAMtjC,EAK3B,IAHA,IAAI9K,EAAI,EACJ6gB,EAAM07C,EAAat8D,OAEhBD,EAAI6gB,GAAK,CACd,GAAI07C,EAAav8D,GAAGimD,OAAOvZ,kBAAkBzsC,OAAQ,CACnDkG,KAAKwmC,aAAc,EACnB,KACF,CAEA3sC,GAAK,CACP,CACF,CAMA,SAAS48D,aAAa5zC,EAAMwzC,GAC1Br2D,KAAK6iB,KAAOA,EACZ7iB,KAAKjB,KAAO8jB,EAAKsB,GACjBnkB,KAAK6gB,EAAI,GACT7gB,KAAKw2D,IAAMH,EACXr2D,KAAKglC,MAAO,EACZhlC,KAAKymB,QAAqB,IAAZ5D,EAAKmxC,GACnBh0D,KAAK02D,MAAQz0C,SAAS,QACtBjiB,KAAK22D,OAAS,IAChB,CAOA,SAASC,aAAapgC,EAAM3T,EAAMsM,EAAUkB,GAU1C,IAAIx2B,EATJmG,KAAKw2B,KAAOA,EACZx2B,KAAKklC,SAAW,EAChBllC,KAAK62D,UAAY55C,iBAAiB4F,EAAK/oB,QACvCkG,KAAKmvB,SAAWA,EAChBnvB,KAAK2E,GAAI,EACT3E,KAAK82D,QAAU,GACf92D,KAAK+2D,UAAYp6C,iBAAiB,UAAWkG,EAAK/oB,OAAS+oB,EAAK/oB,OAAS,EAAI,GAC7EkG,KAAKg3D,WAAar6C,iBAAiB,UAAW,GAC9C3c,KAAK0mC,6BAA6BrW,GAElC,IACIxV,EADAH,EAAMmI,EAAK/oB,QAAU,EAGzB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBghB,EAAOqrB,gBAAgBC,QAAQ3P,EAAM3T,EAAKhpB,GAAG6mB,EAAG,EAAG,EAAG1gB,MACtDA,KAAK2E,EAAIkW,EAAKlW,GAAK3E,KAAK2E,EACxB3E,KAAK62D,UAAUh9D,GAAK,CAClBsT,EAAG0V,EAAKhpB,GAAGsT,EACX0C,EAAGgL,GAIF7a,KAAK2E,GACR3E,KAAK6lC,UAAS,GAGhB7lC,KAAKwmC,YAAcxmC,KAAK2E,CAC1B,CAmCA,SAASsyD,mBAAmBzgC,EAAM3T,EAAMq0C,GACtCl3D,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAK6lC,SAAW7lC,KAAKymC,yBACrBzmC,KAAKwP,EAAI02B,gBAAgBC,QAAQ3P,EAAM3T,EAAKrT,EAAG,EAAG,IAAMxP,MACxDA,KAAK2D,EAAIuiC,gBAAgBC,QAAQ3P,EAAM3T,EAAKlf,EAAG,EAAG,KAAM3D,MACxDA,KAAK6gB,EAAI,IAAI+1C,aAAapgC,EAAM3T,EAAKhC,GAAK,CAAC,EAAG,MAAO7gB,MACrDA,KAAKvC,EAAIyoC,gBAAgBC,QAAQ3P,EAAM3T,EAAKplB,EAAG,EAAG,IAAKuC,MACvDA,KAAKyF,MAAQyxD,EACbl3D,KAAKwmC,cAAgBxmC,KAAKwmC,WAC5B,CAIA,SAAS2wB,iBAAiB3gC,EAAM3T,EAAMq0C,GACpCl3D,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAK6lC,SAAW7lC,KAAKymC,yBACrBzmC,KAAKwP,EAAI02B,gBAAgBC,QAAQ3P,EAAM3T,EAAKrT,EAAG,EAAG,IAAMxP,MACxDA,KAAKvC,EAAIyoC,gBAAgBC,QAAQ3P,EAAM3T,EAAKplB,EAAG,EAAG,IAAKuC,MACvDA,KAAKyF,MAAQyxD,CACf,CAIA,SAASE,eAAe5gC,EAAM3T,EAAMq0C,GAClCl3D,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAK6lC,SAAW7lC,KAAKymC,yBACrBzmC,KAAKyF,MAAQyxD,CACf,CAIA,SAASG,iBAAiB7gC,EAAM3T,EAAMwN,GACpCrwB,KAAK6iB,KAAOA,EACZ7iB,KAAKvC,EAAIkf,iBAAiB,SAAmB,EAATkG,EAAKhT,GACzC,IAAIynD,EAAUz0C,EAAKle,EAAEA,EAAE,GAAG2D,EAAIua,EAAKle,EAAEA,EAAE,GAAG2D,EAAExO,OAAkB,EAAT+oB,EAAKhT,EAAQgT,EAAKle,EAAEA,EAAE7K,OAAkB,EAAT+oB,EAAKhT,EACzF7P,KAAKwP,EAAImN,iBAAiB,UAAW26C,GACrCt3D,KAAKu3D,OAAQ,EACbv3D,KAAKw3D,OAAQ,EACbx3D,KAAKy3D,aAAez3D,KAAK03D,mBACzB13D,KAAK23D,YAAcL,EACnBt3D,KAAK0mC,6BAA6BrW,GAClCrwB,KAAK6a,KAAOqrB,gBAAgBC,QAAQ3P,EAAM3T,EAAKle,EAAG,EAAG,KAAM3E,MAC3DA,KAAK2E,EAAI3E,KAAK6a,KAAKlW,EACnB3E,KAAK6lC,UAAS,EAChB,CAqFA,SAAS+xB,yBAAyBphC,EAAM3T,EAAMq0C,GAC5Cl3D,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAK6lC,SAAW7lC,KAAKymC,yBACrBzmC,KAAK63D,iBAAiBrhC,EAAM3T,EAAMq0C,EACpC,CAyFA,SAASY,2BAA2BthC,EAAM3T,EAAMq0C,GAC9Cl3D,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAK6lC,SAAW7lC,KAAKymC,yBACrBzmC,KAAK2D,EAAIuiC,gBAAgBC,QAAQ3P,EAAM3T,EAAKlf,EAAG,EAAG,KAAM3D,MACxDA,KAAK6gB,EAAI,IAAI+1C,aAAapgC,EAAM3T,EAAKhC,GAAK,CAAC,EAAG,MAAO7gB,MACrDA,KAAK63D,iBAAiBrhC,EAAM3T,EAAMq0C,GAClCl3D,KAAKwmC,cAAgBxmC,KAAKwmC,WAC5B,CAIA,SAASuxB,iBACP/3D,KAAK/D,GAAK,GACV+D,KAAKg4D,aAAe,GACpBh4D,KAAKi4D,GAAKh2C,SAAS,IACrB,CAEA,SAASi2C,iBAAiBpY,EAAQh6B,EAAIuK,GACpCrwB,KAAKstC,UAAY,CACfwS,OAAQA,EACRh6B,GAAIA,EACJuK,UAAWA,GAEbrwB,KAAKu+C,SAAW,GAChBv+C,KAAKwmC,YAAcxmC,KAAKstC,UAAUwS,OAAOvZ,kBAAkBzsC,QAAUkG,KAAKstC,UAAUxnB,GAAGqf,gBAAgBrrC,MACzG,CA1UAq8D,aAAa77D,UAAU84C,cAAgB,WACrCpzC,KAAKwmC,aAAc,CACrB,EAaAiwB,aAAan8D,UAAU4W,MAAQ,WAC7BlR,KAAK6gB,EAAI,GACT7gB,KAAKglC,MAAO,CACd,EAgCA4xB,aAAat8D,UAAUurC,SAAW,SAAUuQ,GAC1C,IAAIp2C,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,SAAYkR,KAItDp2C,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,QACpCllC,KAAKymC,2BACLzmC,KAAKglC,KAAOhlC,KAAKglC,MAAQoR,EAErBp2C,KAAKglC,MAAM,CACb,IAAInrC,EAAI,EACJ6gB,EAAM1a,KAAK62D,UAAU/8D,OAMzB,IAJsB,QAAlBkG,KAAKmvB,WACPnvB,KAAK82D,QAAU,IAGZj9D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACI,MAAxBmG,KAAK62D,UAAUh9D,GAAGsT,EACE,QAAlBnN,KAAKmvB,SACPnvB,KAAK82D,SAAW,IAAM92D,KAAK62D,UAAUh9D,GAAGgW,EAAE6Q,EAE1C1gB,KAAK+2D,UAAUl9D,GAAKmG,KAAK62D,UAAUh9D,GAAGgW,EAAE6Q,EAG1C1gB,KAAKg3D,WAAW,GAAKh3D,KAAK62D,UAAUh9D,GAAGgW,EAAE6Q,CAG/C,CACF,EAEApG,gBAAgB,CAACgsB,0BAA2BswB,cAa5Ct8C,gBAAgB,CAACgsB,0BAA2B2wB,oBAU5C38C,gBAAgB,CAACgsB,0BAA2B6wB,kBAQ5C78C,gBAAgB,CAACgsB,0BAA2B8wB,gBAiB5CC,iBAAiB/8D,UAAU69D,cAAgB,SAAUj1D,EAAQu1B,GAK3D,IAJA,IAAI5+B,EAAI,EACJ6gB,EAAM1a,KAAKwP,EAAE1V,OAAS,EAGnBD,EAAI6gB,GAAK,CAGd,GAFOla,KAAKiP,IAAIvM,EAAW,EAAJrJ,GAASqJ,EAAgB,EAATu1B,EAAiB,EAAJ5+B,IAEzC,IACT,OAAO,EAGTA,GAAK,CACP,CAEA,OAAO,CACT,EAEAw9D,iBAAiB/8D,UAAUo9D,iBAAmB,WAC5C,GAAI13D,KAAKwP,EAAE1V,OAAS,IAAMkG,KAAKvC,EAAE3D,OAAS,EACxC,OAAO,EAGT,GAAIkG,KAAK6iB,KAAKle,EAAEA,EAAE,GAAG2D,EAInB,IAHA,IAAIzO,EAAI,EACJ6gB,EAAM1a,KAAK6iB,KAAKle,EAAEA,EAAE7K,OAEjBD,EAAI6gB,GAAK,CACd,IAAK1a,KAAKm4D,cAAcn4D,KAAK6iB,KAAKle,EAAEA,EAAE9K,GAAGyO,EAAGtI,KAAK6iB,KAAKhT,GACpD,OAAO,EAGThW,GAAK,CACP,MACK,IAAKmG,KAAKm4D,cAAcn4D,KAAK6iB,KAAKle,EAAEA,EAAG3E,KAAK6iB,KAAKhT,GACtD,OAAO,EAGT,OAAO,CACT,EAEAwnD,iBAAiB/8D,UAAUurC,SAAW,SAAUuQ,GAM9C,GALAp2C,KAAK6a,KAAKgrB,WACV7lC,KAAKglC,MAAO,EACZhlC,KAAKu3D,OAAQ,EACbv3D,KAAKw3D,OAAQ,EAETx3D,KAAK6a,KAAKmqB,MAAQoR,EAAa,CACjC,IAAIv8C,EAEAkrC,EACA/7B,EAFA0R,EAAoB,EAAd1a,KAAK6iB,KAAKhT,EAIpB,IAAKhW,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBkrC,EAAOlrC,EAAI,IAAM,EAAI,IAAM,IAC3BmP,EAAMxI,KAAKke,MAAM1e,KAAK6a,KAAK6F,EAAE7mB,GAAKkrC,GAE9B/kC,KAAKvC,EAAE5D,KAAOmP,IAChBhJ,KAAKvC,EAAE5D,GAAKmP,EACZhJ,KAAKu3D,OAASnhB,GAIlB,GAAIp2C,KAAKwP,EAAE1V,OAGT,IAFA4gB,EAAM1a,KAAK6a,KAAK6F,EAAE5mB,OAEbD,EAAkB,EAAdmG,KAAK6iB,KAAKhT,EAAOhW,EAAI6gB,EAAK7gB,GAAK,EACtCkrC,EAAOlrC,EAAI,IAAM,EAAI,IAAM,EAC3BmP,EAAMnP,EAAI,IAAM,EAAI2G,KAAKke,MAAuB,IAAjB1e,KAAK6a,KAAK6F,EAAE7mB,IAAYmG,KAAK6a,KAAK6F,EAAE7mB,GAE/DmG,KAAKwP,EAAE3V,EAAkB,EAAdmG,KAAK6iB,KAAKhT,KAAW7G,IAClChJ,KAAKwP,EAAE3V,EAAkB,EAAdmG,KAAK6iB,KAAKhT,GAAS7G,EAC9BhJ,KAAKw3D,OAASphB,GAKpBp2C,KAAKglC,MAAQoR,CACf,CACF,EAEA97B,gBAAgB,CAACgsB,0BAA2B+wB,kBAQ5CO,yBAAyBt9D,UAAUu9D,iBAAmB,SAAUrhC,EAAM3T,EAAMq0C,GAC1El3D,KAAKwP,EAAI02B,gBAAgBC,QAAQ3P,EAAM3T,EAAKrT,EAAG,EAAG,IAAMxP,MACxDA,KAAKsI,EAAI49B,gBAAgBC,QAAQ3P,EAAM3T,EAAKva,EAAG,EAAG,KAAMtI,MACxDA,KAAKM,EAAI4lC,gBAAgBC,QAAQ3P,EAAM3T,EAAKviB,EAAG,EAAG,KAAMN,MACxDA,KAAK2P,EAAIu2B,gBAAgBC,QAAQ3P,EAAM3T,EAAKlT,GAAK,CAC/ChL,EAAG,GACF,EAAG,IAAM3E,MACZA,KAAKzC,EAAI2oC,gBAAgBC,QAAQ3P,EAAM3T,EAAKtlB,GAAK,CAC/CoH,EAAG,GACF,EAAG0Z,UAAWre,MACjBA,KAAK2gB,EAAI,IAAI02C,iBAAiB7gC,EAAM3T,EAAKlC,EAAG3gB,MAC5CA,KAAKyF,MAAQyxD,EACbl3D,KAAKo4D,MAAQ,GACbp4D,KAAKq4D,gBAAgBnB,EAAQR,MAAO7zC,GACpC7iB,KAAKs4D,mBAAmBz1C,EAAMq0C,GAC9Bl3D,KAAKwmC,cAAgBxmC,KAAKwmC,WAC5B,EAEAoxB,yBAAyBt9D,UAAU+9D,gBAAkB,SAAUE,EAAa11C,GAC1E,IAAI21C,EAAaj4C,kBACbk4C,EAAQx2C,SAAoB,IAAXY,EAAK3V,EAAU,iBAAmB,kBACvDurD,EAAMthC,aAAa,KAAMqhC,GACzBC,EAAMthC,aAAa,eAAgB,OACnCshC,EAAMthC,aAAa,gBAAiB,kBACpC,IACI1D,EACAzuB,EACA2e,EAHAy0C,EAAQ,GAMZ,IAFAz0C,EAAkB,EAAXd,EAAKlC,EAAE9Q,EAET7K,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzByuB,EAAOxR,SAAS,QAChBw2C,EAAMvsC,YAAYuH,GAClB2kC,EAAM55D,KAAKi1B,GAGb8kC,EAAYphC,aAAyB,OAAZtU,EAAKsB,GAAc,OAAS,SAAU,OAAS/J,kBAAoB,IAAMo+C,EAAa,KAC/Gx4D,KAAK04D,GAAKD,EACVz4D,KAAK24D,IAAMP,CACb,EAEAR,yBAAyBt9D,UAAUg+D,mBAAqB,SAAUz1C,EAAMq0C,GACtE,GAAIl3D,KAAK2gB,EAAEg3C,cAAgB33D,KAAK2gB,EAAE82C,aAAc,CAC9C,IAAIhkC,EACAzuB,EACA2e,EACA+rC,EAAOztC,SAAS,QAChBwsC,EAAcxsC,SAAS,QAC3BytC,EAAKxjC,YAAYuiC,GACjB,IAAImK,EAAYr4C,kBACZs4C,EAASt4C,kBACbmvC,EAAKv4B,aAAa,KAAM0hC,GACxB,IAAIC,EAAS72C,SAAoB,IAAXY,EAAK3V,EAAU,iBAAmB,kBACxD4rD,EAAO3hC,aAAa,KAAMyhC,GAC1BE,EAAO3hC,aAAa,eAAgB,OACpC2hC,EAAO3hC,aAAa,gBAAiB,kBACrCxT,EAAOd,EAAKlC,EAAEhc,EAAEA,EAAE,GAAG2D,EAAIua,EAAKlC,EAAEhc,EAAEA,EAAE,GAAG2D,EAAExO,OAAS+oB,EAAKlC,EAAEhc,EAAEA,EAAE7K,OAC7D,IAAIs+D,EAAQp4D,KAAKo4D,MAEjB,IAAKpzD,EAAe,EAAX6d,EAAKlC,EAAE9Q,EAAO7K,EAAI2e,EAAM3e,GAAK,GACpCyuB,EAAOxR,SAAS,SACXkV,aAAa,aAAc,oBAChC2hC,EAAO5sC,YAAYuH,GACnB2kC,EAAM55D,KAAKi1B,GAGbg7B,EAAYt3B,aAAyB,OAAZtU,EAAKsB,GAAc,OAAS,SAAU,OAAS/J,kBAAoB,IAAMw+C,EAAY,KAE9F,OAAZ/1C,EAAKsB,KACPsqC,EAAYt3B,aAAa,iBAAkB8+B,YAAYpzC,EAAKk2C,IAAM,IAClEtK,EAAYt3B,aAAa,kBAAmB++B,aAAarzC,EAAKu+B,IAAM,IAEpD,IAAZv+B,EAAKu+B,IACPqN,EAAYt3B,aAAa,oBAAqBtU,EAAKs+B,KAIvDnhD,KAAKg5D,GAAKF,EACV94D,KAAKi5D,GAAKvJ,EACV1vD,KAAKk5D,IAAMd,EACXp4D,KAAK64D,OAASA,EACd3B,EAAQP,OAASlI,CACnB,CACF,EAEAn0C,gBAAgB,CAACgsB,0BAA2BsxB,0BAW5Ct9C,gBAAgB,CAACs9C,yBAA0BtxB,0BAA2BwxB,4BAkBtE,IAAIqB,iBAAmB,SAA0B3H,EAAW13D,EAAQ2sB,EAAQ0vB,GAC1E,GAAe,IAAXr8C,EACF,MAAO,GAGT,IAGID,EAHAu/D,EAAK5H,EAAUhiD,EACf7F,EAAK6nD,EAAU33D,EACfowC,EAAKunB,EAAU9wC,EAEf24C,EAAc,KAAOljB,EAAIrF,wBAAwB7G,EAAG,GAAG,GAAIA,EAAG,GAAG,IAErE,IAAKpwC,EAAI,EAAGA,EAAIC,EAAQD,GAAK,EAC3Bw/D,GAAe,KAAOljB,EAAIrF,wBAAwBsoB,EAAGv/D,EAAI,GAAG,GAAIu/D,EAAGv/D,EAAI,GAAG,IAAM,IAAMs8C,EAAIrF,wBAAwBnnC,EAAG9P,GAAG,GAAI8P,EAAG9P,GAAG,IAAM,IAAMs8C,EAAIrF,wBAAwB7G,EAAGpwC,GAAG,GAAIowC,EAAGpwC,GAAG,IAQ5L,OALI4sB,GAAU3sB,IACZu/D,GAAe,KAAOljB,EAAIrF,wBAAwBsoB,EAAGv/D,EAAI,GAAG,GAAIu/D,EAAGv/D,EAAI,GAAG,IAAM,IAAMs8C,EAAIrF,wBAAwBnnC,EAAG,GAAG,GAAIA,EAAG,GAAG,IAAM,IAAMwsC,EAAIrF,wBAAwB7G,EAAG,GAAG,GAAIA,EAAG,GAAG,IAC1LovB,GAAe,KAGVA,CACT,EAEIC,oBAAsB,WACxB,IAAIC,EAAkB,IAAIxtB,OAEtBytB,EAAgB,IAAIztB,OAqCxB,SAAS0tB,EAAuBC,EAAWC,EAAUrI,IAC/CA,GAAgBqI,EAASrsB,UAAUxnB,GAAGkf,OACxC20B,EAASrsB,UAAUjd,UAAU8G,aAAa,UAAWwiC,EAASrsB,UAAUxnB,GAAGpF,IAGzE4wC,GAAgBqI,EAASrsB,UAAUwS,OAAO9a,OAC5C20B,EAASrsB,UAAUjd,UAAU8G,aAAa,YAAawiC,EAASrsB,UAAUwS,OAAOp/B,EAAEwwB,UAEvF,CAEA,SAAS0oB,IAAc,CAEvB,SAASC,EAAWH,EAAWC,EAAUrI,GACvC,IAAItsD,EACA2e,EACAm2C,EACAC,EACAvI,EACAhpD,EAGA0gC,EACAiN,EACA6jB,EACAr1D,EALAs1D,EAAON,EAAS1c,OAAOnjD,OACvB08D,EAAMmD,EAASnD,IAMnB,IAAKhuD,EAAI,EAAGA,EAAIyxD,EAAMzxD,GAAK,EAAG,CAG5B,GAFAuxD,EAASJ,EAASv3B,GAAG4C,MAAQssB,EAEzBqI,EAAS1c,OAAOz0C,GAAGguD,IAAMA,EAAK,CAKhC,IAJArgB,EAAMqjB,EAActoD,QACpB8oD,EAAaxD,EAAMmD,EAAS1c,OAAOz0C,GAAGguD,IACtC7xD,EAAIg1D,EAASvD,aAAat8D,OAAS,GAE3BigE,GAAUC,EAAa,GAC7BD,EAASJ,EAASvD,aAAazxD,GAAGm7C,OAAO9a,MAAQ+0B,EACjDC,GAAc,EACdr1D,GAAK,EAGP,GAAIo1D,EAIF,IAHAC,EAAaxD,EAAMmD,EAAS1c,OAAOz0C,GAAGguD,IACtC7xD,EAAIg1D,EAASvD,aAAat8D,OAAS,EAE5BkgE,EAAa,GAClB7jB,EAAI9G,SAASsqB,EAASvD,aAAazxD,GAAGm7C,OAAOp/B,GAC7Cs5C,GAAc,EACdr1D,GAAK,CAGX,MACEwxC,EAAMojB,EAMR,GAFA51C,GADAulB,EAAQywB,EAASv3B,GAAG8G,OACP1O,QAETu/B,EAAQ,CAGV,IAFAD,EAAwB,GAEnB90D,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,GACzBwsD,EAAYtoB,EAAM3kB,OAAOvf,KAERwsD,EAAUh3B,UACzBs/B,GAAyBX,iBAAiB3H,EAAWA,EAAUh3B,QAASg3B,EAAU/zD,EAAG04C,IAIzFwjB,EAASrD,OAAO9tD,GAAKsxD,CACvB,MACEA,EAAwBH,EAASrD,OAAO9tD,GAG1CmxD,EAAS1c,OAAOz0C,GAAGqY,IAAsB,IAAjB64C,EAAU1F,GAAc,GAAK8F,EACrDH,EAAS1c,OAAOz0C,GAAGw8B,KAAO+0B,GAAUJ,EAAS1c,OAAOz0C,GAAGw8B,IACzD,CACF,CAEA,SAASk1B,EAAWR,EAAWC,EAAUrI,GACvC,IAAI6I,EAAYR,EAASl0D,OAErBk0D,EAASl8D,EAAEunC,MAAQssB,IACrB6I,EAAUzD,MAAMv/B,aAAa,OAAQ,OAAStZ,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,MAGzIi5C,EAASnqD,EAAEw1B,MAAQssB,IACrB6I,EAAUzD,MAAMv/B,aAAa,eAAgBwiC,EAASnqD,EAAEkR,EAE5D,CAEA,SAAS05C,EAAqBV,EAAWC,EAAUrI,GACjD+I,EAAeX,EAAWC,EAAUrI,GACpCgJ,EAAaZ,EAAWC,EAAUrI,EACpC,CAEA,SAAS+I,EAAeX,EAAWC,EAAUrI,GAC3C,IAsBI8G,EACAv+D,EACA6gB,EACA+Y,EA+CEkX,EAxEF8tB,EAAQkB,EAASjB,GACjB6B,EAAaZ,EAASh5C,EAAEg3C,YACxB77B,EAAM69B,EAASrxD,EAAEoY,EACjBqb,EAAM49B,EAASr5D,EAAEogB,EAErB,GAAIi5C,EAASnqD,EAAEw1B,MAAQssB,EAAc,CACnC,IAAI32C,EAAwB,OAAjB++C,EAAUv1C,GAAc,eAAiB,iBACpDw1C,EAASl0D,MAAMixD,MAAMv/B,aAAaxc,EAAMg/C,EAASnqD,EAAEkR,EACrD,CAEA,GAAIi5C,EAASrxD,EAAE08B,MAAQssB,EAAc,CACnC,IAAIkJ,EAAwB,IAAhBd,EAAUxsD,EAAU,KAAO,KACnCutD,EAAkB,OAAVD,EAAiB,KAAO,KACpC/B,EAAMthC,aAAaqjC,EAAO1+B,EAAI,IAC9B28B,EAAMthC,aAAasjC,EAAO3+B,EAAI,IAE1By+B,IAAeZ,EAASh5C,EAAE82C,eAC5BkC,EAASX,GAAG7hC,aAAaqjC,EAAO1+B,EAAI,IACpC69B,EAASX,GAAG7hC,aAAasjC,EAAO3+B,EAAI,IAExC,CAOA,GAAI69B,EAASh5C,EAAE42C,OAASjG,EAAc,CACpC8G,EAAQuB,EAAShB,IACjB,IAAI+B,EAAUf,EAASh5C,EAAEljB,EAGzB,IAFAid,EAAM09C,EAAMt+D,OAEPD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GACxB45B,EAAO2kC,EAAMv+D,IACRs9B,aAAa,SAAUujC,EAAY,EAAJ7gE,GAAS,KAC7C45B,EAAK0D,aAAa,aAAc,OAASujC,EAAY,EAAJ7gE,EAAQ,GAAK,IAAM6gE,EAAY,EAAJ7gE,EAAQ,GAAK,IAAM6gE,EAAY,EAAJ7gE,EAAQ,GAAK,IAExH,CAEA,GAAI0gE,IAAeZ,EAASh5C,EAAE62C,OAASlG,GAAe,CACpD,IAAIqJ,EAAUhB,EAASh5C,EAAEnR,EAUzB,IAFAkL,GALE09C,EADEuB,EAASh5C,EAAE82C,aACLkC,EAAShB,IAETgB,EAAST,KAGPp/D,OAEPD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB45B,EAAO2kC,EAAMv+D,GAER8/D,EAASh5C,EAAE82C,cACdhkC,EAAK0D,aAAa,SAAUwjC,EAAY,EAAJ9gE,GAAS,KAG/C45B,EAAK0D,aAAa,eAAgBwjC,EAAY,EAAJ9gE,EAAQ,GAEtD,CAEA,GAAoB,IAAhB6/D,EAAUxsD,GACRysD,EAASr5D,EAAE0kC,MAAQssB,KACrBmH,EAAMthC,aAAa,KAAM4E,EAAI,IAC7B08B,EAAMthC,aAAa,KAAM4E,EAAI,IAEzBw+B,IAAeZ,EAASh5C,EAAE82C,eAC5BkC,EAASX,GAAG7hC,aAAa,KAAM4E,EAAI,IACnC49B,EAASX,GAAG7hC,aAAa,KAAM4E,EAAI,WAevC,IATI49B,EAASrxD,EAAE08B,MAAQ20B,EAASr5D,EAAE0kC,MAAQssB,KACxC3mB,EAAMnqC,KAAKod,KAAKpd,KAAKyP,IAAI6rB,EAAI,GAAKC,EAAI,GAAI,GAAKv7B,KAAKyP,IAAI6rB,EAAI,GAAKC,EAAI,GAAI,IACzE08B,EAAMthC,aAAa,IAAKwT,GAEpB4vB,IAAeZ,EAASh5C,EAAE82C,cAC5BkC,EAASX,GAAG7hC,aAAa,IAAKwT,IAI9BgvB,EAASr5D,EAAE0kC,MAAQ20B,EAAShqD,EAAEq1B,MAAQ20B,EAASp8D,EAAEynC,MAAQssB,EAAc,CACpE3mB,IACHA,EAAMnqC,KAAKod,KAAKpd,KAAKyP,IAAI6rB,EAAI,GAAKC,EAAI,GAAI,GAAKv7B,KAAKyP,IAAI6rB,EAAI,GAAKC,EAAI,GAAI,KAG3E,IAAI6+B,EAAMp6D,KAAKqjC,MAAM9H,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IAC/CuD,EAAUs6B,EAAShqD,EAAE+Q,EAErB2e,GAAW,EACbA,EAAU,IACDA,IAAY,IACrBA,GAAW,KAGb,IAAI2b,EAAOrQ,EAAMtL,EACbxG,EAAIr4B,KAAK0jC,IAAI02B,EAAMjB,EAASp8D,EAAEmjB,GAAKs6B,EAAOlf,EAAI,GAC9C0F,EAAIhhC,KAAK8iC,IAAIs3B,EAAMjB,EAASp8D,EAAEmjB,GAAKs6B,EAAOlf,EAAI,GAClD28B,EAAMthC,aAAa,KAAM0B,GACzB4/B,EAAMthC,aAAa,KAAMqK,GAErB+4B,IAAeZ,EAASh5C,EAAE82C,eAC5BkC,EAASX,GAAG7hC,aAAa,KAAM0B,GAC/B8gC,EAASX,GAAG7hC,aAAa,KAAMqK,GAEnC,CAGJ,CAEA,SAAS84B,EAAaZ,EAAWC,EAAUrI,GACzC,IAAI6I,EAAYR,EAASl0D,MACrBob,EAAI84C,EAAS94C,EAEbA,IAAMA,EAAEmkB,MAAQssB,IAAiBzwC,EAAEi2C,UACrCqD,EAAUzD,MAAMv/B,aAAa,mBAAoBtW,EAAEi2C,SACnDqD,EAAUzD,MAAMv/B,aAAa,oBAAqBtW,EAAEm2C,WAAW,KAG7D2C,EAASl8D,IAAMk8D,EAASl8D,EAAEunC,MAAQssB,IACpC6I,EAAUzD,MAAMv/B,aAAa,SAAU,OAAStZ,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,MAG3Ii5C,EAASnqD,EAAEw1B,MAAQssB,IACrB6I,EAAUzD,MAAMv/B,aAAa,iBAAkBwiC,EAASnqD,EAAEkR,IAGxDi5C,EAASh2D,EAAEqhC,MAAQssB,KACrB6I,EAAUzD,MAAMv/B,aAAa,eAAgBwiC,EAASh2D,EAAE+c,GAEpDy5C,EAAUxD,QACZwD,EAAUxD,OAAOx/B,aAAa,eAAgBwiC,EAASh2D,EAAE+c,GAG/D,CAEA,MA7QS,CACPm6C,qBAGF,SAA8Bh4C,GAC5B,OAAQA,EAAKsB,IACX,IAAK,KACH,OAAO+1C,EAET,IAAK,KACH,OAAOG,EAET,IAAK,KACH,OAAOD,EAET,IAAK,KACH,OAAOE,EAET,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAOT,EAET,IAAK,KACH,OAAOJ,EAET,IAAK,KACH,OAAOG,EAET,QACE,OAAO,KAEb,EA6OF,CAnR0B,GAqR1B,SAASkB,gBAAgBj4C,EAAM4N,EAAYhM,GAEzCzkB,KAAKukB,OAAS,GAEdvkB,KAAKorD,WAAavoC,EAAK0B,OAEvBvkB,KAAK+6D,WAAa,GAElB/6D,KAAK01D,eAAiB,GAEtB11D,KAAKqrD,UAAY,GAEjBrrD,KAAK+1D,kBAAoB,GAEzB/1D,KAAKg7D,iBAAmB,GACxBh7D,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,GAGnCzkB,KAAKg4D,aAAe,EACtB,CAyWA,SAASiD,YAAYzrD,EAAG0rD,EAAI9U,EAAI+U,EAAIjuB,EAAGr9B,GACrC7P,KAAKwP,EAAIA,EACTxP,KAAKk7D,GAAKA,EACVl7D,KAAKomD,GAAKA,EACVpmD,KAAKm7D,GAAKA,EACVn7D,KAAKktC,EAAIA,EACTltC,KAAK6P,EAAIA,EACT7P,KAAKglC,KAAO,CACVx1B,GAAG,EACH0rD,KAAMA,EACN9U,KAAMA,EACN+U,KAAMA,EACNjuB,GAAG,EACHr9B,GAAG,EAEP,CAkDA,SAASurD,aAAa5kC,EAAM3T,GAC1B7iB,KAAKq7D,SAAWthD,oBAChB/Z,KAAKugC,GAAK,GACVvgC,KAAK0gB,EAAI,GACT1gB,KAAKulC,IAAK,EACVvlC,KAAKqlC,eAAgB,EACrBrlC,KAAKglC,MAAO,EAERniB,EAAKhC,GAAKgC,EAAKhC,EAAEulB,MACnBvjB,EAAKhC,EAAI2V,EAAK/F,WAAW4V,YAAYF,QAAQtjB,EAAKhC,IAGpD7gB,KAAK6iB,KAAOA,EACZ7iB,KAAKw2B,KAAOA,EACZx2B,KAAKykB,KAAOzkB,KAAKw2B,KAAK/R,KACtBzkB,KAAKs7D,UAAY,EACjBt7D,KAAKu7D,WAAY,EACjBv7D,KAAKw7D,gBAAkB,EACvBx7D,KAAKmlC,gBAAkB,GACvBnlC,KAAKy7D,YAAc,CACjBC,OAAQ,EACRC,SAAU37D,KAAK47D,gBACfv9D,EAAG,GACH6+C,OAAQ,GACRC,QAAS,GACTge,GAAI,GACJn2D,EAAG,GACH62D,cAAe,GACfrzD,EAAG,GACHszD,GAAI,EACJC,WAAY,GACZC,GAAI,GACJhD,GAAI,GACJ1wD,EAAG,GACH89C,GAAI,GACJ8U,GAAI,EACJhuD,EAAG,EACHowC,GAAI,EACJtQ,GAAI,EACJivB,GAAI,KACJC,eAAe,EACfC,iBAAiB,EACjBC,iBAAiB,EACjBC,QAAS,EACTC,UAAW,EACXC,UAAW,GACXC,gBAAiB,EACjB51C,YAAY,GAEd5mB,KAAKy8D,SAASz8D,KAAKy7D,YAAaz7D,KAAK6iB,KAAKhC,EAAElc,EAAE,GAAG2D,GAE5CtI,KAAK08D,kBACR18D,KAAK28D,iBAAiB38D,KAAKy7D,YAE/B,CA9dAnhD,gBAAgB,CAACivC,YAAagF,iBAAkBsE,eAAgBO,cAAeN,iBAAkBtJ,aAAcuJ,sBAAuB+H,iBAEtIA,gBAAgBxgE,UAAUsiE,qBAAuB,WAAa,EAE9D9B,gBAAgBxgE,UAAUuiE,eAAiB,IAAI9wB,OAE/C+uB,gBAAgBxgE,UAAUwiE,yBAA2B,WAAa,EAElEhC,gBAAgBxgE,UAAU86D,cAAgB,WACxCp1D,KAAK+8D,aAAa/8D,KAAKorD,WAAYprD,KAAKqrD,UAAWrrD,KAAKg4D,aAAch4D,KAAK4rD,aAAc,EAAG,IAAI,GAChG5rD,KAAKg9D,oBACP,EAMAlC,gBAAgBxgE,UAAU0iE,mBAAqB,WAC7C,IAAInjE,EAEAouC,EACAjjC,EAEAS,EAJAiV,EAAM1a,KAAKukB,OAAOzqB,OAGlB6pB,EAAO3jB,KAAK+6D,WAAWjhE,OAEvBmjE,EAAa,GACbC,GAAc,EAElB,IAAKl4D,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAAG,CAK5B,IAJAS,EAAQzF,KAAK+6D,WAAW/1D,GACxBk4D,GAAc,EACdD,EAAWnjE,OAAS,EAEfD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GAGa,KAFrCouC,EAAQjoC,KAAKukB,OAAO1qB,IAEVojD,OAAO51B,QAAQ5hB,KACvBw3D,EAAWz+D,KAAKypC,GAChBi1B,EAAcj1B,EAAMzB,aAAe02B,GAInCD,EAAWnjE,OAAS,GAAKojE,GAC3Bl9D,KAAKm9D,oBAAoBF,EAE7B,CACF,EAEAnC,gBAAgBxgE,UAAU6iE,oBAAsB,SAAU54C,GACxD,IAAI1qB,EACA6gB,EAAM6J,EAAOzqB,OAEjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB0qB,EAAO1qB,GAAGu5C,eAEd,EAEA0nB,gBAAgBxgE,UAAU8iE,mBAAqB,SAAUv6C,EAAMwzC,GAE7D,IAAIgH,EACAnG,EAAU,IAAIT,aAAa5zC,EAAMwzC,GACjCkC,EAAcrB,EAAQR,MAgD1B,MA9CgB,OAAZ7zC,EAAKsB,GACPk5C,EAAc,IAAIpG,mBAAmBj3D,KAAM6iB,EAAMq0C,GAC5B,OAAZr0C,EAAKsB,GACdk5C,EAAc,IAAIlG,iBAAiBn3D,KAAM6iB,EAAMq0C,GAC1B,OAAZr0C,EAAKsB,IAA2B,OAAZtB,EAAKsB,IAElCk5C,EAAc,IADwB,OAAZx6C,EAAKsB,GAAcyzC,yBAA2BE,4BAClC93D,KAAM6iB,EAAMq0C,GAClDl3D,KAAKywB,WAAWC,KAAKxE,YAAYmxC,EAAY3E,IAEzC2E,EAAYxE,SACd74D,KAAKywB,WAAWC,KAAKxE,YAAYmxC,EAAYpE,IAC7Cj5D,KAAKywB,WAAWC,KAAKxE,YAAYmxC,EAAYrE,IAC7CT,EAAYphC,aAAa,OAAQ,OAAS/c,kBAAoB,IAAMijD,EAAYxE,OAAS,OAEtE,OAAZh2C,EAAKsB,KACdk5C,EAAc,IAAIjG,eAAep3D,KAAM6iB,EAAMq0C,IAG/B,OAAZr0C,EAAKsB,IAA2B,OAAZtB,EAAKsB,KAC3Bo0C,EAAYphC,aAAa,iBAAkB8+B,YAAYpzC,EAAKk2C,IAAM,IAClER,EAAYphC,aAAa,kBAAmB++B,aAAarzC,EAAKu+B,IAAM,IACpEmX,EAAYphC,aAAa,eAAgB,KAEzB,IAAZtU,EAAKu+B,IACPmX,EAAYphC,aAAa,oBAAqBtU,EAAKs+B,KAIxC,IAAXt+B,EAAKnT,GACP6oD,EAAYphC,aAAa,YAAa,WAGpCtU,EAAKkxC,IACPwE,EAAYphC,aAAa,KAAMtU,EAAKkxC,IAGlClxC,EAAK6D,IACP6xC,EAAYphC,aAAa,QAAStU,EAAK6D,IAGrC7D,EAAK6oC,KACP6M,EAAY9yD,MAAM,kBAAoB8iD,aAAa1lC,EAAK6oC,KAG1D1rD,KAAK+6D,WAAWv8D,KAAK04D,GACrBl3D,KAAKs9D,sBAAsBz6C,EAAMw6C,GAC1BA,CACT,EAEAvC,gBAAgBxgE,UAAUijE,mBAAqB,SAAU16C,GACvD,IAAIw6C,EAAc,IAAItF,eActB,OAZIl1C,EAAKkxC,IACPsJ,EAAYpF,GAAG9gC,aAAa,KAAMtU,EAAKkxC,IAGrClxC,EAAK6D,IACP22C,EAAYpF,GAAG9gC,aAAa,QAAStU,EAAK6D,IAGxC7D,EAAK6oC,KACP2R,EAAYpF,GAAGxyD,MAAM,kBAAoB8iD,aAAa1lC,EAAK6oC,KAGtD2R,CACT,EAEAvC,gBAAgBxgE,UAAUkjE,uBAAyB,SAAU36C,EAAMwN,GACjE,IAAIotC,EAAoBloB,yBAAyBoB,qBAAqB32C,KAAM6iB,EAAM7iB,MAC9Eq9D,EAAc,IAAInF,iBAAiBuF,EAAmBA,EAAkBjuD,EAAG6gB,GAE/E,OADArwB,KAAKs9D,sBAAsBz6C,EAAMw6C,GAC1BA,CACT,EAEAvC,gBAAgBxgE,UAAUojE,mBAAqB,SAAU76C,EAAM86C,EAAiBtH,GAC9E,IAAIlyC,EAAK,EAEO,OAAZtB,EAAKsB,GACPA,EAAK,EACgB,OAAZtB,EAAKsB,GACdA,EAAK,EACgB,OAAZtB,EAAKsB,KACdA,EAAK,GAGP,IACIk5C,EAAc,IAAIlH,aAAawH,EAAiBtH,EADhC5tB,qBAAqB0mB,aAAanvD,KAAM6iB,EAAMsB,EAAInkB,OAKtE,OAHAA,KAAKukB,OAAO/lB,KAAK6+D,GACjBr9D,KAAKy1D,oBAAoB4H,GACzBr9D,KAAKs9D,sBAAsBz6C,EAAMw6C,GAC1BA,CACT,EAEAvC,gBAAgBxgE,UAAUgjE,sBAAwB,SAAUz6C,EAAMjE,GAIhE,IAHA,IAAI/kB,EAAI,EACJ6gB,EAAM1a,KAAKg7D,iBAAiBlhE,OAEzBD,EAAI6gB,GAAK,CACd,GAAI1a,KAAKg7D,iBAAiBnhE,GAAG+kB,UAAYA,EACvC,OAGF/kB,GAAK,CACP,CAEAmG,KAAKg7D,iBAAiBx8D,KAAK,CACzBpB,GAAIk8D,oBAAoBuB,qBAAqBh4C,GAC7CjE,QAASA,EACTiE,KAAMA,GAEV,EAEAi4C,gBAAgBxgE,UAAUsjE,iBAAmB,SAAUP,GACrD,IACIr4D,EADA6X,EAAMwgD,EAAYpgB,OAElBt5B,EAAO3jB,KAAK+6D,WAAWjhE,OAE3B,IAAKkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACpBhF,KAAK+6D,WAAW/1D,GAAGyhB,QACtB5J,EAAIre,KAAKwB,KAAK+6D,WAAW/1D,GAG/B,EAEA81D,gBAAgBxgE,UAAU+kD,aAAe,WAEvC,IAAIxlD,EADJmG,KAAKqlC,eAAgB,EAErB,IAAI3qB,EAAM1a,KAAKqrD,UAAUvxD,OAEzB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKg4D,aAAan+D,GAAKmG,KAAKqrD,UAAUxxD,GAOxC,IAJAmG,KAAK+8D,aAAa/8D,KAAKorD,WAAYprD,KAAKqrD,UAAWrrD,KAAKg4D,aAAch4D,KAAK4rD,aAAc,EAAG,IAAI,GAChG5rD,KAAKg9D,qBACLtiD,EAAM1a,KAAKumC,kBAAkBzsC,OAExBD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKumC,kBAAkB1sC,GAAGgsC,WAG5B7lC,KAAK61D,iBACP,EAEAiF,gBAAgBxgE,UAAUyiE,aAAe,SAAUlgD,EAAKwuC,EAAW2M,EAAc3nC,EAAWgmC,EAAOD,EAAc5kD,GAC/G,IACI3X,EAEAmL,EACA2e,EAGAk6C,EACAC,EACAC,EATAJ,EAAkB,GAAG54D,OAAOqxD,GAE5B17C,EAAMmC,EAAI/iB,OAAS,EAGnBkkE,EAAY,GACZC,EAAe,GAKnB,IAAKpkE,EAAI6gB,EAAK7gB,GAAK,EAAGA,GAAK,EAAG,CAS5B,IARAkkE,EAAe/9D,KAAK81D,uBAAuBj5C,EAAIhjB,KAK7CwxD,EAAUxxD,GAAKm+D,EAAa+F,EAAe,GAF3ClhD,EAAIhjB,GAAGglD,QAAUrtC,EAKD,OAAdqL,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,GAC5F45C,EAGH1S,EAAUxxD,GAAG4L,MAAMghB,QAAS,EAF5B4kC,EAAUxxD,GAAKmG,KAAKo9D,mBAAmBvgD,EAAIhjB,GAAIw8D,GAK7Cx5C,EAAIhjB,GAAGglD,SACLwM,EAAUxxD,GAAG4L,MAAMixD,MAAMtU,aAAe/xB,GAC1CA,EAAUnE,YAAYm/B,EAAUxxD,GAAG4L,MAAMixD,OAI7CsH,EAAUx/D,KAAK6sD,EAAUxxD,GAAG4L,YACvB,GAAkB,OAAdoX,EAAIhjB,GAAGsqB,GAAa,CAC7B,GAAK45C,EAKH,IAFAp6C,EAAO0nC,EAAUxxD,GAAGoC,GAAGnC,OAElBkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzBqmD,EAAUxxD,GAAGm+D,aAAahzD,GAAKqmD,EAAUxxD,GAAGoC,GAAG+I,QALjDqmD,EAAUxxD,GAAKmG,KAAKu9D,mBAAmB1gD,EAAIhjB,IAS7CmG,KAAK+8D,aAAalgD,EAAIhjB,GAAGoC,GAAIovD,EAAUxxD,GAAGoC,GAAIovD,EAAUxxD,GAAGm+D,aAAc3M,EAAUxxD,GAAGo+D,GAAI5B,EAAQ,EAAGsH,EAAiBnsD,GAElHqL,EAAIhjB,GAAGglD,SACLwM,EAAUxxD,GAAGo+D,GAAG7V,aAAe/xB,GACjCA,EAAUnE,YAAYm/B,EAAUxxD,GAAGo+D,GAGzC,KAAyB,OAAdp7C,EAAIhjB,GAAGsqB,IACX45C,IACH1S,EAAUxxD,GAAKmG,KAAKw9D,uBAAuB3gD,EAAIhjB,GAAIw2B,IAGrDwtC,EAAmBxS,EAAUxxD,GAAGyzC,UAChCqwB,EAAgBn/D,KAAKq/D,IACE,OAAdhhD,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAC7E45C,IACH1S,EAAUxxD,GAAKmG,KAAK09D,mBAAmB7gD,EAAIhjB,GAAI8jE,EAAiBtH,IAGlEr2D,KAAK49D,iBAAiBvS,EAAUxxD,KACT,OAAdgjB,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IACzH45C,GAMHD,EAAWzS,EAAUxxD,IACZ4sB,QAAS,IANlBq3C,EAAWnrB,eAAeG,YAAYj2B,EAAIhjB,GAAGsqB,KACpCyQ,KAAK50B,KAAM6c,EAAIhjB,IACxBwxD,EAAUxxD,GAAKikE,EACf99D,KAAK01D,eAAel3D,KAAKs/D,IAM3BG,EAAaz/D,KAAKs/D,IACK,OAAdjhD,EAAIhjB,GAAGsqB,KACX45C,GAOHD,EAAWzS,EAAUxxD,IACZ4sB,QAAS,GAPlBq3C,EAAWnrB,eAAeG,YAAYj2B,EAAIhjB,GAAGsqB,IAC7CknC,EAAUxxD,GAAKikE,EACfA,EAASlpC,KAAK50B,KAAM6c,EAAKhjB,EAAGwxD,GAC5BrrD,KAAK01D,eAAel3D,KAAKs/D,GACzBtsD,GAAS,GAMXysD,EAAaz/D,KAAKs/D,IAGpB99D,KAAKg2D,oBAAoBn5C,EAAIhjB,GAAIA,EAAI,EACvC,CAIA,IAFA6gB,EAAMsjD,EAAUlkE,OAEXD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmkE,EAAUnkE,GAAG4sB,QAAS,EAKxB,IAFA/L,EAAMujD,EAAankE,OAEdD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBokE,EAAapkE,GAAG4sB,QAAS,CAE7B,EAEAq0C,gBAAgBxgE,UAAU+6D,mBAAqB,WAE7C,IAAIx7D,EADJmG,KAAK61D,kBAEL,IAAIn7C,EAAM1a,KAAK+6D,WAAWjhE,OAE1B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAK+6D,WAAWlhE,GAAGqX,QAKrB,IAFAlR,KAAKk+D,cAEArkE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GACpBmG,KAAK+6D,WAAWlhE,GAAGmrC,MAAQhlC,KAAKqlC,iBAC9BrlC,KAAK+6D,WAAWlhE,GAAG88D,SACrB32D,KAAK+6D,WAAWlhE,GAAG88D,OAAOx/B,aAAa,IAAKn3B,KAAK+6D,WAAWlhE,GAAGgnB,GAE/D7gB,KAAK+6D,WAAWlhE,GAAGgnB,EAAI,OAAS7gB,KAAK+6D,WAAWlhE,GAAGgnB,GAGrD7gB,KAAK+6D,WAAWlhE,GAAG68D,MAAMv/B,aAAa,IAAKn3B,KAAK+6D,WAAWlhE,GAAGgnB,GAAK,QAGzE,EAEAi6C,gBAAgBxgE,UAAU4jE,YAAc,WACtC,IAAIrkE,EAEAskE,EADAzjD,EAAM1a,KAAKg7D,iBAAiBlhE,OAGhC,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBskE,EAAkBn+D,KAAKg7D,iBAAiBnhE,IAEnCmG,KAAKqlC,eAAiB84B,EAAgBv/C,QAAQ4nB,eAAyC,IAAzB23B,EAAgBt7C,MACjFs7C,EAAgB/gE,GAAG+gE,EAAgBt7C,KAAMs7C,EAAgBv/C,QAAS5e,KAAKqlC,cAG7E,EAEAy1B,gBAAgBxgE,UAAU2Y,QAAU,WAClCjT,KAAKq0D,qBACLr0D,KAAKorD,WAAa,KAClBprD,KAAKqrD,UAAY,IACnB,EAmBA4P,YAAY3gE,UAAU+U,OAAS,SAAUG,EAAG0rD,EAAI9U,EAAI+U,EAAIjuB,EAAGr9B,GACzD7P,KAAKglC,KAAKx1B,GAAI,EACdxP,KAAKglC,KAAKk2B,IAAK,EACfl7D,KAAKglC,KAAKohB,IAAK,EACfpmD,KAAKglC,KAAKm2B,IAAK,EACfn7D,KAAKglC,KAAKkI,GAAI,EACdltC,KAAKglC,KAAKn1B,GAAI,EACd,IAAIuuD,GAAU,EAsCd,OApCIp+D,KAAKwP,IAAMA,IACbxP,KAAKwP,EAAIA,EACTxP,KAAKglC,KAAKx1B,GAAI,EACd4uD,GAAU,GAGRp+D,KAAKk7D,KAAOA,IACdl7D,KAAKk7D,GAAKA,EACVl7D,KAAKglC,KAAKk2B,IAAK,EACfkD,GAAU,GAGRp+D,KAAKomD,KAAOA,IACdpmD,KAAKomD,GAAKA,EACVpmD,KAAKglC,KAAKohB,IAAK,EACfgY,GAAU,GAGRp+D,KAAKm7D,KAAOA,IACdn7D,KAAKm7D,GAAKA,EACVn7D,KAAKglC,KAAKm2B,IAAK,EACfiD,GAAU,GAGRp+D,KAAKktC,IAAMA,IACbltC,KAAKktC,EAAIA,EACTltC,KAAKglC,KAAKkI,GAAI,EACdkxB,GAAU,IAGRvuD,EAAE/V,QAAWkG,KAAK6P,EAAE,KAAOA,EAAE,IAAM7P,KAAK6P,EAAE,KAAOA,EAAE,IAAM7P,KAAK6P,EAAE,KAAOA,EAAE,IAAM7P,KAAK6P,EAAE,KAAOA,EAAE,IAAM7P,KAAK6P,EAAE,MAAQA,EAAE,KAAO7P,KAAK6P,EAAE,MAAQA,EAAE,MAChJ7P,KAAK6P,EAAIA,EACT7P,KAAKglC,KAAKn1B,GAAI,EACduuD,GAAU,GAGLA,CACT,EA0DAhD,aAAa9gE,UAAUshE,gBAAkB,CAAC,EAAG,GAE7CR,aAAa9gE,UAAUmiE,SAAW,SAAUnjE,EAAKupB,GAC/C,IAAK,IAAIva,KAAKua,EACRloB,OAAOL,UAAUM,eAAeC,KAAKgoB,EAAMva,KAC7ChP,EAAIgP,GAAKua,EAAKva,IAIlB,OAAOhP,CACT,EAEA8hE,aAAa9gE,UAAU+jE,eAAiB,SAAUx7C,GAC3CA,EAAK+D,YACR5mB,KAAK28D,iBAAiB95C,GAGxB7iB,KAAKy7D,YAAc54C,EACnB7iB,KAAKy7D,YAAYE,SAAW37D,KAAKy7D,YAAYE,UAAY37D,KAAK47D,gBAC9D57D,KAAKglC,MAAO,CACd,EAEAo2B,aAAa9gE,UAAUoiE,eAAiB,WACtC,OAAO18D,KAAKs+D,iBACd,EAEAlD,aAAa9gE,UAAUgkE,gBAAkB,WAOvC,OANAt+D,KAAKulC,GAAKvlC,KAAK6iB,KAAKhC,EAAElc,EAAE7K,OAAS,EAE7BkG,KAAKulC,IACPvlC,KAAKwlC,UAAUxlC,KAAKu+D,iBAAiB3zC,KAAK5qB,OAGrCA,KAAKulC,EACd,EAEA61B,aAAa9gE,UAAUkrC,UAAY,SAAUC,GAC3CzlC,KAAKmlC,gBAAgB3mC,KAAKinC,GAC1BzlC,KAAKw2B,KAAKkP,mBAAmB1lC,KAC/B,EAEAo7D,aAAa9gE,UAAUurC,SAAW,SAAU24B,GAC1C,GAAKx+D,KAAKw2B,KAAK/F,WAAWyU,UAAYllC,KAAKklC,SAAYllC,KAAKmlC,gBAAgBrrC,QAAY0kE,EAAxF,CAIAx+D,KAAKy7D,YAAYvuD,EAAIlN,KAAK6iB,KAAKhC,EAAElc,EAAE3E,KAAKs7D,WAAWhzD,EAAE4E,EACrD,IAAIuxD,EAAez+D,KAAKy7D,YACpBiD,EAAe1+D,KAAKs7D,UAExB,GAAIt7D,KAAKolC,KACPplC,KAAKq+D,eAAer+D,KAAKy7D,iBAD3B,CAOA,IAAI5hE,EAFJmG,KAAKolC,MAAO,EACZplC,KAAKglC,MAAO,EAEZ,IAAItqB,EAAM1a,KAAKmlC,gBAAgBrrC,OAC3BwrC,EAAak5B,GAAex+D,KAAK6iB,KAAKhC,EAAElc,EAAE3E,KAAKs7D,WAAWhzD,EAE9D,IAAKzO,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAGtByrC,EADEo5B,IAAiB1+D,KAAKs7D,UACXt7D,KAAKmlC,gBAAgBtrC,GAAGyrC,EAAYA,EAAWp4B,GAE/ClN,KAAKmlC,gBAAgBtrC,GAAGmG,KAAKy7D,YAAan2B,EAAWp4B,GAIlEuxD,IAAiBn5B,GACnBtlC,KAAKq+D,eAAe/4B,GAGtBtlC,KAAK0gB,EAAI1gB,KAAKy7D,YACdz7D,KAAKugC,GAAKvgC,KAAK0gB,EACf1gB,KAAKolC,MAAO,EACZplC,KAAKklC,QAAUllC,KAAKw2B,KAAK/F,WAAWyU,OAxBpC,CATA,CAkCF,EAEAk2B,aAAa9gE,UAAUikE,iBAAmB,WAMxC,IALA,IAAII,EAAW3+D,KAAK6iB,KAAKhC,EAAElc,EACvBu7B,EAAWlgC,KAAKw2B,KAAK/R,KAAKggB,cAC1B5qC,EAAI,EACJ6gB,EAAMikD,EAAS7kE,OAEZD,GAAK6gB,EAAM,KACZ7gB,IAAM6gB,EAAM,GAAKikD,EAAS9kE,EAAI,GAAGqT,EAAIgzB,IAIzCrmC,GAAK,EAOP,OAJImG,KAAKs7D,YAAczhE,IACrBmG,KAAKs7D,UAAYzhE,GAGZmG,KAAK6iB,KAAKhC,EAAElc,EAAE3E,KAAKs7D,WAAWhzD,CACvC,EAEA8yD,aAAa9gE,UAAUskE,eAAiB,SAAUjb,GAUhD,IATA,IAGImB,EACAH,EAJAka,EAAkB,GAClBhlE,EAAI,EACJ6gB,EAAMipC,EAAK7pD,OAGXglE,GAAgB,EAChBC,GAAoB,EACpBC,EAAe,GAEZnlE,EAAI6gB,GACTokD,EAAgBC,EAChBA,GAAoB,EACpBja,EAAWnB,EAAKl7C,WAAW5O,GAC3BmlE,EAAerb,EAAKj7C,OAAO7O,GAEvB4nD,YAAYuD,oBAAoBF,GAClCga,GAAgB,EACPha,GAAY,OAAUA,GAAY,MACvCrD,YAAYyD,eAAevB,EAAM9pD,GACnCmlE,EAAerb,EAAK3yB,OAAOn3B,EAAG,KAE9B8qD,EAAiBhB,EAAKl7C,WAAW5O,EAAI,KAEf,OAAU8qD,GAAkB,QAC5ClD,YAAYgD,WAAWK,EAAUH,IACnCqa,EAAerb,EAAK3yB,OAAOn3B,EAAG,GAC9BilE,GAAgB,GAEhBE,EADSvd,YAAYsD,YAAYpB,EAAK3yB,OAAOn3B,EAAG,IACjC8pD,EAAK3yB,OAAOn3B,EAAG,GAEf8pD,EAAK3yB,OAAOn3B,EAAG,IAI3BirD,EAAW,OACpBH,EAAiBhB,EAAKl7C,WAAW5O,EAAI,GAEjC4nD,YAAY0D,oBAAoBL,KAClCga,GAAgB,IAETrd,YAAYoD,kBAAkBC,KACvCga,GAAgB,EAChBC,GAAoB,GAGlBD,GACFD,EAAgBA,EAAgB/kE,OAAS,IAAMklE,EAC/CF,GAAgB,GAEhBD,EAAgBrgE,KAAKwgE,GAGvBnlE,GAAKmlE,EAAallE,OAGpB,OAAO+kE,CACT,EAEAzD,aAAa9gE,UAAUqiE,iBAAmB,SAAUr3C,GAClDA,EAAasB,YAAa,EAC1B,IAGI/sB,EACA6gB,EACAukD,EAEAj2D,EAQAhE,EACA2e,EAEAiC,EAlBA+L,EAAc3xB,KAAKw2B,KAAK/F,WAAWkB,YACnC9O,EAAO7iB,KAAK6iB,KACZq8C,EAAU,GAIVriE,EAAQ,EAERsiE,EAAiBt8C,EAAKqqB,EAAEvsB,EACxBy+C,EAAc,EACdC,EAAa,EACbC,EAAc,EACdvD,EAAa,GACbwD,EAAY,EACZC,EAAe,EAGfxiB,EAAWrrB,EAAY60B,cAAclhC,EAAajnB,GAElDi5D,EAAU,EACVlU,EAAYrG,kBAAkBC,GAClC13B,EAAa63B,QAAUiG,EAAU/F,OACjC/3B,EAAa43B,OAASkG,EAAU39C,MAChC6f,EAAag3C,UAAYh3C,EAAahd,EACtCgd,EAAai3C,UAAYv8D,KAAK4+D,eAAet5C,EAAapY,GAC1DwN,EAAM4K,EAAai3C,UAAUziE,OAC7BwrB,EAAak3C,gBAAkBl3C,EAAaw2C,GAC5C,IACIhX,EADA2a,EAAiBn6C,EAAag4B,GAAK,IAAOh4B,EAAag3C,UAG3D,GAAIh3C,EAAa0nB,GAOf,IANA,IAGI0yB,EACAnD,EAJAtiD,GAAO,EACP0hD,EAAWr2C,EAAa0nB,GAAG,GAC3B2yB,EAAYr6C,EAAa0nB,GAAG,GAIzB/yB,GAAM,CAEXylD,EAAgB,EAChBH,EAAY,EACZ7kD,GAHA6hD,EAAYv8D,KAAK4+D,eAAet5C,EAAapY,IAG7BpT,OAChB2lE,EAAiBn6C,EAAag4B,GAAK,IAAOh4B,EAAag3C,UACvD,IAAIsD,GAAkB,EAEtB,IAAK/lE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBirD,EAAWyX,EAAU1iE,GAAG4O,WAAW,GACnCw2D,GAAc,EAEO,MAAjB1C,EAAU1iE,GACZ+lE,EAAiB/lE,EACK,KAAbirD,GAAgC,IAAbA,IAC5Bya,EAAY,EACZN,GAAc,EACdS,GAAiBp6C,EAAak3C,iBAA4C,IAAzBl3C,EAAag3C,WAG5D3qC,EAAYhM,OACdC,EAAW+L,EAAY00B,YAAYkW,EAAU1iE,GAAImjD,EAASE,OAAQF,EAASsG,SAC3EgU,EAAU2H,EAAc,EAAIr5C,EAASjiB,EAAI2hB,EAAag3C,UAAY,KAGlEhF,EAAU3lC,EAAY+xB,YAAY6Y,EAAU1iE,GAAIyrB,EAAajnB,EAAGinB,EAAag3C,WAG3EiD,EAAYjI,EAAUqE,GAA6B,MAAjBY,EAAU1iE,KACtB,IAApB+lE,EACFllD,GAAO,EAEP7gB,EAAI+lE,EAGNF,GAAiBp6C,EAAak3C,iBAA4C,IAAzBl3C,EAAag3C,UAC9DC,EAAUrpD,OAAOrZ,EAAG+lE,IAAmB/lE,EAAI,EAAI,EAAG,MAElD+lE,GAAkB,EAClBL,EAAY,IAEZA,GAAajI,EACbiI,GAAaE,GAIjBC,GAAiB1iB,EAAS0e,OAASp2C,EAAag3C,UAAY,IAExDt8D,KAAKu7D,WAAaj2C,EAAag3C,UAAYt8D,KAAKw7D,iBAAmBmE,EAAYD,GACjFp6C,EAAag3C,WAAa,EAC1Bh3C,EAAak3C,gBAAkBl3C,EAAag3C,UAAYh3C,EAAaw2C,GAAKx2C,EAAahd,IAEvFgd,EAAai3C,UAAYA,EACzB7hD,EAAM4K,EAAai3C,UAAUziE,OAC7BmgB,GAAO,EAEX,CAGFslD,GAAaE,EACbnI,EAAU,EACV,IACIuI,EADAC,EAAoB,EAGxB,IAAKjmE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EA6CxB,GA5CAolE,GAAc,EAIG,MAFjBna,GADA+a,EAAcv6C,EAAai3C,UAAU1iE,IACd4O,WAAW,KAEE,IAAbq8C,GACrBgb,EAAoB,EACpB/D,EAAWv9D,KAAK+gE,GAChBC,EAAeD,EAAYC,EAAeD,EAAYC,EACtDD,GAAa,EAAIE,EACjBz2D,EAAM,GACNi2D,GAAc,EACdK,GAAe,GAEft2D,EAAM62D,EAGJluC,EAAYhM,OACdC,EAAW+L,EAAY00B,YAAYwZ,EAAa7iB,EAASE,OAAQvrB,EAAY60B,cAAclhC,EAAajnB,GAAGilD,SAC3GgU,EAAU2H,EAAc,EAAIr5C,EAASjiB,EAAI2hB,EAAag3C,UAAY,KAIlEhF,EAAU3lC,EAAY+xB,YAAY16C,EAAKsc,EAAajnB,EAAGinB,EAAag3C,WAIlD,MAAhBuD,EACFC,GAAqBxI,EAAUmI,GAE/BF,GAAajI,EAAUmI,EAAiBK,EACxCA,EAAoB,GAGtBZ,EAAQ1gE,KAAK,CACXgK,EAAG8uD,EACHyI,GAAIzI,EACJ0I,IAAKZ,EACLjyD,EAAG8xD,EACHgB,UAAW,GACXj3D,IAAKA,EACL6jB,KAAMyyC,EACNY,sBAAuB,IAGH,GAAlBf,GAIF,GAFAC,GAAe9H,EAEH,KAARtuD,GAAsB,MAARA,GAAenP,IAAM6gB,EAAM,EAAG,CAK9C,IAJY,KAAR1R,GAAsB,MAARA,IAChBo2D,GAAe9H,GAGV+H,GAAcxlE,GACnBqlE,EAAQG,GAAYU,GAAKX,EACzBF,EAAQG,GAAYh+B,IAAMxkC,EAC1BqiE,EAAQG,GAAYc,MAAQ7I,EAC5B+H,GAAc,EAGhBxiE,GAAS,EACTuiE,EAAc,CAChB,OACK,GAAsB,GAAlBD,GAIT,GAFAC,GAAe9H,EAEH,KAARtuD,GAAcnP,IAAM6gB,EAAM,EAAG,CAK/B,IAJY,KAAR1R,IACFo2D,GAAe9H,GAGV+H,GAAcxlE,GACnBqlE,EAAQG,GAAYU,GAAKX,EACzBF,EAAQG,GAAYh+B,IAAMxkC,EAC1BqiE,EAAQG,GAAYc,MAAQ7I,EAC5B+H,GAAc,EAGhBD,EAAc,EACdviE,GAAS,CACX,OAEAqiE,EAAQriE,GAAOwkC,IAAMxkC,EACrBqiE,EAAQriE,GAAOsjE,MAAQ,EACvBtjE,GAAS,EAQb,GAJAyoB,EAAa9c,EAAI02D,EACjBM,EAAeD,EAAYC,EAAeD,EAAYC,EACtDzD,EAAWv9D,KAAK+gE,GAEZj6C,EAAa0nB,GACf1nB,EAAaq2C,SAAWr2C,EAAa0nB,GAAG,GACxC1nB,EAAau2C,cAAgB,OAI7B,OAFAv2C,EAAaq2C,SAAW6D,EAEhBl6C,EAAatgB,GACnB,KAAK,EACHsgB,EAAau2C,eAAiBv2C,EAAaq2C,SAC3C,MAEF,KAAK,EACHr2C,EAAau2C,eAAiBv2C,EAAaq2C,SAAW,EACtD,MAEF,QACEr2C,EAAau2C,cAAgB,EAInCv2C,EAAay2C,WAAaA,EAC1B,IACIqE,EACAC,EAEAC,EACAj/B,EALAk/B,EAAY19C,EAAKtlB,EAGrBomB,EAAO48C,EAAUzmE,OAGjB,IAAI0mE,EAAU,GAEd,IAAKx7D,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAAG,CAkB5B,KAjBAo7D,EAAeG,EAAUv7D,IAERzH,EAAE6oD,KACjB9gC,EAAa62C,iBAAkB,GAG7BiE,EAAa7iE,EAAE29D,KACjB51C,EAAa82C,iBAAkB,IAG7BgE,EAAa7iE,EAAE49D,IAAMiF,EAAa7iE,EAAEkjE,IAAML,EAAa7iE,EAAEmjE,IAAMN,EAAa7iE,EAAEojE,MAChFr7C,EAAa42C,eAAgB,GAG/B76B,EAAM,EACNi/B,EAAQF,EAAa93D,EAAE9K,EAElB3D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GACxBwmE,EAAanB,EAAQrlE,IACVomE,UAAUj7D,GAAKq8B,GAEb,GAATi/B,GAAiC,KAAnBD,EAAWr3D,KAAuB,GAATs3D,GAAiC,KAAnBD,EAAWr3D,KAAiC,MAAnBq3D,EAAWr3D,KAAwB,GAATs3D,IAAeD,EAAWlzD,GAAuB,KAAlBkzD,EAAWr3D,KAAcnP,GAAK6gB,EAAM,IAAe,GAAT4lD,IAAeD,EAAWlzD,GAAKtT,GAAK6gB,EAAM,MAEnM,IAAtB0lD,EAAa93D,EAAEs4D,IACjBJ,EAAQhiE,KAAK6iC,GAGfA,GAAO,GAIXxe,EAAKtlB,EAAEyH,GAAGsD,EAAEu4D,WAAax/B,EACzB,IACIy/B,EADAC,GAAc,EAGlB,GAA0B,IAAtBX,EAAa93D,EAAEs4D,GACjB,IAAK/mE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAGpBknE,IAFJV,EAAanB,EAAQrlE,IAEQomE,UAAUj7D,KAErC+7D,EAAaV,EAAWJ,UAAUj7D,GAClC87D,EAASN,EAAQttD,OAAO1S,KAAKsI,MAAMtI,KAAK2I,SAAWq3D,EAAQ1mE,QAAS,GAAG,IAGzEumE,EAAWJ,UAAUj7D,GAAK87D,CAGhC,CAEAx7C,EAAa+2C,QAAU/2C,EAAak3C,iBAA4C,IAAzBl3C,EAAag3C,UACpEh3C,EAAa02C,GAAK12C,EAAa02C,IAAM,EACrC12C,EAAao2C,OAAS1e,EAAS0e,OAASp2C,EAAag3C,UAAY,GACnE,EAEAlB,aAAa9gE,UAAUq7B,mBAAqB,SAAUqrC,EAASnkE,GAC7DA,OAAkBS,IAAVT,EAAsBmD,KAAKs7D,UAAYz+D,EAC/C,IAAIokE,EAAQjhE,KAAKy8D,SAAS,CAAC,EAAGz8D,KAAK6iB,KAAKhC,EAAElc,EAAE9H,GAAOyL,GACnD24D,EAAQjhE,KAAKy8D,SAASwE,EAAOD,GAC7BhhE,KAAK6iB,KAAKhC,EAAElc,EAAE9H,GAAOyL,EAAI24D,EACzBjhE,KAAKkhE,YAAYrkE,GACjBmD,KAAKq+D,eAAe4C,GACpBjhE,KAAKw2B,KAAKkP,mBAAmB1lC,KAC/B,EAEAo7D,aAAa9gE,UAAU4mE,YAAc,SAAUrkE,GAC7C,IAAIokE,EAAQjhE,KAAK6iB,KAAKhC,EAAElc,EAAE9H,GAAOyL,EACjC24D,EAAMr6C,YAAa,EACnB5mB,KAAKs7D,UAAY,EACjBt7D,KAAKqlC,eAAgB,EACrBrlC,KAAK6lC,SAASo7B,EAChB,EAEA7F,aAAa9gE,UAAU6mE,cAAgB,SAAUC,GAC/CphE,KAAKu7D,UAAY6F,EACjBphE,KAAKkhE,YAAYlhE,KAAKs7D,WACtBt7D,KAAKw2B,KAAKkP,mBAAmB1lC,KAC/B,EAEAo7D,aAAa9gE,UAAU+mE,mBAAqB,SAAUC,GACpDthE,KAAKw7D,gBAAkBh7D,KAAKsI,MAAMw4D,IAAe,EACjDthE,KAAKkhE,YAAYlhE,KAAKs7D,WACtBt7D,KAAKw2B,KAAKkP,mBAAmB1lC,KAC/B,EAEA,IAAIuhE,iBAAmB,WACrB,IAAI54D,EAAMnI,KAAKmI,IACXC,EAAMpI,KAAKoI,IACXE,EAAQtI,KAAKsI,MAEjB,SAAS04D,EAAwBhrC,EAAM3T,GACrC7iB,KAAKyhE,oBAAsB,EAC3BzhE,KAAK2E,GAAI,EACT3E,KAAK6iB,KAAOA,EACZ7iB,KAAKw2B,KAAOA,EACZx2B,KAAKykB,KAAO+R,EAAK/R,KACjBzkB,KAAK0hE,OAAS,EACd1hE,KAAK2hE,OAAS,EACd3hE,KAAK0mC,6BAA6BlQ,GAClCx2B,KAAKsI,EAAI49B,gBAAgBC,QAAQ3P,EAAM3T,EAAKva,GAAK,CAC/C3D,EAAG,GACF,EAAG,EAAG3E,MAGPA,KAAKM,EADH,MAAOuiB,EACAqjB,gBAAgBC,QAAQ3P,EAAM3T,EAAKviB,EAAG,EAAG,EAAGN,MAE5C,CACP0gB,EAAG,KAIP1gB,KAAKwP,EAAI02B,gBAAgBC,QAAQ3P,EAAM3T,EAAKrT,GAAK,CAC/C7K,EAAG,GACF,EAAG,EAAG3E,MACTA,KAAK4hE,GAAK17B,gBAAgBC,QAAQ3P,EAAM3T,EAAK++C,IAAM,CACjDj9D,EAAG,GACF,EAAG,EAAG3E,MACTA,KAAK6hE,GAAK37B,gBAAgBC,QAAQ3P,EAAM3T,EAAKg/C,IAAM,CACjDl9D,EAAG,GACF,EAAG,EAAG3E,MACTA,KAAK8hE,GAAK57B,gBAAgBC,QAAQ3P,EAAM3T,EAAKi/C,IAAM,CACjDn9D,EAAG,KACF,EAAG,EAAG3E,MACTA,KAAKzC,EAAI2oC,gBAAgBC,QAAQ3P,EAAM3T,EAAKtlB,EAAG,EAAG,IAAMyC,MAEnDA,KAAKumC,kBAAkBzsC,QAC1BkG,KAAK6lC,UAET,CA+JA,OA7JA27B,EAAwBlnE,UAAY,CAClCynE,QAAS,SAAiB1gC,GACpBrhC,KAAKyhE,qBAAuBzhE,KAAKw2B,KAAKwrC,aAAavG,YAAYjzD,EAAE1O,QACnEkG,KAAK6lC,WAGP,IAAIvK,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAELz7B,KAAK6hE,GAAGnhD,EAAI,EACd4a,EAAKt7B,KAAK6hE,GAAGnhD,EAAI,IAEjB6a,GAAMv7B,KAAK6hE,GAAGnhD,EAAI,IAGhB1gB,KAAK4hE,GAAGlhD,EAAI,EACd8a,EAAK,EAAMx7B,KAAK4hE,GAAGlhD,EAAI,IAEvB+a,EAAK,EAAMz7B,KAAK4hE,GAAGlhD,EAAI,IAGzB,IAAIuhD,EAAQrqC,cAAc2J,gBAAgBjG,EAAIC,EAAIC,EAAIC,GAAI99B,IACtDonC,EAAO,EACPz8B,EAAItI,KAAK0hE,OACTphE,EAAIN,KAAK2hE,OACT5iE,EAAOiB,KAAK6iB,KAAKuf,GAErB,GAAa,IAATrjC,EAOFgmC,EAAOk9B,EALLl9B,EADEzkC,IAAMgI,EACD+4B,GAAO/gC,EAAI,EAAI,EAEfqI,EAAI,EAAGC,EAAI,IAAOtI,EAAIgI,IAAM+4B,EAAM/4B,IAAMhI,EAAIgI,GAAI,UAIpD,GAAa,IAATvJ,EAOTgmC,EAAOk9B,EALLl9B,EADEzkC,IAAMgI,EACD+4B,GAAO/gC,EAAI,EAAI,EAEf,EAAIqI,EAAI,EAAGC,EAAI,IAAOtI,EAAIgI,IAAM+4B,EAAM/4B,IAAMhI,EAAIgI,GAAI,UAIxD,GAAa,IAATvJ,EACLuB,IAAMgI,EACRy8B,EAAO,GAEPA,EAAOp8B,EAAI,EAAGC,EAAI,IAAOtI,EAAIgI,IAAM+4B,EAAM/4B,IAAMhI,EAAIgI,GAAI,KAE5C,GACTy8B,GAAQ,EAERA,EAAO,EAAI,GAAKA,EAAO,IAI3BA,EAAOk9B,EAAMl9B,QACR,GAAa,IAAThmC,EAAY,CACrB,GAAIuB,IAAMgI,EACRy8B,EAAO,MACF,CACL,IAAIm9B,EAAM5hE,EAAIgI,EAKVuwB,GAAKqpC,EAAM,GADf7gC,EAAMz4B,EAAID,EAAI,EAAG04B,EAAM,GAAM/4B,GAAIhI,EAAIgI,IAEjC/K,EAAI2kE,EAAM,EACdn9B,EAAOvkC,KAAKod,KAAK,EAAIib,EAAIA,GAAKt7B,EAAIA,GACpC,CAEAwnC,EAAOk9B,EAAMl9B,EACf,MAAoB,IAAThmC,GACLuB,IAAMgI,EACRy8B,EAAO,GAEP1D,EAAMz4B,EAAID,EAAI,EAAG04B,EAAM,GAAM/4B,GAAIhI,EAAIgI,GACrCy8B,GAAQ,EAAIvkC,KAAK0jC,IAAI1jC,KAAK8d,GAAe,EAAV9d,KAAK8d,GAAS+iB,GAAO/gC,EAAIgI,KAAO,GAGjEy8B,EAAOk9B,EAAMl9B,KAET1D,GAAOv4B,EAAMR,KAEby8B,EAAOp8B,EAAI,EAAGC,EADZy4B,EAAM/4B,EAAI,EACMM,EAAItI,EAAG,IAAMgI,EAAI+4B,GAEjB/gC,EAAI+gC,EAFmB,KAM7C0D,EAAOk9B,EAAMl9B,IAaf,GAAkB,MAAd/kC,KAAK8hE,GAAGphD,EAAW,CACrB,IAAIyhD,EAAyB,IAAZniE,KAAK8hE,GAAGphD,EAEN,IAAfyhD,IACFA,EAAa,MAGf,IAAIC,EAAY,GAAmB,GAAbD,EAElBp9B,EAAOq9B,EACTr9B,EAAO,GAEPA,GAAQA,EAAOq9B,GAAaD,GAEjB,IACTp9B,EAAO,EAGb,CAEA,OAAOA,EAAO/kC,KAAKzC,EAAEmjB,CACvB,EACAmlB,SAAU,SAAkBw8B,GAC1BriE,KAAKymC,2BACLzmC,KAAKglC,KAAOq9B,GAAgBriE,KAAKglC,KACjChlC,KAAKyhE,mBAAqBzhE,KAAKw2B,KAAKwrC,aAAavG,YAAYjzD,EAAE1O,QAAU,EAErEuoE,GAAgC,IAAhBriE,KAAK6iB,KAAKnT,IAC5B1P,KAAKM,EAAEogB,EAAI1gB,KAAKyhE,oBAGlB,IAAIa,EAA0B,IAAhBtiE,KAAK6iB,KAAKnT,EAAU,EAAI,IAAM1P,KAAK6iB,KAAKg+C,WAClDrxD,EAAIxP,KAAKwP,EAAEkR,EAAI4hD,EACfh6D,EAAItI,KAAKsI,EAAEoY,EAAI4hD,EAAU9yD,EACzBlP,EAAIN,KAAKM,EAAEogB,EAAI4hD,EAAU9yD,EAE7B,GAAIlH,EAAIhI,EAAG,CACT,IAAI6zC,EAAK7rC,EACTA,EAAIhI,EACJA,EAAI6zC,CACN,CAEAn0C,KAAK0hE,OAASp5D,EACdtI,KAAK2hE,OAASrhE,CAChB,GAEFga,gBAAgB,CAACgsB,0BAA2Bk7B,GAMrC,CACLe,oBALF,SAA6B/rC,EAAM3T,EAAMhG,GACvC,OAAO,IAAI2kD,EAAwBhrC,EAAM3T,EAAMhG,EACjD,EAKF,CA7MuB,GA+MvB,SAAS2lD,yBAAyBhsC,EAAMisC,EAAepyC,GACrD,IAAIqyC,EAAc,CAChBpiC,UAAU,GAER6F,EAAUD,gBAAgBC,QAC1Bw8B,EAA0BF,EAAcllE,EAC5CyC,KAAKzC,EAAI,CACPmS,EAAGizD,EAAwBjzD,EAAIy2B,EAAQ3P,EAAMmsC,EAAwBjzD,EAAG,EAAG2O,UAAWgS,GAAaqyC,EACnG5sB,GAAI6sB,EAAwB7sB,GAAK3P,EAAQ3P,EAAMmsC,EAAwB7sB,GAAI,EAAGz3B,UAAWgS,GAAaqyC,EACtG3sB,GAAI4sB,EAAwB5sB,GAAK5P,EAAQ3P,EAAMmsC,EAAwB5sB,GAAI,EAAG13B,UAAWgS,GAAaqyC,EACtGz8C,GAAI08C,EAAwB18C,GAAKkgB,EAAQ3P,EAAMmsC,EAAwB18C,GAAI,EAAG5H,UAAWgS,GAAaqyC,EACtGx8C,GAAIy8C,EAAwBz8C,GAAKigB,EAAQ3P,EAAMmsC,EAAwBz8C,GAAI,EAAG7H,UAAWgS,GAAaqyC,EACtGp6D,EAAGq6D,EAAwBr6D,EAAI69B,EAAQ3P,EAAMmsC,EAAwBr6D,EAAG,EAAG,IAAM+nB,GAAaqyC,EAC9FnlE,EAAGolE,EAAwBplE,EAAI4oC,EAAQ3P,EAAMmsC,EAAwBplE,EAAG,EAAG,EAAG8yB,GAAaqyC,EAC3FlzD,EAAGmzD,EAAwBnzD,EAAI22B,EAAQ3P,EAAMmsC,EAAwBnzD,EAAG,EAAG,IAAM6gB,GAAaqyC,EAC9F7yD,EAAG8yD,EAAwB9yD,EAAIs2B,EAAQ3P,EAAMmsC,EAAwB9yD,EAAG,EAAG,EAAGwgB,GAAaqyC,EAC3FxH,GAAIyH,EAAwBzH,GAAK/0B,EAAQ3P,EAAMmsC,EAAwBzH,GAAI,EAAG,EAAG7qC,GAAaqyC,EAC9Ftc,GAAIuc,EAAwBvc,GAAKjgB,EAAQ3P,EAAMmsC,EAAwBvc,GAAI,EAAG,EAAG/1B,GAAaqyC,EAC9FvH,GAAIwH,EAAwBxH,GAAKh1B,EAAQ3P,EAAMmsC,EAAwBxH,GAAI,EAAG,EAAG9qC,GAAaqyC,EAC9FjC,GAAIkC,EAAwBlC,GAAKt6B,EAAQ3P,EAAMmsC,EAAwBlC,GAAI,EAAG,EAAGpwC,GAAaqyC,EAC9FhC,GAAIiC,EAAwBjC,GAAKv6B,EAAQ3P,EAAMmsC,EAAwBjC,GAAI,EAAG,IAAMrwC,GAAaqyC,EACjG/B,GAAIgC,EAAwBhC,GAAKx6B,EAAQ3P,EAAMmsC,EAAwBhC,GAAI,EAAG,IAAMtwC,GAAaqyC,EACjGx1D,EAAGy1D,EAAwBz1D,EAAIi5B,EAAQ3P,EAAMmsC,EAAwBz1D,EAAG,EAAG,EAAGmjB,GAAaqyC,GAE7F1iE,KAAKsI,EAAIi5D,iBAAiBgB,oBAAoB/rC,EAAMisC,EAAcn6D,EAAG+nB,GACrErwB,KAAKsI,EAAE4E,EAAIu1D,EAAcn6D,EAAE4E,CAC7B,CAEA,SAAS01D,qBAAqBta,EAAUua,EAAYrsC,GAClDx2B,KAAKqlC,eAAgB,EACrBrlC,KAAK8iE,gBAAiB,EACtB9iE,KAAKq7D,UAAY,EACjBr7D,KAAK+iE,UAAYza,EACjBtoD,KAAKgjE,YAAcH,EACnB7iE,KAAKijE,MAAQzsC,EACbx2B,KAAKkjE,eAAiBjmD,iBAAiBjd,KAAK+iE,UAAUxlE,EAAEzD,QACxDkG,KAAKmjE,UAAY,CAAC,EAClBnjE,KAAKojE,aAAe,CAClBC,UAAW,CAAC,GAEdrjE,KAAKsjE,gBAAkB,GACvBtjE,KAAKujE,oBAAqB,EAC1BvjE,KAAK0mC,6BAA6BlQ,EACpC,CAwoBA,SAASgtC,eAAgB,CAtoBzBZ,qBAAqBtoE,UAAUmpE,iBAAmB,WAChD,IAAI5pE,EAEA4oE,EADA/nD,EAAM1a,KAAK+iE,UAAUxlE,EAAEzD,OAEvBqsC,EAAUD,gBAAgBC,QAE9B,IAAKtsC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB4oE,EAAgBziE,KAAK+iE,UAAUxlE,EAAE1D,GACjCmG,KAAKkjE,eAAerpE,GAAK,IAAI2oE,yBAAyBxiE,KAAKijE,MAAOR,EAAeziE,MAG/EA,KAAK+iE,UAAUlzD,GAAK,MAAO7P,KAAK+iE,UAAUlzD,GAC5C7P,KAAKmjE,UAAY,CACf5lE,EAAG4oC,EAAQnmC,KAAKijE,MAAOjjE,KAAK+iE,UAAUlzD,EAAEtS,EAAG,EAAG,EAAGyC,MACjD3B,EAAG8nC,EAAQnmC,KAAKijE,MAAOjjE,KAAK+iE,UAAUlzD,EAAExR,EAAG,EAAG,EAAG2B,MACjDwI,EAAG29B,EAAQnmC,KAAKijE,MAAOjjE,KAAK+iE,UAAUlzD,EAAErH,EAAG,EAAG,EAAGxI,MACjD0P,EAAGy2B,EAAQnmC,KAAKijE,MAAOjjE,KAAK+iE,UAAUlzD,EAAEH,EAAG,EAAG,EAAG1P,MACjD6P,EAAGs2B,EAAQnmC,KAAKijE,MAAOjjE,KAAK+iE,UAAUlzD,EAAEA,EAAG,EAAG,EAAG7P,MACjDktC,EAAGltC,KAAKijE,MAAMnY,YAAYuG,gBAAgBrxD,KAAK+iE,UAAUlzD,EAAEq9B,IAE7DltC,KAAK8iE,gBAAiB,GAEtB9iE,KAAK8iE,gBAAiB,EAGxB9iE,KAAKojE,aAAaC,UAAYl9B,EAAQnmC,KAAKijE,MAAOjjE,KAAK+iE,UAAU71B,EAAE3vC,EAAG,EAAG,EAAGyC,KAC9E,EAEA4iE,qBAAqBtoE,UAAUopE,YAAc,SAAUp+C,EAAci+C,GAGnE,GAFAvjE,KAAKujE,mBAAqBA,EAErBvjE,KAAKglC,MAAShlC,KAAKqlC,eAAkBk+B,GAAwBvjE,KAAK8iE,gBAAmB9iE,KAAKmjE,UAAUj2B,EAAElI,KAA3G,CAIAhlC,KAAKqlC,eAAgB,EACrB,IAMIs+B,EACAC,EACA/pE,EACA6gB,EAEAmpD,EACAC,EACAC,EACAtnC,EACAxiB,EACA+pD,EACAC,EACAtpB,EACAliB,EACAjJ,EACAoN,EACA1B,EACAiB,EACA+nC,EACAxU,EAzBA2T,EAAYrjE,KAAKojE,aAAaC,UAAU3iD,EACxC6/C,EAAYvgE,KAAKkjE,eACjB5a,EAAWtoD,KAAK+iE,UAChBoB,EAAenkE,KAAKoxD,QACpByR,EAAa7iE,KAAKgjE,YAClBoB,EAAuBpkE,KAAKsjE,gBAAgBxpE,OAK5ColE,EAAU55C,EAAa9c,EAiB3B,GAAIxI,KAAK8iE,eAAgB,CAGvB,GAFApT,EAAO1vD,KAAKmjE,UAAUj2B,GAEjBltC,KAAKmjE,UAAUh2D,GAAKnN,KAAKmjE,UAAUn+B,KAAM,CAC5C,IAYIhI,EAZAkM,EAAQwmB,EAAKhvC,EAejB,IAbI1gB,KAAKmjE,UAAUzzD,EAAEgR,IACnBwoB,EAAQA,EAAM1B,WAIhBq8B,EAAW,CACTQ,QAAS,EACT70C,SAAU,IAEZ9U,EAAMwuB,EAAM1O,QAAU,EAEtBU,EAAc,EAETrhC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmjC,EAAa8C,IAAIjD,gBAAgBqM,EAAMxoB,EAAE7mB,GAAIqvC,EAAMxoB,EAAE7mB,EAAI,GAAI,CAACqvC,EAAM15B,EAAE3V,GAAG,GAAKqvC,EAAMxoB,EAAE7mB,GAAG,GAAIqvC,EAAM15B,EAAE3V,GAAG,GAAKqvC,EAAMxoB,EAAE7mB,GAAG,IAAK,CAACqvC,EAAMrvC,EAAEA,EAAI,GAAG,GAAKqvC,EAAMxoB,EAAE7mB,EAAI,GAAG,GAAIqvC,EAAMrvC,EAAEA,EAAI,GAAG,GAAKqvC,EAAMxoB,EAAE7mB,EAAI,GAAG,KACxMgqE,EAASQ,SAAWrnC,EAAWP,cAC/BonC,EAASr0C,SAAShxB,KAAKw+B,GACvB9B,GAAe8B,EAAWP,cAG5B5iC,EAAI6gB,EAEAg1C,EAAKhvC,EAAEjjB,IACTu/B,EAAa8C,IAAIjD,gBAAgBqM,EAAMxoB,EAAE7mB,GAAIqvC,EAAMxoB,EAAE,GAAI,CAACwoB,EAAM15B,EAAE3V,GAAG,GAAKqvC,EAAMxoB,EAAE7mB,GAAG,GAAIqvC,EAAM15B,EAAE3V,GAAG,GAAKqvC,EAAMxoB,EAAE7mB,GAAG,IAAK,CAACqvC,EAAMrvC,EAAE,GAAG,GAAKqvC,EAAMxoB,EAAE,GAAG,GAAIwoB,EAAMrvC,EAAE,GAAG,GAAKqvC,EAAMxoB,EAAE,GAAG,KACpLmjD,EAASQ,SAAWrnC,EAAWP,cAC/BonC,EAASr0C,SAAShxB,KAAKw+B,GACvB9B,GAAe8B,EAAWP,eAG5Bz8B,KAAKmjE,UAAUmB,GAAKT,CACtB,CAUA,GARAA,EAAW7jE,KAAKmjE,UAAUmB,GAC1BR,EAAgB9jE,KAAKmjE,UAAU9kE,EAAEqiB,EACjCujD,EAAa,EACbD,EAAW,EACXvnC,EAAgB,EAChBxiB,GAAO,EACPuV,EAAWq0C,EAASr0C,SAEhBs0C,EAAgB,GAAKpU,EAAKhvC,EAAEjjB,EAS9B,IARIomE,EAASQ,QAAU7jE,KAAKiP,IAAIq0D,KAC9BA,GAAiBtjE,KAAKiP,IAAIq0D,GAAiBD,EAASQ,SAKtDL,GADAvrC,EAASjJ,EADTy0C,EAAaz0C,EAAS11B,OAAS,GACD2+B,QACZ3+B,OAAS,EAEpBgqE,EAAgB,GACrBA,GAAiBrrC,EAAOurC,GAAUpnC,eAClConC,GAAY,GAEG,IAGbA,GADAvrC,EAASjJ,EADTy0C,GAAc,GACgBxrC,QACZ3+B,OAAS,GAMjC6gD,GADAliB,EAASjJ,EAASy0C,GAAYxrC,QACXurC,EAAW,GAE9BpnC,GADAmnC,EAAetrC,EAAOurC,IACOpnC,aAC/B,CAEAliB,EAAMwkD,EAAQplE,OACd6pE,EAAO,EACPC,EAAO,EACP,IAEInB,EAEAz9D,EACA2e,EACA4gD,EAEAx/B,EARAy/B,EAAgC,IAAzBl/C,EAAag3C,UAAkB,KACtCmI,GAAY,EAMhB9gD,EAAO48C,EAAUzmE,OAEjB,IACI4qE,EACAC,EACAC,EAKAC,EACAze,EACA8U,EACAC,EACAx2D,EACAmgE,EACAC,EACAC,EAGAC,EAlBA5jC,GAAO,EAIP6jC,EAAcpB,EACdqB,EAAiBlB,EACjBmB,EAAepB,EACf1E,GAAe,EASf+F,GAAU,GACVC,GAAUtlE,KAAKulE,kBAGnB,GAAuB,IAAnBjgD,EAAatgB,GAA8B,IAAnBsgB,EAAatgB,EAAS,CAChD,IAAIk7D,GAAwB,EACxBsF,GAA0B,EAC1BC,GAAuC,IAAnBngD,EAAatgB,GAAW,IAAO,EACnD67B,GAAY,EACZ6kC,IAAY,EAEhB,IAAK7rE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAIqlE,EAAQrlE,GAAGsT,EAAG,CAKhB,IAJI+yD,KACFA,IAAyBsF,IAGpB3kC,GAAYhnC,GACjBqlE,EAAQr+B,IAAWq/B,sBAAwBA,GAC3Cr/B,IAAa,EAGfq/B,GAAwB,EACxBwF,IAAY,CACd,KAAO,CACL,IAAK1gE,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,GACzBy9D,EAAgBlC,EAAUv7D,GAAGzH,GAEX2P,EAAEozB,WACdolC,IAAgC,IAAnBpgD,EAAatgB,IAC5BwgE,IAA2B/C,EAAcv1D,EAAEwT,EAAI+kD,KAIjD1gC,EADmBw7B,EAAUv7D,GAAGsD,EACRy5D,QAAQ7C,EAAQrlE,GAAGomE,UAAUj7D,GAAIsjD,EAAS/qD,EAAEyH,GAAGsD,EAAEu4D,aAEhE/mE,OACPomE,IAAyBuC,EAAcv1D,EAAEwT,EAAIqkB,EAAK,GAAK0gC,GAEvDvF,IAAyBuC,EAAcv1D,EAAEwT,EAAIqkB,EAAO0gC,IAK1DC,IAAY,CACd,CAOF,IAJIxF,KACFA,IAAyBsF,IAGpB3kC,GAAYhnC,GACjBqlE,EAAQr+B,IAAWq/B,sBAAwBA,GAC3Cr/B,IAAa,CAEjB,CAGA,IAAKhnC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAI3B,GAHAsqE,EAAajzD,QACb2zD,EAAc,EAEV3F,EAAQrlE,GAAGsT,EACbw2D,EAAO,EACPC,GAAQt+C,EAAa+2C,QACrBuH,GAAQa,EAAY,EAAI,EACxBX,EAAgBoB,EAChBT,GAAY,EAERzkE,KAAK8iE,iBAEPkB,EAAWoB,EAEXzqB,GADAliB,EAASjJ,EAFTy0C,EAAakB,GAEiB1sC,QACXurC,EAAW,GAE9BpnC,GADAmnC,EAAetrC,EAAOurC,IACOpnC,cAC7BH,EAAgB,GAGlB4oC,GAAU,GACVL,EAAW,GACXF,EAAW,GACXG,EAAU,GACVK,GAAUtlE,KAAKulE,sBACV,CACL,GAAIvlE,KAAK8iE,eAAgB,CACvB,GAAIxD,IAAgBJ,EAAQrlE,GAAGgzB,KAAM,CACnC,OAAQvH,EAAatgB,GACnB,KAAK,EACH8+D,GAAiB5oC,EAAc5V,EAAay2C,WAAWmD,EAAQrlE,GAAGgzB,MAClE,MAEF,KAAK,EACHi3C,IAAkB5oC,EAAc5V,EAAay2C,WAAWmD,EAAQrlE,GAAGgzB,OAAS,EAOhFyyC,EAAcJ,EAAQrlE,GAAGgzB,IAC3B,CAEIwU,IAAQ69B,EAAQrlE,GAAGwnC,MACjB69B,EAAQ79B,KACVyiC,GAAiB5E,EAAQ79B,GAAK8+B,OAGhC2D,GAAiB5E,EAAQrlE,GAAGkmE,GAAK,EACjC1+B,EAAM69B,EAAQrlE,GAAGwnC,KAGnByiC,GAAiBT,EAAU,GAAKnE,EAAQrlE,GAAGkmE,GAAK,KAChD,IAAI4F,GAAiB,EAErB,IAAK3gE,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,GACzBy9D,EAAgBlC,EAAUv7D,GAAGzH,GAEXsS,EAAEywB,YAElByE,EADmBw7B,EAAUv7D,GAAGsD,EACRy5D,QAAQ7C,EAAQrlE,GAAGomE,UAAUj7D,GAAIsjD,EAAS/qD,EAAEyH,GAAGsD,EAAEu4D,aAEhE/mE,OACP6rE,IAAkBlD,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,EAAK,GAE9C4gC,IAAkBlD,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,GAIzC09B,EAAcllE,EAAE+iC,YAElByE,EADmBw7B,EAAUv7D,GAAGsD,EACRy5D,QAAQ7C,EAAQrlE,GAAGomE,UAAUj7D,GAAIsjD,EAAS/qD,EAAEyH,GAAGsD,EAAEu4D,aAEhE/mE,OACP6rE,IAAkBlD,EAAcllE,EAAEmjB,EAAE,GAAKqkB,EAAK,GAE9C4gC,IAAkBlD,EAAcllE,EAAEmjB,EAAE,GAAKqkB,GAY/C,IAPA9qB,GAAO,EAEHja,KAAKmjE,UAAU5lE,EAAEmjB,IACnBojD,EAAgC,GAAhB5E,EAAQ,GAAGa,IAAY7kC,EAAcl7B,KAAKmjE,UAAU9kE,EAAEqiB,EAAoB,GAAhBw+C,EAAQ,GAAGa,GAA4C,GAAjCb,EAAQA,EAAQplE,OAAS,GAAGimE,IAAY1+B,GAAO3mB,EAAM,GACrJopD,GAAiB9jE,KAAKmjE,UAAU9kE,EAAEqiB,GAG7BzG,GACDwiB,EAAgBG,GAAiBknC,EAAgB6B,KAAmBltC,GACtE0D,GAAQ2nC,EAAgB6B,GAAiBlpC,GAAiBsnC,EAAannC,cACvE+nC,EAAWhqB,EAAU3wC,MAAM,IAAM+5D,EAAa/5D,MAAM,GAAK2wC,EAAU3wC,MAAM,IAAMmyB,EAC/EyoC,EAAWjqB,EAAU3wC,MAAM,IAAM+5D,EAAa/5D,MAAM,GAAK2wC,EAAU3wC,MAAM,IAAMmyB,EAC/EgoC,EAAah3B,WAAWk2B,EAAU,GAAKnE,EAAQrlE,GAAGkmE,GAAK,MAASsD,EAAU,GAAKmB,EAAQ,KACvFvqD,GAAO,GACEwe,IACTgE,GAAiBsnC,EAAannC,eAC9BonC,GAAY,IAEIvrC,EAAO3+B,SACrBkqE,EAAW,EAGNx0C,EAFLy0C,GAAc,GAYZxrC,EAASjJ,EAASy0C,GAAYxrC,OAT1Bi3B,EAAKhvC,EAAEjjB,GACTumE,EAAW,EAEXvrC,EAASjJ,EADTy0C,EAAa,GACiBxrC,SAE9BgE,GAAiBsnC,EAAannC,cAC9BnE,EAAS,OAOXA,IACFkiB,EAAYopB,EAEZnnC,GADAmnC,EAAetrC,EAAOurC,IACOpnC,gBAKnC8nC,EAAOxF,EAAQrlE,GAAGkmE,GAAK,EAAIb,EAAQrlE,GAAGmmE,IACtCmE,EAAah3B,WAAWu3B,EAAM,EAAG,EACnC,MACEA,EAAOxF,EAAQrlE,GAAGkmE,GAAK,EAAIb,EAAQrlE,GAAGmmE,IACtCmE,EAAah3B,WAAWu3B,EAAM,EAAG,GAEjCP,EAAah3B,WAAWk2B,EAAU,GAAKnE,EAAQrlE,GAAGkmE,GAAK,MAAQsD,EAAU,GAAKmB,EAAO,IAAM,GAG7F,IAAKx/D,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,GACzBy9D,EAAgBlC,EAAUv7D,GAAGzH,GAEX2P,EAAEozB,WAElByE,EADmBw7B,EAAUv7D,GAAGsD,EACRy5D,QAAQ7C,EAAQrlE,GAAGomE,UAAUj7D,GAAIsjD,EAAS/qD,EAAEyH,GAAGsD,EAAEu4D,YAE5D,IAAT8C,GAAiC,IAAnBr+C,EAAatgB,IACzBhF,KAAK8iE,eACH/9B,EAAKjrC,OACPgqE,GAAiBrB,EAAcv1D,EAAEwT,EAAIqkB,EAAK,GAE1C++B,GAAiBrB,EAAcv1D,EAAEwT,EAAIqkB,EAE9BA,EAAKjrC,OACd6pE,GAAQlB,EAAcv1D,EAAEwT,EAAIqkB,EAAK,GAEjC4+B,GAAQlB,EAAcv1D,EAAEwT,EAAIqkB,IAsBpC,IAhBIzf,EAAa82C,kBACflB,EAAK51C,EAAa41C,IAAM,GAGtB51C,EAAa62C,kBAEb/V,EADE9gC,EAAa8gC,GACV,CAAC9gC,EAAa8gC,GAAG,GAAI9gC,EAAa8gC,GAAG,GAAI9gC,EAAa8gC,GAAG,IAEzD,CAAC,EAAG,EAAG,IAIZ9gC,EAAa42C,eAAiB52C,EAAa61C,KAC7CA,EAAK,CAAC71C,EAAa61C,GAAG,GAAI71C,EAAa61C,GAAG,GAAI71C,EAAa61C,GAAG,KAG3Dn2D,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,GACzBy9D,EAAgBlC,EAAUv7D,GAAGzH,GAEXA,EAAE+iC,YAElByE,EADmBw7B,EAAUv7D,GAAGsD,EACRy5D,QAAQ7C,EAAQrlE,GAAGomE,UAAUj7D,GAAIsjD,EAAS/qD,EAAEyH,GAAGsD,EAAEu4D,aAEhE/mE,OACPqqE,EAAah3B,WAAWs1B,EAAcllE,EAAEmjB,EAAE,GAAKqkB,EAAK,IAAK09B,EAAcllE,EAAEmjB,EAAE,GAAKqkB,EAAK,GAAI09B,EAAcllE,EAAEmjB,EAAE,GAAKqkB,EAAK,IAErHo/B,EAAah3B,WAAWs1B,EAAcllE,EAAEmjB,EAAE,GAAKqkB,GAAO09B,EAAcllE,EAAEmjB,EAAE,GAAKqkB,EAAM09B,EAAcllE,EAAEmjB,EAAE,GAAKqkB,IAKhH,IAAK//B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,GACzBy9D,EAAgBlC,EAAUv7D,GAAGzH,GAEX+K,EAAEg4B,YAElByE,EADmBw7B,EAAUv7D,GAAGsD,EACRy5D,QAAQ7C,EAAQrlE,GAAGomE,UAAUj7D,GAAIsjD,EAAS/qD,EAAEyH,GAAGsD,EAAEu4D,aAEhE/mE,OACPqqE,EAAap3B,MAAM,GAAK01B,EAAcn6D,EAAEoY,EAAE,GAAK,GAAKqkB,EAAK,GAAI,GAAK09B,EAAcn6D,EAAEoY,EAAE,GAAK,GAAKqkB,EAAK,GAAI,GAEvGo/B,EAAap3B,MAAM,GAAK01B,EAAcn6D,EAAEoY,EAAE,GAAK,GAAKqkB,EAAM,GAAK09B,EAAcn6D,EAAEoY,EAAE,GAAK,GAAKqkB,EAAM,IAKvG,IAAK//B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAAG,CAqD5B,GApDAy9D,EAAgBlC,EAAUv7D,GAAGzH,EAE7BwnC,EADmBw7B,EAAUv7D,GAAGsD,EACRy5D,QAAQ7C,EAAQrlE,GAAGomE,UAAUj7D,GAAIsjD,EAAS/qD,EAAEyH,GAAGsD,EAAEu4D,YAErE4B,EAAcx8C,GAAGqa,WACfyE,EAAKjrC,OACPqqE,EAAar3B,cAAc21B,EAAcx8C,GAAGvF,EAAIqkB,EAAK,GAAI09B,EAAcv8C,GAAGxF,EAAIqkB,EAAK,IAEnFo/B,EAAar3B,cAAc21B,EAAcx8C,GAAGvF,EAAIqkB,EAAM09B,EAAcv8C,GAAGxF,EAAIqkB,IAI3E09B,EAAc/yD,EAAE4wB,WACdyE,EAAKjrC,OACPqqE,EAAaz3B,SAAS+1B,EAAc/yD,EAAEgR,EAAIqkB,EAAK,IAE/Co/B,EAAaz3B,SAAS+1B,EAAc/yD,EAAEgR,EAAIqkB,IAI1C09B,EAAc1sB,GAAGzV,WACfyE,EAAKjrC,OACPqqE,EAAa13B,QAAQg2B,EAAc1sB,GAAGr1B,EAAIqkB,EAAK,IAE/Co/B,EAAa13B,QAAQg2B,EAAc1sB,GAAGr1B,EAAIqkB,IAI1C09B,EAAc3sB,GAAGxV,WACfyE,EAAKjrC,OACPqqE,EAAa33B,QAAQi2B,EAAc3sB,GAAGp1B,EAAIqkB,EAAK,IAE/Co/B,EAAa33B,QAAQi2B,EAAc3sB,GAAGp1B,EAAIqkB,IAI1C09B,EAAcjzD,EAAE8wB,WACdyE,EAAKjrC,OACP+qE,IAAgBpC,EAAcjzD,EAAEkR,EAAIqkB,EAAK,GAAK8/B,GAAe9/B,EAAK,GAElE8/B,IAAgBpC,EAAcjzD,EAAEkR,EAAIqkB,EAAO8/B,GAAe9/B,GAI1Dzf,EAAa82C,iBAAmBqG,EAAcvH,GAAG56B,WAC/CyE,EAAKjrC,OACPohE,GAAMuH,EAAcvH,GAAGx6C,EAAIqkB,EAAK,GAEhCm2B,GAAMuH,EAAcvH,GAAGx6C,EAAIqkB,GAI3Bzf,EAAa62C,iBAAmBsG,EAAcrc,GAAG9lB,SACnD,IAAK37B,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAClBogC,EAAKjrC,OACPssD,EAAGzhD,KAAO89D,EAAcrc,GAAG1lC,EAAE/b,GAAKyhD,EAAGzhD,IAAMogC,EAAK,GAEhDqhB,EAAGzhD,KAAO89D,EAAcrc,GAAG1lC,EAAE/b,GAAKyhD,EAAGzhD,IAAMogC,EAKjD,GAAIzf,EAAa42C,eAAiB52C,EAAa61C,GAAI,CACjD,GAAIsH,EAActH,GAAG76B,SACnB,IAAK37B,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAClBogC,EAAKjrC,OACPqhE,EAAGx2D,KAAO89D,EAActH,GAAGz6C,EAAE/b,GAAKw2D,EAAGx2D,IAAMogC,EAAK,GAEhDo2B,EAAGx2D,KAAO89D,EAActH,GAAGz6C,EAAE/b,GAAKw2D,EAAGx2D,IAAMogC,EAK7C09B,EAAchC,GAAGngC,WAEjB66B,EADEp2B,EAAKjrC,OACFqnB,YAAYg6C,EAAIsH,EAAchC,GAAG//C,EAAIqkB,EAAK,IAE1C5jB,YAAYg6C,EAAIsH,EAAchC,GAAG//C,EAAIqkB,IAI1C09B,EAAc/B,GAAGpgC,WAEjB66B,EADEp2B,EAAKjrC,OACFgnB,mBAAmBq6C,EAAIsH,EAAc/B,GAAGhgD,EAAIqkB,EAAK,IAEjDjkB,mBAAmBq6C,EAAIsH,EAAc/B,GAAGhgD,EAAIqkB,IAIjD09B,EAAc9B,GAAGrgC,WAEjB66B,EADEp2B,EAAKjrC,OACFonB,mBAAmBi6C,EAAIsH,EAAc9B,GAAGjgD,EAAIqkB,EAAK,IAEjD7jB,mBAAmBi6C,EAAIsH,EAAc9B,GAAGjgD,EAAIqkB,GAGvD,CACF,CAEA,IAAK//B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,GACzBy9D,EAAgBlC,EAAUv7D,GAAGzH,GAEXsS,EAAEywB,WAElByE,EADmBw7B,EAAUv7D,GAAGsD,EACRy5D,QAAQ7C,EAAQrlE,GAAGomE,UAAUj7D,GAAIsjD,EAAS/qD,EAAEyH,GAAGsD,EAAEu4D,YAErE7gE,KAAK8iE,eACH/9B,EAAKjrC,OACPqqE,EAAah3B,UAAU,EAAGs1B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,EAAK,IAAK09B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,EAAK,IAEvFo/B,EAAah3B,UAAU,EAAGs1B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,GAAO09B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,GAExEA,EAAKjrC,OACdqqE,EAAah3B,UAAUs1B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,EAAK,GAAI09B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,EAAK,IAAK09B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,EAAK,IAEpHo/B,EAAah3B,UAAUs1B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,EAAM09B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,GAAO09B,EAAc5yD,EAAE6Q,EAAE,GAAKqkB,IAiB/G,GAZIzf,EAAa82C,kBACf0I,EAAW5J,EAAK,EAAI,EAAIA,GAGtB51C,EAAa62C,kBACf4I,EAAW,OAASvkE,KAAKke,MAAc,IAAR0nC,EAAG,IAAY,IAAM5lD,KAAKke,MAAc,IAAR0nC,EAAG,IAAY,IAAM5lD,KAAKke,MAAc,IAAR0nC,EAAG,IAAY,KAG5G9gC,EAAa42C,eAAiB52C,EAAa61C,KAC7C6J,EAAW,OAASxkE,KAAKke,MAAc,IAARy8C,EAAG,IAAY,IAAM36D,KAAKke,MAAc,IAARy8C,EAAG,IAAY,IAAM36D,KAAKke,MAAc,IAARy8C,EAAG,IAAY,KAG5Gn7D,KAAK8iE,eAAgB,CAIvB,GAHAqB,EAAah3B,UAAU,GAAI7nB,EAAa02C,IACxCmI,EAAah3B,UAAU,EAAGk2B,EAAU,GAAKmB,EAAO,IAAOZ,EAAM,GAEzD5jE,KAAKmjE,UAAUtzD,EAAE6Q,EAAG,CACtBwjD,GAAYH,EAAa/5D,MAAM,GAAK2wC,EAAU3wC,MAAM,KAAO+5D,EAAa/5D,MAAM,GAAK2wC,EAAU3wC,MAAM,IACnG,IAAIkwC,GAA4B,IAAtB15C,KAAKolE,KAAK1B,GAAkB1jE,KAAK8d,GAEvCylD,EAAa/5D,MAAM,GAAK2wC,EAAU3wC,MAAM,KAC1CkwC,IAAO,KAGTiqB,EAAa93B,QAAQ6N,GAAM15C,KAAK8d,GAAK,IACvC,CAEA6lD,EAAah3B,UAAUw3B,EAAUC,EAAU,GAC3Cd,GAAiBT,EAAU,GAAKnE,EAAQrlE,GAAGkmE,GAAK,KAE5Cb,EAAQrlE,EAAI,IAAMwnC,IAAQ69B,EAAQrlE,EAAI,GAAGwnC,MAC3CyiC,GAAiB5E,EAAQrlE,GAAGkmE,GAAK,EACjC+D,GAAmC,KAAlBx+C,EAAag4B,GAAah4B,EAAag3C,UAE5D,KAAO,CAQL,OAPA6H,EAAah3B,UAAUw2B,EAAMC,EAAM,GAE/Bt+C,EAAa22C,IAEfkI,EAAah3B,UAAU7nB,EAAa22C,GAAG,GAAI32C,EAAa22C,GAAG,GAAK32C,EAAao2C,OAAQ,GAG/Ep2C,EAAatgB,GACnB,KAAK,EACHm/D,EAAah3B,UAAU+xB,EAAQrlE,GAAGqmE,sBAAwB56C,EAAau2C,eAAiBv2C,EAAaq2C,SAAWr2C,EAAay2C,WAAWmD,EAAQrlE,GAAGgzB,OAAQ,EAAG,GAC9J,MAEF,KAAK,EACHs3C,EAAah3B,UAAU+xB,EAAQrlE,GAAGqmE,sBAAwB56C,EAAau2C,eAAiBv2C,EAAaq2C,SAAWr2C,EAAay2C,WAAWmD,EAAQrlE,GAAGgzB,OAAS,EAAG,EAAG,GAOtKs3C,EAAah3B,UAAU,GAAI7nB,EAAa02C,IACxCmI,EAAah3B,UAAUu3B,EAAM,EAAG,GAChCP,EAAah3B,UAAUk2B,EAAU,GAAKnE,EAAQrlE,GAAGkmE,GAAK,KAAOsD,EAAU,GAAKmB,EAAO,IAAM,GACzFb,GAAQzE,EAAQrlE,GAAG2O,EAAsB,KAAlB8c,EAAag4B,GAAah4B,EAAag3C,SAChE,CAEmB,SAAfuG,EACFwC,GAAUlB,EAAapzB,QACC,QAAf8xB,EACTwC,GAAUlB,EAAajzB,UAEvBo0B,GAAU,CAACnB,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,GAAIuqE,EAAavqE,MAAM,IAAKuqE,EAAavqE,MAAM,IAAKuqE,EAAavqE,MAAM,IAAKuqE,EAAavqE,MAAM,IAAKuqE,EAAavqE,MAAM,IAAKuqE,EAAavqE,MAAM,KAG9XqrE,EAAUJ,CACZ,CAEIT,GAAwBvqE,GAC1B0qE,EAAc,IAAItJ,YAAYgK,EAASH,EAAUC,EAAUC,EAAUK,GAASC,IAC9EtlE,KAAKsjE,gBAAgB9kE,KAAK+lE,GAC1BH,GAAwB,EACxBpkE,KAAKujE,oBAAqB,IAE1BgB,EAAcvkE,KAAKsjE,gBAAgBzpE,GACnCmG,KAAKujE,mBAAqBgB,EAAYl1D,OAAO41D,EAASH,EAAUC,EAAUC,EAAUK,GAASC,KAAYtlE,KAAKujE,mBAElH,CArlBA,CAslBF,EAEAX,qBAAqBtoE,UAAUurC,SAAW,WACpC7lC,KAAKijE,MAAMxyC,WAAWyU,UAAYllC,KAAKq7D,WAI3Cr7D,KAAKq7D,SAAWr7D,KAAKijE,MAAMxyC,WAAWyU,QACtCllC,KAAKymC,2BACP,EAEAm8B,qBAAqBtoE,UAAU82D,QAAU,IAAIrlB,OAC7C62B,qBAAqBtoE,UAAUirE,kBAAoB,GACnDjrD,gBAAgB,CAACgsB,0BAA2Bs8B,sBAI5CY,aAAalpE,UAAU24D,YAAc,SAAUpwC,EAAM4N,EAAYhM,GAC/DzkB,KAAKujE,oBAAqB,EAC1BvjE,KAAK+/B,YACL//B,KAAK2pD,aAAa9mC,EAAM4N,EAAYhM,GACpCzkB,KAAKgiE,aAAe,IAAI5G,aAAap7D,KAAM6iB,EAAK3V,EAAGlN,KAAKumC,mBACxDvmC,KAAK6lE,aAAe,IAAIjD,qBAAqB//C,EAAK3V,EAAGlN,KAAK6iE,WAAY7iE,MACtEA,KAAK+vD,cAAcltC,EAAM4N,EAAYhM,GACrCzkB,KAAKk1D,gBACLl1D,KAAKonD,iBACLpnD,KAAKqzD,sBACLrzD,KAAKszD,0BACLtzD,KAAKs0D,6BACLt0D,KAAKo1D,gBACLp1D,KAAKrB,OACLqB,KAAK6lE,aAAapC,iBAAiBzjE,KAAKumC,kBAC1C,EAEAi9B,aAAalpE,UAAUyzB,aAAe,SAAU65B,GAC9C5nD,KAAKglC,MAAO,EACZhlC,KAAK2nD,uBAAuBC,GAC5B5nD,KAAKgsD,kBAAkBpE,EAAK5nD,KAAKqnD,UACnC,EAEAmc,aAAalpE,UAAUwrE,gBAAkB,SAAU3B,EAAc5/C,GAC/D,IAAIvf,EAEAwsD,EADA7tC,EAAOY,EAAOzqB,OAEdisE,EAAW,GAEf,IAAK/gE,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACJ,OAAjBuf,EAAOvf,GAAGmf,KACZqtC,EAAYjtC,EAAOvf,GAAG6f,GAAGlgB,EACzBohE,GAAY5M,iBAAiB3H,EAAWA,EAAU33D,EAAEC,QAAQ,EAAMqqE,IAItE,OAAO4B,CACT,EAEAvC,aAAalpE,UAAUq7B,mBAAqB,SAAUqrC,EAASnkE,GAC7DmD,KAAKgiE,aAAarsC,mBAAmBqrC,EAASnkE,EAChD,EAEA2mE,aAAalpE,UAAU6mE,cAAgB,SAAUC,GAC/CphE,KAAKgiE,aAAab,cAAcC,EAClC,EAEAoC,aAAalpE,UAAU+mE,mBAAqB,SAAU2E,GACpDhmE,KAAKgiE,aAAaX,mBAAmB2E,EACvC,EAEAxC,aAAalpE,UAAU2rE,4BAA8B,SAAU3gD,EAAc6+C,EAAc+B,EAAYvC,EAAMC,GAO3G,OANIt+C,EAAa22C,IACfkI,EAAah3B,UAAU7nB,EAAa22C,GAAG,GAAI32C,EAAa22C,GAAG,GAAK32C,EAAao2C,OAAQ,GAGvFyI,EAAah3B,UAAU,GAAI7nB,EAAa02C,GAAI,GAEpC12C,EAAatgB,GACnB,KAAK,EACHm/D,EAAah3B,UAAU7nB,EAAau2C,eAAiBv2C,EAAaq2C,SAAWr2C,EAAay2C,WAAWmK,IAAc,EAAG,GACtH,MAEF,KAAK,EACH/B,EAAah3B,UAAU7nB,EAAau2C,eAAiBv2C,EAAaq2C,SAAWr2C,EAAay2C,WAAWmK,IAAe,EAAG,EAAG,GAO9H/B,EAAah3B,UAAUw2B,EAAMC,EAAM,EACrC,EAEAJ,aAAalpE,UAAU6rE,WAAa,SAAUC,GAC5C,MAAO,OAAS5lE,KAAKke,MAAqB,IAAf0nD,EAAU,IAAY,IAAM5lE,KAAKke,MAAqB,IAAf0nD,EAAU,IAAY,IAAM5lE,KAAKke,MAAqB,IAAf0nD,EAAU,IAAY,GACjI,EAEA5C,aAAalpE,UAAU+rE,UAAY,IAAIpL,YAEvCuI,aAAalpE,UAAU2Y,QAAU,WAAa,EAE9CuwD,aAAalpE,UAAUgsE,aAAe,YAChCtmE,KAAKgiE,aAAah9B,MAAQhlC,KAAKgiE,aAAa38B,iBAC9CrlC,KAAKumE,eACLvmE,KAAKgiE,aAAa38B,eAAgB,EAClCrlC,KAAKgiE,aAAah9B,MAAO,EAE7B,EAEA,IAAIwhC,eAAiB,CACnBjiD,OAAQ,IAGV,SAASkiD,qBAAqB5jD,EAAM4N,EAAYhM,GAC9CzkB,KAAK0mE,UAAY,GACjB1mE,KAAK6iE,WAAa,MAClB7iE,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CAgVA,SAASkiD,cAAc9jD,EAAM4N,EAAYhM,GACvCzkB,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CAeA,SAASmiD,YAAY/jD,EAAM4N,EAAYhM,GACrCzkB,KAAK+/B,YACL//B,KAAK2pD,aAAa9mC,EAAM4N,EAAYhM,GACpCzkB,KAAK+/B,YACL//B,KAAK+vD,cAAcltC,EAAM4N,EAAYhM,GACrCzkB,KAAKk1D,eACP,CAoBA,SAAS2R,kBAAmB,CAkQ5B,SAASC,eAAgB,CA4GzB,SAASC,eAAelkD,EAAM4N,EAAYhM,GACxCzkB,KAAKwjB,OAASX,EAAKW,OACnBxjB,KAAKgnE,YAAa,EAClBhnE,KAAKujB,gBAAiB,EACtBvjB,KAAK+tD,gBAAkB,GACvB/tD,KAAKu+C,SAAWv+C,KAAKwjB,OAASvG,iBAAiBjd,KAAKwjB,OAAO1pB,QAAU,GACrEkG,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,GACnCzkB,KAAKqtB,GAAKxK,EAAKwK,GAAK6Y,gBAAgBC,QAAQnmC,KAAM6iB,EAAKwK,GAAI,EAAGoD,EAAW9B,UAAW3uB,MAAQ,CAC1FkqD,cAAc,EAElB,CAQA,SAAS+c,YAAY9Y,EAAe+Y,GAClClnE,KAAKmuD,cAAgBA,EACrBnuD,KAAKwjB,OAAS,KACdxjB,KAAKykC,eAAiB,EACtBzkC,KAAKmnE,WAAallD,SAAS,OAC3B,IAAImlD,EAAY,GAEhB,GAAIF,GAAUA,EAAOG,MAAO,CAC1B,IAAIC,EAAerlD,SAAS,SACxBslD,EAAUhnD,kBACd+mD,EAAanwC,aAAa,KAAMowC,GAChCD,EAAa51D,YAAcw1D,EAAOG,MAClCrnE,KAAKmnE,WAAWj7C,YAAYo7C,GAC5BF,GAAaG,CACf,CAEA,GAAIL,GAAUA,EAAOM,YAAa,CAChC,IAAIC,EAAcxlD,SAAS,QACvBylD,EAASnnD,kBACbknD,EAAYtwC,aAAa,KAAMuwC,GAC/BD,EAAY/1D,YAAcw1D,EAAOM,YACjCxnE,KAAKmnE,WAAWj7C,YAAYu7C,GAC5BL,GAAa,IAAMM,CACrB,CAEIN,GACFpnE,KAAKmnE,WAAWhwC,aAAa,kBAAmBiwC,GAGlD,IAAI12C,EAAOzO,SAAS,QACpBjiB,KAAKmnE,WAAWj7C,YAAYwE,GAC5B,IAAI+9B,EAAcxsC,SAAS,KAC3BjiB,KAAKmnE,WAAWj7C,YAAYuiC,GAC5BzuD,KAAK4rD,aAAe6C,EACpBzuD,KAAKioD,aAAe,CAClB0f,oBAAqBT,GAAUA,EAAOS,qBAAuB,gBAC7DnS,yBAA0B0R,GAAUA,EAAO1R,0BAA4B,iBACvEoS,kBAAmBV,GAAUA,EAAOU,mBAAqB,UACzDpa,gBAAiB0Z,GAAUA,EAAO1Z,kBAAmB,EACrDtF,oBAAqBgf,IAAuC,IAA7BA,EAAOhf,mBACtC2f,YAAaX,GAAUA,EAAOW,cAAe,EAC7CC,YAAaZ,GAAUA,EAAOY,cAAe,EAC7CC,UAAWb,GAAUA,EAAOa,WAAa,GACzCzkE,GAAI4jE,GAAUA,EAAO5jE,IAAM,GAC3B0kE,UAAWd,GAAUA,EAAOc,UAC5BC,WAAY,CACV5+C,MAAO69C,GAAUA,EAAOe,YAAcf,EAAOe,WAAW5+C,OAAS,OACjEtY,OAAQm2D,GAAUA,EAAOe,YAAcf,EAAOe,WAAWl3D,QAAU,OACnE8nB,EAAGquC,GAAUA,EAAOe,YAAcf,EAAOe,WAAWpvC,GAAK,KACzD2I,EAAG0lC,GAAUA,EAAOe,YAAcf,EAAOe,WAAWzmC,GAAK,MAE3DnY,MAAO69C,GAAUA,EAAO79C,MACxBtY,OAAQm2D,GAAUA,EAAOn2D,OACzBm3D,gBAAiBhB,QAAoC5pE,IAA1B4pE,EAAOgB,gBAAgChB,EAAOgB,gBAE3EloE,KAAKywB,WAAa,CAChBuU,MAAM,EACN9E,UAAW,EACXxP,KAAMA,EACNu3B,aAAcjoD,KAAKioD,cAErBjoD,KAAKu+C,SAAW,GAChBv+C,KAAK+tD,gBAAkB,GACvB/tD,KAAKmoE,WAAY,EACjBnoE,KAAK6yB,aAAe,KACtB,CAQA,SAASu1C,wBACPpoE,KAAKqoE,UAAY,CAAC,EAClBroE,KAAKsoE,aAAe,GACpBtoE,KAAKuoE,oBAAsB,CAC7B,CAt0BAjuD,gBAAgB,CAACivC,YAAagF,iBAAkBsE,eAAgBC,iBAAkBtJ,aAAcuJ,qBAAsByQ,cAAeiD,sBAErIA,qBAAqBnsE,UAAU86D,cAAgB,WACzCp1D,KAAK6iB,KAAK2lD,cAAgBxoE,KAAKywB,WAAWkB,YAAYhM,QACxD3lB,KAAKyoE,cAAgBxmD,SAAS,QAElC,EAEAwkD,qBAAqBnsE,UAAUouE,kBAAoB,SAAUC,GAM3D,IALA,IAAI9uE,EAAI,EACJ6gB,EAAMiuD,EAAU7uE,OAChB8uE,EAAe,GACfC,EAAqB,GAElBhvE,EAAI6gB,GACLiuD,EAAU9uE,KAAO0O,OAAOugE,aAAa,KAAOH,EAAU9uE,KAAO0O,OAAOugE,aAAa,IACnFF,EAAapqE,KAAKqqE,GAClBA,EAAqB,IAErBA,GAAsBF,EAAU9uE,GAGlCA,GAAK,EAIP,OADA+uE,EAAapqE,KAAKqqE,GACXD,CACT,EAEAnC,qBAAqBnsE,UAAUyuE,eAAiB,SAAUlmD,EAAMkqB,GAK9D,GAAIlqB,EAAK0B,QAAU1B,EAAK0B,OAAOzqB,OAAQ,CACrC,IAAImuC,EAAQplB,EAAK0B,OAAO,GAExB,GAAI0jB,EAAMhsC,GAAI,CACZ,IAAI+sE,EAAY/gC,EAAMhsC,GAAGgsC,EAAMhsC,GAAGnC,OAAS,GAEvCkvE,EAAU1gE,IACZ0gE,EAAU1gE,EAAE3D,EAAE,GAAKooC,EACnBi8B,EAAU1gE,EAAE3D,EAAE,GAAKooC,EAEvB,CACF,CAEA,OAAOlqB,CACT,EAEA4jD,qBAAqBnsE,UAAUisE,aAAe,WAE5C,IAAI1sE,EACA6gB,EAFJ1a,KAAK0lC,mBAAmB1lC,MAGxB,IAAIslB,EAAetlB,KAAKgiE,aAAavG,YACrCz7D,KAAKsjE,gBAAkBrmD,iBAAiBqI,EAAeA,EAAa9c,EAAE1O,OAAS,GAE3EwrB,EAAa61C,GACfn7D,KAAK4rD,aAAaz0B,aAAa,OAAQn3B,KAAKmmE,WAAW7gD,EAAa61C,KAEpEn7D,KAAK4rD,aAAaz0B,aAAa,OAAQ,iBAGrC7R,EAAa8gC,KACfpmD,KAAK4rD,aAAaz0B,aAAa,SAAUn3B,KAAKmmE,WAAW7gD,EAAa8gC,KACtEpmD,KAAK4rD,aAAaz0B,aAAa,eAAgB7R,EAAa41C,KAG9Dl7D,KAAK4rD,aAAaz0B,aAAa,YAAa7R,EAAag3C,WACzD,IAAItf,EAAWh9C,KAAKywB,WAAWkB,YAAY60B,cAAclhC,EAAajnB,GAEtE,GAAI2+C,EAASuG,OACXvjD,KAAK4rD,aAAaz0B,aAAa,QAAS6lB,EAASuG,YAC5C,CACLvjD,KAAK4rD,aAAaz0B,aAAa,cAAe6lB,EAASsG,SACvD,IAAInG,EAAU73B,EAAa63B,QACvBD,EAAS53B,EAAa43B,OAC1Bl9C,KAAK4rD,aAAaz0B,aAAa,aAAc+lB,GAC7Cl9C,KAAK4rD,aAAaz0B,aAAa,cAAegmB,EAChD,CAEAn9C,KAAK4rD,aAAaz0B,aAAa,aAAc7R,EAAapY,GAC1D,IAGI+7D,EAHA/J,EAAU55C,EAAa9c,GAAK,GAC5B0gE,IAAelpE,KAAKywB,WAAWkB,YAAYhM,MAC/CjL,EAAMwkD,EAAQplE,OAEd,IAAIqqE,EAAenkE,KAAKoxD,QAEpBoX,EAAcxoE,KAAK6iB,KAAK2lD,YACxB7E,EAAO,EACPC,EAAO,EACPa,GAAY,EACZhF,EAAmC,KAAlBn6C,EAAag4B,GAAah4B,EAAag3C,UAE5D,IAAIkM,GAAgBU,GAAe5jD,EAAa0nB,GA4CzC,CACL,IACIpnB,EADAujD,EAAoBnpE,KAAK0mE,UAAU5sE,OAGvC,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAS3B,GARKmG,KAAK0mE,UAAU7sE,KAClBmG,KAAK0mE,UAAU7sE,GAAK,CAClBuvE,KAAM,KACNC,UAAW,KACXC,MAAO,QAINJ,IAAeV,GAAqB,IAAN3uE,EAAS,CAG1C,GAFAovE,EAAQE,EAAoBtvE,EAAImG,KAAK0mE,UAAU7sE,GAAGuvE,KAAOnnD,SAASinD,EAAa,IAAM,QAEjFC,GAAqBtvE,EAAG,CAM1B,GALAovE,EAAM9xC,aAAa,iBAAkB,QACrC8xC,EAAM9xC,aAAa,kBAAmB,SACtC8xC,EAAM9xC,aAAa,oBAAqB,KACxCn3B,KAAK0mE,UAAU7sE,GAAGuvE,KAAOH,EAErBC,EAAY,CACd,IAAIG,EAAYpnD,SAAS,KACzBgnD,EAAM/8C,YAAYm9C,GAClBrpE,KAAK0mE,UAAU7sE,GAAGwvE,UAAYA,CAChC,CAEArpE,KAAK0mE,UAAU7sE,GAAGuvE,KAAOH,EACzBjpE,KAAK4rD,aAAa1/B,YAAY+8C,EAChC,CAEAA,EAAMxjE,MAAMC,QAAU,SACxB,CAkBA,GAhBAy+D,EAAajzD,QAETs3D,IACEtJ,EAAQrlE,GAAGsT,IACbw2D,GAAQlE,EACRmE,GAAQt+C,EAAa+2C,QACrBuH,GAAQa,EAAY,EAAI,EACxBA,GAAY,GAGdzkE,KAAKimE,4BAA4B3gD,EAAc6+C,EAAcjF,EAAQrlE,GAAGgzB,KAAM82C,EAAMC,GACpFD,GAAQzE,EAAQrlE,GAAG2O,GAAK,EAExBm7D,GAAQlE,GAGNyJ,EAAY,CAEd,IAAIK,EAEJ,GAAmB,KAHnB3jD,EAAW5lB,KAAKywB,WAAWkB,YAAY00B,YAAY/gC,EAAai3C,UAAU1iE,GAAImjD,EAASE,OAAQl9C,KAAKywB,WAAWkB,YAAY60B,cAAclhC,EAAajnB,GAAGilD,UAG5Ip2C,EACXq8D,EAAe,IAAIxC,eAAenhD,EAAS/C,KAAM7iB,KAAKywB,WAAYzwB,UAC7D,CACL,IAAI6iB,EAAO2jD,eAEP5gD,EAAS/C,MAAQ+C,EAAS/C,KAAK0B,SACjC1B,EAAO7iB,KAAK+oE,eAAenjD,EAAS/C,KAAMyC,EAAag3C,YAGzDiN,EAAe,IAAIzO,gBAAgBj4C,EAAM7iB,KAAKywB,WAAYzwB,KAC5D,CAEA,GAAIA,KAAK0mE,UAAU7sE,GAAGyvE,MAAO,CAC3B,IAAIA,EAAQtpE,KAAK0mE,UAAU7sE,GAAGyvE,MAC9BtpE,KAAK0mE,UAAU7sE,GAAGwvE,UAAUtiB,YAAYuiB,EAAM1d,cAC9C0d,EAAMr2D,SACR,CAEAjT,KAAK0mE,UAAU7sE,GAAGyvE,MAAQC,EAC1BA,EAAaC,QAAS,EACtBD,EAAax7C,aAAa,GAC1Bw7C,EAAal2C,cACbrzB,KAAK0mE,UAAU7sE,GAAGwvE,UAAUn9C,YAAYq9C,EAAa3d,cAGlC,IAAfhmC,EAAS1Y,GACXlN,KAAK0mE,UAAU7sE,GAAGwvE,UAAUlyC,aAAa,YAAa,SAAW7R,EAAag3C,UAAY,IAAM,IAAMh3C,EAAag3C,UAAY,IAAM,IAEzI,MACMkM,GACFS,EAAM9xC,aAAa,YAAa,aAAegtC,EAAavqE,MAAM,IAAM,IAAMuqE,EAAavqE,MAAM,IAAM,KAGzGqvE,EAAMv3D,YAAcwtD,EAAQrlE,GAAGmP,IAC/BigE,EAAMl9C,eAAe,uCAAwC,YAAa,WAG9E,CAEIy8C,GAAeS,GACjBA,EAAM9xC,aAAa,IAlJR,GAoJf,KA7IoD,CAClD,IAAIsyC,EAAWzpE,KAAKyoE,cAChBiB,EAAU,QAEd,OAAQpkD,EAAatgB,GACnB,KAAK,EACH0kE,EAAU,MACV,MAEF,KAAK,EACHA,EAAU,SACV,MAEF,QACEA,EAAU,QAIdD,EAAStyC,aAAa,cAAeuyC,GACrCD,EAAStyC,aAAa,iBAAkBsoC,GACxC,IAAI/tD,EAAc1R,KAAK0oE,kBAAkBpjD,EAAai3C,WAItD,IAHA7hD,EAAMhJ,EAAY5X,OAClB8pE,EAAOt+C,EAAa22C,GAAK32C,EAAa22C,GAAG,GAAK32C,EAAao2C,OAAS,EAE/D7hE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GACxBovE,EAAQjpE,KAAK0mE,UAAU7sE,GAAGuvE,MAAQnnD,SAAS,UACrCvQ,YAAcA,EAAY7X,GAChCovE,EAAM9xC,aAAa,IAAK,GACxB8xC,EAAM9xC,aAAa,IAAKysC,GACxBqF,EAAMxjE,MAAMC,QAAU,UACtB+jE,EAASv9C,YAAY+8C,GAEhBjpE,KAAK0mE,UAAU7sE,KAClBmG,KAAK0mE,UAAU7sE,GAAK,CAClBuvE,KAAM,KACNE,MAAO,OAIXtpE,KAAK0mE,UAAU7sE,GAAGuvE,KAAOH,EACzBrF,GAAQt+C,EAAak3C,gBAGvBx8D,KAAK4rD,aAAa1/B,YAAYu9C,EAChC,CAmGA,KAAO5vE,EAAImG,KAAK0mE,UAAU5sE,QACxBkG,KAAK0mE,UAAU7sE,GAAGuvE,KAAK3jE,MAAMC,QAAU,OACvC7L,GAAK,EAGPmG,KAAKyzD,cAAe,CACtB,EAEAgT,qBAAqBnsE,UAAU8tD,iBAAmB,WAIhD,GAHApoD,KAAK+tB,aAAa/tB,KAAKykB,KAAKggB,cAAgBzkC,KAAK6iB,KAAKkD,IACtD/lB,KAAKq1D,qBAEDr1D,KAAKyzD,aAAc,CACrBzzD,KAAKyzD,cAAe,EACpB,IAAIkW,EAAU3pE,KAAK4rD,aAAanhC,UAChCzqB,KAAK4pE,KAAO,CACV/4D,IAAK84D,EAAQnoC,EACb1iB,KAAM6qD,EAAQ9wC,EACdxP,MAAOsgD,EAAQtgD,MACftY,OAAQ44D,EAAQ54D,OAEpB,CAEA,OAAO/Q,KAAK4pE,IACd,EAEAnD,qBAAqBnsE,UAAUurC,SAAW,WACxC,IAAIhsC,EAEA0vE,EADA7uD,EAAM1a,KAAK0mE,UAAU5sE,OAIzB,IAFAkG,KAAKykC,cAAgBzkC,KAAKykB,KAAKggB,cAE1B5qC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GACxB0vE,EAAevpE,KAAK0mE,UAAU7sE,GAAGyvE,SAG/BC,EAAax7C,aAAa/tB,KAAKykB,KAAKggB,cAAgBzkC,KAAK6iB,KAAKkD,IAE1DwjD,EAAavkC,OACfhlC,KAAKglC,MAAO,GAIpB,EAEAyhC,qBAAqBnsE,UAAU+6D,mBAAqB,WAGlD,GAFAr1D,KAAKsmE,iBAEAtmE,KAAK6iB,KAAK2lD,aAAexoE,KAAKglC,QACjChlC,KAAK6lE,aAAanC,YAAY1jE,KAAKgiE,aAAavG,YAAaz7D,KAAKujE,oBAE9DvjE,KAAKujE,oBAAsBvjE,KAAK6lE,aAAatC,oBAAoB,CAEnE,IAAI1pE,EACA6gB,EAFJ1a,KAAKyzD,cAAe,EAGpB,IAGIoW,EACAC,EACAP,EALAjG,EAAkBtjE,KAAK6lE,aAAavC,gBACpCpE,EAAUl/D,KAAKgiE,aAAavG,YAAYjzD,EAM5C,IALAkS,EAAMwkD,EAAQplE,OAKTD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACnBqlE,EAAQrlE,GAAGsT,IACd08D,EAAiBvG,EAAgBzpE,GACjCiwE,EAAW9pE,KAAK0mE,UAAU7sE,GAAGuvE,MAC7BG,EAAevpE,KAAK0mE,UAAU7sE,GAAGyvE,QAG/BC,EAAal2C,cAGXw2C,EAAe7kC,KAAKkI,GACtB48B,EAAS3yC,aAAa,YAAa0yC,EAAe38B,GAGhD28B,EAAe7kC,KAAKx1B,GACtBs6D,EAAS3yC,aAAa,UAAW0yC,EAAer6D,GAG9Cq6D,EAAe7kC,KAAKk2B,IACtB4O,EAAS3yC,aAAa,eAAgB0yC,EAAe3O,IAGnD2O,EAAe7kC,KAAKohB,IACtB0jB,EAAS3yC,aAAa,SAAU0yC,EAAezjB,IAG7CyjB,EAAe7kC,KAAKm2B,IACtB2O,EAAS3yC,aAAa,OAAQ0yC,EAAe1O,IAIrD,CAEJ,EAMA7gD,gBAAgB,CAAC04C,eAAgB2T,eAEjCA,cAAcrsE,UAAU86D,cAAgB,WACtC,IAAIxG,EAAO3sC,SAAS,QAIpB2sC,EAAKz3B,aAAa,QAASn3B,KAAK6iB,KAAKq4C,IACrCtM,EAAKz3B,aAAa,SAAUn3B,KAAK6iB,KAAKuf,IACtCwsB,EAAKz3B,aAAa,OAAQn3B,KAAK6iB,KAAKujC,IACpCpmD,KAAK4rD,aAAa1/B,YAAY0iC,EAChC,EAUAgY,YAAYtsE,UAAUyzB,aAAe,SAAU65B,GAC7C5nD,KAAKgsD,kBAAkBpE,GAAK,EAC9B,EAEAgf,YAAYtsE,UAAU+4B,YAAc,WAAa,EAEjDuzC,YAAYtsE,UAAU6xD,eAAiB,WACrC,OAAO,IACT,EAEAya,YAAYtsE,UAAU2Y,QAAU,WAAa,EAE7C2zD,YAAYtsE,UAAU8tD,iBAAmB,WAAa,EAEtDwe,YAAYtsE,UAAUqE,KAAO,WAAa,EAE1C2b,gBAAgB,CAACivC,YAAagF,iBAAkBuE,iBAAkBtJ,cAAeod,aAIjFtsD,gBAAgB,CAAC+vC,cAAewc,iBAEhCA,gBAAgBvsE,UAAU2yD,WAAa,SAAUpqC,GAC/C,OAAO,IAAI+jD,YAAY/jD,EAAM7iB,KAAKywB,WAAYzwB,KAChD,EAEA6mE,gBAAgBvsE,UAAU4yD,YAAc,SAAUrqC,GAChD,OAAO,IAAIi4C,gBAAgBj4C,EAAM7iB,KAAKywB,WAAYzwB,KACpD,EAEA6mE,gBAAgBvsE,UAAU6yD,WAAa,SAAUtqC,GAC/C,OAAO,IAAI4jD,qBAAqB5jD,EAAM7iB,KAAKywB,WAAYzwB,KACzD,EAEA6mE,gBAAgBvsE,UAAUwyD,YAAc,SAAUjqC,GAChD,OAAO,IAAImwC,cAAcnwC,EAAM7iB,KAAKywB,WAAYzwB,KAClD,EAEA6mE,gBAAgBvsE,UAAU0yD,YAAc,SAAUnqC,GAChD,OAAO,IAAI8jD,cAAc9jD,EAAM7iB,KAAKywB,WAAYzwB,KAClD,EAEA6mE,gBAAgBvsE,UAAUw1B,gBAAkB,SAAUyC,GACpDvyB,KAAKmnE,WAAWhwC,aAAa,QAAS,8BACtCn3B,KAAKmnE,WAAWhwC,aAAa,cAAe,gCAExCn3B,KAAKioD,aAAa6f,YACpB9nE,KAAKmnE,WAAWhwC,aAAa,UAAWn3B,KAAKioD,aAAa6f,aAE1D9nE,KAAKmnE,WAAWhwC,aAAa,UAAW,OAAS5E,EAAS5uB,EAAI,IAAM4uB,EAAS5iB,GAG1E3P,KAAKioD,aAAa4f,cACrB7nE,KAAKmnE,WAAWhwC,aAAa,QAAS5E,EAAS5uB,GAC/C3D,KAAKmnE,WAAWhwC,aAAa,SAAU5E,EAAS5iB,GAChD3P,KAAKmnE,WAAW1hE,MAAM4jB,MAAQ,OAC9BrpB,KAAKmnE,WAAW1hE,MAAMsL,OAAS,OAC/B/Q,KAAKmnE,WAAW1hE,MAAM6nC,UAAY,qBAClCttC,KAAKmnE,WAAW1hE,MAAMmiE,kBAAoB5nE,KAAKioD,aAAa2f,mBAG1D5nE,KAAKioD,aAAa5+B,OACpBrpB,KAAKmnE,WAAWhwC,aAAa,QAASn3B,KAAKioD,aAAa5+B,OAGtDrpB,KAAKioD,aAAal3C,QACpB/Q,KAAKmnE,WAAWhwC,aAAa,SAAUn3B,KAAKioD,aAAal3C,QAGvD/Q,KAAKioD,aAAa8f,WACpB/nE,KAAKmnE,WAAWhwC,aAAa,QAASn3B,KAAKioD,aAAa8f,WAGtD/nE,KAAKioD,aAAa3kD,IACpBtD,KAAKmnE,WAAWhwC,aAAa,KAAMn3B,KAAKioD,aAAa3kD,SAGnBhG,IAAhC0C,KAAKioD,aAAa+f,WACpBhoE,KAAKmnE,WAAWhwC,aAAa,YAAan3B,KAAKioD,aAAa+f,WAG9DhoE,KAAKmnE,WAAWhwC,aAAa,sBAAuBn3B,KAAKioD,aAAa0f,qBAGtE3nE,KAAKmuD,cAAc/9B,QAAQlE,YAAYlsB,KAAKmnE,YAE5C,IAAIz2C,EAAO1wB,KAAKywB,WAAWC,KAC3B1wB,KAAKiuD,gBAAgB17B,EAAU7B,GAC/B1wB,KAAKywB,WAAW+8B,gBAAkBxtD,KAAKioD,aAAauF,gBACpDxtD,KAAK6iB,KAAO0P,EACZ,IAAIk8B,EAAcxsC,SAAS,YACvB2sC,EAAO3sC,SAAS,QACpB2sC,EAAKz3B,aAAa,QAAS5E,EAAS5uB,GACpCirD,EAAKz3B,aAAa,SAAU5E,EAAS5iB,GACrCi/C,EAAKz3B,aAAa,IAAK,GACvBy3B,EAAKz3B,aAAa,IAAK,GACvB,IAAI0hC,EAASt4C,kBACbkuC,EAAYt3B,aAAa,KAAM0hC,GAC/BpK,EAAYviC,YAAY0iC,GACxB5uD,KAAK4rD,aAAaz0B,aAAa,YAAa,OAAS/c,kBAAoB,IAAMy+C,EAAS,KACxFnoC,EAAKxE,YAAYuiC,GACjBzuD,KAAKwjB,OAAS+O,EAAS/O,OACvBxjB,KAAKu+C,SAAWthC,iBAAiBsV,EAAS/O,OAAO1pB,OACnD,EAEA+sE,gBAAgBvsE,UAAU2Y,QAAU,WAOlC,IAAIpZ,EANAmG,KAAKmuD,cAAc/9B,UACrBpwB,KAAKmuD,cAAc/9B,QAAQkH,UAAY,IAGzCt3B,KAAK4rD,aAAe,KACpB5rD,KAAKywB,WAAWC,KAAO,KAEvB,IAAIhW,EAAM1a,KAAKwjB,OAASxjB,KAAKwjB,OAAO1pB,OAAS,EAE7C,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBmG,KAAKu+C,SAAS1kD,IAAMmG,KAAKu+C,SAAS1kD,GAAGoZ,SACvCjT,KAAKu+C,SAAS1kD,GAAGoZ,UAIrBjT,KAAKu+C,SAASzkD,OAAS,EACvBkG,KAAKmoE,WAAY,EACjBnoE,KAAKmuD,cAAgB,IACvB,EAEA0Y,gBAAgBvsE,UAAU64B,oBAAsB,WAAa,EAE7D0zC,gBAAgBvsE,UAAUyvE,eAAiB,SAAU1oC,GACnD,IAAIxnC,EAAI,EACJ6gB,EAAM1a,KAAKwjB,OAAO1pB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAImG,KAAKwjB,OAAO3pB,GAAGwnC,MAAQA,EACzB,OAAOxnC,EAIX,OAAQ,CACV,EAEAgtE,gBAAgBvsE,UAAUoyD,UAAY,SAAUrkD,GAC9C,IAAIk2C,EAAWv+C,KAAKu+C,SAEpB,IAAIA,EAASl2C,IAAgC,KAAxBrI,KAAKwjB,OAAOnb,GAAK8b,GAAtC,CAIAo6B,EAASl2C,IAAO,EAChB,IAAIuW,EAAU5e,KAAK4sD,WAAW5sD,KAAKwjB,OAAOnb,IAa1C,GAZAk2C,EAASl2C,GAAOuW,EAEZ8C,yBAC0B,IAAxB1hB,KAAKwjB,OAAOnb,GAAK8b,IACnBnkB,KAAKywB,WAAWd,iBAAiBhC,oBAAoB/O,GAGvDA,EAAQkT,mBAGV9xB,KAAKgqE,mBAAmBprD,EAASvW,GAE7BrI,KAAKwjB,OAAOnb,GAAKyrD,GAAI,CACvB,IAAImW,EAAe,OAAQjqE,KAAKwjB,OAAOnb,GAAOrI,KAAK+pE,eAAe/pE,KAAKwjB,OAAOnb,GAAK6hE,IAAM7hE,EAAM,EAE/F,IAAsB,IAAlB4hE,EACF,OAGF,GAAKjqE,KAAKu+C,SAAS0rB,KAAiD,IAAhCjqE,KAAKu+C,SAAS0rB,GAG3C,CACL,IACIE,EADe5rB,EAAS0rB,GACC1V,SAASv0D,KAAKwjB,OAAOnb,GAAKyrD,IACvDl1C,EAAQq2C,SAASkV,EACnB,MANEnqE,KAAK0sD,UAAUud,GACfjqE,KAAK8tD,kBAAkBlvC,EAM3B,CA/BA,CAgCF,EAEAioD,gBAAgBvsE,UAAUqyD,qBAAuB,WAC/C,KAAO3sD,KAAK+tD,gBAAgBj0D,QAAQ,CAClC,IAAI8kB,EAAU5e,KAAK+tD,gBAAgBtZ,MAGnC,GAFA71B,EAAQu2C,iBAEJv2C,EAAQiE,KAAKixC,GAIf,IAHA,IAAIj6D,EAAI,EACJ6gB,EAAM1a,KAAKu+C,SAASzkD,OAEjBD,EAAI6gB,GAAK,CACd,GAAI1a,KAAKu+C,SAAS1kD,KAAO+kB,EAAS,CAChC,IAAIqrD,EAAe,OAAQrrD,EAAQiE,KAAO7iB,KAAK+pE,eAAenrD,EAAQiE,KAAKqnD,IAAMrwE,EAAI,EAEjFswE,EADenqE,KAAKu+C,SAAS0rB,GACJ1V,SAASv0D,KAAKwjB,OAAO3pB,GAAGi6D,IACrDl1C,EAAQq2C,SAASkV,GACjB,KACF,CAEAtwE,GAAK,CACP,CAEJ,CACF,EAEAgtE,gBAAgBvsE,UAAU+4B,YAAc,SAAUu0B,GAChD,GAAI5nD,KAAKykC,gBAAkBmjB,IAAO5nD,KAAKmoE,UAAvC,CAgBA,IAAItuE,EAZQ,OAAR+tD,EACFA,EAAM5nD,KAAKykC,cAEXzkC,KAAKykC,cAAgBmjB,EAKvB5nD,KAAKywB,WAAWyP,SAAW0nB,EAC3B5nD,KAAKywB,WAAWyU,SAAW,EAC3BllC,KAAKywB,WAAWd,iBAAiB1B,aAAe25B,EAChD5nD,KAAKywB,WAAWuU,MAAO,EAEvB,IAAItqB,EAAM1a,KAAKwjB,OAAO1pB,OAMtB,IAJKkG,KAAKujB,gBACRvjB,KAAKysD,YAAY7E,GAGd/tD,EAAI6gB,EAAM,EAAG7gB,GAAK,EAAGA,GAAK,GACzBmG,KAAKujB,gBAAkBvjB,KAAKu+C,SAAS1kD,KACvCmG,KAAKu+C,SAAS1kD,GAAGk0B,aAAa65B,EAAM5nD,KAAKwjB,OAAO3pB,GAAGksB,IAIvD,GAAI/lB,KAAKywB,WAAWuU,KAClB,IAAKnrC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GACpBmG,KAAKujB,gBAAkBvjB,KAAKu+C,SAAS1kD,KACvCmG,KAAKu+C,SAAS1kD,GAAGw5B,aA9BvB,CAkCF,EAEAwzC,gBAAgBvsE,UAAU0vE,mBAAqB,SAAUprD,EAASvW,GAChE,IAAIsyB,EAAa/b,EAAQutC,iBAEzB,GAAKxxB,EAAL,CAOA,IAHA,IACIyvC,EADAvwE,EAAI,EAGDA,EAAIwO,GACLrI,KAAKu+C,SAAS1kD,KAA2B,IAArBmG,KAAKu+C,SAAS1kD,IAAemG,KAAKu+C,SAAS1kD,GAAGsyD,mBACpEie,EAAcpqE,KAAKu+C,SAAS1kD,GAAGsyD,kBAGjCtyD,GAAK,EAGHuwE,EACFpqE,KAAK4rD,aAAaye,aAAa1vC,EAAYyvC,GAE3CpqE,KAAK4rD,aAAa1/B,YAAYyO,EAhBhC,CAkBF,EAEAksC,gBAAgBvsE,UAAUqE,KAAO,WAC/BqB,KAAK4rD,aAAanmD,MAAMC,QAAU,MACpC,EAEAmhE,gBAAgBvsE,UAAUm7B,KAAO,WAC/Bz1B,KAAK4rD,aAAanmD,MAAMC,QAAU,OACpC,EAIA4U,gBAAgB,CAACivC,YAAagF,iBAAkBuE,iBAAkBtJ,aAAcuJ,sBAAuB+T,cAEvGA,aAAaxsE,UAAU24D,YAAc,SAAUpwC,EAAM4N,EAAYhM,GAC/DzkB,KAAK+/B,YACL//B,KAAK2pD,aAAa9mC,EAAM4N,EAAYhM,GACpCzkB,KAAK+vD,cAAcltC,EAAM4N,EAAYhM,GACrCzkB,KAAKonD,iBACLpnD,KAAKk1D,gBACLl1D,KAAKqzD,sBACLrzD,KAAKszD,0BACLtzD,KAAKs0D,8BAEDt0D,KAAK6iB,KAAKmL,IAAOyC,EAAW+8B,iBAC9BxtD,KAAKstD,gBAGPttD,KAAKrB,MACP,EAcAmoE,aAAaxsE,UAAUyzB,aAAe,SAAU65B,GAK9C,GAJA5nD,KAAKglC,MAAO,EACZhlC,KAAK2nD,uBAAuBC,GAC5B5nD,KAAKgsD,kBAAkBpE,EAAK5nD,KAAKqnD,WAE5BrnD,KAAKqnD,WAAcrnD,KAAK6iB,KAAKmL,GAAlC,CAIA,GAAKhuB,KAAKqtB,GAAG68B,aASXlqD,KAAKykC,cAAgBmjB,EAAM5nD,KAAK6iB,KAAKmD,OATZ,CACzB,IAAIsmC,EAAetsD,KAAKqtB,GAAG3M,EAEvB4rC,IAAiBtsD,KAAK6iB,KAAKiD,KAC7BwmC,EAAetsD,KAAK6iB,KAAKiD,GAAK,GAGhC9lB,KAAKykC,cAAgB6nB,CACvB,CAIA,IAAIzyD,EACA6gB,EAAM1a,KAAKu+C,SAASzkD,OAOxB,IALKkG,KAAKujB,gBACRvjB,KAAKysD,YAAYzsD,KAAKykC,eAInB5qC,EAAI6gB,EAAM,EAAG7gB,GAAK,EAAGA,GAAK,GACzBmG,KAAKujB,gBAAkBvjB,KAAKu+C,SAAS1kD,MACvCmG,KAAKu+C,SAAS1kD,GAAGk0B,aAAa/tB,KAAKykC,cAAgBzkC,KAAKwjB,OAAO3pB,GAAGksB,IAE9D/lB,KAAKu+C,SAAS1kD,GAAGmrC,OACnBhlC,KAAKglC,MAAO,GA3BlB,CA+BF,EAEA8hC,aAAaxsE,UAAU+6D,mBAAqB,WAC1C,IAAIx7D,EACA6gB,EAAM1a,KAAKwjB,OAAO1pB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,GACpBmG,KAAKujB,gBAAkBvjB,KAAKu+C,SAAS1kD,KACvCmG,KAAKu+C,SAAS1kD,GAAGw5B,aAGvB,EAEAyzC,aAAaxsE,UAAUgwE,YAAc,SAAUhrB,GAC7Ct/C,KAAKu+C,SAAWe,CAClB,EAEAwnB,aAAaxsE,UAAUiwE,YAAc,WACnC,OAAOvqE,KAAKu+C,QACd,EAEAuoB,aAAaxsE,UAAUkwE,gBAAkB,WACvC,IAAI3wE,EACA6gB,EAAM1a,KAAKwjB,OAAO1pB,OAEtB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBmG,KAAKu+C,SAAS1kD,IAChBmG,KAAKu+C,SAAS1kD,GAAGoZ,SAGvB,EAEA6zD,aAAaxsE,UAAU2Y,QAAU,WAC/BjT,KAAKwqE,kBACLxqE,KAAKq0D,oBACP,EAcA/5C,gBAAgB,CAACusD,gBAAiBC,aAAcjU,gBAAiBkU,gBAEjEA,eAAezsE,UAAUyyD,WAAa,SAAUlqC,GAC9C,OAAO,IAAIkkD,eAAelkD,EAAM7iB,KAAKywB,WAAYzwB,KACnD,EAqEAsa,gBAAgB,CAACusD,iBAAkBI,aAEnCA,YAAY3sE,UAAUyyD,WAAa,SAAUlqC,GAC3C,OAAO,IAAIkkD,eAAelkD,EAAM7iB,KAAKywB,WAAYzwB,KACnD,EAQAooE,sBAAsB9tE,UAAY,CAChCmwE,qBAAsB,SAA8BvZ,GAClD,IAAIr3D,EACA6gB,EAAMw2C,EAAWp3D,OACjBK,EAAM,IAEV,IAAKN,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBM,GAAO+2D,EAAWr3D,GAAGyzC,UAAUnzC,IAAM,IAGvC,IAAIuwE,EAAW1qE,KAAKqoE,UAAUluE,GAY9B,OAVKuwE,IACHA,EAAW,CACTxZ,WAAY,GAAGnsD,OAAOmsD,GACtBnJ,eAAgB,IAAIhc,OACpB/G,MAAM,GAERhlC,KAAKqoE,UAAUluE,GAAOuwE,EACtB1qE,KAAKsoE,aAAa9pE,KAAKksE,IAGlBA,CACT,EACAC,gBAAiB,SAAyBD,EAAUpZ,GAKlD,IAJA,IAAIz3D,EAAI,EACJ6gB,EAAMgwD,EAASxZ,WAAWp3D,OAC1BkrC,EAAOssB,EAEJz3D,EAAI6gB,IAAQ42C,GAAc,CAC/B,GAAIoZ,EAASxZ,WAAWr3D,GAAGyzC,UAAUwS,OAAO9a,KAAM,CAChDA,GAAO,EACP,KACF,CAEAnrC,GAAK,CACP,CAEA,GAAImrC,EAGF,IAFA0lC,EAAS3iB,eAAe72C,QAEnBrX,EAAI6gB,EAAM,EAAG7gB,GAAK,EAAGA,GAAK,EAC7B6wE,EAAS3iB,eAAe1Y,SAASq7B,EAASxZ,WAAWr3D,GAAGyzC,UAAUwS,OAAOp/B,GAI7EgqD,EAAS1lC,KAAOA,CAClB,EACA4lC,iBAAkB,SAA0BtZ,GAC1C,IAAIz3D,EACA6gB,EAAM1a,KAAKsoE,aAAaxuE,OAE5B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAK2qE,gBAAgB3qE,KAAKsoE,aAAazuE,GAAIy3D,EAE/C,EACAuZ,UAAW,WAET,OADA7qE,KAAKuoE,qBAAuB,EACrB,IAAMvoE,KAAKuoE,mBACpB,GAGF,IAAIuC,WAAa,WACf,IAAIxnE,EAAK,+BACLynE,EAAa,KACbC,EAAgB,KAChBC,EAAM,KA4CV,SAASC,IACFH,IACHE,EAxBJ,WACE,IAAIE,EAAOlpD,SAAS,OAEhB6vC,EAAM7vC,SAAS,UACfqtB,EAASrtB,SAAS,iBAetB,OAdA6vC,EAAI36B,aAAa,KAAM7zB,GACvBgsC,EAAOnY,aAAa,OAAQ,UAC5BmY,EAAOnY,aAAa,8BAA+B,QACnDmY,EAAOnY,aAAa,SAAU,sFAC9B26B,EAAI5lC,YAAYojB,GAEhB67B,EAAKj/C,YAAY4lC,GAEjBqZ,EAAKh0C,aAAa,KAAM7zB,EAAK,QAEzB0uD,eAAeC,gBACjBkZ,EAAK1lE,MAAMC,QAAU,QAGhBylE,CACT,CAIUC,GACNxtE,SAASw5B,KAAKlL,YAAY++C,GAC1BF,EAAa1wD,UAAU,WACvB2wD,EAAgBD,EAAWzhD,WAAW,OAExBo3B,OAAS,QAAUp9C,EAAK,IACtC0nE,EAAczhD,UAAY,gBAC1ByhD,EAAcxhD,SAAS,EAAG,EAAG,EAAG,GAEpC,CAcA,MAAO,CACLhC,KAAM0jD,EACNvtE,IAdF,SAAiByrB,GASf,OARK2hD,GACHG,IAGFH,EAAW1hD,MAAQD,EAAOC,MAC1B0hD,EAAWh6D,OAASqY,EAAOrY,OAE3Bi6D,EAActqB,OAAS,QAAUp9C,EAAK,IAC/BynE,CACT,EAMF,EAEA,SAASM,aAAahiD,EAAOtY,GAC3B,GAAIihD,eAAeE,gBACjB,OAAO,IAAIzO,gBAAgBp6B,EAAOtY,GAGpC,IAAIqY,EAAS/O,UAAU,UAGvB,OAFA+O,EAAOC,MAAQA,EACfD,EAAOrY,OAASA,EACTqY,CACT,CAEA,IAAIrC,YACK,CACLukD,eAAgBR,WAAWtjD,KAC3B+jD,cAAeT,WAAWntE,IAC1B0tE,aAAcA,cAIdG,kBAAoB,CAAC,EAEzB,SAASC,UAAUj1C,GACjB,IAAI38B,EAGAy4D,EAFA53C,EAAM8b,EAAK3T,KAAKsmC,GAAK3yB,EAAK3T,KAAKsmC,GAAGrvD,OAAS,EAI/C,IAHAkG,KAAKwyD,QAAU,GAGV34D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAC3By4D,EAAgB,KAChB,IAAIvzD,EAAOy3B,EAAK3T,KAAKsmC,GAAGtvD,GAAGsqB,GAEvBqnD,kBAAkBzsE,KAEpBuzD,EAAgB,IAAIG,EADP+Y,kBAAkBzsE,GAAM2zD,QACVl8B,EAAKs1B,eAAe1C,eAAevvD,GAAI28B,IAGhE87B,GACFtyD,KAAKwyD,QAAQh0D,KAAK8zD,EAEtB,CAEItyD,KAAKwyD,QAAQ14D,QACf08B,EAAKixB,uBAAuBznD,KAEhC,CAyBA,SAAS0rE,eAAepoE,EAAIovD,GAC1B8Y,kBAAkBloE,GAAM,CACtBovD,OAAQA,EAEZ,CAEA,SAASiZ,cAAc9oD,EAAMjE,GAK3B,IAAI/kB,EAJJmG,KAAK6iB,KAAOA,EACZ7iB,KAAK4e,QAAUA,EACf5e,KAAKgkB,gBAAkBhkB,KAAK6iB,KAAKmB,iBAAmB,GACpDhkB,KAAK0uD,SAAWzxC,iBAAiBjd,KAAKgkB,gBAAgBlqB,QAEtD,IAAI4gB,EAAM1a,KAAKgkB,gBAAgBlqB,OAC3B8xE,GAAW,EAEf,IAAK/xE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACa,MAAjCmG,KAAKgkB,gBAAgBnqB,GAAGmO,OAC1B4jE,GAAW,GAGb5rE,KAAK0uD,SAAS70D,GAAK4uC,qBAAqB0mB,aAAanvD,KAAK4e,QAAS5e,KAAKgkB,gBAAgBnqB,GAAI,GAG9FmG,KAAK4rE,SAAWA,EAEZA,GACF5rE,KAAK4e,QAAQ6oC,uBAAuBznD,KAExC,CAoDA,SAAS6rE,gBAAiB,CAvG1BJ,UAAUnxE,UAAU+4B,YAAc,SAAUgS,GAC1C,IAAIxrC,EACA6gB,EAAM1a,KAAKwyD,QAAQ14D,OAEvB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKwyD,QAAQ34D,GAAGw5B,YAAYgS,EAEhC,EAEAomC,UAAUnxE,UAAU02D,WAAa,SAAUjyD,GACzC,IAAIlF,EACA6gB,EAAM1a,KAAKwyD,QAAQ14D,OACnBovD,EAAU,GAEd,IAAKrvD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBmG,KAAKwyD,QAAQ34D,GAAGkF,OAASA,GAC3BmqD,EAAQ1qD,KAAKwB,KAAKwyD,QAAQ34D,IAI9B,OAAOqvD,CACT,EAgCAyiB,cAAcrxE,UAAU+4B,YAAc,WACpC,GAAKrzB,KAAK4rE,SAAV,CAIA,IAEI/xE,EAEAoqB,EACAssB,EACA1tB,EANAyqB,EAAYttC,KAAK4e,QAAQmpC,eAAe5R,IACxCz3C,EAAMsB,KAAK4e,QAAQktD,cAEnBpxD,EAAM1a,KAAKgkB,gBAAgBlqB,OAM/B,IAFA4E,EAAIqtE,YAEClyE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAqC,MAAjCmG,KAAKgkB,gBAAgBnqB,GAAGmO,KAAc,CAYxC,IAAIhD,EAXAhF,KAAKgkB,gBAAgBnqB,GAAGikD,MAC1Bp/C,EAAIstE,OAAO,EAAG,GACdttE,EAAIutE,OAAOjsE,KAAK4e,QAAQ6R,WAAW29B,SAASzqD,EAAG,GAC/CjF,EAAIutE,OAAOjsE,KAAK4e,QAAQ6R,WAAW29B,SAASzqD,EAAG3D,KAAK4e,QAAQ6R,WAAW29B,SAASz+C,GAChFjR,EAAIutE,OAAO,EAAGjsE,KAAK4e,QAAQ6R,WAAW29B,SAASz+C,GAC/CjR,EAAIutE,OAAO,EAAG,IAGhBppD,EAAO7iB,KAAK0uD,SAAS70D,GAAG6mB,EACxBuD,EAAKqpB,EAAU+C,kBAAkBxtB,EAAKnC,EAAE,GAAG,GAAImC,EAAKnC,EAAE,GAAG,GAAI,GAC7DhiB,EAAIstE,OAAO/nD,EAAG,GAAIA,EAAG,IAErB,IAAIN,EAAOd,EAAK2X,QAEhB,IAAKx1B,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzBurC,EAAMjD,EAAUmD,oBAAoB5tB,EAAKrT,EAAExK,EAAI,GAAI6d,EAAKhpB,EAAEmL,GAAI6d,EAAKnC,EAAE1b,IACrEtG,EAAIwtE,cAAc37B,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAGhEA,EAAMjD,EAAUmD,oBAAoB5tB,EAAKrT,EAAExK,EAAI,GAAI6d,EAAKhpB,EAAE,GAAIgpB,EAAKnC,EAAE,IACrEhiB,EAAIwtE,cAAc37B,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAChE,CAGFvwC,KAAK4e,QAAQ6R,WAAWtB,SAASg9C,MAAK,GACtCztE,EAAI0tE,MAtCJ,CAuCF,EAEAT,cAAcrxE,UAAU+2D,gBAAkB7C,YAAYl0D,UAAU+2D,gBAEhEsa,cAAcrxE,UAAU2Y,QAAU,WAChCjT,KAAK4e,QAAU,IACjB,EAIA,IAAIytD,cAAgB,CAClB,EAAG,YACH,EAAG,aACH,EAAG,YACH,EAAG,cA4JL,SAASC,YAAY1tD,EAASiE,EAAMo6B,EAAQsvB,GAC1CvsE,KAAKwsE,aAAe,GACpBxsE,KAAKs9C,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC1B,IAWIzjD,EAXAsqB,EAAK,EAEO,OAAZtB,EAAKsB,GACPA,EAAK,EACgB,OAAZtB,EAAKsB,GACdA,EAAK,EACgB,OAAZtB,EAAKsB,KACdA,EAAK,GAGPnkB,KAAKoiC,GAAKqG,qBAAqB0mB,aAAavwC,EAASiE,EAAMsB,EAAIvF,GAE/D,IACI6tD,EADA/xD,EAAMuiC,EAAOnjD,OAGjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACnBojD,EAAOpjD,GAAG4sB,SACbgmD,EAAc,CACZvb,WAAYqb,EAAkB9B,qBAAqBxtB,EAAOpjD,GAAGq3D,YAC7Dwb,QAAS,IAEX1sE,KAAKwsE,aAAahuE,KAAKiuE,GACvBxvB,EAAOpjD,GAAG0kD,SAAS//C,KAAKiuE,GAG9B,CAIA,SAASE,eAAe9pD,EAAM4N,EAAYhM,GACxCzkB,KAAKukB,OAAS,GACdvkB,KAAKorD,WAAavoC,EAAK0B,OACvBvkB,KAAK+6D,WAAa,GAClB/6D,KAAKqrD,UAAY,GACjBrrD,KAAKg4D,aAAe,GACpBh4D,KAAK01D,eAAiB,GACtB11D,KAAK+1D,kBAAoB,GACzB/1D,KAAKusE,kBAAoB,IAAInE,sBAC7BpoE,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CA4hBA,SAASmoD,cAAc/pD,EAAM4N,EAAYhM,GACvCzkB,KAAK0mE,UAAY,GACjB1mE,KAAKq8D,QAAU,EACfr8D,KAAKk8D,eAAgB,EACrBl8D,KAAKm8D,iBAAkB,EACvBn8D,KAAKo8D,iBAAkB,EACvBp8D,KAAK6sE,QAAS,EACd7sE,KAAK8sE,MAAO,EACZ9sE,KAAK67D,cAAgB,EACrB77D,KAAK+sE,cAAgB,KACrB/sE,KAAK6iE,WAAa,SAClB7iE,KAAKkD,OAAS,CACZ4pE,KAAM,gBACND,OAAQ,gBACRG,OAAQ,EACRC,OAAQ,IAEVjtE,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CAsOA,SAASyoD,eAAerqD,EAAM4N,EAAYhM,GACxCzkB,KAAKiqB,UAAYwG,EAAW+E,aAAa3S,EAAKwB,OAC9CrkB,KAAKsqB,IAAMmG,EAAWi5B,YAAYh+B,SAAS1rB,KAAKiqB,WAChDjqB,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CAyCA,SAAS0oD,eAAetqD,EAAM4N,EAAYhM,GACxCzkB,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CAcA,SAAS2oD,qBAAsB,CAmU/B,SAASC,gBACPrtE,KAAK4wD,SAAW,EAChB5wD,KAAKstC,UAAY3wB,iBAAiB,UAAW,IAC7C3c,KAAKupB,UAAY,GACjBvpB,KAAKstE,YAAc,GACnBttE,KAAKu/D,UAAY,GACjBv/D,KAAKutE,QAAU,GACfvtE,KAAK27C,SAAW,GAChB37C,KAAK47C,WAAa,GAClB57C,KAAKsD,GAAK9C,KAAK2I,QACjB,CAEA,SAASqkE,gBAIP,IAAI3zE,EAGJ,IANAmG,KAAKytE,MAAQ,GACbztE,KAAK0tE,QAAU,EACf1tE,KAAK2tE,IAAM,IAAI5hC,OAIVlyC,EAAI,EAAGA,EAFF,GAEWA,GAAK,EAAG,CAC3B,IAAIiyE,EAAgB,IAAIuB,cACxBrtE,KAAKytE,MAAM5zE,GAAKiyE,CAClB,CAEA9rE,KAAKw6B,QAPK,GAQVx6B,KAAK4tE,cAAgB,KACrB5tE,KAAK6tE,aAAe,IAAI9hC,OACxB/rC,KAAK8tE,eAAiB,EAEtB9tE,KAAK+tE,iBAAmB,GACxB/tE,KAAKguE,iBAAmB,GAExBhuE,KAAKiuE,mBAAqB,GAC1BjuE,KAAKkuE,mBAAqB,GAE1BluE,KAAKmuE,iBAAmB,GACxBnuE,KAAKouE,iBAAmB,GAExBpuE,KAAKquE,eAAiB,GACtBruE,KAAKsuE,eAAiB,GAEtBtuE,KAAKuuE,gBAAkB,GACvBvuE,KAAKwuE,gBAAkB,GAEvBxuE,KAAKyuE,kBAAoB,GACzBzuE,KAAK0uE,kBAAoB,EAC3B,CAiNA,SAASC,cAAc9rD,EAAM4N,EAAYhM,GACvCzkB,KAAKujB,gBAAiB,EACtBvjB,KAAKwjB,OAASX,EAAKW,OACnBxjB,KAAK+tD,gBAAkB,GACvB/tD,KAAKu+C,SAAWthC,iBAAiBjd,KAAKwjB,OAAO1pB,QAC7CkG,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,GACnCzkB,KAAKqtB,GAAKxK,EAAKwK,GAAK6Y,gBAAgBC,QAAQnmC,KAAM6iB,EAAKwK,GAAI,EAAGoD,EAAW9B,UAAW3uB,MAAQ,CAC1FkqD,cAAc,EAElB,CAyCA,SAAS0kB,eAAezgB,EAAe+Y,GACrClnE,KAAKmuD,cAAgBA,EACrBnuD,KAAKioD,aAAe,CAClB4mB,aAAa3H,QAAiC5pE,IAAvB4pE,EAAO2H,aAA4B3H,EAAO2H,YACjEC,QAAS5H,GAAUA,EAAO4H,SAAW,KACrCthB,gBAAiB0Z,GAAUA,EAAO1Z,kBAAmB,EACrDma,oBAAqBT,GAAUA,EAAOS,qBAAuB,gBAC7DnS,yBAA0B0R,GAAUA,EAAO1R,0BAA4B,iBACvEoS,kBAAmBV,GAAUA,EAAOU,mBAAqB,UACzDG,UAAWb,GAAUA,EAAOa,WAAa,GACzCzkE,GAAI4jE,GAAUA,EAAO5jE,IAAM,GAC3B4kE,gBAAiBhB,QAAoC5pE,IAA1B4pE,EAAOgB,gBAAgChB,EAAOgB,gBAE3EloE,KAAKioD,aAAa8mB,IAAM7H,GAAUA,EAAO6H,KAAO,EAE5C/uE,KAAKmuD,cAAc/9B,UACrBpwB,KAAKioD,aAAa8mB,IAAM7H,GAAUA,EAAO6H,KAAOxuE,OAAOyuE,kBAAoB,GAG7EhvE,KAAKykC,eAAiB,EACtBzkC,KAAKywB,WAAa,CAChByP,UAAW,EACX8E,MAAM,EACNijB,aAAcjoD,KAAKioD,aACnBgnB,oBAAqB,GAEvBjvE,KAAKkvE,YAAc,IAAI1B,cACvBxtE,KAAKu+C,SAAW,GAChBv+C,KAAK+tD,gBAAkB,GACvB/tD,KAAK6tE,aAAe,IAAI9hC,OACxB/rC,KAAKujB,gBAAiB,EACtBvjB,KAAK6yB,aAAe,SAEhB7yB,KAAKioD,aAAa4mB,cACpB7uE,KAAKmvE,aAAenvE,KAAKkvE,YAAY5hC,UAAU1iB,KAAK5qB,KAAKkvE,aACzDlvE,KAAKovE,WAAapvE,KAAKkvE,YAAYte,QAAQhmC,KAAK5qB,KAAKkvE,aACrDlvE,KAAKqvE,aAAervE,KAAKkvE,YAAY3lD,UAAUqB,KAAK5qB,KAAKkvE,aACzDlvE,KAAKsvE,eAAiBtvE,KAAKkvE,YAAY5B,YAAY1iD,KAAK5qB,KAAKkvE,aAC7DlvE,KAAKuvE,aAAevvE,KAAKkvE,YAAY3P,UAAU30C,KAAK5qB,KAAKkvE,aACzDlvE,KAAKwvE,WAAaxvE,KAAKkvE,YAAY3B,QAAQ3iD,KAAK5qB,KAAKkvE,aACrDlvE,KAAKyvE,YAAczvE,KAAKkvE,YAAYvzB,SAAS/wB,KAAK5qB,KAAKkvE,aACvDlvE,KAAK0vE,cAAgB1vE,KAAKkvE,YAAYtzB,WAAWhxB,KAAK5qB,KAAKkvE,aAC3DlvE,KAAK2vE,QAAU3vE,KAAKkvE,YAAYpC,KAAKliD,KAAK5qB,KAAKkvE,aAC/ClvE,KAAK4vE,YAAc5vE,KAAKkvE,YAAY1lD,SAASoB,KAAK5qB,KAAKkvE,aACvDlvE,KAAK6vE,UAAY7vE,KAAKkvE,YAAYrC,OAAOjiD,KAAK5qB,KAAKkvE,aACnDlvE,KAAKmsE,KAAOnsE,KAAKkvE,YAAY/C,KAAKvhD,KAAK5qB,KAAKkvE,aAEhD,CAQA,SAASY,eAAgB,CAwFzB,SAASC,cAAcltD,EAAM4N,EAAYhM,GACvCzkB,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CAwBA,SAASurD,cAAcntD,EAAM4N,EAAYhM,GAEvCzkB,KAAKukB,OAAS,GAEdvkB,KAAKorD,WAAavoC,EAAK0B,OAEvBvkB,KAAK+6D,WAAa,GAElB/6D,KAAK01D,eAAiB,GAEtB11D,KAAKqrD,UAAY,GAEjBrrD,KAAK+1D,kBAAoB,GAEzB/1D,KAAKg7D,iBAAmB,GACxBh7D,KAAKiwE,gBAAkBhuD,SAAS,KAChCjiB,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,GAGnCzkB,KAAKg4D,aAAe,GACpBh4D,KAAKkwE,YAAc,CACjBr3C,EAAG,OACH2I,GAAI,OACJ7xB,EAAG,EACHhM,EAAG,EAEP,CA+NA,SAASwsE,aAAattD,EAAM4N,EAAYhM,GACtCzkB,KAAK0mE,UAAY,GACjB1mE,KAAKowE,UAAY,GACjBpwE,KAAKkwE,YAAc,CACjBr3C,EAAG,OACH2I,GAAI,OACJ7xB,EAAG,EACHhM,EAAG,GAEL3D,KAAK6iE,WAAa,MAClB7iE,KAAKqwE,UAAW,EAChBrwE,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CA0RA,SAAS6rD,eAAeztD,EAAM4N,EAAYhM,GACxCzkB,KAAK+/B,YACL//B,KAAK2pD,aAAa9mC,EAAM4N,EAAYhM,GACpCzkB,KAAKk1D,gBACL,IAAI/uB,EAAUD,gBAAgBC,QAe9B,GAdAnmC,KAAKuwE,GAAKpqC,EAAQnmC,KAAM6iB,EAAK0tD,GAAI,EAAG,EAAGvwE,MAEnC6iB,EAAKgC,GAAGhV,EAAEvH,GACZtI,KAAKkJ,GAAKi9B,EAAQnmC,KAAM6iB,EAAKgC,GAAGhV,EAAEgpB,EAAG,EAAG,EAAG74B,MAC3CA,KAAK41C,GAAKzP,EAAQnmC,KAAM6iB,EAAKgC,GAAGhV,EAAE2xB,EAAG,EAAG,EAAGxhC,MAC3CA,KAAK61C,GAAK1P,EAAQnmC,KAAM6iB,EAAKgC,GAAGhV,EAAEggC,EAAG,EAAG,EAAG7vC,OAE3CA,KAAK6P,EAAIs2B,EAAQnmC,KAAM6iB,EAAKgC,GAAGhV,EAAG,EAAG,EAAG7P,MAGtC6iB,EAAKgC,GAAGtnB,IACVyC,KAAKzC,EAAI4oC,EAAQnmC,KAAM6iB,EAAKgC,GAAGtnB,EAAG,EAAG,EAAGyC,OAGtC6iB,EAAKgC,GAAG4lB,GAAG9lC,EAAE7K,QAAU+oB,EAAKgC,GAAG4lB,GAAG9lC,EAAE,GAAGw8B,GAAI,CAC7C,IAAItnC,EACA6gB,EAAMmI,EAAKgC,GAAG4lB,GAAG9lC,EAAE7K,OAEvB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgpB,EAAKgC,GAAG4lB,GAAG9lC,EAAE9K,GAAGsnC,GAAK,KACrBte,EAAKgC,GAAG4lB,GAAG9lC,EAAE9K,GAAGunC,GAAK,IAEzB,CAEAphC,KAAKyqC,GAAKtE,EAAQnmC,KAAM6iB,EAAKgC,GAAG4lB,GAAI,EAAGpsB,UAAWre,MAClDA,KAAKyqC,GAAGrI,IAAK,EACbpiC,KAAK81C,GAAK3P,EAAQnmC,KAAM6iB,EAAKgC,GAAGixB,GAAI,EAAGz3B,UAAWre,MAClDA,KAAK+1C,GAAK5P,EAAQnmC,KAAM6iB,EAAKgC,GAAGkxB,GAAI,EAAG13B,UAAWre,MAClDA,KAAKg2C,GAAK7P,EAAQnmC,KAAM6iB,EAAKgC,GAAGmxB,GAAI,EAAG33B,UAAWre,MAClDA,KAAKm2C,IAAM,IAAIpK,OACf/rC,KAAKwwE,SAAW,IAAIzkC,OACpB/rC,KAAKqlC,eAAgB,EAErBrlC,KAAK+nD,eAAiB,CACpBC,MAAOhoD,KAEX,CAyIA,SAASywE,cAAc5tD,EAAM4N,EAAYhM,GACvCzkB,KAAKiqB,UAAYwG,EAAW+E,aAAa3S,EAAKwB,OAC9CrkB,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,EACrC,CA4BA,SAASisD,mBAAmBviB,EAAe+Y,GACzClnE,KAAKmuD,cAAgBA,EACrBnuD,KAAKwjB,OAAS,KACdxjB,KAAKykC,eAAiB,EACtBzkC,KAAKioD,aAAe,CAClB8f,UAAWb,GAAUA,EAAOa,WAAa,GACzCvS,yBAA0B0R,GAAUA,EAAO1R,0BAA4B,iBACvEtN,oBAAqBgf,IAAuC,IAA7BA,EAAOhf,mBACtC+f,WAAY,CACV5+C,MAAO69C,GAAUA,EAAOe,YAAcf,EAAOe,WAAW5+C,OAAS,OACjEtY,OAAQm2D,GAAUA,EAAOe,YAAcf,EAAOe,WAAWl3D,QAAU,OACnE8nB,EAAGquC,GAAUA,EAAOe,YAAcf,EAAOe,WAAWpvC,GAAK,QACzD2I,EAAG0lC,GAAUA,EAAOe,YAAcf,EAAOe,WAAWzmC,GAAK,UAG7DxhC,KAAKywB,WAAa,CAChBuU,MAAM,EACN9E,UAAW,EACX+nB,aAAcjoD,KAAKioD,cAErBjoD,KAAK+tD,gBAAkB,GACvB/tD,KAAKu+C,SAAW,GAChBv+C,KAAK2wE,eAAiB,GACtB3wE,KAAKmoE,WAAY,EACjBnoE,KAAK4wE,OAAS,KACd5wE,KAAKgnE,YAAa,EAClBhnE,KAAK6yB,aAAe,MACtB,CAyUA,SAASg+C,aAAahuD,EAAM4N,EAAYhM,GACtCzkB,KAAKwjB,OAASX,EAAKW,OACnBxjB,KAAKgnE,YAAcnkD,EAAKiB,QACxB9jB,KAAKujB,gBAAiB,EACtBvjB,KAAK+tD,gBAAkB,GACvB/tD,KAAKu+C,SAAWv+C,KAAKwjB,OAASvG,iBAAiBjd,KAAKwjB,OAAO1pB,QAAU,GACrEkG,KAAKizD,YAAYpwC,EAAM4N,EAAYhM,GACnCzkB,KAAKqtB,GAAKxK,EAAKwK,GAAK6Y,gBAAgBC,QAAQnmC,KAAM6iB,EAAKwK,GAAI,EAAGoD,EAAW9B,UAAW3uB,MAAQ,CAC1FkqD,cAAc,EAElB,CA6CA,SAAS4mB,eAAe3iB,EAAe+Y,GACrClnE,KAAKmuD,cAAgBA,EACrBnuD,KAAKwjB,OAAS,KACdxjB,KAAKykC,eAAiB,EACtBzkC,KAAKioD,aAAe,CAClB8f,UAAWb,GAAUA,EAAOa,WAAa,GACzCvS,yBAA0B0R,GAAUA,EAAO1R,0BAA4B,iBACvEtN,oBAAqBgf,IAAuC,IAA7BA,EAAOhf,mBACtC+f,WAAY,CACV5+C,MAAO69C,GAAUA,EAAOe,YAAcf,EAAOe,WAAW5+C,OAAS,OACjEtY,OAAQm2D,GAAUA,EAAOe,YAAcf,EAAOe,WAAWl3D,QAAU,OACnE8nB,EAAGquC,GAAUA,EAAOe,YAAcf,EAAOe,WAAWpvC,GAAK,QACzD2I,EAAG0lC,GAAUA,EAAOe,YAAcf,EAAOe,WAAWzmC,GAAK,SAE3D0mC,gBAAiBhB,QAAoC5pE,IAA1B4pE,EAAOgB,gBAAgChB,EAAOgB,gBAE3EloE,KAAKywB,WAAa,CAChBuU,MAAM,EACN9E,UAAW,EACX+nB,aAAcjoD,KAAKioD,cAErBjoD,KAAK+tD,gBAAkB,GACvB/tD,KAAKu+C,SAAW,GAChBv+C,KAAK2wE,eAAiB,GACtB3wE,KAAKmoE,WAAY,EACjBnoE,KAAK4wE,OAAS,KACd5wE,KAAKgnE,YAAa,EAClBhnE,KAAK6yB,aAAe,MACtB,CAz9FAg5C,cAAcvxE,UAAY,CACxBy2E,eAAgB,WAA2B,EAC3C1d,oBAAqB,WAAgC,EACrDC,wBAAyB,WAMvB,GAAItzD,KAAK6iB,KAAKixC,IAAM,EAAG,CACrB9zD,KAAKgxE,QAAU,GACf,IAAIlF,EAAgB9rE,KAAKywB,WAAWq7C,cAChCmF,EAAelqD,YAAYskD,aAAaS,EAAc1iD,OAAOC,MAAOyiD,EAAc1iD,OAAOrY,QAC7F/Q,KAAKgxE,QAAQxyE,KAAKyyE,GAClB,IAAIC,EAAgBnqD,YAAYskD,aAAaS,EAAc1iD,OAAOC,MAAOyiD,EAAc1iD,OAAOrY,QAC9F/Q,KAAKgxE,QAAQxyE,KAAK0yE,GAEdlxE,KAAK6iB,KAAKixC,IAAM,IAAMl2D,SAASuzE,UACjCpqD,YAAYukD,gBAEhB,CAEAtrE,KAAK8rE,cAAgB9rE,KAAKywB,WAAWq7C,cACrC9rE,KAAKoxE,gBAAkBpxE,KAAKywB,WAAW2gD,gBACvCpxE,KAAK8wD,yBAA2B,IAAI2a,UAAUzrE,MAC9CA,KAAK6wD,wBACP,EACAuE,cAAe,WAA0B,EACzC5J,aAAc,WACZ,IAAI/6B,EAAazwB,KAAKywB,WAEtB,GAAIA,EAAW4gD,YAAcrxE,KAAK6iB,KAAK6oC,GAAI,CACzCj7B,EAAW4gD,UAAYrxE,KAAK6iB,KAAK6oC,GACjC,IAAID,EAAiBlD,aAAavoD,KAAK6iB,KAAK6oC,IAC5Cj7B,EAAWq7C,cAAcwF,yBAA2B7lB,CACtD,CACF,EACA6I,2BAA4B,WAC1Bt0D,KAAK8qD,YAAc,IAAI6gB,cAAc3rE,KAAK6iB,KAAM7iB,MAChDA,KAAK+wD,iBAAmB/wD,KAAK8wD,yBAAyBE,WAAW3C,YAAYC,iBAC/E,EACAijB,YAAa,WACNvxE,KAAKsnD,QAAYtnD,KAAKqnD,YAAarnD,KAAKunD,gBAC3CvnD,KAAKsnD,QAAS,EAElB,EACAkqB,YAAa,WACPxxE,KAAKqnD,YAAcrnD,KAAKunD,gBAC1BvnD,KAAKsnD,QAAS,EACdtnD,KAAKqlC,eAAgB,EACrBrlC,KAAK8qD,YAAYzlB,eAAgB,EAErC,EACAwpC,YAAa,SAAqB/C,GAChCA,EAAc2F,UAAUzxE,KAAKoxE,gBAAgBhkC,GAAIptC,KAAKoxE,gBAAgBjtD,GAAInkB,KAAKoxE,gBAAgBztE,EAAI3D,KAAKoxE,gBAAgBxkC,GAAI5sC,KAAKoxE,gBAAgBzhE,EAAI3P,KAAKoxE,gBAAgBhnC,GAC5K,EACAsnC,aAAc,WACZ,GAAI1xE,KAAK6iB,KAAKixC,IAAM,EAAG,CACrB,IACI6d,EADS3xE,KAAKgxE,QAAQ,GACH1nD,WAAW,MAClCtpB,KAAK6uE,YAAY8C,GAEjBA,EAAUC,UAAU5xE,KAAK8rE,cAAc1iD,OAAQ,EAAG,GAGlDppB,KAAK69D,iBAAmB79D,KAAK8rE,cAAc+F,eAC3C7xE,KAAK8rE,cAAc7+B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/CjtC,KAAK6uE,YAAY7uE,KAAK8rE,eACtB9rE,KAAK8rE,cAAc7+B,aAAajtC,KAAK69D,iBACvC,CACF,EACAiU,UAAW,WACT,GAAI9xE,KAAK6iB,KAAKixC,IAAM,EAAG,CACrB,IAAIie,EAAS/xE,KAAKgxE,QAAQ,GAItBW,EAAYI,EAAOzoD,WAAW,MAclC,GAbAtpB,KAAK6uE,YAAY8C,GACjBA,EAAUC,UAAU5xE,KAAK8rE,cAAc1iD,OAAQ,EAAG,GAElDppB,KAAK8rE,cAAc7+B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/CjtC,KAAK6uE,YAAY7uE,KAAK8rE,eACtB9rE,KAAK8rE,cAAc7+B,aAAajtC,KAAK69D,kBAE1B79D,KAAKykB,KAAKpU,eAAe,OAAQrQ,KAAK6iB,KAAO7iB,KAAK6iB,KAAKqnD,GAAKlqE,KAAK6iB,KAAKwe,IAAM,GAClFhO,aAAY,GAEjBrzB,KAAK8rE,cAAc7+B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAG3CjtC,KAAK6iB,KAAKixC,IAAM,IAAMl2D,SAASuzE,SAAU,CAG3C,IAAIpG,EAAahkD,YAAYwkD,cAAcvrE,KAAK8rE,cAAc1iD,QAC1C2hD,EAAWzhD,WAAW,MAC5BsoD,UAAU5xE,KAAK8rE,cAAc1iD,OAAQ,EAAG,GACtDppB,KAAK6uE,YAAY7uE,KAAK8rE,eAEtB9rE,KAAK8rE,cAAc8F,UAAU7G,EAAY,EAAG,EAC9C,CAEA/qE,KAAK8rE,cAAcwF,yBAA2BjF,cAAcrsE,KAAK6iB,KAAKixC,IACtE9zD,KAAK8rE,cAAc8F,UAAUG,EAAQ,EAAG,GAGxC/xE,KAAK8rE,cAAcwF,yBAA2B,mBAC9CtxE,KAAK8rE,cAAc8F,UAAU5xE,KAAKgxE,QAAQ,GAAI,EAAG,GACjDhxE,KAAK8rE,cAAc7+B,aAAajtC,KAAK69D,kBAErC79D,KAAK8rE,cAAcwF,yBAA2B,aAChD,CACF,EACAj+C,YAAa,SAAqB+iB,GAChC,IAAIp2C,KAAKsnD,SAAUtnD,KAAK6iB,KAAKmxC,KAIR,IAAjBh0D,KAAK6iB,KAAK8wC,IAAavd,GAA3B,CAIAp2C,KAAKswD,kBACLtwD,KAAKmoD,mBACLnoD,KAAKwwD,uBACLxwD,KAAKwrD,eACL,IAAIwmB,EAAkC,IAAjBhyE,KAAK6iB,KAAKsB,GAC/BnkB,KAAK0xE,eACL1xE,KAAKywB,WAAWtB,SAASg9C,KAAK6F,GAC9BhyE,KAAKywB,WAAWtB,SAASggD,aAAanvE,KAAK+nD,eAAeoI,SAASv2D,OACnEoG,KAAKywB,WAAWtB,SAASigD,WAAWpvE,KAAK+nD,eAAeqI,cACxDpwD,KAAKq1D,qBACLr1D,KAAKywB,WAAWtB,SAAS8iD,QAAQD,GACjChyE,KAAK8xE,YAED9xE,KAAK8qD,YAAY8gB,UACnB5rE,KAAKywB,WAAWtB,SAAS8iD,SAAQ,GAG/BjyE,KAAKqlC,gBACPrlC,KAAKqlC,eAAgB,EApBvB,CAsBF,EACApyB,QAAS,WACPjT,KAAK8rE,cAAgB,KACrB9rE,KAAK6iB,KAAO,KACZ7iB,KAAKywB,WAAa,KAClBzwB,KAAK8qD,YAAY73C,SACnB,EACAm+C,QAAS,IAAIrlB,QAEf8/B,cAAcvxE,UAAUqE,KAAOktE,cAAcvxE,UAAUi3E,YACvD1F,cAAcvxE,UAAUm7B,KAAOo2C,cAAcvxE,UAAUk3E,YAgCvDlF,YAAYhyE,UAAU84C,cAAgB+iB,aAAa77D,UAAU84C,cAc7D94B,gBAAgB,CAACivC,YAAagF,iBAAkBsd,cAAezY,cAAeN,iBAAkBtJ,aAActC,mBAAoBylB,gBAClIA,eAAeryE,UAAU24D,YAAcF,qBAAqBz4D,UAAU24D,YACtE0Z,eAAeryE,UAAU43E,gBAAkB,CACzCthB,QAAS,EACTV,QAAQ,GAEVyc,eAAeryE,UAAU63E,aAAe,GAExCxF,eAAeryE,UAAU86D,cAAgB,WACvCp1D,KAAK+8D,aAAa/8D,KAAKorD,WAAYprD,KAAKqrD,UAAWrrD,KAAKg4D,cAAc,EAAM,GAC9E,EAEA2U,eAAeryE,UAAU8iE,mBAAqB,SAAUv6C,EAAMquC,GAC5D,IAAIiJ,EAAY,CACdt3C,KAAMA,EACN9jB,KAAM8jB,EAAKsB,GACXiuD,cAAepyE,KAAKusE,kBAAkB9B,qBAAqBvZ,GAC3DA,WAAY,GACZ3S,SAAU,GACV93B,QAAoB,IAAZ5D,EAAKmxC,IAEXqJ,EAAc,CAAC,EAsBnB,GApBgB,OAAZx6C,EAAKsB,IAA2B,OAAZtB,EAAKsB,IAC3Bk5C,EAAY5/D,EAAIyoC,gBAAgBC,QAAQnmC,KAAM6iB,EAAKplB,EAAG,EAAG,IAAKuC,MAEzDq9D,EAAY5/D,EAAEkH,IACjBw1D,EAAUkY,GAAK,OAASx0D,QAAQw/C,EAAY5/D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQw/C,EAAY5/D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQw/C,EAAY5/D,EAAEijB,EAAE,IAAM,MAE3G,OAAZmC,EAAKsB,IAA2B,OAAZtB,EAAKsB,KAClCk5C,EAAY/0D,EAAI49B,gBAAgBC,QAAQnmC,KAAM6iB,EAAKva,EAAG,EAAG,KAAMtI,MAC/Dq9D,EAAY/8D,EAAI4lC,gBAAgBC,QAAQnmC,KAAM6iB,EAAKviB,EAAG,EAAG,KAAMN,MAC/Dq9D,EAAY1tD,EAAIu2B,gBAAgBC,QAAQnmC,KAAM6iB,EAAKlT,GAAK,CACtDhL,EAAG,GACF,EAAG,IAAM3E,MACZq9D,EAAY9/D,EAAI2oC,gBAAgBC,QAAQnmC,KAAM6iB,EAAKtlB,GAAK,CACtDoH,EAAG,GACF,EAAG0Z,UAAWre,MACjBq9D,EAAY18C,EAAI,IAAI02C,iBAAiBr3D,KAAM6iB,EAAKlC,EAAG3gB,OAGrDq9D,EAAY7tD,EAAI02B,gBAAgBC,QAAQnmC,KAAM6iB,EAAKrT,EAAG,EAAG,IAAMxP,MAE/C,OAAZ6iB,EAAKsB,IAA2B,OAAZtB,EAAKsB,IAe3B,GAdAg2C,EAAUpB,GAAK9C,YAAYpzC,EAAKk2C,IAAM,GACtCoB,EAAU/Y,GAAK8U,aAAarzC,EAAKu+B,IAAM,GAExB,GAAXv+B,EAAKu+B,KAEP+Y,EAAUhZ,GAAKt+B,EAAKs+B,IAGtBkc,EAAY15D,EAAIuiC,gBAAgBC,QAAQnmC,KAAM6iB,EAAKlf,EAAG,EAAG,KAAM3D,MAE1Dq9D,EAAY15D,EAAEgB,IACjBw1D,EAAUmY,GAAKjV,EAAY15D,EAAE+c,GAG3BmC,EAAKhC,EAAG,CACV,IAAIA,EAAI,IAAI+1C,aAAa52D,KAAM6iB,EAAKhC,EAAG,SAAU7gB,MACjDq9D,EAAYx8C,EAAIA,EAEXw8C,EAAYx8C,EAAElc,IACjBw1D,EAAUoY,GAAKlV,EAAYx8C,EAAEk2C,UAC7BoD,EAAc,GAAIkD,EAAYx8C,EAAEm2C,WAAW,GAE/C,OAEAmD,EAAUzqD,EAAe,IAAXmT,EAAKnT,EAAU,UAAY,UAK3C,OAFA1P,KAAK+6D,WAAWv8D,KAAK27D,GACrBkD,EAAY53D,MAAQ00D,EACbkD,CACT,EAEAsP,eAAeryE,UAAUijE,mBAAqB,WAK5C,MAJkB,CAChBthE,GAAI,GACJ+7D,aAAc,GAGlB,EAEA2U,eAAeryE,UAAUkjE,uBAAyB,SAAU36C,GAU1D,MATkB,CAChByqB,UAAW,CACTsjB,QAAS,EACTV,QAAQ,EACR/1D,IAAK6F,KAAKusE,kBAAkB1B,YAC5B/kD,GAAIogB,gBAAgBC,QAAQnmC,KAAM6iB,EAAKrT,EAAG,EAAG,IAAMxP,MACnD8/C,OAAQvK,yBAAyBoB,qBAAqB32C,KAAM6iB,EAAM7iB,OAIxE,EAEA2sE,eAAeryE,UAAUojE,mBAAqB,SAAU76C,GACtD,IAAIw6C,EAAc,IAAIiP,YAAYtsE,KAAM6iB,EAAM7iB,KAAK+6D,WAAY/6D,KAAKusE,mBAGpE,OAFAvsE,KAAKukB,OAAO/lB,KAAK6+D,GACjBr9D,KAAKy1D,oBAAoB4H,GAClBA,CACT,EAEAsP,eAAeryE,UAAU+kD,aAAe,WAEtC,IAAIxlD,EADJmG,KAAKqlC,eAAgB,EAErB,IAAI3qB,EAAM1a,KAAKqrD,UAAUvxD,OAEzB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKg4D,aAAan+D,GAAKmG,KAAKqrD,UAAUxxD,GAMxC,IAHAmG,KAAK+8D,aAAa/8D,KAAKorD,WAAYprD,KAAKqrD,UAAWrrD,KAAKg4D,cAAc,EAAM,IAC5Et9C,EAAM1a,KAAKumC,kBAAkBzsC,OAExBD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKumC,kBAAkB1sC,GAAGgsC,WAG5B7lC,KAAK61D,kBACL71D,KAAKusE,kBAAkB3B,iBAAiB5qE,KAAKqlC,cAC/C,EAEAsnC,eAAeryE,UAAUk4E,wBAA0B,SAAUllC,GAC3D,IAAIzzC,EACA6gB,EAAM1a,KAAK+6D,WAAWjhE,OAE1B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACnBmG,KAAK+6D,WAAWlhE,GAAG4sB,QACtBzmB,KAAK+6D,WAAWlhE,GAAGq3D,WAAW1yD,KAAK8uC,EAGzC,EAEAq/B,eAAeryE,UAAUm4E,6BAA+B,WACtD,IAAI54E,EACA6gB,EAAM1a,KAAK+6D,WAAWjhE,OAE1B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACnBmG,KAAK+6D,WAAWlhE,GAAG4sB,QACtBzmB,KAAK+6D,WAAWlhE,GAAGq3D,WAAWzc,KAGpC,EAEAk4B,eAAeryE,UAAUo4E,YAAc,SAAUz1B,GAC/C,IAAIpjD,EACA6gB,EAAMuiC,EAAOnjD,OAEjB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBojD,EAAOpjD,GAAG4sB,QAAS,CAEvB,EAEAkmD,eAAeryE,UAAUyiE,aAAe,SAAUlgD,EAAKwuC,EAAW2M,EAAc2a,EAAczhB,GAC5F,IAAIr3D,EAEAmL,EACA2e,EAGAo6C,EACAD,EACAD,EAPAnjD,EAAMmC,EAAI/iB,OAAS,EAGnBkkE,EAAY,GACZC,EAAe,GAIf2U,EAAgB,GAAG7tE,OAAOmsD,GAE9B,IAAKr3D,EAAI6gB,EAAK7gB,GAAK,EAAGA,GAAK,EAAG,CAS5B,IARAkkE,EAAe/9D,KAAK81D,uBAAuBj5C,EAAIhjB,KAK7CwxD,EAAUxxD,GAAKm+D,EAAa+F,EAAe,GAF3ClhD,EAAIhjB,GAAGg5E,cAAgBF,EAKP,OAAd91D,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,GACtE45C,EAGH1S,EAAUxxD,GAAG4L,MAAMghB,QAAS,EAF5B4kC,EAAUxxD,GAAKmG,KAAKo9D,mBAAmBvgD,EAAIhjB,GAAI+4E,GAKjD5U,EAAUx/D,KAAK6sD,EAAUxxD,GAAG4L,YACvB,GAAkB,OAAdoX,EAAIhjB,GAAGsqB,GAAa,CAC7B,GAAK45C,EAKH,IAFAp6C,EAAO0nC,EAAUxxD,GAAGoC,GAAGnC,OAElBkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzBqmD,EAAUxxD,GAAGm+D,aAAahzD,GAAKqmD,EAAUxxD,GAAGoC,GAAG+I,QALjDqmD,EAAUxxD,GAAKmG,KAAKu9D,mBAAmB1gD,EAAIhjB,IAS7CmG,KAAK+8D,aAAalgD,EAAIhjB,GAAGoC,GAAIovD,EAAUxxD,GAAGoC,GAAIovD,EAAUxxD,GAAGm+D,aAAc2a,EAAcC,EACzF,KAAyB,OAAd/1D,EAAIhjB,GAAGsqB,IACX45C,IACHF,EAAmB79D,KAAKw9D,uBAAuB3gD,EAAIhjB,IACnDwxD,EAAUxxD,GAAKgkE,GAGjB+U,EAAcp0E,KAAK6sD,EAAUxxD,IAC7BmG,KAAKwyE,wBAAwBnnB,EAAUxxD,KAChB,OAAdgjB,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,GAC7E45C,IACH1S,EAAUxxD,GAAKmG,KAAK09D,mBAAmB7gD,EAAIhjB,KAEtB,OAAdgjB,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IAA6B,OAAdtH,EAAIhjB,GAAGsqB,IACnG45C,GAMHD,EAAWzS,EAAUxxD,IACZ4sB,QAAS,IANlBq3C,EAAWnrB,eAAeG,YAAYj2B,EAAIhjB,GAAGsqB,KACpCyQ,KAAK50B,KAAM6c,EAAIhjB,IACxBwxD,EAAUxxD,GAAKikE,EACf99D,KAAK01D,eAAel3D,KAAKs/D,IAM3BG,EAAaz/D,KAAKs/D,IACK,OAAdjhD,EAAIhjB,GAAGsqB,KACX45C,GAOHD,EAAWzS,EAAUxxD,IACZ4sB,QAAS,GAPlBq3C,EAAWnrB,eAAeG,YAAYj2B,EAAIhjB,GAAGsqB,IAC7CknC,EAAUxxD,GAAKikE,EACfA,EAASlpC,KAAK50B,KAAM6c,EAAKhjB,EAAGwxD,GAC5BrrD,KAAK01D,eAAel3D,KAAKs/D,GACzB6U,GAAe,GAMjB1U,EAAaz/D,KAAKs/D,IAGpB99D,KAAKg2D,oBAAoBn5C,EAAIhjB,GAAIA,EAAI,EACvC,CAMA,IAJAmG,KAAKyyE,+BACLzyE,KAAK0yE,YAAY1U,GACjBtjD,EAAMujD,EAAankE,OAEdD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBokE,EAAapkE,GAAG4sB,QAAS,CAE7B,EAEAkmD,eAAeryE,UAAU+6D,mBAAqB,WAC5Cr1D,KAAKkyE,gBAAgBthB,QAAU,EAC/B5wD,KAAKkyE,gBAAgBhiB,QAAS,EAC9BlwD,KAAK61D,kBACL71D,KAAKusE,kBAAkB3B,iBAAiB5qE,KAAKqlC,eAC7CrlC,KAAKk+D,YAAYl+D,KAAKkyE,gBAAiBlyE,KAAKorD,WAAYprD,KAAKqrD,WAAW,EAC1E,EAEAshB,eAAeryE,UAAUw4E,qBAAuB,SAAUC,EAAiBC,IACrED,EAAgB7iB,QAAU8iB,EAAeltD,GAAGkf,MAAQhlC,KAAKqlC,iBAC3D2tC,EAAepiB,QAAUmiB,EAAgBniB,QACzCoiB,EAAepiB,SAAWoiB,EAAeltD,GAAGpF,EAC5CsyD,EAAe9iB,QAAS,EAE5B,EAEAyc,eAAeryE,UAAU24E,UAAY,WACnC,IAAIp5E,EAEAmL,EACA2e,EACAhf,EACAif,EACA07B,EACA4zB,EAGAn0E,EACAo0E,EAVAz4D,EAAM1a,KAAK+6D,WAAWjhE,OAOtBq1B,EAAWnvB,KAAKywB,WAAWtB,SAC3BzwB,EAAMsB,KAAKywB,WAAWq7C,cAI1B,IAAKjyE,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAQxB,IAAgB,QANhBkF,GADAo0E,EAAenzE,KAAK+6D,WAAWlhE,IACXkF,OAMa,OAATA,GAAsC,IAApBo0E,EAAab,KAAaa,EAAatwD,KAAKgwD,eAAuC,IAAtBM,EAAaC,MAAqD,IAAvCpzE,KAAKywB,WAAWw+C,mBAA2B,CA2B3K,IA1BA9/C,EAASg9C,OACT7sB,EAAQ6zB,EAAa50B,SAER,OAATx/C,GAA0B,OAATA,GACnBowB,EAASmgD,eAAwB,OAATvwE,EAAgBo0E,EAAad,GAAKc,EAAaE,KAEvElkD,EAASogD,aAAa4D,EAAab,IAEnCnjD,EAASqgD,WAAW2D,EAAapa,IAEjC5pC,EAASsgD,YAAY0D,EAAa/xB,IAElCjyB,EAASugD,cAAcyD,EAAahyB,IAAM,IAE1ChyB,EAASkgD,aAAsB,OAATtwE,EAAgBo0E,EAAad,GAAKc,EAAaE,KAGvElkD,EAASigD,WAAW+D,EAAaC,MAEpB,OAATr0E,GAA0B,OAATA,GACnBL,EAAIqtE,YAGN58C,EAASggD,aAAagE,EAAaf,cAAcrqB,eAAenuD,OAChE+pB,EAAO27B,EAAMxlD,OAERkL,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAAG,CAa5B,IAZa,OAATjG,GAA0B,OAATA,IACnBL,EAAIqtE,YAEAoH,EAAaZ,KACf7zE,EAAI40E,YAAYH,EAAaZ,IAC7B7zE,EAAI60E,eAAiBJ,EAAiB,KAK1CvvD,GADAsvD,EAAQ5zB,EAAMt6C,GAAG0nE,SACJ5yE,OAER6K,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACN,MAAfuuE,EAAMvuE,GAAGuI,EACXxO,EAAIstE,OAAOkH,EAAMvuE,GAAGkL,EAAE,GAAIqjE,EAAMvuE,GAAGkL,EAAE,IACb,MAAfqjE,EAAMvuE,GAAGuI,EAClBxO,EAAIwtE,cAAcgH,EAAMvuE,GAAG4rC,IAAI,GAAI2iC,EAAMvuE,GAAG4rC,IAAI,GAAI2iC,EAAMvuE,GAAG4rC,IAAI,GAAI2iC,EAAMvuE,GAAG4rC,IAAI,GAAI2iC,EAAMvuE,GAAG4rC,IAAI,GAAI2iC,EAAMvuE,GAAG4rC,IAAI,IAEpH7xC,EAAI80E,YAIK,OAATz0E,GAA0B,OAATA,IAEnBowB,EAAS0gD,YAELsD,EAAaZ,IACf7zE,EAAI40E,YAAYtzE,KAAKmyE,cAG3B,CAEa,OAATpzE,GAA0B,OAATA,GAEnBiB,KAAKywB,WAAWtB,SAASwgD,QAAQwD,EAAazjE,GAGhDyf,EAAS8iD,SACX,CAEJ,EAEAtF,eAAeryE,UAAU4jE,YAAc,SAAU6U,EAAiBj0B,EAAOj8B,EAAM4wD,GAC7E,IAAI55E,EAEAm5E,EAGJ,IAFAA,EAAiBD,EAEZl5E,EAJKilD,EAAMhlD,OAAS,EAIXD,GAAK,EAAGA,GAAK,EACL,OAAhBilD,EAAMjlD,GAAGsqB,IACX6uD,EAAiBnwD,EAAKhpB,GAAGyzC,UACzBttC,KAAK8yE,qBAAqBC,EAAiBC,IAClB,OAAhBl0B,EAAMjlD,GAAGsqB,IAA+B,OAAhB26B,EAAMjlD,GAAGsqB,IAA+B,OAAhB26B,EAAMjlD,GAAGsqB,IAA+B,OAAhB26B,EAAMjlD,GAAGsqB,GAC1FnkB,KAAK65D,WAAW/a,EAAMjlD,GAAIgpB,EAAKhpB,IACN,OAAhBilD,EAAMjlD,GAAGsqB,GAClBnkB,KAAKk6D,WAAWpb,EAAMjlD,GAAIgpB,EAAKhpB,GAAIm5E,GACV,OAAhBl0B,EAAMjlD,GAAGsqB,GAClBnkB,KAAKs6D,aAAaxb,EAAMjlD,GAAIgpB,EAAKhpB,GAAIm5E,GACZ,OAAhBl0B,EAAMjlD,GAAGsqB,IAA+B,OAAhB26B,EAAMjlD,GAAGsqB,GAC1CnkB,KAAK0zE,mBAAmB50B,EAAMjlD,GAAIgpB,EAAKhpB,GAAIm5E,GAClB,OAAhBl0B,EAAMjlD,GAAGsqB,GAClBnkB,KAAKk+D,YAAY8U,EAAgBl0B,EAAMjlD,GAAGoC,GAAI4mB,EAAKhpB,GAAGoC,IAC7C6iD,EAAMjlD,GAAGsqB,GAIlBsvD,GACFzzE,KAAKizE,WAET,EAEAtG,eAAeryE,UAAUq5E,kBAAoB,SAAUlH,EAAaxkC,GAClE,GAAIjoC,KAAKqlC,eAAiB4C,EAAMjD,MAAQynC,EAAYvb,WAAWlsB,KAAM,CACnE,IAEInrC,EACA6gB,EACA1V,EAJA4uE,EAAanH,EAAYC,QACzBxjC,EAAQjB,EAAMiB,MAIdvlB,EAAOulB,EAAM1O,QACjBo5C,EAAW95E,OAAS,EACpB,IAAI+5E,EAAoBpH,EAAYvb,WAAWnJ,eAE/C,IAAK/iD,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAAG,CAC5B,IAAIwsD,EAAYtoB,EAAM3kB,OAAOvf,GAE7B,GAAIwsD,GAAaA,EAAU9wC,EAAG,CAG5B,IAFAhG,EAAM82C,EAAUh3B,QAEX3gC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACd,IAANA,GACF+5E,EAAWp1E,KAAK,CACd0O,EAAG,IACH2C,EAAGgkE,EAAkBxjC,kBAAkBmhB,EAAU9wC,EAAE,GAAG,GAAI8wC,EAAU9wC,EAAE,GAAG,GAAI,KAIjFkzD,EAAWp1E,KAAK,CACd0O,EAAG,IACHqjC,IAAKsjC,EAAkBpjC,oBAAoB+gB,EAAUhiD,EAAE3V,EAAI,GAAI23D,EAAU33D,EAAEA,GAAI23D,EAAU9wC,EAAE7mB,MAInF,IAAR6gB,GACFk5D,EAAWp1E,KAAK,CACd0O,EAAG,IACH2C,EAAGgkE,EAAkBxjC,kBAAkBmhB,EAAU9wC,EAAE,GAAG,GAAI8wC,EAAU9wC,EAAE,GAAG,GAAI,KAI7E8wC,EAAU/zD,GAAKid,IACjBk5D,EAAWp1E,KAAK,CACd0O,EAAG,IACHqjC,IAAKsjC,EAAkBpjC,oBAAoB+gB,EAAUhiD,EAAE3V,EAAI,GAAI23D,EAAU33D,EAAE,GAAI23D,EAAU9wC,EAAE,MAE7FkzD,EAAWp1E,KAAK,CACd0O,EAAG,MAGT,CACF,CAEAu/D,EAAYC,QAAUkH,CACxB,CACF,EAEAjH,eAAeryE,UAAUu/D,WAAa,SAAUzzC,EAAUuzC,GACxD,IAAoB,IAAhBvzC,EAAS4tC,IAAe5tC,EAASysD,cAAe,CAClD,IAAIh5E,EACA6gB,EAAMi/C,EAAS6S,aAAa1yE,OAEhC,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAK2zE,kBAAkBha,EAAS6S,aAAa3yE,GAAI8/D,EAASv3B,GAE9D,CACF,EAEAuqC,eAAeryE,UAAU4/D,WAAa,SAAUR,EAAWC,EAAUqZ,GACnE,IAAI7Y,EAAYR,EAASl0D,OAErBk0D,EAASl8D,EAAEunC,MAAQhlC,KAAKqlC,iBAC1B80B,EAAUkY,GAAK,OAASx0D,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,MAGnHi5C,EAASnqD,EAAEw1B,MAAQguC,EAAe9iB,QAAUlwD,KAAKqlC,iBACnD80B,EAAUiZ,KAAOzZ,EAASnqD,EAAEkR,EAAIsyD,EAAepiB,QAEnD,EAEA+b,eAAeryE,UAAUo5E,mBAAqB,SAAUha,EAAWC,EAAUqZ,GAC3E,IACIK,EADAlZ,EAAYR,EAASl0D,MAGzB,IAAK00D,EAAUkZ,KAAO1Z,EAASh5C,EAAEqkB,MAAQ20B,EAASrxD,EAAE08B,MAAQ20B,EAASr5D,EAAE0kC,MAAwB,IAAhB00B,EAAUxsD,IAAYysD,EAAShqD,EAAEq1B,MAAQ20B,EAASp8D,EAAEynC,MAAO,CACxI,IAuBInrC,EAvBA6E,EAAMsB,KAAKywB,WAAWq7C,cACtBhwC,EAAM69B,EAASrxD,EAAEoY,EACjBqb,EAAM49B,EAASr5D,EAAEogB,EAErB,GAAoB,IAAhBg5C,EAAUxsD,EACZmmE,EAAM30E,EAAIo1E,qBAAqBh4C,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,QACtD,CACL,IAAI4O,EAAMnqC,KAAKod,KAAKpd,KAAKyP,IAAI6rB,EAAI,GAAKC,EAAI,GAAI,GAAKv7B,KAAKyP,IAAI6rB,EAAI,GAAKC,EAAI,GAAI,IACzE6+B,EAAMp6D,KAAKqjC,MAAM9H,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IAC/CuD,EAAUs6B,EAAShqD,EAAE+Q,EAErB2e,GAAW,EACbA,EAAU,IACDA,IAAY,IACrBA,GAAW,KAGb,IAAI2b,EAAOrQ,EAAMtL,EACbxG,EAAIr4B,KAAK0jC,IAAI02B,EAAMjB,EAASp8D,EAAEmjB,GAAKs6B,EAAOlf,EAAI,GAC9C0F,EAAIhhC,KAAK8iC,IAAIs3B,EAAMjB,EAASp8D,EAAEmjB,GAAKs6B,EAAOlf,EAAI,GAClDu3C,EAAM30E,EAAIq1E,qBAAqBl7C,EAAG2I,EAAG,EAAG1F,EAAI,GAAIA,EAAI,GAAI6O,EAC1D,CAGA,IAAIjwB,EAAMg/C,EAAU/4C,EAAE9Q,EAClB6qD,EAAUf,EAASh5C,EAAEljB,EACrBmzD,EAAU,EAEd,IAAK/2D,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpB8/D,EAASh5C,EAAEg3C,aAAegC,EAASh5C,EAAE82C,eACvC7G,EAAU+I,EAASh5C,EAAEnR,EAAM,EAAJ3V,EAAQ,IAGjCw5E,EAAIW,aAAatZ,EAAY,EAAJ7gE,GAAS,IAAK,QAAU6gE,EAAY,EAAJ7gE,EAAQ,GAAK,IAAM6gE,EAAY,EAAJ7gE,EAAQ,GAAK,IAAM6gE,EAAY,EAAJ7gE,EAAQ,GAAK,IAAM+2D,EAAU,KAG9IuJ,EAAUkZ,IAAMA,CAClB,CAEAlZ,EAAUiZ,KAAOzZ,EAASnqD,EAAEkR,EAAIsyD,EAAepiB,OACjD,EAEA+b,eAAeryE,UAAUggE,aAAe,SAAUZ,EAAWC,EAAUqZ,GACrE,IAAI7Y,EAAYR,EAASl0D,MACrBob,EAAI84C,EAAS94C,EAEbA,IAAMA,EAAEmkB,MAAQhlC,KAAKqlC,iBACvB80B,EAAUoY,GAAK1xD,EAAEk2C,UACjBoD,EAAc,GAAIt5C,EAAEm2C,WAAW,KAG7B2C,EAASl8D,EAAEunC,MAAQhlC,KAAKqlC,iBAC1B80B,EAAUkY,GAAK,OAASx0D,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,IAAM7C,QAAQ87C,EAASl8D,EAAEijB,EAAE,IAAM,MAGnHi5C,EAASnqD,EAAEw1B,MAAQguC,EAAe9iB,QAAUlwD,KAAKqlC,iBACnD80B,EAAUiZ,KAAOzZ,EAASnqD,EAAEkR,EAAIsyD,EAAepiB,UAG7C+I,EAASh2D,EAAEqhC,MAAQhlC,KAAKqlC,iBAC1B80B,EAAUmY,GAAK3Y,EAASh2D,EAAE+c,EAE9B,EAEAisD,eAAeryE,UAAU2Y,QAAU,WACjCjT,KAAKorD,WAAa,KAClBprD,KAAKywB,WAAa,KAClBzwB,KAAK8rE,cAAgB,KACrB9rE,KAAK+6D,WAAWjhE,OAAS,EACzBkG,KAAKqrD,UAAUvxD,OAAS,CAC1B,EAsBAwgB,gBAAgB,CAACivC,YAAagF,iBAAkBsd,cAAe/Y,iBAAkBtJ,aAActC,kBAAmBsc,cAAeoJ,eACjIA,cAActyE,UAAU+oD,QAAUhpC,UAAU,UAAUiP,WAAW,MAEjEsjD,cAActyE,UAAUisE,aAAe,WACrC,IAAIjhD,EAAetlB,KAAKgiE,aAAavG,YACrCz7D,KAAKsjE,gBAAkBrmD,iBAAiBqI,EAAa9c,EAAI8c,EAAa9c,EAAE1O,OAAS,GACjF,IAAIm6E,GAAU,EAEV3uD,EAAa61C,IACf8Y,GAAU,EACVj0E,KAAKkD,OAAO4pE,KAAO9sE,KAAKmmE,WAAW7gD,EAAa61C,KAEhDn7D,KAAKkD,OAAO4pE,KAAO,gBAGrB9sE,KAAK8sE,KAAOmH,EACZ,IAAIC,GAAY,EAEZ5uD,EAAa8gC,KACf8tB,GAAY,EACZl0E,KAAKkD,OAAO2pE,OAAS7sE,KAAKmmE,WAAW7gD,EAAa8gC,IAClDpmD,KAAKkD,OAAO8pE,OAAS1nD,EAAa41C,IAGpC,IACIrhE,EACA6gB,EAOAkL,EACA4X,EACA74B,EACAif,EACAW,EACAvf,EACA2e,EACA6tC,EACA2iB,EACAC,EAlBAp3B,EAAWh9C,KAAKywB,WAAWkB,YAAY60B,cAAclhC,EAAajnB,GAGlE6gE,EAAU55C,EAAa9c,EACvB27D,EAAenkE,KAAKoxD,QACxBpxD,KAAK6sE,OAASqH,EACdl0E,KAAKkD,OAAO+pE,OAAS3nD,EAAag3C,UAAY,MAAQt8D,KAAKywB,WAAWkB,YAAY60B,cAAclhC,EAAajnB,GAAGilD,QAChH5oC,EAAM4K,EAAai3C,UAAUziE,OAY7B,IAAI0uE,EAAcxoE,KAAK6iB,KAAK2lD,YACxB/I,EAAmC,KAAlBn6C,EAAag4B,GAAah4B,EAAag3C,UACxDqH,EAAO,EACPC,EAAO,EACPa,GAAY,EACZ58B,EAAM,EAEV,IAAKhuC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAE3B2jC,GADA5X,EAAW5lB,KAAKywB,WAAWkB,YAAY00B,YAAY/gC,EAAai3C,UAAU1iE,GAAImjD,EAASE,OAAQl9C,KAAKywB,WAAWkB,YAAY60B,cAAclhC,EAAajnB,GAAGilD,WACjI19B,EAAS/C,MAAQ,CAAC,EAC1CshD,EAAajzD,QAETs3D,GAAetJ,EAAQrlE,GAAGsT,IAC5Bw2D,GAAQlE,EACRmE,GAAQt+C,EAAa+2C,QACrBuH,GAAQa,EAAY,EAAI,EACxBA,GAAY,GAId9gD,GADAY,EAASiZ,EAAUjZ,OAASiZ,EAAUjZ,OAAO,GAAGtoB,GAAK,IACvCnC,OACdqqE,EAAap3B,MAAMznB,EAAag3C,UAAY,IAAKh3C,EAAag3C,UAAY,KAEtEkM,GACFxoE,KAAKimE,4BAA4B3gD,EAAc6+C,EAAcjF,EAAQrlE,GAAGgzB,KAAM82C,EAAMC,GAGtFuQ,EAAWl3D,iBAAiB0G,EAAO,GACnC,IAAI0wD,EAAkB,EAEtB,IAAKrvE,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EACzB,GAAqB,OAAjBuf,EAAOvf,GAAGmf,GAAa,CAKzB,IAJAP,EAAOW,EAAOvf,GAAG6f,GAAGlgB,EAAE9K,EAAEC,OACxB03D,EAAYjtC,EAAOvf,GAAG6f,GAAGlgB,EACzByvE,EAAU,GAELzvE,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACf,IAANA,GACFyvE,EAAQ51E,KAAK2lE,EAAar0B,SAAS0hB,EAAU9wC,EAAE,GAAG,GAAI8wC,EAAU9wC,EAAE,GAAG,GAAI,GAAIyjD,EAAap0B,SAASyhB,EAAU9wC,EAAE,GAAG,GAAI8wC,EAAU9wC,EAAE,GAAG,GAAI,IAG3I0zD,EAAQ51E,KAAK2lE,EAAar0B,SAAS0hB,EAAUhiD,EAAE7K,EAAI,GAAG,GAAI6sD,EAAUhiD,EAAE7K,EAAI,GAAG,GAAI,GAAIw/D,EAAap0B,SAASyhB,EAAUhiD,EAAE7K,EAAI,GAAG,GAAI6sD,EAAUhiD,EAAE7K,EAAI,GAAG,GAAI,GAAIw/D,EAAar0B,SAAS0hB,EAAU33D,EAAE8K,GAAG,GAAI6sD,EAAU33D,EAAE8K,GAAG,GAAI,GAAIw/D,EAAap0B,SAASyhB,EAAU33D,EAAE8K,GAAG,GAAI6sD,EAAU33D,EAAE8K,GAAG,GAAI,GAAIw/D,EAAar0B,SAAS0hB,EAAU9wC,EAAE/b,GAAG,GAAI6sD,EAAU9wC,EAAE/b,GAAG,GAAI,GAAIw/D,EAAap0B,SAASyhB,EAAU9wC,EAAE/b,GAAG,GAAI6sD,EAAU9wC,EAAE/b,GAAG,GAAI,IAG3ZyvE,EAAQ51E,KAAK2lE,EAAar0B,SAAS0hB,EAAUhiD,EAAE7K,EAAI,GAAG,GAAI6sD,EAAUhiD,EAAE7K,EAAI,GAAG,GAAI,GAAIw/D,EAAap0B,SAASyhB,EAAUhiD,EAAE7K,EAAI,GAAG,GAAI6sD,EAAUhiD,EAAE7K,EAAI,GAAG,GAAI,GAAIw/D,EAAar0B,SAAS0hB,EAAU33D,EAAE,GAAG,GAAI23D,EAAU33D,EAAE,GAAG,GAAI,GAAIsqE,EAAap0B,SAASyhB,EAAU33D,EAAE,GAAG,GAAI23D,EAAU33D,EAAE,GAAG,GAAI,GAAIsqE,EAAar0B,SAAS0hB,EAAU9wC,EAAE,GAAG,GAAI8wC,EAAU9wC,EAAE,GAAG,GAAI,GAAIyjD,EAAap0B,SAASyhB,EAAU9wC,EAAE,GAAG,GAAI8wC,EAAU9wC,EAAE,GAAG,GAAI,IACzZyzD,EAASE,GAAmBD,EAC5BC,GAAmB,CACrB,CAGE7L,IACF7E,GAAQzE,EAAQrlE,GAAG2O,EACnBm7D,GAAQlE,GAGNz/D,KAAK0mE,UAAU7+B,GACjB7nC,KAAK0mE,UAAU7+B,GAAKrR,KAAO29C,EAE3Bn0E,KAAK0mE,UAAU7+B,GAAO,CACpBrR,KAAM29C,GAIVtsC,GAAO,CACT,CACF,EAEA+kC,cAActyE,UAAU+6D,mBAAqB,WAE3C,IAYIx7D,EACA6gB,EACA1V,EACA2e,EACAhf,EACAif,EAlBJ5jB,KAAKsmE,eACKtmE,KAAK8rE,cACX5pB,KAAOliD,KAAKkD,OAAO+pE,OACvBjtE,KAAKywB,WAAWtB,SAASqgD,WAAW,QAEpCxvE,KAAKywB,WAAWtB,SAASsgD,YAAY,SAErCzvE,KAAKywB,WAAWtB,SAASugD,cAAc,GAElC1vE,KAAK6iB,KAAK2lD,aACbxoE,KAAK6lE,aAAanC,YAAY1jE,KAAKgiE,aAAavG,YAAaz7D,KAAKujE,oBASpE,IAGIsG,EAHAvG,EAAkBtjE,KAAK6lE,aAAavC,gBACpCpE,EAAUl/D,KAAKgiE,aAAavG,YAAYjzD,EAC5CkS,EAAMwkD,EAAQplE,OAEd,IAGIq6E,EACAC,EAJAE,EAAW,KACXC,EAAa,KACbC,EAAc,KAGdrlD,EAAWnvB,KAAKywB,WAAWtB,SAE/B,IAAKt1B,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,IAAKqlE,EAAQrlE,GAAGsT,EAAG,CASjB,IARA08D,EAAiBvG,EAAgBzpE,MAG/Bs1B,EAASg9C,OACTh9C,EAASggD,aAAatF,EAAeh6D,GACrCsf,EAASigD,WAAWvF,EAAer6D,IAGjCxP,KAAK8sE,KAAM,CAeb,IAdIjD,GAAkBA,EAAe1O,GAC/BmZ,IAAazK,EAAe1O,KAC9BhsC,EAASkgD,aAAaxF,EAAe1O,IACrCmZ,EAAWzK,EAAe1O,IAEnBmZ,IAAat0E,KAAKkD,OAAO4pE,OAClCwH,EAAWt0E,KAAKkD,OAAO4pE,KACvB39C,EAASkgD,aAAarvE,KAAKkD,OAAO4pE,OAIpCnpD,GADAwwD,EAAWn0E,KAAK0mE,UAAU7sE,GAAG28B,MACb18B,OAChBkG,KAAKywB,WAAWq7C,cAAcC,YAEzB/mE,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAKzB,IAHA4e,GADAwwD,EAAUD,EAASnvE,IACJlL,OACfkG,KAAKywB,WAAWq7C,cAAcE,OAAOoI,EAAQ,GAAIA,EAAQ,IAEpDzvE,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACzB3E,KAAKywB,WAAWq7C,cAAcI,cAAckI,EAAQzvE,GAAIyvE,EAAQzvE,EAAI,GAAIyvE,EAAQzvE,EAAI,GAAIyvE,EAAQzvE,EAAI,GAAIyvE,EAAQzvE,EAAI,GAAIyvE,EAAQzvE,EAAI,IAIxI3E,KAAKywB,WAAWq7C,cAAc0H,YAC9BrkD,EAASwgD,SAEX,CAEA,GAAI3vE,KAAK6sE,OAAQ,CAyBf,IAxBIhD,GAAkBA,EAAe3O,GAC/BsZ,IAAgB3K,EAAe3O,KACjCsZ,EAAc3K,EAAe3O,GAC7B/rC,EAASogD,aAAa1F,EAAe3O,KAE9BsZ,IAAgBx0E,KAAKkD,OAAO8pE,SACrCwH,EAAcx0E,KAAKkD,OAAO8pE,OAC1B79C,EAASogD,aAAavvE,KAAKkD,OAAO8pE,SAGhCnD,GAAkBA,EAAezjB,GAC/BmuB,IAAe1K,EAAezjB,KAChCmuB,EAAa1K,EAAezjB,GAC5Bj3B,EAASmgD,eAAezF,EAAezjB,KAEhCmuB,IAAev0E,KAAKkD,OAAO2pE,SACpC0H,EAAav0E,KAAKkD,OAAO2pE,OACzB19C,EAASmgD,eAAetvE,KAAKkD,OAAO2pE,SAItClpD,GADAwwD,EAAWn0E,KAAK0mE,UAAU7sE,GAAG28B,MACb18B,OAChBkG,KAAKywB,WAAWq7C,cAAcC,YAEzB/mE,EAAI,EAAGA,EAAI2e,EAAM3e,GAAK,EAKzB,IAHA4e,GADAwwD,EAAUD,EAASnvE,IACJlL,OACfkG,KAAKywB,WAAWq7C,cAAcE,OAAOoI,EAAQ,GAAIA,EAAQ,IAEpDzvE,EAAI,EAAGA,EAAIif,EAAMjf,GAAK,EACzB3E,KAAKywB,WAAWq7C,cAAcI,cAAckI,EAAQzvE,GAAIyvE,EAAQzvE,EAAI,GAAIyvE,EAAQzvE,EAAI,GAAIyvE,EAAQzvE,EAAI,GAAIyvE,EAAQzvE,EAAI,GAAIyvE,EAAQzvE,EAAI,IAIxI3E,KAAKywB,WAAWq7C,cAAc0H,YAC9BrkD,EAAS0gD,WAEX,CAEIhG,GACF7pE,KAAKywB,WAAWtB,SAAS8iD,SAE7B,CAEJ,EAQA33D,gBAAgB,CAACivC,YAAagF,iBAAkBsd,cAAe/Y,iBAAkBtJ,aAActC,mBAAoBgmB,gBACnHA,eAAe5yE,UAAU24D,YAAc6H,gBAAgBxgE,UAAU24D,YACjEia,eAAe5yE,UAAUyzB,aAAeilC,cAAc14D,UAAUyzB,aAEhEm/C,eAAe5yE,UAAU86D,cAAgB,WACvC,GAAIp1D,KAAKsqB,IAAIjB,QAAUrpB,KAAKiqB,UAAUtmB,IAAM3D,KAAKsqB,IAAIjB,OAASrpB,KAAKiqB,UAAUta,IAAM3P,KAAKsqB,IAAIvZ,QAAS,CACnG,IAAIqY,EAAS/O,UAAU,UACvB+O,EAAOC,MAAQrpB,KAAKiqB,UAAUtmB,EAC9BylB,EAAOrY,OAAS/Q,KAAKiqB,UAAUta,EAC/B,IAKI8kE,EACAC,EANAh2E,EAAM0qB,EAAOE,WAAW,MACxBqrD,EAAO30E,KAAKsqB,IAAIjB,MAChBurD,EAAO50E,KAAKsqB,IAAIvZ,OAChB8jE,EAASF,EAAOC,EAChBE,EAAY90E,KAAKiqB,UAAUtmB,EAAI3D,KAAKiqB,UAAUta,EAG9ColE,EAAM/0E,KAAKiqB,UAAUsrC,IAAMv1D,KAAKywB,WAAWw3B,aAAauN,yBAExDqf,EAASC,GAAqB,mBAARC,GAA4BF,EAASC,GAAqB,mBAARC,EAE1EN,GADAC,EAAaE,GACYE,EAGzBJ,GADAD,EAAYE,GACaG,EAG3Bp2E,EAAIkzE,UAAU5xE,KAAKsqB,KAAMqqD,EAAOF,GAAa,GAAIG,EAAOF,GAAc,EAAGD,EAAWC,EAAY,EAAG,EAAG10E,KAAKiqB,UAAUtmB,EAAG3D,KAAKiqB,UAAUta,GACvI3P,KAAKsqB,IAAMlB,CACb,CACF,EAEA8jD,eAAe5yE,UAAU+6D,mBAAqB,WAC5Cr1D,KAAK8rE,cAAc8F,UAAU5xE,KAAKsqB,IAAK,EAAG,EAC5C,EAEA4iD,eAAe5yE,UAAU2Y,QAAU,WACjCjT,KAAKsqB,IAAM,IACb,EAMAhQ,gBAAgB,CAACivC,YAAagF,iBAAkBsd,cAAe/Y,iBAAkBtJ,aAActC,mBAAoBimB,gBACnHA,eAAe7yE,UAAU24D,YAAc6H,gBAAgBxgE,UAAU24D,YACjEka,eAAe7yE,UAAUyzB,aAAeilC,cAAc14D,UAAUyzB,aAEhEo/C,eAAe7yE,UAAU+6D,mBAAqB,WAE5Cr1D,KAAKywB,WAAWtB,SAASkgD,aAAarvE,KAAK6iB,KAAKujC,IAEhDpmD,KAAKywB,WAAWtB,SAASygD,YAAY,EAAG,EAAG5vE,KAAK6iB,KAAKq4C,GAAIl7D,KAAK6iB,KAAKuf,GAErE,EAIA9nB,gBAAgB,CAAC+vC,cAAe+iB,oBAEhCA,mBAAmB9yE,UAAU4yD,YAAc,SAAUrqC,GACnD,OAAO,IAAI8pD,eAAe9pD,EAAM7iB,KAAKywB,WAAYzwB,KACnD,EAEAotE,mBAAmB9yE,UAAU6yD,WAAa,SAAUtqC,GAClD,OAAO,IAAI+pD,cAAc/pD,EAAM7iB,KAAKywB,WAAYzwB,KAClD,EAEAotE,mBAAmB9yE,UAAUwyD,YAAc,SAAUjqC,GACnD,OAAO,IAAIqqD,eAAerqD,EAAM7iB,KAAKywB,WAAYzwB,KACnD,EAEAotE,mBAAmB9yE,UAAU0yD,YAAc,SAAUnqC,GACnD,OAAO,IAAIsqD,eAAetqD,EAAM7iB,KAAKywB,WAAYzwB,KACnD,EAEAotE,mBAAmB9yE,UAAU2yD,WAAaga,YAAY3sE,UAAU2yD,WAEhEmgB,mBAAmB9yE,UAAU60E,aAAe,SAAUv1E,GACnC,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAA0B,IAAdA,EAAM,KAA2B,IAAdA,EAAM,KAIrGoG,KAAK8rE,cAAcx+B,UAAU1zC,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAAKA,EAAM,IACxF,EAEAwzE,mBAAmB9yE,UAAU80E,WAAa,SAAUtpD,GAClD9lB,KAAK8rE,cAAckJ,aAAelvD,EAAK,EAAI,EAAIA,CACjD,EAEAsnD,mBAAmB9yE,UAAU+0E,aAAe,SAAUh0E,GACpD2E,KAAK8rE,cAAcviD,UAAYluB,CACjC,EAEA+xE,mBAAmB9yE,UAAUg1E,eAAiB,SAAUj0E,GACtD2E,KAAK8rE,cAAcwB,YAAcjyE,CACnC,EAEA+xE,mBAAmB9yE,UAAUi1E,aAAe,SAAUl0E,GACpD2E,KAAK8rE,cAAcvM,UAAYlkE,CACjC,EAEA+xE,mBAAmB9yE,UAAUk1E,WAAa,SAAUn0E,GAClD2E,KAAK8rE,cAAcyB,QAAUlyE,CAC/B,EAEA+xE,mBAAmB9yE,UAAUm1E,YAAc,SAAUp0E,GACnD2E,KAAK8rE,cAAcnwB,SAAWtgD,CAChC,EAEA+xE,mBAAmB9yE,UAAUo1E,cAAgB,SAAUr0E,GACrD2E,KAAK8rE,cAAclwB,WAAavgD,CAClC,EAEA+xE,mBAAmB9yE,UAAUq1E,QAAU,SAAUsF,GAC/Cj1E,KAAK8rE,cAAcgB,KAAKmI,EAC1B,EAEA7H,mBAAmB9yE,UAAUs1E,YAAc,SAAU/2C,EAAG2I,EAAG79B,EAAGgM,GAC5D3P,KAAK8rE,cAActiD,SAASqP,EAAG2I,EAAG79B,EAAGgM,EACvC,EAEAy9D,mBAAmB9yE,UAAUu1E,UAAY,WACvC7vE,KAAK8rE,cAAce,QACrB,EAEAO,mBAAmB9yE,UAAU4W,MAAQ,WAC9BlR,KAAKioD,aAAa4mB,YAKvB7uE,KAAKkvE,YAAYh+D,QAJflR,KAAK8rE,cAAcmG,SAKvB,EAEA7E,mBAAmB9yE,UAAU6xE,KAAO,WAClCnsE,KAAK8rE,cAAcK,MACrB,EAEAiB,mBAAmB9yE,UAAU23E,QAAU,SAAUiD,GAC1Cl1E,KAAKioD,aAAa4mB,aAKnBqG,IACFl1E,KAAKywB,WAAW4gD,UAAY,eAG9BrxE,KAAKkvE,YAAY+C,QAAQiD,IARvBl1E,KAAK8rE,cAAcmG,SASvB,EAEA7E,mBAAmB9yE,UAAUw1B,gBAAkB,SAAUyC,GACvD,GAAIvyB,KAAKmuD,cAAc/9B,QAAS,CAC9BpwB,KAAKmuD,cAAc99B,UAAYhW,UAAU,UACzC,IAAI86D,EAAiBn1E,KAAKmuD,cAAc99B,UAAU5qB,MAClD0vE,EAAe9rD,MAAQ,OACvB8rD,EAAepkE,OAAS,OACxB,IAAI8X,EAAS,cACbssD,EAAep2D,gBAAkB8J,EACjCssD,EAAeC,mBAAqBvsD,EACpCssD,EAAen2D,sBAAwB6J,EACvCssD,EAAe,qBAAuBtsD,EACtCssD,EAAevN,kBAAoB5nE,KAAKioD,aAAa2f,kBACrD5nE,KAAKmuD,cAAc/9B,QAAQlE,YAAYlsB,KAAKmuD,cAAc99B,WAC1DrwB,KAAK8rE,cAAgB9rE,KAAKmuD,cAAc99B,UAAU/G,WAAW,MAEzDtpB,KAAKioD,aAAa8f,WACpB/nE,KAAKmuD,cAAc99B,UAAU8G,aAAa,QAASn3B,KAAKioD,aAAa8f,WAGnE/nE,KAAKioD,aAAa3kD,IACpBtD,KAAKmuD,cAAc99B,UAAU8G,aAAa,KAAMn3B,KAAKioD,aAAa3kD,GAEtE,MACEtD,KAAK8rE,cAAgB9rE,KAAKioD,aAAa6mB,QAGzC9uE,KAAKkvE,YAAYmG,WAAWr1E,KAAK8rE,eACjC9rE,KAAK6iB,KAAO0P,EACZvyB,KAAKwjB,OAAS+O,EAAS/O,OACvBxjB,KAAKoxE,gBAAkB,CACrBztE,EAAG4uB,EAAS5uB,EACZgM,EAAG4iB,EAAS5iB,EACZi9B,GAAI,EACJxC,GAAI,EACJgD,GAAI,EACJjpB,GAAI,GAENnkB,KAAKiuD,gBAAgB17B,EAAU30B,SAASw5B,MACxCp3B,KAAKywB,WAAWq7C,cAAgB9rE,KAAK8rE,cACrC9rE,KAAKywB,WAAWtB,SAAWnvB,KAC3BA,KAAKywB,WAAW6kD,UAAW,EAC3Bt1E,KAAKywB,WAAW+8B,gBAAkBxtD,KAAKioD,aAAauF,gBACpDxtD,KAAKywB,WAAW2gD,gBAAkBpxE,KAAKoxE,gBACvCpxE,KAAKu+C,SAAWthC,iBAAiBsV,EAAS/O,OAAO1pB,QACjDkG,KAAKmzB,qBACP,EAEAi6C,mBAAmB9yE,UAAU64B,oBAAsB,SAAU9J,EAAOtY,GAElE,IAAIwkE,EACAC,EAoBAC,EACAC,EAEJ,GAzBA11E,KAAKkR,QAIDmY,GACFksD,EAAelsD,EACfmsD,EAAgBzkE,EAChB/Q,KAAK8rE,cAAc1iD,OAAOC,MAAQksD,EAClCv1E,KAAK8rE,cAAc1iD,OAAOrY,OAASykE,IAE/Bx1E,KAAKmuD,cAAc/9B,SAAWpwB,KAAKmuD,cAAc99B,WACnDklD,EAAev1E,KAAKmuD,cAAc/9B,QAAQwyB,YAC1C4yB,EAAgBx1E,KAAKmuD,cAAc/9B,QAAQulD,eAE3CJ,EAAev1E,KAAK8rE,cAAc1iD,OAAOC,MACzCmsD,EAAgBx1E,KAAK8rE,cAAc1iD,OAAOrY,QAG5C/Q,KAAK8rE,cAAc1iD,OAAOC,MAAQksD,EAAev1E,KAAKioD,aAAa8mB,IACnE/uE,KAAK8rE,cAAc1iD,OAAOrY,OAASykE,EAAgBx1E,KAAKioD,aAAa8mB,MAMR,IAA3D/uE,KAAKioD,aAAa0f,oBAAoBtgD,QAAQ,UAA8E,IAA5DrnB,KAAKioD,aAAa0f,oBAAoBtgD,QAAQ,SAAiB,CACjI,IAAI0tD,EAAM/0E,KAAKioD,aAAa0f,oBAAoB5pE,MAAM,KAClD63E,EAAWb,EAAI,IAAM,OACrB1sE,EAAM0sE,EAAI,IAAM,WAChBpR,EAAOt7D,EAAI2oB,OAAO,EAAG,GACrB4yC,EAAOv7D,EAAI2oB,OAAO,GACtBykD,EAAaF,EAAeC,GAC5BE,EAAe11E,KAAKoxE,gBAAgBztE,EAAI3D,KAAKoxE,gBAAgBzhE,GAE1C8lE,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,GACnF51E,KAAKoxE,gBAAgBxkC,GAAK2oC,GAAgBv1E,KAAKoxE,gBAAgBztE,EAAI3D,KAAKioD,aAAa8mB,KACrF/uE,KAAKoxE,gBAAgBhnC,GAAKmrC,GAAgBv1E,KAAKoxE,gBAAgBztE,EAAI3D,KAAKioD,aAAa8mB,OAErF/uE,KAAKoxE,gBAAgBxkC,GAAK4oC,GAAiBx1E,KAAKoxE,gBAAgBzhE,EAAI3P,KAAKioD,aAAa8mB,KACtF/uE,KAAKoxE,gBAAgBhnC,GAAKorC,GAAiBx1E,KAAKoxE,gBAAgBzhE,EAAI3P,KAAKioD,aAAa8mB,MAItF/uE,KAAKoxE,gBAAgBhkC,GADV,SAATu2B,IAAoB+R,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IAC5EL,EAAev1E,KAAKoxE,gBAAgBztE,GAAK6xE,EAAgBx1E,KAAKoxE,gBAAgBzhE,IAAM,EAAI3P,KAAKioD,aAAa8mB,IACnH,SAATpL,IAAoB+R,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IACnFL,EAAev1E,KAAKoxE,gBAAgBztE,GAAK6xE,EAAgBx1E,KAAKoxE,gBAAgBzhE,IAAM3P,KAAKioD,aAAa8mB,IAEvG,EAI1B/uE,KAAKoxE,gBAAgBjtD,GADV,SAATy/C,IAAoB8R,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IAC5EJ,EAAgBx1E,KAAKoxE,gBAAgBzhE,GAAK4lE,EAAev1E,KAAKoxE,gBAAgBztE,IAAM,EAAI3D,KAAKioD,aAAa8mB,IACnH,SAATnL,IAAoB8R,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IACnFJ,EAAgBx1E,KAAKoxE,gBAAgBzhE,GAAK4lE,EAAev1E,KAAKoxE,gBAAgBztE,IAAM3D,KAAKioD,aAAa8mB,IAEvG,CAE9B,KAAqD,SAA1C/uE,KAAKioD,aAAa0f,qBAC3B3nE,KAAKoxE,gBAAgBxkC,GAAK2oC,GAAgBv1E,KAAKoxE,gBAAgBztE,EAAI3D,KAAKioD,aAAa8mB,KACrF/uE,KAAKoxE,gBAAgBhnC,GAAKorC,GAAiBx1E,KAAKoxE,gBAAgBzhE,EAAI3P,KAAKioD,aAAa8mB,KACtF/uE,KAAKoxE,gBAAgBhkC,GAAK,EAC1BptC,KAAKoxE,gBAAgBjtD,GAAK,IAE1BnkB,KAAKoxE,gBAAgBxkC,GAAK5sC,KAAKioD,aAAa8mB,IAC5C/uE,KAAKoxE,gBAAgBhnC,GAAKpqC,KAAKioD,aAAa8mB,IAC5C/uE,KAAKoxE,gBAAgBhkC,GAAK,EAC1BptC,KAAKoxE,gBAAgBjtD,GAAK,GAG5BnkB,KAAKoxE,gBAAgBx3E,MAAQ,CAACoG,KAAKoxE,gBAAgBxkC,GAAI,EAAG,EAAG,EAAG,EAAG5sC,KAAKoxE,gBAAgBhnC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGpqC,KAAKoxE,gBAAgBhkC,GAAIptC,KAAKoxE,gBAAgBjtD,GAAI,EAAG,GAQnKnkB,KAAKmvE,aAAanvE,KAAKoxE,gBAAgBx3E,OACvCoG,KAAK8rE,cAAcC,YACnB/rE,KAAK8rE,cAAcld,KAAK,EAAG,EAAG5uD,KAAKoxE,gBAAgBztE,EAAG3D,KAAKoxE,gBAAgBzhE,GAC3E3P,KAAK8rE,cAAc0H,YACnBxzE,KAAK8rE,cAAcM,OACnBpsE,KAAKqzB,YAAYrzB,KAAKykC,eAAe,EACvC,EAEA2oC,mBAAmB9yE,UAAU2Y,QAAU,WAKrC,IAAIpZ,EAGJ,IAPImG,KAAKioD,aAAa4mB,aAAe7uE,KAAKmuD,cAAc/9B,UACtDpwB,KAAKmuD,cAAc/9B,QAAQkH,UAAY,IAMpCz9B,GAFKmG,KAAKwjB,OAASxjB,KAAKwjB,OAAO1pB,OAAS,GAE9B,EAAGD,GAAK,EAAGA,GAAK,EACzBmG,KAAKu+C,SAAS1kD,IAAMmG,KAAKu+C,SAAS1kD,GAAGoZ,SACvCjT,KAAKu+C,SAAS1kD,GAAGoZ,UAIrBjT,KAAKu+C,SAASzkD,OAAS,EACvBkG,KAAKywB,WAAWq7C,cAAgB,KAChC9rE,KAAKmuD,cAAc99B,UAAY,KAC/BrwB,KAAKmoE,WAAY,CACnB,EAEAiF,mBAAmB9yE,UAAU+4B,YAAc,SAAUu0B,EAAKxR,GACxD,IAAIp2C,KAAKykC,gBAAkBmjB,IAAyC,IAAlC5nD,KAAKioD,aAAa4mB,aAAyBz4B,KAAep2C,KAAKmoE,YAAsB,IAATvgB,EAA9G,CAWA,IAAI/tD,EAPJmG,KAAKykC,cAAgBmjB,EACrB5nD,KAAKywB,WAAWyP,SAAW0nB,EAAM5nD,KAAKmuD,cAAc9oB,cACpDrlC,KAAKywB,WAAWyU,SAAW,EAC3BllC,KAAKywB,WAAWuU,MAAQhlC,KAAKioD,aAAa4mB,aAAez4B,EACzDp2C,KAAKywB,WAAWd,iBAAiB1B,aAAe25B,EAIhD,IAAIltC,EAAM1a,KAAKwjB,OAAO1pB,OAMtB,IAJKkG,KAAKujB,gBACRvjB,KAAKysD,YAAY7E,GAGd/tD,EAAI6gB,EAAM,EAAG7gB,GAAK,EAAGA,GAAK,GACzBmG,KAAKujB,gBAAkBvjB,KAAKu+C,SAAS1kD,KACvCmG,KAAKu+C,SAAS1kD,GAAGk0B,aAAa65B,EAAM5nD,KAAKwjB,OAAO3pB,GAAGksB,IAIvD,GAAI/lB,KAAKywB,WAAWuU,KAAM,CAOxB,KANsC,IAAlChlC,KAAKioD,aAAa4mB,YACpB7uE,KAAK8rE,cAAc2F,UAAU,EAAG,EAAGzxE,KAAKoxE,gBAAgBztE,EAAG3D,KAAKoxE,gBAAgBzhE,GAEhF3P,KAAKmsE,OAGFtyE,EAAI6gB,EAAM,EAAG7gB,GAAK,EAAGA,GAAK,GACzBmG,KAAKujB,gBAAkBvjB,KAAKu+C,SAAS1kD,KACvCmG,KAAKu+C,SAAS1kD,GAAGw5B,eAIiB,IAAlCrzB,KAAKioD,aAAa4mB,aACpB7uE,KAAKiyE,SAET,CAtCA,CAuCF,EAEA7E,mBAAmB9yE,UAAUoyD,UAAY,SAAUrkD,GACjD,IAAIk2C,EAAWv+C,KAAKu+C,SAEpB,IAAIA,EAASl2C,IAAgC,KAAxBrI,KAAKwjB,OAAOnb,GAAK8b,GAAtC,CAIA,IAAIvF,EAAU5e,KAAK4sD,WAAW5sD,KAAKwjB,OAAOnb,GAAMrI,KAAMA,KAAKywB,YAC3D8tB,EAASl2C,GAAOuW,EAChBA,EAAQkT,iBAJR,CAQF,EAEAs7C,mBAAmB9yE,UAAUqyD,qBAAuB,WAClD,KAAO3sD,KAAK+tD,gBAAgBj0D,QACZkG,KAAK+tD,gBAAgBtZ,MAC3B0gB,gBAEZ,EAEAiY,mBAAmB9yE,UAAUqE,KAAO,WAClCqB,KAAKmuD,cAAc99B,UAAU5qB,MAAMC,QAAU,MAC/C,EAEA0nE,mBAAmB9yE,UAAUm7B,KAAO,WAClCz1B,KAAKmuD,cAAc99B,UAAU5qB,MAAMC,QAAU,OAC/C,EAkDA8nE,cAAclzE,UAAUu7E,UAAY,WAClC,IAAIC,EAA2B,EAAf91E,KAAKw6B,QACjB3gC,EAAI,EAER,IAAKA,EAAImG,KAAKw6B,QAAS3gC,EAAIi8E,EAAWj8E,GAAK,EACzCmG,KAAKytE,MAAM5zE,GAAK,IAAIwzE,cAGtBrtE,KAAKw6B,QAAUs7C,CACjB,EAEAtI,cAAclzE,UAAU4W,MAAQ,WAC9BlR,KAAK0tE,QAAU,EACf1tE,KAAK2tE,IAAIz8D,QACTlR,KAAKytE,MAAMztE,KAAK0tE,SAAS9c,QAAU,CACrC,EAEA4c,cAAclzE,UAAU23E,QAAU,SAAU8D,GAC1C/1E,KAAK0tE,SAAW,EAChB,IAEI7zE,EAFAm8E,EAAiBh2E,KAAKytE,MAAMztE,KAAK0tE,SACjCpgC,EAAY0oC,EAAe1oC,UAE3BzwB,EAAM7c,KAAK2tE,IAAI/zE,MAEnB,IAAKC,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBgjB,EAAIhjB,GAAKyzC,EAAUzzC,GAGrB,GAAIk8E,EAAc,CAChB/1E,KAAK4tE,cAAcqE,UACnB,IAAIgE,EAAYj2E,KAAKytE,MAAMztE,KAAK0tE,QAAU,GAC1C1tE,KAAKguE,iBAAmBiI,EAAU1sD,UAClCvpB,KAAKkuE,mBAAqB+H,EAAU3I,YACpCttE,KAAKouE,iBAAmB6H,EAAU1W,UAClCv/D,KAAKsuE,eAAiB2H,EAAU1I,QAChCvtE,KAAKwuE,gBAAkByH,EAAUt6B,SACjC37C,KAAKyuE,kBAAoBwH,EAAUr6B,UACrC,CAEA57C,KAAK4tE,cAAc3gC,aAAaK,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,IAAKA,EAAU,MAE7GyoC,IAA4C,IAA5BC,EAAeplB,SAAkB5wD,KAAK8tE,iBAAmBkI,EAAeplB,WAC1F5wD,KAAK4tE,cAAcoH,YAAcgB,EAAeplB,QAChD5wD,KAAK8tE,eAAiBkI,EAAeplB,SAGvC5wD,KAAK+tE,iBAAmBiI,EAAezsD,UACvCvpB,KAAKiuE,mBAAqB+H,EAAe1I,YACzCttE,KAAKmuE,iBAAmB6H,EAAezW,UACvCv/D,KAAKquE,eAAiB2H,EAAezI,QACrCvtE,KAAKuuE,gBAAkByH,EAAer6B,SACtC37C,KAAK0uE,kBAAoBsH,EAAep6B,UAC1C,EAEA4xB,cAAclzE,UAAU6xE,KAAO,SAAU+J,GACnCA,GACFl2E,KAAK4tE,cAAczB,OAGrB,IAAIvyE,EAAQoG,KAAK2tE,IAAI/zE,MAEjBoG,KAAKw6B,SAAWx6B,KAAK0tE,SACvB1tE,KAAK61E,YAGP,IACIh8E,EADAs8E,EAAen2E,KAAKytE,MAAMztE,KAAK0tE,SAGnC,IAAK7zE,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBs8E,EAAa7oC,UAAUzzC,GAAKD,EAAMC,GAGpCmG,KAAK0tE,SAAW,EAChB,IAAI0I,EAAWp2E,KAAKytE,MAAMztE,KAAK0tE,SAC/B0I,EAASxlB,QAAUulB,EAAavlB,QAChCwlB,EAAS7sD,UAAY4sD,EAAa5sD,UAClC6sD,EAAS9I,YAAc6I,EAAa7I,YACpC8I,EAAS7W,UAAY4W,EAAa5W,UAClC6W,EAAS7I,QAAU4I,EAAa5I,QAChC6I,EAASz6B,SAAWw6B,EAAax6B,SACjCy6B,EAASx6B,WAAau6B,EAAav6B,UACrC,EAEA4xB,cAAclzE,UAAU+7E,WAAa,SAAUh7E,GAC7C2E,KAAKytE,MAAMztE,KAAK0tE,SAAS9c,QAAUv1D,CACrC,EAEAmyE,cAAclzE,UAAU+6E,WAAa,SAAUh6E,GAC7C2E,KAAK4tE,cAAgBvyE,CACvB,EAEAmyE,cAAclzE,UAAUivB,UAAY,SAAUluB,GACxC2E,KAAKytE,MAAMztE,KAAK0tE,SAASnkD,YAAcluB,IACzC2E,KAAK+tE,iBAAmB1yE,EACxB2E,KAAKytE,MAAMztE,KAAK0tE,SAASnkD,UAAYluB,EAEzC,EAEAmyE,cAAclzE,UAAUgzE,YAAc,SAAUjyE,GAC1C2E,KAAKytE,MAAMztE,KAAK0tE,SAASJ,cAAgBjyE,IAC3C2E,KAAKiuE,mBAAqB5yE,EAC1B2E,KAAKytE,MAAMztE,KAAK0tE,SAASJ,YAAcjyE,EAE3C,EAEAmyE,cAAclzE,UAAUilE,UAAY,SAAUlkE,GACxC2E,KAAKytE,MAAMztE,KAAK0tE,SAASnO,YAAclkE,IACzC2E,KAAKmuE,iBAAmB9yE,EACxB2E,KAAKytE,MAAMztE,KAAK0tE,SAASnO,UAAYlkE,EAEzC,EAEAmyE,cAAclzE,UAAUizE,QAAU,SAAUlyE,GACtC2E,KAAKytE,MAAMztE,KAAK0tE,SAASH,UAAYlyE,IACvC2E,KAAKquE,eAAiBhzE,EACtB2E,KAAKytE,MAAMztE,KAAK0tE,SAASH,QAAUlyE,EAEvC,EAEAmyE,cAAclzE,UAAUqhD,SAAW,SAAUtgD,GACvC2E,KAAKytE,MAAMztE,KAAK0tE,SAAS/xB,WAAatgD,IACxC2E,KAAKuuE,gBAAkBlzE,EACvB2E,KAAKytE,MAAMztE,KAAK0tE,SAAS/xB,SAAWtgD,EAExC,EAEAmyE,cAAclzE,UAAUshD,WAAa,SAAUvgD,GACzC2E,KAAKytE,MAAMztE,KAAK0tE,SAAS9xB,aAAevgD,IAC1C2E,KAAK0uE,kBAAoBrzE,EACzB2E,KAAKytE,MAAMztE,KAAK0tE,SAAS9xB,WAAavgD,EAE1C,EAEAmyE,cAAclzE,UAAUgzC,UAAY,SAAU1zC,GAC5CoG,KAAK6tE,aAAal+B,eAAe/1C,GAEjC,IAAIikE,EAAmB79D,KAAK2tE,IAE5B3tE,KAAK6tE,aAAax+B,SAASwuB,GAE3BA,EAAiBluB,eAAe3vC,KAAK6tE,aAAaj0E,OAClD,IAAI08E,EAAUzY,EAAiBjkE,MAE/BoG,KAAK4tE,cAAc3gC,aAAaqpC,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,IAAKA,EAAQ,IACvG,EAEA9I,cAAclzE,UAAUs2D,QAAU,SAAU9qC,GAC1C,IAAIgoD,EAAiB9tE,KAAKytE,MAAMztE,KAAK0tE,SAAS9c,QAC9Ckd,GAAkBhoD,EAAK,EAAI,EAAIA,EAE3B9lB,KAAKytE,MAAMztE,KAAK0tE,SAAS9c,UAAYkd,IACnC9tE,KAAK8tE,iBAAmBhoD,IAC1B9lB,KAAK4tE,cAAcoH,YAAclvD,EACjC9lB,KAAK8tE,eAAiBhoD,GAGxB9lB,KAAKytE,MAAMztE,KAAK0tE,SAAS9c,QAAUkd,EAEvC,EAEAN,cAAclzE,UAAUwyE,KAAO,SAAUmI,GACnCj1E,KAAKguE,mBAAqBhuE,KAAK+tE,mBACjC/tE,KAAKguE,iBAAmBhuE,KAAK+tE,iBAC7B/tE,KAAK4tE,cAAcrkD,UAAYvpB,KAAKguE,kBAGtChuE,KAAK4tE,cAAcd,KAAKmI,EAC1B,EAEAzH,cAAclzE,UAAUkvB,SAAW,SAAUqP,EAAG2I,EAAG79B,EAAGgM,GAChD3P,KAAKguE,mBAAqBhuE,KAAK+tE,mBACjC/tE,KAAKguE,iBAAmBhuE,KAAK+tE,iBAC7B/tE,KAAK4tE,cAAcrkD,UAAYvpB,KAAKguE,kBAGtChuE,KAAK4tE,cAAcpkD,SAASqP,EAAG2I,EAAG79B,EAAGgM,EACvC,EAEA69D,cAAclzE,UAAUuyE,OAAS,WAC3B7sE,KAAKkuE,qBAAuBluE,KAAKiuE,qBACnCjuE,KAAKkuE,mBAAqBluE,KAAKiuE,mBAC/BjuE,KAAK4tE,cAAcN,YAActtE,KAAKkuE,oBAGpCluE,KAAKouE,mBAAqBpuE,KAAKmuE,mBACjCnuE,KAAKouE,iBAAmBpuE,KAAKmuE,iBAC7BnuE,KAAK4tE,cAAcrO,UAAYv/D,KAAKouE,kBAGlCpuE,KAAKsuE,iBAAmBtuE,KAAKquE,iBAC/BruE,KAAKsuE,eAAiBtuE,KAAKquE,eAC3BruE,KAAK4tE,cAAcL,QAAUvtE,KAAKsuE,gBAGhCtuE,KAAKwuE,kBAAoBxuE,KAAKuuE,kBAChCvuE,KAAKwuE,gBAAkBxuE,KAAKuuE,gBAC5BvuE,KAAK4tE,cAAcjyB,SAAW37C,KAAKwuE,iBAGjCxuE,KAAKyuE,oBAAsBzuE,KAAK0uE,oBAClC1uE,KAAKyuE,kBAAoBzuE,KAAK0uE,kBAC9B1uE,KAAK4tE,cAAchyB,WAAa57C,KAAKyuE,mBAGvCzuE,KAAK4tE,cAAcf,QACrB,EAaAvyD,gBAAgB,CAAC8yD,mBAAoBtG,aAAc+E,eAAgB8C,eAEnEA,cAAcr0E,UAAU+6D,mBAAqB,WAC3C,IAQIx7D,EARA6E,EAAMsB,KAAK8rE,cAWf,IAVAptE,EAAIqtE,YACJrtE,EAAIstE,OAAO,EAAG,GACdttE,EAAIutE,OAAOjsE,KAAK6iB,KAAKlf,EAAG,GACxBjF,EAAIutE,OAAOjsE,KAAK6iB,KAAKlf,EAAG3D,KAAK6iB,KAAKlT,GAClCjR,EAAIutE,OAAO,EAAGjsE,KAAK6iB,KAAKlT,GACxBjR,EAAIutE,OAAO,EAAG,GACdvtE,EAAI0tE,OAICvyE,EAFKmG,KAAKwjB,OAAO1pB,OAEP,EAAGD,GAAK,EAAGA,GAAK,GACzBmG,KAAKujB,gBAAkBvjB,KAAKu+C,SAAS1kD,KACvCmG,KAAKu+C,SAAS1kD,GAAGw5B,aAGvB,EAEAs7C,cAAcr0E,UAAU2Y,QAAU,WAChC,IAAIpZ,EAGJ,IAAKA,EAFKmG,KAAKwjB,OAAO1pB,OAEP,EAAGD,GAAK,EAAGA,GAAK,EACzBmG,KAAKu+C,SAAS1kD,IAChBmG,KAAKu+C,SAAS1kD,GAAGoZ,UAIrBjT,KAAKwjB,OAAS,KACdxjB,KAAKu+C,SAAW,IAClB,EAEAowB,cAAcr0E,UAAUyyD,WAAa,SAAUlqC,GAC7C,OAAO,IAAI8rD,cAAc9rD,EAAM7iB,KAAKywB,WAAYzwB,KAClD,EAmDAsa,gBAAgB,CAAC8yD,oBAAqBwB,gBAEtCA,eAAet0E,UAAUyyD,WAAa,SAAUlqC,GAC9C,OAAO,IAAI8rD,cAAc9rD,EAAM7iB,KAAKywB,WAAYzwB,KAClD,EAIA8vE,aAAax1E,UAAY,CACvBi8E,eAAgB,WAA2B,EAC3CljB,oBAAqB,WACnBrzD,KAAK2rD,YAActxC,UAAUra,KAAK6iB,KAAK2zD,IAAM,OAEzCx2E,KAAK6iB,KAAKiB,SACZ9jB,KAAKmnE,WAAallD,SAAS,OAC3BjiB,KAAK4rD,aAAe3pC,SAAS,KAC7BjiB,KAAK8vD,cAAgB9vD,KAAK4rD,aAC1B5rD,KAAKmnE,WAAWj7C,YAAYlsB,KAAK4rD,cACjC5rD,KAAK2rD,YAAYz/B,YAAYlsB,KAAKmnE,aAElCnnE,KAAK4rD,aAAe5rD,KAAK2rD,YAG3BhtC,SAAS3e,KAAK2rD,YAChB,EACA2H,wBAAyB,WACvBtzD,KAAK8wD,yBAA2B,IAAI2a,UAAUzrE,MAC9CA,KAAKwzD,mBAAqBxzD,KAAK2rD,YAC/B3rD,KAAK8vD,cAAgB9vD,KAAK4rD,aAEtB5rD,KAAK6iB,KAAKkxC,IACZ/zD,KAAK4rD,aAAaz0B,aAAa,KAAMn3B,KAAK6iB,KAAKkxC,IAG7C/zD,KAAK6iB,KAAK6D,IACZ1mB,KAAK4rD,aAAaz0B,aAAa,QAASn3B,KAAK6iB,KAAK6D,IAG/B,IAAjB1mB,KAAK6iB,KAAK6oC,IACZ1rD,KAAKwrD,cAET,EACA4I,cAAe,WACb,IAAIqiB,EAA0Bz2E,KAAKwzD,mBAAqBxzD,KAAKwzD,mBAAmB/tD,MAAQ,CAAC,EAEzF,GAAIzF,KAAK+nD,eAAeiI,QAAS,CAC/B,IAAI0mB,EAAc12E,KAAK+nD,eAAe5R,IAAIpF,QAC1C0lC,EAAwBnpC,UAAYopC,EACpCD,EAAwBE,gBAAkBD,CAC5C,CAEI12E,KAAK+nD,eAAemI,SACtBumB,EAAwB7lB,QAAU5wD,KAAK+nD,eAAeC,MAAMx4C,EAAEkR,EAElE,EACA2S,YAAa,WAGPrzB,KAAK6iB,KAAKmxC,IAAMh0D,KAAKsnD,SAIzBtnD,KAAKswD,kBACLtwD,KAAKmoD,mBACLnoD,KAAKo0D,gBACLp0D,KAAKq1D,qBAEDr1D,KAAKqlC,gBACPrlC,KAAKqlC,eAAgB,GAEzB,EACApyB,QAAS,WACPjT,KAAK4rD,aAAe,KACpB5rD,KAAKwzD,mBAAqB,KAEtBxzD,KAAKuzD,eACPvzD,KAAKuzD,aAAe,MAGlBvzD,KAAK8qD,cACP9qD,KAAK8qD,YAAY73C,UACjBjT,KAAK8qD,YAAc,KAEvB,EACAwJ,2BAA4B,WAC1Bt0D,KAAK8qD,YAAc,IAAI0D,YAAYxuD,KAAK6iB,KAAM7iB,KAAMA,KAAKywB,WAC3D,EACAmmD,WAAY,WAAuB,EACnC3hB,SAAU,WAAqB,GAEjC6a,aAAax1E,UAAU6xD,eAAiB0G,eAAev4D,UAAU6xD,eACjE2jB,aAAax1E,UAAU+5D,mBAAqByb,aAAax1E,UAAU2Y,QACnE68D,aAAax1E,UAAUmzD,sBAAwBpD,aAAa/vD,UAAUmzD,sBAMtEnzC,gBAAgB,CAACivC,YAAagF,iBAAkBuhB,aAAchd,iBAAkBtJ,aAAcuJ,sBAAuBgd,eAErHA,cAAcz1E,UAAU86D,cAAgB,WACtC,IAAIxG,EAEA5uD,KAAK6iB,KAAKiB,UACZ8qC,EAAO3sC,SAAS,SACXkV,aAAa,QAASn3B,KAAK6iB,KAAKq4C,IACrCtM,EAAKz3B,aAAa,SAAUn3B,KAAK6iB,KAAKuf,IACtCwsB,EAAKz3B,aAAa,OAAQn3B,KAAK6iB,KAAKujC,IACpCpmD,KAAKmnE,WAAWhwC,aAAa,QAASn3B,KAAK6iB,KAAKq4C,IAChDl7D,KAAKmnE,WAAWhwC,aAAa,SAAUn3B,KAAK6iB,KAAKuf,OAEjDwsB,EAAOv0C,UAAU,QACZ5U,MAAM4jB,MAAQrpB,KAAK6iB,KAAKq4C,GAAK,KAClCtM,EAAKnpD,MAAMsL,OAAS/Q,KAAK6iB,KAAKuf,GAAK,KACnCwsB,EAAKnpD,MAAMoxE,gBAAkB72E,KAAK6iB,KAAKujC,IAGzCpmD,KAAK4rD,aAAa1/B,YAAY0iC,EAChC,EA8BAt0C,gBAAgB,CAACivC,YAAagF,iBAAkBwhB,cAAejV,gBAAiBgV,aAAchd,iBAAkBtJ,aAActC,mBAAoB8oB,eAClJA,cAAc11E,UAAUw8E,kBAAoB9G,cAAc11E,UAAU+6D,mBAEpE2a,cAAc11E,UAAU86D,cAAgB,WACtC,IAAIpW,EAGJ,GAFAh/C,KAAK2rD,YAAYlmD,MAAM88C,SAAW,EAE9BviD,KAAK6iB,KAAKiB,QACZ9jB,KAAK4rD,aAAa1/B,YAAYlsB,KAAKiwE,iBACnCjxB,EAAOh/C,KAAKmnE,eACP,CACLnoB,EAAO/8B,SAAS,OAChB,IAAI0/B,EAAO3hD,KAAKykB,KAAK5B,KAAO7iB,KAAKykB,KAAK5B,KAAO7iB,KAAKywB,WAAW29B,SAC7DpP,EAAK7nB,aAAa,QAASwqB,EAAKh+C,GAChCq7C,EAAK7nB,aAAa,SAAUwqB,EAAKhyC,GACjCqvC,EAAK9yB,YAAYlsB,KAAKiwE,iBACtBjwE,KAAK4rD,aAAa1/B,YAAY8yB,EAChC,CAEAh/C,KAAK+8D,aAAa/8D,KAAKorD,WAAYprD,KAAKqrD,UAAWrrD,KAAKg4D,aAAch4D,KAAKiwE,gBAAiB,EAAG,IAAI,GACnGjwE,KAAKg9D,qBACLh9D,KAAK+2E,UAAY/3B,CACnB,EAEAgxB,cAAc11E,UAAU08E,oBAAsB,SAAU5gB,EAAcpsD,GACpE,IAAInQ,EACA6gB,EAAM07C,EAAat8D,OAEvB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmQ,EAAQosD,EAAav8D,GAAGimD,OAAOp/B,EAAE2vB,kBAAkBrmC,EAAM,GAAIA,EAAM,GAAI,GAGzE,OAAOA,CACT,EAEAgmE,cAAc11E,UAAU28E,0BAA4B,SAAUC,EAAMj/B,GAClE,IAEIp+C,EAEAs9E,EACAC,EACAC,EACAC,EAPArvC,EAAQivC,EAAK90C,GAAG1hB,EAChB01C,EAAe8gB,EAAK9gB,aAEpB17C,EAAMutB,EAAMzN,QAMhB,KAAI9f,GAAO,GAAX,CAIA,IAAK7gB,EAAI,EAAGA,EAAI6gB,EAAM,EAAG7gB,GAAK,EAC5Bs9E,EAASn3E,KAAKg3E,oBAAoB5gB,EAAcnuB,EAAMvnB,EAAE7mB,IACxDu9E,EAASp3E,KAAKg3E,oBAAoB5gB,EAAcnuB,EAAMz4B,EAAE3V,IACxDw9E,EAAar3E,KAAKg3E,oBAAoB5gB,EAAcnuB,EAAMpuC,EAAEA,EAAI,IAChEy9E,EAAat3E,KAAKg3E,oBAAoB5gB,EAAcnuB,EAAMvnB,EAAE7mB,EAAI,IAChEmG,KAAKu3E,YAAYJ,EAAQC,EAAQC,EAAYC,EAAYr/B,GAGvDhQ,EAAMxqC,IACR05E,EAASn3E,KAAKg3E,oBAAoB5gB,EAAcnuB,EAAMvnB,EAAE7mB,IACxDu9E,EAASp3E,KAAKg3E,oBAAoB5gB,EAAcnuB,EAAMz4B,EAAE3V,IACxDw9E,EAAar3E,KAAKg3E,oBAAoB5gB,EAAcnuB,EAAMpuC,EAAE,IAC5Dy9E,EAAat3E,KAAKg3E,oBAAoB5gB,EAAcnuB,EAAMvnB,EAAE,IAC5D1gB,KAAKu3E,YAAYJ,EAAQC,EAAQC,EAAYC,EAAYr/B,GAf3D,CAiBF,EAEA+3B,cAAc11E,UAAUi9E,YAAc,SAAUJ,EAAQC,EAAQC,EAAYC,EAAYr/B,GACtFj4C,KAAKw3E,iBAAiBL,EAAQC,EAAQC,EAAYC,GAClD,IAAIv2B,EAAS/gD,KAAKy3E,iBAClBx/B,EAAYpf,EAAI9a,MAAMgjC,EAAOjiC,KAAMm5B,EAAYpf,GAC/Cof,EAAYy/B,KAAO55D,MAAMijC,EAAOrE,MAAOzE,EAAYy/B,MACnDz/B,EAAYzW,EAAIzjB,MAAMgjC,EAAOlwC,IAAKonC,EAAYzW,GAC9CyW,EAAY0/B,KAAO75D,MAAMijC,EAAOC,OAAQ/I,EAAY0/B,KACtD,EAEA3H,cAAc11E,UAAUm9E,iBAAmB,CACzC34D,KAAM,EACN49B,MAAO,EACP7rC,IAAK,EACLmwC,OAAQ,GAEVgvB,cAAc11E,UAAUs9E,gBAAkB,CACxC/+C,EAAG,EACH6+C,KAAM,EACNl2C,EAAG,EACHm2C,KAAM,EACNtuD,MAAO,EACPtY,OAAQ,GAGVi/D,cAAc11E,UAAUk9E,iBAAmB,SAAU3tC,EAAIC,EAAIuE,EAAIiJ,GAG/D,IAFA,IAES/5C,EAAGC,EAAGC,EAAGyP,EAAG2qE,EAAM55C,EAAI8Z,EAF3BgJ,EAAS,CAAC,CAAClX,EAAG,GAAIyN,EAAG,IAAK,CAACzN,EAAG,GAAIyN,EAAG,KAENz9C,EAAI,EAAGA,EAAI,IAAKA,EAEjD2D,EAAI,EAAIqsC,EAAGhwC,GAAK,GAAKiwC,EAAGjwC,GAAK,EAAIw0C,EAAGx0C,GACpC0D,GAAK,EAAIssC,EAAGhwC,GAAK,EAAIiwC,EAAGjwC,GAAK,EAAIw0C,EAAGx0C,GAAK,EAAIy9C,EAAGz9C,GAChD4D,EAAI,EAAIqsC,EAAGjwC,GAAK,EAAIgwC,EAAGhwC,GACvB2D,GAAK,EAILC,GAAK,EAEK,KAJVF,GAAK,IAIgB,IAANC,IACE,IAAND,GACT2P,GAAKzP,EAAID,GAED,GAAK0P,EAAI,GACf6zC,EAAOlnD,GAAG2E,KAAKwB,KAAK83E,WAAW5qE,EAAG28B,EAAIC,EAAIuE,EAAIiJ,EAAIz9C,KAGpDg+E,EAAOr6E,EAAIA,EAAI,EAAIC,EAAIF,IAEX,KACV0gC,IAAOzgC,EAAImgB,OAAOk6D,KAAU,EAAIt6E,IACvB,GAAK0gC,EAAK,GAAG8iB,EAAOlnD,GAAG2E,KAAKwB,KAAK83E,WAAW75C,EAAI4L,EAAIC,EAAIuE,EAAIiJ,EAAIz9C,KACzEk+C,IAAOv6C,EAAImgB,OAAOk6D,KAAU,EAAIt6E,IACvB,GAAKw6C,EAAK,GAAGgJ,EAAOlnD,GAAG2E,KAAKwB,KAAK83E,WAAW//B,EAAIlO,EAAIC,EAAIuE,EAAIiJ,EAAIz9C,MAK/EmG,KAAKy3E,iBAAiB34D,KAAOf,MAAMrgB,MAAM,KAAMqjD,EAAO,IACtD/gD,KAAKy3E,iBAAiB5mE,IAAMkN,MAAMrgB,MAAM,KAAMqjD,EAAO,IACrD/gD,KAAKy3E,iBAAiB/6B,MAAQ5+B,MAAMpgB,MAAM,KAAMqjD,EAAO,IACvD/gD,KAAKy3E,iBAAiBz2B,OAASljC,MAAMpgB,MAAM,KAAMqjD,EAAO,GAC1D,EAEAivB,cAAc11E,UAAUw9E,WAAa,SAAU5qE,EAAG28B,EAAIC,EAAIuE,EAAIiJ,EAAIz9C,GAChE,OAAO6jB,MAAM,EAAIxQ,EAAG,GAAK28B,EAAGhwC,GAAK,EAAI6jB,MAAM,EAAIxQ,EAAG,GAAKA,EAAI48B,EAAGjwC,GAAK,GAAK,EAAIqT,GAAKwQ,MAAMxQ,EAAG,GAAKmhC,EAAGx0C,GAAK6jB,MAAMxQ,EAAG,GAAKoqC,EAAGz9C,EAC1H,EAEAm2E,cAAc11E,UAAUy9E,qBAAuB,SAAU1sB,EAAWpT,GAClE,IAAIp+C,EACA6gB,EAAM2wC,EAAUvxD,OAEpB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBwxD,EAAUxxD,IAAMwxD,EAAUxxD,GAAGuoC,GAC/BpiC,KAAKi3E,0BAA0B5rB,EAAUxxD,GAAIo+C,GACpCoT,EAAUxxD,IAAMwxD,EAAUxxD,GAAGoC,GACtC+D,KAAK+3E,qBAAqB1sB,EAAUxxD,GAAGoC,GAAIg8C,GAClCoT,EAAUxxD,IAAMwxD,EAAUxxD,GAAG4L,OAAS4lD,EAAUxxD,GAAG8J,GAC5D3D,KAAKg4E,wBAAwB3sB,EAAUxxD,GAAG8J,EAAGs0C,EAGnD,EAEA+3B,cAAc11E,UAAU09E,wBAA0B,SAAUC,EAAehgC,GACzE,IAAI5uB,EAAQ,EAEZ,GAAI4uD,EAAcn3C,UAAW,CAC3B,IAAK,IAAIjnC,EAAI,EAAGA,EAAIo+E,EAAcn3C,UAAUhnC,OAAQD,GAAK,EAAG,CAC1D,IAAIq+E,EAAMD,EAAcn3C,UAAUjnC,GAAGyO,EAEjC4vE,EAAM7uD,IACRA,EAAQ6uD,EAEZ,CAEA7uD,GAAS4uD,EAAclzC,IACzB,MACE1b,EAAQ4uD,EAAcv3D,EAAIu3D,EAAclzC,KAG1CkT,EAAYpf,GAAKxP,EACjB4uB,EAAYy/B,MAAQruD,EACpB4uB,EAAYzW,GAAKnY,EACjB4uB,EAAY0/B,MAAQtuD,CACtB,EAEA2mD,cAAc11E,UAAU69E,mBAAqB,SAAUngC,GACrD,OAAOh4C,KAAKkwE,YAAYr3C,GAAKmf,EAAInf,GAAK74B,KAAKkwE,YAAY1uC,GAAKwW,EAAIxW,GAAKxhC,KAAKkwE,YAAY7mD,MAAQrpB,KAAKkwE,YAAYr3C,GAAKmf,EAAInf,EAAImf,EAAI3uB,OAASrpB,KAAKkwE,YAAYn/D,OAAS/Q,KAAKkwE,YAAY1uC,GAAKwW,EAAIxW,EAAIwW,EAAIjnC,MACvM,EAEAi/D,cAAc11E,UAAU+6D,mBAAqB,WAG3C,GAFAr1D,KAAK82E,qBAEA92E,KAAKsnD,SAAWtnD,KAAKqlC,eAAiBrlC,KAAKglC,MAAO,CACrD,IAAI4yC,EAAkB53E,KAAK43E,gBACvBjvE,EAAM,OASV,GARAivE,EAAgB/+C,EAAIlwB,EACpBivE,EAAgBF,MAAQ/uE,EACxBivE,EAAgBp2C,EAAI74B,EACpBivE,EAAgBD,MAAQhvE,EACxB3I,KAAK+3E,qBAAqB/3E,KAAKqrD,UAAWusB,GAC1CA,EAAgBvuD,MAAQuuD,EAAgBF,KAAOE,EAAgB/+C,EAAI,EAAI++C,EAAgBF,KAAOE,EAAgB/+C,EAC9G++C,EAAgB7mE,OAAS6mE,EAAgBD,KAAOC,EAAgBp2C,EAAI,EAAIo2C,EAAgBD,KAAOC,EAAgBp2C,EAE3GxhC,KAAKm4E,mBAAmBP,GAC1B,OAGF,IAAIQ,GAAU,EAcd,GAZIp4E,KAAKkwE,YAAYvsE,IAAMi0E,EAAgBvuD,QACzCrpB,KAAKkwE,YAAYvsE,EAAIi0E,EAAgBvuD,MACrCrpB,KAAK+2E,UAAU5/C,aAAa,QAASygD,EAAgBvuD,OACrD+uD,GAAU,GAGRp4E,KAAKkwE,YAAYvgE,IAAMioE,EAAgB7mE,SACzC/Q,KAAKkwE,YAAYvgE,EAAIioE,EAAgB7mE,OACrC/Q,KAAK+2E,UAAU5/C,aAAa,SAAUygD,EAAgB7mE,QACtDqnE,GAAU,GAGRA,GAAWp4E,KAAKkwE,YAAYr3C,IAAM++C,EAAgB/+C,GAAK74B,KAAKkwE,YAAY1uC,IAAMo2C,EAAgBp2C,EAAG,CACnGxhC,KAAKkwE,YAAYvsE,EAAIi0E,EAAgBvuD,MACrCrpB,KAAKkwE,YAAYvgE,EAAIioE,EAAgB7mE,OACrC/Q,KAAKkwE,YAAYr3C,EAAI++C,EAAgB/+C,EACrC74B,KAAKkwE,YAAY1uC,EAAIo2C,EAAgBp2C,EACrCxhC,KAAK+2E,UAAU5/C,aAAa,UAAWn3B,KAAKkwE,YAAYr3C,EAAI,IAAM74B,KAAKkwE,YAAY1uC,EAAI,IAAMxhC,KAAKkwE,YAAYvsE,EAAI,IAAM3D,KAAKkwE,YAAYvgE,GACzI,IAAI0oE,EAAar4E,KAAK+2E,UAAUtxE,MAC5B6yE,EAAiB,aAAet4E,KAAKkwE,YAAYr3C,EAAI,MAAQ74B,KAAKkwE,YAAY1uC,EAAI,MACtF62C,EAAW/qC,UAAYgrC,EACvBD,EAAW1B,gBAAkB2B,CAC/B,CACF,CACF,EAgBAh+D,gBAAgB,CAACivC,YAAagF,iBAAkBuhB,aAAchd,iBAAkBtJ,aAAcuJ,qBAAsByQ,cAAe2M,cAEnIA,aAAa71E,UAAU86D,cAAgB,WAGrC,GAFAp1D,KAAKqwE,SAAWrwE,KAAKuqD,aAEjBvqD,KAAKqwE,SAAU,CACjBrwE,KAAK6iE,WAAa,MAClB7iE,KAAKu4E,MAAQv4E,KAAKykB,KAAK5B,KAAKlf,EAC5B3D,KAAKw4E,MAAQx4E,KAAKykB,KAAK5B,KAAKlT,EAC5B3P,KAAKmnE,WAAWhwC,aAAa,QAASn3B,KAAKu4E,OAC3Cv4E,KAAKmnE,WAAWhwC,aAAa,SAAUn3B,KAAKw4E,OAC5C,IAAI73D,EAAIsB,SAAS,KACjBjiB,KAAK8vD,cAAc5jC,YAAYvL,GAC/B3gB,KAAKs1D,UAAY30C,CACnB,MACE3gB,KAAK6iE,WAAa,OAClB7iE,KAAKs1D,UAAYt1D,KAAK4rD,aAGxB5rD,KAAKm1D,gBACP,EAEAgb,aAAa71E,UAAUisE,aAAe,WACpC,IAAIjhD,EAAetlB,KAAKgiE,aAAavG,YACrCz7D,KAAKsjE,gBAAkBrmD,iBAAiBqI,EAAa9c,EAAI8c,EAAa9c,EAAE1O,OAAS,GACjF,IAAI2+E,EAAiBz4E,KAAKs1D,UAAU7vD,MAChCizE,EAAYpzD,EAAa61C,GAAKn7D,KAAKmmE,WAAW7gD,EAAa61C,IAAM,gBACrEsd,EAAe3L,KAAO4L,EACtBD,EAAe13D,MAAQ23D,EAEnBpzD,EAAa8gC,KACfqyB,EAAe5L,OAAS7sE,KAAKmmE,WAAW7gD,EAAa8gC,IACrDqyB,EAAeE,YAAcrzD,EAAa41C,GAAK,MAGjD,IAiBIrhE,EACA6gB,EAlBAsiC,EAAWh9C,KAAKywB,WAAWkB,YAAY60B,cAAclhC,EAAajnB,GAEtE,IAAK2B,KAAKywB,WAAWkB,YAAYhM,MAI/B,GAHA8yD,EAAel2B,SAAWj9B,EAAag3C,UAAY,KACnDmc,EAAeG,WAAatzD,EAAag3C,UAAY,KAEjDtf,EAASuG,OACXvjD,KAAKs1D,UAAUyS,UAAY/qB,EAASuG,WAC/B,CACLk1B,EAAep2B,WAAarF,EAASsG,QACrC,IAAInG,EAAU73B,EAAa63B,QACvBD,EAAS53B,EAAa43B,OAC1Bu7B,EAAeh2B,UAAYvF,EAC3Bu7B,EAAe/1B,WAAavF,CAC9B,CAKF,IAEI8rB,EACA4P,EACAC,EAJA5Z,EAAU55C,EAAa9c,EAC3BkS,EAAMwkD,EAAQplE,OAId,IACIyqB,EADA4/C,EAAenkE,KAAKoxD,QAEpB2U,EAAW,GACXl+B,EAAM,EAEV,IAAKhuC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAuC3B,GAtCImG,KAAKywB,WAAWkB,YAAYhM,OACzB3lB,KAAKowE,UAAUvoC,GAMlBohC,EAAQjpE,KAAKowE,UAAUvoC,KALvBohC,EAAQhnD,SAAS,SACXkV,aAAa,iBAAkB8+B,YAAY,IACjDgT,EAAM9xC,aAAa,kBAAmB++B,aAAa,IACnD+S,EAAM9xC,aAAa,oBAAqB,MAKrCn3B,KAAKqwE,WACJrwE,KAAK0mE,UAAU7+B,GAEjBixC,GADAD,EAAU74E,KAAK0mE,UAAU7+B,IACTkxC,SAAS,KAEzBF,EAAUx+D,UAAU,QACZ5U,MAAMmzE,WAAa,GAC3BE,EAAQ72D,SAAS,QACXiK,YAAY+8C,GAClBtqD,SAASk6D,MAGH74E,KAAKqwE,SAYfpH,EAAQjpE,KAAKowE,UAAUvoC,GAAO7nC,KAAKowE,UAAUvoC,GAAO5lB,SAAS,QAXzDjiB,KAAK0mE,UAAU7+B,IACjBgxC,EAAU74E,KAAK0mE,UAAU7+B,GACzBohC,EAAQjpE,KAAKowE,UAAUvoC,KAGvBlpB,SADAk6D,EAAUx+D,UAAU,SAGpBsE,SADAsqD,EAAQ5uD,UAAU,SAElBw+D,EAAQ3sD,YAAY+8C,IAOpBjpE,KAAKywB,WAAWkB,YAAYhM,MAAO,CACrC,IACI6X,EADA5X,EAAW5lB,KAAKywB,WAAWkB,YAAY00B,YAAY/gC,EAAai3C,UAAU1iE,GAAImjD,EAASE,OAAQl9C,KAAKywB,WAAWkB,YAAY60B,cAAclhC,EAAajnB,GAAGilD,SAkB7J,GAdE9lB,EADE5X,EACUA,EAAS/C,KAET,KAGdshD,EAAajzD,QAETssB,GAAaA,EAAUjZ,QAAUiZ,EAAUjZ,OAAOzqB,SACpDyqB,EAASiZ,EAAUjZ,OAAO,GAAGtoB,GAC7BkoE,EAAap3B,MAAMznB,EAAag3C,UAAY,IAAKh3C,EAAag3C,UAAY,KAC1EyJ,EAAW/lE,KAAK8lE,gBAAgB3B,EAAc5/C,GAC9C0kD,EAAM9xC,aAAa,IAAK4uC,IAGrB/lE,KAAKqwE,SAsBRrwE,KAAKs1D,UAAUppC,YAAY+8C,OAtBT,CAGlB,GAFAjpE,KAAKs1D,UAAUppC,YAAY2sD,GAEvBr7C,GAAaA,EAAUjZ,OAAQ,CAEjC3mB,SAASw5B,KAAKlL,YAAY4sD,GAC1B,IAAI7gC,EAAc6gC,EAAMruD,UACxBquD,EAAM3hD,aAAa,QAAS8gB,EAAY5uB,MAAQ,GAChDyvD,EAAM3hD,aAAa,SAAU8gB,EAAYlnC,OAAS,GAClD+nE,EAAM3hD,aAAa,UAAW8gB,EAAYpf,EAAI,EAAI,KAAOof,EAAYzW,EAAI,GAAK,KAAOyW,EAAY5uB,MAAQ,GAAK,KAAO4uB,EAAYlnC,OAAS,IAC1I,IAAIioE,EAAaF,EAAMrzE,MACnBwzE,EAAmB,cAAgBhhC,EAAYpf,EAAI,GAAK,OAASof,EAAYzW,EAAI,GAAK,MAC1Fw3C,EAAW1rC,UAAY2rC,EACvBD,EAAWrC,gBAAkBsC,EAC7B/Z,EAAQrlE,GAAGwiE,QAAUpkB,EAAYzW,EAAI,CACvC,MACEs3C,EAAM3hD,aAAa,QAAS,GAC5B2hD,EAAM3hD,aAAa,SAAU,GAG/B0hD,EAAQ3sD,YAAY4sD,EACtB,CAGF,MAIE,GAHA7P,EAAMv3D,YAAcwtD,EAAQrlE,GAAGmP,IAC/BigE,EAAMl9C,eAAe,uCAAwC,YAAa,YAErE/rB,KAAKqwE,SAQRrwE,KAAKs1D,UAAUppC,YAAY+8C,OART,CAClBjpE,KAAKs1D,UAAUppC,YAAY2sD,GAE3B,IAAIK,EAASjQ,EAAMxjE,MACf0zE,EAAmB,kBAAoB7zD,EAAag3C,UAAY,IAAM,QAC1E4c,EAAO5rC,UAAY6rC,EACnBD,EAAOvC,gBAAkBwC,CAC3B,CAMGn5E,KAAKqwE,SAGRrwE,KAAK0mE,UAAU7+B,GAAOohC,EAFtBjpE,KAAK0mE,UAAU7+B,GAAOgxC,EAKxB74E,KAAK0mE,UAAU7+B,GAAKpiC,MAAMC,QAAU,QACpC1F,KAAKowE,UAAUvoC,GAAOohC,EACtBphC,GAAO,CACT,CAEA,KAAOA,EAAM7nC,KAAK0mE,UAAU5sE,QAC1BkG,KAAK0mE,UAAU7+B,GAAKpiC,MAAMC,QAAU,OACpCmiC,GAAO,CAEX,EAEAsoC,aAAa71E,UAAU+6D,mBAAqB,WAE1C,IAAI+jB,EAEJ,GAHAp5E,KAAKsmE,eAGDtmE,KAAK6iB,KAAK2lD,YAAa,CACzB,IAAKxoE,KAAKqlC,gBAAkBrlC,KAAKujE,mBAC/B,OAGF,GAAIvjE,KAAKqwE,UAAYrwE,KAAK+nD,eAAeiI,QAAS,CAEhDhwD,KAAKmnE,WAAWhwC,aAAa,WAAYn3B,KAAK+nD,eAAeC,MAAMn4C,EAAE6Q,EAAE,GAAK,KAAO1gB,KAAK+nD,eAAeC,MAAMn4C,EAAE6Q,EAAE,GAAK,IAAM1gB,KAAKu4E,MAAQ,IAAMv4E,KAAKw4E,OACpJY,EAAWp5E,KAAKmnE,WAAW1hE,MAC3B,IAAI4zE,EAAc,cAAgBr5E,KAAK+nD,eAAeC,MAAMn4C,EAAE6Q,EAAE,GAAK,OAAS1gB,KAAK+nD,eAAeC,MAAMn4C,EAAE6Q,EAAE,GAAK,MACjH04D,EAAS9rC,UAAY+rC,EACrBD,EAASzC,gBAAkB0C,CAC7B,CACF,CAIA,GAFAr5E,KAAK6lE,aAAanC,YAAY1jE,KAAKgiE,aAAavG,YAAaz7D,KAAKujE,oBAE7DvjE,KAAKujE,oBAAuBvjE,KAAK6lE,aAAatC,mBAAnD,CAIA,IAAI1pE,EACA6gB,EAKAmvD,EACAC,EACAwP,EANA3qE,EAAQ,EACR20D,EAAkBtjE,KAAK6lE,aAAavC,gBACpCpE,EAAUl/D,KAAKgiE,aAAavG,YAAYjzD,EAM5C,IALAkS,EAAMwkD,EAAQplE,OAKTD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBqlE,EAAQrlE,GAAGsT,EACbwB,GAAS,GAETm7D,EAAW9pE,KAAK0mE,UAAU7sE,GAC1By/E,EAAWt5E,KAAKowE,UAAUv2E,GAC1BgwE,EAAiBvG,EAAgB30D,GACjCA,GAAS,EAELk7D,EAAe7kC,KAAKkI,IACjBltC,KAAKqwE,SAIRvG,EAAS3yC,aAAa,YAAa0yC,EAAe38B,IAHlD48B,EAASrkE,MAAMkxE,gBAAkB9M,EAAe38B,EAChD48B,EAASrkE,MAAM6nC,UAAYu8B,EAAe38B,IAO9C48B,EAASrkE,MAAMmrD,QAAUiZ,EAAer6D,EAEpCq6D,EAAe3O,IAAM2O,EAAe7kC,KAAKk2B,IAC3Coe,EAASniD,aAAa,eAAgB0yC,EAAe3O,IAGnD2O,EAAezjB,IAAMyjB,EAAe7kC,KAAKohB,IAC3CkzB,EAASniD,aAAa,SAAU0yC,EAAezjB,IAG7CyjB,EAAe1O,IAAM0O,EAAe7kC,KAAKm2B,KAC3Cme,EAASniD,aAAa,OAAQ0yC,EAAe1O,IAC7Cme,EAAS7zE,MAAMsb,MAAQ8oD,EAAe1O,KAK5C,GAAIn7D,KAAKs1D,UAAU7qC,UAAYzqB,KAAKsnD,SAAWtnD,KAAKqlC,eAAiBrlC,KAAKglC,MAAO,CAC/E,IAAIiT,EAAcj4C,KAAKs1D,UAAU7qC,UAcjC,GAZIzqB,KAAKkwE,YAAYvsE,IAAMs0C,EAAY5uB,QACrCrpB,KAAKkwE,YAAYvsE,EAAIs0C,EAAY5uB,MACjCrpB,KAAKmnE,WAAWhwC,aAAa,QAAS8gB,EAAY5uB,QAGhDrpB,KAAKkwE,YAAYvgE,IAAMsoC,EAAYlnC,SACrC/Q,KAAKkwE,YAAYvgE,EAAIsoC,EAAYlnC,OACjC/Q,KAAKmnE,WAAWhwC,aAAa,SAAU8gB,EAAYlnC,SAKjD/Q,KAAKkwE,YAAYvsE,IAAMs0C,EAAY5uB,MAAQkwD,GAAcv5E,KAAKkwE,YAAYvgE,IAAMsoC,EAAYlnC,OAASwoE,GAAcv5E,KAAKkwE,YAAYr3C,IAAMof,EAAYpf,EAF7I,GAE2J74B,KAAKkwE,YAAY1uC,IAAMyW,EAAYzW,EAF9L,EAE0M,CACrNxhC,KAAKkwE,YAAYvsE,EAAIs0C,EAAY5uB,MAAQkwD,EACzCv5E,KAAKkwE,YAAYvgE,EAAIsoC,EAAYlnC,OAASwoE,EAC1Cv5E,KAAKkwE,YAAYr3C,EAAIof,EAAYpf,EALtB,EAMX74B,KAAKkwE,YAAY1uC,EAAIyW,EAAYzW,EANtB,EAOXxhC,KAAKmnE,WAAWhwC,aAAa,UAAWn3B,KAAKkwE,YAAYr3C,EAAI,IAAM74B,KAAKkwE,YAAY1uC,EAAI,IAAMxhC,KAAKkwE,YAAYvsE,EAAI,IAAM3D,KAAKkwE,YAAYvgE,GAC1IypE,EAAWp5E,KAAKmnE,WAAW1hE,MAC3B,IAAI+zE,EAAe,aAAex5E,KAAKkwE,YAAYr3C,EAAI,MAAQ74B,KAAKkwE,YAAY1uC,EAAI,MACpF43C,EAAS9rC,UAAYksC,EACrBJ,EAASzC,gBAAkB6C,CAC7B,CACF,CA1EA,CA2EF,EA6CAl/D,gBAAgB,CAACivC,YAAaC,aAAcsJ,kBAAmBwd,gBAE/DA,eAAeh2E,UAAU4Z,MAAQ,WAC/B,IAAIra,EAEA4qB,EACAg1D,EACAtE,EAHAz6D,EAAM1a,KAAKykB,KAAKksD,eAAe72E,OAKnC,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAIxB,GAAkB,QAFlB4qB,EAAOzkB,KAAKykB,KAAKksD,eAAe92E,IAEvBkF,KAAe,CACtB06E,EAAmBh1D,EAAKi1D,gBAAgBj0E,MACxC0vE,EAAiB1wD,EAAK4L,UAAU5qB,MAChC,IAAIk0E,EAAc35E,KAAKuwE,GAAG7vD,EAAI,KAC1BmI,EAAS,cACTymB,EAAS,4CACbmqC,EAAiBE,YAAcA,EAC/BF,EAAiBG,kBAAoBD,EACrCxE,EAAep2D,gBAAkB8J,EACjCssD,EAAeC,mBAAqBvsD,EACpCssD,EAAen2D,sBAAwB6J,EACvC4wD,EAAiBnsC,UAAYgC,EAC7BmqC,EAAiB9C,gBAAkBrnC,CACrC,CAEJ,EAEAghC,eAAeh2E,UAAUy2E,eAAiB,WAAa,EAEvDT,eAAeh2E,UAAUqE,KAAO,WAAa,EAE7C2xE,eAAeh2E,UAAU+4B,YAAc,WACrC,IACIx5B,EACA6gB,EAFAsqB,EAAOhlC,KAAKqlC,cAIhB,GAAIrlC,KAAK2tD,UAGP,IAFAjzC,EAAM1a,KAAK2tD,UAAU7zD,OAEhBD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmrC,EAAOhlC,KAAK2tD,UAAU9zD,GAAGkuD,eAAeC,MAAMhjB,MAAQA,EAI1D,GAAIA,GAAQhlC,KAAKuwE,GAAGvrC,MAAQhlC,KAAK6P,GAAK7P,KAAK6P,EAAEm1B,MAAQhlC,KAAKkJ,KAAOlJ,KAAKkJ,GAAG87B,MAAQhlC,KAAK41C,GAAG5Q,MAAQhlC,KAAK61C,GAAG7Q,OAAShlC,KAAK81C,GAAG9Q,MAAQhlC,KAAK+1C,GAAG/Q,MAAQhlC,KAAKg2C,GAAGhR,MAAQhlC,KAAKyqC,GAAGzF,MAAQhlC,KAAKzC,GAAKyC,KAAKzC,EAAEynC,KAAM,CAGvM,GAFAhlC,KAAKm2C,IAAIjlC,QAELlR,KAAK2tD,UAGP,IAAK9zD,EAFL6gB,EAAM1a,KAAK2tD,UAAU7zD,OAAS,EAEhBD,GAAK,EAAGA,GAAK,EAAG,CAC5B,IAAIggF,EAAU75E,KAAK2tD,UAAU9zD,GAAGkuD,eAAeC,MAC/ChoD,KAAKm2C,IAAIhJ,WAAW0sC,EAAQhqE,EAAE6Q,EAAE,IAAKm5D,EAAQhqE,EAAE6Q,EAAE,GAAIm5D,EAAQhqE,EAAE6Q,EAAE,IACjE1gB,KAAKm2C,IAAI3J,SAASqtC,EAAQpvC,GAAG/pB,EAAE,IAAI+rB,SAASotC,EAAQpvC,GAAG/pB,EAAE,IAAIgsB,QAAQmtC,EAAQpvC,GAAG/pB,EAAE,IAClF1gB,KAAKm2C,IAAI3J,SAASqtC,EAAQ/jC,GAAGp1B,GAAG+rB,SAASotC,EAAQ9jC,GAAGr1B,GAAGgsB,QAAQmtC,EAAQ7jC,GAAGt1B,GAC1E1gB,KAAKm2C,IAAIpJ,MAAM,EAAI8sC,EAAQvxE,EAAEoY,EAAE,GAAI,EAAIm5D,EAAQvxE,EAAEoY,EAAE,GAAI,EAAIm5D,EAAQvxE,EAAEoY,EAAE,IACvE1gB,KAAKm2C,IAAIhJ,UAAU0sC,EAAQt8E,EAAEmjB,EAAE,GAAIm5D,EAAQt8E,EAAEmjB,EAAE,GAAIm5D,EAAQt8E,EAAEmjB,EAAE,GACjE,CASF,GANI1gB,KAAK6P,EACP7P,KAAKm2C,IAAIhJ,WAAWntC,KAAK6P,EAAE6Q,EAAE,IAAK1gB,KAAK6P,EAAE6Q,EAAE,GAAI1gB,KAAK6P,EAAE6Q,EAAE,IAExD1gB,KAAKm2C,IAAIhJ,WAAWntC,KAAKkJ,GAAGwX,GAAI1gB,KAAK41C,GAAGl1B,EAAG1gB,KAAK61C,GAAGn1B,GAGjD1gB,KAAKzC,EAAG,CACV,IAAIu8E,EAGFA,EADE95E,KAAK6P,EACM,CAAC7P,KAAK6P,EAAE6Q,EAAE,GAAK1gB,KAAKzC,EAAEmjB,EAAE,GAAI1gB,KAAK6P,EAAE6Q,EAAE,GAAK1gB,KAAKzC,EAAEmjB,EAAE,GAAI1gB,KAAK6P,EAAE6Q,EAAE,GAAK1gB,KAAKzC,EAAEmjB,EAAE,IAE9E,CAAC1gB,KAAKkJ,GAAGwX,EAAI1gB,KAAKzC,EAAEmjB,EAAE,GAAI1gB,KAAK41C,GAAGl1B,EAAI1gB,KAAKzC,EAAEmjB,EAAE,GAAI1gB,KAAK61C,GAAGn1B,EAAI1gB,KAAKzC,EAAEmjB,EAAE,IAGvF,IAAIq5D,EAAMv5E,KAAKod,KAAKpd,KAAKyP,IAAI6pE,EAAW,GAAI,GAAKt5E,KAAKyP,IAAI6pE,EAAW,GAAI,GAAKt5E,KAAKyP,IAAI6pE,EAAW,GAAI,IAElGE,EAAU,CAACF,EAAW,GAAKC,EAAKD,EAAW,GAAKC,EAAKD,EAAW,GAAKC,GACrEE,EAAiBz5E,KAAKod,KAAKo8D,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,IAC1EE,EAAa15E,KAAKqjC,MAAMm2C,EAAQ,GAAIC,GACpCE,EAAa35E,KAAKqjC,MAAMm2C,EAAQ,IAAKA,EAAQ,IACjDh6E,KAAKm2C,IAAI1J,QAAQ0tC,GAAY3tC,SAAS0tC,EACxC,CAEAl6E,KAAKm2C,IAAI3J,SAASxsC,KAAK81C,GAAGp1B,GAAG+rB,SAASzsC,KAAK+1C,GAAGr1B,GAAGgsB,QAAQ1sC,KAAKg2C,GAAGt1B,GACjE1gB,KAAKm2C,IAAI3J,SAASxsC,KAAKyqC,GAAG/pB,EAAE,IAAI+rB,SAASzsC,KAAKyqC,GAAG/pB,EAAE,IAAIgsB,QAAQ1sC,KAAKyqC,GAAG/pB,EAAE,IACzE1gB,KAAKm2C,IAAIhJ,UAAUntC,KAAKywB,WAAW29B,SAASzqD,EAAI,EAAG3D,KAAKywB,WAAW29B,SAASz+C,EAAI,EAAG,GACnF3P,KAAKm2C,IAAIhJ,UAAU,EAAG,EAAGntC,KAAKuwE,GAAG7vD,GACjC,IAAI05D,GAAoBp6E,KAAKwwE,SAASx9D,OAAOhT,KAAKm2C,KAElD,IAAKikC,GAAoBp6E,KAAKuwE,GAAGvrC,OAAShlC,KAAKykB,KAAKksD,eAAgB,CAElE,IAAIlsD,EACAg1D,EACAtE,EAEJ,IALAz6D,EAAM1a,KAAKykB,KAAKksD,eAAe72E,OAK1BD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAGxB,GAAkB,QAFlB4qB,EAAOzkB,KAAKykB,KAAKksD,eAAe92E,IAEvBkF,KAAe,CACtB,GAAIq7E,EAAkB,CACpB,IAAIC,EAAWr6E,KAAKm2C,IAAIpF,SACxBokC,EAAiB1wD,EAAK4L,UAAU5qB,OACjB6nC,UAAY+sC,EAC3BlF,EAAewB,gBAAkB0D,CACnC,CAEIr6E,KAAKuwE,GAAGvrC,QACVy0C,EAAmBh1D,EAAKi1D,gBAAgBj0E,OACvBk0E,YAAc35E,KAAKuwE,GAAG7vD,EAAI,KAC3C+4D,EAAiBG,kBAAoB55E,KAAKuwE,GAAG7vD,EAAI,KAErD,CAGF1gB,KAAKm2C,IAAInO,MAAMhoC,KAAKwwE,SACtB,CACF,CAEAxwE,KAAKqlC,eAAgB,CACvB,EAEAirC,eAAeh2E,UAAUyzB,aAAe,SAAU65B,GAChD5nD,KAAKgsD,kBAAkBpE,GAAK,EAC9B,EAEA0oB,eAAeh2E,UAAU2Y,QAAU,WAAa,EAEhDq9D,eAAeh2E,UAAU6xD,eAAiB,WACxC,OAAO,IACT,EAOA7xC,gBAAgB,CAACivC,YAAagF,iBAAkBuhB,aAAcC,cAAejd,iBAAkBtJ,aAActC,mBAAoBupB,eAEjIA,cAAcn2E,UAAU86D,cAAgB,WACtC,IAAIv5C,EAAY7b,KAAKywB,WAAWzG,cAAchqB,KAAKiqB,WAC/CK,EAAM,IAAIgwD,MAEVt6E,KAAK6iB,KAAKiB,SACZ9jB,KAAKu6E,UAAYt4D,SAAS,SAC1BjiB,KAAKu6E,UAAUpjD,aAAa,QAASn3B,KAAKiqB,UAAUtmB,EAAI,MACxD3D,KAAKu6E,UAAUpjD,aAAa,SAAUn3B,KAAKiqB,UAAUta,EAAI,MACzD3P,KAAKu6E,UAAUxuD,eAAe,+BAAgC,OAAQlQ,GACtE7b,KAAK4rD,aAAa1/B,YAAYlsB,KAAKu6E,WACnCv6E,KAAK2rD,YAAYx0B,aAAa,QAASn3B,KAAKiqB,UAAUtmB,GACtD3D,KAAK2rD,YAAYx0B,aAAa,SAAUn3B,KAAKiqB,UAAUta,IAEvD3P,KAAK4rD,aAAa1/B,YAAY5B,GAGhCA,EAAIsB,YAAc,YAClBtB,EAAI3kB,IAAMkW,EAEN7b,KAAK6iB,KAAKkxC,IACZ/zD,KAAK2rD,YAAYx0B,aAAa,KAAMn3B,KAAK6iB,KAAKkxC,GAElD,EA+BAz5C,gBAAgB,CAAC+vC,cAAeqmB,oBAChCA,mBAAmBp2E,UAAUoyD,UAAYua,YAAY3sE,UAAUoyD,UAE/DgkB,mBAAmBp2E,UAAUqyD,qBAAuB,WAClD,KAAO3sD,KAAK+tD,gBAAgBj0D,QACZkG,KAAK+tD,gBAAgBtZ,MAC3B0gB,gBAEZ,EAEAub,mBAAmBp2E,UAAU0vE,mBAAqB,SAAUprD,EAASvW,GACnE,IAAImyE,EAAgB57D,EAAQutC,iBAE5B,GAAKquB,EAAL,CAIA,IAAI3tB,EAAQ7sD,KAAKwjB,OAAOnb,GAExB,GAAKwkD,EAAM4tB,KAAQz6E,KAAKgnE,WA4BtBhnE,KAAK06E,iBAAiBF,EAAenyE,QA3BrC,GAAIrI,KAAK2wE,eACP3wE,KAAK06E,iBAAiBF,EAAenyE,OAChC,CAML,IALA,IACIsyE,EACAC,EAFA/gF,EAAI,EAKDA,EAAIwO,GACLrI,KAAKu+C,SAAS1kD,KAA2B,IAArBmG,KAAKu+C,SAAS1kD,IAAemG,KAAKu+C,SAAS1kD,GAAGsyD,iBACpEyuB,EAAY56E,KAAKu+C,SAAS1kD,GAE1B8gF,GADgB36E,KAAKwjB,OAAO3pB,GAAG4gF,IAAMz6E,KAAK66E,wBAAwBhhF,GAAK+gF,EAAUzuB,mBAC/CwuB,GAGpC9gF,GAAK,EAGH8gF,EACG9tB,EAAM4tB,KAAQz6E,KAAKgnE,YACtBhnE,KAAK4rD,aAAaye,aAAamQ,EAAeG,GAEtC9tB,EAAM4tB,KAAQz6E,KAAKgnE,YAC7BhnE,KAAK4rD,aAAa1/B,YAAYsuD,EAElC,CA9BF,CAkCF,EAEA9J,mBAAmBp2E,UAAU4yD,YAAc,SAAUrqC,GACnD,OAAK7iB,KAAKgnE,WAIH,IAAIgJ,cAAcntD,EAAM7iB,KAAKywB,WAAYzwB,MAHvC,IAAI86D,gBAAgBj4C,EAAM7iB,KAAKywB,WAAYzwB,KAItD,EAEA0wE,mBAAmBp2E,UAAU6yD,WAAa,SAAUtqC,GAClD,OAAK7iB,KAAKgnE,WAIH,IAAImJ,aAAattD,EAAM7iB,KAAKywB,WAAYzwB,MAHtC,IAAIymE,qBAAqB5jD,EAAM7iB,KAAKywB,WAAYzwB,KAI3D,EAEA0wE,mBAAmBp2E,UAAU8yD,aAAe,SAAUvqC,GAEpD,OADA7iB,KAAK4wE,OAAS,IAAIN,eAAeztD,EAAM7iB,KAAKywB,WAAYzwB,MACjDA,KAAK4wE,MACd,EAEAF,mBAAmBp2E,UAAUwyD,YAAc,SAAUjqC,GACnD,OAAK7iB,KAAKgnE,WAIH,IAAIyJ,cAAc5tD,EAAM7iB,KAAKywB,WAAYzwB,MAHvC,IAAIgzD,cAAcnwC,EAAM7iB,KAAKywB,WAAYzwB,KAIpD,EAEA0wE,mBAAmBp2E,UAAU0yD,YAAc,SAAUnqC,GACnD,OAAK7iB,KAAKgnE,WAIH,IAAI+I,cAAcltD,EAAM7iB,KAAKywB,WAAYzwB,MAHvC,IAAI2mE,cAAc9jD,EAAM7iB,KAAKywB,WAAYzwB,KAIpD,EAEA0wE,mBAAmBp2E,UAAU2yD,WAAaga,YAAY3sE,UAAU2yD,WAEhEyjB,mBAAmBp2E,UAAUugF,wBAA0B,SAAUxyE,GAI/D,IAHA,IAAIxO,EAAI,EACJ6gB,EAAM1a,KAAK2wE,eAAe72E,OAEvBD,EAAI6gB,GAAK,CACd,GAAI1a,KAAK2wE,eAAe92E,GAAGihF,UAAYzyE,GAAOrI,KAAK2wE,eAAe92E,GAAGkhF,QAAU1yE,EAC7E,OAAOrI,KAAK2wE,eAAe92E,GAAG6/E,gBAGhC7/E,GAAK,CACP,CAEA,OAAO,IACT,EAEA62E,mBAAmBp2E,UAAU0gF,sBAAwB,SAAU3yE,EAAKtJ,GAClE,IACI0G,EACA0vE,EAFAuE,EAAkBr/D,UAAU,OAGhCsE,SAAS+6D,GACT,IAAIrpD,EAAYhW,UAAU,OAG1B,GAFAsE,SAAS0R,GAEI,OAATtxB,EAAe,EACjB0G,EAAQi0E,EAAgBj0E,OAClB4jB,MAAQrpB,KAAKywB,WAAW29B,SAASzqD,EAAI,KAC3C8B,EAAMsL,OAAS/Q,KAAKywB,WAAW29B,SAASz+C,EAAI,KAC5C,IAAIqsC,EAAS,UACbv2C,EAAMuZ,sBAAwBg9B,EAC9Bv2C,EAAM2vE,mBAAqBp5B,EAC3Bv2C,EAAMsZ,gBAAkBi9B,EAExB,IAAI1M,EAAS,6CADb6lC,EAAiB9kD,EAAU5qB,OAEZ6nC,UAAYgC,EAC3B6lC,EAAewB,gBAAkBrnC,CACnC,CAEAoqC,EAAgBxtD,YAAYmE,GAE5B,IAAI4qD,EAAsB,CACxB5qD,UAAWA,EACXqpD,gBAAiBA,EACjBoB,SAAUzyE,EACV0yE,OAAQ1yE,EACRtJ,KAAMA,GAGR,OADAiB,KAAK2wE,eAAenyE,KAAKy8E,GAClBA,CACT,EAEAvK,mBAAmBp2E,UAAU4gF,kBAAoB,WAC/C,IAAIrhF,EAEAshF,EADAzgE,EAAM1a,KAAKwjB,OAAO1pB,OAElBshF,EAAmB,GAEvB,IAAKvhF,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBmG,KAAKwjB,OAAO3pB,GAAG4gF,KAA6B,IAAtBz6E,KAAKwjB,OAAO3pB,GAAGsqB,IACd,OAArBi3D,IACFA,EAAmB,KACnBD,EAA0Bn7E,KAAKg7E,sBAAsBnhF,EAAG,OAG1DshF,EAAwBJ,OAASv6E,KAAKmI,IAAIwyE,EAAwBJ,OAAQlhF,KAEjD,OAArBuhF,IACFA,EAAmB,KACnBD,EAA0Bn7E,KAAKg7E,sBAAsBnhF,EAAG,OAG1DshF,EAAwBJ,OAASv6E,KAAKmI,IAAIwyE,EAAwBJ,OAAQlhF,IAM9E,IAAKA,GAFL6gB,EAAM1a,KAAK2wE,eAAe72E,QAEX,EAAGD,GAAK,EAAGA,GAAK,EAC7BmG,KAAKq7E,YAAYnvD,YAAYlsB,KAAK2wE,eAAe92E,GAAG6/E,gBAExD,EAEAhJ,mBAAmBp2E,UAAUogF,iBAAmB,SAAUlkD,EAAMnuB,GAI9D,IAHA,IAAIxO,EAAI,EACJ6gB,EAAM1a,KAAK2wE,eAAe72E,OAEvBD,EAAI6gB,GAAK,CACd,GAAIrS,GAAOrI,KAAK2wE,eAAe92E,GAAGkhF,OAAQ,CAIxC,IAHA,IACI3Q,EADAplE,EAAIhF,KAAK2wE,eAAe92E,GAAGihF,SAGxB91E,EAAIqD,GACLrI,KAAKu+C,SAASv5C,IAAMhF,KAAKu+C,SAASv5C,GAAGmnD,iBACvCie,EAAcpqE,KAAKu+C,SAASv5C,GAAGmnD,kBAGjCnnD,GAAK,EAGHolE,EACFpqE,KAAK2wE,eAAe92E,GAAGw2B,UAAUg6C,aAAa7zC,EAAM4zC,GAEpDpqE,KAAK2wE,eAAe92E,GAAGw2B,UAAUnE,YAAYsK,GAG/C,KACF,CAEA38B,GAAK,CACP,CACF,EAEA62E,mBAAmBp2E,UAAUw1B,gBAAkB,SAAUyC,GACvD,IAAI8oD,EAAchhE,UAAU,OACxB+V,EAAUpwB,KAAKmuD,cAAc/9B,QAC7B3qB,EAAQ41E,EAAY51E,MACxBA,EAAM4jB,MAAQkJ,EAAS5uB,EAAI,KAC3B8B,EAAMsL,OAASwhB,EAAS5iB,EAAI,KAC5B3P,KAAKq7E,YAAcA,EACnB18D,SAAS08D,GACT51E,EAAM0Z,eAAiB,OACvB1Z,EAAM4Z,kBAAoB,OAC1B5Z,EAAM2Z,qBAAuB,OAEzBpf,KAAKioD,aAAa8f,WACpBsT,EAAYlkD,aAAa,QAASn3B,KAAKioD,aAAa8f,WAGtD33C,EAAQlE,YAAYmvD,GACpB51E,EAAM61E,SAAW,SACjB,IAAIrQ,EAAMhpD,SAAS,OACnBgpD,EAAI9zC,aAAa,QAAS,KAC1B8zC,EAAI9zC,aAAa,SAAU,KAC3BxY,SAASssD,GACTjrE,KAAKq7E,YAAYnvD,YAAY++C,GAC7B,IAAIv6C,EAAOzO,SAAS,QACpBgpD,EAAI/+C,YAAYwE,GAChB1wB,KAAK6iB,KAAO0P,EAEZvyB,KAAKiuD,gBAAgB17B,EAAU04C,GAC/BjrE,KAAKywB,WAAWC,KAAOA,EACvB1wB,KAAKwjB,OAAS+O,EAAS/O,OACvBxjB,KAAK4rD,aAAe5rD,KAAKq7E,YACzBr7E,KAAKk7E,oBACLl7E,KAAKmzB,qBACP,EAEAu9C,mBAAmBp2E,UAAU2Y,QAAU,WAOrC,IAAIpZ,EANAmG,KAAKmuD,cAAc/9B,UACrBpwB,KAAKmuD,cAAc/9B,QAAQkH,UAAY,IAGzCt3B,KAAKmuD,cAAc99B,UAAY,KAC/BrwB,KAAKywB,WAAWC,KAAO,KAEvB,IAAIhW,EAAM1a,KAAKwjB,OAASxjB,KAAKwjB,OAAO1pB,OAAS,EAE7C,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACpBmG,KAAKu+C,SAAS1kD,IAAMmG,KAAKu+C,SAAS1kD,GAAGoZ,SACvCjT,KAAKu+C,SAAS1kD,GAAGoZ,UAIrBjT,KAAKu+C,SAASzkD,OAAS,EACvBkG,KAAKmoE,WAAY,EACjBnoE,KAAKmuD,cAAgB,IACvB,EAEAuiB,mBAAmBp2E,UAAU64B,oBAAsB,WACjD,IAIIyZ,EACAxC,EACAgD,EACAjpB,EAPAoxD,EAAev1E,KAAKmuD,cAAc/9B,QAAQwyB,YAC1C4yB,EAAgBx1E,KAAKmuD,cAAc/9B,QAAQulD,aAC3CF,EAAaF,EAAeC,EACbx1E,KAAKywB,WAAW29B,SAASzqD,EAAI3D,KAAKywB,WAAW29B,SAASz+C,EAMtD8lE,GACjB7oC,EAAK2oC,EAAev1E,KAAKywB,WAAW29B,SAASzqD,EAC7CymC,EAAKmrC,EAAev1E,KAAKywB,WAAW29B,SAASzqD,EAC7CypC,EAAK,EACLjpB,GAAMqxD,EAAgBx1E,KAAKywB,WAAW29B,SAASz+C,GAAK4lE,EAAev1E,KAAKywB,WAAW29B,SAASzqD,IAAM,IAElGipC,EAAK4oC,EAAgBx1E,KAAKywB,WAAW29B,SAASz+C,EAC9Cy6B,EAAKorC,EAAgBx1E,KAAKywB,WAAW29B,SAASz+C,EAC9Cy9B,GAAMmoC,EAAev1E,KAAKywB,WAAW29B,SAASzqD,GAAK6xE,EAAgBx1E,KAAKywB,WAAW29B,SAASz+C,IAAM,EAClGwU,EAAK,GAGP,IAAI1e,EAAQzF,KAAKq7E,YAAY51E,MAC7BA,EAAMkxE,gBAAkB,YAAc/pC,EAAK,YAAcxC,EAAK,gBAAkBgD,EAAK,IAAMjpB,EAAK,QAChG1e,EAAM6nC,UAAY7nC,EAAMkxE,eAC1B,EAEAjG,mBAAmBp2E,UAAU+4B,YAAc4zC,YAAY3sE,UAAU+4B,YAEjEq9C,mBAAmBp2E,UAAUqE,KAAO,WAClCqB,KAAKq7E,YAAY51E,MAAMC,QAAU,MACnC,EAEAgrE,mBAAmBp2E,UAAUm7B,KAAO,WAClCz1B,KAAKq7E,YAAY51E,MAAMC,QAAU,OACnC,EAEAgrE,mBAAmBp2E,UAAUw4B,UAAY,WAGvC,GAFA9yB,KAAKstD,gBAEDttD,KAAK4wE,OACP5wE,KAAK4wE,OAAO18D,YACP,CACL,IAEIra,EAFA0hF,EAASv7E,KAAKywB,WAAW29B,SAASzqD,EAClC63E,EAAUx7E,KAAKywB,WAAW29B,SAASz+C,EAEnC+K,EAAM1a,KAAK2wE,eAAe72E,OAE9B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAAG,CAC3B,IAAI4L,EAAQzF,KAAK2wE,eAAe92E,GAAG6/E,gBAAgBj0E,MACnDA,EAAMm0E,kBAAoBp5E,KAAKod,KAAKpd,KAAKyP,IAAIsrE,EAAQ,GAAK/6E,KAAKyP,IAAIurE,EAAS,IAAM,KAClF/1E,EAAMk0E,YAAcl0E,EAAMm0E,iBAC5B,CACF,CACF,EAEAlJ,mBAAmBp2E,UAAUm4B,wBAA0B,SAAUhN,GAC/D,IAAI5rB,EACA6gB,EAAM+K,EAAO3rB,OACb2hF,EAAoBphE,UAAU,OAElC,IAAKxgB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,GAAI4rB,EAAO5rB,GAAGm0B,GAAI,CAChB,IAAIvJ,EAAOzkB,KAAK+sD,WAAWtnC,EAAO5rB,GAAI4hF,EAAmBz7E,KAAKywB,WAAWhM,KAAM,MAC/EA,EAAKqN,kBACL9xB,KAAKywB,WAAWd,iBAAiBhC,oBAAoBlJ,EACvD,CAEJ,EAcAnK,gBAAgB,CAACo2D,mBAAoB5J,aAAcgJ,cAAee,cAClEA,aAAav2E,UAAUohF,6BAA+B7K,aAAav2E,UAAUg5D,wBAE7Eud,aAAav2E,UAAUg5D,wBAA0B,WAC/CtzD,KAAK07E,+BAGD17E,KAAK6iB,KAAKiB,SACZ9jB,KAAKmnE,WAAWhwC,aAAa,QAASn3B,KAAK6iB,KAAKlf,GAChD3D,KAAKmnE,WAAWhwC,aAAa,SAAUn3B,KAAK6iB,KAAKlT,GACjD3P,KAAKwzD,mBAAqBxzD,KAAK2rD,aAE/B3rD,KAAKwzD,mBAAqBxzD,KAAK4rD,YAEnC,EAEAilB,aAAav2E,UAAUogF,iBAAmB,SAAUlkD,EAAMnuB,GAIxD,IAHA,IACI+hE,EADAplE,EAAI,EAGDA,EAAIqD,GACLrI,KAAKu+C,SAASv5C,IAAMhF,KAAKu+C,SAASv5C,GAAGmnD,iBACvCie,EAAcpqE,KAAKu+C,SAASv5C,GAAGmnD,kBAGjCnnD,GAAK,EAGHolE,EACFpqE,KAAK4rD,aAAaye,aAAa7zC,EAAM4zC,GAErCpqE,KAAK4rD,aAAa1/B,YAAYsK,EAElC,EAEAq6C,aAAav2E,UAAUyyD,WAAa,SAAUlqC,GAC5C,OAAK7iB,KAAKgnE,WAIH,IAAI6J,aAAahuD,EAAM7iB,KAAKywB,WAAYzwB,MAHtC,IAAI+mE,eAAelkD,EAAM7iB,KAAKywB,WAAYzwB,KAIrD,EAgCAsa,gBAAgB,CAACo2D,oBAAqBI,gBAEtCA,eAAex2E,UAAUyyD,WAAa,SAAUlqC,GAC9C,OAAK7iB,KAAKgnE,WAIH,IAAI6J,aAAahuD,EAAM7iB,KAAKywB,WAAYzwB,MAHtC,IAAI+mE,eAAelkD,EAAM7iB,KAAKywB,WAAYzwB,KAIrD,EAEA,IAAI4qD,wBACK,SAAUnmC,GACf,SAASk3D,EAAmB38E,GAI1B,IAHA,IAAInF,EAAI,EACJ6gB,EAAM+J,EAAKjB,OAAO1pB,OAEfD,EAAI6gB,GAAK,CACd,GAAI+J,EAAKjB,OAAO3pB,GAAGi0B,KAAO9uB,GAAQylB,EAAKjB,OAAO3pB,GAAGwnC,MAAQriC,EACvD,OAAOylB,EAAK85B,SAAS1kD,GAAGgxD,eAG1BhxD,GAAK,CACP,CAEA,OAAO,IACT,CAaA,OAXAc,OAAOwB,eAAew/E,EAAoB,QAAS,CACjDtgF,MAAOopB,EAAK5B,KAAKiL,KAEnB6tD,EAAmB9uB,MAAQ8uB,EAC3BA,EAAmBC,YAAc,EACjCD,EAAmB5qE,OAAS0T,EAAK5B,KAAKlT,GAAK8U,EAAKgM,WAAW29B,SAASz+C,EACpEgsE,EAAmBtyD,MAAQ5E,EAAK5B,KAAKlf,GAAK8gB,EAAKgM,WAAW29B,SAASzqD,EACnEg4E,EAAmBC,YAAc,EACjCD,EAAmBE,cAAgB,EAAIp3D,EAAKgM,WAAW9B,UACvDgtD,EAAmBG,iBAAmB,EACtCH,EAAmBI,UAAYt3D,EAAKjB,OAAO1pB,OACpC6hF,CACT,EAGF,SAASK,UAAU1iF,GAAuV,OAA1O0iF,UAArD,oBAAXx3E,QAAoD,kBAApBA,OAAOoH,SAAqC,SAAiBtS,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkL,QAAyBlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAAK,EAAY0iF,UAAU1iF,EAAM,CA2BjY,SAAS2iF,WAAWvhD,EAAMU,GAIxB,IAaI8gD,EAbAz9E,EAASuB,KACTqpB,EAAQ,IAMZ8yD,EAAU,SAEVC,EAAahhD,EAAKnrB,IAAIoZ,EANb,GAOLgzD,EAAejhD,EAAKnrB,IAAI,EALnB,IAMLqrE,EAA0B,EAAfe,EACX3sB,EAAOrmC,EAAQ,EA6FnB,SAASizD,EAAKniF,GACZ,IAAI+S,EACAqvE,EAASpiF,EAAIL,OACb0iF,EAAKx8E,KACLnG,EAAI,EACJmL,EAAIw3E,EAAG3iF,EAAI2iF,EAAGx3E,EAAI,EAClBsD,EAAIk0E,EAAGh9E,EAAI,GAOf,IALK+8E,IACHpiF,EAAM,CAACoiF,MAIF1iF,EAAIwvB,GACT/gB,EAAEzO,GAAKA,IAGT,IAAKA,EAAI,EAAGA,EAAIwvB,EAAOxvB,IACrByO,EAAEzO,GAAKyO,EAAEtD,EAAI0qD,EAAO1qD,EAAI7K,EAAIN,EAAI0iF,IAAWrvE,EAAI5E,EAAEzO,KACjDyO,EAAEtD,GAAKkI,EAITsvE,EAAG77D,EAAI,SAAUhS,GAQf,IANA,IAAIzB,EACAwC,EAAI,EACJ7V,EAAI2iF,EAAG3iF,EACPmL,EAAIw3E,EAAGx3E,EACPsD,EAAIk0E,EAAGh9E,EAEJmP,KACLzB,EAAI5E,EAAEzO,EAAI61D,EAAO71D,EAAI,GACrB6V,EAAIA,EAAI2Z,EAAQ/gB,EAAEonD,GAAQpnD,EAAEzO,GAAKyO,EAAEtD,EAAI0qD,EAAO1qD,EAAIkI,KAAO5E,EAAEtD,GAAKkI,IAKlE,OAFAsvE,EAAG3iF,EAAIA,EACP2iF,EAAGx3E,EAAIA,EACA0K,CAGT,CACF,CAMA,SAAS+sE,EAAKp+E,EAAG6O,GAIf,OAHAA,EAAErT,EAAIwE,EAAExE,EACRqT,EAAElI,EAAI3G,EAAE2G,EACRkI,EAAE1N,EAAInB,EAAEmB,EAAEzC,QACHmQ,CACT,CAMA,SAASwvE,EAAQpjF,EAAKi/C,GACpB,IAEI19B,EAFA1c,EAAS,GACTw+E,EAAMX,UAAU1iF,GAGpB,GAAIi/C,GAAgB,UAAPokC,EACX,IAAK9hE,KAAQvhB,EACX,IACE6E,EAAOK,KAAKk+E,EAAQpjF,EAAIuhB,GAAO09B,EAAQ,GACzC,CAAE,MAAOj4C,GAAI,CAIjB,OAAOnC,EAAOrE,OAASqE,EAAgB,UAAPw+E,EAAkBrjF,EAAMA,EAAM,IAChE,CAOA,SAASsjF,EAAOC,EAAM1iF,GAKpB,IAJA,IACI2iF,EADAC,EAAaF,EAAO,GAEpB73E,EAAI,EAEDA,EAAI+3E,EAAWjjF,QACpBK,EAAIu1D,EAAO1qD,GAAK0qD,GAAQotB,GAAyB,GAAhB3iF,EAAIu1D,EAAO1qD,IAAW+3E,EAAWt0E,WAAWzD,KAG/E,OAAOg4E,EAAS7iF,EAClB,CA2BA,SAAS6iF,EAASz/E,GAChB,OAAOgL,OAAOugE,aAAaprE,MAAM,EAAGH,EACtC,CAlIA69B,EAAK,OAAS+gD,GA3Ed,SAAoBU,EAAMxvE,EAASqa,GACjC,IAAIvtB,EAAM,GAKN8iF,EAAYL,EAAOF,GAJvBrvE,GAAsB,IAAZA,EAAmB,CAC3B6vE,SAAS,GACP7vE,GAAW,CAAC,GAEuB6vE,QAAU,CAACL,EAAMG,EAAStiD,IAAkB,OAATmiD,EAiL5E,WACE,IACE,GAAIX,EACF,OAAOc,EAASd,EAAWiB,YAAY9zD,IAGzC,IAAInqB,EAAM,IAAIk+E,WAAW/zD,GAEzB,OADC5qB,EAAO4+E,QAAU5+E,EAAO6+E,UAAUC,gBAAgBr+E,GAC5C89E,EAAS99E,EAClB,CAAE,MAAOoB,GACP,IAAIk9E,EAAU/+E,EAAOkb,UACjB8jE,EAAUD,GAAWA,EAAQC,QACjC,MAAO,EAAE,IAAI7lE,KAAQnZ,EAAQg/E,EAASh/E,EAAOi/E,OAAQV,EAAStiD,GAChE,CACF,CA/L4FijD,GAAad,EAAM,GAAI1iF,GAE7GyjF,EAAO,IAAItB,EAAKniF,GAGhB0jF,EAAO,WAOT,IANA,IAAI1wE,EAAIywE,EAAKj9D,EA5BR,GA8BLE,EAAIu7D,EAEJvjD,EAAI,EAEG1rB,EAAIkvE,GAETlvE,GAAKA,EAAI0rB,GAAKxP,EAEdxI,GAAKwI,EAELwP,EAAI+kD,EAAKj9D,EAAE,GAGb,KAAOxT,GAAKmuE,GAEVnuE,GAAK,EAEL0T,GAAK,EAELgY,KAAO,EAGT,OAAQ1rB,EAAI0rB,GAAKhY,CACnB,EAcA,OAZAg9D,EAAKC,MAAQ,WACX,OAAmB,EAAZF,EAAKj9D,EAAE,EAChB,EAEAk9D,EAAKE,MAAQ,WACX,OAAOH,EAAKj9D,EAAE,GAAK,UACrB,EAEAk9D,EAAa,OAAIA,EAEjBjB,EAAOI,EAASY,EAAKp+E,GAAIk7B,IAEjBrtB,EAAQ2wE,MAAQt2D,GAAY,SAAUm2D,EAAMhB,EAAMoB,EAAcC,GAetE,OAdIA,IAEEA,EAAM1+E,GACRi9E,EAAKyB,EAAON,GAIdC,EAAKK,MAAQ,WACX,OAAOzB,EAAKmB,EAAM,CAAC,EACrB,GAKEK,GACF7iD,EAAK+gD,GAAW0B,EACThB,GAGGgB,CACd,GAAGA,EAAMZ,EAAW,WAAY5vE,EAAUA,EAAQ5O,OAASuB,MAAQo7B,EAAM/tB,EAAQ6wE,MACnF,EA6IAtB,EAAOxhD,EAAKjyB,SAAUuxB,EAKxB,CAIA,SAASyjD,aAAangE,GACpBi+D,WAAW,GAAIj+D,EACjB,CAEA,IAAI9I,UAAY,CACdkpE,MAAO,SAGT,SAASC,UAAU/kF,GAAuV,OAA1O+kF,UAArD,oBAAX75E,QAAoD,kBAApBA,OAAOoH,SAAqC,SAAiBtS,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkL,QAAyBlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAAK,EAAY+kF,UAAU/kF,EAAM,CAEjY,IAAIglF,kBAAoB,WAGtB,IAAIxzD,GAAK,CAAC,EACNtqB,KAAOwd,OACPzd,OAAS,KACT3C,SAAW,KACXgqB,eAAiB,KACjB22D,MAAQ,KACRC,OAAS,KACTC,cAAgB,CAAC,EAGrB,SAASnrD,aACPmrD,cAAgB,CAAC,CACnB,CAEA,SAASC,sBAAsB7hE,GAC7B,OAAOA,EAAIzhB,cAAgB4F,OAAS6b,EAAIzhB,cAAgB2hB,YAC1D,CAEA,SAAS4hE,YAAYC,EAAMl+D,GACzB,MAAgB,WAATk+D,GAAqBl+D,aAAa1R,QAAmB,YAAT4vE,GAA+B,WAATA,CAC3E,CAEA,SAASC,QAAQthF,GACf,IAAIuhF,EAAOT,UAAU9gF,GAErB,GAAa,WAATuhF,GAAqBvhF,aAAayR,QAAmB,YAAT8vE,EAC9C,OAAQvhF,EAGV,GAAImhF,sBAAsBnhF,GAAI,CAC5B,IAAI1D,EACAklF,EAAOxhF,EAAEzD,OACTklF,EAAS,GAEb,IAAKnlF,EAAI,EAAGA,EAAIklF,EAAMllF,GAAK,EACzBmlF,EAAOnlF,IAAM0D,EAAE1D,GAGjB,OAAOmlF,CACT,CAEA,OAAIzhF,EAAE+iC,SACG/iC,EAAEmjB,GAGHnjB,CACV,CAtCA4gF,aAAangE,QAwCb,IAAIihE,UAAYrnD,cAAc2J,gBAAgB,KAAO,EAAG,KAAO,KAAO,UAAU5jC,IAC5EuhF,WAAatnD,cAAc2J,gBAAgB,KAAO,KAAO,KAAO,EAAG,WAAW5jC,IAC9EwhF,aAAevnD,cAAc2J,gBAAgB,IAAM,EAAG,KAAO,EAAG,aAAa5jC,IAEjF,SAASinD,IAAIrnD,EAAGC,GACd,IAAIshF,EAAOT,UAAU9gF,GAEjB6hF,EAAOf,UAAU7gF,GAErB,GAAImhF,YAAYG,EAAMvhF,IAAMohF,YAAYS,EAAM5hF,IAAe,WAATshF,GAA8B,WAATM,EACvE,OAAO7hF,EAAIC,EAGb,GAAIkhF,sBAAsBnhF,IAAMohF,YAAYS,EAAM5hF,GAGhD,OAFAD,EAAIA,EAAER,MAAM,IACV,IAAMS,EACDD,EAGT,GAAIohF,YAAYG,EAAMvhF,IAAMmhF,sBAAsBlhF,GAGhD,OAFAA,EAAIA,EAAET,MAAM,IACV,GAAKQ,EAAIC,EAAE,GACNA,EAGT,GAAIkhF,sBAAsBnhF,IAAMmhF,sBAAsBlhF,GAAI,CAMxD,IALA,IAAI3D,EAAI,EACJklF,EAAOxhF,EAAEzD,OACTulF,EAAO7hF,EAAE1D,OACTklF,EAAS,GAENnlF,EAAIklF,GAAQllF,EAAIwlF,IACA,kBAAT9hF,EAAE1D,IAAmB0D,EAAE1D,aAAcmV,UAA4B,kBAATxR,EAAE3D,IAAmB2D,EAAE3D,aAAcmV,QACvGgwE,EAAOnlF,GAAK0D,EAAE1D,GAAK2D,EAAE3D,GAErBmlF,EAAOnlF,QAAcyD,IAATE,EAAE3D,GAAmB0D,EAAE1D,GAAK0D,EAAE1D,IAAM2D,EAAE3D,GAGpDA,GAAK,EAGP,OAAOmlF,CACT,CAEA,OAAO,CACT,CAEA,IAAIhf,IAAMpb,IAEV,SAAS06B,IAAI/hF,EAAGC,GACd,IAAIshF,EAAOT,UAAU9gF,GAEjB6hF,EAAOf,UAAU7gF,GAErB,GAAImhF,YAAYG,EAAMvhF,IAAMohF,YAAYS,EAAM5hF,GAS5C,MARa,WAATshF,IACFvhF,EAAI6Z,SAAS7Z,EAAG,KAGL,WAAT6hF,IACF5hF,EAAI4Z,SAAS5Z,EAAG,KAGXD,EAAIC,EAGb,GAAIkhF,sBAAsBnhF,IAAMohF,YAAYS,EAAM5hF,GAGhD,OAFAD,EAAIA,EAAER,MAAM,IACV,IAAMS,EACDD,EAGT,GAAIohF,YAAYG,EAAMvhF,IAAMmhF,sBAAsBlhF,GAGhD,OAFAA,EAAIA,EAAET,MAAM,IACV,GAAKQ,EAAIC,EAAE,GACNA,EAGT,GAAIkhF,sBAAsBnhF,IAAMmhF,sBAAsBlhF,GAAI,CAMxD,IALA,IAAI3D,EAAI,EACJklF,EAAOxhF,EAAEzD,OACTulF,EAAO7hF,EAAE1D,OACTklF,EAAS,GAENnlF,EAAIklF,GAAQllF,EAAIwlF,IACA,kBAAT9hF,EAAE1D,IAAmB0D,EAAE1D,aAAcmV,UAA4B,kBAATxR,EAAE3D,IAAmB2D,EAAE3D,aAAcmV,QACvGgwE,EAAOnlF,GAAK0D,EAAE1D,GAAK2D,EAAE3D,GAErBmlF,EAAOnlF,QAAcyD,IAATE,EAAE3D,GAAmB0D,EAAE1D,GAAK0D,EAAE1D,IAAM2D,EAAE3D,GAGpDA,GAAK,EAGP,OAAOmlF,CACT,CAEA,OAAO,CACT,CAEA,SAASO,IAAIhiF,EAAGC,GACd,IAIIqf,EAMAhjB,EACA6gB,EAXAokE,EAAOT,UAAU9gF,GAEjB6hF,EAAOf,UAAU7gF,GAIrB,GAAImhF,YAAYG,EAAMvhF,IAAMohF,YAAYS,EAAM5hF,GAC5C,OAAOD,EAAIC,EAMb,GAAIkhF,sBAAsBnhF,IAAMohF,YAAYS,EAAM5hF,GAAI,CAIpD,IAHAkd,EAAMnd,EAAEzD,OACR+iB,EAAMF,iBAAiB,UAAWjC,GAE7B7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgjB,EAAIhjB,GAAK0D,EAAE1D,GAAK2D,EAGlB,OAAOqf,CACT,CAEA,GAAI8hE,YAAYG,EAAMvhF,IAAMmhF,sBAAsBlhF,GAAI,CAIpD,IAHAkd,EAAMld,EAAE1D,OACR+iB,EAAMF,iBAAiB,UAAWjC,GAE7B7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgjB,EAAIhjB,GAAK0D,EAAIC,EAAE3D,GAGjB,OAAOgjB,CACT,CAEA,OAAO,CACT,CAEA,SAAS0a,IAAIh6B,EAAGC,GACd,IAIIqf,EAMAhjB,EACA6gB,EAXAokE,EAAOT,UAAU9gF,GAEjB6hF,EAAOf,UAAU7gF,GAIrB,GAAImhF,YAAYG,EAAMvhF,IAAMohF,YAAYS,EAAM5hF,GAC5C,OAAOD,EAAIC,EAMb,GAAIkhF,sBAAsBnhF,IAAMohF,YAAYS,EAAM5hF,GAAI,CAIpD,IAHAkd,EAAMnd,EAAEzD,OACR+iB,EAAMF,iBAAiB,UAAWjC,GAE7B7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgjB,EAAIhjB,GAAK0D,EAAE1D,GAAK2D,EAGlB,OAAOqf,CACT,CAEA,GAAI8hE,YAAYG,EAAMvhF,IAAMmhF,sBAAsBlhF,GAAI,CAIpD,IAHAkd,EAAMld,EAAE1D,OACR+iB,EAAMF,iBAAiB,UAAWjC,GAE7B7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgjB,EAAIhjB,GAAK0D,EAAIC,EAAE3D,GAGjB,OAAOgjB,CACT,CAEA,OAAO,CACT,CAEA,SAAS2iE,IAAIjiF,EAAGC,GASd,MARiB,kBAAND,IACTA,EAAI6Z,SAAS7Z,EAAG,KAGD,kBAANC,IACTA,EAAI4Z,SAAS5Z,EAAG,KAGXD,EAAIC,CACb,CAEA,IAAIiiF,QAAU76B,IACV86B,QAAUJ,IACVK,QAAUJ,IACVK,QAAUroD,IACVsoD,QAAUL,IAEd,SAASM,MAAMl4B,EAAKh/C,EAAKD,GACvB,GAAIC,EAAMD,EAAK,CACb,IAAIo3E,EAAKp3E,EACTA,EAAMC,EACNA,EAAMm3E,CACR,CAEA,OAAOv/E,KAAKoI,IAAIpI,KAAKmI,IAAIi/C,EAAKh/C,GAAMD,EACtC,CAEA,SAASq3E,iBAAiBh3E,GACxB,OAAOA,EAAMqV,SACf,CAEA,IAAI4hE,mBAAqBD,iBAEzB,SAASE,iBAAiBl3E,GACxB,OAAOA,EAAMqV,SACf,CAEA,IAAI8hE,mBAAqBH,iBACrBI,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAExC,SAAStmF,OAAOumF,EAAMC,GACpB,GAAoB,kBAATD,GAAqBA,aAAgBrxE,OAE9C,OADAsxE,EAAOA,GAAQ,EACR9/E,KAAKiP,IAAI4wE,EAAOC,GAOzB,IAAIzmF,EAJCymF,IACHA,EAAOF,mBAIT,IAAI1lE,EAAMla,KAAKoI,IAAIy3E,EAAKvmF,OAAQwmF,EAAKxmF,QACjCghC,EAAc,EAElB,IAAKjhC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBihC,GAAet6B,KAAKyP,IAAIqwE,EAAKzmF,GAAKwmF,EAAKxmF,GAAI,GAG7C,OAAO2G,KAAKod,KAAKkd,EACnB,CAEA,SAASylD,UAAUC,GACjB,OAAOjpD,IAAIipD,EAAK1mF,OAAO0mF,GACzB,CAEA,SAASC,SAASz3E,GAChB,IAKI2G,EACArH,EANAoH,EAAI1G,EAAI,GACR2X,EAAI3X,EAAI,GACRxL,EAAIwL,EAAI,GACRL,EAAMnI,KAAKmI,IAAI+G,EAAGiR,EAAGnjB,GACrBoL,EAAMpI,KAAKoI,IAAI8G,EAAGiR,EAAGnjB,GAGrBgL,GAAKG,EAAMC,GAAO,EAEtB,GAAID,IAAQC,EACV+G,EAAI,EAEJrH,EAAI,MACC,CACL,IAAIuY,EAAIlY,EAAMC,EAGd,OAFAN,EAAIE,EAAI,GAAMqY,GAAK,EAAIlY,EAAMC,GAAOiY,GAAKlY,EAAMC,GAEvCD,GACN,KAAK+G,EACHC,GAAKgR,EAAInjB,GAAKqjB,GAAKF,EAAInjB,EAAI,EAAI,GAC/B,MAEF,KAAKmjB,EACHhR,GAAKnS,EAAIkS,GAAKmR,EAAI,EAClB,MAEF,KAAKrjB,EACHmS,GAAKD,EAAIiR,GAAKE,EAAI,EAOtBlR,GAAK,CACP,CAEA,MAAO,CAACA,EAAGrH,EAAGE,EAAGQ,EAAI,GACvB,CAEA,SAAS03E,QAAQ7wE,EAAGgE,EAAG3G,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAU2C,EAAc,GAATgE,EAAIhE,GAAS3C,EACpCA,EAAI,GAAc2G,EAClB3G,EAAI,EAAI,EAAU2C,GAAKgE,EAAIhE,IAAM,EAAI,EAAI3C,GAAK,EAC3C2C,CACT,CAEA,SAAS8wE,SAAS33E,GAChB,IAGI0G,EACAiR,EACAnjB,EALAmS,EAAI3G,EAAI,GACRV,EAAIU,EAAI,GACRR,EAAIQ,EAAI,GAKZ,GAAU,IAANV,EACFoH,EAAIlH,EAEJhL,EAAIgL,EAEJmY,EAAInY,MACC,CACL,IAAIqL,EAAIrL,EAAI,GAAMA,GAAK,EAAIF,GAAKE,EAAIF,EAAIE,EAAIF,EACxCuH,EAAI,EAAIrH,EAAIqL,EAChBnE,EAAIgxE,QAAQ7wE,EAAGgE,EAAGlE,EAAI,EAAI,GAC1BgR,EAAI+/D,QAAQ7wE,EAAGgE,EAAGlE,GAClBnS,EAAIkjF,QAAQ7wE,EAAGgE,EAAGlE,EAAI,EAAI,EAC5B,CAEA,MAAO,CAACD,EAAGiR,EAAGnjB,EAAGwL,EAAI,GACvB,CAEA,SAAS43E,OAAO1zE,EAAG2zE,EAAMC,EAAMC,EAAQC,GAQrC,QAPe1jF,IAAXyjF,QAAmCzjF,IAAX0jF,IAC1BD,EAASF,EACTG,EAASF,EACTD,EAAO,EACPC,EAAO,GAGLA,EAAOD,EAAM,CACf,IAAII,EAAQH,EACZA,EAAOD,EACPA,EAAOI,CACT,CAEA,GAAI/zE,GAAK2zE,EACP,OAAOE,EAGT,GAAI7zE,GAAK4zE,EACP,OAAOE,EAGT,IAMInnF,EANAsiC,EAAO2kD,IAASD,EAAO,GAAK3zE,EAAI2zE,IAASC,EAAOD,GAEpD,IAAKE,EAAOjnF,OACV,OAAOinF,GAAUC,EAASD,GAAU5kD,EAItC,IAAIzhB,EAAMqmE,EAAOjnF,OACb+iB,EAAMF,iBAAiB,UAAWjC,GAEtC,IAAK7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgjB,EAAIhjB,GAAKknF,EAAOlnF,IAAMmnF,EAAOnnF,GAAKknF,EAAOlnF,IAAMsiC,EAGjD,OAAOtf,CACT,CAEA,SAAS1T,OAAOP,EAAKD,GAWnB,QAVYrL,IAARqL,SACUrL,IAARsL,GACFA,EAAM,EACND,EAAM,IAENA,EAAMC,EACNA,OAAMtL,IAINqL,EAAI7O,OAAQ,CACd,IAAID,EACA6gB,EAAM/R,EAAI7O,OAET8O,IACHA,EAAM+T,iBAAiB,UAAWjC,IAGpC,IAAImC,EAAMF,iBAAiB,UAAWjC,GAClCwmE,EAAMljE,OAAO7U,SAEjB,IAAKtP,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBgjB,EAAIhjB,GAAK+O,EAAI/O,GAAKqnF,GAAOv4E,EAAI9O,GAAK+O,EAAI/O,IAGxC,OAAOgjB,CACT,CAOA,YALYvf,IAARsL,IACFA,EAAM,GAIDA,EADIoV,OAAO7U,UACGR,EAAMC,EAC7B,CAEA,SAASu4E,WAAW1oD,EAAQ2oD,EAAYC,EAAa56D,GACnD,IAAI5sB,EACA6gB,EAAM+d,EAAO3+B,OACb8oB,EAAOklB,UAAUnN,aACrB/X,EAAKikB,cAAcpgB,EAAQ/L,GAC3B,IACI4mE,EACAC,EAFAC,EAAiB,CAAC,EAAG,GAIzB,IAAK3nF,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBynF,EAAgBF,GAAcA,EAAWvnF,GAAKunF,EAAWvnF,GAAK2nF,EAC9DD,EAAiBF,GAAeA,EAAYxnF,GAAKwnF,EAAYxnF,GAAK2nF,EAClE5+D,EAAKqkB,YAAYxO,EAAO5+B,GAAG,GAAI4+B,EAAO5+B,GAAG,GAAI0nF,EAAe,GAAK9oD,EAAO5+B,GAAG,GAAI0nF,EAAe,GAAK9oD,EAAO5+B,GAAG,GAAIynF,EAAc,GAAK7oD,EAAO5+B,GAAG,GAAIynF,EAAc,GAAK7oD,EAAO5+B,GAAG,GAAIA,GAAG,GAGxL,OAAO+oB,CACT,CAEA,SAAS6+D,mBAAmBjrD,KAAM3T,KAAM6+D,UAEtC,SAASC,KAAKC,GACZ,OAAOA,CACT,CAEA,IAAKprD,KAAK/F,WAAWw3B,aAAaigB,eAChC,OAAOyZ,KAGT,IAAI34E,IAAM6Z,KAAKgW,EACXgpD,cAAgB,qBAAqBt6E,KAAKyB,KAE1C84E,cAA0C,IAA3B94E,IAAIqe,QAAQ,UAE3B06D,SAAWvrD,KAAK3T,KAAKsB,GACrBmpB,UACA00C,cACA12B,QACAoH,OACAuvB,aAAeP,SACnBO,aAAaC,YAAcD,aAAazrC,eACxC77C,OAAOwB,eAAe8lF,aAAc,QAAS,CAC3CtkF,IAAK,WACH,OAAOskF,aAAavhE,CACtB,IAEF8V,KAAK/R,KAAKo3D,cAAgB,EAAIrlD,KAAK/R,KAAKgM,WAAW9B,UACnD6H,KAAK/R,KAAKq3D,iBAAmB,EAC7B,IAAIqG,QAAU3rD,KAAK3T,KAAKgD,GAAK2Q,KAAK/R,KAAKgM,WAAW9B,UAC9CyzD,SAAW5rD,KAAK3T,KAAKiD,GAAK0Q,KAAK/R,KAAKgM,WAAW9B,UAC/CtF,MAAQmN,KAAK3T,KAAKq4C,GAAK1kC,KAAK3T,KAAKq4C,GAAK,EACtCnqD,OAASylB,KAAK3T,KAAKuf,GAAK5L,KAAK3T,KAAKuf,GAAK,EACvCpjC,KAAOw3B,KAAK3T,KAAKiL,GACjBu0D,OACAC,QACAC,QACAC,SACAC,OACAC,QACAC,UACAC,SACAC,OACAC,kBACAjkE,SACAkkE,SACAC,YACAj2C,MACAk2C,UACAC,SACAxzB,KACAwyB,YACAiB,eACAC,aAEAC,oBAAsBC,KAAK,oCAAsCt6E,IAAM,0BAA0B,GAEjGu6E,QAAU7B,SAASn8C,GAAK1iB,KAAKle,EAAE7K,OAAS,EACxC0pF,QAAUxjF,KAAK6iB,OAAyB,IAAjB7iB,KAAK6iB,KAAKmxC,GAEjCyvB,OAAS,SAAgBC,EAAMC,GACjC,IAAIC,EACA5+E,EACA6+E,EAAY7jF,KAAKugC,GAAGzmC,OAASkG,KAAKugC,GAAGzmC,OAAS,EAC9CgqF,EAAYnnE,iBAAiB,UAAWknE,GAExC7pB,EAAax5D,KAAKsI,MADf,EACqB+P,MAI5B,IAHA+qE,EAAU,EACV5+E,EAAI,EAEG4+E,EAAU5pB,GAAY,CAE3B,IAAKh1D,EAAI,EAAGA,EAAI6+E,EAAW7+E,GAAK,EAC9B8+E,EAAU9+E,KAAO2+E,EAAY,EAANA,EAAU3lE,OAAO7U,SAG1Cy6E,GAAW,CACb,CAGA,IAAIG,EAfG,EAeOlrE,KACVsjB,EAAO4nD,EAAUvjF,KAAKsI,MAAMi7E,GAC5BlnE,EAAMF,iBAAiB,UAAWknE,GAEtC,GAAIA,EAAY,EAAG,CACjB,IAAK7+E,EAAI,EAAGA,EAAI6+E,EAAW7+E,GAAK,EAC9B6X,EAAI7X,GAAKhF,KAAKugC,GAAGv7B,GAAK8+E,EAAU9+E,KAAO2+E,EAAY,EAANA,EAAU3lE,OAAO7U,UAAYgzB,EAI5E,OAAOtf,CACT,CAEA,OAAO7c,KAAKugC,GAAKujD,EAAU,KAAOH,EAAY,EAANA,EAAU3lE,OAAO7U,UAAYgzB,CACvE,EAAEvR,KAAK5qB,MAgBP,SAASgkF,eAAejlF,EAAM0O,GAC5B,OAAO40E,OAAOtjF,EAAM0O,GAAU,EAChC,CAEA,SAASw2E,gBAAgBllF,EAAM0O,GAC7B,OAAO80E,QAAQxjF,EAAM0O,GAAU,EACjC,CApBIw0E,aAAaI,SACfA,OAASJ,aAAaI,OAAOz3D,KAAKq3D,cAClCK,QAAUD,QAGRJ,aAAaM,UACfA,QAAUN,aAAaM,QAAQ33D,KAAKq3D,cACpCO,SAAWD,SAGTN,aAAaQ,SACfA,OAASR,aAAaQ,OAAO73D,KAAKq3D,eAWhCjiF,KAAKw2C,iBACP0rC,YAAcliF,KAAKw2C,eAAe5rB,KAAK5qB,OAGrCA,KAAKkkF,oBACPf,eAAiBnjF,KAAKkkF,kBAAkBt5D,KAAK5qB,OAG/C,IAAIykB,KAAO+R,KAAK/R,KAAKgM,WAAWd,iBAAiB/E,KAAK4L,KAAK/R,KAAKgM,WAAWd,kBAsLvE9W,KACAsrE,SACA9oF,MACAsoD,KACAygC,UACAC,UACAC,cA1LJ,SAASC,OAAOC,EAAOC,GACrB,IAAIC,EAAO,CAACD,EAAM,GAAKD,EAAM,GAAIC,EAAM,GAAKD,EAAM,GAAIC,EAAM,GAAKD,EAAM,IACnEG,EAAQnkF,KAAKqjC,MAAM6gD,EAAK,GAAIlkF,KAAKod,KAAK8mE,EAAK,GAAKA,EAAK,GAAKA,EAAK,GAAKA,EAAK,KAAOrmE,UAEpF,MAAO,EADI7d,KAAKqjC,MAAM6gD,EAAK,GAAIA,EAAK,IAAMrmE,UAC7BsmE,EAAO,EACtB,CAEA,SAASC,QAAQ13E,EAAG2zE,EAAMC,EAAM+D,EAAMC,GACpC,OAAOC,UAAU7F,WAAYhyE,EAAG2zE,EAAMC,EAAM+D,EAAMC,EACpD,CAEA,SAASE,OAAO93E,EAAG2zE,EAAMC,EAAM+D,EAAMC,GACnC,OAAOC,UAAU9F,UAAW/xE,EAAG2zE,EAAMC,EAAM+D,EAAMC,EACnD,CAEA,SAASG,KAAK/3E,EAAG2zE,EAAMC,EAAM+D,EAAMC,GACjC,OAAOC,UAAU5F,aAAcjyE,EAAG2zE,EAAMC,EAAM+D,EAAMC,EACtD,CAEA,SAASC,UAAU3nF,EAAI8P,EAAG2zE,EAAMC,EAAM+D,EAAMC,QAC7BxnF,IAATunF,GACFA,EAAOhE,EACPiE,EAAOhE,GAEP5zE,GAAKA,EAAI2zE,IAASC,EAAOD,GAGvB3zE,EAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,GAGN,IAAI63B,EAAO3nC,EAAG8P,GAEd,GAAIwxE,sBAAsBmG,GAAO,CAC/B,IAAIK,EACAC,EAASN,EAAK/qF,OACd+iB,EAAMF,iBAAiB,UAAWwoE,GAEtC,IAAKD,EAAO,EAAGA,EAAOC,EAAQD,GAAQ,EACpCroE,EAAIqoE,IAASJ,EAAKI,GAAQL,EAAKK,IAASngD,EAAO8/C,EAAKK,GAGtD,OAAOroE,CACT,CAEA,OAAQioE,EAAOD,GAAQ9/C,EAAO8/C,CAChC,CAEA,SAASO,WAAWvsE,GAClB,IAAIqsE,EAEAroF,EACAqkC,EAFAikD,EAAStiE,KAAKle,EAAE7K,OAIpB,GAAK+oB,KAAKle,EAAE7K,QAA+B,kBAAd+oB,KAAKle,EAAE,GAOlC,GAHA9H,GAAS,GACTgc,GAAQ2d,KAAK/R,KAAKgM,WAAW9B,WAElB9L,KAAKle,EAAE,GAAGuI,EACnBrQ,EAAQ,EACRqkC,EAAUre,KAAKle,EAAE,GAAGuI,MACf,CACL,IAAKg4E,EAAO,EAAGA,EAAOC,EAAS,EAAGD,GAAQ,EAAG,CAC3C,GAAIrsE,IAASgK,KAAKle,EAAEugF,GAAMh4E,EAAG,CAC3BrQ,EAAQqoF,EAAO,EACfhkD,EAAUre,KAAKle,EAAEugF,GAAMh4E,EACvB,KACF,CAAO,GAAI2L,EAAOgK,KAAKle,EAAEugF,GAAMh4E,GAAK2L,EAAOgK,KAAKle,EAAEugF,EAAO,GAAGh4E,EAAG,CACzD2L,EAAOgK,KAAKle,EAAEugF,GAAMh4E,EAAI2V,KAAKle,EAAEugF,EAAO,GAAGh4E,EAAI2L,GAC/Chc,EAAQqoF,EAAO,EACfhkD,EAAUre,KAAKle,EAAEugF,EAAO,GAAGh4E,IAE3BrQ,EAAQqoF,EAAO,EACfhkD,EAAUre,KAAKle,EAAEugF,GAAMh4E,GAGzB,KACF,CACF,EAEe,IAAXrQ,IACFA,EAAQqoF,EAAO,EACfhkD,EAAUre,KAAKle,EAAEugF,GAAMh4E,EAE3B,MAhCArQ,EAAQ,EACRqkC,EAAU,EAkCZ,IAAImkD,EAAQ,CAAC,EAGb,OAFAA,EAAMxoF,MAAQA,EACdwoF,EAAMxsE,KAAOqoB,EAAU1K,KAAK/R,KAAKgM,WAAW9B,UACrC02D,CACT,CAEA,SAASlrF,IAAIknC,GACX,IAAIgkD,EACAH,EACAC,EAEJ,IAAKtiE,KAAKle,EAAE7K,QAA+B,kBAAd+oB,KAAKle,EAAE,GAClC,MAAM,IAAI8O,MAAM,yCAA2C4tB,GAG7DA,GAAO,EACPgkD,EAAQ,CACNxsE,KAAMgK,KAAKle,EAAE08B,GAAKn0B,EAAIspB,KAAK/R,KAAKgM,WAAW9B,UAC3CtzB,MAAO,IAET,IAAIwhB,EAAMliB,OAAOL,UAAUM,eAAeC,KAAKgoB,KAAKle,EAAE08B,GAAM,KAAOxe,KAAKle,EAAE08B,GAAK/4B,EAAIua,KAAKle,EAAE08B,EAAM,GAAG/gC,EAGnG,IAFA6kF,EAAStoE,EAAI/iB,OAERorF,EAAO,EAAGA,EAAOC,EAAQD,GAAQ,EACpCG,EAAMH,GAAQroE,EAAIqoE,GAClBG,EAAMhqF,MAAM6pF,GAAQroE,EAAIqoE,GAG1B,OAAOG,CACT,CAEA,SAASC,aAAa9yD,EAAI+yD,GAKxB,OAJKA,IACHA,EAAM/uD,KAAK/R,KAAKgM,WAAW9B,WAGtB6D,EAAK+yD,CACd,CAEA,SAASC,aAAat4E,EAAGq4E,GASvB,OARKr4E,GAAW,IAANA,IACRA,EAAI2L,MAGD0sE,IACHA,EAAM/uD,KAAK/R,KAAKgM,WAAW9B,WAGtBzhB,EAAIq4E,CACb,CAEA,SAAStJ,WAAWY,GAClB7+D,OAAOynE,WAAWC,SAAW7I,EAC/B,CAEA,SAASz0B,mBACP,OAAO5xB,KAAK4xB,kBACd,CAEA,SAASu9B,UAAU/wD,EAAMC,GACvB,MAAqB,kBAAVx5B,WACGiC,IAARu3B,EACKx5B,MAAMsqF,UAAU/wD,GAGlBv5B,MAAMsqF,UAAU/wD,EAAMC,GAGxB,EACT,CAEA,SAAS7D,OAAO4D,EAAMC,GACpB,MAAqB,kBAAVx5B,WACGiC,IAARu3B,EACKx5B,MAAM21B,OAAO4D,GAGfv5B,MAAM21B,OAAO4D,EAAMC,GAGrB,EACT,CAEA,SAAS+wD,cAAcC,GACrBhtE,KAA2B,IAApBgtE,EAAwB,EAAIrlF,KAAKsI,MAAM+P,KAAOgtE,GAAmBA,EACxExqF,MAAQ6mF,YAAYrpE,KACtB,CASA,IAAIhc,MAAQ25B,KAAK3T,KAAKwe,IAClBykD,aAAetvD,KAAKm3B,YAAan3B,KAAKm3B,UAAU7zD,QAChDkpD,OACA0iC,SAAWllF,KAAKsI,MAAsB,IAAhBtI,KAAK2I,UAC3BsnB,WAAa+F,KAAK/F,WAEtB,SAASs1D,kBAAkBnE,GAIzB,OAFAvmF,MAAQumF,EAEJ5hF,KAAKgmF,oBAAsBxvD,KAAK/F,WAAWyU,SAA6B,iBAAlBllC,KAAKsgC,SACtDjlC,OAGa,iBAAlB2E,KAAKsgC,WACP8jD,UAAYpkF,KAAKokF,UACjBC,UAAYrkF,KAAKqkF,UACjBC,cAAgBtkF,KAAKskF,eAGlBrB,YACHt/B,KAAOntB,KAAKq0B,eAAelH,KAC3Bs/B,UAAYzsD,KAAKq0B,eACjBq4B,SAAW1sD,KAAK/R,KAAKyJ,cACrBw0D,QAAUO,UAAUP,QAAQ93D,KAAKq4D,WACjCN,UAAYM,UAAUN,UAAU/3D,KAAKq4D,WACrCL,SAAWK,UAAUL,SAASh4D,KAAKq4D,WACnCJ,OAASI,UAAUJ,OAAOj4D,KAAKq4D,WAC/BvzB,KAAOuzB,UAAUvzB,KAAOuzB,UAAUvzB,KAAK9kC,KAAKq4D,WAAa,KACzDH,kBAAoBF,UAGjBt1C,YACHA,UAAY9W,KAAKq0B,eAAe,wBAChCm3B,cAAgB10C,UAEZA,YACF01C,YAAc11C,UAAU01C,cAOX,IAAbjB,UAAmBz2B,UACrBA,QAAU23B,UAAU,4BAGjBvwB,SACHA,OAASuwB,UAAU,KAGrB6C,aAAetvD,KAAKm3B,YAAan3B,KAAKm3B,UAAU7zD,WAE9BkpD,SAChBA,OAASxsB,KAAKm3B,UAAU,GAAG9C,gBAG7BhyC,KAAO7Y,KAAKykB,KAAKggB,cAAgBzkC,KAAKykB,KAAKgM,WAAW9B,UAElDmzD,cACF7F,WAAWyJ,SAAW7sE,MAGpBgpE,gBACFsC,SAAWhB,eAAetqE,OAG5BwqE,sBACArjF,KAAKgmF,kBAAoBxvD,KAAK/F,WAAWyU,QAGzCk+C,aAAeA,aAAa9iD,WAAaprB,UAAUkpE,MAAQgF,aAAa1iE,EAAI0iE,aAE9E,CAIA,OADA2C,kBAAkBE,yBAA2B,CAACjE,cAAegB,YAAanqE,KAAMsrE,SAAUhC,QAASC,SAAU/4D,MAAOtY,OAAQ/R,KAAMsjF,QAASE,SAAUC,OAAQI,OAAQC,kBAAmBJ,QAASC,UAAWjzB,KAAM7wC,SAAUkkE,SAAUh2C,MAAOm2C,SAAUK,QAASC,OAAQC,OAAQO,eAAgBC,gBAAiBx/D,KAAM8/D,OAAQK,QAASI,OAAQC,KAAMG,WAAYjrF,IAAKwpD,KAAMygC,UAAWC,UAAWC,cAAegB,aAAcE,aAAcp9B,iBAAkBu9B,UAAW30D,OAAQ40D,cAAe/oF,MAAO4zB,YACles1D,iBACT,CAKA,OAHAj7D,GAAG22D,mBAAqBA,mBACxB32D,GAAGm7D,yBAA2B,CAAC1lF,OAAQ3C,SAAUgqB,eAAgB22D,MAAOC,OAAQK,QAAS7e,IAAKyf,QAASC,QAASC,QAASC,QAASC,QAASC,MAAOG,mBAAoBC,iBAAkBC,mBAAoBI,UAAWE,SAAUE,SAAUC,OAAQz3E,OAAQg4E,WAAY1C,eACvQ3zD,GAAGwI,WAAaA,WACTxI,EACT,CAh2BwB,GAk2BpBo7D,YAAc,WAChB,IAAIp7D,EAAK,CACTA,gBAGA,SAAyB1C,GACvB,IAAI+9D,EAAa,EACbC,EAAY,GA+BhBh+D,EAAU+G,SAASjB,cAAgB08B,wBAAwBxiC,EAAU+G,UACrE/G,EAAU+G,SAASsB,WAAWd,iBAAiBhC,oBAAoBvF,EAAU+G,UAC7E/G,EAAU+G,SAASsB,WAAW41D,eA/B9B,WACEF,GAAc,CAChB,EA8BA/9D,EAAU+G,SAASsB,WAAW61D,cA5B9B,WAGqB,KAFnBH,GAAc,IAahB,WACE,IAAItsF,EACA6gB,EAAM0rE,EAAUtsF,OAEpB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBusF,EAAUvsF,GAAG+gC,UAGfwrD,EAAUtsF,OAAS,CACrB,CAnBIysF,EAEJ,EAuBAn+D,EAAU+G,SAASsB,WAAW+1D,2BArB9B,SAAoCC,IACK,IAAnCL,EAAU/+D,QAAQo/D,IACpBL,EAAU5nF,KAAKioF,EAEnB,CAkBF,GAEA,OA1CA37D,EAAGwI,WAAagrD,kBAAkBhrD,WA0C3BxI,CACT,CA9CkB,GAgDd47D,qBAAuB,WACzB,SAASC,EAAcj3B,EAAM7sC,GAC3B7iB,KAAK4mF,MAAQl3B,EACb1vD,KAAK6mF,MAAQhkE,CACf,CAgDA,OA9CAloB,OAAOwB,eAAewqF,EAAcrsF,UAAW,WAAY,CACzDqD,IAAK,WAKH,OAJIqC,KAAK4mF,MAAM/rE,KAAKlW,GAClB3E,KAAK4mF,MAAM/rE,KAAKgrB,WAGX7lC,KAAK4mF,MAAM/rE,IACpB,IAEFlgB,OAAOwB,eAAewqF,EAAcrsF,UAAW,cAAe,CAC5DqD,IAAK,WAKH,OAJIqC,KAAK4mF,MAAM9gE,GAAGnhB,GAChB3E,KAAK4mF,MAAM9gE,GAAG+f,WAGS,IAAlB7lC,KAAK4mF,MAAM9gE,GAAGpF,CACvB,IAGgB,SAAqBoqC,GACrC,IAEIjxD,EAFAitF,EAAmB7pE,iBAAiB6tC,EAAY4D,SAAS50D,QAGzD4gB,EAAMowC,EAAY4D,SAAS50D,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBitF,EAAiBjtF,GAAK,IAAI8sF,EAAc77B,EAAY4D,SAAS70D,GAAIixD,EAAY9mC,gBAAgBnqB,IAiB/F,OAdmB,SAAsBmF,GAGvC,IAFAnF,EAAI,EAEGA,EAAI6gB,GAAK,CACd,GAAIowC,EAAY9mC,gBAAgBnqB,GAAGi0B,KAAO9uB,EACxC,OAAO8nF,EAAiBjtF,GAG1BA,GAAK,CACP,CAEA,OAAO,IACT,CAGF,CAGF,CArD2B,GAuDvBktF,4BAA8B,WAChC,IAAIC,EAA6B,CAC/BzmD,GAAI,EACJ7f,EAAG,EACHqkB,KAAM,GAEJkiD,EAA+B,CACjC1mD,GAAI,CAAC,EAAG,EAAG,GACX7f,EAAG,CAAC,EAAG,EAAG,GACVqkB,KAAM,GAGR,SAASmiD,EAAiBC,EAAiBzF,EAAU3iF,GACnDpE,OAAOwB,eAAegrF,EAAiB,WAAY,CACjDxpF,IAAK,WACH,OAAO+jF,EAASwC,kBAAkBxC,EAASj9D,KAAKwJ,aAClD,IAEFk5D,EAAgB5D,QAAU7B,EAAS5gD,UAAY4gD,EAAS5gD,UAAUhnC,OAAS,EAE3EqtF,EAAgBhtF,IAAM,SAAUkO,GAC9B,IAAK8+E,EAAgB5D,QACnB,OAAO,EAGT,IAAIloF,EAAQ,GAGVA,EADE,MAAOqmF,EAAS5gD,UAAUz4B,EAAM,GAC1Bq5E,EAAS5gD,UAAUz4B,EAAM,GAAGC,EAC3B,MAAOo5E,EAAS5gD,UAAUz4B,EAAM,GACjCq5E,EAAS5gD,UAAUz4B,EAAM,GAAG/H,EAE5BohF,EAAS5gD,UAAUz4B,EAAM,GAAGC,EAGtC,IAAI8+E,EAAqB,mBAATroF,EAA4B,IAAIiQ,OAAO3T,GAASV,OAAO2J,OAAO,CAAC,EAAGjJ,GAIlF,OAFA+rF,EAAUvuE,KAAO6oE,EAAS5gD,UAAUz4B,EAAM,GAAG6E,EAAIw0E,EAASlrD,KAAK/R,KAAKgM,WAAW9B,UAC/Ey4D,EAAU/rF,MAAiB,mBAAT0D,EAA4B1D,EAAM,GAAKA,EAClD+rF,CACT,EAEAD,EAAgBjF,YAAcR,EAASlrC,eACvC2wC,EAAgBE,YAAc3F,EAAS4F,eACvCH,EAAgBhE,eAAiBzB,EAASwC,kBAC1CiD,EAAgBI,cAAgB7F,EAAS6F,aAC3C,CAyDA,SAASC,IACP,OAAOR,CACT,CAEA,OAAO,SAAUtF,GACf,OAAKA,EAIqB,mBAAtBA,EAASphD,SAhEf,SAAyCohD,GAClCA,GAAc,OAAQA,IACzBA,EAAWsF,GAGb,IAAIjiD,EAAO,EAAI28C,EAAS38C,KACpB/7B,EAAM04E,EAASnhD,GAAKwE,EACpBoiD,EAAkB,IAAIn4E,OAAOhG,GAIjC,OAFAm+E,EAAgB9rF,MAAQ2N,EACxBk+E,EAAiBC,EAAiBzF,EAAU,kBACrC,WAcL,OAbIA,EAAS/8E,GACX+8E,EAAS77C,WAGX78B,EAAM04E,EAAShhE,EAAIqkB,EAEfoiD,EAAgB9rF,QAAU2N,KAC5Bm+E,EAAkB,IAAIn4E,OAAOhG,IAEb3N,MAAQ2N,EACxBk+E,EAAiBC,EAAiBzF,EAAU,mBAGvCyF,CACT,CACF,CAsCWM,CAAgC/F,GApC3C,SAA2CA,GACpCA,GAAc,OAAQA,IACzBA,EAAWuF,GAGb,IAAIliD,EAAO,EAAI28C,EAAS38C,KACpBrqB,EAAMgnE,EAAS7+D,MAAQ6+D,EAAS7+D,KAAKra,GAAKk5E,EAASnhD,GAAGzmC,OACtDqtF,EAAkBxqE,iBAAiB,UAAWjC,GAC9CgtE,EAAW/qE,iBAAiB,UAAWjC,GAG3C,OAFAysE,EAAgB9rF,MAAQqsF,EACxBR,EAAiBC,EAAiBzF,EAAU,oBACrC,WACDA,EAAS/8E,GACX+8E,EAAS77C,WAGX,IAAK,IAAIhsC,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAC5B6tF,EAAS7tF,GAAK6nF,EAAShhE,EAAE7mB,GAAKkrC,EAC9BoiD,EAAgBttF,GAAK6tF,EAAS7tF,GAGhC,OAAOstF,CACT,CACF,CAgBSQ,CAAkCjG,GAPhC8F,CAQX,CACF,CAtHkC,GAwH9BI,6BACK,SAAUt6C,GACf,SAASu6C,EAAc7oF,GACrB,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,aACL,KAAK,EACH,OAAO6oF,EAAc96C,MAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,KAAK,GACH,OAAO86C,EAAc9E,SAEvB,IAAK,gBACH,OAAO8E,EAAcC,UAEvB,IAAK,gBACH,OAAOD,EAAcE,UAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,KAAK,EACH,OAAOF,EAAchpE,SAEvB,IAAK,kBACH,OAAOgpE,EAAcG,UAEvB,IAAK,kBACH,OAAOH,EAAcI,UAEvB,IAAK,kBACH,OAAOJ,EAAcK,UAEvB,IAAK,cACL,IAAK,cACL,IAAK,eACL,IAAK,mBACL,KAAK,EACH,OAAOL,EAAc7E,YAEvB,IAAK,UACL,IAAK,UACL,KAAK,GACH,OAAO6E,EAAcj3B,QAEvB,QACE,OAAO,KAEb,CAkBA,IAAIu3B,EAEAC,EAEAC,EAEAC,EA8CJ,OApEA3tF,OAAOwB,eAAe0rF,EAAe,WAAY,CAC/ClqF,IAAKopF,4BAA4Bz5C,EAAU59B,GAAK49B,EAAU0I,MAE5Dr7C,OAAOwB,eAAe0rF,EAAe,YAAa,CAChDlqF,IAAKopF,4BAA4Bz5C,EAAU0I,IAAM1I,EAAU59B,KAE7D/U,OAAOwB,eAAe0rF,EAAe,YAAa,CAChDlqF,IAAKopF,4BAA4Bz5C,EAAUwI,MAE7Cn7C,OAAOwB,eAAe0rF,EAAe,YAAa,CAChDlqF,IAAKopF,4BAA4Bz5C,EAAUyI,MAE7Cp7C,OAAOwB,eAAe0rF,EAAe,QAAS,CAC5ClqF,IAAKopF,4BAA4Bz5C,EAAUhlC,KAWzCglC,EAAUz9B,EACZy4E,EAAoBvB,4BAA4Bz5C,EAAUz9B,IAE1Ds4E,EAAMpB,4BAA4Bz5C,EAAUpkC,IAC5Ck/E,EAAMrB,4BAA4Bz5C,EAAUsI,IAExCtI,EAAUuI,KACZwyC,EAAMtB,4BAA4Bz5C,EAAUuI,MAIhDl7C,OAAOwB,eAAe0rF,EAAe,WAAY,CAC/ClqF,IAAK,WACH,OAAI2vC,EAAUz9B,EACLy4E,IAGF,CAACH,IAAOC,IAAOC,EAAMA,IAAQ,EACtC,IAEF1tF,OAAOwB,eAAe0rF,EAAe,YAAa,CAChDlqF,IAAKopF,4BAA4Bz5C,EAAUpkC,MAE7CvO,OAAOwB,eAAe0rF,EAAe,YAAa,CAChDlqF,IAAKopF,4BAA4Bz5C,EAAUsI,MAE7Cj7C,OAAOwB,eAAe0rF,EAAe,YAAa,CAChDlqF,IAAKopF,4BAA4Bz5C,EAAUuI,MAE7Cl7C,OAAOwB,eAAe0rF,EAAe,cAAe,CAClDlqF,IAAKopF,4BAA4Bz5C,EAAU/vC,KAE7C5C,OAAOwB,eAAe0rF,EAAe,UAAW,CAC9ClqF,IAAKopF,4BAA4Bz5C,EAAU99B,KAE7C7U,OAAOwB,eAAe0rF,EAAe,OAAQ,CAC3ClqF,IAAKopF,4BAA4Bz5C,EAAUrnB,MAE7CtrB,OAAOwB,eAAe0rF,EAAe,WAAY,CAC/ClqF,IAAKopF,4BAA4Bz5C,EAAUpnB,MAE7CvrB,OAAOwB,eAAe0rF,EAAe,cAAe,CAClDlqF,IAAKopF,4BAA4Bz5C,EAAU7C,MAEtCo9C,CACT,EAGEr9B,yBAA2B,WAC7B,SAAS+9B,EAAU1vE,GACjB,IAAI2vE,EAAa,IAAIz8C,OAWrB,YATazuC,IAATub,EACe7Y,KAAKijE,MAAMlb,eAAeC,MAAMxR,eAAe39B,GAErDmvB,MAAMwgD,GAEExoF,KAAKijE,MAAMlb,eAAeC,MAChC9R,cAAcsyC,GAGtBA,CACT,CAEA,SAASC,EAAW5rE,EAAKhE,GACvB,IAAI2vE,EAAaxoF,KAAKuoF,UAAU1vE,GAIhC,OAHA2vE,EAAW5uF,MAAM,IAAM,EACvB4uF,EAAW5uF,MAAM,IAAM,EACvB4uF,EAAW5uF,MAAM,IAAM,EAChBoG,KAAK0oF,WAAWF,EAAY3rE,EACrC,CAEA,SAAS6lE,EAAQ7lE,EAAKhE,GACpB,IAAI2vE,EAAaxoF,KAAKuoF,UAAU1vE,GAChC,OAAO7Y,KAAK0oF,WAAWF,EAAY3rE,EACrC,CAEA,SAAS8rE,EAAa9rE,EAAKhE,GACzB,IAAI2vE,EAAaxoF,KAAKuoF,UAAU1vE,GAIhC,OAHA2vE,EAAW5uF,MAAM,IAAM,EACvB4uF,EAAW5uF,MAAM,IAAM,EACvB4uF,EAAW5uF,MAAM,IAAM,EAChBoG,KAAK4oF,YAAYJ,EAAY3rE,EACtC,CAEA,SAAS8lE,EAAU9lE,EAAKhE,GACtB,IAAI2vE,EAAaxoF,KAAKuoF,UAAU1vE,GAChC,OAAO7Y,KAAK4oF,YAAYJ,EAAY3rE,EACtC,CAEA,SAAS6rE,EAAWp5C,EAAQzyB,GAC1B,GAAI7c,KAAKijE,MAAMtV,WAAa3tD,KAAKijE,MAAMtV,UAAU7zD,OAAQ,CACvD,IAAID,EACA6gB,EAAM1a,KAAKijE,MAAMtV,UAAU7zD,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKijE,MAAMtV,UAAU9zD,GAAGkuD,eAAeC,MAAM9R,cAAc5G,EAE/D,CAEA,OAAOA,EAAOe,kBAAkBxzB,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,EAC5D,CAEA,SAAS+rE,EAAYt5C,EAAQzyB,GAC3B,GAAI7c,KAAKijE,MAAMtV,WAAa3tD,KAAKijE,MAAMtV,UAAU7zD,OAAQ,CACvD,IAAID,EACA6gB,EAAM1a,KAAKijE,MAAMtV,UAAU7zD,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKijE,MAAMtV,UAAU9zD,GAAGkuD,eAAeC,MAAM9R,cAAc5G,EAE/D,CAEA,OAAOA,EAAOc,aAAavzB,EAC7B,CAEA,SAAS+lE,EAAS/lE,GAChB,IAAI2rE,EAAa,IAAIz8C,OAKrB,GAJAy8C,EAAWt3E,QAEXlR,KAAKijE,MAAMlb,eAAeC,MAAM9R,cAAcsyC,GAE1CxoF,KAAKijE,MAAMtV,WAAa3tD,KAAKijE,MAAMtV,UAAU7zD,OAAQ,CACvD,IAAID,EACA6gB,EAAM1a,KAAKijE,MAAMtV,UAAU7zD,OAE/B,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBmG,KAAKijE,MAAMtV,UAAU9zD,GAAGkuD,eAAeC,MAAM9R,cAAcsyC,GAG7D,OAAOA,EAAWp4C,aAAavzB,EACjC,CAEA,OAAO2rE,EAAWp4C,aAAavzB,EACjC,CAEA,SAASgsE,IACP,MAAO,CAAC,EAAG,EAAG,EAAG,EACnB,CAEA,OAAO,SAAUryD,GACf,IAAIsyD,EAUJ,SAASnN,EAAmB38E,GAC1B,OAAQA,GACN,IAAK,0BACL,IAAK,WACL,KAAK,EACH,OAAO28E,EAAmBxwB,eAE5B,KAAK,EACL,KAAK,EACL,IAAK,YACL,IAAK,YACL,IAAK,uBACH,OAAO29B,EAET,KAAK,EACL,IAAK,qBACL,IAAK,UACL,IAAK,UACH,OAAOnN,EAAmBjpB,OAE5B,IAAK,uBACH,OAAOipB,EAAmBpwB,cAE5B,QACE,OAAO,KAEb,CAEAowB,EAAmB4M,UAAYA,EAC/B5M,EAAmBiN,YAAcA,EACjCjN,EAAmB+M,WAAaA,EAChC/M,EAAmB+G,QAAUA,EAC7B/G,EAAmB8M,WAAaA,EAChC9M,EAAmBgH,UAAYA,EAC/BhH,EAAmBgN,aAAeA,EAClChN,EAAmBkH,OAASH,EAC5B/G,EAAmBiH,SAAWA,EAC9BjH,EAAmBkN,YAAcA,EACjClN,EAAmBvzB,iBAAmB5xB,EAAK4xB,iBAAiBx9B,KAAK4L,GACjEmlD,EAAmB1Y,MAAQzsC,EAE3B,IAAIuyD,EAAwBnuE,cAD5BkuE,EAAqBlB,6BAA6BpxD,EAAKuxB,eAAeC,OACR,eAuC9D,OAtCArtD,OAAOjB,iBAAiBiiF,EAAoB,CAC1CmK,UAAW,CACTnoF,IAAK,WACH,OAAO64B,EAAKm3B,UAAU7zD,MACxB,GAEFkpD,OAAQ,CACNrlD,IAAK,WACH,OAAO64B,EAAKm3B,UAAU,GAAG9C,cAC3B,GAEFk4B,SAAUnoE,cAAckuE,EAAoB,YAC5C/7C,MAAOnyB,cAAckuE,EAAoB,SACzCjqE,SAAUjE,cAAckuE,EAAoB,YAC5Cl4B,QAASh2C,cAAckuE,EAAoB,WAC3C9F,YAAa+F,EACbC,aAAcD,EACdz7C,UAAW,CACT3vC,IAAK,WACH,OAAOmrF,CACT,GAEFtF,OAAQ,CACN7lF,IAAK,WACH,OAAO64B,EAAK6wB,SACd,KAGJs0B,EAAmB/sE,UAAY4nB,EAAK3T,KAAKkD,GACzC41D,EAAmB9+E,MAAQ25B,EAAK3T,KAAKwe,IACrCs6C,EAAmBjhF,OAAS87B,EAAK3T,KAAKwB,MACtCs3D,EAAmB5qE,OAA0B,IAAjBylB,EAAK3T,KAAKsB,GAAWqS,EAAK3T,KAAKlT,EAAI,IAC/DgsE,EAAmBtyD,MAAyB,IAAjBmN,EAAK3T,KAAKsB,GAAWqS,EAAK3T,KAAKlf,EAAI,IAC9Dg4E,EAAmBwG,QAAU3rD,EAAK3T,KAAKgD,GAAK2Q,EAAK/R,KAAKgM,WAAW9B,UACjEgtD,EAAmByG,SAAW5rD,EAAK3T,KAAKiD,GAAK0Q,EAAK/R,KAAKgM,WAAW9B,UAClEgtD,EAAmBsN,MAAQzyD,EAAK3T,KAAKiL,GACrC6tD,EAAmB5wB,sBAtFnB,SAAgCD,GAC9B6wB,EAAmBjsB,KAAO,IAAIg3B,qBAAqB57B,EAAat0B,EAClE,EAqFAmlD,EAAmBzwB,yBAnFnB,SAAmChC,GACjCyyB,EAAmBjpB,OAASxJ,CAC9B,EAkFOyyB,CACT,CACF,CAzL+B,GA2L3BuN,qBACK,SAAUC,EAAmBC,GAClC,OAAO,SAAUpgF,GAGf,OAFAA,OAAc1L,IAAR0L,EAAoB,EAAIA,IAEnB,EACFmgF,EAGFC,EAAoBpgF,EAAM,EACnC,CACF,EAGEqgF,kBACK,SAAUC,EAAc/B,GAC7B,IAAI4B,EAAoB,CACtBF,MAAOK,GAaT,OAVA,SAAwBtgF,GAGtB,OAFAA,OAAc1L,IAAR0L,EAAoB,EAAIA,IAEnB,EACFmgF,EAGF5B,EAAcv+E,EAAM,EAC7B,CAGF,EAGEyhD,2BAA6B,WA4C/B,SAAS8+B,EAAqB1mE,EAAM07B,EAAUgpC,EAAe/wD,GAC3D,SAASgzD,EAAexqF,GAKtB,IAJA,IAAIkqD,EAAUrmC,EAAKsmC,GACftvD,EAAI,EACJ6gB,EAAMwuC,EAAQpvD,OAEXD,EAAI6gB,GAAK,CACd,GAAI1b,IAASkqD,EAAQrvD,GAAGi0B,IAAM9uB,IAASkqD,EAAQrvD,GAAG4vF,IAAMzqF,IAASkqD,EAAQrvD,GAAGulD,GAC1E,OAAsB,IAAlB8J,EAAQrvD,GAAGsqB,GACNilC,EAAevvD,GAGjBuvD,EAAevvD,KAGxBA,GAAK,CACP,CAEA,MAAM,IAAI4Z,KACZ,CAEA,IAGI5Z,EAHA6vF,EAAiBR,qBAAqBM,EAAgBjC,GAEtDn+B,EAAiB,GAEjB1uC,EAAMmI,EAAKsmC,GAAGrvD,OAElB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACF,IAAlBgpB,EAAKsmC,GAAGtvD,GAAGsqB,GACbilC,EAAe5qD,KAAK+qF,EAAqB1mE,EAAKsmC,GAAGtvD,GAAI0kD,EAAS6K,eAAevvD,GAAI0kD,EAAS6K,eAAevvD,GAAG0tF,cAAe/wD,IAE3H4yB,EAAe5qD,KAAKmrF,EAAqBprC,EAAS6K,eAAevvD,GAAIgpB,EAAKsmC,GAAGtvD,GAAGsqB,GAAIqS,EAAMkzD,IA2B9F,MAvBgB,uBAAZ7mE,EAAK4mE,IACP9uF,OAAOwB,eAAeqtF,EAAgB,QAAS,CAC7C7rF,IAAK,WACH,OAAOyrD,EAAe,IACxB,IAIJzuD,OAAOjB,iBAAiB8vF,EAAgB,CACtCI,cAAe,CACbjsF,IAAK,WACH,OAAOklB,EAAKgnE,EACd,GAEFZ,MAAO,CACL5tF,MAAOwnB,EAAKiL,IAEdy5D,cAAe,CACblsF,MAAOquF,KAGXF,EAAeM,QAAsB,IAAZjnE,EAAKknE,GAC9BP,EAAehG,OAASgG,EAAeM,QAChCN,CACT,CAEA,SAASG,EAAqB/qE,EAAS7f,EAAMy3B,EAAM+wD,GACjD,IAAIyC,EAAqBjD,4BAA4BnoE,EAAQ/O,GAc7D,OAJI+O,EAAQ/O,EAAEo6E,kBACZrrE,EAAQ/O,EAAEo6E,iBAAiBZ,kBAAkB,GAAI9B,IATnD,WACE,OAAa,KAATxoF,EACKy3B,EAAK/R,KAAKyJ,cAActP,EAAQ/O,EAAE6Q,GAGpCspE,GACT,CAOF,CAEA,MA1HS,CACP/+B,uBAGF,SAAgCz0B,EAAM+wD,GACpC,GAAI/wD,EAAKs1B,eAAgB,CACvB,IAEIjyD,EAFAuvD,EAAiB,GACjB8gC,EAAc1zD,EAAK3T,KAAKsmC,GAExBzuC,EAAM8b,EAAKs1B,eAAe1C,eAAetvD,OAE7C,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxBuvD,EAAe5qD,KAAK+qF,EAAqBW,EAAYrwF,GAAI28B,EAAKs1B,eAAe1C,eAAevvD,GAAI0tF,EAAe/wD,IAGjH,IAAI0yB,EAAU1yB,EAAK3T,KAAKsmC,IAAM,GAE1BqgC,EAAiB,SAAwBxqF,GAI3C,IAHAnF,EAAI,EACJ6gB,EAAMwuC,EAAQpvD,OAEPD,EAAI6gB,GAAK,CACd,GAAI1b,IAASkqD,EAAQrvD,GAAGi0B,IAAM9uB,IAASkqD,EAAQrvD,GAAG4vF,IAAMzqF,IAASkqD,EAAQrvD,GAAGulD,GAC1E,OAAOgK,EAAevvD,GAGxBA,GAAK,CACP,CAEA,OAAO,IACT,EAOA,OALAc,OAAOwB,eAAeqtF,EAAgB,gBAAiB,CACrD7rF,IAAK,WACH,OAAOurD,EAAQpvD,MACjB,IAEK0vF,CACT,CAEA,OAAO,IACT,EAkFF,CA5HiC,GA8H7BW,mBACK,SAA8BliD,EAAOmiD,EAAM7C,GAChD,IAAI1sE,EAAOuvE,EAAKhoD,GAEhB,SAAS+mD,EAAkBngF,GACzB,MAAY,UAARA,GAA2B,UAARA,GAA2B,SAARA,GAA0B,SAARA,GAA0B,sBAARA,GAAuC,IAARA,EACpGmgF,EAAkBvmE,KAGpB,IACT,CAEA,IAAI8mE,EAAiBR,qBAAqBC,EAAmB5B,GAsC7D,OApCA1sE,EAAKovE,iBAAiBZ,kBAAkB,OAAQK,IAChD/uF,OAAOjB,iBAAiByvF,EAAmB,CACzCvmE,KAAM,CACJjlB,IAAK,WAKH,OAJIkd,EAAKlW,GACPkW,EAAKgrB,WAGAhrB,CACT,GAEFotB,MAAO,CACLtqC,IAAK,WAKH,OAJIkd,EAAKlW,GACPkW,EAAKgrB,WAGAhrB,CACT,GAEFouE,MAAO,CACL5tF,MAAO4sC,EAAMna,IAEfsxB,GAAI,CACF/jD,MAAO4sC,EAAMmX,IAEfirC,cAAe,CACbhvF,MAAO4sC,EAAMmX,IAEfqqC,GAAI,CACFpuF,MAAO4sC,EAAMwhD,IAEflC,cAAe,CACblsF,MAAOksF,KAGJ4B,CACT,EAGEz+B,yBAA2B,WAC7B,SAAS4/B,EAAgB/lE,EAAQ6lE,EAAM7C,GACrC,IACI1tF,EADAgjB,EAAM,GAENnC,EAAM6J,EAASA,EAAOzqB,OAAS,EAEnC,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACH,OAAjB0qB,EAAO1qB,GAAGsqB,GACZtH,EAAIre,KAAK+rF,EAAsBhmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IACzB,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKgsF,EAAqBjmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IACxB,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKisF,EAAuBlmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IAC1B,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKksF,EAAqBnmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IACxB,OAAjBhjE,EAAO1qB,GAAGsqB,KACO,OAAjBI,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKmsF,EAAwBpmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IAC3B,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKosF,EAAqBrmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IACxB,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAK2rF,mBAAmB5lE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IACtB,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKqsF,EAAqBtmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IACxB,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKssF,EAAwBvmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IAC3B,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKusF,EAAyBxmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IAC5B,OAAjBhjE,EAAO1qB,GAAGsqB,GACnBtH,EAAIre,KAAKwsF,EAA6BzmE,EAAO1qB,GAAIuwF,EAAKvwF,GAAI0tF,IAE1D1qE,EAAIre,MAA6B+lB,EAAO1qB,GAAIuwF,EAAKvwF,GAuJrD,WACE,OAAO,IACT,KArJA,OAAOgjB,CACT,CAkCA,SAAS0tE,EAAsBtiD,EAAOmiD,EAAM7C,GAC1C,IAAI4B,EAAoB,SAA4B9tF,GAClD,OAAQA,GACN,IAAK,qBACL,IAAK,WACL,KAAK,EACH,OAAO8tF,EAAkB79B,QAK3B,QACE,OAAO69B,EAAkB77C,UAE/B,EAEA67C,EAAkB5B,cAAgB2B,qBAAqBC,EAAmB5B,GAC1E,IAAIj8B,EAjDN,SAAkCrjB,EAAOmiD,EAAM7C,GAC7C,IAAI0D,EAEA9B,EAAoB,SAA4B9tF,GAIlD,IAHA,IAAIxB,EAAI,EACJ6gB,EAAMuwE,EAAWnxF,OAEdD,EAAI6gB,GAAK,CACd,GAAIuwE,EAAWpxF,GAAGovF,QAAU5tF,GAAS4vF,EAAWpxF,GAAG4vF,KAAOpuF,GAAS4vF,EAAWpxF,GAAGwwF,gBAAkBhvF,GAAS4vF,EAAWpxF,GAAGulD,KAAO/jD,GAAS4vF,EAAWpxF,GAAGwnC,MAAQhmC,EAC9J,OAAO4vF,EAAWpxF,GAGpBA,GAAK,CACP,CAEA,MAAqB,kBAAVwB,EACF4vF,EAAW5vF,EAAQ,GAGrB,IACT,EAEA8tF,EAAkB5B,cAAgB2B,qBAAqBC,EAAmB5B,GAC1E0D,EAAaX,EAAgBriD,EAAMhsC,GAAImuF,EAAKnuF,GAAIktF,EAAkB5B,eAClE4B,EAAkBS,cAAgBqB,EAAWnxF,OAC7C,IAAIgvF,EAAqBoC,EAA0BjjD,EAAMhsC,GAAGgsC,EAAMhsC,GAAGnC,OAAS,GAAIswF,EAAKnuF,GAAGmuF,EAAKnuF,GAAGnC,OAAS,GAAIqvF,EAAkB5B,eAIjI,OAHA4B,EAAkB77C,UAAYw7C,EAC9BK,EAAkBkB,cAAgBpiD,EAAMkjD,IACxChC,EAAkBF,MAAQhhD,EAAMna,GACzBq7D,CACT,CAmBgBiC,CAAyBnjD,EAAOmiD,EAAMjB,EAAkB5B,eAClEuB,EAAqBoC,EAA0BjjD,EAAMhsC,GAAGgsC,EAAMhsC,GAAGnC,OAAS,GAAIswF,EAAKnuF,GAAGmuF,EAAKnuF,GAAGnC,OAAS,GAAIqvF,EAAkB5B,eAajI,OAZA4B,EAAkB79B,QAAUA,EAC5B69B,EAAkB77C,UAAYw7C,EAC9BnuF,OAAOwB,eAAegtF,EAAmB,QAAS,CAChDxrF,IAAK,WACH,OAAOsqC,EAAMna,EACf,IAGFq7D,EAAkBS,cAAgB3hD,EAAM4hD,GACxCV,EAAkBkB,cAAgBpiD,EAAMmX,GACxC+pC,EAAkBr7D,GAAKma,EAAMna,GAC7Bq7D,EAAkBM,GAAKxhD,EAAMwhD,GACtBN,CACT,CAEA,SAASqB,EAAqBviD,EAAOmiD,EAAM7C,GACzC,SAAS4B,EAAkBngF,GACzB,MAAY,UAARA,GAA2B,UAARA,EACdmgF,EAAkBpoE,MAGf,YAAR/X,GAA6B,YAARA,EAChBmgF,EAAkBv4B,QAGpB,IACT,CAkBA,OAhBAj2D,OAAOjB,iBAAiByvF,EAAmB,CACzCpoE,MAAO,CACLpjB,IAAKopF,4BAA4BqD,EAAK3sF,IAExCmzD,QAAS,CACPjzD,IAAKopF,4BAA4BqD,EAAK56E,IAExCy5E,MAAO,CACL5tF,MAAO4sC,EAAMna,IAEf27D,GAAI,CACFpuF,MAAO4sC,EAAMwhD,MAGjBW,EAAK3sF,EAAEwsF,iBAAiBZ,kBAAkB,QAAS9B,IACnD6C,EAAK56E,EAAEy6E,iBAAiBZ,kBAAkB,UAAW9B,IAC9C4B,CACT,CAEA,SAAS6B,EAA6B/iD,EAAOmiD,EAAM7C,GACjD,SAAS4B,EAAkBngF,GACzB,MAAY,gBAARA,GAAiC,gBAARA,EACpBmgF,EAAkBkC,WAGf,cAARriF,GAA+B,cAARA,EAClBmgF,EAAkBmC,SAGf,YAARtiF,GAA6B,YAARA,EAChBmgF,EAAkBv4B,QAGpB,IACT,CA2BA,OAzBAj2D,OAAOjB,iBAAiByvF,EAAmB,CACzCkC,WAAY,CACV1tF,IAAKopF,4BAA4BqD,EAAK9hF,IAExCgjF,SAAU,CACR3tF,IAAKopF,4BAA4BqD,EAAK9pF,IAExCswD,QAAS,CACPjzD,IAAKopF,4BAA4BqD,EAAK56E,IAExCzQ,KAAM,CACJpB,IAAK,WACH,MAAO,GACT,GAEFsrF,MAAO,CACL5tF,MAAO4sC,EAAMna,IAEf27D,GAAI,CACFpuF,MAAO4sC,EAAMwhD,MAGjBW,EAAK9hF,EAAE2hF,iBAAiBZ,kBAAkB,cAAe9B,IACzD6C,EAAK9pF,EAAE2pF,iBAAiBZ,kBAAkB,YAAa9B,IACvD6C,EAAK56E,EAAEy6E,iBAAiBZ,kBAAkB,UAAW9B,IAC9C4B,CACT,CAUA,SAASsB,EAAuBxiD,EAAOmiD,EAAM7C,GAC3C,IAUI1tF,EAVA6vF,EAAiBR,qBAAqBC,EAAmB5B,GAEzDgE,EAAqBrC,qBAAqBsC,EAAQ9B,GAEtD,SAAS+B,EAAoB5xF,GAC3Bc,OAAOwB,eAAeqvF,EAAQvjD,EAAMpnB,EAAEhnB,GAAGi0B,GAAI,CAC3CnwB,IAAKopF,4BAA4BqD,EAAKvpE,EAAEg2C,UAAUh9D,GAAGgW,IAEzD,CAGA,IAAI6K,EAAMutB,EAAMpnB,EAAIonB,EAAMpnB,EAAE/mB,OAAS,EACjC0xF,EAAS,CAAC,EAEd,IAAK3xF,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB4xF,EAAoB5xF,GACpBuwF,EAAKvpE,EAAEg2C,UAAUh9D,GAAGgW,EAAEo6E,iBAAiBsB,GAGzC,SAASpC,EAAkBngF,GACzB,MAAY,UAARA,GAA2B,UAARA,EACdmgF,EAAkBpoE,MAGf,YAAR/X,GAA6B,YAARA,EAChBmgF,EAAkBv4B,QAGf,iBAAR5nD,GAAkC,iBAARA,EACrBmgF,EAAkBxQ,YAGpB,IACT,CA2BA,OAzBAh+E,OAAOjB,iBAAiByvF,EAAmB,CACzCpoE,MAAO,CACLpjB,IAAKopF,4BAA4BqD,EAAK3sF,IAExCmzD,QAAS,CACPjzD,IAAKopF,4BAA4BqD,EAAK56E,IAExCmpE,YAAa,CACXh7E,IAAKopF,4BAA4BqD,EAAKzmF,IAExC+nF,KAAM,CACJ/tF,IAAK,WACH,OAAO6tF,CACT,GAEFvC,MAAO,CACL5tF,MAAO4sC,EAAMna,IAEf27D,GAAI,CACFpuF,MAAO4sC,EAAMwhD,MAGjBW,EAAK3sF,EAAEwsF,iBAAiBZ,kBAAkB,QAASK,IACnDU,EAAK56E,EAAEy6E,iBAAiBZ,kBAAkB,UAAWK,IACrDU,EAAKzmF,EAAEsmF,iBAAiBZ,kBAAkB,eAAgBK,IACnDP,CACT,CAEA,SAASuB,EAAqBziD,EAAOmiD,EAAM7C,GACzC,SAAS4B,EAAkBngF,GACzB,OAAIA,IAAQi/B,EAAM3nC,EAAE8+C,IAAc,QAARp2C,GAAyB,QAARA,EAClCmgF,EAAkBt0D,IAGvB7rB,IAAQi/B,EAAM3/B,EAAE82C,GACX+pC,EAAkBl4E,MAGvBjI,IAAQi/B,EAAMz4B,EAAE4vC,GACX+pC,EAAkBnoE,OAGpB,IACT,CAEA,IAAI0oE,EAAiBR,qBAAqBC,EAAmB5B,GAuB7D,OArBA4B,EAAkBkB,cAAgBpiD,EAAMmX,GACxCgrC,EAAK9hF,EAAE2hF,iBAAiBZ,kBAAkB,QAASK,IACnDU,EAAK9pF,EAAE2pF,iBAAiBZ,kBAAkB,MAAOK,IACjDU,EAAK56E,EAAEy6E,iBAAiBZ,kBAAkB,SAAUK,IACpDP,EAAkBkB,cAAgBpiD,EAAMmX,GACxC+pC,EAAkB5B,cAAgBA,EAClC5sF,OAAOjB,iBAAiByvF,EAAmB,CACzCl4E,MAAO,CACLtT,IAAKopF,4BAA4BqD,EAAK9hF,IAExCusB,IAAK,CACHl3B,IAAKopF,4BAA4BqD,EAAK9pF,IAExC0gB,OAAQ,CACNrjB,IAAKopF,4BAA4BqD,EAAK56E,IAExCy5E,MAAO,CACL5tF,MAAO4sC,EAAMna,MAGjBq7D,EAAkBM,GAAKxhD,EAAMwhD,GACtBN,CACT,CAEA,SAAS+B,EAA0BjjD,EAAOmiD,EAAM7C,GAC9C,SAAS4B,EAAkB9tF,GACzB,OAAI4sC,EAAM1qC,EAAE6hD,KAAO/jD,GAAmB,iBAAVA,EACnB8tF,EAAkBnG,YAGvB/6C,EAAMz4B,EAAE4vC,KAAO/jD,GAAmB,YAAVA,EACnB8tF,EAAkBv4B,QAGvB3oB,EAAMp4B,EAAEuvC,KAAO/jD,GAAmB,aAAVA,EACnB8tF,EAAkBtqE,SAGvBopB,EAAMv4B,EAAE0vC,KAAO/jD,GAAmB,aAAVA,GAAkC,yBAAVA,EAC3C8tF,EAAkBpG,SAGvB96C,EAAM3/B,EAAE82C,KAAO/jD,GAAmB,UAAVA,EACnB8tF,EAAkBp8C,MAGvB9E,EAAMhiB,IAAMgiB,EAAMhiB,GAAGm5B,KAAO/jD,GAAmB,SAAVA,EAChC8tF,EAAkBt8C,KAGvB5E,EAAM/hB,IAAM+hB,EAAM/hB,GAAGk5B,KAAO/jD,GAAmB,cAAVA,EAChC8tF,EAAkBwC,SAGpB,IACT,CAEA,IAAIjC,EAAiBR,qBAAqBC,EAAmB5B,GA2C7D,OAzCA6C,EAAK98C,UAAUwS,OAAOtwC,EAAEy6E,iBAAiBZ,kBAAkB,UAAWK,IACtEU,EAAK98C,UAAUwS,OAAOjwC,EAAEo6E,iBAAiBZ,kBAAkB,WAAYK,IACvEU,EAAK98C,UAAUwS,OAAOviD,EAAE0sF,iBAAiBZ,kBAAkB,eAAgBK,IAC3EU,EAAK98C,UAAUwS,OAAOx3C,EAAE2hF,iBAAiBZ,kBAAkB,QAASK,IACpEU,EAAK98C,UAAUwS,OAAOpwC,EAAEu6E,iBAAiBZ,kBAAkB,WAAYK,IAEnEU,EAAK98C,UAAUwS,OAAO75B,KACxBmkE,EAAK98C,UAAUwS,OAAO75B,GAAGgkE,iBAAiBZ,kBAAkB,OAAQK,IACpEU,EAAK98C,UAAUwS,OAAO55B,GAAG+jE,iBAAiBZ,kBAAkB,aAAcK,KAG5EU,EAAK98C,UAAUxnB,GAAGmkE,iBAAiBZ,kBAAkB,UAAWK,IAChE/uF,OAAOjB,iBAAiByvF,EAAmB,CACzCv4B,QAAS,CACPjzD,IAAKopF,4BAA4BqD,EAAK98C,UAAUwS,OAAOtwC,IAEzDqP,SAAU,CACRlhB,IAAKopF,4BAA4BqD,EAAK98C,UAAUwS,OAAOjwC,IAEzDmzE,YAAa,CACXrlF,IAAKopF,4BAA4BqD,EAAK98C,UAAUwS,OAAOviD,IAEzDwvC,MAAO,CACLpvC,IAAKopF,4BAA4BqD,EAAK98C,UAAUwS,OAAOx3C,IAEzDy6E,SAAU,CACRplF,IAAKopF,4BAA4BqD,EAAK98C,UAAUwS,OAAOpwC,IAEzDm9B,KAAM,CACJlvC,IAAKopF,4BAA4BqD,EAAK98C,UAAUwS,OAAO75B,KAEzD0lE,SAAU,CACRhuF,IAAKopF,4BAA4BqD,EAAK98C,UAAUwS,OAAO55B,KAEzD+iE,MAAO,CACL5tF,MAAO4sC,EAAMna,MAGjBq7D,EAAkBhlE,GAAK,KACvBglE,EAAkBM,GAAKxhD,EAAMwhD,GAC7BN,EAAkB5B,cAAgBA,EAC3B4B,CACT,CAEA,SAASwB,EAAwB1iD,EAAOmiD,EAAM7C,GAC5C,SAAS4B,EAAkB9tF,GACzB,OAAI4sC,EAAMp4B,EAAEuvC,KAAO/jD,EACV8tF,EAAkBtqE,SAGvBopB,EAAM3/B,EAAE82C,KAAO/jD,EACV8tF,EAAkBxnC,KAGpB,IACT,CAEA,IAAI+nC,EAAiBR,qBAAqBC,EAAmB5B,GAE7D4B,EAAkBkB,cAAgBpiD,EAAMmX,GACxC,IAAIvkC,EAAsB,OAAfuvE,EAAKhoD,GAAGje,GAAcimE,EAAKhoD,GAAGvnB,KAAOuvE,EAAKhoD,GAerD,OAdAvnB,EAAKvS,EAAE2hF,iBAAiBZ,kBAAkB,OAAQK,IAClD7uE,EAAKhL,EAAEo6E,iBAAiBZ,kBAAkB,WAAYK,IACtD/uF,OAAOjB,iBAAiByvF,EAAmB,CACzCxnC,KAAM,CACJhkD,IAAKopF,4BAA4BlsE,EAAKvS,IAExCuW,SAAU,CACRlhB,IAAKopF,4BAA4BlsE,EAAKhL,IAExCo5E,MAAO,CACL5tF,MAAO4sC,EAAMna,MAGjBq7D,EAAkBM,GAAKxhD,EAAMwhD,GACtBN,CACT,CAEA,SAASyB,EAAqB3iD,EAAOmiD,EAAM7C,GACzC,SAAS4B,EAAkB9tF,GACzB,OAAI4sC,EAAMp4B,EAAEuvC,KAAO/jD,EACV8tF,EAAkBtqE,SAGvBopB,EAAMv4B,EAAE0vC,KAAO/jD,EACV8tF,EAAkBpG,SAGvB96C,EAAMhkB,GAAGm7B,KAAO/jD,EACX8tF,EAAkB1wD,OAGvBwP,EAAMwC,GAAG2U,KAAO/jD,GAAmB,kCAAVA,EACpB8tF,EAAkByC,YAGvB3jD,EAAMyC,GAAG0U,KAAO/jD,EACX8tF,EAAkB0C,gBAGvB5jD,EAAMoC,IAAOpC,EAAMoC,GAAG+U,KAAO/jD,GAAmB,kCAAVA,EAItC4sC,EAAMpqC,IAAMoqC,EAAMpqC,GAAGuhD,KAAO/jD,EACvB8tF,EAAkB2C,eAGpB,KAPE3C,EAAkB4C,WAQ7B,CAEA,IAAIrC,EAAiBR,qBAAqBC,EAAmB5B,GAEzD1sE,EAAsB,OAAfuvE,EAAKhoD,GAAGje,GAAcimE,EAAKhoD,GAAGvnB,KAAOuvE,EAAKhoD,GAwCrD,OAvCA+mD,EAAkBkB,cAAgBpiD,EAAMmX,GACxCvkC,EAAK4vB,GAAGw/C,iBAAiBZ,kBAAkB,eAAgBK,IAC3D7uE,EAAK6vB,GAAGu/C,iBAAiBZ,kBAAkB,kBAAmBK,IAC9D7uE,EAAKoJ,GAAGgmE,iBAAiBZ,kBAAkB,SAAUK,IACrD7uE,EAAKhL,EAAEo6E,iBAAiBZ,kBAAkB,WAAYK,IACtD7uE,EAAKnL,EAAEu6E,iBAAiBZ,kBAAkB,WAAYK,IAElDzhD,EAAMoC,KACRxvB,EAAKwvB,GAAG4/C,iBAAiBZ,kBAAkB,eAAgBK,IAC3D7uE,EAAKhd,GAAGosF,iBAAiBZ,kBAAkB,kBAAmBK,KAGhE/uF,OAAOjB,iBAAiByvF,EAAmB,CACzCtqE,SAAU,CACRlhB,IAAKopF,4BAA4BlsE,EAAKhL,IAExCkzE,SAAU,CACRplF,IAAKopF,4BAA4BlsE,EAAKnL,IAExC+oB,OAAQ,CACN96B,IAAKopF,4BAA4BlsE,EAAKoJ,KAExC2nE,YAAa,CACXjuF,IAAKopF,4BAA4BlsE,EAAK4vB,KAExCohD,eAAgB,CACdluF,IAAKopF,4BAA4BlsE,EAAK6vB,KAExCqhD,YAAa,CACXpuF,IAAKopF,4BAA4BlsE,EAAKwvB,KAExCyhD,eAAgB,CACdnuF,IAAKopF,4BAA4BlsE,EAAKhd,KAExCorF,MAAO,CACL5tF,MAAO4sC,EAAMna,MAGjBq7D,EAAkBM,GAAKxhD,EAAMwhD,GACtBN,CACT,CAEA,SAAS0B,EAAqB5iD,EAAOmiD,EAAM7C,GACzC,SAAS4B,EAAkB9tF,GACzB,OAAI4sC,EAAMp4B,EAAEuvC,KAAO/jD,EACV8tF,EAAkBtqE,SAGvBopB,EAAMv4B,EAAE0vC,KAAO/jD,EACV8tF,EAAkBv+C,UAGvB3C,EAAM3/B,EAAE82C,KAAO/jD,GAAmB,SAAVA,GAA8B,0BAAVA,EACvC8tF,EAAkBxnC,KAGpB,IACT,CAEA,IAAI+nC,EAAiBR,qBAAqBC,EAAmB5B,GAEzD1sE,EAAsB,OAAfuvE,EAAKhoD,GAAGje,GAAcimE,EAAKhoD,GAAGvnB,KAAOuvE,EAAKhoD,GAoBrD,OAnBA+mD,EAAkBkB,cAAgBpiD,EAAMmX,GACxCvkC,EAAKhL,EAAEo6E,iBAAiBZ,kBAAkB,WAAYK,IACtD7uE,EAAKvS,EAAE2hF,iBAAiBZ,kBAAkB,OAAQK,IAClD7uE,EAAKnL,EAAEu6E,iBAAiBZ,kBAAkB,WAAYK,IACtD/uF,OAAOjB,iBAAiByvF,EAAmB,CACzCtqE,SAAU,CACRlhB,IAAKopF,4BAA4BlsE,EAAKhL,IAExC+6B,UAAW,CACTjtC,IAAKopF,4BAA4BlsE,EAAKnL,IAExCiyC,KAAM,CACJhkD,IAAKopF,4BAA4BlsE,EAAKvS,IAExC2gF,MAAO,CACL5tF,MAAO4sC,EAAMna,MAGjBq7D,EAAkBM,GAAKxhD,EAAMwhD,GACtBN,CACT,CAEA,SAAS2B,EAAwB7iD,EAAOmiD,EAAM7C,GAC5C,SAAS4B,EAAkB9tF,GACzB,OAAI4sC,EAAMv4B,EAAE0vC,KAAO/jD,GAAmB,oBAAVA,EACnB8tF,EAAkBltC,OAGpB,IACT,CAEA,IAAIytC,EAAiBR,qBAAqBC,EAAmB5B,GAEzD1sE,EAAOuvE,EAYX,OAXAjB,EAAkBkB,cAAgBpiD,EAAMmX,GACxCvkC,EAAKklC,GAAGkqC,iBAAiBZ,kBAAkB,SAAUK,IACrD/uF,OAAOjB,iBAAiByvF,EAAmB,CACzCltC,OAAQ,CACNt+C,IAAKopF,4BAA4BlsE,EAAKklC,KAExCkpC,MAAO,CACL5tF,MAAO4sC,EAAMna,MAGjBq7D,EAAkBM,GAAKxhD,EAAMwhD,GACtBN,CACT,CAEA,SAAS4B,EAAyB9iD,EAAOmiD,EAAM7C,GAC7C,SAAS4B,EAAkB9tF,GACzB,OAAI4sC,EAAMxqC,EAAE2hD,KAAO/jD,GAAmB,WAAVA,EACnB8tF,EAAkBjqC,OAGvBjX,EAAMz4B,EAAE4vC,KAAO/jD,GAAmB,WAAVA,EACnB8tF,EAAkBnoE,OAGpB,IACT,CAEA,IAAI0oE,EAAiBR,qBAAqBC,EAAmB5B,GAEzD1sE,EAAOuvE,EAgBX,OAfAjB,EAAkBkB,cAAgBpiD,EAAMmX,GACxCvkC,EAAKpd,EAAEwsF,iBAAiBZ,kBAAkB,SAAUK,IACpD7uE,EAAKrL,EAAEy6E,iBAAiBZ,kBAAkB,SAAUK,IACpD/uF,OAAOjB,iBAAiByvF,EAAmB,CACzCjqC,OAAQ,CACNvhD,IAAKopF,4BAA4BlsE,EAAKpd,IAExCujB,OAAQ,CACNrjB,IAAKopF,4BAA4BlsE,EAAKrL,IAExCy5E,MAAO,CACL5tF,MAAO4sC,EAAMna,MAGjBq7D,EAAkBM,GAAKxhD,EAAMwhD,GACtBN,CACT,CAEA,OAAO,SAAU5kE,EAAQ6lE,EAAM7C,GAC7B,IAAI0D,EAEJ,SAASe,EAAmB3wF,GAC1B,GAAqB,kBAAVA,EAGT,OAAc,KAFdA,OAAkBiC,IAAVjC,EAAsB,EAAIA,GAGzBksF,EAGF0D,EAAW5vF,EAAQ,GAM5B,IAHA,IAAIxB,EAAI,EACJ6gB,EAAMuwE,EAAWnxF,OAEdD,EAAI6gB,GAAK,CACd,GAAIuwE,EAAWpxF,GAAGovF,QAAU5tF,EAC1B,OAAO4vF,EAAWpxF,GAGpBA,GAAK,CACP,CAEA,OAAO,IACT,CAUA,OAJAmyF,EAAmBzE,cAAgB2B,qBAAqB8C,GAJxD,WACE,OAAOzE,CACT,IAGA0D,EAAaX,EAAgB/lE,EAAQ6lE,EAAM4B,EAAmBzE,eAC9DyE,EAAmBpC,cAAgBqB,EAAWnxF,OAC9CkyF,EAAmB/C,MAAQ,WACpB+C,CACT,CACF,CAnnB+B,GAqnB3BrhC,wBACK,SAAUn0B,GACf,IAAIy1D,EAEJ,SAAStQ,EAAmB38E,GAC1B,MACO,uBADCA,EAEG28E,EAAmBuQ,WAGnB,IAEb,CAyBA,OAvBAvxF,OAAOwB,eAAew/E,EAAoB,aAAc,CACtDh+E,IAAK,WACH64B,EAAKwrC,aAAan8B,WAClB,IAAIsmD,EAAc31D,EAAKwrC,aAAavG,YAAYvuD,EAiBhD,OAfK++E,GAAeE,IAAgBF,EAAY5wF,SAC9C4wF,EAAc,IAAI1jF,OAAO4jF,IAGb9wF,MAAQ8wF,GAAe,IAAI5jF,OAAO4jF,GAE9CxxF,OAAOwB,eAAe8vF,EAAa,QAAS,CAC1CtuF,IAAK,WACH,MAAO,CACLyuF,UAAW51D,EAAKwrC,aAAavG,YAAYN,GAE7C,KAIG8wB,CACT,IAEKtQ,CACT,EAGF,SAAS//E,QAAQtC,GAAmV,OAAtOsC,QAArD,oBAAX4I,QAAoD,kBAApBA,OAAOoH,SAAmC,SAAiBtS,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXkL,QAAyBlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAAK,EAAYsC,QAAQtC,EAAM,CAEzX,IAAI8yD,iBAAmB,WACrB,IAyCIigC,EAAuB,SAA8B71D,GACvD,SAAS2yD,EAAkB9tF,GACzB,MAAc,YAAVA,EACK8tF,EAAkBmD,mBAGpB,IACT,CAIA,OAFAnD,EAAkBF,MAAQ,UAC1BE,EAAkBmD,iBAnDU,SAAiC91D,GAC7D,IAAI+1D,EAAsB,GACtBC,EAAkBh2D,EAAK61B,iBAQ3B,SAASqQ,EAAerhE,GACtB,GAAImxF,EAAgBnxF,GAIlB,OAHAkxF,EAAsBlxF,EAGW,WAA7BO,QAFJ4wF,EAAkBA,EAAgBnxF,IAGzBqhE,EAGF8vB,EAGT,IAAIC,EAAoBpxF,EAAMgsB,QAAQklE,GAEtC,IAA2B,IAAvBE,EAA0B,CAC5B,IAAI5vF,EAAQua,SAAS/b,EAAM21B,OAAOy7D,EAAoBF,EAAoBzyF,QAAS,IAGnF,MAAiC,WAA7B8B,QAFJ4wF,EAAkBA,EAAgB3vF,IAGzB6/D,EAGF8vB,CACT,CAEA,MAAO,EACT,CAEA,OAlCA,WAGE,OAFAD,EAAsB,GACtBC,EAAkBh2D,EAAK61B,iBAChBqQ,CACT,CA+BF,CAYuCgwB,CAAwBl2D,GACtD2yD,CACT,EAEA,OAAO,SAAU3yD,GACf,SAASw1D,EAAmB3wF,GAC1B,MAAc,SAAVA,EACK2wF,EAAmBW,cAGrB,IACT,CAIA,OAFAX,EAAmB/C,MAAQ,OAC3B+C,EAAmBW,cAAgBN,EAAqB71D,GACjDw1D,CACT,CACF,CArEuB,GAuEnBf,WAAa,CACfp+B,MAAOrC,yBACPtB,QAASuB,2BACThmC,KAAMmmC,wBACN3iB,MAAOyiB,yBACP/G,KAAMgH,wBACNiiC,QAASxgC,kBAGX,SAASygC,aAAa9tF,GACpB,OAAOksF,WAAWlsF,IAAS,IAC7B,CAEA,IAAI+tF,kBAgFK,CACLC,kBAhFF,SAA2Bv2D,EAAM3T,EAAMhI,GACjCgI,EAAKgW,IACPhe,EAAKlW,GAAI,EACTkW,EAAKge,GAAI,EACThe,EAAK4mE,mBAAqBnD,kBAAkBmD,mBAC5C5mE,EAAKsqB,gBAAgB3mC,KAAKqc,EAAK4mE,mBAAmBjrD,EAAM3T,EAAMhI,GAAM+P,KAAK/P,IAE7E,EA0EEysE,eA3DF,SAAwBpnD,GACtB,IACI4L,EAAK9rC,KAAKw2C,eAAetW,GACzBqW,EAAKv2C,KAAKw2C,eAAetW,GAFhB,KAGT8sD,EAAQ,EAEZ,GAAIlhD,EAAGhyC,OAAQ,CACb,IAAID,EAEJ,IAAKA,EAAI,EAAGA,EAAIiyC,EAAGhyC,OAAQD,GAAK,EAC9BmzF,GAASxsF,KAAKyP,IAAIsmC,EAAG18C,GAAKiyC,EAAGjyC,GAAI,GAGnCmzF,EAA2B,IAAnBxsF,KAAKod,KAAKovE,EACpB,MACEA,EAAQ,EAGV,OAAOA,CACT,EAyCE9I,kBAvCF,SAA2BhkD,GACzB,QAAiB5iC,IAAb0C,KAAK4lC,IACP,OAAO5lC,KAAK4lC,IAGd,IAIIu+C,EAIEtqF,EARFu9C,GAAS,KAETtL,EAAK9rC,KAAKw2C,eAAetW,GACzBqW,EAAKv2C,KAAKw2C,eAAetW,EAAWkX,GAGxC,GAAItL,EAAGhyC,OAIL,IAHAqqF,EAAWxnE,iBAAiB,UAAWmvB,EAAGhyC,QAGrCD,EAAI,EAAGA,EAAIiyC,EAAGhyC,OAAQD,GAAK,EAI9BsqF,EAAStqF,IAAM08C,EAAG18C,GAAKiyC,EAAGjyC,IAAMu9C,OAGlC+sC,GAAY5tC,EAAKzK,GAAMsL,EAGzB,OAAO+sC,CACT,EAcE3tC,eA1EF,SAAwBtW,GAUtB,OATAA,GAAYlgC,KAAKw2B,KAAK/F,WAAW9B,WACjCuR,GAAYlgC,KAAKqgC,cAEArgC,KAAKitF,eAAetrD,YACnC3hC,KAAKitF,eAAepsD,UAAY7gC,KAAKitF,eAAetrD,UAAYzB,EAAWlgC,KAAKitF,eAAepsD,UAAY,EAC3G7gC,KAAKitF,eAAe5xF,MAAQ2E,KAAKigC,iBAAiBC,EAAUlgC,KAAKitF,gBACjEjtF,KAAKitF,eAAetrD,UAAYzB,GAG3BlgC,KAAKitF,eAAe5xF,KAC7B,EAgEE6xF,qBAbF,WACE,OAAOltF,KAAKugC,EACd,EAYE0pD,iBAVF,SAA0B1C,GACxBvnF,KAAKunF,cAAgBA,CACvB,GAYF,SAAS4F,uBACP,SAAS5K,EAAQxjF,EAAM0O,EAAU2/E,GAC/B,IAAKptF,KAAK2E,IAAM3E,KAAK8gC,UACnB,OAAO9gC,KAAKugC,GAGdxhC,EAAOA,EAAOA,EAAKq+C,cAAgB,GACnC,IAQIiwC,EACAC,EAmBAzzF,EACA6gB,EACA6yE,EA9BAt/D,EAAejuB,KAAKykB,KAAKggB,cACzB3D,EAAY9gC,KAAK8gC,UACjB0sD,EAAe1sD,EAAUA,EAAUhnC,OAAS,GAAGoT,EAEnD,GAAI+gB,GAAgBu/D,EAClB,OAAOxtF,KAAKugC,GA2Bd,GArBK6sD,EAcHE,EAAgBE,GAHdH,EAHG5/E,EAGajN,KAAKiP,IAAI+9E,EAAextF,KAAKw2B,KAAK/R,KAAKgM,WAAW9B,UAAYlhB,GAF9DjN,KAAKmI,IAAI,EAAG6kF,EAAextF,KAAKw2B,KAAK3T,KAAKgD,QARvDpY,GAAYA,EAAWqzB,EAAUhnC,OAAS,KAC7C2T,EAAWqzB,EAAUhnC,OAAS,GAIhCuzF,EAAgBG,GADhBF,EAAgBxsD,EAAUA,EAAUhnC,OAAS,EAAI2T,GAAUP,IAgBhD,aAATnO,GAGF,GAFiByB,KAAKsI,OAAOmlB,EAAeq/D,GAAiBD,GAE5C,IAAM,EACrB,OAAOrtF,KAAKw2C,gBAAgB62C,GAAiBp/D,EAAeq/D,GAAiBD,EAAgBC,GAAiBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,OAE3I,IAAa,WAAT5vB,EAAmB,CAC5B,IAAI0uF,EAAQztF,KAAKw2C,eAAe82C,EAAgBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,GAC5E++D,EAAO1tF,KAAKw2C,eAAeg3C,EAAextF,KAAKykB,KAAKgM,WAAW9B,UAAW,GAC1Eg/D,EAAU3tF,KAAKw2C,iBAAiBvoB,EAAeq/D,GAAiBD,EAAgBC,GAAiBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,GAEjIi/D,EAAUptF,KAAKsI,OAAOmlB,EAAeq/D,GAAiBD,GAE1D,GAAIrtF,KAAKugC,GAAGzmC,OAAQ,CAIlB,IAFA4gB,GADA6yE,EAAM,IAAIvsF,MAAMysF,EAAM3zF,SACZA,OAELD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB0zF,EAAI1zF,IAAM6zF,EAAK7zF,GAAK4zF,EAAM5zF,IAAM+zF,EAAUD,EAAQ9zF,GAGpD,OAAO0zF,CACT,CAEA,OAAQG,EAAOD,GAASG,EAAUD,CACpC,CAAO,GAAa,aAAT5uF,EAAqB,CAC9B,IAAI8uF,EAAY7tF,KAAKw2C,eAAeg3C,EAAextF,KAAKykB,KAAKgM,WAAW9B,UAAW,GAC/Em/D,EAAgB9tF,KAAKw2C,gBAAgBg3C,EAAe,MAASxtF,KAAKykB,KAAKgM,WAAW9B,UAAW,GAEjG,GAAI3uB,KAAKugC,GAAGzmC,OAAQ,CAIlB,IAFA4gB,GADA6yE,EAAM,IAAIvsF,MAAM6sF,EAAU/zF,SAChBA,OAELD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB0zF,EAAI1zF,GAAKg0F,EAAUh0F,IAAMg0F,EAAUh0F,GAAKi0F,EAAcj0F,MAAQo0B,EAAeu/D,GAAgBxtF,KAAKykB,KAAKgM,WAAW9B,WAAa,KAGjI,OAAO4+D,CACT,CAEA,OAAOM,GAA4C5/D,EAAeu/D,GAAgB,MAA9DK,EAAYC,EAClC,EAEA,OAAO9tF,KAAKw2C,iBAAiBvoB,EAAeq/D,GAAiBD,EAAgBC,GAAiBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,EAChI,CAEA,SAAS0zD,EAAOtjF,EAAM0O,EAAU2/E,GAC9B,IAAKptF,KAAK2E,EACR,OAAO3E,KAAKugC,GAGdxhC,EAAOA,EAAOA,EAAKq+C,cAAgB,GACnC,IAQIiwC,EACAG,EAmBA3zF,EACA6gB,EACA6yE,EA9BAt/D,EAAejuB,KAAKykB,KAAKggB,cACzB3D,EAAY9gC,KAAK8gC,UACjBwsD,EAAgBxsD,EAAU,GAAG5zB,EAEjC,GAAI+gB,GAAgBq/D,EAClB,OAAOttF,KAAKugC,GA2Bd,GArBK6sD,EAcHI,EAAeF,GAHbD,EAHG5/E,EAGajN,KAAKiP,IAAIzP,KAAKw2B,KAAK/R,KAAKgM,WAAW9B,UAAYlhB,GAF/CjN,KAAKmI,IAAI,EAAG3I,KAAKw2B,KAAK3T,KAAKiD,GAAKwnE,OAR7C7/E,GAAYA,EAAWqzB,EAAUhnC,OAAS,KAC7C2T,EAAWqzB,EAAUhnC,OAAS,GAIhCuzF,GADAG,EAAe1sD,EAAUrzB,GAAUP,GACJogF,GAepB,aAATvuF,GAGF,GAFiByB,KAAKsI,OAAOwkF,EAAgBr/D,GAAgBo/D,GAE5C,IAAM,EACrB,OAAOrtF,KAAKw2C,iBAAiB82C,EAAgBr/D,GAAgBo/D,EAAgBC,GAAiBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,OAE3H,IAAa,WAAT5vB,EAAmB,CAC5B,IAAI0uF,EAAQztF,KAAKw2C,eAAe82C,EAAgBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,GAC5E++D,EAAO1tF,KAAKw2C,eAAeg3C,EAAextF,KAAKykB,KAAKgM,WAAW9B,UAAW,GAC1Eg/D,EAAU3tF,KAAKw2C,gBAAgB62C,GAAiBC,EAAgBr/D,GAAgBo/D,EAAgBC,GAAiBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,GACjJi/D,EAAUptF,KAAKsI,OAAOwkF,EAAgBr/D,GAAgBo/D,GAAiB,EAE3E,GAAIrtF,KAAKugC,GAAGzmC,OAAQ,CAIlB,IAFA4gB,GADA6yE,EAAM,IAAIvsF,MAAMysF,EAAM3zF,SACZA,OAELD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB0zF,EAAI1zF,GAAK8zF,EAAQ9zF,IAAM6zF,EAAK7zF,GAAK4zF,EAAM5zF,IAAM+zF,EAG/C,OAAOL,CACT,CAEA,OAAOI,GAAWD,EAAOD,GAASG,CACpC,CAAO,GAAa,aAAT7uF,EAAqB,CAC9B,IAAIgvF,EAAa/tF,KAAKw2C,eAAe82C,EAAgBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,GACjFq/D,EAAiBhuF,KAAKw2C,gBAAgB82C,EAAgB,MAASttF,KAAKykB,KAAKgM,WAAW9B,UAAW,GAEnG,GAAI3uB,KAAKugC,GAAGzmC,OAAQ,CAIlB,IAFA4gB,GADA6yE,EAAM,IAAIvsF,MAAM+sF,EAAWj0F,SACjBA,OAELD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB0zF,EAAI1zF,GAAKk0F,EAAWl0F,IAAMk0F,EAAWl0F,GAAKm0F,EAAen0F,KAAOyzF,EAAgBr/D,GAAgB,KAGlG,OAAOs/D,CACT,CAEA,OAAOQ,GAAcA,EAAaC,IAAmBV,EAAgBr/D,GAAgB,IACvF,EAEA,OAAOjuB,KAAKw2C,gBAAgB62C,IAAkBC,EAAgBr/D,GAAgBo/D,EAAgBC,IAAkBttF,KAAKykB,KAAKgM,WAAW9B,UAAW,EAClJ,CAEA,SAAS8zD,EAAOp5D,EAAO4kE,GACrB,IAAKjuF,KAAK2E,EACR,OAAO3E,KAAKugC,GAMd,GAHAlX,EAAyB,IAAhBA,GAAS,KAClB4kE,EAAUztF,KAAKsI,MAAMmlF,GAAW,KAEjB,EACb,OAAOjuF,KAAKugC,GAGd,IAMIllC,EAQA6yF,EAdA3uE,EAAcvf,KAAKykB,KAAKggB,cAAgBzkC,KAAKykB,KAAKgM,WAAW9B,UAC7DoR,EAAYxgB,EAAc8J,EAE1B8kE,EAAkBF,EAAU,GADjB1uE,EAAc8J,EACmB0W,IAAckuD,EAAU,GAAK,EACzEp0F,EAAI,EACJmL,EAAI,EAWR,IAPE3J,EADE2E,KAAKugC,GAAGzmC,OACF6iB,iBAAiB,UAAW3c,KAAKugC,GAAGzmC,QAEpC,EAKHD,EAAIo0F,GAAS,CAGlB,GAFAC,EAAcluF,KAAKw2C,eAAezW,EAAYlmC,EAAIs0F,GAE9CnuF,KAAKugC,GAAGzmC,OACV,IAAKkL,EAAI,EAAGA,EAAIhF,KAAKugC,GAAGzmC,OAAQkL,GAAK,EACnC3J,EAAM2J,IAAMkpF,EAAYlpF,QAG1B3J,GAAS6yF,EAGXr0F,GAAK,CACP,CAEA,GAAImG,KAAKugC,GAAGzmC,OACV,IAAKkL,EAAI,EAAGA,EAAIhF,KAAKugC,GAAGzmC,OAAQkL,GAAK,EACnC3J,EAAM2J,IAAMipF,OAGd5yF,GAAS4yF,EAGX,OAAO5yF,CACT,CAEA,SAAS+yF,EAAwBv1E,GAC1B7Y,KAAKquF,0BACRruF,KAAKquF,wBAA0B,CAC7B3tE,EAAG,IAAIqrB,SAKX,IAAIuD,EAAStvC,KAAKquF,wBAAwB3tE,EAG1C,GAFA4uB,EAAOK,eAAe3vC,KAAK01C,IAAI97C,OAE3BoG,KAAK21C,uBAAyB,EAAG,CACnC,IAAI24C,EAAStuF,KAAKzC,EAAEi5C,eAAe39B,GACnCy2B,EAAOnC,WAAWmhD,EAAO,GAAKtuF,KAAKzC,EAAEwnC,MAAOupD,EAAO,GAAKtuF,KAAKzC,EAAEwnC,KAAMupD,EAAO,GAAKtuF,KAAKzC,EAAEwnC,KAC1F,CAEA,GAAI/kC,KAAK21C,uBAAyB,EAAG,CACnC,IAAI5I,EAAQ/sC,KAAKsI,EAAEkuC,eAAe39B,GAClCy2B,EAAOvC,MAAMA,EAAM,GAAK/sC,KAAKsI,EAAEy8B,KAAMgI,EAAM,GAAK/sC,KAAKsI,EAAEy8B,KAAMgI,EAAM,GAAK/sC,KAAKsI,EAAEy8B,KACjF,CAEA,GAAI/kC,KAAKimB,IAAMjmB,KAAK21C,uBAAyB,EAAG,CAC9C,IAAI9I,EAAO7sC,KAAKimB,GAAGuwB,eAAe39B,GAC9B8yE,EAAW3rF,KAAKkmB,GAAGswB,eAAe39B,GACtCy2B,EAAOxC,cAAcD,EAAO7sC,KAAKimB,GAAG8e,KAAM4mD,EAAW3rF,KAAKkmB,GAAG6e,KAC/D,CAEA,GAAI/kC,KAAK0P,GAAK1P,KAAK21C,uBAAyB,EAAG,CAC7C,IAAIotC,EAAW/iF,KAAK0P,EAAE8mC,eAAe39B,GACrCy2B,EAAOjD,QAAQ02C,EAAW/iF,KAAK0P,EAAEq1B,KACnC,MAAO,IAAK/kC,KAAK0P,GAAK1P,KAAK21C,uBAAyB,EAAG,CACrD,IAAI44C,EAAYvuF,KAAKg2C,GAAGQ,eAAe39B,GACnC21E,EAAYxuF,KAAK+1C,GAAGS,eAAe39B,GACnC41E,EAAYzuF,KAAK81C,GAAGU,eAAe39B,GACnC61E,EAAc1uF,KAAKyqC,GAAG+L,eAAe39B,GACzCy2B,EAAO5C,SAAS6hD,EAAYvuF,KAAKg2C,GAAGjR,MAAM0H,QAAQ+hD,EAAYxuF,KAAK+1C,GAAGhR,MAAMyH,QAAQiiD,EAAYzuF,KAAK81C,GAAG/Q,MAAM2H,SAASgiD,EAAY,GAAK1uF,KAAKyqC,GAAG1F,MAAM0H,QAAQiiD,EAAY,GAAK1uF,KAAKyqC,GAAG1F,MAAMyH,QAAQkiD,EAAY,GAAK1uF,KAAKyqC,GAAG1F,KAChO,CAEA,GAAI/kC,KAAK6iB,KAAKhT,GAAK7P,KAAK6iB,KAAKhT,EAAEvH,EAAG,CAChC,IAAIqmF,EAAY3uF,KAAKkJ,GAAGstC,eAAe39B,GACnC+1E,EAAY5uF,KAAK41C,GAAGY,eAAe39B,GAEvC,GAAI7Y,KAAK6iB,KAAKhT,EAAEggC,EAAG,CACjB,IAAIg/C,EAAY7uF,KAAK61C,GAAGW,eAAe39B,GACvCy2B,EAAOnC,UAAUwhD,EAAY3uF,KAAKkJ,GAAG67B,KAAM6pD,EAAY5uF,KAAK41C,GAAG7Q,MAAO8pD,EAAY7uF,KAAK61C,GAAG9Q,KAC5F,MACEuK,EAAOnC,UAAUwhD,EAAY3uF,KAAKkJ,GAAG67B,KAAM6pD,EAAY5uF,KAAK41C,GAAG7Q,KAAM,EAEzE,KAAO,CACL,IAAIlmB,EAAW7e,KAAK6P,EAAE2mC,eAAe39B,GACrCy2B,EAAOnC,UAAUtuB,EAAS,GAAK7e,KAAK6P,EAAEk1B,KAAMlmB,EAAS,GAAK7e,KAAK6P,EAAEk1B,MAAOlmB,EAAS,GAAK7e,KAAK6P,EAAEk1B,KAC/F,CAEA,OAAOuK,CACT,CAEA,SAASw/C,IACP,OAAO9uF,KAAK0gB,EAAEsnB,MAAM,IAAI+D,OAC1B,CAEA,IAAI4K,EAAuBpB,yBAAyBoB,qBAEpDpB,yBAAyBoB,qBAAuB,SAAUngB,EAAM3T,EAAMwN,GACpE,IAAIxV,EAAO87B,EAAqBngB,EAAM3T,EAAMwN,GAS5C,OAPIxV,EAAK0rB,kBAAkBzsC,OACzB+gB,EAAK27B,eAAiB43C,EAAwBxjE,KAAK/P,GAEnDA,EAAK27B,eAAiBs4C,EAA8BlkE,KAAK/P,GAG3DA,EAAKovE,iBAAmB6C,kBAAkB7C,iBACnCpvE,CACT,EAEA,IAAIk0E,EAAkB7oD,gBAAgBC,QAEtCD,gBAAgBC,QAAU,SAAU3P,EAAM3T,EAAM9jB,EAAMgmC,EAAM1U,GAC1D,IAAIxV,EAAOk0E,EAAgBv4D,EAAM3T,EAAM9jB,EAAMgmC,EAAM1U,GAI/CxV,EAAK0qB,GACP1qB,EAAK27B,eAAiBs2C,kBAAkBt2C,eAAe5rB,KAAK/P,GAE5DA,EAAK27B,eAAiBs2C,kBAAkBI,qBAAqBtiE,KAAK/P,GAGpEA,EAAKovE,iBAAmB6C,kBAAkB7C,iBAC1CpvE,EAAK0nE,QAAUA,EACf1nE,EAAKwnE,OAASA,EACdxnE,EAAK4nE,OAASA,EACd5nE,EAAKqpE,kBAAoB4I,kBAAkB5I,kBAAkBt5D,KAAK/P,GAClEA,EAAKysE,eAAiBwF,kBAAkBxF,eAAe18D,KAAK/P,GAC5DA,EAAK0oE,QAAqB,IAAX1gE,EAAKtlB,EAAUslB,EAAKle,EAAE7K,OAAS,EAC9C+gB,EAAKwvE,cAAgBxnE,EAAKu8B,GAC1B,IAAI/jD,EAAQ,EAiBZ,OAfa,IAAT0D,IACF1D,EAAQshB,iBAAiB,UAAsB,IAAXkG,EAAKtlB,EAAUslB,EAAKle,EAAE,GAAG2D,EAAExO,OAAS+oB,EAAKle,EAAE7K,SAGjF+gB,EAAKoyE,eAAiB,CACpBtrD,UAAW5nB,oBACX8mB,UAAW,EACXxlC,MAAOA,GAETyxF,kBAAkBC,kBAAkBv2D,EAAM3T,EAAMhI,GAE5CA,EAAKlW,GACP0rB,EAAUqV,mBAAmB7qB,GAGxBA,CACT,EAwBA,IAAIm0E,EAAmCvmD,qBAAqBwmD,yBACxDC,EAA4CzmD,qBAAqB0mD,kCAErE,SAASC,IAAoB,CAE7BA,EAAiB90F,UAAY,CAC3BotC,SAAU,SAAkB7sB,EAAMhC,GAC5B7Y,KAAK2E,GACP3E,KAAK6lC,WAGP,IAMIhsC,EANAkuC,EAAY/nC,KAAK0gB,OAERpjB,IAATub,IACFkvB,EAAY/nC,KAAKw2C,eAAe39B,EAAM,IAIxC,IAAI6B,EAAMqtB,EAAUvN,QAChBkN,EAAWK,EAAUltB,GACrB4d,EAASsP,EAAUrnB,EACnB7D,EAAMI,iBAAiBvC,GAE3B,IAAK7gB,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EAEtBgjB,EAAIhjB,GADO,MAATghB,GAAyB,MAATA,EACT,CAAC6sB,EAAS7tC,GAAG,GAAK4+B,EAAO5+B,GAAG,GAAI6tC,EAAS7tC,GAAG,GAAK4+B,EAAO5+B,GAAG,IAE3D,CAAC6tC,EAAS7tC,GAAG,GAAI6tC,EAAS7tC,GAAG,IAI1C,OAAOgjB,CACT,EACA4b,OAAQ,SAAgB5f,GACtB,OAAO7Y,KAAK0nC,SAAS,IAAK7uB,EAC5B,EACAuoE,WAAY,SAAoBvoE,GAC9B,OAAO7Y,KAAK0nC,SAAS,IAAK7uB,EAC5B,EACAwoE,YAAa,SAAqBxoE,GAChC,OAAO7Y,KAAK0nC,SAAS,IAAK7uB,EAC5B,EACAw2E,SAAU,WACR,OAAOrvF,KAAK0gB,EAAEjjB,CAChB,EACA6xF,YAAa,SAAqBnzD,EAAMtjB,GACtC,IAAIkvB,EAAY/nC,KAAK0gB,OAERpjB,IAATub,IACFkvB,EAAY/nC,KAAKw2C,eAAe39B,EAAM,IAGnC7Y,KAAKuvF,kBACRvvF,KAAKuvF,gBAAkBzvD,IAAIvC,kBAAkBwK,IAW/C,IARA,IAMI9jB,EANAwZ,EAAiBz9B,KAAKuvF,gBACtBv0D,EAAUyC,EAAezC,QACzBmC,EAAYM,EAAevC,YAAciB,EACzCtiC,EAAI,EACJ6gB,EAAMsgB,EAAQlhC,OACd01F,EAAoB,EAGjB31F,EAAI6gB,GAAK,CACd,GAAI80E,EAAoBx0D,EAAQnhC,GAAGihC,YAAcqC,EAAW,CAC1D,IAAIsyD,EAAY51F,EACZ61F,EAAW3nD,EAAUtqC,GAAK5D,IAAM6gB,EAAM,EAAI,EAAI7gB,EAAI,EAClD4nC,GAAetE,EAAYqyD,GAAqBx0D,EAAQnhC,GAAGihC,YAC/D7W,EAAK6b,IAAIV,kBAAkB2I,EAAUrnB,EAAE+uE,GAAY1nD,EAAUrnB,EAAEgvE,GAAW3nD,EAAUv4B,EAAEigF,GAAY1nD,EAAUluC,EAAE61F,GAAWjuD,EAAazG,EAAQnhC,IAC9I,KACF,CACE21F,GAAqBx0D,EAAQnhC,GAAGihC,YAGlCjhC,GAAK,CACP,CAMA,OAJKoqB,IACHA,EAAK8jB,EAAUtqC,EAAI,CAACsqC,EAAUrnB,EAAE,GAAG,GAAIqnB,EAAUrnB,EAAE,GAAG,IAAM,CAACqnB,EAAUrnB,EAAEqnB,EAAUvN,QAAU,GAAG,GAAIuN,EAAUrnB,EAAEqnB,EAAUvN,QAAU,GAAG,KAGlIvW,CACT,EACA0rE,aAAc,SAAsBxzD,EAAMtjB,EAAM+2E,GAElC,GAARzzD,EAEFA,EAAOn8B,KAAK0gB,EAAEjjB,EACG,GAAR0+B,IAETA,EAAO,MAGT,IAAIL,EAAM97B,KAAKsvF,YAAYnzD,EAAMtjB,GAC7BkjB,EAAM/7B,KAAKsvF,YAAYnzD,EAAO,KAAOtjB,GACrCg3E,EAAU9zD,EAAI,GAAKD,EAAI,GACvBg0D,EAAU/zD,EAAI,GAAKD,EAAI,GACvBi0D,EAAYvvF,KAAKod,KAAKpd,KAAKyP,IAAI4/E,EAAS,GAAKrvF,KAAKyP,IAAI6/E,EAAS,IAEnE,OAAkB,IAAdC,EACK,CAAC,EAAG,GAGmB,YAAfH,EAA2B,CAACC,EAAUE,EAAWD,EAAUC,GAAa,EAAED,EAAUC,EAAWF,EAAUE,EAE5H,EACAC,cAAe,SAAuB7zD,EAAMtjB,GAC1C,OAAO7Y,KAAK2vF,aAAaxzD,EAAMtjB,EAAM,UACvC,EACAo3E,aAAc,SAAsB9zD,EAAMtjB,GACxC,OAAO7Y,KAAK2vF,aAAaxzD,EAAMtjB,EAAM,SACvC,EACAoxE,iBAAkB6C,kBAAkB7C,iBACpCzzC,eAAgBs2C,kBAAkBI,sBAEpC5yE,gBAAgB,CAAC80E,GAAmBJ,GACpC10E,gBAAgB,CAAC80E,GAAmBF,GACpCA,EAA0C50F,UAAUk8C,eA5IpD,SAA6BtW,GAmB3B,OAjBKlgC,KAAKitF,iBACRjtF,KAAKitF,eAAiB,CACpBiD,WAAYpoD,UAAUE,MAAMhoC,KAAKugC,IACjCM,UAAW,EACXsvD,SAAUp2E,sBAIdmmB,GAAYlgC,KAAKw2B,KAAK/F,WAAW9B,WACjCuR,GAAYlgC,KAAKqgC,cAEArgC,KAAKitF,eAAekD,WACnCnwF,KAAKitF,eAAepsD,UAAY7gC,KAAKitF,eAAekD,SAAWjwD,EAAWlgC,KAAK2kC,SAAS9D,UAAY,EACpG7gC,KAAKitF,eAAekD,SAAWjwD,EAC/BlgC,KAAK0oC,iBAAiBxI,EAAUlgC,KAAKitF,eAAeiD,WAAYlwF,KAAKitF,iBAGhEjtF,KAAKitF,eAAeiD,UAC7B,EAyHAhB,EAA0C50F,UAAUmnF,mBAAqBnD,kBAAkBmD,mBAC3F,IAAI2O,EAAuB3nD,qBAAqB0mB,aAEhD1mB,qBAAqB0mB,aAAe,SAAU34B,EAAM3T,EAAM9jB,EAAM8d,EAAKwzE,GACnE,IAAIx1E,EAAOu1E,EAAqB55D,EAAM3T,EAAM9jB,EAAM8d,EAAKwzE,GAcvD,OAbAx1E,EAAKwvE,cAAgBxnE,EAAKu8B,GAC1BvkC,EAAKuqB,MAAO,EAEC,IAATrmC,EACF+tF,kBAAkBC,kBAAkBv2D,EAAM3T,EAAKoB,GAAIpJ,GACjC,IAAT9b,GACT+tF,kBAAkBC,kBAAkBv2D,EAAM3T,EAAKgC,GAAIhK,GAGjDA,EAAKlW,GACP6xB,EAAKkP,mBAAmB7qB,GAGnBA,CACT,CACF,CAEA,SAASy1E,eACPnD,sBACF,CAEA,SAASoD,eAWPn1B,aAAa9gE,UAAUk2F,mBAAqB,SAAU/xB,EAAc9a,GAClE,IAAIvjB,EAAWpgC,KAAKywF,oBAAoB9sC,GAExC,GAAI8a,EAAavxD,IAAMkzB,EAAU,CAC/B,IAAI4gC,EAAU,CAAC,EAIf,OAHAhhE,KAAKy8D,SAASuE,EAASvC,GACvBuC,EAAQ9zD,EAAIkzB,EAAStjC,WACrBkkE,EAAQp6C,YAAa,EACdo6C,CACT,CAEA,OAAOvC,CACT,EAEArD,aAAa9gE,UAAUoiE,eAAiB,WACtC,IAAIg0B,EAAc1wF,KAAKs+D,kBACnBqyB,EAAiB3wF,KAAK+sF,oBAE1B,OADA/sF,KAAKulC,GAAKmrD,GAAeC,EAClB3wF,KAAKulC,EACd,EAEA61B,aAAa9gE,UAAUyyF,kBA/BvB,WACE,OAAI/sF,KAAK6iB,KAAKhC,EAAEgY,GACd74B,KAAKywF,oBAAsBnS,kBAAkBmD,mBAAmB72D,KAAK5qB,KAA1Cs+E,CAAgDt+E,KAAKw2B,KAAMx2B,KAAK6iB,KAAKhC,EAAG7gB,MACnGA,KAAKwlC,UAAUxlC,KAAKwwF,mBAAmB5lE,KAAK5qB,QACrC,GAGF,IACT,CAwBF,CAEA,SAAS4wF,aACPL,cACF,CAEA,SAASM,sBAAuB,CAEhCA,oBAAoBv2F,UAAY,CAC9Bw2F,gBAAiB,SAAyBC,EAAUC,GAClD,IAEIC,EACAp3F,EAHAq3F,EAAUjvE,SAAS,WAKvB,IAJAivE,EAAQ/5D,aAAa,SAAU45D,GAI1Bl3F,EAAI,EAAGA,EAAIm3F,EAAIl3F,OAAQD,GAAK,GAC/Bo3F,EAAchvE,SAAS,gBACXkV,aAAa,KAAM65D,EAAIn3F,IACnCq3F,EAAQhlE,YAAY+kE,GACpBC,EAAQhlE,YAAY+kE,GAGtB,OAAOC,CACT,GAGF,IAAIC,kBAAoB,mFAExB,SAASC,cAAc1wC,EAAQ4R,EAAe97B,EAAMlzB,EAAI5I,GACtDsF,KAAKsyD,cAAgBA,EACrB,IAAIP,EAAgB9vC,SAAS,iBAC7B8vC,EAAc56B,aAAa,OAAQ,UACnC46B,EAAc56B,aAAa,8BAA+B,aAC1D46B,EAAc56B,aAAa,SAAUg6D,kBAAoB,QACzDnxF,KAAKqxF,aAAet/B,EACpBA,EAAc56B,aAAa,SAAU7zB,EAAK,WAC1Co9C,EAAOx0B,YAAY6lC,IACnBA,EAAgB9vC,SAAS,kBACXkV,aAAa,OAAQ,UACnC46B,EAAc56B,aAAa,8BAA+B,QAC1D46B,EAAc56B,aAAa,SAAU,2CACrC46B,EAAc56B,aAAa,SAAU7zB,EAAK,WAC1Co9C,EAAOx0B,YAAY6lC,GACnB/xD,KAAKsxF,aAAev/B,EACpB,IAAIm/B,EAAUlxF,KAAK8wF,gBAAgBxtF,EAAI,CAAC5I,EAAQ4I,EAAK,UAAWA,EAAK,YACrEo9C,EAAOx0B,YAAYglE,EACrB,CAcA,SAASK,cAAc7wC,EAAQ4R,EAAe97B,EAAMlzB,GAClDtD,KAAKsyD,cAAgBA,EACrB,IAAIP,EAAgB9vC,SAAS,iBAC7B8vC,EAAc56B,aAAa,OAAQ,UACnC46B,EAAc56B,aAAa,8BAA+B,QAC1D46B,EAAc56B,aAAa,SAAU,2CACrC46B,EAAc56B,aAAa,SAAU7zB,GACrCo9C,EAAOx0B,YAAY6lC,GACnB/xD,KAAKsxF,aAAev/B,CACtB,CAUA,SAASy/B,gBAAgB1/B,EAAKQ,EAAe97B,GAC3Cx2B,KAAKyxF,aAAc,EACnBzxF,KAAKsyD,cAAgBA,EACrBtyD,KAAKw2B,KAAOA,EACZx2B,KAAKkpC,MAAQ,EACf,CAgIA,SAASwoD,iBAAiBhxC,EAAQ4R,EAAe97B,EAAMlzB,GACrDtD,KAAKsyD,cAAgBA,EACrB,IAAIP,EAAgB9vC,SAAS,iBAC7B8vC,EAAc56B,aAAa,OAAQ,UACnC46B,EAAc56B,aAAa,8BAA+B,aAC1D46B,EAAc56B,aAAa,SAAU,wFACrCupB,EAAOx0B,YAAY6lC,GACnB,IAAI4/B,EAAsB1vE,SAAS,uBACnC0vE,EAAoBx6D,aAAa,8BAA+B,QAChEw6D,EAAoBx6D,aAAa,SAAU7zB,GAC3CtD,KAAKsxF,aAAeK,EACpB,IAAIC,EAAU3vE,SAAS,WACvB2vE,EAAQz6D,aAAa,OAAQ,SAC7Bw6D,EAAoBzlE,YAAY0lE,GAChC5xF,KAAK4xF,QAAUA,EACf,IAAIC,EAAU5vE,SAAS,WACvB4vE,EAAQ16D,aAAa,OAAQ,SAC7Bw6D,EAAoBzlE,YAAY2lE,GAChC7xF,KAAK6xF,QAAUA,EACf,IAAIC,EAAU7vE,SAAS,WACvB6vE,EAAQ36D,aAAa,OAAQ,SAC7Bw6D,EAAoBzlE,YAAY4lE,GAChC9xF,KAAK8xF,QAAUA,EACfpxC,EAAOx0B,YAAYylE,EACrB,CAgBA,SAASI,mBAAmBrxC,EAAQ4R,EAAe97B,EAAMlzB,GACvDtD,KAAKsyD,cAAgBA,EACrB,IAAIlJ,EAAiBppD,KAAKsyD,cAAclJ,eACpCuoC,EAAsB1vE,SAAS,wBAE/BmnC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,KACzR1gB,KAAK4xF,QAAU5xF,KAAKgyF,aAAa,UAAWL,KAI1CvoC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,KACzR1gB,KAAK6xF,QAAU7xF,KAAKgyF,aAAa,UAAWL,KAI1CvoC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,KACzR1gB,KAAK8xF,QAAU9xF,KAAKgyF,aAAa,UAAWL,KAI1CvoC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,GAAW0oC,EAAe,IAAIv5C,EAAElL,GAAgC,IAA3BykD,EAAe,IAAIv5C,EAAE6Q,KACzR1gB,KAAKiyF,QAAUjyF,KAAKgyF,aAAa,UAAWL,KAI1C3xF,KAAK4xF,SAAW5xF,KAAK6xF,SAAW7xF,KAAK8xF,SAAW9xF,KAAKiyF,WACvDN,EAAoBx6D,aAAa,8BAA+B,QAChEupB,EAAOx0B,YAAYylE,KAGjBvoC,EAAe,GAAGv5C,EAAElL,GAA+B,IAA1BykD,EAAe,GAAGv5C,EAAE6Q,GAAW0oC,EAAe,GAAGv5C,EAAElL,GAA+B,IAA1BykD,EAAe,GAAGv5C,EAAE6Q,GAAW0oC,EAAe,GAAGv5C,EAAElL,GAA+B,IAA1BykD,EAAe,GAAGv5C,EAAE6Q,GAAW0oC,EAAe,GAAGv5C,EAAElL,GAA+B,IAA1BykD,EAAe,GAAGv5C,EAAE6Q,GAAW0oC,EAAe,GAAGv5C,EAAElL,GAA+B,IAA1BykD,EAAe,GAAGv5C,EAAE6Q,MAC/QixE,EAAsB1vE,SAAS,wBACXkV,aAAa,8BAA+B,QAChEw6D,EAAoBx6D,aAAa,SAAU7zB,GAC3Co9C,EAAOx0B,YAAYylE,GACnB3xF,KAAKkyF,gBAAkBlyF,KAAKgyF,aAAa,UAAWL,GACpD3xF,KAAKmyF,gBAAkBnyF,KAAKgyF,aAAa,UAAWL,GACpD3xF,KAAKoyF,gBAAkBpyF,KAAKgyF,aAAa,UAAWL,GAExD,CA4EA,SAASU,oBAAoB3xC,EAAQ4R,EAAe97B,EAAMlzB,EAAI5I,GAC5D,IAAI43F,EAAmBhgC,EAAcjiC,UAAUI,WAAWw3B,aAAaggB,WACnEA,EAAa3V,EAAczvC,KAAK69C,IAAM4xB,EAC1C5xC,EAAOvpB,aAAa,IAAK8wC,EAAWpvC,GAAKy5D,EAAiBz5D,GAC1D6nB,EAAOvpB,aAAa,IAAK8wC,EAAWzmC,GAAK8wD,EAAiB9wD,GAC1Dkf,EAAOvpB,aAAa,QAAS8wC,EAAW5+C,OAASipE,EAAiBjpE,OAClEq3B,EAAOvpB,aAAa,SAAU8wC,EAAWl3D,QAAUuhF,EAAiBvhF,QACpE/Q,KAAKsyD,cAAgBA,EACrB,IAAIigC,EAAiBtwE,SAAS,kBAC9BswE,EAAep7D,aAAa,KAAM,eAClCo7D,EAAep7D,aAAa,SAAU7zB,EAAK,kBAC3CivF,EAAep7D,aAAa,eAAgB,KAC5Cn3B,KAAKuyF,eAAiBA,EACtB7xC,EAAOx0B,YAAYqmE,GACnB,IAAIC,EAAWvwE,SAAS,YACxBuwE,EAASr7D,aAAa,KAAM,MAC5Bq7D,EAASr7D,aAAa,KAAM,KAC5Bq7D,EAASr7D,aAAa,KAAM7zB,EAAK,kBACjCkvF,EAASr7D,aAAa,SAAU7zB,EAAK,kBACrCtD,KAAKwyF,SAAWA,EAChB9xC,EAAOx0B,YAAYsmE,GACnB,IAAIC,EAAUxwE,SAAS,WACvBwwE,EAAQt7D,aAAa,cAAe,WACpCs7D,EAAQt7D,aAAa,gBAAiB,KACtCs7D,EAAQt7D,aAAa,SAAU7zB,EAAK,kBACpCtD,KAAKyyF,QAAUA,EACf/xC,EAAOx0B,YAAYumE,GACnB,IAAIC,EAAczwE,SAAS,eAC3BywE,EAAYv7D,aAAa,KAAM7zB,EAAK,kBACpCovF,EAAYv7D,aAAa,MAAO7zB,EAAK,kBACrCovF,EAAYv7D,aAAa,WAAY,MACrCu7D,EAAYv7D,aAAa,SAAU7zB,EAAK,kBACxCo9C,EAAOx0B,YAAYwmE,GACnB,IAAIxB,EAAUlxF,KAAK8wF,gBAAgBxtF,EAAI,CAACA,EAAK,iBAAkB5I,IAC/DgmD,EAAOx0B,YAAYglE,EACrB,CAlWA52E,gBAAgB,CAACu2E,qBAAsBO,eAEvCA,cAAc92F,UAAU+4B,YAAc,SAAU+iB,GAC9C,GAAIA,GAAep2C,KAAKsyD,cAActtB,KAAM,CAC1C,IAAI2tD,EAAa3yF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EACpDkyE,EAAa5yF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EACpDkwC,EAAU5wD,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAI,IACzD1gB,KAAKqxF,aAAal6D,aAAa,SAAUg6D,kBAAoB,IAAMvgC,EAAU,MAC7E5wD,KAAKsxF,aAAan6D,aAAa,SAAUy7D,EAAW,GAAKD,EAAW,GAAK,UAAYA,EAAW,GAAK,KAAOC,EAAW,GAAKD,EAAW,IAAM,UAAYA,EAAW,GAAK,KAAOC,EAAW,GAAKD,EAAW,IAAM,UAAYA,EAAW,GAAK,aAC/O,CACF,EAaApB,cAAcj3F,UAAU+4B,YAAc,SAAU+iB,GAC9C,GAAIA,GAAep2C,KAAKsyD,cAActtB,KAAM,CAC1C,IAAIjkB,EAAQ/gB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAC/CkwC,EAAU5wD,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EACrD1gB,KAAKsxF,aAAan6D,aAAa,SAAU,WAAapW,EAAM,GAAK,YAAcA,EAAM,GAAK,YAAcA,EAAM,GAAK,UAAY6vC,EAAU,KAC3I,CACF,EASA4gC,gBAAgBl3F,UAAUs2F,WAAa,WACrC,IACIhuE,EACAiwE,EACAh5F,EACA6gB,EAJAo4E,EAAe9yF,KAAKw2B,KAAKo1B,aAAamtB,UAAY/4E,KAAKw2B,KAAKo1B,aAAamnC,WAmB7E,IAbiD,IAA7C/yF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,GACzChG,EAAM1a,KAAKw2B,KAAKs0B,YAAY9mC,gBAAgBlqB,OAC5CD,EAAI,GAGJ6gB,EAAU,GADV7gB,EAAImG,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAI,IAIjDmyE,EAAY5wE,SAAS,MACXkV,aAAa,OAAQ,QAC/B07D,EAAU17D,aAAa,iBAAkB,SACzC07D,EAAU17D,aAAa,oBAAqB,GAEpCt9B,EAAI6gB,EAAK7gB,GAAK,EACpB+oB,EAAOX,SAAS,QAChB4wE,EAAU3mE,YAAYtJ,GACtB5iB,KAAKkpC,MAAM1qC,KAAK,CACdqR,EAAG+S,EACHsqB,EAAGrzC,IAIP,GAAkD,IAA9CmG,KAAKsyD,cAAclJ,eAAe,IAAIv5C,EAAE6Q,EAAS,CACnD,IAAIgvC,EAAOztC,SAAS,QAChB3e,EAAKid,kBACTmvC,EAAKv4B,aAAa,KAAM7zB,GACxBosD,EAAKv4B,aAAa,YAAa,SAC/Bu4B,EAAKxjC,YAAY2mE,GACjB7yF,KAAKw2B,KAAK/F,WAAWC,KAAKxE,YAAYwjC,GACtC,IAAI/uC,EAAIsB,SAAS,KAGjB,IAFAtB,EAAEwW,aAAa,OAAQ,OAAS/c,kBAAoB,IAAM9W,EAAK,KAExDwvF,EAAa,IAClBnyE,EAAEuL,YAAY4mE,EAAa,IAG7B9yF,KAAKw2B,KAAKo1B,aAAa1/B,YAAYvL,GACnC3gB,KAAK00D,OAAShF,EACdmjC,EAAU17D,aAAa,SAAU,OACnC,MAAO,GAAkD,IAA9Cn3B,KAAKsyD,cAAclJ,eAAe,IAAIv5C,EAAE6Q,GAAyD,IAA9C1gB,KAAKsyD,cAAclJ,eAAe,IAAIv5C,EAAE6Q,EAAS,CAC7G,GAAkD,IAA9C1gB,KAAKsyD,cAAclJ,eAAe,IAAIv5C,EAAE6Q,EAG1C,IAFAoyE,EAAe9yF,KAAKw2B,KAAKo1B,aAAamtB,UAAY/4E,KAAKw2B,KAAKo1B,aAAamnC,WAElED,EAAah5F,QAClBkG,KAAKw2B,KAAKo1B,aAAa7E,YAAY+rC,EAAa,IAIpD9yF,KAAKw2B,KAAKo1B,aAAa1/B,YAAY2mE,GACnC7yF,KAAKw2B,KAAKo1B,aAAaonC,gBAAgB,QACvCH,EAAU17D,aAAa,SAAU,OACnC,CAEAn3B,KAAKyxF,aAAc,EACnBzxF,KAAKizF,WAAaJ,CACpB,EAEArB,gBAAgBl3F,UAAU+4B,YAAc,SAAU+iB,GAKhD,IAAIv8C,EAJCmG,KAAKyxF,aACRzxF,KAAK4wF,aAIP,IACIlhC,EACA9sC,EAFAlI,EAAM1a,KAAKkpC,MAAMpvC,OAIrB,IAAKD,EAAI,EAAGA,EAAI6gB,EAAK7gB,GAAK,EACxB,IAAyB,IAArBmG,KAAKkpC,MAAMrvC,GAAGqzC,IAChBwiB,EAAO1vD,KAAKw2B,KAAKs0B,YAAY4D,SAAS1uD,KAAKkpC,MAAMrvC,GAAGqzC,GACpDtqB,EAAO5iB,KAAKkpC,MAAMrvC,GAAGgW,GAEjBumC,GAAep2C,KAAKsyD,cAActtB,MAAQ0qB,EAAK70C,KAAKmqB,OACtDpiB,EAAKuU,aAAa,IAAKu4B,EAAKN,UAG1BhZ,GAAep2C,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,MAAQhlC,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,MAAQhlC,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,MAAQhlC,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,MAAQ0qB,EAAK70C,KAAKmqB,MAAM,CAC7N,IAAIkuD,EAEJ,GAAiD,IAA7ClzF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,GAAwD,MAA7C1gB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAW,CACtG,IAAIpY,EAAmG,IAA/F9H,KAAKoI,IAAI5I,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAG1gB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,GAC9FpgB,EAAmG,IAA/FE,KAAKmI,IAAI3I,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAG1gB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,GAC9FlY,EAAIoa,EAAKuwE,iBACbD,EAAiB,SAAW1qF,EAAIF,EAAI,IACpC,IAGItD,EAHAouF,EAAa5qF,GAAKlI,EAAIgI,GACtB0pB,EAAU,EAA+C,EAA3ChyB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAQ1gB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAI,IACxG2yE,EAAQ7yF,KAAKsI,MAAMsqF,EAAaphE,GAGpC,IAAKhtB,EAAI,EAAGA,EAAIquF,EAAOruF,GAAK,EAC1BkuF,GAAkB,KAAkD,EAA3ClzF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAQ1gB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAI,IAAO,IAG5HwyE,GAAkB,KAAW,GAAJ1qF,EAAS,MACpC,MACE0qF,EAAiB,KAAkD,EAA3ClzF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAQ1gB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAI,IAGpHkC,EAAKuU,aAAa,mBAAoB+7D,EACxC,CAYJ,IARI98C,GAAep2C,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,OACxDhlC,KAAKizF,WAAW97D,aAAa,eAA2D,EAA3Cn3B,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,IAGlF01B,GAAep2C,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,OACxDhlC,KAAKizF,WAAW97D,aAAa,UAAWn3B,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,IAG/B,IAA9C1gB,KAAKsyD,cAAclJ,eAAe,IAAIv5C,EAAE6Q,GAAyD,IAA9C1gB,KAAKsyD,cAAclJ,eAAe,IAAIv5C,EAAE6Q,KACzF01B,GAAep2C,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,MAAM,CAC9D,IAAIjkB,EAAQ/gB,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EACnD1gB,KAAKizF,WAAW97D,aAAa,SAAU,OAAStZ,QAAmB,IAAXkD,EAAM,IAAY,IAAMlD,QAAmB,IAAXkD,EAAM,IAAY,IAAMlD,QAAmB,IAAXkD,EAAM,IAAY,IAC5I,CAEJ,EA4BA2wE,iBAAiBp3F,UAAU+4B,YAAc,SAAU+iB,GACjD,GAAIA,GAAep2C,KAAKsyD,cAActtB,KAAM,CAC1C,IAAIsuD,EAAStzF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAChD6yE,EAASvzF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAChD8yE,EAASxzF,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAChD+yE,EAASD,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACpDI,EAASF,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACpDK,EAASH,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACxDtzF,KAAK4xF,QAAQz6D,aAAa,cAAes8D,GACzCzzF,KAAK6xF,QAAQ16D,aAAa,cAAeu8D,GACzC1zF,KAAK8xF,QAAQ36D,aAAa,cAAew8D,EAC3C,CACF,EA2CA5B,mBAAmBz3F,UAAU03F,aAAe,SAAUjzF,EAAM4yF,GAC1D,IAAI58B,EAAS9yC,SAASljB,GAGtB,OAFAg2D,EAAO59B,aAAa,OAAQ,SAC5Bw6D,EAAoBzlE,YAAY6oC,GACzBA,CACT,EAEAg9B,mBAAmBz3F,UAAUs5F,cAAgB,SAAUC,EAAYC,EAAYC,EAAOC,EAAaC,GAcjG,IAbA,IAEI93D,EAMA+3D,EARArsD,EAAM,EAGNj/B,EAAMpI,KAAKoI,IAAIirF,EAAYC,GAC3BnrF,EAAMnI,KAAKmI,IAAIkrF,EAAYC,GAC3BK,EAAQnzF,MAAMnG,KAAK,KAAM,CAC3Bf,OALa,MAQXuO,EAAM,EACN+rF,EAAcH,EAAcD,EAC5BK,EAAaP,EAAaD,EAEvBhsD,GAAO,KAIVqsD,GAHF/3D,EAAO0L,EAAM,MAEDj/B,EACGyrF,EAAa,EAAIJ,EAAcD,EACnC73D,GAAQxzB,EACJ0rF,EAAa,EAAIL,EAAcC,EAE/BD,EAAcI,EAAc5zF,KAAKyP,KAAKksB,EAAO03D,GAAcQ,EAAY,EAAIN,GAG1FI,EAAM9rF,GAAO6rF,EACb7rF,GAAO,EACPw/B,GAAO,IAAM,IAGf,OAAOssD,EAAMvvF,KAAK,IACpB,EAEAmtF,mBAAmBz3F,UAAU+4B,YAAc,SAAU+iB,GACnD,GAAIA,GAAep2C,KAAKsyD,cAActtB,KAAM,CAC1C,IAAIh8B,EACAogD,EAAiBppD,KAAKsyD,cAAclJ,eAEpCppD,KAAKkyF,kBAAoB97C,GAAegT,EAAe,GAAGv5C,EAAEm1B,MAAQokB,EAAe,GAAGv5C,EAAEm1B,MAAQokB,EAAe,GAAGv5C,EAAEm1B,MAAQokB,EAAe,GAAGv5C,EAAEm1B,MAAQokB,EAAe,GAAGv5C,EAAEm1B,QAC9Kh8B,EAAMhJ,KAAK4zF,cAAcxqC,EAAe,GAAGv5C,EAAE6Q,EAAG0oC,EAAe,GAAGv5C,EAAE6Q,EAAG0oC,EAAe,GAAGv5C,EAAE6Q,EAAG0oC,EAAe,GAAGv5C,EAAE6Q,EAAG0oC,EAAe,GAAGv5C,EAAE6Q,GACzI1gB,KAAKkyF,gBAAgB/6D,aAAa,cAAenuB,GACjDhJ,KAAKmyF,gBAAgBh7D,aAAa,cAAenuB,GACjDhJ,KAAKoyF,gBAAgBj7D,aAAa,cAAenuB,IAG/ChJ,KAAK4xF,UAAYx7C,GAAegT,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,QAC3Kh8B,EAAMhJ,KAAK4zF,cAAcxqC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,GAC9I1gB,KAAK4xF,QAAQz6D,aAAa,cAAenuB,IAGvChJ,KAAK6xF,UAAYz7C,GAAegT,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,QAC3Kh8B,EAAMhJ,KAAK4zF,cAAcxqC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,GAC9I1gB,KAAK6xF,QAAQ16D,aAAa,cAAenuB,IAGvChJ,KAAK8xF,UAAY17C,GAAegT,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,QAC3Kh8B,EAAMhJ,KAAK4zF,cAAcxqC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,GAC9I1gB,KAAK8xF,QAAQ36D,aAAa,cAAenuB,IAGvChJ,KAAKiyF,UAAY77C,GAAegT,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,MAAQokB,EAAe,IAAIv5C,EAAEm1B,QAC3Kh8B,EAAMhJ,KAAK4zF,cAAcxqC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,EAAG0oC,EAAe,IAAIv5C,EAAE6Q,GAC9I1gB,KAAKiyF,QAAQ96D,aAAa,cAAenuB,GAE7C,CACF,EAuCAsR,gBAAgB,CAACu2E,qBAAsBwB,qBAEvCA,oBAAoB/3F,UAAU+4B,YAAc,SAAU+iB,GACpD,GAAIA,GAAep2C,KAAKsyD,cAActtB,KAAM,CAK1C,IAJIoR,GAAep2C,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,OACxDhlC,KAAKuyF,eAAep7D,aAAa,eAAgBn3B,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAI,GAG1F01B,GAAep2C,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,KAAM,CAC9D,IAAIsvD,EAAMt0F,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EACjD1gB,KAAKyyF,QAAQt7D,aAAa,cAAe/V,SAAS5gB,KAAKke,MAAe,IAAT41E,EAAI,IAAW9zF,KAAKke,MAAe,IAAT41E,EAAI,IAAW9zF,KAAKke,MAAe,IAAT41E,EAAI,KACvH,CAMA,IAJIl+C,GAAep2C,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,OACxDhlC,KAAKyyF,QAAQt7D,aAAa,gBAAiBn3B,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAI,KAGpF01B,GAAep2C,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,MAAQhlC,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAEm1B,KAAM,CAC7G,IAAIob,EAAWpgD,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAClDqqB,GAAS/qC,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAI,IAAMrC,UAC1Dwa,EAAIunB,EAAW5/C,KAAK0jC,IAAI6G,GACxBvJ,EAAI4e,EAAW5/C,KAAK8iC,IAAIyH,GAC5B/qC,KAAKwyF,SAASr7D,aAAa,KAAM0B,GACjC74B,KAAKwyF,SAASr7D,aAAa,KAAMqK,EACnC,CACF,CACF,EAEA,IAAI+yD,iBAAmB,GAEvB,SAASC,gBAAgBC,EAAYniC,EAAe97B,GAClDx2B,KAAKyxF,aAAc,EACnBzxF,KAAKsyD,cAAgBA,EACrBtyD,KAAKy0F,WAAaA,EAClBz0F,KAAKw2B,KAAOA,EACZA,EAAK+8B,aAAetxC,SAAS,KAC7BuU,EAAK+8B,aAAarnC,YAAYsK,EAAKo1B,cACnCp1B,EAAK+8B,aAAarnC,YAAYsK,EAAKg9B,oBACnCh9B,EAAKm1B,YAAcn1B,EAAK+8B,YAC1B,CAqGA,SAASmhC,sBAAsBh0C,EAAQ4R,EAAe97B,EAAMlzB,GAE1Do9C,EAAOvpB,aAAa,IAAK,SACzBupB,EAAOvpB,aAAa,IAAK,SACzBupB,EAAOvpB,aAAa,QAAS,QAC7BupB,EAAOvpB,aAAa,SAAU,QAC9Bn3B,KAAKsyD,cAAgBA,EACrB,IAAIigC,EAAiBtwE,SAAS,kBAC9BswE,EAAep7D,aAAa,SAAU7zB,GACtCo9C,EAAOx0B,YAAYqmE,GACnBvyF,KAAKuyF,eAAiBA,CACxB,CA6BA,SAASoC,kBAAmB,CAwC5B,SAASC,mBAAmBpnE,EAAG8kC,GAC7BtyD,KAAK40B,KAAK09B,EACZ,CAIA,SAASuiC,kBAAkB/oC,GACzB9rD,KAAK40B,KAAKk3B,EACZ,CA+BA,OA1NA0oC,gBAAgBl6F,UAAUw6F,WAAa,SAAUplC,GAI/C,IAHA,IAAI71D,EAAI,EACJ6gB,EAAM65E,iBAAiBz6F,OAEpBD,EAAI6gB,GAAK,CACd,GAAI65E,iBAAiB16F,KAAO61D,EAC1B,OAAO6kC,iBAAiB16F,GAG1BA,GAAK,CACP,CAEA,OAAO,IACT,EAEA26F,gBAAgBl6F,UAAUy6F,gBAAkB,SAAUrlC,EAAMslC,GAC1D,IAAI5yC,EAAasN,EAAK9D,aAAaxJ,WAEnC,GAAKA,EAAL,CAQA,IAJA,IAYI6yC,EAZAlc,EAAW32B,EAAW22B,SACtBl/E,EAAI,EACJ6gB,EAAMq+D,EAASj/E,OAEZD,EAAI6gB,GACLq+D,EAASl/E,KAAO61D,EAAK9D,cAIzB/xD,GAAK,EAKHA,GAAK6gB,EAAM,IACbu6E,EAAYlc,EAASl/E,EAAI,IAG3B,IAAIq7F,EAAUjzE,SAAS,OACvBizE,EAAQ/9D,aAAa,OAAQ,IAAM69D,GAE/BC,EACF7yC,EAAWioB,aAAa6qB,EAASD,GAEjC7yC,EAAWl2B,YAAYgpE,EA1BzB,CA4BF,EAEAV,gBAAgBl6F,UAAU66F,iBAAmB,SAAU3+D,EAAMk5B,GAC3D,IAAK1vD,KAAK80F,WAAWplC,GAAO,CAC1B,IAAIslC,EAAWz0E,kBACXm0C,EAASzyC,SAAS,QACtByyC,EAAOv9B,aAAa,KAAMu4B,EAAK7D,SAC/B6I,EAAOv9B,aAAa,YAAa,SAEjCo9D,iBAAiB/1F,KAAKkxD,GAEtB,IAAIh/B,EAAO8F,EAAK/F,WAAWC,KAC3BA,EAAKxE,YAAYwoC,GACjB,IAAI0gC,EAASnzE,SAAS,UACtBmzE,EAAOj+D,aAAa,KAAM69D,GAC1Bh1F,KAAK+0F,gBAAgBrlC,EAAMslC,GAC3BI,EAAOlpE,YAAYwjC,EAAK9D,cACxBl7B,EAAKxE,YAAYkpE,GACjB,IAAIF,EAAUjzE,SAAS,OACvBizE,EAAQ/9D,aAAa,OAAQ,IAAM69D,GACnCtgC,EAAOxoC,YAAYgpE,GACnBxlC,EAAK7sC,KAAKmxC,IAAK,EACftE,EAAKj6B,MACP,CAEAe,EAAKy+B,SAASvF,EAAK7D,QACrB,EAEA2oC,gBAAgBl6F,UAAUs2F,WAAa,WAMrC,IALA,IAAIvvD,EAAMrhC,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAC7C69B,EAAWv+C,KAAKw2B,KAAK/R,KAAK85B,SAC1B1kD,EAAI,EACJ6gB,EAAM6jC,EAASzkD,OAEZD,EAAI6gB,GACL6jC,EAAS1kD,IAAM0kD,EAAS1kD,GAAGgpB,KAAKwe,MAAQA,GAC1CrhC,KAAKm1F,iBAAiBn1F,KAAKw2B,KAAM+nB,EAAS1kD,IAG5CA,GAAK,EAGPmG,KAAKyxF,aAAc,CACrB,EAEA+C,gBAAgBl6F,UAAU+4B,YAAc,WACjCrzB,KAAKyxF,aACRzxF,KAAK4wF,YAET,EAeA8D,sBAAsBp6F,UAAU+4B,YAAc,SAAU+iB,GACtD,GAAIA,GAAep2C,KAAKsyD,cAActtB,KAAM,CAE1C,IACIqwD,EADqB,GACbr1F,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAO/C40E,EAAat1F,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EACpD60E,EAAuB,GAAdD,EAAkB,EAAID,EAE/BG,EAAuB,GAAdF,EAAkB,EAAID,EAEnCr1F,KAAKuyF,eAAep7D,aAAa,eAAgBo+D,EAAS,IAAMC,GAKhE,IAAIC,EAAuD,GAA5Cz1F,KAAKsyD,cAAclJ,eAAe,GAAGv5C,EAAE6Q,EAAS,OAAS,YAExE1gB,KAAKuyF,eAAep7D,aAAa,WAAYs+D,EAC/C,CACF,EAIAd,gBAAgBr6F,UAAUs6B,KAAO,SAAUk3B,GACzC9rD,KAAK8rD,eAAiBA,EACtB9rD,KAAKjB,KAAOsvD,YAAYC,iBACxBtuD,KAAKsvC,OAAS,IAAIvD,OAClB/rC,KAAK4wD,SAAW,EAChB5wD,KAAKglC,MAAO,EACZhlC,KAAKkwD,QAAS,CAChB,EAEAykC,gBAAgBr6F,UAAU+4B,YAAc,SAAUqiE,GAIhD,GAHA11F,KAAKkwD,QAAS,EACdlwD,KAAKglC,MAAO,EAER0wD,GAAc11F,KAAK8rD,eAAe9mB,KAAM,CAC1C,IAAIokB,EAAiBppD,KAAK8rD,eAAe1C,eACrCklC,EAASllC,EAAe,GAAGv5C,EAAE6Q,EAC7B7B,EAAWuqC,EAAe,GAAGv5C,EAAE6Q,EAC/Bi1E,EAA2C,IAA1BvsC,EAAe,GAAGv5C,EAAE6Q,EACrCk1E,EAAcxsC,EAAe,GAAGv5C,EAAE6Q,EAClCm1E,EAAaF,EAAiBC,EAAcxsC,EAAe,GAAGv5C,EAAE6Q,EAChEmsB,EAAOuc,EAAe,GAAGv5C,EAAE6Q,EAC3BirE,EAAWviC,EAAe,GAAGv5C,EAAE6Q,EAC/BqiE,EAAW35B,EAAe,GAAGv5C,EAAE6Q,EACnC1gB,KAAKsvC,OAAOp+B,QACZlR,KAAKsvC,OAAOnC,WAAWmhD,EAAO,IAAKA,EAAO,GAAIA,EAAO,IACrDtuF,KAAKsvC,OAAOvC,MAAmB,IAAb8oD,EAAiC,IAAdD,EAAoB,GACzD51F,KAAKsvC,OAAOjD,QAAQ02C,EAAW1kE,WAC/Bre,KAAKsvC,OAAOxC,cAAcD,EAAOxuB,WAAYstE,EAAW,IAAMttE,WAC9Dre,KAAKsvC,OAAOnC,UAAUtuB,EAAS,GAAIA,EAAS,GAAI,GAChD7e,KAAKglC,MAAO,EAERhlC,KAAK4wD,UAAYxH,EAAe,GAAGv5C,EAAE6Q,IACvC1gB,KAAK4wD,QAAUxH,EAAe,GAAGv5C,EAAE6Q,EACnC1gB,KAAKkwD,QAAS,EAElB,CACF,EAMA51C,gBAAgB,CAACq6E,iBAAkBC,oBAMnCt6E,gBAAgB,CAACq6E,iBAAkBE,mBAEnCzmE,iBAAiB,SAAUwgD,gBAC3BxgD,iBAAiB,OAAQ0iD,gBACzB1iD,iBAAiB,MAAO64C,aAExBt0B,eAAeE,iBAAiB,KAAMG,cACtCL,eAAeE,iBAAiB,KAAMI,wBACtCN,eAAeE,iBAAiB,KAAM+D,kBACtCjE,eAAeE,iBAAiB,KAAMgE,sBACtClE,eAAeE,iBAAiB,KAAM2G,gBACtC7G,eAAeE,iBAAiB,KAAMiK,oBAEtCr7B,qBAAqBykE,aACrBvkE,wBAAwBkrE,cACxByD,eACAM,aAEAh+B,iBAAiB,GAAIw+B,eAAe,GACpCx+B,iBAAiB,GAAI2+B,eAAe,GACpC3+B,iBAAiB,GAAI4+B,iBAAiB,GACtC5+B,iBAAiB,GAAI8+B,kBAAkB,GACvC9+B,iBAAiB,GAAIm/B,oBAAoB,GACzCn/B,iBAAiB,GAAIy/B,qBAAqB,GAC1Cz/B,iBAAiB,GAAI4hC,iBAAiB,GACtC5hC,iBAAiB,GAAI8hC,uBAAuB,GAC5C9hC,iBAAiB,GAAIgiC,oBAAoB,GACzClpB,eAAe,GAAImpB,mBAEZzjD,MAET,EA1rnBiEr4C,OAAOC,QAAU0gB,wCCQlF,IAAIo8E,EAAuB78F,EAAQ,MAEnC,SAAS88F,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3Ch9F,EAAOC,QAAU,WACf,SAASk9F,EAAKt8F,EAAOu8F,EAAUC,EAAextE,EAAUytE,EAAcC,GACpE,GAAIA,IAAWR,EAAf,CAIA,IAAIjuE,EAAM,IAAIpU,MACZ,mLAKF,MADAoU,EAAI7oB,KAAO,sBACL6oB,CAPN,CAQF,CAEA,SAAS0uE,IACP,OAAOL,CACT,CAHAA,EAAKM,WAAaN,EAMlB,IAAIO,EAAiB,CACnBC,MAAOR,EACPS,OAAQT,EACRU,KAAMV,EACNj+E,KAAMi+E,EACNW,OAAQX,EACRt1F,OAAQs1F,EACRpyC,OAAQoyC,EACRd,OAAQc,EAERY,IAAKZ,EACLa,QAASR,EACT33E,QAASs3E,EACTc,YAAad,EACbe,WAAYV,EACZj0C,KAAM4zC,EACNgB,SAAUX,EACVY,MAAOZ,EACPa,UAAWb,EACXtuD,MAAOsuD,EACPc,MAAOd,EAEPe,eAAgBtB,EAChBC,kBAAmBF,GAKrB,OAFAU,EAAec,UAAYd,EAEpBA,CACT,kBC/CE19F,EAAOC,QAAUC,EAAQ,KAARA,0BCNnBF,EAAOC,QAFoB,4ECL3B,IAAIw+F,EAAQv+F,EAAQ,MAChBw+F,EAAax+F,EAAQ,MA6BzB,SAASy+F,EAAQp3F,EAAGoP,GAClB,IAAIxC,EAAIvS,OAAOmH,KAAKxB,GACpB,GAAI3F,OAAOkM,sBAAuB,CAChC,IAAI2I,EAAI7U,OAAOkM,sBAAsBvG,GACrCoP,IAAMF,EAAIA,EAAEkxC,QAAO,SAAUhxC,GAC3B,OAAO/U,OAAO2L,yBAAyBhG,EAAGoP,GAAG1V,UAC/C,KAAKkT,EAAE1O,KAAKd,MAAMwP,EAAGsC,EACvB,CACA,OAAOtC,CACT,CACA,SAASyqF,EAAer3F,GACtB,IAAK,IAAIoP,EAAI,EAAGA,EAAIjV,UAAUX,OAAQ4V,IAAK,CACzC,IAAIxC,EAAI,MAAQzS,UAAUiV,GAAKjV,UAAUiV,GAAK,CAAC,EAC/CA,EAAI,EAAIgoF,EAAQ/8F,OAAOuS,IAAI,GAAIxI,SAAQ,SAAUgL,GAC/CnW,EAAgB+G,EAAGoP,EAAGxC,EAAEwC,GAC1B,IAAK/U,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiB4G,EAAG3F,OAAOi9F,0BAA0B1qF,IAAMwqF,EAAQ/8F,OAAOuS,IAAIxI,SAAQ,SAAUgL,GAC7I/U,OAAOwB,eAAemE,EAAGoP,EAAG/U,OAAO2L,yBAAyB4G,EAAGwC,GACjE,GACF,CACA,OAAOpP,CACT,CAWA,SAASu3F,EAAe3qF,GACtB,IAAIrT,EAXN,SAAsBqT,EAAGwC,GACvB,GAAI,iBAAmBxC,IAAMA,EAAG,OAAOA,EACvC,IAAI5M,EAAI4M,EAAE1I,OAAO2B,aACjB,QAAI,IAAW7F,EAAG,CAChB,IAAIzG,EAAIyG,EAAEzF,KAAKqS,EAAGwC,GAAK,WACvB,GAAI,iBAAmB7V,EAAG,OAAOA,EACjC,MAAM,IAAIR,UAAU,+CACtB,CACA,OAAQ,WAAaqW,EAAInH,OAASyG,QAAQ9B,EAC5C,CAEU4qF,CAAa5qF,EAAG,UACxB,MAAO,iBAAmBrT,EAAIA,EAAI0O,OAAO1O,EAC3C,CACA,SAASN,EAAgBD,EAAKa,EAAKkB,GAYjC,OAXAlB,EAAM09F,EAAe19F,MACVb,EACTqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAC9BkB,MAAOA,EACPrB,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZZ,EAAIa,GAAOkB,EAEN/B,CACT,CACA,SAASy+F,IAYP,OAXAA,EAAWp9F,OAAO2J,OAAS3J,OAAO2J,OAAOsmB,OAAS,SAAUjxB,GAC1D,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CACzC,IAAIa,EAASD,UAAUZ,GACvB,IAAK,IAAIM,KAAOO,EACVC,OAAOL,UAAUM,eAAeC,KAAKH,EAAQP,KAC/CR,EAAOQ,GAAOO,EAAOP,GAG3B,CACA,OAAOR,CACT,EACOo+F,EAASr6F,MAAMsC,KAAMvF,UAC9B,CAaA,SAASu9F,EAAyBt9F,EAAQu9F,GACxC,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAC5B,IACIP,EAAKN,EADLF,EAdN,SAAuCe,EAAQu9F,GAC7C,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAC5B,IAEIP,EAAKN,EAFLF,EAAS,CAAC,EACVu+F,EAAav9F,OAAOmH,KAAKpH,GAE7B,IAAKb,EAAI,EAAGA,EAAIq+F,EAAWp+F,OAAQD,IACjCM,EAAM+9F,EAAWr+F,GACbo+F,EAAS5wE,QAAQltB,IAAQ,IAC7BR,EAAOQ,GAAOO,EAAOP,IAEvB,OAAOR,CACT,CAGew+F,CAA8Bz9F,EAAQu9F,GAEnD,GAAIt9F,OAAOkM,sBAAuB,CAChC,IAAIuxF,EAAmBz9F,OAAOkM,sBAAsBnM,GACpD,IAAKb,EAAI,EAAGA,EAAIu+F,EAAiBt+F,OAAQD,IACvCM,EAAMi+F,EAAiBv+F,GACnBo+F,EAAS5wE,QAAQltB,IAAQ,GACxBQ,OAAOL,UAAUyG,qBAAqBlG,KAAKH,EAAQP,KACxDR,EAAOQ,GAAOO,EAAOP,GAEzB,CACA,OAAOR,CACT,CACA,SAAS0+F,EAAex7E,EAAKhjB,GAC3B,OAEF,SAAyBgjB,GACvB,GAAI7b,MAAMC,QAAQ4b,GAAM,OAAOA,CACjC,CAJSy7E,CAAgBz7E,IAtHzB,SAA+BnN,EAAGlH,GAChC,IAAI0E,EAAI,MAAQwC,EAAI,KAAO,oBAAsBlL,QAAUkL,EAAElL,OAAOoH,WAAa8D,EAAE,cACnF,GAAI,MAAQxC,EAAG,CACb,IAAI5M,EACF6M,EACAtT,EACA+V,EACArS,EAAI,GACJc,GAAI,EACJmR,GAAI,EACN,IACE,GAAI3V,GAAKqT,EAAIA,EAAErS,KAAK6U,IAAIpO,KAAM,IAAMkH,EAAG,CACrC,GAAI7N,OAAOuS,KAAOA,EAAG,OACrB7O,GAAI,CACN,MAAO,OAASA,GAAKiC,EAAIzG,EAAEgB,KAAKqS,IAAI/J,QAAU5F,EAAEiB,KAAK8B,EAAEjF,OAAQkC,EAAEzD,SAAW0O,GAAInK,GAAI,GACtF,CAAE,MAAOqR,GACPF,GAAI,EAAIrC,EAAIuC,CACd,CAAE,QACA,IACE,IAAKrR,GAAK,MAAQ6O,EAAEqrF,SAAW3oF,EAAI1C,EAAEqrF,SAAU59F,OAAOiV,KAAOA,GAAI,MACnE,CAAE,QACA,GAAIJ,EAAG,MAAMrC,CACf,CACF,CACA,OAAO5P,CACT,CACF,CA4FiCi7F,CAAsB37E,EAAKhjB,IAK5D,SAAqC2V,EAAGipF,GACtC,IAAKjpF,EAAG,OACR,GAAiB,kBAANA,EAAgB,OAAOkpF,EAAkBlpF,EAAGipF,GACvD,IAAItrF,EAAIxS,OAAOL,UAAUwC,SAASjC,KAAK2U,GAAGzS,MAAM,GAAI,GAC1C,WAANoQ,GAAkBqC,EAAEpU,cAAa+R,EAAIqC,EAAEpU,YAAY4D,MACvD,GAAU,QAANmO,GAAqB,QAANA,EAAa,OAAOnM,MAAM23F,KAAKnpF,GAClD,GAAU,cAANrC,GAAqB,2CAA2C5F,KAAK4F,GAAI,OAAOurF,EAAkBlpF,EAAGipF,EAC3G,CAZkEG,CAA4B/7E,EAAKhjB,IAkBnG,WACE,MAAM,IAAIR,UAAU,4IACtB,CApByGw/F,EACzG,CAYA,SAASH,EAAkB77E,EAAKnC,IACnB,MAAPA,GAAeA,EAAMmC,EAAI/iB,UAAQ4gB,EAAMmC,EAAI/iB,QAC/C,IAAK,IAAID,EAAI,EAAGymF,EAAO,IAAIt/E,MAAM0Z,GAAM7gB,EAAI6gB,EAAK7gB,IAAKymF,EAAKzmF,GAAKgjB,EAAIhjB,GACnE,OAAOymF,CACT,CAWA,IAAIwY,EAA8C,qBAAXv4F,QAAqD,qBAApBA,OAAO3C,UAAqE,qBAAlC2C,OAAO3C,SAASE,cAAgC05F,EAAMuB,gBAAkBvB,EAAMwB,UAUhM,SAASC,EAAiB77F,GACxB,IAAI87F,EAAM1B,EAAM2B,OAAO/7F,GAMvB,OAHA07F,GAA0B,WACxBI,EAAIvL,QAAUvwF,CAChB,IACOo6F,EAAM4B,aAAY,WACvB,IAAK,IAAIC,EAAO5+F,UAAUX,OAAQgT,EAAO,IAAI9L,MAAMq4F,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExsF,EAAKwsF,GAAQ7+F,UAAU6+F,GAEzB,OAAOJ,EAAIvL,QAAQjwF,WAAM,EAAQoP,EACnC,GAAG,GACL,CAEA,IAwCIysF,EAAc,CAAC,MAAO,eAAgB,qBAAsB,QAAS,QAAS,UAAW,gBAAiB,UAAW,YACrHC,EAAW,CACbxrF,QAAS,IACTD,UAAW,IACX0rF,MAAO,KACPxrF,OAAQ,GACRC,OAAQ,GACRT,SAAU,EACVwD,MAAO,EACPyoF,SAAU,EACVC,cAAc,EACdC,oBAAoB,EACpBlsF,WAAW,EACXC,aAAa,EACbC,qBAAqB,GAEnBisF,EAAa,SAAoBjgG,GACnC,IAAIkgG,EAAgBn/F,OAAOo/F,YAAYp/F,OAAOsI,QAAQrJ,GAAO8mD,QAAO,SAAUs5C,GAG5E,YAAiB18F,IAFL+6F,EAAe2B,EAAM,GACjB,EAElB,KACIC,EAAWzC,EAAM0C,SAAQ,WACzB,OAAOvC,EAAeA,EAAe,CAAC,EAAG6B,GAAWM,EACtD,GAAG,CAAClgG,IACJs/F,EAAMe,EAASf,IACfS,EAAeM,EAASN,aACxBC,EAAqBK,EAASL,mBAC9BH,EAAQQ,EAASR,MACjBU,EAAQF,EAASE,MACjBC,EAAUH,EAASG,QACnBC,EAAgBJ,EAASI,cACzBC,EAAUL,EAASK,QACnBC,EAAWN,EAASM,SACpBC,EAAgBxC,EAAyBiC,EAAUV,GACjDkB,EAAajD,EAAM2B,SACnBuB,EAAWlD,EAAM2B,SACjBwB,EAAmBnD,EAAM2B,QAAO,GAChCyB,EAAiB3B,GAAiB,WACpC,OA/EwB,SAA+Bv8F,EAAI9C,GAC7D,IAAIoU,EAAUpU,EAAMoU,QAClB0rF,EAAW9/F,EAAM8/F,SACjBjsF,EAAW7T,EAAM6T,SACjBsB,EAAWnV,EAAMmV,SACjB8lB,EAAMj7B,EAAMi7B,IACZ3kB,EAAetW,EAAMsW,aACrBJ,EAAWlW,EAAMkW,SACjB7B,EAASrU,EAAMqU,OACfF,EAAYnU,EAAMmU,UAClBkD,EAAQrX,EAAMqX,MACd/C,EAAStU,EAAMsU,OACfR,EAAY9T,EAAM8T,UAClBC,EAAc/T,EAAM+T,YACpBC,EAAsBhU,EAAMgU,oBAC5BO,EAAkBvU,EAAMuU,gBACxBC,EAAiBxU,EAAMwU,eACvBC,EAAgBzU,EAAMyU,cACtBkD,EAAS3X,EAAM2X,OACjB,OAAO,IAAIkmF,EAAWoD,QAAQn+F,EAAIm4B,EAAK,CACrCtnB,SAAU0D,EACVxD,SAAUA,EACVO,QAASA,EACTR,cAAeksF,EACf3qF,SAAUA,EACVmB,aAAcA,EACdJ,SAAUA,EACV/B,UAAWA,EACXE,OAAQA,EACRC,OAAQA,EACRqD,OAAQA,EACR7D,UAAWA,EACXE,oBAAqBA,EACrBD,YAAaA,EACbQ,gBAAiBA,EACjBC,eAAgBA,EAChBC,cAAeA,GAEnB,CAyCWysF,CAAqC,kBAAR5B,EAAmBA,EAAMA,EAAIvL,QAAS6M,EAC5E,IACIO,EAAa9B,GAAiB,SAAU+B,GAC1C,IAAIC,EAAUR,EAAW9M,QACzB,GAAIsN,IAAYD,EACd,OAAOC,EAET,IAAIC,EAAaN,IAEjB,OADAH,EAAW9M,QAAUuN,EACdA,CACT,IACIjqF,EAAQgoF,GAAiB,WAC3B,IAAIkC,EAAM,WACR,OAAOJ,GAAW,GAAM9pF,OAAM,WAClB,OAAVkpF,QAA4B,IAAVA,GAAoBA,EAAM,CAC1C9oF,YAAaA,EACbH,MAAOA,EACPD,MAAOmqF,EACP/rF,OAAQA,GAEZ,GACF,EACIoqF,GAASA,EAAQ,EACnBiB,EAAS/M,QAAU38E,WAAWmqF,EAAa,IAAR1B,GAEnC0B,IAEU,OAAZf,QAAgC,IAAZA,GAAsBA,EAAQ,CAChD/oF,YAAaA,EACbH,MAAOA,EACP7B,OAAQA,GAEZ,IACIgC,EAAc4nF,GAAiB,WACjC8B,IAAa1pF,cACK,OAAlBgpF,QAA4C,IAAlBA,GAA4BA,EAAc,CAClEnpF,MAAOA,EACPD,MAAOmqF,EACP/rF,OAAQA,GAEZ,IACI6B,EAAQ+nF,GAAiB,WAIvB8B,IAAar+F,KACfg+F,EAAS/M,SAAWn0E,aAAakhF,EAAS/M,SAC1CoN,IAAa7pF,QACD,OAAZopF,QAAgC,IAAZA,GAAsBA,EAAQ,CAChDjpF,YAAaA,EACbJ,MAAOmqF,EACP/rF,OAAQA,IAGd,IACIA,EAAS4pF,GAAiB,SAAUoC,GACtCN,IAAa1rF,OAAOgsF,GACP,OAAbd,QAAkC,IAAbA,GAAuBA,EAAS,CACnDlpF,YAAaA,EACbH,MAAOA,EACPD,MAAOmqF,GAEX,IACIA,EAAUnC,GAAiB,WAC7B/nF,IACAD,GACF,IACIqqF,EAAkBrC,GAAiB,SAAUsC,GAC3C5B,IACE4B,GACFrqF,IAEFD,IAEJ,IAcA,OAbAumF,EAAMwB,WAAU,WACT2B,EAAiBhN,QAGXiM,GACT0B,GAAgB,IAHhBX,EAAiBhN,SAAU,EAC3B2N,IAIJ,GAAG,CAAC1B,EAAoBe,EAAkBW,EAAiB7B,EAAO7/F,EAAMqX,MAAOrX,EAAMsU,OAAQtU,EAAMqU,OAAQrU,EAAM6T,SAAU7T,EAAMmU,UAAWnU,EAAM8/F,SAAU9/F,EAAMoU,QAASpU,EAAMsW,eACjLsnF,EAAMwB,WAAU,WACd,OAAO,WACL9nF,GACF,CACF,GAAG,CAACA,IACG,CACLD,MAAOmqF,EACP/pF,YAAaA,EACbH,MAAOA,EACP7B,OAAQA,EACR0rF,WAAYA,EAEhB,EAEIS,EAAY,CAAC,YAAa,SAAU,iBAAkB,WAAY,SAsFtExiG,EAAQ,GArFM,SAAiBY,GAC7B,IAAImuE,EAAYnuE,EAAMmuE,UACpBhO,EAASngE,EAAMmgE,OACf0hC,EAAiB7hG,EAAM6hG,eACvB1iB,EAAWn/E,EAAMm/E,SACjBtzE,EAAQ7L,EAAM6L,MACdi2F,EAAkB1D,EAAyBp+F,EAAO4hG,GAChDG,EAAenE,EAAM2B,OAAO,MAC5BwB,EAAmBnD,EAAM2B,QAAO,GAChCyC,EAAc/B,EAAWlC,EAAeA,EAAe,CAAC,EAAG+D,GAAkB,CAAC,EAAG,CACjFxC,IAAKyC,EACLhC,aAAkC,oBAAb5gB,GAA2C,IAAhBn/E,EAAM6/F,MAEtDG,oBAAoB,KAEtB3oF,EAAQ2qF,EAAY3qF,MACpBC,EAAQ0qF,EAAY1qF,MACpB2qF,EAAgBD,EAAYvsF,OAC5BgC,EAAcuqF,EAAYvqF,YAC1B0pF,EAAaa,EAAYb,WACvBK,EAAUnC,GAAiB,WAC7BhoF,GACF,IACI5B,EAAS4pF,GAAiB,SAAUpkE,GACjCj7B,EAAMkiG,eACT5qF,IAEF2qF,EAAchnE,EAChB,IACIknE,EAAoB9C,GAAiB,WACT,oBAAnBr/F,EAAMm/E,UAET4iB,EAAahO,mBAAmBqO,QAOxCjB,IANIzqF,QAAQ9B,MAAM,yKAOpB,IACAgpF,EAAMwB,WAAU,WACd+C,GACF,GAAG,CAACA,IACJvE,EAAMwB,WAAU,WACV2B,EAAiBhN,SACnBt+E,EAAOzV,EAAMi7B,IAEjB,GAAG,CAACj7B,EAAMi7B,IAAKxlB,IACf,IAAI4sF,EAAqBliC,GAAUngE,EAkBnC,OAfA49F,EAAMwB,WAAU,WACVj/B,GAAU4gC,EAAiBhN,SAC7ByN,GAEJ,GAAG,CAACA,EAASrhC,EAAQkiC,IAGrBzE,EAAMwB,WAAU,YACTj/B,GAAU4gC,EAAiBhN,SAC9ByN,GAEJ,GAAG,CAACA,EAASrhC,EAAQngE,EAAMqX,MAAOrX,EAAMsU,OAAQtU,EAAMqU,OAAQrU,EAAM6T,SAAU7T,EAAMmU,UAAWnU,EAAM8/F,SAAU9/F,EAAMoU,QAASpU,EAAMmuE,UAAWnuE,EAAMsW,eACrJsnF,EAAMwB,WAAU,WACd2B,EAAiBhN,SAAU,CAC7B,GAAG,IACqB,oBAAb5U,EAEFA,EAAS,CACd0hB,WAAYkB,EACZ1qF,MAAOA,EACPC,MAAOA,EACP7B,OAAQwsF,EACRxqF,YAAaA,EACb0pF,WAAYA,IAGIvD,EAAM15F,cAAc,OAAQi6F,EAAS,CACvDhwB,UAAWA,EACXmxB,IAAKyC,EACLl2F,MAAOA,GACNg2F,GAAwC,qBAAhB7hG,EAAMqX,MAAwB8pF,IAAa7qF,aAAatW,EAAMqX,OAAS,GACpG,+BC1aa,IAAIirF,EAAGjjG,EAAQ,MAASkjG,EAAGljG,EAAQ,MAAa,SAAS4W,EAAEtS,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEE,EAAE,EAAEA,EAAEhD,UAAUX,OAAO2D,IAAID,GAAG,WAAW4+F,mBAAmB3hG,UAAUgD,IAAI,MAAM,yBAAyBF,EAAE,WAAWC,EAAE,gHAAgH,CAAC,IAAI+0E,EAAG,IAAI8pB,IAAIC,EAAG,CAAC,EAAE,SAASC,EAAGh/F,EAAEC,GAAGg/F,EAAGj/F,EAAEC,GAAGg/F,EAAGj/F,EAAE,UAAUC,EAAE,CACxb,SAASg/F,EAAGj/F,EAAEC,GAAW,IAAR8+F,EAAG/+F,GAAGC,EAAMD,EAAE,EAAEA,EAAEC,EAAE1D,OAAOyD,IAAIg1E,EAAGvS,IAAIxiE,EAAED,GAAG,CAC5D,IAAIk/F,IAAK,qBAAqBl8F,QAAQ,qBAAqBA,OAAO3C,UAAU,qBAAqB2C,OAAO3C,SAASE,eAAe4+F,EAAG/hG,OAAOL,UAAUM,eAAe+hG,EAAG,8VAA8VC,EACpgB,CAAC,EAAEC,EAAG,CAAC,EACiN,SAASn8E,EAAEnjB,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,EAAEsiB,GAAG3gB,KAAK88F,gBAAgB,IAAIt/F,GAAG,IAAIA,GAAG,IAAIA,EAAEwC,KAAK+8F,cAAcl8E,EAAE7gB,KAAKg9F,mBAAmB18F,EAAEN,KAAKi9F,gBAAgBx/F,EAAEuC,KAAKspF,aAAa/rF,EAAEyC,KAAKjB,KAAKvB,EAAEwC,KAAKk9F,YAAY7+F,EAAE2B,KAAKm9F,kBAAkBx8E,CAAC,CAAC,IAAIkvB,EAAE,CAAC,EACpb,uIAAuI9xC,MAAM,KAAK2G,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAemH,SAAQ,SAASnH,GAAG,IAAIC,EAAED,EAAE,GAAGsyC,EAAEryC,GAAG,IAAIkjB,EAAEljB,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAASmH,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE6/C,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiB14C,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8OQ,MAAM,KAAK2G,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE6/C,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAY14C,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAYmH,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQmH,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAASmH,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE6/C,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIggD,EAAG,gBAAgB,SAASl3E,EAAG3oB,GAAG,OAAOA,EAAE,GAAG8/F,aAAa,CAIxZ,SAASC,EAAG//F,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAEuvC,EAAEj1C,eAAe4C,GAAGqyC,EAAEryC,GAAG,MAAQ,OAAO8C,EAAE,IAAIA,EAAEvB,KAAK8hB,KAAK,EAAErjB,EAAE1D,SAAS,MAAM0D,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,MAP9I,SAAYD,EAAEC,EAAEC,EAAEojB,GAAG,GAAG,OAAOrjB,GAAG,qBAAqBA,GADqE,SAAYD,EAAEC,EAAEC,EAAEojB,GAAG,GAAG,OAAOpjB,GAAG,IAAIA,EAAEsB,KAAK,OAAM,EAAG,cAAcvB,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGqjB,IAAc,OAAOpjB,GAASA,EAAEq/F,gBAAmD,WAAnCv/F,EAAEA,EAAE6/C,cAAcrgD,MAAM,EAAE,KAAsB,UAAUQ,GAAE,QAAQ,OAAM,EAAG,CAC/TggG,CAAGhgG,EAAEC,EAAEC,EAAEojB,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOpjB,EAAE,OAAOA,EAAEsB,MAAM,KAAK,EAAE,OAAOvB,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOuL,MAAMvL,GAAG,KAAK,EAAE,OAAOuL,MAAMvL,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOtEggG,CAAGhgG,EAAEC,EAAE6C,EAAEugB,KAAKpjB,EAAE,MAAMojB,GAAG,OAAOvgB,EARxK,SAAY/C,GAAG,QAAGm/F,EAAG7hG,KAAKgiG,EAAGt/F,KAAem/F,EAAG7hG,KAAK+hG,EAAGr/F,KAAeo/F,EAAGp1F,KAAKhK,GAAUs/F,EAAGt/F,IAAG,GAAGq/F,EAAGr/F,IAAG,GAAS,GAAE,CAQwDkgG,CAAGjgG,KAAK,OAAOC,EAAEF,EAAEy1F,gBAAgBx1F,GAAGD,EAAE45B,aAAa35B,EAAE,GAAGC,IAAI6C,EAAE28F,gBAAgB1/F,EAAE+C,EAAEgpF,cAAc,OAAO7rF,EAAE,IAAI6C,EAAEvB,MAAQ,GAAGtB,GAAGD,EAAE8C,EAAEy8F,cAAcl8E,EAAEvgB,EAAE08F,mBAAmB,OAAOv/F,EAAEF,EAAEy1F,gBAAgBx1F,IAAaC,EAAE,KAAX6C,EAAEA,EAAEvB,OAAc,IAAIuB,IAAG,IAAK7C,EAAE,GAAG,GAAGA,EAAEojB,EAAEtjB,EAAEwuB,eAAelL,EAAErjB,EAAEC,GAAGF,EAAE45B,aAAa35B,EAAEC,KAAI,CAHjd,0jCAA0jCM,MAAM,KAAK2G,SAAQ,SAASnH,GAAG,IAAIC,EAAED,EAAEwS,QAAQqtF,EACzmCl3E,GAAI2pB,EAAEryC,GAAG,IAAIkjB,EAAEljB,EAAE,GAAE,EAAGD,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2EQ,MAAM,KAAK2G,SAAQ,SAASnH,GAAG,IAAIC,EAAED,EAAEwS,QAAQqtF,EAAGl3E,GAAI2pB,EAAEryC,GAAG,IAAIkjB,EAAEljB,EAAE,GAAE,EAAGD,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAamH,SAAQ,SAASnH,GAAG,IAAIC,EAAED,EAAEwS,QAAQqtF,EAAGl3E,GAAI2pB,EAAEryC,GAAG,IAAIkjB,EAAEljB,EAAE,GAAE,EAAGD,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAemH,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE6/C,cAAc,MAAK,GAAG,EAAG,IACldvN,EAAE6tD,UAAU,IAAIh9E,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAchc,SAAQ,SAASnH,GAAGsyC,EAAEtyC,GAAG,IAAImjB,EAAEnjB,EAAE,GAAE,EAAGA,EAAE6/C,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAIugD,EAAGzB,EAAG0B,mDAAmDC,EAAGr5F,OAAOs5F,IAAI,iBAAiBC,EAAGv5F,OAAOs5F,IAAI,gBAAgBE,EAAGx5F,OAAOs5F,IAAI,kBAAkBG,EAAGz5F,OAAOs5F,IAAI,qBAAqBI,EAAG15F,OAAOs5F,IAAI,kBAAkBK,EAAG35F,OAAOs5F,IAAI,kBAAkBM,EAAG55F,OAAOs5F,IAAI,iBAAiBO,EAAG75F,OAAOs5F,IAAI,qBAAqBQ,EAAG95F,OAAOs5F,IAAI,kBAAkBS,EAAG/5F,OAAOs5F,IAAI,uBAAuBU,EAAGh6F,OAAOs5F,IAAI,cAAcW,EAAGj6F,OAAOs5F,IAAI,cAAct5F,OAAOs5F,IAAI,eAAet5F,OAAOs5F,IAAI,0BACje,IAAIY,EAAGl6F,OAAOs5F,IAAI,mBAAmBt5F,OAAOs5F,IAAI,uBAAuBt5F,OAAOs5F,IAAI,eAAet5F,OAAOs5F,IAAI,wBAAwB,IAAIa,EAAGn6F,OAAOoH,SAAS,SAASgzF,EAAGrhG,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEohG,GAAIphG,EAAEohG,IAAKphG,EAAE,eAA0CA,EAAE,IAAI,CAAC,IAAoBshG,EAAhBt6F,EAAE5J,OAAO2J,OAAU,SAASw6F,EAAGvhG,GAAG,QAAG,IAASshG,EAAG,IAAI,MAAMprF,OAAQ,CAAC,MAAMhW,GAAG,IAAID,EAAEC,EAAEgwE,MAAMzgD,OAAOjZ,MAAM,gBAAgB8qF,EAAGrhG,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAKqhG,EAAGthG,CAAC,CAAC,IAAIwhG,GAAG,EACzb,SAASC,EAAGzhG,EAAEC,GAAG,IAAID,GAAGwhG,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAIthG,EAAEgW,MAAMwrF,kBAAkBxrF,MAAMwrF,uBAAkB,EAAO,IAAI,GAAGzhG,EAAE,GAAGA,EAAE,WAAW,MAAMiW,OAAQ,EAAE9Y,OAAOwB,eAAeqB,EAAElD,UAAU,QAAQ,CAAC+M,IAAI,WAAW,MAAMoM,OAAQ,IAAI,kBAAkByrF,SAASA,QAAQC,UAAU,CAAC,IAAID,QAAQC,UAAU3hG,EAAE,GAAG,CAAC,MAAMgL,GAAG,IAAIqY,EAAErY,CAAC,CAAC02F,QAAQC,UAAU5hG,EAAE,GAAGC,EAAE,KAAK,CAAC,IAAIA,EAAE3C,MAAM,CAAC,MAAM2N,GAAGqY,EAAErY,CAAC,CAACjL,EAAE1C,KAAK2C,EAAElD,UAAU,KAAK,CAAC,IAAI,MAAMmZ,OAAQ,CAAC,MAAMjL,GAAGqY,EAAErY,CAAC,CAACjL,GAAG,CAAC,CAAC,MAAMiL,GAAG,GAAGA,GAAGqY,GAAG,kBAAkBrY,EAAEilE,MAAM,CAAC,IAAI,IAAIntE,EAAEkI,EAAEilE,MAAM1vE,MAAM,MACnfM,EAAEwiB,EAAE4sD,MAAM1vE,MAAM,MAAM4iB,EAAErgB,EAAExG,OAAO,EAAE6V,EAAEtR,EAAEvE,OAAO,EAAE,GAAG6mB,GAAG,GAAGhR,GAAGrP,EAAEqgB,KAAKtiB,EAAEsR,IAAIA,IAAI,KAAK,GAAGgR,GAAG,GAAGhR,EAAEgR,IAAIhR,IAAI,GAAGrP,EAAEqgB,KAAKtiB,EAAEsR,GAAG,CAAC,GAAG,IAAIgR,GAAG,IAAIhR,EAAG,MAAMgR,IAAQ,IAAJhR,GAASrP,EAAEqgB,KAAKtiB,EAAEsR,GAAG,CAAC,IAAIhL,EAAE,KAAKrE,EAAEqgB,GAAG5Q,QAAQ,WAAW,QAA6F,OAArFxS,EAAEsX,aAAalQ,EAAEy6F,SAAS,iBAAiBz6F,EAAEA,EAAEoL,QAAQ,cAAcxS,EAAEsX,cAAqBlQ,CAAC,QAAO,GAAGgc,GAAG,GAAGhR,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQovF,GAAG,EAAGtrF,MAAMwrF,kBAAkBxhG,CAAC,CAAC,OAAOF,EAAEA,EAAEA,EAAEsX,aAAatX,EAAEyB,KAAK,IAAI8/F,EAAGvhG,GAAG,EAAE,CAC9Z,SAAS8hG,EAAG9hG,GAAG,OAAOA,EAAEmK,KAAK,KAAK,EAAE,OAAOo3F,EAAGvhG,EAAEwB,MAAM,KAAK,GAAG,OAAO+/F,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAOvhG,EAAEyhG,EAAGzhG,EAAEwB,MAAK,GAAM,KAAK,GAAG,OAAOxB,EAAEyhG,EAAGzhG,EAAEwB,KAAKyS,QAAO,GAAM,KAAK,EAAE,OAAOjU,EAAEyhG,EAAGzhG,EAAEwB,MAAK,GAAM,QAAQ,MAAM,GAAG,CACxR,SAASugG,EAAG/hG,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAEsX,aAAatX,EAAEyB,MAAM,KAAK,GAAG,kBAAkBzB,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKygG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkBhhG,EAAE,OAAOA,EAAEgiG,UAAU,KAAKnB,EAAG,OAAO7gG,EAAEsX,aAAa,WAAW,YAAY,KAAKspF,EAAG,OAAO5gG,EAAEiiG,SAAS3qF,aAAa,WAAW,YAAY,KAAKwpF,EAAG,IAAI7gG,EAAED,EAAEiU,OAC7Z,OADoajU,EAAEA,EAAEsX,eACndtX,EAAE,MADieA,EAAEC,EAAEqX,aAClfrX,EAAEwB,MAAM,IAAY,cAAczB,EAAE,IAAI,cAAqBA,EAAE,KAAKihG,EAAG,OAA6B,QAAtBhhG,EAAED,EAAEsX,aAAa,MAAcrX,EAAE8hG,EAAG/hG,EAAEwB,OAAO,OAAO,KAAK0/F,EAAGjhG,EAAED,EAAEkiG,SAASliG,EAAEA,EAAEmiG,MAAM,IAAI,OAAOJ,EAAG/hG,EAAEC,GAAG,CAAC,MAAMC,GAAG,EAAE,OAAO,IAAI,CAC3M,SAASkiG,EAAGpiG,GAAG,IAAIC,EAAED,EAAEwB,KAAK,OAAOxB,EAAEmK,KAAK,KAAK,GAAG,MAAM,QAAQ,KAAK,EAAE,OAAOlK,EAAEqX,aAAa,WAAW,YAAY,KAAK,GAAG,OAAOrX,EAAEgiG,SAAS3qF,aAAa,WAAW,YAAY,KAAK,GAAG,MAAM,qBAAqB,KAAK,GAAG,OAAkBtX,GAAXA,EAAEC,EAAEgU,QAAWqD,aAAatX,EAAEyB,MAAM,GAAGxB,EAAEqX,cAAc,KAAKtX,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK,EAAE,MAAM,WAAW,KAAK,EAAE,OAAOC,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG,OAAO8hG,EAAG9hG,GAAG,KAAK,EAAE,OAAOA,IAAIygG,EAAG,aAAa,OAAO,KAAK,GAAG,MAAM,YACtf,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,KAAK,GAAG,MAAM,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,oBAAoBzgG,EAAE,OAAOA,EAAEqX,aAAarX,EAAEwB,MAAM,KAAK,GAAG,kBAAkBxB,EAAE,OAAOA,EAAE,OAAO,IAAI,CAAC,SAASoiG,EAAGriG,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAqB,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,GAAG,CACra,SAASsiG,EAAGtiG,GAAG,IAAIC,EAAED,EAAEwB,KAAK,OAAOxB,EAAEA,EAAEuiG,WAAW,UAAUviG,EAAE6/C,gBAAgB,aAAa5/C,GAAG,UAAUA,EAAE,CAEtF,SAASuiG,EAAGxiG,GAAGA,EAAEyiG,gBAAgBziG,EAAEyiG,cADvD,SAAYziG,GAAG,IAAIC,EAAEqiG,EAAGtiG,GAAG,UAAU,QAAQE,EAAE9C,OAAO2L,yBAAyB/I,EAAEnC,YAAYd,UAAUkD,GAAGqjB,EAAE,GAAGtjB,EAAEC,GAAG,IAAID,EAAE3C,eAAe4C,IAAI,qBAAqBC,GAAG,oBAAoBA,EAAEE,KAAK,oBAAoBF,EAAE4J,IAAI,CAAC,IAAI/G,EAAE7C,EAAEE,IAAIU,EAAEZ,EAAE4J,IAAiL,OAA7K1M,OAAOwB,eAAeoB,EAAEC,EAAE,CAACvD,cAAa,EAAG0D,IAAI,WAAW,OAAO2C,EAAEzF,KAAKmF,KAAK,EAAEqH,IAAI,SAAS9J,GAAGsjB,EAAE,GAAGtjB,EAAEc,EAAExD,KAAKmF,KAAKzC,EAAE,IAAI5C,OAAOwB,eAAeoB,EAAEC,EAAE,CAACxD,WAAWyD,EAAEzD,aAAmB,CAAC6rC,SAAS,WAAW,OAAOhlB,CAAC,EAAEo/E,SAAS,SAAS1iG,GAAGsjB,EAAE,GAAGtjB,CAAC,EAAE2iG,aAAa,WAAW3iG,EAAEyiG,cACxf,YAAYziG,EAAEC,EAAE,EAAE,CAAC,CAAkD2iG,CAAG5iG,GAAG,CAAC,SAAS6iG,EAAG7iG,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEyiG,cAAc,IAAIxiG,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEqoC,WAAehlB,EAAE,GAAqD,OAAlDtjB,IAAIsjB,EAAEg/E,EAAGtiG,GAAGA,EAAE8iG,QAAQ,OAAO,QAAQ9iG,EAAElC,QAAOkC,EAAEsjB,KAAapjB,IAAGD,EAAEyiG,SAAS1iG,IAAG,EAAM,CAAC,SAAS+iG,EAAG/iG,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBK,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOL,EAAEgjG,eAAehjG,EAAE65B,IAAI,CAAC,MAAM55B,GAAG,OAAOD,EAAE65B,IAAI,CAAC,CACpa,SAASopE,EAAGjjG,EAAEC,GAAG,IAAIC,EAAED,EAAE6iG,QAAQ,OAAO97F,EAAE,CAAC,EAAE/G,EAAE,CAACijG,oBAAe,EAAOC,kBAAa,EAAOrlG,WAAM,EAAOglG,QAAQ,MAAM5iG,EAAEA,EAAEF,EAAEojG,cAAcC,gBAAgB,CAAC,SAASC,EAAGtjG,EAAEC,GAAG,IAAIC,EAAE,MAAMD,EAAEkjG,aAAa,GAAGljG,EAAEkjG,aAAa7/E,EAAE,MAAMrjB,EAAE6iG,QAAQ7iG,EAAE6iG,QAAQ7iG,EAAEijG,eAAehjG,EAAEmiG,EAAG,MAAMpiG,EAAEnC,MAAMmC,EAAEnC,MAAMoC,GAAGF,EAAEojG,cAAc,CAACC,eAAe//E,EAAEigF,aAAarjG,EAAEsjG,WAAW,aAAavjG,EAAEuB,MAAM,UAAUvB,EAAEuB,KAAK,MAAMvB,EAAE6iG,QAAQ,MAAM7iG,EAAEnC,MAAM,CAAC,SAAS2lG,EAAGzjG,EAAEC,GAAe,OAAZA,EAAEA,EAAE6iG,UAAiB/C,EAAG//F,EAAE,UAAUC,GAAE,EAAG,CAC9d,SAASyjG,EAAG1jG,EAAEC,GAAGwjG,EAAGzjG,EAAEC,GAAG,IAAIC,EAAEmiG,EAAGpiG,EAAEnC,OAAOwlB,EAAErjB,EAAEuB,KAAK,GAAG,MAAMtB,EAAK,WAAWojB,GAAM,IAAIpjB,GAAG,KAAKF,EAAElC,OAAOkC,EAAElC,OAAOoC,KAAEF,EAAElC,MAAM,GAAGoC,GAAOF,EAAElC,QAAQ,GAAGoC,IAAIF,EAAElC,MAAM,GAAGoC,QAAQ,GAAG,WAAWojB,GAAG,UAAUA,EAA8B,YAA3BtjB,EAAEy1F,gBAAgB,SAAgBx1F,EAAE5C,eAAe,SAASwwB,GAAG7tB,EAAEC,EAAEuB,KAAKtB,GAAGD,EAAE5C,eAAe,iBAAiBwwB,GAAG7tB,EAAEC,EAAEuB,KAAK6gG,EAAGpiG,EAAEkjG,eAAe,MAAMljG,EAAE6iG,SAAS,MAAM7iG,EAAEijG,iBAAiBljG,EAAEkjG,iBAAiBjjG,EAAEijG,eAAe,CACla,SAASS,EAAG3jG,EAAEC,EAAEC,GAAG,GAAGD,EAAE5C,eAAe,UAAU4C,EAAE5C,eAAe,gBAAgB,CAAC,IAAIimB,EAAErjB,EAAEuB,KAAK,KAAK,WAAW8hB,GAAG,UAAUA,QAAG,IAASrjB,EAAEnC,OAAO,OAAOmC,EAAEnC,OAAO,OAAOmC,EAAE,GAAGD,EAAEojG,cAAcG,aAAarjG,GAAGD,IAAID,EAAElC,QAAQkC,EAAElC,MAAMmC,GAAGD,EAAEmjG,aAAaljG,CAAC,CAAU,MAATC,EAAEF,EAAEyB,QAAczB,EAAEyB,KAAK,IAAIzB,EAAEkjG,iBAAiBljG,EAAEojG,cAAcC,eAAe,KAAKnjG,IAAIF,EAAEyB,KAAKvB,EAAE,CACzV,SAAS2tB,GAAG7tB,EAAEC,EAAEC,GAAM,WAAWD,GAAG8iG,EAAG/iG,EAAE4jG,iBAAiB5jG,IAAE,MAAME,EAAEF,EAAEmjG,aAAa,GAAGnjG,EAAEojG,cAAcG,aAAavjG,EAAEmjG,eAAe,GAAGjjG,IAAIF,EAAEmjG,aAAa,GAAGjjG,GAAE,CAAC,IAAI2jG,GAAGpgG,MAAMC,QAC7K,SAAS0/D,GAAGpjE,EAAEC,EAAEC,EAAEojB,GAAe,GAAZtjB,EAAEA,EAAE8P,QAAW7P,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAI8C,EAAE,EAAEA,EAAE7C,EAAE3D,OAAOwG,IAAI9C,EAAE,IAAIC,EAAE6C,KAAI,EAAG,IAAI7C,EAAE,EAAEA,EAAEF,EAAEzD,OAAO2D,IAAI6C,EAAE9C,EAAE5C,eAAe,IAAI2C,EAAEE,GAAGpC,OAAOkC,EAAEE,GAAG4jG,WAAW/gG,IAAI/C,EAAEE,GAAG4jG,SAAS/gG,GAAGA,GAAGugB,IAAItjB,EAAEE,GAAG6jG,iBAAgB,EAAG,KAAK,CAAmB,IAAlB7jG,EAAE,GAAGmiG,EAAGniG,GAAGD,EAAE,KAAS8C,EAAE,EAAEA,EAAE/C,EAAEzD,OAAOwG,IAAI,CAAC,GAAG/C,EAAE+C,GAAGjF,QAAQoC,EAAiD,OAA9CF,EAAE+C,GAAG+gG,UAAS,OAAGxgF,IAAItjB,EAAE+C,GAAGghG,iBAAgB,IAAW,OAAO9jG,GAAGD,EAAE+C,GAAGihG,WAAW/jG,EAAED,EAAE+C,GAAG,CAAC,OAAO9C,IAAIA,EAAE6jG,UAAS,EAAG,CAAC,CACxY,SAASG,GAAGjkG,EAAEC,GAAG,GAAG,MAAMA,EAAEikG,wBAAwB,MAAMhuF,MAAM5D,EAAE,KAAK,OAAOtL,EAAE,CAAC,EAAE/G,EAAE,CAACnC,WAAM,EAAOqlG,kBAAa,EAAO3nB,SAAS,GAAGx7E,EAAEojG,cAAcG,cAAc,CAAC,SAASY,GAAGnkG,EAAEC,GAAG,IAAIC,EAAED,EAAEnC,MAAM,GAAG,MAAMoC,EAAE,CAA+B,GAA9BA,EAAED,EAAEu7E,SAASv7E,EAAEA,EAAEkjG,aAAgB,MAAMjjG,EAAE,CAAC,GAAG,MAAMD,EAAE,MAAMiW,MAAM5D,EAAE,KAAK,GAAGuxF,GAAG3jG,GAAG,CAAC,GAAG,EAAEA,EAAE3D,OAAO,MAAM2Z,MAAM5D,EAAE,KAAKpS,EAAEA,EAAE,EAAE,CAACD,EAAEC,CAAC,CAAC,MAAMD,IAAIA,EAAE,IAAIC,EAAED,CAAC,CAACD,EAAEojG,cAAc,CAACG,aAAalB,EAAGniG,GAAG,CACnY,SAASkkG,GAAGpkG,EAAEC,GAAG,IAAIC,EAAEmiG,EAAGpiG,EAAEnC,OAAOwlB,EAAE++E,EAAGpiG,EAAEkjG,cAAc,MAAMjjG,KAAIA,EAAE,GAAGA,KAAMF,EAAElC,QAAQkC,EAAElC,MAAMoC,GAAG,MAAMD,EAAEkjG,cAAcnjG,EAAEmjG,eAAejjG,IAAIF,EAAEmjG,aAAajjG,IAAI,MAAMojB,IAAItjB,EAAEmjG,aAAa,GAAG7/E,EAAE,CAAC,SAAS+gF,GAAGrkG,GAAG,IAAIC,EAAED,EAAEmU,YAAYlU,IAAID,EAAEojG,cAAcG,cAAc,KAAKtjG,GAAG,OAAOA,IAAID,EAAElC,MAAMmC,EAAE,CAAC,SAASqkG,GAAGtkG,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAC7c,SAASukG,GAAGvkG,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAEskG,GAAGrkG,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,CAAC,CAChK,IAAIwkG,GAAexkG,GAAZykG,IAAYzkG,GAAsJ,SAASA,EAAEC,GAAG,GAAG,+BAA+BD,EAAE0kG,cAAc,cAAc1kG,EAAEA,EAAEoU,UAAUnU,MAAM,CAA2F,KAA1FukG,GAAGA,IAAInkG,SAASE,cAAc,QAAU6T,UAAU,QAAQnU,EAAEyL,UAAUnM,WAAW,SAAaU,EAAEukG,GAAGG,WAAW3kG,EAAE2kG,YAAY3kG,EAAEwpD,YAAYxpD,EAAE2kG,YAAY,KAAK1kG,EAAE0kG,YAAY3kG,EAAE2uB,YAAY1uB,EAAE0kG,WAAW,CAAC,EAAvb,qBAAqBC,OAAOA,MAAMC,wBAAwB,SAAS5kG,EAAEC,EAAEojB,EAAEvgB,GAAG6hG,MAAMC,yBAAwB,WAAW,OAAO7kG,GAAEC,EAAEC,EAAM,GAAE,EAAEF,IACtK,SAASutB,GAAGvtB,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAEF,EAAE2kG,WAAW,GAAGzkG,GAAGA,IAAIF,EAAE8kG,WAAW,IAAI5kG,EAAE6kG,SAAwB,YAAd7kG,EAAE8kG,UAAU/kG,EAAS,CAACD,EAAEmU,YAAYlU,CAAC,CACtH,IAAIglG,GAAG,CAACC,yBAAwB,EAAGC,aAAY,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGtmD,MAAK,EAAGumD,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGthD,YAAW,EAAGuhD,WAAU,EAAGrrB,YAAW,EAAGhoB,SAAQ,EAAGszC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAClfC,MAAK,EAAGC,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGnsB,aAAY,GAAIosB,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAGznG,EAAEC,EAAEC,GAAG,OAAO,MAAMD,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGC,GAAG,kBAAkBD,GAAG,IAAIA,GAAGglG,GAAG5nG,eAAe2C,IAAIilG,GAAGjlG,IAAI,GAAGC,GAAGwvB,OAAOxvB,EAAE,IAAI,CACzb,SAASynG,GAAG1nG,EAAEC,GAAa,IAAI,IAAIC,KAAlBF,EAAEA,EAAEkI,MAAmBjI,EAAE,GAAGA,EAAE5C,eAAe6C,GAAG,CAAC,IAAIojB,EAAE,IAAIpjB,EAAE4pB,QAAQ,MAAM/mB,EAAE0kG,GAAGvnG,EAAED,EAAEC,GAAGojB,GAAG,UAAUpjB,IAAIA,EAAE,YAAYojB,EAAEtjB,EAAE2nG,YAAYznG,EAAE6C,GAAG/C,EAAEE,GAAG6C,CAAC,CAAC,CADY3F,OAAOmH,KAAK0gG,IAAI99F,SAAQ,SAASnH,GAAGwnG,GAAGrgG,SAAQ,SAASlH,GAAGA,EAAEA,EAAED,EAAEmL,OAAO,GAAG20F,cAAc9/F,EAAEooF,UAAU,GAAG6c,GAAGhlG,GAAGglG,GAAGjlG,EAAE,GAAE,IAChI,IAAI4nG,GAAG5gG,EAAE,CAAC6gG,UAAS,GAAI,CAACC,MAAK,EAAGC,MAAK,EAAGC,IAAG,EAAGjR,KAAI,EAAGkR,OAAM,EAAGC,IAAG,EAAGn7E,KAAI,EAAGo7E,OAAM,EAAGC,QAAO,EAAGC,MAAK,EAAGhiG,MAAK,EAAGiiG,OAAM,EAAGnrG,QAAO,EAAGorG,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGzoG,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAG2nG,GAAG5nG,KAAK,MAAMC,EAAEu7E,UAAU,MAAMv7E,EAAEikG,yBAAyB,MAAMhuF,MAAM5D,EAAE,IAAItS,IAAI,GAAG,MAAMC,EAAEikG,wBAAwB,CAAC,GAAG,MAAMjkG,EAAEu7E,SAAS,MAAMtlE,MAAM5D,EAAE,KAAK,GAAG,kBAAkBrS,EAAEikG,2BAA2B,WAAWjkG,EAAEikG,yBAAyB,MAAMhuF,MAAM5D,EAAE,IAAK,CAAC,GAAG,MAAMrS,EAAEiI,OAAO,kBAAkBjI,EAAEiI,MAAM,MAAMgO,MAAM5D,EAAE,IAAK,CAAC,CAClW,SAASo2F,GAAG1oG,EAAEC,GAAG,IAAI,IAAID,EAAE8pB,QAAQ,KAAK,MAAM,kBAAkB7pB,EAAEK,GAAG,OAAON,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,IAAI2oG,GAAG,KAAK,SAASC,GAAG5oG,GAA6F,OAA1FA,EAAEA,EAAE5D,QAAQ4D,EAAE6oG,YAAY7lG,QAAS8lG,0BAA0B9oG,EAAEA,EAAE8oG,yBAAgC,IAAI9oG,EAAE+kG,SAAS/kG,EAAE6kD,WAAW7kD,CAAC,CAAC,IAAI+oG,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACpc,SAASC,GAAGlpG,GAAG,GAAGA,EAAEmpG,GAAGnpG,GAAG,CAAC,GAAG,oBAAoB+oG,GAAG,MAAM7yF,MAAM5D,EAAE,MAAM,IAAIrS,EAAED,EAAEopG,UAAUnpG,IAAIA,EAAEopG,GAAGppG,GAAG8oG,GAAG/oG,EAAEopG,UAAUppG,EAAEwB,KAAKvB,GAAG,CAAC,CAAC,SAASqpG,GAAGtpG,GAAGgpG,GAAGC,GAAGA,GAAGhoG,KAAKjB,GAAGipG,GAAG,CAACjpG,GAAGgpG,GAAGhpG,CAAC,CAAC,SAASupG,KAAK,GAAGP,GAAG,CAAC,IAAIhpG,EAAEgpG,GAAG/oG,EAAEgpG,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAGlpG,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAE1D,OAAOyD,IAAIkpG,GAAGjpG,EAAED,GAAG,CAAC,CAAC,SAASwpG,GAAGxpG,EAAEC,GAAG,OAAOD,EAAEC,EAAE,CAAC,SAASwpG,KAAK,CAAC,IAAIC,IAAG,EAAG,SAASC,GAAG3pG,EAAEC,EAAEC,GAAG,GAAGwpG,GAAG,OAAO1pG,EAAEC,EAAEC,GAAGwpG,IAAG,EAAG,IAAI,OAAOF,GAAGxpG,EAAEC,EAAEC,EAAE,CAAC,QAAWwpG,IAAG,GAAG,OAAOV,IAAI,OAAOC,MAAGQ,KAAKF,KAAI,CAAC,CAChb,SAASK,GAAG5pG,EAAEC,GAAG,IAAIC,EAAEF,EAAEopG,UAAU,GAAG,OAAOlpG,EAAE,OAAO,KAAK,IAAIojB,EAAE+lF,GAAGnpG,GAAG,GAAG,OAAOojB,EAAE,OAAO,KAAKpjB,EAAEojB,EAAErjB,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBqjB,GAAGA,EAAE0gF,YAAqB1gF,IAAI,YAAbtjB,EAAEA,EAAEwB,OAAuB,UAAUxB,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGsjB,EAAE,MAAMtjB,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGE,GAAG,oBACleA,EAAE,MAAMgW,MAAM5D,EAAE,IAAIrS,SAASC,IAAI,OAAOA,CAAC,CAAC,IAAI2pG,IAAG,EAAG,GAAG3K,EAAG,IAAI,IAAI4K,GAAG,CAAC,EAAE1sG,OAAOwB,eAAekrG,GAAG,UAAU,CAAC1pG,IAAI,WAAWypG,IAAG,CAAE,IAAI7mG,OAAOsrB,iBAAiB,OAAOw7E,GAAGA,IAAI9mG,OAAOmsB,oBAAoB,OAAO26E,GAAGA,GAAG,CAAC,MAAM9pG,IAAG6pG,IAAG,CAAE,CAAC,SAASE,GAAG/pG,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,EAAEsiB,EAAEhR,EAAEhL,GAAG,IAAI6D,EAAExH,MAAM1G,UAAUyC,MAAMlC,KAAKJ,UAAU,GAAG,IAAI+C,EAAEE,MAAMD,EAAE+K,EAAE,CAAC,MAAM0kC,GAAGltC,KAAKwoB,QAAQ0kB,EAAE,CAAC,CAAC,IAAIq6D,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACn/E,QAAQ,SAASjrB,GAAGgqG,IAAG,EAAGC,GAAGjqG,CAAC,GAAG,SAASqqG,GAAGrqG,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,EAAEsiB,EAAEhR,EAAEhL,GAAG4iG,IAAG,EAAGC,GAAG,KAAKF,GAAG5pG,MAAMiqG,GAAGltG,UAAU,CACjW,SAASotG,GAAGtqG,GAAG,IAAIC,EAAED,EAAEE,EAAEF,EAAE,GAAGA,EAAEuqG,UAAU,KAAKtqG,EAAE+6F,QAAQ/6F,EAAEA,EAAE+6F,WAAW,CAACh7F,EAAEC,EAAE,GAAO,KAAa,MAAjBA,EAAED,GAASwqG,SAActqG,EAAED,EAAE+6F,QAAQh7F,EAAEC,EAAE+6F,aAAah7F,EAAE,CAAC,OAAO,IAAIC,EAAEkK,IAAIjK,EAAE,IAAI,CAAC,SAASuqG,GAAGzqG,GAAG,GAAG,KAAKA,EAAEmK,IAAI,CAAC,IAAIlK,EAAED,EAAE0qG,cAAsE,GAAxD,OAAOzqG,IAAkB,QAAdD,EAAEA,EAAEuqG,aAAqBtqG,EAAED,EAAE0qG,gBAAmB,OAAOzqG,EAAE,OAAOA,EAAE0qG,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAG5qG,GAAG,GAAGsqG,GAAGtqG,KAAKA,EAAE,MAAMkW,MAAM5D,EAAE,KAAM,CAE1S,SAASu4F,GAAG7qG,GAAW,OAAO,QAAfA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAEuqG,UAAU,IAAItqG,EAAE,CAAS,GAAG,QAAXA,EAAEqqG,GAAGtqG,IAAe,MAAMkW,MAAM5D,EAAE,MAAM,OAAOrS,IAAID,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAIE,EAAEF,EAAEsjB,EAAErjB,IAAI,CAAC,IAAI8C,EAAE7C,EAAE86F,OAAO,GAAG,OAAOj4F,EAAE,MAAM,IAAIjC,EAAEiC,EAAEwnG,UAAU,GAAG,OAAOzpG,EAAE,CAAY,GAAG,QAAdwiB,EAAEvgB,EAAEi4F,QAAmB,CAAC96F,EAAEojB,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAGvgB,EAAE+nG,QAAQhqG,EAAEgqG,MAAM,CAAC,IAAIhqG,EAAEiC,EAAE+nG,MAAMhqG,GAAG,CAAC,GAAGA,IAAIZ,EAAE,OAAO0qG,GAAG7nG,GAAG/C,EAAE,GAAGc,IAAIwiB,EAAE,OAAOsnF,GAAG7nG,GAAG9C,EAAEa,EAAEA,EAAEiqG,OAAO,CAAC,MAAM70F,MAAM5D,EAAE,KAAM,CAAC,GAAGpS,EAAE86F,SAAS13E,EAAE03E,OAAO96F,EAAE6C,EAAEugB,EAAExiB,MAAM,CAAC,IAAI,IAAIsiB,GAAE,EAAGhR,EAAErP,EAAE+nG,MAAM14F,GAAG,CAAC,GAAGA,IAAIlS,EAAE,CAACkjB,GAAE,EAAGljB,EAAE6C,EAAEugB,EAAExiB,EAAE,KAAK,CAAC,GAAGsR,IAAIkR,EAAE,CAACF,GAAE,EAAGE,EAAEvgB,EAAE7C,EAAEY,EAAE,KAAK,CAACsR,EAAEA,EAAE24F,OAAO,CAAC,IAAI3nF,EAAE,CAAC,IAAIhR,EAAEtR,EAAEgqG,MAAM14F,GAAG,CAAC,GAAGA,IAC5flS,EAAE,CAACkjB,GAAE,EAAGljB,EAAEY,EAAEwiB,EAAEvgB,EAAE,KAAK,CAAC,GAAGqP,IAAIkR,EAAE,CAACF,GAAE,EAAGE,EAAExiB,EAAEZ,EAAE6C,EAAE,KAAK,CAACqP,EAAEA,EAAE24F,OAAO,CAAC,IAAI3nF,EAAE,MAAMlN,MAAM5D,EAAE,KAAM,CAAC,CAAC,GAAGpS,EAAEqqG,YAAYjnF,EAAE,MAAMpN,MAAM5D,EAAE,KAAM,CAAC,GAAG,IAAIpS,EAAEiK,IAAI,MAAM+L,MAAM5D,EAAE,MAAM,OAAOpS,EAAEkpG,UAAUhZ,UAAUlwF,EAAEF,EAAEC,CAAC,CAAkB+qG,CAAGhrG,IAAmBirG,GAAGjrG,GAAG,IAAI,CAAC,SAASirG,GAAGjrG,GAAG,GAAG,IAAIA,EAAEmK,KAAK,IAAInK,EAAEmK,IAAI,OAAOnK,EAAE,IAAIA,EAAEA,EAAE8qG,MAAM,OAAO9qG,GAAG,CAAC,IAAIC,EAAEgrG,GAAGjrG,GAAG,GAAG,OAAOC,EAAE,OAAOA,EAAED,EAAEA,EAAE+qG,OAAO,CAAC,OAAO,IAAI,CAC1X,IAAIG,GAAGtM,EAAGuM,0BAA0BC,GAAGxM,EAAGyM,wBAAwBC,GAAG1M,EAAG2M,qBAAqBC,GAAG5M,EAAG6M,sBAAsBrpG,GAAEw8F,EAAG8M,aAAaC,GAAG/M,EAAGgN,iCAAiChuC,GAAGghC,EAAGiN,2BAA2BC,GAAGlN,EAAGmN,8BAA8BC,GAAGpN,EAAGqN,wBAAwBC,GAAGtN,EAAGuN,qBAAqBC,GAAGxN,EAAGyN,sBAAsBC,GAAG,KAAK9wC,GAAG,KACvV,IAAI+wC,GAAGtpG,KAAKupG,MAAMvpG,KAAKupG,MAAiC,SAAYxsG,GAAU,OAAPA,KAAK,EAAS,IAAIA,EAAE,GAAG,IAAIysG,GAAGzsG,GAAG0sG,GAAG,GAAG,CAAC,EAA/ED,GAAGxpG,KAAK0pG,IAAID,GAAGzpG,KAAK2pG,IAA4D,IAAIC,GAAG,GAAGhkD,GAAG,QAC7H,SAASikD,GAAG9sG,GAAG,OAAOA,GAAGA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,QAAFA,EAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,OAAS,UAAFA,EAAY,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,WAAW,OAAO,WACzgB,QAAQ,OAAOA,EAAE,CAAC,SAAS+sG,GAAG/sG,EAAEC,GAAG,IAAIC,EAAEF,EAAEgtG,aAAa,GAAG,IAAI9sG,EAAE,OAAO,EAAE,IAAIojB,EAAE,EAAEvgB,EAAE/C,EAAEitG,eAAensG,EAAEd,EAAEktG,YAAY9pF,EAAI,UAAFljB,EAAY,GAAG,IAAIkjB,EAAE,CAAC,IAAIhR,EAAEgR,GAAGrgB,EAAE,IAAIqP,EAAEkR,EAAEwpF,GAAG16F,GAAS,KAALtR,GAAGsiB,KAAUE,EAAEwpF,GAAGhsG,GAAI,MAAa,KAAPsiB,EAAEljB,GAAG6C,GAAQugB,EAAEwpF,GAAG1pF,GAAG,IAAItiB,IAAIwiB,EAAEwpF,GAAGhsG,IAAI,GAAG,IAAIwiB,EAAE,OAAO,EAAE,GAAG,IAAIrjB,GAAGA,IAAIqjB,GAAG,KAAKrjB,EAAE8C,MAAKA,EAAEugB,GAAGA,KAAExiB,EAAEb,GAAGA,IAAQ,KAAK8C,GAAG,KAAO,QAAFjC,IAAY,OAAOb,EAA0C,GAAxC,KAAO,EAAFqjB,KAAOA,GAAK,GAAFpjB,GAA4B,KAAtBD,EAAED,EAAEmtG,gBAAwB,IAAIntG,EAAEA,EAAEotG,cAAcntG,GAAGqjB,EAAE,EAAErjB,GAAc8C,EAAE,IAAb7C,EAAE,GAAGqsG,GAAGtsG,IAAUqjB,GAAGtjB,EAAEE,GAAGD,IAAI8C,EAAE,OAAOugB,CAAC,CACvc,SAAS+pF,GAAGrtG,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAOC,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAOA,EAAE,IAAuJ,QAAQ,OAAO,EAAE,CACrN,SAASqtG,GAAGttG,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAEgtG,cAAsChtG,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAASutG,KAAK,IAAIvtG,EAAE6sG,GAAoC,OAA1B,KAAQ,SAAfA,KAAK,MAAqBA,GAAG,IAAW7sG,CAAC,CAAC,SAASwtG,GAAGxtG,GAAG,IAAI,IAAIC,EAAE,GAAGC,EAAE,EAAE,GAAGA,EAAEA,IAAID,EAAEgB,KAAKjB,GAAG,OAAOC,CAAC,CAC3a,SAASwtG,GAAGztG,EAAEC,EAAEC,GAAGF,EAAEgtG,cAAc/sG,EAAE,YAAYA,IAAID,EAAEitG,eAAe,EAAEjtG,EAAEktG,YAAY,IAAGltG,EAAEA,EAAE0tG,YAAWztG,EAAE,GAAGssG,GAAGtsG,IAAQC,CAAC,CACzH,SAASytG,GAAG3tG,EAAEC,GAAG,IAAIC,EAAEF,EAAEmtG,gBAAgBltG,EAAE,IAAID,EAAEA,EAAEotG,cAAcltG,GAAG,CAAC,IAAIojB,EAAE,GAAGipF,GAAGrsG,GAAG6C,EAAE,GAAGugB,EAAEvgB,EAAE9C,EAAED,EAAEsjB,GAAGrjB,IAAID,EAAEsjB,IAAIrjB,GAAGC,IAAI6C,CAAC,CAAC,CAAC,IAAIP,GAAE,EAAE,SAASorG,GAAG5tG,GAAS,OAAO,GAAbA,IAAIA,GAAa,EAAEA,EAAE,KAAO,UAAFA,GAAa,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI6tG,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIC,IAAIC,GAAG,IAAID,IAAIE,GAAG,GAAGC,GAAG,6PAA6PnuG,MAAM,KAChiB,SAASouG,GAAG5uG,EAAEC,GAAG,OAAOD,GAAG,IAAK,UAAU,IAAK,WAAWouG,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGM,OAAO5uG,EAAE6uG,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBL,GAAGI,OAAO5uG,EAAE6uG,WAAW,CACnT,SAASC,GAAG/uG,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,GAAG,OAAG,OAAOd,GAAGA,EAAEgvG,cAAcluG,GAASd,EAAE,CAACivG,UAAUhvG,EAAEivG,aAAahvG,EAAEivG,iBAAiB7rF,EAAE0rF,YAAYluG,EAAEsuG,iBAAiB,CAACrsG,IAAI,OAAO9C,IAAY,QAARA,EAAEkpG,GAAGlpG,KAAa6tG,GAAG7tG,IAAID,IAAEA,EAAEmvG,kBAAkB7rF,EAAErjB,EAAED,EAAEovG,iBAAiB,OAAOrsG,IAAI,IAAI9C,EAAE6pB,QAAQ/mB,IAAI9C,EAAEgB,KAAK8B,GAAU/C,EAAC,CAEpR,SAASqvG,GAAGrvG,GAAG,IAAIC,EAAEqvG,GAAGtvG,EAAE5D,QAAQ,GAAG,OAAO6D,EAAE,CAAC,IAAIC,EAAEoqG,GAAGrqG,GAAG,GAAG,OAAOC,EAAE,GAAW,MAARD,EAAEC,EAAEiK,MAAY,GAAW,QAARlK,EAAEwqG,GAAGvqG,IAA4D,OAA/CF,EAAEivG,UAAUhvG,OAAEguG,GAAGjuG,EAAEuvG,UAAS,WAAWxB,GAAG7tG,EAAE,SAAgB,GAAG,IAAID,GAAGC,EAAEkpG,UAAUhZ,QAAQsa,cAAc8E,aAAmE,YAArDxvG,EAAEivG,UAAU,IAAI/uG,EAAEiK,IAAIjK,EAAEkpG,UAAUqG,cAAc,KAAY,CAACzvG,EAAEivG,UAAU,IAAI,CAClT,SAASS,GAAG1vG,GAAG,GAAG,OAAOA,EAAEivG,UAAU,OAAM,EAAG,IAAI,IAAIhvG,EAAED,EAAEovG,iBAAiB,EAAEnvG,EAAE1D,QAAQ,CAAC,IAAI2D,EAAEyvG,GAAG3vG,EAAEkvG,aAAalvG,EAAEmvG,iBAAiBlvG,EAAE,GAAGD,EAAEgvG,aAAa,GAAG,OAAO9uG,EAAiG,OAAe,QAARD,EAAEkpG,GAAGjpG,KAAa4tG,GAAG7tG,GAAGD,EAAEivG,UAAU/uG,GAAE,EAA3H,IAAIojB,EAAE,IAAtBpjB,EAAEF,EAAEgvG,aAAwBnxG,YAAYqC,EAAEsB,KAAKtB,GAAGyoG,GAAGrlF,EAAEpjB,EAAE9D,OAAOwzG,cAActsF,GAAGqlF,GAAG,KAA0D1oG,EAAEy0B,OAAO,CAAC,OAAM,CAAE,CAAC,SAASm7E,GAAG7vG,EAAEC,EAAEC,GAAGwvG,GAAG1vG,IAAIE,EAAE2uG,OAAO5uG,EAAE,CAAC,SAAS6vG,KAAK5B,IAAG,EAAG,OAAOE,IAAIsB,GAAGtB,MAAMA,GAAG,MAAM,OAAOC,IAAIqB,GAAGrB,MAAMA,GAAG,MAAM,OAAOC,IAAIoB,GAAGpB,MAAMA,GAAG,MAAMC,GAAGpnG,QAAQ0oG,IAAIpB,GAAGtnG,QAAQ0oG,GAAG,CACnf,SAASE,GAAG/vG,EAAEC,GAAGD,EAAEivG,YAAYhvG,IAAID,EAAEivG,UAAU,KAAKf,KAAKA,IAAG,EAAGtP,EAAGuM,0BAA0BvM,EAAGqN,wBAAwB6D,KAAK,CAC5H,SAASE,GAAGhwG,GAAG,SAASC,EAAEA,GAAG,OAAO8vG,GAAG9vG,EAAED,EAAE,CAAC,GAAG,EAAEmuG,GAAG5xG,OAAO,CAACwzG,GAAG5B,GAAG,GAAGnuG,GAAG,IAAI,IAAIE,EAAE,EAAEA,EAAEiuG,GAAG5xG,OAAO2D,IAAI,CAAC,IAAIojB,EAAE6qF,GAAGjuG,GAAGojB,EAAE2rF,YAAYjvG,IAAIsjB,EAAE2rF,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOb,IAAI2B,GAAG3B,GAAGpuG,GAAG,OAAOquG,IAAI0B,GAAG1B,GAAGruG,GAAG,OAAOsuG,IAAIyB,GAAGzB,GAAGtuG,GAAGuuG,GAAGpnG,QAAQlH,GAAGwuG,GAAGtnG,QAAQlH,GAAOC,EAAE,EAAEA,EAAEwuG,GAAGnyG,OAAO2D,KAAIojB,EAAEorF,GAAGxuG,IAAK+uG,YAAYjvG,IAAIsjB,EAAE2rF,UAAU,MAAM,KAAK,EAAEP,GAAGnyG,QAAiB,QAAR2D,EAAEwuG,GAAG,IAAYO,WAAYI,GAAGnvG,GAAG,OAAOA,EAAE+uG,WAAWP,GAAGh6E,OAAO,CAAC,IAAIu7E,GAAG7P,EAAG8P,wBAAwBC,IAAG,EAC5a,SAASC,GAAGpwG,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAEP,GAAE1B,EAAEmvG,GAAGI,WAAWJ,GAAGI,WAAW,KAAK,IAAI7tG,GAAE,EAAE8tG,GAAGtwG,EAAEC,EAAEC,EAAEojB,EAAE,CAAC,QAAQ9gB,GAAEO,EAAEktG,GAAGI,WAAWvvG,CAAC,CAAC,CAAC,SAASyvG,GAAGvwG,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAEP,GAAE1B,EAAEmvG,GAAGI,WAAWJ,GAAGI,WAAW,KAAK,IAAI7tG,GAAE,EAAE8tG,GAAGtwG,EAAEC,EAAEC,EAAEojB,EAAE,CAAC,QAAQ9gB,GAAEO,EAAEktG,GAAGI,WAAWvvG,CAAC,CAAC,CACjO,SAASwvG,GAAGtwG,EAAEC,EAAEC,EAAEojB,GAAG,GAAG6sF,GAAG,CAAC,IAAIptG,EAAE4sG,GAAG3vG,EAAEC,EAAEC,EAAEojB,GAAG,GAAG,OAAOvgB,EAAE0zD,GAAGz2D,EAAEC,EAAEqjB,EAAEvd,GAAG7F,GAAG0uG,GAAG5uG,EAAEsjB,QAAQ,GANtF,SAAYtjB,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,OAAO9C,GAAG,IAAK,UAAU,OAAOmuG,GAAGW,GAAGX,GAAGpuG,EAAEC,EAAEC,EAAEojB,EAAEvgB,IAAG,EAAG,IAAK,YAAY,OAAOsrG,GAAGU,GAAGV,GAAGruG,EAAEC,EAAEC,EAAEojB,EAAEvgB,IAAG,EAAG,IAAK,YAAY,OAAOurG,GAAGS,GAAGT,GAAGtuG,EAAEC,EAAEC,EAAEojB,EAAEvgB,IAAG,EAAG,IAAK,cAAc,IAAIjC,EAAEiC,EAAE+rG,UAAkD,OAAxCP,GAAGzkG,IAAIhJ,EAAEiuG,GAAGR,GAAGnuG,IAAIU,IAAI,KAAKd,EAAEC,EAAEC,EAAEojB,EAAEvgB,KAAU,EAAG,IAAK,oBAAoB,OAAOjC,EAAEiC,EAAE+rG,UAAUL,GAAG3kG,IAAIhJ,EAAEiuG,GAAGN,GAAGruG,IAAIU,IAAI,KAAKd,EAAEC,EAAEC,EAAEojB,EAAEvgB,KAAI,EAAG,OAAM,CAAE,CAM1QytG,CAAGztG,EAAE/C,EAAEC,EAAEC,EAAEojB,GAAGA,EAAEmtF,uBAAuB,GAAG7B,GAAG5uG,EAAEsjB,GAAK,EAAFrjB,IAAM,EAAE0uG,GAAG7kF,QAAQ9pB,GAAG,CAAC,KAAK,OAAO+C,GAAG,CAAC,IAAIjC,EAAEqoG,GAAGpmG,GAA0D,GAAvD,OAAOjC,GAAG+sG,GAAG/sG,GAAiB,QAAdA,EAAE6uG,GAAG3vG,EAAEC,EAAEC,EAAEojB,KAAamzC,GAAGz2D,EAAEC,EAAEqjB,EAAEvd,GAAG7F,GAAMY,IAAIiC,EAAE,MAAMA,EAAEjC,CAAC,CAAC,OAAOiC,GAAGugB,EAAEmtF,iBAAiB,MAAMh6C,GAAGz2D,EAAEC,EAAEqjB,EAAE,KAAKpjB,EAAE,CAAC,CAAC,IAAI6F,GAAG,KACpU,SAAS4pG,GAAG3vG,EAAEC,EAAEC,EAAEojB,GAA2B,GAAxBvd,GAAG,KAAwB,QAAX/F,EAAEsvG,GAAVtvG,EAAE4oG,GAAGtlF,KAAuB,GAAW,QAARrjB,EAAEqqG,GAAGtqG,IAAYA,EAAE,UAAU,GAAW,MAARE,EAAED,EAAEkK,KAAW,CAAS,GAAG,QAAXnK,EAAEyqG,GAAGxqG,IAAe,OAAOD,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAIE,EAAE,CAAC,GAAGD,EAAEmpG,UAAUhZ,QAAQsa,cAAc8E,aAAa,OAAO,IAAIvvG,EAAEkK,IAAIlK,EAAEmpG,UAAUqG,cAAc,KAAKzvG,EAAE,IAAI,MAAMC,IAAID,IAAIA,EAAE,MAAW,OAAL+F,GAAG/F,EAAS,IAAI,CAC7S,SAAS0wG,GAAG1wG,GAAG,OAAOA,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,OAAO,EAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,OAAO,EACpqC,IAAK,UAAU,OAAO2rG,MAAM,KAAK/tC,GAAG,OAAO,EAAE,KAAKkuC,GAAG,OAAO,EAAE,KAAKE,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,OAAO,GAAG,CAAC,IAAIuE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAI7wG,EAAkBsjB,EAAhBrjB,EAAE2wG,GAAG1wG,EAAED,EAAE1D,OAASwG,EAAE,UAAU4tG,GAAGA,GAAG7yG,MAAM6yG,GAAGx8F,YAAYrT,EAAEiC,EAAExG,OAAO,IAAIyD,EAAE,EAAEA,EAAEE,GAAGD,EAAED,KAAK+C,EAAE/C,GAAGA,KAAK,IAAIojB,EAAEljB,EAAEF,EAAE,IAAIsjB,EAAE,EAAEA,GAAGF,GAAGnjB,EAAEC,EAAEojB,KAAKvgB,EAAEjC,EAAEwiB,GAAGA,KAAK,OAAOutF,GAAG9tG,EAAEvD,MAAMQ,EAAE,EAAEsjB,EAAE,EAAEA,OAAE,EAAO,CACxY,SAASytF,GAAG/wG,GAAG,IAAIC,EAAED,EAAEgxG,QAA+E,MAAvE,aAAahxG,EAAgB,KAAbA,EAAEA,EAAEunD,WAAgB,KAAKtnD,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAASixG,KAAK,OAAM,CAAE,CAAC,SAASC,KAAK,OAAM,CAAE,CAC5K,SAAS1uD,GAAGxiD,GAAG,SAASC,EAAEA,EAAEqjB,EAAEvgB,EAAEjC,EAAEsiB,GAA6G,IAAI,IAAIljB,KAAlHuC,KAAK0uG,WAAWlxG,EAAEwC,KAAK2uG,YAAYruG,EAAEN,KAAKjB,KAAK8hB,EAAE7gB,KAAKusG,YAAYluG,EAAE2B,KAAKrG,OAAOgnB,EAAE3gB,KAAKsS,cAAc,KAAkB/U,EAAEA,EAAE3C,eAAe6C,KAAKD,EAAED,EAAEE,GAAGuC,KAAKvC,GAAGD,EAAEA,EAAEa,GAAGA,EAAEZ,IAAgI,OAA5HuC,KAAK4uG,oBAAoB,MAAMvwG,EAAEwwG,iBAAiBxwG,EAAEwwG,kBAAiB,IAAKxwG,EAAEywG,aAAaN,GAAGC,GAAGzuG,KAAK+uG,qBAAqBN,GAAUzuG,IAAI,CAC9E,OAD+EuE,EAAE/G,EAAElD,UAAU,CAAC00G,eAAe,WAAWhvG,KAAK6uG,kBAAiB,EAAG,IAAItxG,EAAEyC,KAAKusG,YAAYhvG,IAAIA,EAAEyxG,eAAezxG,EAAEyxG,iBAAiB,mBAAmBzxG,EAAEuxG,cAC7evxG,EAAEuxG,aAAY,GAAI9uG,KAAK4uG,mBAAmBJ,GAAG,EAAER,gBAAgB,WAAW,IAAIzwG,EAAEyC,KAAKusG,YAAYhvG,IAAIA,EAAEywG,gBAAgBzwG,EAAEywG,kBAAkB,mBAAmBzwG,EAAE0xG,eAAe1xG,EAAE0xG,cAAa,GAAIjvG,KAAK+uG,qBAAqBP,GAAG,EAAEU,QAAQ,WAAW,EAAEC,aAAaX,KAAYhxG,CAAC,CACjR,IAAoL4xG,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAASpyG,GAAG,OAAOA,EAAEoyG,WAAW/3F,KAAKD,KAAK,EAAEk3F,iBAAiB,EAAEe,UAAU,GAAGj8C,GAAG5T,GAAGwvD,IAAIM,GAAGtrG,EAAE,CAAC,EAAEgrG,GAAG,CAACnlB,KAAK,EAAE0lB,OAAO,IAAIC,GAAGhwD,GAAG8vD,IAAaG,GAAGzrG,EAAE,CAAC,EAAEsrG,GAAG,CAACI,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAASxzG,GAAG,YAAO,IAASA,EAAEwzG,cAAcxzG,EAAEyzG,cAAczzG,EAAE6oG,WAAW7oG,EAAE0zG,UAAU1zG,EAAEyzG,YAAYzzG,EAAEwzG,aAAa,EAAEG,UAAU,SAAS3zG,GAAG,MAAG,cAC3eA,EAASA,EAAE2zG,WAAU3zG,IAAI+xG,KAAKA,IAAI,cAAc/xG,EAAEwB,MAAMqwG,GAAG7xG,EAAE0yG,QAAQX,GAAGW,QAAQZ,GAAG9xG,EAAE2yG,QAAQZ,GAAGY,SAASb,GAAGD,GAAG,EAAEE,GAAG/xG,GAAU6xG,GAAE,EAAE+B,UAAU,SAAS5zG,GAAG,MAAM,cAAcA,EAAEA,EAAE4zG,UAAU9B,EAAE,IAAI+B,GAAGrxD,GAAGiwD,IAAiCqB,GAAGtxD,GAA7Bx7C,EAAE,CAAC,EAAEyrG,GAAG,CAACsB,aAAa,KAA4CC,GAAGxxD,GAA9Bx7C,EAAE,CAAC,EAAEsrG,GAAG,CAACkB,cAAc,KAA0ES,GAAGzxD,GAA5Dx7C,EAAE,CAAC,EAAEgrG,GAAG,CAACkC,cAAc,EAAE76E,YAAY,EAAE86E,cAAc,KAAcC,GAAGptG,EAAE,CAAC,EAAEgrG,GAAG,CAACqC,cAAc,SAASr0G,GAAG,MAAM,kBAAkBA,EAAEA,EAAEq0G,cAAcrxG,OAAOqxG,aAAa,IAAIC,GAAG9xD,GAAG4xD,IAAyBG,GAAG/xD,GAArBx7C,EAAE,CAAC,EAAEgrG,GAAG,CAAC1sF,KAAK,KAAckvF,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAG31G,GAAG,IAAIC,EAAEwC,KAAKusG,YAAY,OAAO/uG,EAAEmzG,iBAAiBnzG,EAAEmzG,iBAAiBpzG,MAAIA,EAAEs1G,GAAGt1G,OAAMC,EAAED,EAAK,CAAC,SAASqzG,KAAK,OAAOsC,EAAE,CAChS,IAAIC,GAAG5uG,EAAE,CAAC,EAAEsrG,GAAG,CAAC11G,IAAI,SAASoD,GAAG,GAAGA,EAAEpD,IAAI,CAAC,IAAIqD,EAAEu0G,GAAGx0G,EAAEpD,MAAMoD,EAAEpD,IAAI,GAAG,iBAAiBqD,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAaD,EAAEwB,KAAc,MAARxB,EAAE+wG,GAAG/wG,IAAU,QAAQgL,OAAOugE,aAAavrE,GAAI,YAAYA,EAAEwB,MAAM,UAAUxB,EAAEwB,KAAK6zG,GAAGr1G,EAAEgxG,UAAU,eAAe,EAAE,EAAE6E,KAAK,EAAExqF,SAAS,EAAE2nF,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE2C,OAAO,EAAEC,OAAO,EAAE3C,iBAAiBC,GAAG9rD,SAAS,SAASvnD,GAAG,MAAM,aAAaA,EAAEwB,KAAKuvG,GAAG/wG,GAAG,CAAC,EAAEgxG,QAAQ,SAAShxG,GAAG,MAAM,YAAYA,EAAEwB,MAAM,UAAUxB,EAAEwB,KAAKxB,EAAEgxG,QAAQ,CAAC,EAAEgF,MAAM,SAASh2G,GAAG,MAAM,aAC7eA,EAAEwB,KAAKuvG,GAAG/wG,GAAG,YAAYA,EAAEwB,MAAM,UAAUxB,EAAEwB,KAAKxB,EAAEgxG,QAAQ,CAAC,IAAIiF,GAAGzzD,GAAGozD,IAAiIM,GAAG1zD,GAA7Hx7C,EAAE,CAAC,EAAEyrG,GAAG,CAAC3D,UAAU,EAAEhjF,MAAM,EAAEtY,OAAO,EAAE2iG,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAGl0D,GAArHx7C,EAAE,CAAC,EAAEsrG,GAAG,CAACqE,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAE3D,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0EyD,GAAGt0D,GAA3Dx7C,EAAE,CAAC,EAAEgrG,GAAG,CAACjmB,aAAa,EAAE1yD,YAAY,EAAE86E,cAAc,KAAc4C,GAAG/vG,EAAE,CAAC,EAAEyrG,GAAG,CAACuE,OAAO,SAASh3G,GAAG,MAAM,WAAWA,EAAEA,EAAEg3G,OAAO,gBAAgBh3G,GAAGA,EAAEi3G,YAAY,CAAC,EACnfC,OAAO,SAASl3G,GAAG,MAAM,WAAWA,EAAEA,EAAEk3G,OAAO,gBAAgBl3G,GAAGA,EAAEm3G,YAAY,eAAen3G,GAAGA,EAAEo3G,WAAW,CAAC,EAAEC,OAAO,EAAEC,UAAU,IAAIC,GAAG/0D,GAAGu0D,IAAIS,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAGvY,GAAI,qBAAqBl8F,OAAO00G,GAAG,KAAKxY,GAAI,iBAAiB7+F,WAAWq3G,GAAGr3G,SAASs3G,cAAc,IAAIC,GAAG1Y,GAAI,cAAcl8F,SAAS00G,GAAGG,GAAG3Y,KAAMuY,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAG9sG,OAAOugE,aAAa,IAAIwsC,IAAG,EAC1W,SAASC,GAAGh4G,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAIw3G,GAAG1tF,QAAQ7pB,EAAE+wG,SAAS,IAAK,UAAU,OAAO,MAAM/wG,EAAE+wG,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAASiH,GAAGj4G,GAAc,MAAM,kBAAjBA,EAAEA,EAAEuyG,SAAkC,SAASvyG,EAAEA,EAAEslB,KAAK,IAAI,CAAC,IAAI4yF,IAAG,EAE9Q,IAAIC,GAAG,CAAC30F,OAAM,EAAG40F,MAAK,EAAGC,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAGC,OAAM,EAAGjf,QAAO,EAAGkf,UAAS,EAAGC,OAAM,EAAGC,QAAO,EAAGC,KAAI,EAAGvyD,MAAK,EAAG9qC,MAAK,EAAGsK,KAAI,EAAGgzF,MAAK,GAAI,SAAS35B,GAAGj/E,GAAG,IAAIC,EAAED,GAAGA,EAAEuiG,UAAUviG,EAAEuiG,SAAS1iD,cAAc,MAAM,UAAU5/C,IAAIk4G,GAAGn4G,EAAEwB,MAAM,aAAavB,CAAO,CAAC,SAASqkE,GAAGtkE,EAAEC,EAAEC,EAAEojB,GAAGgmF,GAAGhmF,GAAsB,GAAnBrjB,EAAE44G,GAAG54G,EAAE,aAAgB1D,SAAS2D,EAAE,IAAIk2D,GAAG,WAAW,SAAS,KAAKl2D,EAAEojB,GAAGtjB,EAAEiB,KAAK,CAAC6pB,MAAM5qB,EAAE44G,UAAU74G,IAAI,CAAC,IAAI+yE,GAAG,KAAK+lC,GAAG,KAAK,SAASC,GAAGh5G,GAAGi5G,GAAGj5G,EAAE,EAAE,CAAC,SAASk5G,GAAGl5G,GAAe,GAAG6iG,EAATsW,GAAGn5G,IAAY,OAAOA,CAAC,CACpe,SAASo5G,GAAGp5G,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,CAAC,CAAC,IAAIo5G,IAAG,EAAG,GAAGna,EAAG,CAAC,IAAI76B,GAAG,GAAG66B,EAAG,CAAC,IAAIoa,GAAG,YAAYj5G,SAAS,IAAIi5G,GAAG,CAAC,IAAIC,GAAGl5G,SAASE,cAAc,OAAOg5G,GAAG3/E,aAAa,UAAU,WAAW0/E,GAAG,oBAAoBC,GAAGC,OAAO,CAACn1C,GAAGi1C,EAAE,MAAMj1C,IAAG,EAAGg1C,GAAGh1C,MAAMhkE,SAASs3G,cAAc,EAAEt3G,SAASs3G,aAAa,CAAC,SAAS8B,KAAKzmC,KAAKA,GAAG0mC,YAAY,mBAAmBC,IAAIZ,GAAG/lC,GAAG,KAAK,CAAC,SAAS2mC,GAAG35G,GAAG,GAAG,UAAUA,EAAE+rF,cAAcmtB,GAAGH,IAAI,CAAC,IAAI94G,EAAE,GAAGqkE,GAAGrkE,EAAE84G,GAAG/4G,EAAE4oG,GAAG5oG,IAAI2pG,GAAGqP,GAAG/4G,EAAE,CAAC,CAC/b,SAAS25G,GAAG55G,EAAEC,EAAEC,GAAG,YAAYF,GAAGy5G,KAAUV,GAAG74G,GAAR8yE,GAAG/yE,GAAU45G,YAAY,mBAAmBF,KAAK,aAAa35G,GAAGy5G,IAAI,CAAC,SAASK,GAAG95G,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOk5G,GAAGH,GAAG,CAAC,SAASgB,GAAG/5G,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAOk5G,GAAGj5G,EAAE,CAAC,SAAS+5G,GAAGh6G,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAOk5G,GAAGj5G,EAAE,CAAiE,IAAIg6G,GAAG,oBAAoB78G,OAAOkD,GAAGlD,OAAOkD,GAA5G,SAAYN,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,CAAC,EACtW,SAASi6G,GAAGl6G,EAAEC,GAAG,GAAGg6G,GAAGj6G,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIC,EAAE9C,OAAOmH,KAAKvE,GAAGsjB,EAAElmB,OAAOmH,KAAKtE,GAAG,GAAGC,EAAE3D,SAAS+mB,EAAE/mB,OAAO,OAAM,EAAG,IAAI+mB,EAAE,EAAEA,EAAEpjB,EAAE3D,OAAO+mB,IAAI,CAAC,IAAIvgB,EAAE7C,EAAEojB,GAAG,IAAI67E,EAAG7hG,KAAK2C,EAAE8C,KAAKk3G,GAAGj6G,EAAE+C,GAAG9C,EAAE8C,IAAI,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,SAASo3G,GAAGn6G,GAAG,KAAKA,GAAGA,EAAE2kG,YAAY3kG,EAAEA,EAAE2kG,WAAW,OAAO3kG,CAAC,CACtU,SAASo6G,GAAGp6G,EAAEC,GAAG,IAAwBqjB,EAApBpjB,EAAEi6G,GAAGn6G,GAAO,IAAJA,EAAE,EAAYE,GAAG,CAAC,GAAG,IAAIA,EAAE6kG,SAAS,CAA0B,GAAzBzhF,EAAEtjB,EAAEE,EAAEiU,YAAY5X,OAAUyD,GAAGC,GAAGqjB,GAAGrjB,EAAE,MAAM,CAAC8kD,KAAK7kD,EAAEujB,OAAOxjB,EAAED,GAAGA,EAAEsjB,CAAC,CAACtjB,EAAE,CAAC,KAAKE,GAAG,CAAC,GAAGA,EAAEm6G,YAAY,CAACn6G,EAAEA,EAAEm6G,YAAY,MAAMr6G,CAAC,CAACE,EAAEA,EAAE2kD,UAAU,CAAC3kD,OAAE,CAAM,CAACA,EAAEi6G,GAAGj6G,EAAE,CAAC,CAAC,SAASo6G,GAAGt6G,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAE+kG,YAAY9kG,GAAG,IAAIA,EAAE8kG,SAASuV,GAAGt6G,EAAEC,EAAE4kD,YAAY,aAAa7kD,EAAEA,EAAEu6G,SAASt6G,KAAGD,EAAEw6G,4BAAwD,GAA7Bx6G,EAAEw6G,wBAAwBv6G,KAAY,CAC9Z,SAASw6G,KAAK,IAAI,IAAIz6G,EAAEgD,OAAO/C,EAAE8iG,IAAK9iG,aAAaD,EAAE06G,mBAAmB,CAAC,IAAI,IAAIx6G,EAAE,kBAAkBD,EAAEoI,cAAcgjB,SAAS0oB,IAAI,CAAC,MAAMzwB,GAAGpjB,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAMD,EAAE8iG,GAA/B/iG,EAAEC,EAAEoI,eAAgChI,SAAS,CAAC,OAAOJ,CAAC,CAAC,SAAS06G,GAAG36G,GAAG,IAAIC,EAAED,GAAGA,EAAEuiG,UAAUviG,EAAEuiG,SAAS1iD,cAAc,OAAO5/C,IAAI,UAAUA,IAAI,SAASD,EAAEwB,MAAM,WAAWxB,EAAEwB,MAAM,QAAQxB,EAAEwB,MAAM,QAAQxB,EAAEwB,MAAM,aAAaxB,EAAEwB,OAAO,aAAavB,GAAG,SAASD,EAAE46G,gBAAgB,CACxa,SAASC,GAAG76G,GAAG,IAAIC,EAAEw6G,KAAKv6G,EAAEF,EAAE86G,YAAYx3F,EAAEtjB,EAAE+6G,eAAe,GAAG96G,IAAIC,GAAGA,GAAGA,EAAE0jG,eAAe0W,GAAGp6G,EAAE0jG,cAActgG,gBAAgBpD,GAAG,CAAC,GAAG,OAAOojB,GAAGq3F,GAAGz6G,GAAG,GAAGD,EAAEqjB,EAAE5P,WAAc,KAAR1T,EAAEsjB,EAAEgU,OAAiBt3B,EAAEC,GAAG,mBAAmBC,EAAEA,EAAE86G,eAAe/6G,EAAEC,EAAE+6G,aAAah4G,KAAKoI,IAAIrL,EAAEE,EAAEpC,MAAMvB,aAAa,IAAGyD,GAAGC,EAAEC,EAAE0jG,eAAevjG,WAAWJ,EAAEi7G,aAAal4G,QAASm4G,aAAa,CAACn7G,EAAEA,EAAEm7G,eAAe,IAAIp4G,EAAE7C,EAAEiU,YAAY5X,OAAOuE,EAAEmC,KAAKoI,IAAIiY,EAAE5P,MAAM3Q,GAAGugB,OAAE,IAASA,EAAEgU,IAAIx2B,EAAEmC,KAAKoI,IAAIiY,EAAEgU,IAAIv0B,IAAI/C,EAAEo7G,QAAQt6G,EAAEwiB,IAAIvgB,EAAEugB,EAAEA,EAAExiB,EAAEA,EAAEiC,GAAGA,EAAEq3G,GAAGl6G,EAAEY,GAAG,IAAIsiB,EAAEg3F,GAAGl6G,EACvfojB,GAAGvgB,GAAGqgB,IAAI,IAAIpjB,EAAEq7G,YAAYr7G,EAAEs7G,aAAav4G,EAAEgiD,MAAM/kD,EAAEu7G,eAAex4G,EAAE0gB,QAAQzjB,EAAEw7G,YAAYp4F,EAAE2hC,MAAM/kD,EAAEy7G,cAAcr4F,EAAEK,WAAUxjB,EAAEA,EAAEy7G,eAAgBC,SAAS54G,EAAEgiD,KAAKhiD,EAAE0gB,QAAQzjB,EAAE47G,kBAAkB96G,EAAEwiB,GAAGtjB,EAAE67G,SAAS57G,GAAGD,EAAEo7G,OAAOh4F,EAAE2hC,KAAK3hC,EAAEK,UAAUxjB,EAAE67G,OAAO14F,EAAE2hC,KAAK3hC,EAAEK,QAAQzjB,EAAE67G,SAAS57G,IAAI,CAAM,IAALA,EAAE,GAAOD,EAAEE,EAAEF,EAAEA,EAAE6kD,YAAY,IAAI7kD,EAAE+kG,UAAU9kG,EAAEgB,KAAK,CAACogB,QAAQrhB,EAAEuhB,KAAKvhB,EAAE+7G,WAAWzoG,IAAItT,EAAEg8G,YAAmD,IAAvC,oBAAoB97G,EAAE+7G,OAAO/7G,EAAE+7G,QAAY/7G,EAAE,EAAEA,EAAED,EAAE1D,OAAO2D,KAAIF,EAAEC,EAAEC,IAAKmhB,QAAQ06F,WAAW/7G,EAAEuhB,KAAKvhB,EAAEqhB,QAAQ26F,UAAUh8G,EAAEsT,GAAG,CAAC,CACzf,IAAI4oG,GAAGhd,GAAI,iBAAiB7+F,UAAU,IAAIA,SAASs3G,aAAawE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAGv8G,EAAEC,EAAEC,GAAG,IAAIojB,EAAEpjB,EAAE8C,SAAS9C,EAAEA,EAAEG,SAAS,IAAIH,EAAE6kG,SAAS7kG,EAAEA,EAAE0jG,cAAc0Y,IAAI,MAAMH,IAAIA,KAAKpZ,EAAGz/E,KAAU,mBAALA,EAAE64F,KAAyBxB,GAAGr3F,GAAGA,EAAE,CAAC5P,MAAM4P,EAAE03F,eAAe1jF,IAAIhU,EAAE23F,cAAuF33F,EAAE,CAACg4F,YAA3Eh4F,GAAGA,EAAEsgF,eAAetgF,EAAEsgF,cAAcsX,aAAal4G,QAAQm4G,gBAA+BG,WAAWC,aAAaj4F,EAAEi4F,aAAaC,UAAUl4F,EAAEk4F,UAAUC,YAAYn4F,EAAEm4F,aAAcY,IAAInC,GAAGmC,GAAG/4F,KAAK+4F,GAAG/4F,EAAsB,GAApBA,EAAEu1F,GAAGuD,GAAG,aAAgB7/G,SAAS0D,EAAE,IAAIm2D,GAAG,WAAW,SAAS,KAAKn2D,EAAEC,GAAGF,EAAEiB,KAAK,CAAC6pB,MAAM7qB,EAAE64G,UAAUx1F,IAAIrjB,EAAE7D,OAAO+/G,KAAK,CACtf,SAASK,GAAGx8G,EAAEC,GAAG,IAAIC,EAAE,CAAC,EAAiF,OAA/EA,EAAEF,EAAE6/C,eAAe5/C,EAAE4/C,cAAc3/C,EAAE,SAASF,GAAG,SAASC,EAAEC,EAAE,MAAMF,GAAG,MAAMC,EAASC,CAAC,CAAC,IAAIu8G,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,CAAC,EAAEC,GAAG,CAAC,EACpF,SAASC,GAAGh9G,GAAG,GAAG88G,GAAG98G,GAAG,OAAO88G,GAAG98G,GAAG,IAAIy8G,GAAGz8G,GAAG,OAAOA,EAAE,IAAYE,EAARD,EAAEw8G,GAAGz8G,GAAK,IAAIE,KAAKD,EAAE,GAAGA,EAAE5C,eAAe6C,IAAIA,KAAK68G,GAAG,OAAOD,GAAG98G,GAAGC,EAAEC,GAAG,OAAOF,CAAC,CAA/Xk/F,IAAK6d,GAAG18G,SAASE,cAAc,OAAO2H,MAAM,mBAAmBlF,gBAAgBy5G,GAAGC,aAAa7xF,iBAAiB4xF,GAAGE,mBAAmB9xF,iBAAiB4xF,GAAGG,eAAe/xF,WAAW,oBAAoB7nB,eAAey5G,GAAGI,cAAcxM,YAAwJ,IAAI4M,GAAGD,GAAG,gBAAgBE,GAAGF,GAAG,sBAAsBG,GAAGH,GAAG,kBAAkBI,GAAGJ,GAAG,iBAAiBK,GAAG,IAAI7O,IAAI5iD,GAAG,smBAAsmBprD,MAAM,KAC/lC,SAAS88G,GAAGt9G,EAAEC,GAAGo9G,GAAGvzG,IAAI9J,EAAEC,GAAG++F,EAAG/+F,EAAE,CAACD,GAAG,CAAC,IAAI,IAAIm7D,GAAG,EAAEA,GAAGvP,GAAGrvD,OAAO4+D,KAAK,CAAC,IAAIoiD,GAAG3xD,GAAGuP,IAA2DmiD,GAApDC,GAAG19D,cAAuD,MAAtC09D,GAAG,GAAGzd,cAAcyd,GAAG/9G,MAAM,IAAiB,CAAC89G,GAAGL,GAAG,kBAAkBK,GAAGJ,GAAG,wBAAwBI,GAAGH,GAAG,oBAAoBG,GAAG,WAAW,iBAAiBA,GAAG,UAAU,WAAWA,GAAG,WAAW,UAAUA,GAAGF,GAAG,mBAAmBne,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAC7cA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoEx+F,MAAM,MAAMw+F,EAAG,WAAW,uFAAuFx+F,MAAM,MAAMw+F,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2Dx+F,MAAM,MAAMw+F,EAAG,qBAAqB,6DAA6Dx+F,MAAM,MAC/fw+F,EAAG,sBAAsB,8DAA8Dx+F,MAAM,MAAM,IAAIg9G,GAAG,6NAA6Nh9G,MAAM,KAAKi9G,GAAG,IAAI3e,IAAI,0CAA0Ct+F,MAAM,KAAKgH,OAAOg2G,KACzZ,SAASE,GAAG19G,EAAEC,EAAEC,GAAG,IAAIojB,EAAEtjB,EAAEwB,MAAM,gBAAgBxB,EAAE+U,cAAc7U,EAlDjE,SAAYF,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,EAAEsiB,EAAEhR,EAAEhL,GAA4B,GAAzBijG,GAAGlqG,MAAMsC,KAAKvF,WAAc8sG,GAAG,CAAC,IAAGA,GAAgC,MAAM9zF,MAAM5D,EAAE,MAA1C,IAAIrH,EAAEg/F,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAGl/F,EAAE,CAAC,CAkDpE0yG,CAAGr6F,EAAErjB,OAAE,EAAOD,GAAGA,EAAE+U,cAAc,IAAI,CACxG,SAASkkG,GAAGj5G,EAAEC,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIC,EAAE,EAAEA,EAAEF,EAAEzD,OAAO2D,IAAI,CAAC,IAAIojB,EAAEtjB,EAAEE,GAAG6C,EAAEugB,EAAEwH,MAAMxH,EAAEA,EAAEw1F,UAAU94G,EAAE,CAAC,IAAIc,OAAE,EAAO,GAAGb,EAAE,IAAI,IAAImjB,EAAEE,EAAE/mB,OAAO,EAAE,GAAG6mB,EAAEA,IAAI,CAAC,IAAIhR,EAAEkR,EAAEF,GAAGhc,EAAEgL,EAAExW,SAASqP,EAAEmH,EAAE2C,cAA2B,GAAb3C,EAAEA,EAAE0C,SAAY1N,IAAItG,GAAGiC,EAAEyuG,uBAAuB,MAAMxxG,EAAE09G,GAAG36G,EAAEqP,EAAEnH,GAAGnK,EAAEsG,CAAC,MAAM,IAAIgc,EAAE,EAAEA,EAAEE,EAAE/mB,OAAO6mB,IAAI,CAAoD,GAA5Chc,GAAPgL,EAAEkR,EAAEF,IAAOxnB,SAASqP,EAAEmH,EAAE2C,cAAc3C,EAAEA,EAAE0C,SAAY1N,IAAItG,GAAGiC,EAAEyuG,uBAAuB,MAAMxxG,EAAE09G,GAAG36G,EAAEqP,EAAEnH,GAAGnK,EAAEsG,CAAC,CAAC,CAAC,CAAC,GAAG8iG,GAAG,MAAMlqG,EAAEmqG,GAAGD,IAAG,EAAGC,GAAG,KAAKnqG,CAAE,CAC5a,SAASxB,GAAEwB,EAAEC,GAAG,IAAIC,EAAED,EAAEw7D,SAAI,IAASv7D,IAAIA,EAAED,EAAEw7D,IAAI,IAAIqjC,KAAK,IAAIx7E,EAAEtjB,EAAE,WAAWE,EAAEmB,IAAIiiB,KAAKs6F,GAAG39G,EAAED,EAAE,GAAE,GAAIE,EAAEuiE,IAAIn/C,GAAG,CAAC,SAASu6F,GAAG79G,EAAEC,EAAEC,GAAG,IAAIojB,EAAE,EAAErjB,IAAIqjB,GAAG,GAAGs6F,GAAG19G,EAAEF,EAAEsjB,EAAErjB,EAAE,CAAC,IAAI69G,GAAG,kBAAkB76G,KAAK2I,SAASrM,SAAS,IAAIC,MAAM,GAAG,SAASu+G,GAAG/9G,GAAG,IAAIA,EAAE89G,IAAI,CAAC99G,EAAE89G,KAAI,EAAG9oC,EAAG7tE,SAAQ,SAASlH,GAAG,oBAAoBA,IAAIw9G,GAAGp8G,IAAIpB,IAAI49G,GAAG59G,GAAE,EAAGD,GAAG69G,GAAG59G,GAAE,EAAGD,GAAG,IAAG,IAAIC,EAAE,IAAID,EAAE+kG,SAAS/kG,EAAEA,EAAE4jG,cAAc,OAAO3jG,GAAGA,EAAE69G,MAAM79G,EAAE69G,KAAI,EAAGD,GAAG,mBAAkB,EAAG59G,GAAG,CAAC,CACjb,SAAS29G,GAAG59G,EAAEC,EAAEC,EAAEojB,GAAG,OAAOotF,GAAGzwG,IAAI,KAAK,EAAE,IAAI8C,EAAEqtG,GAAG,MAAM,KAAK,EAAErtG,EAAEwtG,GAAG,MAAM,QAAQxtG,EAAEutG,GAAGpwG,EAAE6C,EAAEsqB,KAAK,KAAKptB,EAAEC,EAAEF,GAAG+C,OAAE,GAAQ8mG,IAAI,eAAe5pG,GAAG,cAAcA,GAAG,UAAUA,IAAI8C,GAAE,GAAIugB,OAAE,IAASvgB,EAAE/C,EAAEsuB,iBAAiBruB,EAAEC,EAAE,CAAC89G,SAAQ,EAAGC,QAAQl7G,IAAI/C,EAAEsuB,iBAAiBruB,EAAEC,GAAE,QAAI,IAAS6C,EAAE/C,EAAEsuB,iBAAiBruB,EAAEC,EAAE,CAAC+9G,QAAQl7G,IAAI/C,EAAEsuB,iBAAiBruB,EAAEC,GAAE,EAAG,CAClV,SAASu2D,GAAGz2D,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,IAAIjC,EAAEwiB,EAAE,GAAG,KAAO,EAAFrjB,IAAM,KAAO,EAAFA,IAAM,OAAOqjB,EAAEtjB,EAAE,OAAO,CAAC,GAAG,OAAOsjB,EAAE,OAAO,IAAIF,EAAEE,EAAEnZ,IAAI,GAAG,IAAIiZ,GAAG,IAAIA,EAAE,CAAC,IAAIhR,EAAEkR,EAAE8lF,UAAUqG,cAAc,GAAGr9F,IAAIrP,GAAG,IAAIqP,EAAE2yF,UAAU3yF,EAAEyyC,aAAa9hD,EAAE,MAAM,GAAG,IAAIqgB,EAAE,IAAIA,EAAEE,EAAE03E,OAAO,OAAO53E,GAAG,CAAC,IAAIhc,EAAEgc,EAAEjZ,IAAI,IAAG,IAAI/C,GAAG,IAAIA,MAAKA,EAAEgc,EAAEgmF,UAAUqG,iBAAkB1sG,GAAG,IAAIqE,EAAE29F,UAAU39F,EAAEy9C,aAAa9hD,GAAE,OAAOqgB,EAAEA,EAAE43E,MAAM,CAAC,KAAK,OAAO5oF,GAAG,CAAS,GAAG,QAAXgR,EAAEksF,GAAGl9F,IAAe,OAAe,GAAG,KAAXhL,EAAEgc,EAAEjZ,MAAc,IAAI/C,EAAE,CAACkc,EAAExiB,EAAEsiB,EAAE,SAASpjB,CAAC,CAACoS,EAAEA,EAAEyyC,UAAU,CAAC,CAACvhC,EAAEA,EAAE03E,MAAM,CAAC2O,IAAG,WAAW,IAAIrmF,EAAExiB,EAAEiC,EAAE6lG,GAAG1oG,GAAGkjB,EAAE,GACpfpjB,EAAE,CAAC,IAAIoS,EAAEirG,GAAGj9G,IAAIJ,GAAG,QAAG,IAASoS,EAAE,CAAC,IAAIhL,EAAEgvD,GAAGxmD,EAAE5P,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAI+wG,GAAG7wG,GAAG,MAAMF,EAAE,IAAK,UAAU,IAAK,QAAQoH,EAAE6uG,GAAG,MAAM,IAAK,UAAUrmG,EAAE,QAAQxI,EAAE4sG,GAAG,MAAM,IAAK,WAAWpkG,EAAE,OAAOxI,EAAE4sG,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY5sG,EAAE4sG,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAI9zG,EAAEozG,OAAO,MAAMtzG,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcoH,EAAEysG,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOzsG,EAC1iB0sG,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa1sG,EAAEsvG,GAAG,MAAM,KAAKuG,GAAG,KAAKC,GAAG,KAAKC,GAAG/1G,EAAE6sG,GAAG,MAAM,KAAKmJ,GAAGh2G,EAAE0vG,GAAG,MAAM,IAAK,SAAS1vG,EAAEorG,GAAG,MAAM,IAAK,QAAQprG,EAAEmwG,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQnwG,EAAEktG,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYltG,EAAE8uG,GAAG,IAAIvmG,EAAE,KAAO,EAAF1P,GAAKi+G,GAAGvuG,GAAG,WAAW3P,EAAEs7B,EAAE3rB,EAAE,OAAOyC,EAAEA,EAAE,UAAU,KAAKA,EAAEzC,EAAE,GAAG,IAAI,IAAQ0C,EAAJjM,EAAEkd,EAAI,OAC/eld,GAAG,CAAK,IAAIvE,GAARwQ,EAAEjM,GAAUgjG,UAAsF,GAA5E,IAAI/2F,EAAElI,KAAK,OAAOtI,IAAIwQ,EAAExQ,EAAE,OAAOy5B,IAAc,OAAVz5B,EAAE+nG,GAAGxjG,EAAEk1B,KAAY3rB,EAAE1O,KAAKk9G,GAAG/3G,EAAEvE,EAAEwQ,MAAS6rG,EAAE,MAAM93G,EAAEA,EAAE40F,MAAM,CAAC,EAAErrF,EAAEpT,SAAS6V,EAAE,IAAIhL,EAAEgL,EAAExC,EAAE,KAAK1P,EAAE6C,GAAGqgB,EAAEniB,KAAK,CAAC6pB,MAAM1Y,EAAE0mG,UAAUnpG,IAAI,CAAC,CAAC,GAAG,KAAO,EAAF1P,GAAK,CAA4E,GAAnCmH,EAAE,aAAapH,GAAG,eAAeA,KAAtEoS,EAAE,cAAcpS,GAAG,gBAAgBA,IAA2CE,IAAIyoG,MAAK/4F,EAAE1P,EAAEszG,eAAetzG,EAAEuzG,eAAenE,GAAG1/F,KAAIA,EAAEwuG,OAAgBh3G,GAAGgL,KAAGA,EAAErP,EAAEC,SAASD,EAAEA,GAAGqP,EAAErP,EAAE6gG,eAAexxF,EAAE8oG,aAAa9oG,EAAEisG,aAAar7G,OAAUoE,GAAqCA,EAAEkc,EAAiB,QAAf1T,GAAnCA,EAAE1P,EAAEszG,eAAetzG,EAAEwzG,WAAkBpE,GAAG1/F,GAAG,QAC9dA,KAARsuG,EAAE5T,GAAG16F,KAAU,IAAIA,EAAEzF,KAAK,IAAIyF,EAAEzF,OAAKyF,EAAE,QAAUxI,EAAE,KAAKwI,EAAE0T,GAAKlc,IAAIwI,GAAE,CAAgU,GAA/TD,EAAEkkG,GAAGhyG,EAAE,eAAey5B,EAAE,eAAel1B,EAAE,QAAW,eAAepG,GAAG,gBAAgBA,IAAE2P,EAAEumG,GAAGr0G,EAAE,iBAAiBy5B,EAAE,iBAAiBl1B,EAAE,WAAU83G,EAAE,MAAM92G,EAAEgL,EAAE+mG,GAAG/xG,GAAGiL,EAAE,MAAMzC,EAAEwC,EAAE+mG,GAAGvpG,IAAGwC,EAAE,IAAIzC,EAAE9N,EAAEuE,EAAE,QAAQgB,EAAElH,EAAE6C,IAAK3G,OAAO8hH,EAAE9rG,EAAEohG,cAAcnhG,EAAExQ,EAAE,KAAKytG,GAAGvsG,KAAKugB,KAAI3T,EAAE,IAAIA,EAAE2rB,EAAEl1B,EAAE,QAAQwJ,EAAE1P,EAAE6C,IAAK3G,OAAOiW,EAAE1C,EAAE6jG,cAAc0K,EAAEr8G,EAAE8N,GAAGuuG,EAAEr8G,EAAKuF,GAAGwI,EAAE3P,EAAE,CAAa,IAARq7B,EAAE1rB,EAAExJ,EAAE,EAAMiM,EAAhB1C,EAAEvI,EAAkBiL,EAAEA,EAAEisG,GAAGjsG,GAAGjM,IAAQ,IAAJiM,EAAE,EAAMxQ,EAAEy5B,EAAEz5B,EAAEA,EAAEy8G,GAAGz8G,GAAGwQ,IAAI,KAAK,EAAEjM,EAAEiM,GAAG1C,EAAE2uG,GAAG3uG,GAAGvJ,IAAI,KAAK,EAAEiM,EAAEjM,GAAGk1B,EACpfgjF,GAAGhjF,GAAGjpB,IAAI,KAAKjM,KAAK,CAAC,GAAGuJ,IAAI2rB,GAAG,OAAOA,GAAG3rB,IAAI2rB,EAAEivE,UAAU,MAAMtqG,EAAE0P,EAAE2uG,GAAG3uG,GAAG2rB,EAAEgjF,GAAGhjF,EAAE,CAAC3rB,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAOvI,GAAGm3G,GAAGn7F,EAAEhR,EAAEhL,EAAEuI,GAAE,GAAI,OAAOC,GAAG,OAAOsuG,GAAGK,GAAGn7F,EAAE86F,EAAEtuG,EAAED,GAAE,EAAG,CAA8D,GAAG,YAA1CvI,GAAjBgL,EAAEkR,EAAE61F,GAAG71F,GAAGtgB,QAAWu/F,UAAUnwF,EAAEmwF,SAAS1iD,gBAA+B,UAAUz4C,GAAG,SAASgL,EAAE5Q,KAAK,IAAIg9G,EAAGpF,QAAQ,GAAGn6B,GAAG7sE,GAAG,GAAGinG,GAAGmF,EAAGxE,OAAO,CAACwE,EAAG1E,GAAG,IAAI2E,EAAG7E,EAAE,MAAMxyG,EAAEgL,EAAEmwF,WAAW,UAAUn7F,EAAEy4C,gBAAgB,aAAaztC,EAAE5Q,MAAM,UAAU4Q,EAAE5Q,QAAQg9G,EAAGzE,IACrV,OAD4VyE,IAAKA,EAAGA,EAAGx+G,EAAEsjB,IAAKghD,GAAGlhD,EAAEo7F,EAAGt+G,EAAE6C,IAAW07G,GAAIA,EAAGz+G,EAAEoS,EAAEkR,GAAG,aAAatjB,IAAIy+G,EAAGrsG,EAAEgxF,gBAClfqb,EAAGjb,YAAY,WAAWpxF,EAAE5Q,MAAMqsB,GAAGzb,EAAE,SAASA,EAAEtU,QAAO2gH,EAAGn7F,EAAE61F,GAAG71F,GAAGtgB,OAAchD,GAAG,IAAK,WAAai/E,GAAGw/B,IAAK,SAASA,EAAG7D,mBAAgBuB,GAAGsC,EAAGrC,GAAG94F,EAAE+4F,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGn5F,EAAEljB,EAAE6C,GAAG,MAAM,IAAK,kBAAkB,GAAGm5G,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGn5F,EAAEljB,EAAE6C,GAAG,IAAI27G,EAAG,GAAGjH,GAAGx3G,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAI2+G,EAAG,qBAAqB,MAAM1+G,EAAE,IAAK,iBAAiB0+G,EAAG,mBACpe,MAAM1+G,EAAE,IAAK,oBAAoB0+G,EAAG,sBAAsB,MAAM1+G,EAAE0+G,OAAG,CAAM,MAAMzG,GAAGF,GAAGh4G,EAAEE,KAAKy+G,EAAG,oBAAoB,YAAY3+G,GAAG,MAAME,EAAE8wG,UAAU2N,EAAG,sBAAsBA,IAAK9G,IAAI,OAAO33G,EAAE61G,SAASmC,IAAI,uBAAuByG,EAAG,qBAAqBA,GAAIzG,KAAKwG,EAAG5N,OAAYF,GAAG,UAARD,GAAG5tG,GAAkB4tG,GAAG7yG,MAAM6yG,GAAGx8F,YAAY+jG,IAAG,IAAiB,GAAZuG,EAAG5F,GAAGv1F,EAAEq7F,IAASpiH,SAASoiH,EAAG,IAAIpK,GAAGoK,EAAG3+G,EAAE,KAAKE,EAAE6C,GAAGqgB,EAAEniB,KAAK,CAAC6pB,MAAM6zF,EAAG7F,UAAU2F,IAAKC,EAAGC,EAAGr5F,KAAKo5F,EAAa,QAATA,EAAGzG,GAAG/3G,MAAey+G,EAAGr5F,KAAKo5F,MAAUA,EAAG9G,GA5BhM,SAAY53G,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAOi4G,GAAGh4G,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAE+1G,MAAa,MAAK+B,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAO93G,EAAEC,EAAEqlB,QAASwyF,IAAIC,GAAG,KAAK/3G,EAAE,QAAQ,OAAO,KAAK,CA4BE4+G,CAAG5+G,EAAEE,GA3Bzd,SAAYF,EAAEC,GAAG,GAAGi4G,GAAG,MAAM,mBAAmBl4G,IAAIy3G,IAAIO,GAAGh4G,EAAEC,IAAID,EAAE8wG,KAAKD,GAAGD,GAAGD,GAAG,KAAKuH,IAAG,EAAGl4G,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKC,EAAE+yG,SAAS/yG,EAAEizG,QAAQjzG,EAAEkzG,UAAUlzG,EAAE+yG,SAAS/yG,EAAEizG,OAAO,CAAC,GAAGjzG,EAAE4+G,MAAM,EAAE5+G,EAAE4+G,KAAKtiH,OAAO,OAAO0D,EAAE4+G,KAAK,GAAG5+G,EAAE+1G,MAAM,OAAOhrG,OAAOugE,aAAatrE,EAAE+1G,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAO6B,IAAI,OAAO53G,EAAE81G,OAAO,KAAK91G,EAAEqlB,KAAyB,CA2BqFw5F,CAAG9+G,EAAEE,MACje,GADoeojB,EAAEu1F,GAAGv1F,EAAE,kBACve/mB,SAASwG,EAAE,IAAIwxG,GAAG,gBAAgB,cAAc,KAAKr0G,EAAE6C,GAAGqgB,EAAEniB,KAAK,CAAC6pB,MAAM/nB,EAAE+1G,UAAUx1F,IAAIvgB,EAAEuiB,KAAKo5F,GAAG,CAACzF,GAAG71F,EAAEnjB,EAAE,GAAE,CAAC,SAASk+G,GAAGn+G,EAAEC,EAAEC,GAAG,MAAM,CAACtE,SAASoE,EAAE8U,SAAS7U,EAAE8U,cAAc7U,EAAE,CAAC,SAAS24G,GAAG74G,EAAEC,GAAG,IAAI,IAAIC,EAAED,EAAE,UAAUqjB,EAAE,GAAG,OAAOtjB,GAAG,CAAC,IAAI+C,EAAE/C,EAAEc,EAAEiC,EAAEqmG,UAAU,IAAIrmG,EAAEoH,KAAK,OAAOrJ,IAAIiC,EAAEjC,EAAY,OAAVA,EAAE8oG,GAAG5pG,EAAEE,KAAYojB,EAAEw9B,QAAQq9D,GAAGn+G,EAAEc,EAAEiC,IAAc,OAAVjC,EAAE8oG,GAAG5pG,EAAEC,KAAYqjB,EAAEriB,KAAKk9G,GAAGn+G,EAAEc,EAAEiC,KAAK/C,EAAEA,EAAEg7F,MAAM,CAAC,OAAO13E,CAAC,CAAC,SAASg7F,GAAGt+G,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEg7F,aAAah7F,GAAG,IAAIA,EAAEmK,KAAK,OAAOnK,GAAI,IAAI,CACnd,SAASu+G,GAAGv+G,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,IAAI,IAAIjC,EAAEb,EAAEkxG,WAAW/tF,EAAE,GAAG,OAAOljB,GAAGA,IAAIojB,GAAG,CAAC,IAAIlR,EAAElS,EAAEkH,EAAEgL,EAAEm4F,UAAUt/F,EAAEmH,EAAEg3F,UAAU,GAAG,OAAOhiG,GAAGA,IAAIkc,EAAE,MAAM,IAAIlR,EAAEjI,KAAK,OAAOc,IAAImH,EAAEnH,EAAElI,EAAa,OAAVqE,EAAEwiG,GAAG1pG,EAAEY,KAAYsiB,EAAE09B,QAAQq9D,GAAGj+G,EAAEkH,EAAEgL,IAAKrP,GAAc,OAAVqE,EAAEwiG,GAAG1pG,EAAEY,KAAYsiB,EAAEniB,KAAKk9G,GAAGj+G,EAAEkH,EAAEgL,KAAMlS,EAAEA,EAAE86F,MAAM,CAAC,IAAI53E,EAAE7mB,QAAQyD,EAAEiB,KAAK,CAAC6pB,MAAM7qB,EAAE64G,UAAU11F,GAAG,CAAC,IAAI27F,GAAG,SAASC,GAAG,iBAAiB,SAASC,GAAGj/G,GAAG,OAAO,kBAAkBA,EAAEA,EAAE,GAAGA,GAAGwS,QAAQusG,GAAG,MAAMvsG,QAAQwsG,GAAG,GAAG,CAAC,SAASE,GAAGl/G,EAAEC,EAAEC,GAAW,GAARD,EAAEg/G,GAAGh/G,GAAMg/G,GAAGj/G,KAAKC,GAAGC,EAAE,MAAMgW,MAAM5D,EAAE,KAAM,CAAC,SAAS6sG,KAAK,CAC9e,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGt/G,EAAEC,GAAG,MAAM,aAAaD,GAAG,aAAaA,GAAG,kBAAkBC,EAAEu7E,UAAU,kBAAkBv7E,EAAEu7E,UAAU,kBAAkBv7E,EAAEikG,yBAAyB,OAAOjkG,EAAEikG,yBAAyB,MAAMjkG,EAAEikG,wBAAwBqb,MAAM,CAC5P,IAAIC,GAAG,oBAAoB/rG,WAAWA,gBAAW,EAAOgsG,GAAG,oBAAoBxjG,aAAaA,kBAAa,EAAOyjG,GAAG,oBAAoBC,QAAQA,aAAQ,EAAOC,GAAG,oBAAoBC,eAAeA,eAAe,qBAAqBH,GAAG,SAAS1/G,GAAG,OAAO0/G,GAAGI,QAAQ,MAAMC,KAAK//G,GAAGggH,MAAMC,GAAG,EAAET,GAAG,SAASS,GAAGjgH,GAAGyT,YAAW,WAAW,MAAMzT,CAAE,GAAE,CACpV,SAASkgH,GAAGlgH,EAAEC,GAAG,IAAIC,EAAED,EAAEqjB,EAAE,EAAE,EAAE,CAAC,IAAIvgB,EAAE7C,EAAEm6G,YAA6B,GAAjBr6G,EAAEwpD,YAAYtpD,GAAM6C,GAAG,IAAIA,EAAEgiG,SAAS,GAAY,QAAT7kG,EAAE6C,EAAEuiB,MAAc,CAAC,GAAG,IAAIhC,EAA0B,OAAvBtjB,EAAEwpD,YAAYzmD,QAAGitG,GAAG/vG,GAAUqjB,GAAG,KAAK,MAAMpjB,GAAG,OAAOA,GAAG,OAAOA,GAAGojB,IAAIpjB,EAAE6C,CAAC,OAAO7C,GAAG8vG,GAAG/vG,EAAE,CAAC,SAASkgH,GAAGngH,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAEq6G,YAAY,CAAC,IAAIp6G,EAAED,EAAE+kG,SAAS,GAAG,IAAI9kG,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAIA,EAAE,CAAU,GAAG,OAAZA,EAAED,EAAEslB,OAAiB,OAAOrlB,GAAG,OAAOA,EAAE,MAAM,GAAG,OAAOA,EAAE,OAAO,IAAI,CAAC,CAAC,OAAOD,CAAC,CACjY,SAASogH,GAAGpgH,GAAGA,EAAEA,EAAEqgH,gBAAgB,IAAI,IAAIpgH,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE+kG,SAAS,CAAC,IAAI7kG,EAAEF,EAAEslB,KAAK,GAAG,MAAMplB,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAID,EAAE,OAAOD,EAAEC,GAAG,KAAK,OAAOC,GAAGD,GAAG,CAACD,EAAEA,EAAEqgH,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAGr9G,KAAK2I,SAASrM,SAAS,IAAIC,MAAM,GAAG+gH,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGlC,GAAG,oBAAoBkC,GAAG7kD,GAAG,iBAAiB6kD,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAAShR,GAAGtvG,GAAG,IAAIC,EAAED,EAAEugH,IAAI,GAAGtgH,EAAE,OAAOA,EAAE,IAAI,IAAIC,EAAEF,EAAE6kD,WAAW3kD,GAAG,CAAC,GAAGD,EAAEC,EAAEk+G,KAAKl+G,EAAEqgH,IAAI,CAAe,GAAdrgH,EAAED,EAAEsqG,UAAa,OAAOtqG,EAAE6qG,OAAO,OAAO5qG,GAAG,OAAOA,EAAE4qG,MAAM,IAAI9qG,EAAEogH,GAAGpgH,GAAG,OAAOA,GAAG,CAAC,GAAGE,EAAEF,EAAEugH,IAAI,OAAOrgH,EAAEF,EAAEogH,GAAGpgH,EAAE,CAAC,OAAOC,CAAC,CAAKC,GAAJF,EAAEE,GAAM2kD,UAAU,CAAC,OAAO,IAAI,CAAC,SAASskD,GAAGnpG,GAAkB,QAAfA,EAAEA,EAAEugH,KAAKvgH,EAAEo+G,MAAc,IAAIp+G,EAAEmK,KAAK,IAAInK,EAAEmK,KAAK,KAAKnK,EAAEmK,KAAK,IAAInK,EAAEmK,IAAI,KAAKnK,CAAC,CAAC,SAASm5G,GAAGn5G,GAAG,GAAG,IAAIA,EAAEmK,KAAK,IAAInK,EAAEmK,IAAI,OAAOnK,EAAEopG,UAAU,MAAMlzF,MAAM5D,EAAE,IAAK,CAAC,SAAS+2F,GAAGrpG,GAAG,OAAOA,EAAEwgH,KAAK,IAAI,CAAC,IAAIG,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAG7gH,GAAG,MAAM,CAACowF,QAAQpwF,EAAE,CACve,SAASyO,GAAEzO,GAAG,EAAE4gH,KAAK5gH,EAAEowF,QAAQuwB,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAAS7+G,GAAE/B,EAAEC,GAAG2gH,KAAKD,GAAGC,IAAI5gH,EAAEowF,QAAQpwF,EAAEowF,QAAQnwF,CAAC,CAAC,IAAI6gH,GAAG,CAAC,EAAEC,GAAEF,GAAGC,IAAIE,GAAGH,IAAG,GAAII,GAAGH,GAAG,SAASI,GAAGlhH,EAAEC,GAAG,IAAIC,EAAEF,EAAEwB,KAAK4V,aAAa,IAAIlX,EAAE,OAAO4gH,GAAG,IAAIx9F,EAAEtjB,EAAEopG,UAAU,GAAG9lF,GAAGA,EAAE69F,8CAA8ClhH,EAAE,OAAOqjB,EAAE89F,0CAA0C,IAAStgH,EAALiC,EAAE,CAAC,EAAI,IAAIjC,KAAKZ,EAAE6C,EAAEjC,GAAGb,EAAEa,GAAoH,OAAjHwiB,KAAItjB,EAAEA,EAAEopG,WAAY+X,4CAA4ClhH,EAAED,EAAEohH,0CAA0Cr+G,GAAUA,CAAC,CAC9d,SAASs+G,GAAGrhH,GAAyB,OAAO,QAA7BA,EAAEA,EAAEkX,yBAAmC,IAASlX,CAAC,CAAC,SAASshH,KAAK7yG,GAAEuyG,IAAIvyG,GAAEsyG,GAAE,CAAC,SAASQ,GAAGvhH,EAAEC,EAAEC,GAAG,GAAG6gH,GAAE3wB,UAAU0wB,GAAG,MAAM5qG,MAAM5D,EAAE,MAAMvQ,GAAEg/G,GAAE9gH,GAAG8B,GAAEi/G,GAAG9gH,EAAE,CAAC,SAASshH,GAAGxhH,EAAEC,EAAEC,GAAG,IAAIojB,EAAEtjB,EAAEopG,UAAgC,GAAtBnpG,EAAEA,EAAEiX,kBAAqB,oBAAoBoM,EAAEm+F,gBAAgB,OAAOvhH,EAAwB,IAAI,IAAI6C,KAA9BugB,EAAEA,EAAEm+F,kBAAiC,KAAK1+G,KAAK9C,GAAG,MAAMiW,MAAM5D,EAAE,IAAI8vF,EAAGpiG,IAAI,UAAU+C,IAAI,OAAOiE,EAAE,CAAC,EAAE9G,EAAEojB,EAAE,CACxX,SAASo+F,GAAG1hH,GAA2G,OAAxGA,GAAGA,EAAEA,EAAEopG,YAAYppG,EAAE2hH,2CAA2Cb,GAAGG,GAAGF,GAAE3wB,QAAQruF,GAAEg/G,GAAE/gH,GAAG+B,GAAEi/G,GAAGA,GAAG5wB,UAAe,CAAE,CAAC,SAASwxB,GAAG5hH,EAAEC,EAAEC,GAAG,IAAIojB,EAAEtjB,EAAEopG,UAAU,IAAI9lF,EAAE,MAAMpN,MAAM5D,EAAE,MAAMpS,GAAGF,EAAEwhH,GAAGxhH,EAAEC,EAAEghH,IAAI39F,EAAEq+F,0CAA0C3hH,EAAEyO,GAAEuyG,IAAIvyG,GAAEsyG,IAAGh/G,GAAEg/G,GAAE/gH,IAAIyO,GAAEuyG,IAAIj/G,GAAEi/G,GAAG9gH,EAAE,CAAC,IAAI2hH,GAAG,KAAKC,IAAG,EAAGxrD,IAAG,EAAG,SAASyrD,GAAG/hH,GAAG,OAAO6hH,GAAGA,GAAG,CAAC7hH,GAAG6hH,GAAG5gH,KAAKjB,EAAE,CAChW,SAASgiH,KAAK,IAAI1rD,IAAI,OAAOurD,GAAG,CAACvrD,IAAG,EAAG,IAAIt2D,EAAE,EAAEC,EAAEuC,GAAE,IAAI,IAAItC,EAAE2hH,GAAG,IAAIr/G,GAAE,EAAExC,EAAEE,EAAE3D,OAAOyD,IAAI,CAAC,IAAIsjB,EAAEpjB,EAAEF,GAAG,GAAGsjB,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAACu+F,GAAG,KAAKC,IAAG,CAAE,CAAC,MAAM/+G,GAAG,MAAM,OAAO8+G,KAAKA,GAAGA,GAAGriH,MAAMQ,EAAE,IAAIkrG,GAAGttC,GAAGokD,IAAIj/G,CAAE,CAAC,QAAQP,GAAEvC,EAAEq2D,IAAG,CAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI2rD,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAG,SAASxpC,GAAGj5E,EAAEC,GAAGgiH,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAGA,GAAGniH,EAAEoiH,GAAGniH,CAAC,CACjV,SAASyiH,GAAG1iH,EAAEC,EAAEC,GAAGmiH,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGA,GAAGviH,EAAE,IAAIsjB,EAAEk/F,GAAGxiH,EAAEyiH,GAAG,IAAI1/G,EAAE,GAAGwpG,GAAGjpF,GAAG,EAAEA,KAAK,GAAGvgB,GAAG7C,GAAG,EAAE,IAAIY,EAAE,GAAGyrG,GAAGtsG,GAAG8C,EAAE,GAAG,GAAGjC,EAAE,CAAC,IAAIsiB,EAAErgB,EAAEA,EAAE,EAAEjC,GAAGwiB,GAAG,GAAGF,GAAG,GAAG7jB,SAAS,IAAI+jB,IAAIF,EAAErgB,GAAGqgB,EAAEo/F,GAAG,GAAG,GAAGjW,GAAGtsG,GAAG8C,EAAE7C,GAAG6C,EAAEugB,EAAEm/F,GAAG3hH,EAAEd,CAAC,MAAMwiH,GAAG,GAAG1hH,EAAEZ,GAAG6C,EAAEugB,EAAEm/F,GAAGziH,CAAC,CAAC,SAAS2iH,GAAG3iH,GAAG,OAAOA,EAAEg7F,SAAS/hB,GAAGj5E,EAAE,GAAG0iH,GAAG1iH,EAAE,EAAE,GAAG,CAAC,SAAS4iH,GAAG5iH,GAAG,KAAKA,IAAImiH,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK,KAAKliH,IAAIuiH,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKG,GAAGJ,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,IAAI,CAAC,IAAIO,GAAG,KAAKC,GAAG,KAAKC,IAAE,EAAGC,GAAG,KACje,SAASC,GAAGjjH,EAAEC,GAAG,IAAIC,EAAEgjH,GAAG,EAAE,KAAK,KAAK,GAAGhjH,EAAEu5F,YAAY,UAAUv5F,EAAEkpG,UAAUnpG,EAAEC,EAAE86F,OAAOh7F,EAAgB,QAAdC,EAAED,EAAEmjH,YAAoBnjH,EAAEmjH,UAAU,CAACjjH,GAAGF,EAAEwqG,OAAO,IAAIvqG,EAAEgB,KAAKf,EAAE,CACxJ,SAASkjH,GAAGpjH,EAAEC,GAAG,OAAOD,EAAEmK,KAAK,KAAK,EAAE,IAAIjK,EAAEF,EAAEwB,KAAyE,OAAO,QAA3EvB,EAAE,IAAIA,EAAE8kG,UAAU7kG,EAAE2/C,gBAAgB5/C,EAAEsiG,SAAS1iD,cAAc,KAAK5/C,KAAmBD,EAAEopG,UAAUnpG,EAAE4iH,GAAG7iH,EAAE8iH,GAAG3C,GAAGlgH,EAAE0kG,aAAY,GAAO,KAAK,EAAE,OAAoD,QAA7C1kG,EAAE,KAAKD,EAAEqjH,cAAc,IAAIpjH,EAAE8kG,SAAS,KAAK9kG,KAAYD,EAAEopG,UAAUnpG,EAAE4iH,GAAG7iH,EAAE8iH,GAAG,MAAK,GAAO,KAAK,GAAG,OAA+B,QAAxB7iH,EAAE,IAAIA,EAAE8kG,SAAS,KAAK9kG,KAAYC,EAAE,OAAOqiH,GAAG,CAACx8G,GAAGy8G,GAAGzkC,SAAS0kC,IAAI,KAAKziH,EAAE0qG,cAAc,CAACC,WAAW1qG,EAAEqjH,YAAYpjH,EAAEqjH,UAAU,aAAYrjH,EAAEgjH,GAAG,GAAG,KAAK,KAAK,IAAK9Z,UAAUnpG,EAAEC,EAAE86F,OAAOh7F,EAAEA,EAAE8qG,MAAM5qG,EAAE2iH,GAAG7iH,EAAE8iH,GAClf,MAAK,GAAO,QAAQ,OAAM,EAAG,CAAC,SAASU,GAAGxjH,GAAG,OAAO,KAAY,EAAPA,EAAEyK,OAAS,KAAa,IAARzK,EAAEwqG,MAAU,CAAC,SAASiZ,GAAGzjH,GAAG,GAAG+iH,GAAE,CAAC,IAAI9iH,EAAE6iH,GAAG,GAAG7iH,EAAE,CAAC,IAAIC,EAAED,EAAE,IAAImjH,GAAGpjH,EAAEC,GAAG,CAAC,GAAGujH,GAAGxjH,GAAG,MAAMkW,MAAM5D,EAAE,MAAMrS,EAAEkgH,GAAGjgH,EAAEm6G,aAAa,IAAI/2F,EAAEu/F,GAAG5iH,GAAGmjH,GAAGpjH,EAAEC,GAAGgjH,GAAG3/F,EAAEpjB,IAAIF,EAAEwqG,OAAe,KAATxqG,EAAEwqG,MAAY,EAAEuY,IAAE,EAAGF,GAAG7iH,EAAE,CAAC,KAAK,CAAC,GAAGwjH,GAAGxjH,GAAG,MAAMkW,MAAM5D,EAAE,MAAMtS,EAAEwqG,OAAe,KAATxqG,EAAEwqG,MAAY,EAAEuY,IAAE,EAAGF,GAAG7iH,CAAC,CAAC,CAAC,CAAC,SAAS0jH,GAAG1jH,GAAG,IAAIA,EAAEA,EAAEg7F,OAAO,OAAOh7F,GAAG,IAAIA,EAAEmK,KAAK,IAAInK,EAAEmK,KAAK,KAAKnK,EAAEmK,KAAKnK,EAAEA,EAAEg7F,OAAO6nB,GAAG7iH,CAAC,CACha,SAAS2jH,GAAG3jH,GAAG,GAAGA,IAAI6iH,GAAG,OAAM,EAAG,IAAIE,GAAE,OAAOW,GAAG1jH,GAAG+iH,IAAE,GAAG,EAAG,IAAI9iH,EAAkG,IAA/FA,EAAE,IAAID,EAAEmK,QAAQlK,EAAE,IAAID,EAAEmK,OAAgBlK,EAAE,UAAXA,EAAED,EAAEwB,OAAmB,SAASvB,IAAIq/G,GAAGt/G,EAAEwB,KAAKxB,EAAE4jH,gBAAmB3jH,IAAIA,EAAE6iH,IAAI,CAAC,GAAGU,GAAGxjH,GAAG,MAAM6jH,KAAK3tG,MAAM5D,EAAE,MAAM,KAAKrS,GAAGgjH,GAAGjjH,EAAEC,GAAGA,EAAEkgH,GAAGlgH,EAAEo6G,YAAY,CAAO,GAANqJ,GAAG1jH,GAAM,KAAKA,EAAEmK,IAAI,CAAgD,KAA7BnK,EAAE,QAApBA,EAAEA,EAAE0qG,eAAyB1qG,EAAE2qG,WAAW,MAAW,MAAMz0F,MAAM5D,EAAE,MAAMtS,EAAE,CAAiB,IAAhBA,EAAEA,EAAEq6G,YAAgBp6G,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE+kG,SAAS,CAAC,IAAI7kG,EAAEF,EAAEslB,KAAK,GAAG,OAAOplB,EAAE,CAAC,GAAG,IAAID,EAAE,CAAC6iH,GAAG3C,GAAGngH,EAAEq6G,aAAa,MAAMr6G,CAAC,CAACC,GAAG,KAAK,MAAMC,GAAG,OAAOA,GAAG,OAAOA,GAAGD,GAAG,CAACD,EAAEA,EAAEq6G,WAAW,CAACyI,GACjgB,IAAI,CAAC,MAAMA,GAAGD,GAAG1C,GAAGngH,EAAEopG,UAAUiR,aAAa,KAAK,OAAM,CAAE,CAAC,SAASwJ,KAAK,IAAI,IAAI7jH,EAAE8iH,GAAG9iH,GAAGA,EAAEmgH,GAAGngH,EAAEq6G,YAAY,CAAC,SAASyJ,KAAKhB,GAAGD,GAAG,KAAKE,IAAE,CAAE,CAAC,SAASgB,GAAG/jH,GAAG,OAAOgjH,GAAGA,GAAG,CAAChjH,GAAGgjH,GAAG/hH,KAAKjB,EAAE,CAAC,IAAIgkH,GAAG5jB,EAAG8P,wBAChM,SAAS+T,GAAGjkH,EAAEC,EAAEC,GAAW,GAAG,QAAXF,EAAEE,EAAEy7F,MAAiB,oBAAoB37F,GAAG,kBAAkBA,EAAE,CAAC,GAAGE,EAAEgkH,OAAO,CAAY,GAAXhkH,EAAEA,EAAEgkH,OAAY,CAAC,GAAG,IAAIhkH,EAAEiK,IAAI,MAAM+L,MAAM5D,EAAE,MAAM,IAAIgR,EAAEpjB,EAAEkpG,SAAS,CAAC,IAAI9lF,EAAE,MAAMpN,MAAM5D,EAAE,IAAItS,IAAI,IAAI+C,EAAEugB,EAAExiB,EAAE,GAAGd,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAE07F,KAAK,oBAAoB17F,EAAE07F,KAAK17F,EAAE07F,IAAIwoB,aAAarjH,EAASb,EAAE07F,KAAI17F,EAAE,SAASD,GAAG,IAAIC,EAAE8C,EAAEqhH,KAAK,OAAOpkH,SAASC,EAAEa,GAAGb,EAAEa,GAAGd,CAAC,EAAEC,EAAEkkH,WAAWrjH,EAASb,EAAC,CAAC,GAAG,kBAAkBD,EAAE,MAAMkW,MAAM5D,EAAE,MAAM,IAAIpS,EAAEgkH,OAAO,MAAMhuG,MAAM5D,EAAE,IAAItS,GAAI,CAAC,OAAOA,CAAC,CAC/c,SAASqkH,GAAGrkH,EAAEC,GAAuC,MAApCD,EAAE5C,OAAOL,UAAUwC,SAASjC,KAAK2C,GAASiW,MAAM5D,EAAE,GAAG,oBAAoBtS,EAAE,qBAAqB5C,OAAOmH,KAAKtE,GAAGoH,KAAK,MAAM,IAAIrH,GAAI,CAAC,SAASskH,GAAGtkH,GAAiB,OAAOC,EAAfD,EAAEmiG,OAAeniG,EAAEkiG,SAAS,CACrM,SAASqiB,GAAGvkH,GAAG,SAASC,EAAEA,EAAEC,GAAG,GAAGF,EAAE,CAAC,IAAIsjB,EAAErjB,EAAEkjH,UAAU,OAAO7/F,GAAGrjB,EAAEkjH,UAAU,CAACjjH,GAAGD,EAAEuqG,OAAO,IAAIlnF,EAAEriB,KAAKf,EAAE,CAAC,CAAC,SAASA,EAAEA,EAAEojB,GAAG,IAAItjB,EAAE,OAAO,KAAK,KAAK,OAAOsjB,GAAGrjB,EAAEC,EAAEojB,GAAGA,EAAEA,EAAEynF,QAAQ,OAAO,IAAI,CAAC,SAASznF,EAAEtjB,EAAEC,GAAG,IAAID,EAAE,IAAIwuG,IAAI,OAAOvuG,GAAG,OAAOA,EAAErD,IAAIoD,EAAE8J,IAAI7J,EAAErD,IAAIqD,GAAGD,EAAE8J,IAAI7J,EAAEX,MAAMW,GAAGA,EAAEA,EAAE8qG,QAAQ,OAAO/qG,CAAC,CAAC,SAAS+C,EAAE/C,EAAEC,GAAsC,OAAnCD,EAAEwkH,GAAGxkH,EAAEC,IAAKX,MAAM,EAAEU,EAAE+qG,QAAQ,KAAY/qG,CAAC,CAAC,SAASc,EAAEb,EAAEC,EAAEojB,GAAa,OAAVrjB,EAAEX,MAAMgkB,EAAMtjB,EAA6C,QAAjBsjB,EAAErjB,EAAEsqG,YAA6BjnF,EAAEA,EAAEhkB,OAAQY,GAAGD,EAAEuqG,OAAO,EAAEtqG,GAAGojB,GAAErjB,EAAEuqG,OAAO,EAAStqG,IAArGD,EAAEuqG,OAAO,QAAQtqG,EAAqF,CAAC,SAASkjB,EAAEnjB,GACzd,OAD4dD,GAC7f,OAAOC,EAAEsqG,YAAYtqG,EAAEuqG,OAAO,GAAUvqG,CAAC,CAAC,SAASmS,EAAEpS,EAAEC,EAAEC,EAAEojB,GAAG,OAAG,OAAOrjB,GAAG,IAAIA,EAAEkK,MAAWlK,EAAEwkH,GAAGvkH,EAAEF,EAAEyK,KAAK6Y,IAAK03E,OAAOh7F,EAAEC,KAAEA,EAAE8C,EAAE9C,EAAEC,IAAK86F,OAAOh7F,EAASC,EAAC,CAAC,SAASmH,EAAEpH,EAAEC,EAAEC,EAAEojB,GAAG,IAAIxiB,EAAEZ,EAAEsB,KAAK,OAAGV,IAAI2/F,EAAU9wD,EAAE3vC,EAAEC,EAAEC,EAAE7D,MAAMm/E,SAASl4D,EAAEpjB,EAAEtD,KAAQ,OAAOqD,IAAIA,EAAEw5F,cAAc34F,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEkhG,WAAWd,GAAIojB,GAAGxjH,KAAKb,EAAEuB,QAAa8hB,EAAEvgB,EAAE9C,EAAEC,EAAE7D,QAASs/F,IAAIsoB,GAAGjkH,EAAEC,EAAEC,GAAGojB,EAAE03E,OAAOh7F,EAAEsjB,KAAEA,EAAEohG,GAAGxkH,EAAEsB,KAAKtB,EAAEtD,IAAIsD,EAAE7D,MAAM,KAAK2D,EAAEyK,KAAK6Y,IAAKq4E,IAAIsoB,GAAGjkH,EAAEC,EAAEC,GAAGojB,EAAE03E,OAAOh7F,EAASsjB,EAAC,CAAC,SAASrY,EAAEjL,EAAEC,EAAEC,EAAEojB,GAAG,OAAG,OAAOrjB,GAAG,IAAIA,EAAEkK,KACjflK,EAAEmpG,UAAUqG,gBAAgBvvG,EAAEuvG,eAAexvG,EAAEmpG,UAAUub,iBAAiBzkH,EAAEykH,iBAAsB1kH,EAAE2kH,GAAG1kH,EAAEF,EAAEyK,KAAK6Y,IAAK03E,OAAOh7F,EAAEC,KAAEA,EAAE8C,EAAE9C,EAAEC,EAAEs7E,UAAU,KAAMwf,OAAOh7F,EAASC,EAAC,CAAC,SAAS0vC,EAAE3vC,EAAEC,EAAEC,EAAEojB,EAAExiB,GAAG,OAAG,OAAOb,GAAG,IAAIA,EAAEkK,MAAWlK,EAAE4kH,GAAG3kH,EAAEF,EAAEyK,KAAK6Y,EAAExiB,IAAKk6F,OAAOh7F,EAAEC,KAAEA,EAAE8C,EAAE9C,EAAEC,IAAK86F,OAAOh7F,EAASC,EAAC,CAAC,SAASqW,EAAEtW,EAAEC,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAOA,EAAEwkH,GAAG,GAAGxkH,EAAED,EAAEyK,KAAKvK,IAAK86F,OAAOh7F,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE+hG,UAAU,KAAK1B,EAAG,OAAOpgG,EAAEwkH,GAAGzkH,EAAEuB,KAAKvB,EAAErD,IAAIqD,EAAE5D,MAAM,KAAK2D,EAAEyK,KAAKvK,IACjfy7F,IAAIsoB,GAAGjkH,EAAE,KAAKC,GAAGC,EAAE86F,OAAOh7F,EAAEE,EAAE,KAAKsgG,EAAG,OAAOvgG,EAAE2kH,GAAG3kH,EAAED,EAAEyK,KAAKvK,IAAK86F,OAAOh7F,EAAEC,EAAE,KAAKihG,EAAiB,OAAO5qF,EAAEtW,GAAEsjB,EAAnBrjB,EAAEkiG,OAAmBliG,EAAEiiG,UAAUhiG,GAAG,GAAG2jG,GAAG5jG,IAAIohG,EAAGphG,GAAG,OAAOA,EAAE4kH,GAAG5kH,EAAED,EAAEyK,KAAKvK,EAAE,OAAQ86F,OAAOh7F,EAAEC,EAAEokH,GAAGrkH,EAAEC,EAAE,CAAC,OAAO,IAAI,CAAC,SAASkS,EAAEnS,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAE,OAAO9C,EAAEA,EAAErD,IAAI,KAAK,GAAG,kBAAkBsD,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAO,OAAO6C,EAAE,KAAKqP,EAAEpS,EAAEC,EAAE,GAAGC,EAAEojB,GAAG,GAAG,kBAAkBpjB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE8hG,UAAU,KAAK1B,EAAG,OAAOpgG,EAAEtD,MAAMmG,EAAEqE,EAAEpH,EAAEC,EAAEC,EAAEojB,GAAG,KAAK,KAAKk9E,EAAG,OAAOtgG,EAAEtD,MAAMmG,EAAEkI,EAAEjL,EAAEC,EAAEC,EAAEojB,GAAG,KAAK,KAAK49E,EAAG,OAAiB/uF,EAAEnS,EACpfC,GADwe8C,EAAE7C,EAAEiiG,OACxejiG,EAAEgiG,UAAU5+E,GAAG,GAAGugF,GAAG3jG,IAAImhG,EAAGnhG,GAAG,OAAO,OAAO6C,EAAE,KAAK4sC,EAAE3vC,EAAEC,EAAEC,EAAEojB,EAAE,MAAM+gG,GAAGrkH,EAAEE,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS+jC,EAAEjkC,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,GAAG,kBAAkBugB,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAwBlR,EAAEnS,EAAnBD,EAAEA,EAAEI,IAAIF,IAAI,KAAW,GAAGojB,EAAEvgB,GAAG,GAAG,kBAAkBugB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE0+E,UAAU,KAAK1B,EAAG,OAA2Cl5F,EAAEnH,EAAtCD,EAAEA,EAAEI,IAAI,OAAOkjB,EAAE1mB,IAAIsD,EAAEojB,EAAE1mB,MAAM,KAAW0mB,EAAEvgB,GAAG,KAAKy9F,EAAG,OAA2Cv1F,EAAEhL,EAAtCD,EAAEA,EAAEI,IAAI,OAAOkjB,EAAE1mB,IAAIsD,EAAEojB,EAAE1mB,MAAM,KAAW0mB,EAAEvgB,GAAG,KAAKm+F,EAAiB,OAAOj9D,EAAEjkC,EAAEC,EAAEC,GAAEY,EAAvBwiB,EAAE6+E,OAAuB7+E,EAAE4+E,UAAUn/F,GAAG,GAAG8gG,GAAGvgF,IAAI+9E,EAAG/9E,GAAG,OAAwBqsB,EAAE1vC,EAAnBD,EAAEA,EAAEI,IAAIF,IAAI,KAAWojB,EAAEvgB,EAAE,MAAMshH,GAAGpkH,EAAEqjB,EAAE,CAAC,OAAO,IAAI,CAC9f,SAAS1T,EAAE7M,EAAEqgB,EAAEhR,EAAEhL,GAAG,IAAI,IAAI6D,EAAE,KAAK0kC,EAAE,KAAKt9B,EAAE+Q,EAAEhd,EAAEgd,EAAE,EAAEkY,EAAE,KAAK,OAAOjpB,GAAGjM,EAAEgM,EAAE7V,OAAO6J,IAAI,CAACiM,EAAE/S,MAAM8G,GAAGk1B,EAAEjpB,EAAEA,EAAE,MAAMipB,EAAEjpB,EAAE04F,QAAQ,IAAIn7F,EAAEuC,EAAEpP,EAAEsP,EAAED,EAAEhM,GAAGgB,GAAG,GAAG,OAAOwI,EAAE,CAAC,OAAOyC,IAAIA,EAAEipB,GAAG,KAAK,CAACt7B,GAAGqS,GAAG,OAAOzC,EAAE26F,WAAWtqG,EAAE8C,EAAEsP,GAAG+Q,EAAEtiB,EAAE8O,EAAEwT,EAAEhd,GAAG,OAAOupC,EAAE1kC,EAAE2E,EAAE+/B,EAAEo7D,QAAQn7F,EAAE+/B,EAAE//B,EAAEyC,EAAEipB,CAAC,CAAC,GAAGl1B,IAAIgM,EAAE7V,OAAO,OAAO2D,EAAE6C,EAAEsP,GAAG0wG,IAAG9pC,GAAGl2E,EAAEqD,GAAG6E,EAAE,GAAG,OAAOoH,EAAE,CAAC,KAAKjM,EAAEgM,EAAE7V,OAAO6J,IAAkB,QAAdiM,EAAEiE,EAAEvT,EAAEqP,EAAEhM,GAAGgB,MAAcgc,EAAEtiB,EAAEuR,EAAE+Q,EAAEhd,GAAG,OAAOupC,EAAE1kC,EAAEoH,EAAEs9B,EAAEo7D,QAAQ14F,EAAEs9B,EAAEt9B,GAAc,OAAX0wG,IAAG9pC,GAAGl2E,EAAEqD,GAAU6E,CAAC,CAAC,IAAIoH,EAAEiR,EAAEvgB,EAAEsP,GAAGjM,EAAEgM,EAAE7V,OAAO6J,IAAsB,QAAlBk1B,EAAE2I,EAAE5xB,EAAEtP,EAAEqD,EAAEgM,EAAEhM,GAAGgB,MAAcpH,GAAG,OAAOs7B,EAAEivE,WAAWl4F,EAAEw8F,OAAO,OACvfvzE,EAAE1+B,IAAIwJ,EAAEk1B,EAAE1+B,KAAKwmB,EAAEtiB,EAAEw6B,EAAElY,EAAEhd,GAAG,OAAOupC,EAAE1kC,EAAEqwB,EAAEqU,EAAEo7D,QAAQzvE,EAAEqU,EAAErU,GAAuD,OAApDt7B,GAAGqS,EAAElL,SAAQ,SAASnH,GAAG,OAAOC,EAAE8C,EAAE/C,EAAE,IAAG+iH,IAAG9pC,GAAGl2E,EAAEqD,GAAU6E,CAAC,CAAC,SAAS0E,EAAE5M,EAAEqgB,EAAEhR,EAAEhL,GAAG,IAAI6D,EAAEo2F,EAAGjvF,GAAG,GAAG,oBAAoBnH,EAAE,MAAMiL,MAAM5D,EAAE,MAAkB,GAAG,OAAfF,EAAEnH,EAAE3N,KAAK8U,IAAc,MAAM8D,MAAM5D,EAAE,MAAM,IAAI,IAAID,EAAEpH,EAAE,KAAK0kC,EAAEvsB,EAAEhd,EAAEgd,EAAE,EAAEkY,EAAE,KAAK1rB,EAAEwC,EAAErO,OAAO,OAAO4rC,IAAI//B,EAAEhK,KAAKQ,IAAIwJ,EAAEwC,EAAErO,OAAO,CAAC4rC,EAAErwC,MAAM8G,GAAGk1B,EAAEqU,EAAEA,EAAE,MAAMrU,EAAEqU,EAAEo7D,QAAQ,IAAIp7F,EAAEwC,EAAEpP,EAAE4sC,EAAE//B,EAAE9R,MAAMsJ,GAAG,GAAG,OAAOuI,EAAE,CAAC,OAAOggC,IAAIA,EAAErU,GAAG,KAAK,CAACt7B,GAAG2vC,GAAG,OAAOhgC,EAAE46F,WAAWtqG,EAAE8C,EAAE4sC,GAAGvsB,EAAEtiB,EAAE6O,EAAEyT,EAAEhd,GAAG,OAAOiM,EAAEpH,EAAE0E,EAAE0C,EAAE04F,QAAQp7F,EAAE0C,EAAE1C,EAAEggC,EAAErU,CAAC,CAAC,GAAG1rB,EAAEhK,KAAK,OAAO1F,EAAE6C,EACzf4sC,GAAGozE,IAAG9pC,GAAGl2E,EAAEqD,GAAG6E,EAAE,GAAG,OAAO0kC,EAAE,CAAC,MAAM//B,EAAEhK,KAAKQ,IAAIwJ,EAAEwC,EAAErO,OAAwB,QAAjB6L,EAAE0G,EAAEvT,EAAE6M,EAAE9R,MAAMsJ,MAAcgc,EAAEtiB,EAAE8O,EAAEwT,EAAEhd,GAAG,OAAOiM,EAAEpH,EAAE2E,EAAEyC,EAAE04F,QAAQn7F,EAAEyC,EAAEzC,GAAc,OAAXmzG,IAAG9pC,GAAGl2E,EAAEqD,GAAU6E,CAAC,CAAC,IAAI0kC,EAAErsB,EAAEvgB,EAAE4sC,IAAI//B,EAAEhK,KAAKQ,IAAIwJ,EAAEwC,EAAErO,OAA4B,QAArB6L,EAAEq0B,EAAE0L,EAAE5sC,EAAEqD,EAAEwJ,EAAE9R,MAAMsJ,MAAcpH,GAAG,OAAO4P,EAAE26F,WAAW56D,EAAEk/D,OAAO,OAAOj/F,EAAEhT,IAAIwJ,EAAEwJ,EAAEhT,KAAKwmB,EAAEtiB,EAAE8O,EAAEwT,EAAEhd,GAAG,OAAOiM,EAAEpH,EAAE2E,EAAEyC,EAAE04F,QAAQn7F,EAAEyC,EAAEzC,GAAuD,OAApD5P,GAAG2vC,EAAExoC,SAAQ,SAASnH,GAAG,OAAOC,EAAE8C,EAAE/C,EAAE,IAAG+iH,IAAG9pC,GAAGl2E,EAAEqD,GAAU6E,CAAC,CAG3T,OAH4T,SAASizG,EAAEl+G,EAAEsjB,EAAExiB,EAAEsR,GAAkF,GAA/E,kBAAkBtR,GAAG,OAAOA,GAAGA,EAAEU,OAAOi/F,GAAI,OAAO3/F,EAAElE,MAAMkE,EAAEA,EAAEzE,MAAMm/E,UAAa,kBAAkB16E,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEkhG,UAAU,KAAK1B,EAAGtgG,EAAE,CAAC,IAAI,IAAIoH,EAC7hBtG,EAAElE,IAAIqO,EAAEqY,EAAE,OAAOrY,GAAG,CAAC,GAAGA,EAAErO,MAAMwK,EAAE,CAAU,IAATA,EAAEtG,EAAEU,QAAYi/F,GAAI,GAAG,IAAIx1F,EAAEd,IAAI,CAACjK,EAAEF,EAAEiL,EAAE8/F,UAASznF,EAAEvgB,EAAEkI,EAAEnK,EAAEzE,MAAMm/E,WAAYwf,OAAOh7F,EAAEA,EAAEsjB,EAAE,MAAMtjB,CAAC,OAAO,GAAGiL,EAAEwuF,cAAcryF,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE46F,WAAWd,GAAIojB,GAAGl9G,KAAK6D,EAAEzJ,KAAK,CAACtB,EAAEF,EAAEiL,EAAE8/F,UAASznF,EAAEvgB,EAAEkI,EAAEnK,EAAEzE,QAASs/F,IAAIsoB,GAAGjkH,EAAEiL,EAAEnK,GAAGwiB,EAAE03E,OAAOh7F,EAAEA,EAAEsjB,EAAE,MAAMtjB,CAAC,CAACE,EAAEF,EAAEiL,GAAG,KAAK,CAAMhL,EAAED,EAAEiL,GAAGA,EAAEA,EAAE8/F,OAAO,CAACjqG,EAAEU,OAAOi/F,IAAIn9E,EAAEuhG,GAAG/jH,EAAEzE,MAAMm/E,SAASx7E,EAAEyK,KAAK2H,EAAEtR,EAAElE,MAAOo+F,OAAOh7F,EAAEA,EAAEsjB,KAAIlR,EAAEsyG,GAAG5jH,EAAEU,KAAKV,EAAElE,IAAIkE,EAAEzE,MAAM,KAAK2D,EAAEyK,KAAK2H,IAAKupF,IAAIsoB,GAAGjkH,EAAEsjB,EAAExiB,GAAGsR,EAAE4oF,OAAOh7F,EAAEA,EAAEoS,EAAE,CAAC,OAAOgR,EAAEpjB,GAAG,KAAKwgG,EAAGxgG,EAAE,CAAC,IAAIiL,EAAEnK,EAAElE,IAAI,OACzf0mB,GAAG,CAAC,GAAGA,EAAE1mB,MAAMqO,EAAC,CAAC,GAAG,IAAIqY,EAAEnZ,KAAKmZ,EAAE8lF,UAAUqG,gBAAgB3uG,EAAE2uG,eAAensF,EAAE8lF,UAAUub,iBAAiB7jH,EAAE6jH,eAAe,CAACzkH,EAAEF,EAAEsjB,EAAEynF,UAASznF,EAAEvgB,EAAEugB,EAAExiB,EAAE06E,UAAU,KAAMwf,OAAOh7F,EAAEA,EAAEsjB,EAAE,MAAMtjB,CAAC,CAAME,EAAEF,EAAEsjB,GAAG,KAAM,CAAKrjB,EAAED,EAAEsjB,GAAGA,EAAEA,EAAEynF,OAAO,EAACznF,EAAEshG,GAAG9jH,EAAEd,EAAEyK,KAAK2H,IAAK4oF,OAAOh7F,EAAEA,EAAEsjB,CAAC,CAAC,OAAOF,EAAEpjB,GAAG,KAAKkhG,EAAG,OAAiBgd,EAAEl+G,EAAEsjB,GAAdrY,EAAEnK,EAAEqhG,OAAcrhG,EAAEohG,UAAU9vF,GAAG,GAAGyxF,GAAG/iG,GAAG,OAAO8O,EAAE5P,EAAEsjB,EAAExiB,EAAEsR,GAAG,GAAGivF,EAAGvgG,GAAG,OAAO6O,EAAE3P,EAAEsjB,EAAExiB,EAAEsR,GAAGiyG,GAAGrkH,EAAEc,EAAE,CAAC,MAAM,kBAAkBA,GAAG,KAAKA,GAAG,kBAAkBA,GAAGA,EAAE,GAAGA,EAAE,OAAOwiB,GAAG,IAAIA,EAAEnZ,KAAKjK,EAAEF,EAAEsjB,EAAEynF,UAASznF,EAAEvgB,EAAEugB,EAAExiB,IAAKk6F,OAAOh7F,EAAEA,EAAEsjB,IACnfpjB,EAAEF,EAAEsjB,IAAGA,EAAEmhG,GAAG3jH,EAAEd,EAAEyK,KAAK2H,IAAK4oF,OAAOh7F,EAAEA,EAAEsjB,GAAGF,EAAEpjB,IAAIE,EAAEF,EAAEsjB,EAAE,CAAS,CAAC,IAAIwhG,GAAGP,IAAG,GAAIQ,GAAGR,IAAG,GAAIS,GAAGnE,GAAG,MAAMoE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,IAAI,CAAC,SAASI,GAAGrlH,GAAG,IAAIC,EAAE+kH,GAAG50B,QAAQ3hF,GAAEu2G,IAAIhlH,EAAEslH,cAAcrlH,CAAC,CAAC,SAASslH,GAAGvlH,EAAEC,EAAEC,GAAG,KAAK,OAAOF,GAAG,CAAC,IAAIsjB,EAAEtjB,EAAEuqG,UAA+H,IAApHvqG,EAAEwlH,WAAWvlH,KAAKA,GAAGD,EAAEwlH,YAAYvlH,EAAE,OAAOqjB,IAAIA,EAAEkiG,YAAYvlH,IAAI,OAAOqjB,IAAIA,EAAEkiG,WAAWvlH,KAAKA,IAAIqjB,EAAEkiG,YAAYvlH,GAAMD,IAAIE,EAAE,MAAMF,EAAEA,EAAEg7F,MAAM,CAAC,CACnZ,SAASjzC,GAAG/nD,EAAEC,GAAGglH,GAAGjlH,EAAEmlH,GAAGD,GAAG,KAAsB,QAAjBllH,EAAEA,EAAEylH,eAAuB,OAAOzlH,EAAE0lH,eAAe,KAAK1lH,EAAE2lH,MAAM1lH,KAAK2lH,IAAG,GAAI5lH,EAAE0lH,aAAa,KAAK,CAAC,SAASG,GAAG7lH,GAAG,IAAIC,EAAED,EAAEslH,cAAc,GAAGH,KAAKnlH,EAAE,GAAGA,EAAE,CAACuxE,QAAQvxE,EAAE8lH,cAAc7lH,EAAE8D,KAAK,MAAM,OAAOmhH,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM/uG,MAAM5D,EAAE,MAAM4yG,GAAGllH,EAAEilH,GAAGQ,aAAa,CAACE,MAAM,EAAED,aAAa1lH,EAAE,MAAMklH,GAAGA,GAAGnhH,KAAK/D,EAAE,OAAOC,CAAC,CAAC,IAAIijE,GAAG,KAAK,SAAS6iD,GAAG/lH,GAAG,OAAOkjE,GAAGA,GAAG,CAACljE,GAAGkjE,GAAGjiE,KAAKjB,EAAE,CACvY,SAASgmH,GAAGhmH,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAE9C,EAAEgmH,YAA+E,OAAnE,OAAOljH,GAAG7C,EAAE6D,KAAK7D,EAAE6lH,GAAG9lH,KAAKC,EAAE6D,KAAKhB,EAAEgB,KAAKhB,EAAEgB,KAAK7D,GAAGD,EAAEgmH,YAAY/lH,EAASgmH,GAAGlmH,EAAEsjB,EAAE,CAAC,SAAS4iG,GAAGlmH,EAAEC,GAAGD,EAAE2lH,OAAO1lH,EAAE,IAAIC,EAAEF,EAAEuqG,UAAqC,IAA3B,OAAOrqG,IAAIA,EAAEylH,OAAO1lH,GAAGC,EAAEF,EAAMA,EAAEA,EAAEg7F,OAAO,OAAOh7F,GAAGA,EAAEwlH,YAAYvlH,EAAgB,QAAdC,EAAEF,EAAEuqG,aAAqBrqG,EAAEslH,YAAYvlH,GAAGC,EAAEF,EAAEA,EAAEA,EAAEg7F,OAAO,OAAO,IAAI96F,EAAEiK,IAAIjK,EAAEkpG,UAAU,IAAI,CAAC,IAAI+c,IAAG,EAAG,SAASC,GAAGpmH,GAAGA,EAAEqmH,YAAY,CAACC,UAAUtmH,EAAE0qG,cAAc6b,gBAAgB,KAAKC,eAAe,KAAKn8G,OAAO,CAACo8G,QAAQ,KAAKR,YAAY,KAAKN,MAAM,GAAGh6D,QAAQ,KAAK,CAC/e,SAAS4S,GAAGv+D,EAAEC,GAAGD,EAAEA,EAAEqmH,YAAYpmH,EAAEomH,cAAcrmH,IAAIC,EAAEomH,YAAY,CAACC,UAAUtmH,EAAEsmH,UAAUC,gBAAgBvmH,EAAEumH,gBAAgBC,eAAexmH,EAAEwmH,eAAen8G,OAAOrK,EAAEqK,OAAOshD,QAAQ3rD,EAAE2rD,SAAS,CAAC,SAAS+6D,GAAG1mH,EAAEC,GAAG,MAAM,CAAC0mH,UAAU3mH,EAAE4mH,KAAK3mH,EAAEkK,IAAI,EAAEygB,QAAQ,KAAKT,SAAS,KAAKpmB,KAAK,KAAK,CACtR,SAAS8iH,GAAG7mH,EAAEC,EAAEC,GAAG,IAAIojB,EAAEtjB,EAAEqmH,YAAY,GAAG,OAAO/iG,EAAE,OAAO,KAAgB,GAAXA,EAAEA,EAAEjZ,OAAU,KAAO,EAAFnD,IAAK,CAAC,IAAInE,EAAEugB,EAAEmjG,QAA+D,OAAvD,OAAO1jH,EAAE9C,EAAE8D,KAAK9D,GAAGA,EAAE8D,KAAKhB,EAAEgB,KAAKhB,EAAEgB,KAAK9D,GAAGqjB,EAAEmjG,QAAQxmH,EAASimH,GAAGlmH,EAAEE,EAAE,CAAoF,OAAnE,QAAhB6C,EAAEugB,EAAE2iG,cAAsBhmH,EAAE8D,KAAK9D,EAAE8lH,GAAGziG,KAAKrjB,EAAE8D,KAAKhB,EAAEgB,KAAKhB,EAAEgB,KAAK9D,GAAGqjB,EAAE2iG,YAAYhmH,EAASimH,GAAGlmH,EAAEE,EAAE,CAAC,SAAS4mH,GAAG9mH,EAAEC,EAAEC,GAAmB,GAAG,QAAnBD,EAAEA,EAAEomH,eAA0BpmH,EAAEA,EAAEoK,OAAO,KAAO,QAAFnK,IAAY,CAAC,IAAIojB,EAAErjB,EAAE0lH,MAAwBzlH,GAAlBojB,GAAGtjB,EAAEgtG,aAAkB/sG,EAAE0lH,MAAMzlH,EAAEytG,GAAG3tG,EAAEE,EAAE,CAAC,CACrZ,SAAS6mH,GAAG/mH,EAAEC,GAAG,IAAIC,EAAEF,EAAEqmH,YAAY/iG,EAAEtjB,EAAEuqG,UAAU,GAAG,OAAOjnF,GAAoBpjB,KAAhBojB,EAAEA,EAAE+iG,aAAmB,CAAC,IAAItjH,EAAE,KAAKjC,EAAE,KAAyB,GAAG,QAAvBZ,EAAEA,EAAEqmH,iBAA4B,CAAC,EAAE,CAAC,IAAInjG,EAAE,CAACujG,UAAUzmH,EAAEymH,UAAUC,KAAK1mH,EAAE0mH,KAAKz8G,IAAIjK,EAAEiK,IAAIygB,QAAQ1qB,EAAE0qB,QAAQT,SAASjqB,EAAEiqB,SAASpmB,KAAK,MAAM,OAAOjD,EAAEiC,EAAEjC,EAAEsiB,EAAEtiB,EAAEA,EAAEiD,KAAKqf,EAAEljB,EAAEA,EAAE6D,IAAI,OAAO,OAAO7D,GAAG,OAAOY,EAAEiC,EAAEjC,EAAEb,EAAEa,EAAEA,EAAEiD,KAAK9D,CAAC,MAAM8C,EAAEjC,EAAEb,EAAiH,OAA/GC,EAAE,CAAComH,UAAUhjG,EAAEgjG,UAAUC,gBAAgBxjH,EAAEyjH,eAAe1lH,EAAEuJ,OAAOiZ,EAAEjZ,OAAOshD,QAAQroC,EAAEqoC,cAAS3rD,EAAEqmH,YAAYnmH,EAAQ,CAAoB,QAAnBF,EAAEE,EAAEsmH,gBAAwBtmH,EAAEqmH,gBAAgBtmH,EAAED,EAAE+D,KACnf9D,EAAEC,EAAEsmH,eAAevmH,CAAC,CACpB,SAASoV,GAAGrV,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAE/C,EAAEqmH,YAAYF,IAAG,EAAG,IAAIrlH,EAAEiC,EAAEwjH,gBAAgBnjG,EAAErgB,EAAEyjH,eAAep0G,EAAErP,EAAEsH,OAAOo8G,QAAQ,GAAG,OAAOr0G,EAAE,CAACrP,EAAEsH,OAAOo8G,QAAQ,KAAK,IAAIr/G,EAAEgL,EAAEnH,EAAE7D,EAAErD,KAAKqD,EAAErD,KAAK,KAAK,OAAOqf,EAAEtiB,EAAEmK,EAAEmY,EAAErf,KAAKkH,EAAEmY,EAAEhc,EAAE,IAAIuoC,EAAE3vC,EAAEuqG,UAAU,OAAO56D,KAAoBv9B,GAAhBu9B,EAAEA,EAAE02E,aAAgBG,kBAAmBpjG,IAAI,OAAOhR,EAAEu9B,EAAE42E,gBAAgBt7G,EAAEmH,EAAErO,KAAKkH,EAAE0kC,EAAE62E,eAAep/G,GAAG,CAAC,GAAG,OAAOtG,EAAE,CAAC,IAAIwV,EAAEvT,EAAEujH,UAA6B,IAAnBljG,EAAE,EAAEusB,EAAE1kC,EAAE7D,EAAE,KAAKgL,EAAEtR,IAAI,CAAC,IAAIqR,EAAEC,EAAEw0G,KAAK3iF,EAAE7xB,EAAEu0G,UAAU,IAAIrjG,EAAEnR,KAAKA,EAAE,CAAC,OAAOw9B,IAAIA,EAAEA,EAAE5rC,KAAK,CAAC4iH,UAAU1iF,EAAE2iF,KAAK,EAAEz8G,IAAIiI,EAAEjI,IAAIygB,QAAQxY,EAAEwY,QAAQT,SAAS/X,EAAE+X,SACvfpmB,KAAK,OAAO/D,EAAE,CAAC,IAAI4P,EAAE5P,EAAE2P,EAAEyC,EAAU,OAARD,EAAElS,EAAEgkC,EAAE/jC,EAASyP,EAAExF,KAAK,KAAK,EAAc,GAAG,oBAAfyF,EAAED,EAAEib,SAAiC,CAACtU,EAAE1G,EAAEtS,KAAK2mC,EAAE3tB,EAAEnE,GAAG,MAAMnS,CAAC,CAACsW,EAAE1G,EAAE,MAAM5P,EAAE,KAAK,EAAE4P,EAAE46F,OAAe,MAAT56F,EAAE46F,MAAa,IAAI,KAAK,EAAsD,GAAG,QAA3Cr4F,EAAE,oBAAdvC,EAAED,EAAEib,SAAgChb,EAAEtS,KAAK2mC,EAAE3tB,EAAEnE,GAAGvC,SAAe,IAASuC,EAAE,MAAMnS,EAAEsW,EAAEtP,EAAE,CAAC,EAAEsP,EAAEnE,GAAG,MAAMnS,EAAE,KAAK,EAAEmmH,IAAG,EAAG,CAAC,OAAO/zG,EAAE+X,UAAU,IAAI/X,EAAEw0G,OAAO5mH,EAAEwqG,OAAO,GAAe,QAAZr4F,EAAEpP,EAAE4oD,SAAiB5oD,EAAE4oD,QAAQ,CAACv5C,GAAGD,EAAElR,KAAKmR,GAAG,MAAM6xB,EAAE,CAAC0iF,UAAU1iF,EAAE2iF,KAAKz0G,EAAEhI,IAAIiI,EAAEjI,IAAIygB,QAAQxY,EAAEwY,QAAQT,SAAS/X,EAAE+X,SAASpmB,KAAK,MAAM,OAAO4rC,GAAG1kC,EAAE0kC,EAAE1L,EAAE78B,EAAEkP,GAAGq5B,EAAEA,EAAE5rC,KAAKkgC,EAAE7gB,GAAGjR,EAC3e,GAAG,QAAZC,EAAEA,EAAErO,MAAiB,IAAsB,QAAnBqO,EAAErP,EAAEsH,OAAOo8G,SAAiB,MAAer0G,GAAJD,EAAEC,GAAMrO,KAAKoO,EAAEpO,KAAK,KAAKhB,EAAEyjH,eAAer0G,EAAEpP,EAAEsH,OAAOo8G,QAAQ,IAAI,EAAsG,GAA5F,OAAO92E,IAAIvoC,EAAEkP,GAAGvT,EAAEujH,UAAUl/G,EAAErE,EAAEwjH,gBAAgBt7G,EAAElI,EAAEyjH,eAAe72E,EAA4B,QAA1B1vC,EAAE8C,EAAEsH,OAAO47G,aAAwB,CAACljH,EAAE9C,EAAE,GAAGmjB,GAAGrgB,EAAE6jH,KAAK7jH,EAAEA,EAAEgB,WAAWhB,IAAI9C,EAAE,MAAM,OAAOa,IAAIiC,EAAEsH,OAAOs7G,MAAM,GAAGqB,IAAI5jG,EAAEpjB,EAAE2lH,MAAMviG,EAAEpjB,EAAE0qG,cAAcp0F,CAAC,CAAC,CAC9V,SAASuuB,GAAG7kC,EAAEC,EAAEC,GAA8B,GAA3BF,EAAEC,EAAE0rD,QAAQ1rD,EAAE0rD,QAAQ,KAAQ,OAAO3rD,EAAE,IAAIC,EAAE,EAAEA,EAAED,EAAEzD,OAAO0D,IAAI,CAAC,IAAIqjB,EAAEtjB,EAAEC,GAAG8C,EAAEugB,EAAE6G,SAAS,GAAG,OAAOpnB,EAAE,CAAqB,GAApBugB,EAAE6G,SAAS,KAAK7G,EAAEpjB,EAAK,oBAAoB6C,EAAE,MAAMmT,MAAM5D,EAAE,IAAIvP,IAAIA,EAAEzF,KAAKgmB,EAAE,CAAC,CAAC,CAAC,IAAI2jG,GAAG,CAAC,EAAEC,GAAGrG,GAAGoG,IAAIE,GAAGtG,GAAGoG,IAAIG,GAAGvG,GAAGoG,IAAI,SAASI,GAAGrnH,GAAG,GAAGA,IAAIinH,GAAG,MAAM/wG,MAAM5D,EAAE,MAAM,OAAOtS,CAAC,CACnS,SAASsnH,GAAGtnH,EAAEC,GAAyC,OAAtC8B,GAAEqlH,GAAGnnH,GAAG8B,GAAEolH,GAAGnnH,GAAG+B,GAAEmlH,GAAGD,IAAIjnH,EAAEC,EAAE8kG,UAAmB,KAAK,EAAE,KAAK,GAAG9kG,GAAGA,EAAEA,EAAEqD,iBAAiBrD,EAAEykG,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkEtkG,EAAEskG,GAArCtkG,GAAvBD,EAAE,IAAIA,EAAEC,EAAE4kD,WAAW5kD,GAAMykG,cAAc,KAAK1kG,EAAEA,EAAEkU,SAAkBzF,GAAEy4G,IAAInlH,GAAEmlH,GAAGjnH,EAAE,CAAC,SAASsnH,KAAK94G,GAAEy4G,IAAIz4G,GAAE04G,IAAI14G,GAAE24G,GAAG,CAAC,SAASI,GAAGxnH,GAAGqnH,GAAGD,GAAGh3B,SAAS,IAAInwF,EAAEonH,GAAGH,GAAG92B,SAAalwF,EAAEqkG,GAAGtkG,EAAED,EAAEwB,MAAMvB,IAAIC,IAAI6B,GAAEolH,GAAGnnH,GAAG+B,GAAEmlH,GAAGhnH,GAAG,CAAC,SAASunH,GAAGznH,GAAGmnH,GAAG/2B,UAAUpwF,IAAIyO,GAAEy4G,IAAIz4G,GAAE04G,IAAI,CAAC,IAAIO,GAAE7G,GAAG,GACxZ,SAAS8G,GAAG3nH,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAEkK,IAAI,CAAC,IAAIjK,EAAED,EAAEyqG,cAAc,GAAG,OAAOxqG,IAAmB,QAAfA,EAAEA,EAAEyqG,aAAqB,OAAOzqG,EAAEolB,MAAM,OAAOplB,EAAEolB,MAAM,OAAOrlB,CAAC,MAAM,GAAG,KAAKA,EAAEkK,UAAK,IAASlK,EAAE2jH,cAAcgE,aAAa,GAAG,KAAa,IAAR3nH,EAAEuqG,OAAW,OAAOvqG,OAAO,GAAG,OAAOA,EAAE6qG,MAAM,CAAC7qG,EAAE6qG,MAAM9P,OAAO/6F,EAAEA,EAAEA,EAAE6qG,MAAM,QAAQ,CAAC,GAAG7qG,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAE8qG,SAAS,CAAC,GAAG,OAAO9qG,EAAE+6F,QAAQ/6F,EAAE+6F,SAASh7F,EAAE,OAAO,KAAKC,EAAEA,EAAE+6F,MAAM,CAAC/6F,EAAE8qG,QAAQ/P,OAAO/6F,EAAE+6F,OAAO/6F,EAAEA,EAAE8qG,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI8c,GAAG,GACrc,SAASC,KAAK,IAAI,IAAI9nH,EAAE,EAAEA,EAAE6nH,GAAGtrH,OAAOyD,IAAI6nH,GAAG7nH,GAAG+nH,8BAA8B,KAAKF,GAAGtrH,OAAO,CAAC,CAAC,IAAIyrH,GAAG5nB,EAAG6nB,uBAAuBC,GAAG9nB,EAAG8P,wBAAwBiY,GAAG,EAAEC,GAAE,KAAKC,GAAE,KAAKhpH,GAAE,KAAKipH,IAAG,EAAGC,IAAG,EAAGC,GAAG,EAAEC,GAAG,EAAE,SAASlqH,KAAI,MAAM2X,MAAM5D,EAAE,KAAM,CAAC,SAASo2G,GAAG1oH,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAE1D,QAAQ2D,EAAEF,EAAEzD,OAAO2D,IAAI,IAAI+5G,GAAGj6G,EAAEE,GAAGD,EAAEC,IAAI,OAAM,EAAG,OAAM,CAAE,CAChW,SAASyoH,GAAG3oH,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,GAAyH,GAAtHqnH,GAAGrnH,EAAEsnH,GAAEnoH,EAAEA,EAAEyqG,cAAc,KAAKzqG,EAAEomH,YAAY,KAAKpmH,EAAE0lH,MAAM,EAAEqC,GAAG53B,QAAQ,OAAOpwF,GAAG,OAAOA,EAAE0qG,cAAcke,GAAGC,GAAG7oH,EAAEE,EAAEojB,EAAEvgB,GAAMwlH,GAAG,CAACznH,EAAE,EAAE,EAAE,CAAY,GAAXynH,IAAG,EAAGC,GAAG,EAAK,IAAI1nH,EAAE,MAAMoV,MAAM5D,EAAE,MAAMxR,GAAG,EAAEzB,GAAEgpH,GAAE,KAAKpoH,EAAEomH,YAAY,KAAK2B,GAAG53B,QAAQ04B,GAAG9oH,EAAEE,EAAEojB,EAAEvgB,EAAE,OAAOwlH,GAAG,CAA+D,GAA9DP,GAAG53B,QAAQ24B,GAAG9oH,EAAE,OAAOooH,IAAG,OAAOA,GAAEtkH,KAAKokH,GAAG,EAAE9oH,GAAEgpH,GAAED,GAAE,KAAKE,IAAG,EAAMroH,EAAE,MAAMiW,MAAM5D,EAAE,MAAM,OAAOtS,CAAC,CAAC,SAASgpH,KAAK,IAAIhpH,EAAE,IAAIwoH,GAAQ,OAALA,GAAG,EAASxoH,CAAC,CAC/Y,SAASipH,KAAK,IAAIjpH,EAAE,CAAC0qG,cAAc,KAAK4b,UAAU,KAAK4C,UAAU,KAAKC,MAAM,KAAKplH,KAAK,MAA8C,OAAxC,OAAO1E,GAAE+oH,GAAE1d,cAAcrrG,GAAEW,EAAEX,GAAEA,GAAE0E,KAAK/D,EAASX,EAAC,CAAC,SAAS+pH,KAAK,GAAG,OAAOf,GAAE,CAAC,IAAIroH,EAAEooH,GAAE7d,UAAUvqG,EAAE,OAAOA,EAAEA,EAAE0qG,cAAc,IAAI,MAAM1qG,EAAEqoH,GAAEtkH,KAAK,IAAI9D,EAAE,OAAOZ,GAAE+oH,GAAE1d,cAAcrrG,GAAE0E,KAAK,GAAG,OAAO9D,EAAEZ,GAAEY,EAAEooH,GAAEroH,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMkW,MAAM5D,EAAE,MAAUtS,EAAE,CAAC0qG,eAAP2d,GAAEroH,GAAqB0qG,cAAc4b,UAAU+B,GAAE/B,UAAU4C,UAAUb,GAAEa,UAAUC,MAAMd,GAAEc,MAAMplH,KAAK,MAAM,OAAO1E,GAAE+oH,GAAE1d,cAAcrrG,GAAEW,EAAEX,GAAEA,GAAE0E,KAAK/D,CAAC,CAAC,OAAOX,EAAC,CACje,SAASgqH,GAAGrpH,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,CAAC,CACnD,SAASqpH,GAAGtpH,GAAG,IAAIC,EAAEmpH,KAAKlpH,EAAED,EAAEkpH,MAAM,GAAG,OAAOjpH,EAAE,MAAMgW,MAAM5D,EAAE,MAAMpS,EAAEqpH,oBAAoBvpH,EAAE,IAAIsjB,EAAE+kG,GAAEtlH,EAAEugB,EAAE4lG,UAAUpoH,EAAEZ,EAAEumH,QAAQ,GAAG,OAAO3lH,EAAE,CAAC,GAAG,OAAOiC,EAAE,CAAC,IAAIqgB,EAAErgB,EAAEgB,KAAKhB,EAAEgB,KAAKjD,EAAEiD,KAAKjD,EAAEiD,KAAKqf,CAAC,CAACE,EAAE4lG,UAAUnmH,EAAEjC,EAAEZ,EAAEumH,QAAQ,IAAI,CAAC,GAAG,OAAO1jH,EAAE,CAACjC,EAAEiC,EAAEgB,KAAKuf,EAAEA,EAAEgjG,UAAU,IAAIl0G,EAAEgR,EAAE,KAAKhc,EAAE,KAAK6D,EAAEnK,EAAE,EAAE,CAAC,IAAI6uC,EAAE1kC,EAAE27G,KAAK,IAAIuB,GAAGx4E,KAAKA,EAAE,OAAOvoC,IAAIA,EAAEA,EAAErD,KAAK,CAAC6iH,KAAK,EAAE9wG,OAAO7K,EAAE6K,OAAO0zG,cAAcv+G,EAAEu+G,cAAcC,WAAWx+G,EAAEw+G,WAAW1lH,KAAK,OAAOuf,EAAErY,EAAEu+G,cAAcv+G,EAAEw+G,WAAWzpH,EAAEsjB,EAAErY,EAAE6K,YAAY,CAAC,IAAIQ,EAAE,CAACswG,KAAKj3E,EAAE75B,OAAO7K,EAAE6K,OAAO0zG,cAAcv+G,EAAEu+G,cACngBC,WAAWx+G,EAAEw+G,WAAW1lH,KAAK,MAAM,OAAOqD,GAAGgL,EAAEhL,EAAEkP,EAAE8M,EAAEE,GAAGlc,EAAEA,EAAErD,KAAKuS,EAAE8xG,GAAEzC,OAAOh2E,EAAEq3E,IAAIr3E,CAAC,CAAC1kC,EAAEA,EAAElH,IAAI,OAAO,OAAOkH,GAAGA,IAAInK,GAAG,OAAOsG,EAAEgc,EAAEE,EAAElc,EAAErD,KAAKqO,EAAE6nG,GAAG32F,EAAErjB,EAAEyqG,iBAAiBkb,IAAG,GAAI3lH,EAAEyqG,cAAcpnF,EAAErjB,EAAEqmH,UAAUljG,EAAEnjB,EAAEipH,UAAU9hH,EAAElH,EAAEwpH,kBAAkBpmG,CAAC,CAAiB,GAAG,QAAnBtjB,EAAEE,EAAE+lH,aAAwB,CAACljH,EAAE/C,EAAE,GAAGc,EAAEiC,EAAE6jH,KAAKwB,GAAEzC,OAAO7kH,EAAEkmH,IAAIlmH,EAAEiC,EAAEA,EAAEgB,WAAWhB,IAAI/C,EAAE,MAAM,OAAO+C,IAAI7C,EAAEylH,MAAM,GAAG,MAAM,CAAC1lH,EAAEyqG,cAAcxqG,EAAEypH,SAAS,CAC9X,SAASC,GAAG5pH,GAAG,IAAIC,EAAEmpH,KAAKlpH,EAAED,EAAEkpH,MAAM,GAAG,OAAOjpH,EAAE,MAAMgW,MAAM5D,EAAE,MAAMpS,EAAEqpH,oBAAoBvpH,EAAE,IAAIsjB,EAAEpjB,EAAEypH,SAAS5mH,EAAE7C,EAAEumH,QAAQ3lH,EAAEb,EAAEyqG,cAAc,GAAG,OAAO3nG,EAAE,CAAC7C,EAAEumH,QAAQ,KAAK,IAAIrjG,EAAErgB,EAAEA,EAAEgB,KAAK,GAAGjD,EAAEd,EAAEc,EAAEsiB,EAAEtN,QAAQsN,EAAEA,EAAErf,WAAWqf,IAAIrgB,GAAGk3G,GAAGn5G,EAAEb,EAAEyqG,iBAAiBkb,IAAG,GAAI3lH,EAAEyqG,cAAc5pG,EAAE,OAAOb,EAAEipH,YAAYjpH,EAAEqmH,UAAUxlH,GAAGZ,EAAEwpH,kBAAkB5oH,CAAC,CAAC,MAAM,CAACA,EAAEwiB,EAAE,CAAC,SAASumG,KAAK,CACpW,SAASC,GAAG9pH,EAAEC,GAAG,IAAIC,EAAEkoH,GAAE9kG,EAAE8lG,KAAKrmH,EAAE9C,IAAIa,GAAGm5G,GAAG32F,EAAEonF,cAAc3nG,GAAsE,GAAnEjC,IAAIwiB,EAAEonF,cAAc3nG,EAAE6iH,IAAG,GAAItiG,EAAEA,EAAE6lG,MAAMY,GAAGC,GAAG38F,KAAK,KAAKntB,EAAEojB,EAAEtjB,GAAG,CAACA,IAAOsjB,EAAE2mG,cAAchqH,GAAGa,GAAG,OAAOzB,IAAuB,EAApBA,GAAEqrG,cAAcvgG,IAAM,CAAuD,GAAtDjK,EAAEsqG,OAAO,KAAK0f,GAAG,EAAEC,GAAG98F,KAAK,KAAKntB,EAAEojB,EAAEvgB,EAAE9C,QAAG,EAAO,MAAS,OAAOmqH,GAAE,MAAMl0G,MAAM5D,EAAE,MAAM,KAAQ,GAAH61G,KAAQkC,GAAGnqH,EAAED,EAAE8C,EAAE,CAAC,OAAOA,CAAC,CAAC,SAASsnH,GAAGrqH,EAAEC,EAAEC,GAAGF,EAAEwqG,OAAO,MAAMxqG,EAAE,CAACiqH,YAAYhqH,EAAEnC,MAAMoC,GAAmB,QAAhBD,EAAEmoH,GAAE/B,cAAsBpmH,EAAE,CAACqqH,WAAW,KAAKC,OAAO,MAAMnC,GAAE/B,YAAYpmH,EAAEA,EAAEsqH,OAAO,CAACvqH,IAAgB,QAAXE,EAAED,EAAEsqH,QAAgBtqH,EAAEsqH,OAAO,CAACvqH,GAAGE,EAAEe,KAAKjB,EAAG,CAClf,SAASmqH,GAAGnqH,EAAEC,EAAEC,EAAEojB,GAAGrjB,EAAEnC,MAAMoC,EAAED,EAAEgqH,YAAY3mG,EAAEknG,GAAGvqH,IAAIwqH,GAAGzqH,EAAE,CAAC,SAASgqH,GAAGhqH,EAAEC,EAAEC,GAAG,OAAOA,GAAE,WAAWsqH,GAAGvqH,IAAIwqH,GAAGzqH,EAAE,GAAE,CAAC,SAASwqH,GAAGxqH,GAAG,IAAIC,EAAED,EAAEiqH,YAAYjqH,EAAEA,EAAElC,MAAM,IAAI,IAAIoC,EAAED,IAAI,OAAOg6G,GAAGj6G,EAAEE,EAAE,CAAC,MAAMojB,GAAG,OAAM,CAAE,CAAC,CAAC,SAASmnG,GAAGzqH,GAAG,IAAIC,EAAEimH,GAAGlmH,EAAE,GAAG,OAAOC,GAAGyqH,GAAGzqH,EAAED,EAAE,GAAG,EAAE,CAClQ,SAAS2qH,GAAG3qH,GAAG,IAAIC,EAAEgpH,KAA8M,MAAzM,oBAAoBjpH,IAAIA,EAAEA,KAAKC,EAAEyqG,cAAczqG,EAAEqmH,UAAUtmH,EAAEA,EAAE,CAACymH,QAAQ,KAAKR,YAAY,KAAKN,MAAM,EAAEgE,SAAS,KAAKJ,oBAAoBF,GAAGK,kBAAkB1pH,GAAGC,EAAEkpH,MAAMnpH,EAAEA,EAAEA,EAAE2pH,SAASiB,GAAGv9F,KAAK,KAAK+6F,GAAEpoH,GAAS,CAACC,EAAEyqG,cAAc1qG,EAAE,CAC5P,SAASkqH,GAAGlqH,EAAEC,EAAEC,EAAEojB,GAA8O,OAA3OtjB,EAAE,CAACmK,IAAInK,EAAEvB,OAAOwB,EAAEyV,QAAQxV,EAAE2qH,KAAKvnG,EAAEvf,KAAK,MAAsB,QAAhB9D,EAAEmoH,GAAE/B,cAAsBpmH,EAAE,CAACqqH,WAAW,KAAKC,OAAO,MAAMnC,GAAE/B,YAAYpmH,EAAEA,EAAEqqH,WAAWtqH,EAAE+D,KAAK/D,GAAmB,QAAfE,EAAED,EAAEqqH,YAAoBrqH,EAAEqqH,WAAWtqH,EAAE+D,KAAK/D,GAAGsjB,EAAEpjB,EAAE6D,KAAK7D,EAAE6D,KAAK/D,EAAEA,EAAE+D,KAAKuf,EAAErjB,EAAEqqH,WAAWtqH,GAAWA,CAAC,CAAC,SAAS8qH,KAAK,OAAO1B,KAAK1e,aAAa,CAAC,SAASqgB,GAAG/qH,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAEkmH,KAAKb,GAAE5d,OAAOxqG,EAAE+C,EAAE2nG,cAAcwf,GAAG,EAAEjqH,EAAEC,OAAE,OAAO,IAASojB,EAAE,KAAKA,EAAE,CAC9Y,SAAS0nG,GAAGhrH,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAEqmH,KAAK9lG,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIxiB,OAAE,EAAO,GAAG,OAAOunH,GAAE,CAAC,IAAIjlG,EAAEilG,GAAE3d,cAA0B,GAAZ5pG,EAAEsiB,EAAE1N,QAAW,OAAO4N,GAAGolG,GAAGplG,EAAEF,EAAEynG,MAAmC,YAA5B9nH,EAAE2nG,cAAcwf,GAAGjqH,EAAEC,EAAEY,EAAEwiB,GAAU,CAAC8kG,GAAE5d,OAAOxqG,EAAE+C,EAAE2nG,cAAcwf,GAAG,EAAEjqH,EAAEC,EAAEY,EAAEwiB,EAAE,CAAC,SAAS2nG,GAAGjrH,EAAEC,GAAG,OAAO8qH,GAAG,QAAQ,EAAE/qH,EAAEC,EAAE,CAAC,SAAS8pH,GAAG/pH,EAAEC,GAAG,OAAO+qH,GAAG,KAAK,EAAEhrH,EAAEC,EAAE,CAAC,SAASirH,GAAGlrH,EAAEC,GAAG,OAAO+qH,GAAG,EAAE,EAAEhrH,EAAEC,EAAE,CAAC,SAASkrH,GAAGnrH,EAAEC,GAAG,OAAO+qH,GAAG,EAAE,EAAEhrH,EAAEC,EAAE,CAChX,SAAS8mE,GAAG/mE,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,KAAK,GAAK,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAEmwF,QAAQpwF,EAAE,WAAWC,EAAEmwF,QAAQ,IAAI,QAA1E,CAA2E,CAAC,SAASg7B,GAAGprH,EAAEC,EAAEC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEsH,OAAO,CAACxH,IAAI,KAAYgrH,GAAG,EAAE,EAAEjkD,GAAG15C,KAAK,KAAKptB,EAAED,GAAGE,EAAE,CAAC,SAASmrH,KAAK,CAAC,SAASC,GAAGtrH,EAAEC,GAAG,IAAIC,EAAEkpH,KAAKnpH,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIqjB,EAAEpjB,EAAEwqG,cAAc,OAAG,OAAOpnF,GAAG,OAAOrjB,GAAGyoH,GAAGzoH,EAAEqjB,EAAE,IAAWA,EAAE,IAAGpjB,EAAEwqG,cAAc,CAAC1qG,EAAEC,GAAUD,EAAC,CAC7Z,SAAS6jC,GAAG7jC,EAAEC,GAAG,IAAIC,EAAEkpH,KAAKnpH,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIqjB,EAAEpjB,EAAEwqG,cAAc,OAAG,OAAOpnF,GAAG,OAAOrjB,GAAGyoH,GAAGzoH,EAAEqjB,EAAE,IAAWA,EAAE,IAAGtjB,EAAEA,IAAIE,EAAEwqG,cAAc,CAAC1qG,EAAEC,GAAUD,EAAC,CAAC,SAASurH,GAAGvrH,EAAEC,EAAEC,GAAG,OAAG,KAAQ,GAAHioH,KAAcnoH,EAAEsmH,YAAYtmH,EAAEsmH,WAAU,EAAGV,IAAG,GAAI5lH,EAAE0qG,cAAcxqG,IAAE+5G,GAAG/5G,EAAED,KAAKC,EAAEqtG,KAAK6a,GAAEzC,OAAOzlH,EAAE8mH,IAAI9mH,EAAEF,EAAEsmH,WAAU,GAAWrmH,EAAC,CAAC,SAASurH,GAAGxrH,EAAEC,GAAG,IAAIC,EAAEsC,GAAEA,GAAE,IAAItC,GAAG,EAAEA,EAAEA,EAAE,EAAEF,GAAE,GAAI,IAAIsjB,EAAE4kG,GAAG7X,WAAW6X,GAAG7X,WAAW,CAAC,EAAE,IAAIrwG,GAAE,GAAIC,GAAG,CAAC,QAAQuC,GAAEtC,EAAEgoH,GAAG7X,WAAW/sF,CAAC,CAAC,CAAC,SAASyxD,KAAK,OAAOq0C,KAAK1e,aAAa,CAC1d,SAAS+gB,GAAGzrH,EAAEC,EAAEC,GAAG,IAAIojB,EAAEooG,GAAG1rH,GAAkE,GAA/DE,EAAE,CAAC0mH,KAAKtjG,EAAExN,OAAO5V,EAAEspH,eAAc,EAAGC,WAAW,KAAK1lH,KAAK,MAAS4nH,GAAG3rH,GAAG4rH,GAAG3rH,EAAEC,QAAQ,GAAiB,QAAdA,EAAE8lH,GAAGhmH,EAAEC,EAAEC,EAAEojB,IAAY,CAAWonG,GAAGxqH,EAAEF,EAAEsjB,EAAX1gB,MAAgBipH,GAAG3rH,EAAED,EAAEqjB,EAAE,CAAC,CAC/K,SAASsnG,GAAG5qH,EAAEC,EAAEC,GAAG,IAAIojB,EAAEooG,GAAG1rH,GAAG+C,EAAE,CAAC6jH,KAAKtjG,EAAExN,OAAO5V,EAAEspH,eAAc,EAAGC,WAAW,KAAK1lH,KAAK,MAAM,GAAG4nH,GAAG3rH,GAAG4rH,GAAG3rH,EAAE8C,OAAO,CAAC,IAAIjC,EAAEd,EAAEuqG,UAAU,GAAG,IAAIvqG,EAAE2lH,QAAQ,OAAO7kH,GAAG,IAAIA,EAAE6kH,QAAiC,QAAxB7kH,EAAEb,EAAEspH,qBAA8B,IAAI,IAAInmG,EAAEnjB,EAAEypH,kBAAkBt3G,EAAEtR,EAAEsiB,EAAEljB,GAAqC,GAAlC6C,EAAEymH,eAAc,EAAGzmH,EAAE0mH,WAAWr3G,EAAK6nG,GAAG7nG,EAAEgR,GAAG,CAAC,IAAIhc,EAAEnH,EAAEgmH,YAA+E,OAAnE,OAAO7+G,GAAGrE,EAAEgB,KAAKhB,EAAEgjH,GAAG9lH,KAAK8C,EAAEgB,KAAKqD,EAAErD,KAAKqD,EAAErD,KAAKhB,QAAG9C,EAAEgmH,YAAYljH,EAAQ,CAAC,CAAC,MAAMkI,GAAG,CAAwB,QAAd/K,EAAE8lH,GAAGhmH,EAAEC,EAAE8C,EAAEugB,MAAoBonG,GAAGxqH,EAAEF,EAAEsjB,EAAbvgB,EAAEH,MAAgBipH,GAAG3rH,EAAED,EAAEqjB,GAAG,CAAC,CAC/c,SAASqoG,GAAG3rH,GAAG,IAAIC,EAAED,EAAEuqG,UAAU,OAAOvqG,IAAIooH,IAAG,OAAOnoH,GAAGA,IAAImoH,EAAC,CAAC,SAASwD,GAAG5rH,EAAEC,GAAGsoH,GAAGD,IAAG,EAAG,IAAIpoH,EAAEF,EAAEymH,QAAQ,OAAOvmH,EAAED,EAAE8D,KAAK9D,GAAGA,EAAE8D,KAAK7D,EAAE6D,KAAK7D,EAAE6D,KAAK9D,GAAGD,EAAEymH,QAAQxmH,CAAC,CAAC,SAAS4rH,GAAG7rH,EAAEC,EAAEC,GAAG,GAAG,KAAO,QAAFA,GAAW,CAAC,IAAIojB,EAAErjB,EAAE0lH,MAAwBzlH,GAAlBojB,GAAGtjB,EAAEgtG,aAAkB/sG,EAAE0lH,MAAMzlH,EAAEytG,GAAG3tG,EAAEE,EAAE,CAAC,CAC9P,IAAI6oH,GAAG,CAAC+C,YAAYjG,GAAGhqB,YAAYt9F,GAAEwtH,WAAWxtH,GAAEk9F,UAAUl9F,GAAEytH,oBAAoBztH,GAAE0tH,mBAAmB1tH,GAAEi9F,gBAAgBj9F,GAAEo+F,QAAQp+F,GAAE2tH,WAAW3tH,GAAEq9F,OAAOr9F,GAAE4tH,SAAS5tH,GAAE6tH,cAAc7tH,GAAE8tH,iBAAiB9tH,GAAE+tH,cAAc/tH,GAAEguH,iBAAiBhuH,GAAEiuH,qBAAqBjuH,GAAEkuH,MAAMluH,GAAEmuH,0BAAyB,GAAI9D,GAAG,CAACkD,YAAYjG,GAAGhqB,YAAY,SAAS77F,EAAEC,GAA4C,OAAzCgpH,KAAKve,cAAc,CAAC1qG,OAAE,IAASC,EAAE,KAAKA,GAAUD,CAAC,EAAE+rH,WAAWlG,GAAGpqB,UAAUwvB,GAAGe,oBAAoB,SAAShsH,EAAEC,EAAEC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEsH,OAAO,CAACxH,IAAI,KAAY+qH,GAAG,QAC3f,EAAEhkD,GAAG15C,KAAK,KAAKptB,EAAED,GAAGE,EAAE,EAAEs7F,gBAAgB,SAASx7F,EAAEC,GAAG,OAAO8qH,GAAG,QAAQ,EAAE/qH,EAAEC,EAAE,EAAEgsH,mBAAmB,SAASjsH,EAAEC,GAAG,OAAO8qH,GAAG,EAAE,EAAE/qH,EAAEC,EAAE,EAAE08F,QAAQ,SAAS38F,EAAEC,GAAG,IAAIC,EAAE+oH,KAAqD,OAAhDhpH,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAIE,EAAEwqG,cAAc,CAAC1qG,EAAEC,GAAUD,CAAC,EAAEksH,WAAW,SAASlsH,EAAEC,EAAEC,GAAG,IAAIojB,EAAE2lG,KAAkM,OAA7LhpH,OAAE,IAASC,EAAEA,EAAED,GAAGA,EAAEqjB,EAAEonF,cAAcpnF,EAAEgjG,UAAUrmH,EAAED,EAAE,CAACymH,QAAQ,KAAKR,YAAY,KAAKN,MAAM,EAAEgE,SAAS,KAAKJ,oBAAoBvpH,EAAE0pH,kBAAkBzpH,GAAGqjB,EAAE6lG,MAAMnpH,EAAEA,EAAEA,EAAE2pH,SAAS8B,GAAGp+F,KAAK,KAAK+6F,GAAEpoH,GAAS,CAACsjB,EAAEonF,cAAc1qG,EAAE,EAAE47F,OAAO,SAAS57F,GAC3d,OAAdA,EAAE,CAACowF,QAAQpwF,GAAhBipH,KAA4Bve,cAAc1qG,CAAC,EAAEmsH,SAASxB,GAAGyB,cAAcf,GAAGgB,iBAAiB,SAASrsH,GAAG,OAAOipH,KAAKve,cAAc1qG,CAAC,EAAEssH,cAAc,WAAW,IAAItsH,EAAE2qH,IAAG,GAAI1qH,EAAED,EAAE,GAA6C,OAA1CA,EAAEwrH,GAAGn+F,KAAK,KAAKrtB,EAAE,IAAIipH,KAAKve,cAAc1qG,EAAQ,CAACC,EAAED,EAAE,EAAEusH,iBAAiB,WAAW,EAAEC,qBAAqB,SAASxsH,EAAEC,EAAEC,GAAG,IAAIojB,EAAE8kG,GAAErlH,EAAEkmH,KAAK,GAAGlG,GAAE,CAAC,QAAG,IAAS7iH,EAAE,MAAMgW,MAAM5D,EAAE,MAAMpS,EAAEA,GAAG,KAAK,CAAO,GAANA,EAAED,IAAO,OAAOmqH,GAAE,MAAMl0G,MAAM5D,EAAE,MAAM,KAAQ,GAAH61G,KAAQkC,GAAG/mG,EAAErjB,EAAEC,EAAE,CAAC6C,EAAE2nG,cAAcxqG,EAAE,IAAIY,EAAE,CAAChD,MAAMoC,EAAE+pH,YAAYhqH,GACvZ,OAD0Z8C,EAAEomH,MAAMroH,EAAEmqH,GAAGjB,GAAG38F,KAAK,KAAK/J,EACpfxiB,EAAEd,GAAG,CAACA,IAAIsjB,EAAEknF,OAAO,KAAK0f,GAAG,EAAEC,GAAG98F,KAAK,KAAK/J,EAAExiB,EAAEZ,EAAED,QAAG,EAAO,MAAaC,CAAC,EAAEusH,MAAM,WAAW,IAAIzsH,EAAEipH,KAAKhpH,EAAEmqH,GAAEuC,iBAAiB,GAAG5J,GAAE,CAAC,IAAI7iH,EAAEuiH,GAAkDxiH,EAAE,IAAIA,EAAE,KAA9CC,GAAHsiH,KAAU,GAAG,GAAGjW,GAAhBiW,IAAsB,IAAIjjH,SAAS,IAAIW,GAAuB,GAAPA,EAAEsoH,QAAWvoH,GAAG,IAAIC,EAAEX,SAAS,KAAKU,GAAG,GAAG,MAAaA,EAAE,IAAIA,EAAE,KAAfC,EAAEuoH,MAAmBlpH,SAAS,IAAI,IAAI,OAAOS,EAAE0qG,cAAczqG,CAAC,EAAEysH,0BAAyB,GAAI7D,GAAG,CAACiD,YAAYjG,GAAGhqB,YAAYyvB,GAAGS,WAAWlG,GAAGpqB,UAAUsuB,GAAGiC,oBAAoBZ,GAAGa,mBAAmBf,GAAG1vB,gBAAgB2vB,GAAGxuB,QAAQ94D,GAAGqoF,WAAW5C,GAAG1tB,OAAOkvB,GAAGqB,SAAS,WAAW,OAAO7C,GAAGD,GAAG,EACrhB+C,cAAcf,GAAGgB,iBAAiB,SAASrsH,GAAc,OAAOurH,GAAZnC,KAAiBf,GAAE3d,cAAc1qG,EAAE,EAAEssH,cAAc,WAAgD,MAAM,CAArChD,GAAGD,IAAI,GAAKD,KAAK1e,cAAyB,EAAE6hB,iBAAiB1C,GAAG2C,qBAAqB1C,GAAG2C,MAAM13C,GAAG23C,0BAAyB,GAAI5D,GAAG,CAACgD,YAAYjG,GAAGhqB,YAAYyvB,GAAGS,WAAWlG,GAAGpqB,UAAUsuB,GAAGiC,oBAAoBZ,GAAGa,mBAAmBf,GAAG1vB,gBAAgB2vB,GAAGxuB,QAAQ94D,GAAGqoF,WAAWtC,GAAGhuB,OAAOkvB,GAAGqB,SAAS,WAAW,OAAOvC,GAAGP,GAAG,EAAE+C,cAAcf,GAAGgB,iBAAiB,SAASrsH,GAAG,IAAIC,EAAEmpH,KAAK,OAAO,OACzff,GAAEpoH,EAAEyqG,cAAc1qG,EAAEurH,GAAGtrH,EAAEooH,GAAE3d,cAAc1qG,EAAE,EAAEssH,cAAc,WAAgD,MAAM,CAArC1C,GAAGP,IAAI,GAAKD,KAAK1e,cAAyB,EAAE6hB,iBAAiB1C,GAAG2C,qBAAqB1C,GAAG2C,MAAM13C,GAAG23C,0BAAyB,GAAI,SAASE,GAAG5sH,EAAEC,GAAG,GAAGD,GAAGA,EAAEqX,aAAa,CAA4B,IAAI,IAAInX,KAAnCD,EAAE+G,EAAE,CAAC,EAAE/G,GAAGD,EAAEA,EAAEqX,kBAA4B,IAASpX,EAAEC,KAAKD,EAAEC,GAAGF,EAAEE,IAAI,OAAOD,CAAC,CAAC,OAAOA,CAAC,CAAC,SAAS4sH,GAAG7sH,EAAEC,EAAEC,EAAEojB,GAA8BpjB,EAAE,QAAXA,EAAEA,EAAEojB,EAAtBrjB,EAAED,EAAE0qG,sBAAmC,IAASxqG,EAAED,EAAE+G,EAAE,CAAC,EAAE/G,EAAEC,GAAGF,EAAE0qG,cAAcxqG,EAAE,IAAIF,EAAE2lH,QAAQ3lH,EAAEqmH,YAAYC,UAAUpmH,EAAE,CACrd,IAAI4sH,GAAG,CAACC,UAAU,SAAS/sH,GAAG,SAAOA,EAAEA,EAAEgtH,kBAAiB1iB,GAAGtqG,KAAKA,CAAI,EAAEitH,gBAAgB,SAASjtH,EAAEC,EAAEC,GAAGF,EAAEA,EAAEgtH,gBAAgB,IAAI1pG,EAAE1gB,KAAIG,EAAE2oH,GAAG1rH,GAAGc,EAAE4lH,GAAGpjG,EAAEvgB,GAAGjC,EAAE8pB,QAAQ3qB,OAAE,IAASC,GAAG,OAAOA,IAAIY,EAAEqpB,SAASjqB,GAAe,QAAZD,EAAE4mH,GAAG7mH,EAAEc,EAAEiC,MAAc2nH,GAAGzqH,EAAED,EAAE+C,EAAEugB,GAAGwjG,GAAG7mH,EAAED,EAAE+C,GAAG,EAAEmqH,oBAAoB,SAASltH,EAAEC,EAAEC,GAAGF,EAAEA,EAAEgtH,gBAAgB,IAAI1pG,EAAE1gB,KAAIG,EAAE2oH,GAAG1rH,GAAGc,EAAE4lH,GAAGpjG,EAAEvgB,GAAGjC,EAAEqJ,IAAI,EAAErJ,EAAE8pB,QAAQ3qB,OAAE,IAASC,GAAG,OAAOA,IAAIY,EAAEqpB,SAASjqB,GAAe,QAAZD,EAAE4mH,GAAG7mH,EAAEc,EAAEiC,MAAc2nH,GAAGzqH,EAAED,EAAE+C,EAAEugB,GAAGwjG,GAAG7mH,EAAED,EAAE+C,GAAG,EAAEoqH,mBAAmB,SAASntH,EAAEC,GAAGD,EAAEA,EAAEgtH,gBAAgB,IAAI9sH,EAAE0C,KAAI0gB,EACnfooG,GAAG1rH,GAAG+C,EAAE2jH,GAAGxmH,EAAEojB,GAAGvgB,EAAEoH,IAAI,OAAE,IAASlK,GAAG,OAAOA,IAAI8C,EAAEonB,SAASlqB,GAAe,QAAZA,EAAE4mH,GAAG7mH,EAAE+C,EAAEugB,MAAconG,GAAGzqH,EAAED,EAAEsjB,EAAEpjB,GAAG4mH,GAAG7mH,EAAED,EAAEsjB,GAAG,GAAG,SAAS8pG,GAAGptH,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,EAAEsiB,GAAiB,MAAM,oBAApBpjB,EAAEA,EAAEopG,WAAsCikB,sBAAsBrtH,EAAEqtH,sBAAsB/pG,EAAExiB,EAAEsiB,IAAGnjB,EAAElD,YAAWkD,EAAElD,UAAUuwH,wBAAsBpT,GAAGh6G,EAAEojB,KAAK42F,GAAGn3G,EAAEjC,GAAK,CAC1S,SAASysH,GAAGvtH,EAAEC,EAAEC,GAAG,IAAIojB,GAAE,EAAGvgB,EAAE+9G,GAAOhgH,EAAEb,EAAEkX,YAA2W,MAA/V,kBAAkBrW,GAAG,OAAOA,EAAEA,EAAE+kH,GAAG/kH,IAAIiC,EAAEs+G,GAAGphH,GAAGghH,GAAGF,GAAE3wB,QAAyBtvF,GAAGwiB,EAAE,QAAtBA,EAAErjB,EAAEmX,oBAA4B,IAASkM,GAAG49F,GAAGlhH,EAAE+C,GAAG+9G,IAAI7gH,EAAE,IAAIA,EAAEC,EAAEY,GAAGd,EAAE0qG,cAAc,OAAOzqG,EAAE0gF,YAAO,IAAS1gF,EAAE0gF,MAAM1gF,EAAE0gF,MAAM,KAAK1gF,EAAEutH,QAAQV,GAAG9sH,EAAEopG,UAAUnpG,EAAEA,EAAE+sH,gBAAgBhtH,EAAEsjB,KAAItjB,EAAEA,EAAEopG,WAAY+X,4CAA4Cp+G,EAAE/C,EAAEohH,0CAA0CtgH,GAAUb,CAAC,CAC5Z,SAASwtH,GAAGztH,EAAEC,EAAEC,EAAEojB,GAAGtjB,EAAEC,EAAE0gF,MAAM,oBAAoB1gF,EAAEytH,2BAA2BztH,EAAEytH,0BAA0BxtH,EAAEojB,GAAG,oBAAoBrjB,EAAE0tH,kCAAkC1tH,EAAE0tH,iCAAiCztH,EAAEojB,GAAGrjB,EAAE0gF,QAAQ3gF,GAAG8sH,GAAGI,oBAAoBjtH,EAAEA,EAAE0gF,MAAM,KAAK,CACpQ,SAASitC,GAAG5tH,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAE/C,EAAEopG,UAAUrmG,EAAE1G,MAAM6D,EAAE6C,EAAE49E,MAAM3gF,EAAE0qG,cAAc3nG,EAAEqhH,KAAK,CAAC,EAAEgC,GAAGpmH,GAAG,IAAIc,EAAEb,EAAEkX,YAAY,kBAAkBrW,GAAG,OAAOA,EAAEiC,EAAEwuE,QAAQs0C,GAAG/kH,IAAIA,EAAEugH,GAAGphH,GAAGghH,GAAGF,GAAE3wB,QAAQrtF,EAAEwuE,QAAQ2vC,GAAGlhH,EAAEc,IAAIiC,EAAE49E,MAAM3gF,EAAE0qG,cAA2C,oBAA7B5pG,EAAEb,EAAEwX,4BAAiDo1G,GAAG7sH,EAAEC,EAAEa,EAAEZ,GAAG6C,EAAE49E,MAAM3gF,EAAE0qG,eAAe,oBAAoBzqG,EAAEwX,0BAA0B,oBAAoB1U,EAAE8qH,yBAAyB,oBAAoB9qH,EAAE+qH,2BAA2B,oBAAoB/qH,EAAEgrH,qBAAqB9tH,EAAE8C,EAAE49E,MACrf,oBAAoB59E,EAAEgrH,oBAAoBhrH,EAAEgrH,qBAAqB,oBAAoBhrH,EAAE+qH,2BAA2B/qH,EAAE+qH,4BAA4B7tH,IAAI8C,EAAE49E,OAAOmsC,GAAGI,oBAAoBnqH,EAAEA,EAAE49E,MAAM,MAAMtrE,GAAGrV,EAAEE,EAAE6C,EAAEugB,GAAGvgB,EAAE49E,MAAM3gF,EAAE0qG,eAAe,oBAAoB3nG,EAAEirH,oBAAoBhuH,EAAEwqG,OAAO,QAAQ,CAAC,SAASyjB,GAAGjuH,EAAEC,GAAG,IAAI,IAAIC,EAAE,GAAGojB,EAAErjB,EAAE,GAAGC,GAAG4hG,EAAGx+E,GAAGA,EAAEA,EAAE03E,aAAa13E,GAAG,IAAIvgB,EAAE7C,CAAC,CAAC,MAAMY,GAAGiC,EAAE,6BAA6BjC,EAAEotH,QAAQ,KAAKptH,EAAEovE,KAAK,CAAC,MAAM,CAACpyE,MAAMkC,EAAE7C,OAAO8C,EAAEiwE,MAAMntE,EAAEorH,OAAO,KAAK,CAC1d,SAASC,GAAGpuH,EAAEC,EAAEC,GAAG,MAAM,CAACpC,MAAMkC,EAAE7C,OAAO,KAAK+yE,MAAM,MAAMhwE,EAAEA,EAAE,KAAKiuH,OAAO,MAAMluH,EAAEA,EAAE,KAAK,CAAC,SAASouH,GAAGruH,EAAEC,GAAG,IAAI8S,QAAQ9B,MAAMhR,EAAEnC,MAAM,CAAC,MAAMoC,GAAGuT,YAAW,WAAW,MAAMvT,CAAE,GAAE,CAAC,CAAC,IAAIouH,GAAG,oBAAoBC,QAAQA,QAAQ/f,IAAI,SAASggB,GAAGxuH,EAAEC,EAAEC,IAAGA,EAAEwmH,IAAI,EAAExmH,IAAKiK,IAAI,EAAEjK,EAAE0qB,QAAQ,CAACvJ,QAAQ,MAAM,IAAIiC,EAAErjB,EAAEnC,MAAsD,OAAhDoC,EAAEiqB,SAAS,WAAWskG,KAAKA,IAAG,EAAGC,GAAGprG,GAAG+qG,GAAGruH,EAAEC,EAAE,EAASC,CAAC,CACrW,SAASyuH,GAAG3uH,EAAEC,EAAEC,IAAGA,EAAEwmH,IAAI,EAAExmH,IAAKiK,IAAI,EAAE,IAAImZ,EAAEtjB,EAAEwB,KAAKgW,yBAAyB,GAAG,oBAAoB8L,EAAE,CAAC,IAAIvgB,EAAE9C,EAAEnC,MAAMoC,EAAE0qB,QAAQ,WAAW,OAAOtH,EAAEvgB,EAAE,EAAE7C,EAAEiqB,SAAS,WAAWkkG,GAAGruH,EAAEC,EAAE,CAAC,CAAC,IAAIa,EAAEd,EAAEopG,UAA8O,OAApO,OAAOtoG,GAAG,oBAAoBA,EAAE8tH,oBAAoB1uH,EAAEiqB,SAAS,WAAWkkG,GAAGruH,EAAEC,GAAG,oBAAoBqjB,IAAI,OAAOurG,GAAGA,GAAG,IAAI/vB,IAAI,CAACr8F,OAAOosH,GAAGpsD,IAAIhgE,OAAO,IAAIvC,EAAED,EAAEiwE,MAAMztE,KAAKmsH,kBAAkB3uH,EAAEnC,MAAM,CAACgxH,eAAe,OAAO5uH,EAAEA,EAAE,IAAI,GAAUA,CAAC,CACnb,SAAS6uH,GAAG/uH,EAAEC,EAAEC,GAAG,IAAIojB,EAAEtjB,EAAEgvH,UAAU,GAAG,OAAO1rG,EAAE,CAACA,EAAEtjB,EAAEgvH,UAAU,IAAIV,GAAG,IAAIvrH,EAAE,IAAI+7F,IAAIx7E,EAAExZ,IAAI7J,EAAE8C,EAAE,WAAiB,KAAXA,EAAEugB,EAAEljB,IAAIH,MAAgB8C,EAAE,IAAI+7F,IAAIx7E,EAAExZ,IAAI7J,EAAE8C,IAAIA,EAAE1B,IAAInB,KAAK6C,EAAE0/D,IAAIviE,GAAGF,EAAEivH,GAAG5hG,KAAK,KAAKrtB,EAAEC,EAAEC,GAAGD,EAAE8/G,KAAK//G,EAAEA,GAAG,CAAC,SAASkvH,GAAGlvH,GAAG,EAAE,CAAC,IAAIC,EAA4E,IAAvEA,EAAE,KAAKD,EAAEmK,OAAsBlK,EAAE,QAApBA,EAAED,EAAE0qG,gBAAyB,OAAOzqG,EAAE0qG,YAAuB1qG,EAAE,OAAOD,EAAEA,EAAEA,EAAEg7F,MAAM,OAAO,OAAOh7F,GAAG,OAAO,IAAI,CAChW,SAASmvH,GAAGnvH,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,OAAG,KAAY,EAAP/C,EAAEyK,OAAezK,IAAIC,EAAED,EAAEwqG,OAAO,OAAOxqG,EAAEwqG,OAAO,IAAItqG,EAAEsqG,OAAO,OAAOtqG,EAAEsqG,QAAQ,MAAM,IAAItqG,EAAEiK,MAAM,OAAOjK,EAAEqqG,UAAUrqG,EAAEiK,IAAI,KAAIlK,EAAEymH,IAAI,EAAE,IAAKv8G,IAAI,EAAE08G,GAAG3mH,EAAED,EAAE,KAAKC,EAAEylH,OAAO,GAAG3lH,IAAEA,EAAEwqG,OAAO,MAAMxqG,EAAE2lH,MAAM5iH,EAAS/C,EAAC,CAAC,IAAIovH,GAAGhvB,EAAGivB,kBAAkBzJ,IAAG,EAAG,SAAS0J,GAAGtvH,EAAEC,EAAEC,EAAEojB,GAAGrjB,EAAE6qG,MAAM,OAAO9qG,EAAE+kH,GAAG9kH,EAAE,KAAKC,EAAEojB,GAAGwhG,GAAG7kH,EAAED,EAAE8qG,MAAM5qG,EAAEojB,EAAE,CACnV,SAASisG,GAAGvvH,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG7C,EAAEA,EAAE+T,OAAO,IAAInT,EAAEb,EAAE07F,IAAqC,OAAjC5zC,GAAG9nD,EAAE8C,GAAGugB,EAAEqlG,GAAG3oH,EAAEC,EAAEC,EAAEojB,EAAExiB,EAAEiC,GAAG7C,EAAE8oH,KAAQ,OAAOhpH,GAAI4lH,IAA2E7C,IAAG7iH,GAAGyiH,GAAG1iH,GAAGA,EAAEuqG,OAAO,EAAE8kB,GAAGtvH,EAAEC,EAAEqjB,EAAEvgB,GAAU9C,EAAE6qG,QAA7G7qG,EAAEomH,YAAYrmH,EAAEqmH,YAAYpmH,EAAEuqG,QAAQ,KAAKxqG,EAAE2lH,QAAQ5iH,EAAEysH,GAAGxvH,EAAEC,EAAE8C,GAAoD,CACzN,SAAS0sH,GAAGzvH,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,GAAG,OAAO/C,EAAE,CAAC,IAAIc,EAAEZ,EAAEsB,KAAK,MAAG,oBAAoBV,GAAI4uH,GAAG5uH,SAAI,IAASA,EAAEuW,cAAc,OAAOnX,EAAE+X,cAAS,IAAS/X,EAAEmX,eAAoDrX,EAAE0kH,GAAGxkH,EAAEsB,KAAK,KAAK8hB,EAAErjB,EAAEA,EAAEwK,KAAK1H,IAAK44F,IAAI17F,EAAE07F,IAAI37F,EAAEg7F,OAAO/6F,EAASA,EAAE6qG,MAAM9qG,IAArGC,EAAEkK,IAAI,GAAGlK,EAAEuB,KAAKV,EAAE6uH,GAAG3vH,EAAEC,EAAEa,EAAEwiB,EAAEvgB,GAAyE,CAAW,GAAVjC,EAAEd,EAAE8qG,MAAS,KAAK9qG,EAAE2lH,MAAM5iH,GAAG,CAAC,IAAIqgB,EAAEtiB,EAAE8iH,cAA0C,IAAhB1jH,EAAE,QAAdA,EAAEA,EAAE+X,SAAmB/X,EAAEg6G,IAAQ92F,EAAEE,IAAItjB,EAAE27F,MAAM17F,EAAE07F,IAAI,OAAO6zB,GAAGxvH,EAAEC,EAAE8C,EAAE,CAA6C,OAA5C9C,EAAEuqG,OAAO,GAAExqG,EAAEwkH,GAAG1jH,EAAEwiB,IAAKq4E,IAAI17F,EAAE07F,IAAI37F,EAAEg7F,OAAO/6F,EAASA,EAAE6qG,MAAM9qG,CAAC,CAC1b,SAAS2vH,GAAG3vH,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,GAAG,OAAO/C,EAAE,CAAC,IAAIc,EAAEd,EAAE4jH,cAAc,GAAG1J,GAAGp5G,EAAEwiB,IAAItjB,EAAE27F,MAAM17F,EAAE07F,IAAI,IAAGiqB,IAAG,EAAG3lH,EAAEojH,aAAa//F,EAAExiB,EAAE,KAAKd,EAAE2lH,MAAM5iH,GAAsC,OAAO9C,EAAE0lH,MAAM3lH,EAAE2lH,MAAM6J,GAAGxvH,EAAEC,EAAE8C,GAAjE,KAAa,OAAR/C,EAAEwqG,SAAgBob,IAAG,EAAyC,EAAC,OAAOgK,GAAG5vH,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAE,CACxN,SAAS8sH,GAAG7vH,EAAEC,EAAEC,GAAG,IAAIojB,EAAErjB,EAAEojH,aAAatgH,EAAEugB,EAAEk4D,SAAS16E,EAAE,OAAOd,EAAEA,EAAE0qG,cAAc,KAAK,GAAG,WAAWpnF,EAAE7Y,KAAK,GAAG,KAAY,EAAPxK,EAAEwK,MAAQxK,EAAEyqG,cAAc,CAAColB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAMjuH,GAAEkuH,GAAGC,IAAIA,IAAIhwH,MAAM,CAAC,GAAG,KAAO,WAAFA,GAAc,OAAOF,EAAE,OAAOc,EAAEA,EAAEgvH,UAAU5vH,EAAEA,EAAED,EAAE0lH,MAAM1lH,EAAEulH,WAAW,WAAWvlH,EAAEyqG,cAAc,CAAColB,UAAU9vH,EAAE+vH,UAAU,KAAKC,YAAY,MAAM/vH,EAAEomH,YAAY,KAAKtkH,GAAEkuH,GAAGC,IAAIA,IAAIlwH,EAAE,KAAKC,EAAEyqG,cAAc,CAAColB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAM1sG,EAAE,OAAOxiB,EAAEA,EAAEgvH,UAAU5vH,EAAE6B,GAAEkuH,GAAGC,IAAIA,IAAI5sG,CAAC,MAAM,OACtfxiB,GAAGwiB,EAAExiB,EAAEgvH,UAAU5vH,EAAED,EAAEyqG,cAAc,MAAMpnF,EAAEpjB,EAAE6B,GAAEkuH,GAAGC,IAAIA,IAAI5sG,EAAc,OAAZgsG,GAAGtvH,EAAEC,EAAE8C,EAAE7C,GAAUD,EAAE6qG,KAAK,CAAC,SAASqlB,GAAGnwH,EAAEC,GAAG,IAAIC,EAAED,EAAE07F,KAAO,OAAO37F,GAAG,OAAOE,GAAG,OAAOF,GAAGA,EAAE27F,MAAMz7F,KAAED,EAAEuqG,OAAO,IAAIvqG,EAAEuqG,OAAO,QAAO,CAAC,SAASolB,GAAG5vH,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,IAAIjC,EAAEugH,GAAGnhH,GAAG+gH,GAAGF,GAAE3wB,QAAmD,OAA3CtvF,EAAEogH,GAAGjhH,EAAEa,GAAGinD,GAAG9nD,EAAE8C,GAAG7C,EAAEyoH,GAAG3oH,EAAEC,EAAEC,EAAEojB,EAAExiB,EAAEiC,GAAGugB,EAAE0lG,KAAQ,OAAOhpH,GAAI4lH,IAA2E7C,IAAGz/F,GAAGq/F,GAAG1iH,GAAGA,EAAEuqG,OAAO,EAAE8kB,GAAGtvH,EAAEC,EAAEC,EAAE6C,GAAU9C,EAAE6qG,QAA7G7qG,EAAEomH,YAAYrmH,EAAEqmH,YAAYpmH,EAAEuqG,QAAQ,KAAKxqG,EAAE2lH,QAAQ5iH,EAAEysH,GAAGxvH,EAAEC,EAAE8C,GAAoD,CACla,SAASqtH,GAAGpwH,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,GAAGs+G,GAAGnhH,GAAG,CAAC,IAAIY,GAAE,EAAG4gH,GAAGzhH,EAAE,MAAMa,GAAE,EAAW,GAARinD,GAAG9nD,EAAE8C,GAAM,OAAO9C,EAAEmpG,UAAUinB,GAAGrwH,EAAEC,GAAGstH,GAAGttH,EAAEC,EAAEojB,GAAGsqG,GAAG3tH,EAAEC,EAAEojB,EAAEvgB,GAAGugB,GAAE,OAAQ,GAAG,OAAOtjB,EAAE,CAAC,IAAIojB,EAAEnjB,EAAEmpG,UAAUh3F,EAAEnS,EAAE2jH,cAAcxgG,EAAE/mB,MAAM+V,EAAE,IAAIhL,EAAEgc,EAAEmuD,QAAQtmE,EAAE/K,EAAEiX,YAAY,kBAAkBlM,GAAG,OAAOA,EAAEA,EAAE46G,GAAG56G,GAAyBA,EAAEi2G,GAAGjhH,EAA1BgL,EAAEo2G,GAAGnhH,GAAG+gH,GAAGF,GAAE3wB,SAAmB,IAAIzgD,EAAEzvC,EAAEuX,yBAAyBnB,EAAE,oBAAoBq5B,GAAG,oBAAoBvsB,EAAEyqG,wBAAwBv3G,GAAG,oBAAoB8M,EAAEuqG,kCAAkC,oBAAoBvqG,EAAEsqG,4BAC1dt7G,IAAIkR,GAAGlc,IAAI6D,IAAIwiH,GAAGxtH,EAAEmjB,EAAEE,EAAErY,GAAGk7G,IAAG,EAAG,IAAIh0G,EAAElS,EAAEyqG,cAActnF,EAAEu9D,MAAMxuE,EAAEkD,GAAGpV,EAAEqjB,EAAEF,EAAErgB,GAAGqE,EAAEnH,EAAEyqG,cAAct4F,IAAIkR,GAAGnR,IAAI/K,GAAG45G,GAAG5wB,SAAS+1B,IAAI,oBAAoBx2E,IAAIk9E,GAAG5sH,EAAEC,EAAEyvC,EAAErsB,GAAGlc,EAAEnH,EAAEyqG,gBAAgBt4F,EAAE+zG,IAAIiH,GAAGntH,EAAEC,EAAEkS,EAAEkR,EAAEnR,EAAE/K,EAAE6D,KAAKqL,GAAG,oBAAoB8M,EAAE0qG,2BAA2B,oBAAoB1qG,EAAE2qG,qBAAqB,oBAAoB3qG,EAAE2qG,oBAAoB3qG,EAAE2qG,qBAAqB,oBAAoB3qG,EAAE0qG,2BAA2B1qG,EAAE0qG,6BAA6B,oBAAoB1qG,EAAE4qG,oBAAoB/tH,EAAEuqG,OAAO,WAClf,oBAAoBpnF,EAAE4qG,oBAAoB/tH,EAAEuqG,OAAO,SAASvqG,EAAE2jH,cAActgG,EAAErjB,EAAEyqG,cAActjG,GAAGgc,EAAE/mB,MAAMinB,EAAEF,EAAEu9D,MAAMv5E,EAAEgc,EAAEmuD,QAAQtmE,EAAEqY,EAAElR,IAAI,oBAAoBgR,EAAE4qG,oBAAoB/tH,EAAEuqG,OAAO,SAASlnF,GAAE,EAAG,KAAK,CAACF,EAAEnjB,EAAEmpG,UAAU7qC,GAAGv+D,EAAEC,GAAGmS,EAAEnS,EAAE2jH,cAAc34G,EAAEhL,EAAEuB,OAAOvB,EAAEw5F,YAAYrnF,EAAEw6G,GAAG3sH,EAAEuB,KAAK4Q,GAAGgR,EAAE/mB,MAAM4O,EAAEqL,EAAErW,EAAEojH,aAAalxG,EAAEiR,EAAEmuD,QAAwB,kBAAhBnqE,EAAElH,EAAEiX,cAAiC,OAAO/P,EAAEA,EAAEy+G,GAAGz+G,GAAyBA,EAAE85G,GAAGjhH,EAA1BmH,EAAEi6G,GAAGnhH,GAAG+gH,GAAGF,GAAE3wB,SAAmB,IAAInsD,EAAE/jC,EAAEuX,0BAA0Bk4B,EAAE,oBAAoB1L,GAAG,oBAAoB7gB,EAAEyqG,0BAC9e,oBAAoBzqG,EAAEuqG,kCAAkC,oBAAoBvqG,EAAEsqG,4BAA4Bt7G,IAAIkE,GAAGnE,IAAI/K,IAAIqmH,GAAGxtH,EAAEmjB,EAAEE,EAAElc,GAAG++G,IAAG,EAAGh0G,EAAElS,EAAEyqG,cAActnF,EAAEu9D,MAAMxuE,EAAEkD,GAAGpV,EAAEqjB,EAAEF,EAAErgB,GAAG,IAAI6M,EAAE3P,EAAEyqG,cAAct4F,IAAIkE,GAAGnE,IAAIvC,GAAGoxG,GAAG5wB,SAAS+1B,IAAI,oBAAoBliF,IAAI4oF,GAAG5sH,EAAEC,EAAE+jC,EAAE3gB,GAAG1T,EAAE3P,EAAEyqG,gBAAgBz/F,EAAEk7G,IAAIiH,GAAGntH,EAAEC,EAAE+K,EAAEqY,EAAEnR,EAAEvC,EAAExI,KAAI,IAAKuoC,GAAG,oBAAoBvsB,EAAEktG,4BAA4B,oBAAoBltG,EAAEmtG,sBAAsB,oBAAoBntG,EAAEmtG,qBAAqBntG,EAAEmtG,oBAAoBjtG,EAAE1T,EAAExI,GAAG,oBAAoBgc,EAAEktG,4BAC5fltG,EAAEktG,2BAA2BhtG,EAAE1T,EAAExI,IAAI,oBAAoBgc,EAAEotG,qBAAqBvwH,EAAEuqG,OAAO,GAAG,oBAAoBpnF,EAAEyqG,0BAA0B5tH,EAAEuqG,OAAO,QAAQ,oBAAoBpnF,EAAEotG,oBAAoBp+G,IAAIpS,EAAE4jH,eAAezxG,IAAInS,EAAE0qG,gBAAgBzqG,EAAEuqG,OAAO,GAAG,oBAAoBpnF,EAAEyqG,yBAAyBz7G,IAAIpS,EAAE4jH,eAAezxG,IAAInS,EAAE0qG,gBAAgBzqG,EAAEuqG,OAAO,MAAMvqG,EAAE2jH,cAActgG,EAAErjB,EAAEyqG,cAAc96F,GAAGwT,EAAE/mB,MAAMinB,EAAEF,EAAEu9D,MAAM/wE,EAAEwT,EAAEmuD,QAAQnqE,EAAEkc,EAAErY,IAAI,oBAAoBmY,EAAEotG,oBAAoBp+G,IAAIpS,EAAE4jH,eAAezxG,IACjfnS,EAAE0qG,gBAAgBzqG,EAAEuqG,OAAO,GAAG,oBAAoBpnF,EAAEyqG,yBAAyBz7G,IAAIpS,EAAE4jH,eAAezxG,IAAInS,EAAE0qG,gBAAgBzqG,EAAEuqG,OAAO,MAAMlnF,GAAE,EAAG,CAAC,OAAOmtG,GAAGzwH,EAAEC,EAAEC,EAAEojB,EAAExiB,EAAEiC,EAAE,CACnK,SAAS0tH,GAAGzwH,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,GAAGqvH,GAAGnwH,EAAEC,GAAG,IAAImjB,EAAE,KAAa,IAARnjB,EAAEuqG,OAAW,IAAIlnF,IAAIF,EAAE,OAAOrgB,GAAG6+G,GAAG3hH,EAAEC,GAAE,GAAIsvH,GAAGxvH,EAAEC,EAAEa,GAAGwiB,EAAErjB,EAAEmpG,UAAUgmB,GAAGh/B,QAAQnwF,EAAE,IAAImS,EAAEgR,GAAG,oBAAoBljB,EAAEsX,yBAAyB,KAAK8L,EAAErP,SAAwI,OAA/HhU,EAAEuqG,OAAO,EAAE,OAAOxqG,GAAGojB,GAAGnjB,EAAE6qG,MAAMga,GAAG7kH,EAAED,EAAE8qG,MAAM,KAAKhqG,GAAGb,EAAE6qG,MAAMga,GAAG7kH,EAAE,KAAKmS,EAAEtR,IAAIwuH,GAAGtvH,EAAEC,EAAEmS,EAAEtR,GAAGb,EAAEyqG,cAAcpnF,EAAEq9D,MAAM59E,GAAG6+G,GAAG3hH,EAAEC,GAAE,GAAWD,EAAE6qG,KAAK,CAAC,SAAS4lB,GAAG1wH,GAAG,IAAIC,EAAED,EAAEopG,UAAUnpG,EAAE0wH,eAAepP,GAAGvhH,EAAEC,EAAE0wH,eAAe1wH,EAAE0wH,iBAAiB1wH,EAAEsxE,SAAStxE,EAAEsxE,SAASgwC,GAAGvhH,EAAEC,EAAEsxE,SAAQ,GAAI+1C,GAAGtnH,EAAEC,EAAEwvG,cAAc,CAC5e,SAAS5rD,GAAG7jD,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAuC,OAApC+gH,KAAKC,GAAGhhH,GAAG9C,EAAEuqG,OAAO,IAAI8kB,GAAGtvH,EAAEC,EAAEC,EAAEojB,GAAUrjB,EAAE6qG,KAAK,CAAC,IAaqL8lB,GAAGC,GAAGC,GAAGC,GAb1LC,GAAG,CAACrmB,WAAW,KAAK2Y,YAAY,KAAKC,UAAU,GAAG,SAAS0N,GAAGjxH,GAAG,MAAM,CAAC8vH,UAAU9vH,EAAE+vH,UAAU,KAAKC,YAAY,KAAK,CAClM,SAASkB,GAAGlxH,EAAEC,EAAEC,GAAG,IAA0DkS,EAAtDkR,EAAErjB,EAAEojH,aAAatgH,EAAE2kH,GAAEt3B,QAAQtvF,GAAE,EAAGsiB,EAAE,KAAa,IAARnjB,EAAEuqG,OAAqJ,IAAvIp4F,EAAEgR,KAAKhR,GAAE,OAAOpS,GAAG,OAAOA,EAAE0qG,gBAAiB,KAAO,EAAF3nG,IAASqP,GAAEtR,GAAE,EAAGb,EAAEuqG,QAAQ,KAAY,OAAOxqG,GAAG,OAAOA,EAAE0qG,gBAAc3nG,GAAG,GAAEhB,GAAE2lH,GAAI,EAAF3kH,GAAQ,OAAO/C,EAA2B,OAAxByjH,GAAGxjH,GAAwB,QAArBD,EAAEC,EAAEyqG,gBAA2C,QAAf1qG,EAAEA,EAAE2qG,aAA4B,KAAY,EAAP1qG,EAAEwK,MAAQxK,EAAE0lH,MAAM,EAAE,OAAO3lH,EAAEslB,KAAKrlB,EAAE0lH,MAAM,EAAE1lH,EAAE0lH,MAAM,WAAW,OAAKviG,EAAEE,EAAEk4D,SAASx7E,EAAEsjB,EAAE6tG,SAAgBrwH,GAAGwiB,EAAErjB,EAAEwK,KAAK3J,EAAEb,EAAE6qG,MAAM1nF,EAAE,CAAC3Y,KAAK,SAAS+wE,SAASp4D,GAAG,KAAO,EAAFE,IAAM,OAAOxiB,GAAGA,EAAE0kH,WAAW,EAAE1kH,EAAEuiH,aAC7ejgG,GAAGtiB,EAAEswH,GAAGhuG,EAAEE,EAAE,EAAE,MAAMtjB,EAAE6kH,GAAG7kH,EAAEsjB,EAAEpjB,EAAE,MAAMY,EAAEk6F,OAAO/6F,EAAED,EAAEg7F,OAAO/6F,EAAEa,EAAEiqG,QAAQ/qG,EAAEC,EAAE6qG,MAAMhqG,EAAEb,EAAE6qG,MAAMJ,cAAcumB,GAAG/wH,GAAGD,EAAEyqG,cAAcsmB,GAAGhxH,GAAGqxH,GAAGpxH,EAAEmjB,IAAqB,GAAG,QAArBrgB,EAAE/C,EAAE0qG,gBAA2C,QAAft4F,EAAErP,EAAE4nG,YAAqB,OAGpM,SAAY3qG,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,EAAEsiB,GAAG,GAAGljB,EAAG,OAAW,IAARD,EAAEuqG,OAAiBvqG,EAAEuqG,QAAQ,IAAwB8mB,GAAGtxH,EAAEC,EAAEmjB,EAA3BE,EAAE8qG,GAAGl4G,MAAM5D,EAAE,SAAsB,OAAOrS,EAAEyqG,eAAqBzqG,EAAE6qG,MAAM9qG,EAAE8qG,MAAM7qG,EAAEuqG,OAAO,IAAI,OAAK1pG,EAAEwiB,EAAE6tG,SAASpuH,EAAE9C,EAAEwK,KAAK6Y,EAAE8tG,GAAG,CAAC3mH,KAAK,UAAU+wE,SAASl4D,EAAEk4D,UAAUz4E,EAAE,EAAE,OAAMjC,EAAE+jH,GAAG/jH,EAAEiC,EAAEqgB,EAAE,OAAQonF,OAAO,EAAElnF,EAAE03E,OAAO/6F,EAAEa,EAAEk6F,OAAO/6F,EAAEqjB,EAAEynF,QAAQjqG,EAAEb,EAAE6qG,MAAMxnF,EAAE,KAAY,EAAPrjB,EAAEwK,OAASq6G,GAAG7kH,EAAED,EAAE8qG,MAAM,KAAK1nF,GAAGnjB,EAAE6qG,MAAMJ,cAAcumB,GAAG7tG,GAAGnjB,EAAEyqG,cAAcsmB,GAAUlwH,GAAE,GAAG,KAAY,EAAPb,EAAEwK,MAAQ,OAAO6mH,GAAGtxH,EAAEC,EAAEmjB,EAAE,MAAM,GAAG,OAAOrgB,EAAEuiB,KAAK,CAChd,GADidhC,EAAEvgB,EAAEs3G,aAAat3G,EAAEs3G,YAAYkX,QAC3e,IAAIn/G,EAAEkR,EAAEkuG,KAA0C,OAArCluG,EAAElR,EAA0Ck/G,GAAGtxH,EAAEC,EAAEmjB,EAA/BE,EAAE8qG,GAAlBttH,EAAEoV,MAAM5D,EAAE,MAAagR,OAAE,GAA0B,CAAwB,GAAvBlR,EAAE,KAAKgR,EAAEpjB,EAAEwlH,YAAeI,IAAIxzG,EAAE,CAAK,GAAG,QAAPkR,EAAE8mG,IAAc,CAAC,OAAOhnG,GAAGA,GAAG,KAAK,EAAErgB,EAAE,EAAE,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAASA,EAAE,GAAG,MAAM,KAAK,UAAUA,EAAE,UAAU,MAAM,QAAQA,EAAE,EAChd,KADkdA,EAAE,KAAKA,GAAGugB,EAAE2pF,eAAe7pF,IAAI,EAAErgB,IAC5eA,IAAIjC,EAAEyiH,YAAYziH,EAAEyiH,UAAUxgH,EAAEmjH,GAAGlmH,EAAE+C,GAAG2nH,GAAGpnG,EAAEtjB,EAAE+C,GAAG,GAAG,CAA0B,OAAzB0uH,KAAgCH,GAAGtxH,EAAEC,EAAEmjB,EAAlCE,EAAE8qG,GAAGl4G,MAAM5D,EAAE,OAAyB,CAAC,MAAG,OAAOvP,EAAEuiB,MAAYrlB,EAAEuqG,OAAO,IAAIvqG,EAAE6qG,MAAM9qG,EAAE8qG,MAAM7qG,EAAEyxH,GAAGrkG,KAAK,KAAKrtB,GAAG+C,EAAE4uH,YAAY1xH,EAAE,OAAKD,EAAEc,EAAEwiH,YAAYR,GAAG3C,GAAGp9G,EAAEs3G,aAAawI,GAAG5iH,EAAE8iH,IAAE,EAAGC,GAAG,KAAK,OAAOhjH,IAAIqiH,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGC,GAAGxiH,EAAE+F,GAAG08G,GAAGziH,EAAE+9E,SAASwkC,GAAGtiH,GAAGA,EAAEoxH,GAAGpxH,EAAEqjB,EAAEk4D,UAAUv7E,EAAEuqG,OAAO,KAAYvqG,EAAC,CALrK2xH,CAAG5xH,EAAEC,EAAEmjB,EAAEE,EAAElR,EAAErP,EAAE7C,GAAG,GAAGY,EAAE,CAACA,EAAEwiB,EAAE6tG,SAAS/tG,EAAEnjB,EAAEwK,KAAe2H,GAAVrP,EAAE/C,EAAE8qG,OAAUC,QAAQ,IAAI3jG,EAAE,CAACqD,KAAK,SAAS+wE,SAASl4D,EAAEk4D,UAChF,OAD0F,KAAO,EAAFp4D,IAAMnjB,EAAE6qG,QAAQ/nG,IAAGugB,EAAErjB,EAAE6qG,OAAQ0a,WAAW,EAAEliG,EAAE+/F,aAAaj8G,EAAEnH,EAAEkjH,UAAU,OAAO7/F,EAAEkhG,GAAGzhH,EAAEqE,IAAKyqH,aAA4B,SAAf9uH,EAAE8uH,aAAuB,OAAOz/G,EAAEtR,EAAE0jH,GAAGpyG,EAAEtR,IAAIA,EAAE+jH,GAAG/jH,EAAEsiB,EAAEljB,EAAE,OAAQsqG,OAAO,EAAG1pG,EAAEk6F,OACnf/6F,EAAEqjB,EAAE03E,OAAO/6F,EAAEqjB,EAAEynF,QAAQjqG,EAAEb,EAAE6qG,MAAMxnF,EAAEA,EAAExiB,EAAEA,EAAEb,EAAE6qG,MAA8B1nF,EAAE,QAA1BA,EAAEpjB,EAAE8qG,MAAMJ,eAAyBumB,GAAG/wH,GAAG,CAAC4vH,UAAU1sG,EAAE0sG,UAAU5vH,EAAE6vH,UAAU,KAAKC,YAAY5sG,EAAE4sG,aAAalvH,EAAE4pG,cAActnF,EAAEtiB,EAAE0kH,WAAWxlH,EAAEwlH,YAAYtlH,EAAED,EAAEyqG,cAAcsmB,GAAU1tG,CAAC,CAAoO,OAAzNtjB,GAAVc,EAAEd,EAAE8qG,OAAUC,QAAQznF,EAAEkhG,GAAG1jH,EAAE,CAAC2J,KAAK,UAAU+wE,SAASl4D,EAAEk4D,WAAW,KAAY,EAAPv7E,EAAEwK,QAAU6Y,EAAEqiG,MAAMzlH,GAAGojB,EAAE03E,OAAO/6F,EAAEqjB,EAAEynF,QAAQ,KAAK,OAAO/qG,IAAkB,QAAdE,EAAED,EAAEkjH,YAAoBljH,EAAEkjH,UAAU,CAACnjH,GAAGC,EAAEuqG,OAAO,IAAItqG,EAAEe,KAAKjB,IAAIC,EAAE6qG,MAAMxnF,EAAErjB,EAAEyqG,cAAc,KAAYpnF,CAAC,CACnd,SAAS+tG,GAAGrxH,EAAEC,GAA8D,OAA3DA,EAAEmxH,GAAG,CAAC3mH,KAAK,UAAU+wE,SAASv7E,GAAGD,EAAEyK,KAAK,EAAE,OAAQuwF,OAAOh7F,EAASA,EAAE8qG,MAAM7qG,CAAC,CAAC,SAASqxH,GAAGtxH,EAAEC,EAAEC,EAAEojB,GAAwG,OAArG,OAAOA,GAAGygG,GAAGzgG,GAAGwhG,GAAG7kH,EAAED,EAAE8qG,MAAM,KAAK5qG,IAAGF,EAAEqxH,GAAGpxH,EAAEA,EAAEojH,aAAa7nC,WAAYgvB,OAAO,EAAEvqG,EAAEyqG,cAAc,KAAY1qG,CAAC,CAGkJ,SAAS8xH,GAAG9xH,EAAEC,EAAEC,GAAGF,EAAE2lH,OAAO1lH,EAAE,IAAIqjB,EAAEtjB,EAAEuqG,UAAU,OAAOjnF,IAAIA,EAAEqiG,OAAO1lH,GAAGslH,GAAGvlH,EAAEg7F,OAAO/6F,EAAEC,EAAE,CACxc,SAAS6xH,GAAG/xH,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,IAAIjC,EAAEd,EAAE0qG,cAAc,OAAO5pG,EAAEd,EAAE0qG,cAAc,CAACsnB,YAAY/xH,EAAEgyH,UAAU,KAAKC,mBAAmB,EAAEC,KAAK7uG,EAAE8uG,KAAKlyH,EAAEmyH,SAAStvH,IAAIjC,EAAEkxH,YAAY/xH,EAAEa,EAAEmxH,UAAU,KAAKnxH,EAAEoxH,mBAAmB,EAAEpxH,EAAEqxH,KAAK7uG,EAAExiB,EAAEsxH,KAAKlyH,EAAEY,EAAEuxH,SAAStvH,EAAE,CAC3O,SAASuvH,GAAGtyH,EAAEC,EAAEC,GAAG,IAAIojB,EAAErjB,EAAEojH,aAAatgH,EAAEugB,EAAEskG,YAAY9mH,EAAEwiB,EAAE8uG,KAAsC,GAAjC9C,GAAGtvH,EAAEC,EAAEqjB,EAAEk4D,SAASt7E,GAAkB,KAAO,GAAtBojB,EAAEokG,GAAEt3B,UAAqB9sE,EAAI,EAAFA,EAAI,EAAErjB,EAAEuqG,OAAO,QAAQ,CAAC,GAAG,OAAOxqG,GAAG,KAAa,IAARA,EAAEwqG,OAAWxqG,EAAE,IAAIA,EAAEC,EAAE6qG,MAAM,OAAO9qG,GAAG,CAAC,GAAG,KAAKA,EAAEmK,IAAI,OAAOnK,EAAE0qG,eAAeonB,GAAG9xH,EAAEE,EAAED,QAAQ,GAAG,KAAKD,EAAEmK,IAAI2nH,GAAG9xH,EAAEE,EAAED,QAAQ,GAAG,OAAOD,EAAE8qG,MAAM,CAAC9qG,EAAE8qG,MAAM9P,OAAOh7F,EAAEA,EAAEA,EAAE8qG,MAAM,QAAQ,CAAC,GAAG9qG,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAE+qG,SAAS,CAAC,GAAG,OAAO/qG,EAAEg7F,QAAQh7F,EAAEg7F,SAAS/6F,EAAE,MAAMD,EAAEA,EAAEA,EAAEg7F,MAAM,CAACh7F,EAAE+qG,QAAQ/P,OAAOh7F,EAAEg7F,OAAOh7F,EAAEA,EAAE+qG,OAAO,CAACznF,GAAG,CAAC,CAAQ,GAAPvhB,GAAE2lH,GAAEpkG,GAAM,KAAY,EAAPrjB,EAAEwK,MAAQxK,EAAEyqG,cAC/e,UAAU,OAAO3nG,GAAG,IAAK,WAAqB,IAAV7C,EAAED,EAAE6qG,MAAU/nG,EAAE,KAAK,OAAO7C,GAAiB,QAAdF,EAAEE,EAAEqqG,YAAoB,OAAOod,GAAG3nH,KAAK+C,EAAE7C,GAAGA,EAAEA,EAAE6qG,QAAY,QAAJ7qG,EAAE6C,IAAYA,EAAE9C,EAAE6qG,MAAM7qG,EAAE6qG,MAAM,OAAO/nG,EAAE7C,EAAE6qG,QAAQ7qG,EAAE6qG,QAAQ,MAAMgnB,GAAG9xH,GAAE,EAAG8C,EAAE7C,EAAEY,GAAG,MAAM,IAAK,YAA6B,IAAjBZ,EAAE,KAAK6C,EAAE9C,EAAE6qG,MAAU7qG,EAAE6qG,MAAM,KAAK,OAAO/nG,GAAG,CAAe,GAAG,QAAjB/C,EAAE+C,EAAEwnG,YAAuB,OAAOod,GAAG3nH,GAAG,CAACC,EAAE6qG,MAAM/nG,EAAE,KAAK,CAAC/C,EAAE+C,EAAEgoG,QAAQhoG,EAAEgoG,QAAQ7qG,EAAEA,EAAE6C,EAAEA,EAAE/C,CAAC,CAAC+xH,GAAG9xH,GAAE,EAAGC,EAAE,KAAKY,GAAG,MAAM,IAAK,WAAWixH,GAAG9xH,GAAE,EAAG,KAAK,UAAK,GAAQ,MAAM,QAAQA,EAAEyqG,cAAc,KAAK,OAAOzqG,EAAE6qG,KAAK,CAC7d,SAASulB,GAAGrwH,EAAEC,GAAG,KAAY,EAAPA,EAAEwK,OAAS,OAAOzK,IAAIA,EAAEuqG,UAAU,KAAKtqG,EAAEsqG,UAAU,KAAKtqG,EAAEuqG,OAAO,EAAE,CAAC,SAASglB,GAAGxvH,EAAEC,EAAEC,GAAyD,GAAtD,OAAOF,IAAIC,EAAEwlH,aAAazlH,EAAEylH,cAAcuB,IAAI/mH,EAAE0lH,MAAS,KAAKzlH,EAAED,EAAEulH,YAAY,OAAO,KAAK,GAAG,OAAOxlH,GAAGC,EAAE6qG,QAAQ9qG,EAAE8qG,MAAM,MAAM50F,MAAM5D,EAAE,MAAM,GAAG,OAAOrS,EAAE6qG,MAAM,CAA4C,IAAjC5qG,EAAEskH,GAAZxkH,EAAEC,EAAE6qG,MAAa9qG,EAAEqjH,cAAcpjH,EAAE6qG,MAAM5qG,EAAMA,EAAE86F,OAAO/6F,EAAE,OAAOD,EAAE+qG,SAAS/qG,EAAEA,EAAE+qG,SAAQ7qG,EAAEA,EAAE6qG,QAAQyZ,GAAGxkH,EAAEA,EAAEqjH,eAAgBroB,OAAO/6F,EAAEC,EAAE6qG,QAAQ,IAAI,CAAC,OAAO9qG,EAAE6qG,KAAK,CAO9a,SAASynB,GAAGvyH,EAAEC,GAAG,IAAI8iH,GAAE,OAAO/iH,EAAEqyH,UAAU,IAAK,SAASpyH,EAAED,EAAEoyH,KAAK,IAAI,IAAIlyH,EAAE,KAAK,OAAOD,GAAG,OAAOA,EAAEsqG,YAAYrqG,EAAED,GAAGA,EAAEA,EAAE8qG,QAAQ,OAAO7qG,EAAEF,EAAEoyH,KAAK,KAAKlyH,EAAE6qG,QAAQ,KAAK,MAAM,IAAK,YAAY7qG,EAAEF,EAAEoyH,KAAK,IAAI,IAAI9uG,EAAE,KAAK,OAAOpjB,GAAG,OAAOA,EAAEqqG,YAAYjnF,EAAEpjB,GAAGA,EAAEA,EAAE6qG,QAAQ,OAAOznF,EAAErjB,GAAG,OAAOD,EAAEoyH,KAAKpyH,EAAEoyH,KAAK,KAAKpyH,EAAEoyH,KAAKrnB,QAAQ,KAAKznF,EAAEynF,QAAQ,KAAK,CAC5U,SAAS9oG,GAAEjC,GAAG,IAAIC,EAAE,OAAOD,EAAEuqG,WAAWvqG,EAAEuqG,UAAUO,QAAQ9qG,EAAE8qG,MAAM5qG,EAAE,EAAEojB,EAAE,EAAE,GAAGrjB,EAAE,IAAI,IAAI8C,EAAE/C,EAAE8qG,MAAM,OAAO/nG,GAAG7C,GAAG6C,EAAE4iH,MAAM5iH,EAAEyiH,WAAWliG,GAAkB,SAAfvgB,EAAE8uH,aAAsBvuG,GAAW,SAARvgB,EAAEynG,MAAeznG,EAAEi4F,OAAOh7F,EAAE+C,EAAEA,EAAEgoG,aAAa,IAAIhoG,EAAE/C,EAAE8qG,MAAM,OAAO/nG,GAAG7C,GAAG6C,EAAE4iH,MAAM5iH,EAAEyiH,WAAWliG,GAAGvgB,EAAE8uH,aAAavuG,GAAGvgB,EAAEynG,MAAMznG,EAAEi4F,OAAOh7F,EAAE+C,EAAEA,EAAEgoG,QAAyC,OAAjC/qG,EAAE6xH,cAAcvuG,EAAEtjB,EAAEwlH,WAAWtlH,EAASD,CAAC,CAC7V,SAASuyH,GAAGxyH,EAAEC,EAAEC,GAAG,IAAIojB,EAAErjB,EAAEojH,aAAmB,OAANT,GAAG3iH,GAAUA,EAAEkK,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAOlI,GAAEhC,GAAG,KAAK,KAAK,EAUtD,KAAK,GAAG,OAAOohH,GAAGphH,EAAEuB,OAAO8/G,KAAKr/G,GAAEhC,GAAG,KAVqD,KAAK,EAA2Q,OAAzQqjB,EAAErjB,EAAEmpG,UAAUme,KAAK94G,GAAEuyG,IAAIvyG,GAAEsyG,IAAG+G,KAAKxkG,EAAEqtG,iBAAiBrtG,EAAEiuD,QAAQjuD,EAAEqtG,eAAertG,EAAEqtG,eAAe,MAAS,OAAO3wH,GAAG,OAAOA,EAAE8qG,QAAM6Y,GAAG1jH,GAAGA,EAAEuqG,OAAO,EAAE,OAAOxqG,GAAGA,EAAE0qG,cAAc8E,cAAc,KAAa,IAARvvG,EAAEuqG,SAAavqG,EAAEuqG,OAAO,KAAK,OAAOwY,KAAKyP,GAAGzP,IAAIA,GAAG,QAAO6N,GAAG7wH,EAAEC,GAAGgC,GAAEhC,GAAU,KAAK,KAAK,EAAEwnH,GAAGxnH,GAAG,IAAI8C,EAAEskH,GAAGD,GAAGh3B,SAC7e,GAATlwF,EAAED,EAAEuB,KAAQ,OAAOxB,GAAG,MAAMC,EAAEmpG,UAAU0nB,GAAG9wH,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG/C,EAAE27F,MAAM17F,EAAE07F,MAAM17F,EAAEuqG,OAAO,IAAIvqG,EAAEuqG,OAAO,aAAa,CAAC,IAAIlnF,EAAE,CAAC,GAAG,OAAOrjB,EAAEmpG,UAAU,MAAMlzF,MAAM5D,EAAE,MAAW,OAALrQ,GAAEhC,GAAU,IAAI,CAAkB,GAAjBD,EAAEqnH,GAAGH,GAAG92B,SAAYuzB,GAAG1jH,GAAG,CAACqjB,EAAErjB,EAAEmpG,UAAUlpG,EAAED,EAAEuB,KAAK,IAAIV,EAAEb,EAAE2jH,cAA+C,OAAjCtgG,EAAEi9F,IAAItgH,EAAEqjB,EAAEk9F,IAAI1/G,EAAEd,EAAE,KAAY,EAAPC,EAAEwK,MAAevK,GAAG,IAAK,SAAS1B,GAAE,SAAS8kB,GAAG9kB,GAAE,QAAQ8kB,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ9kB,GAAE,OAAO8kB,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIvgB,EAAE,EAAEA,EAAEy6G,GAAGjhH,OAAOwG,IAAIvE,GAAEg/G,GAAGz6G,GAAGugB,GAAG,MAAM,IAAK,SAAS9kB,GAAE,QAAQ8kB,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO9kB,GAAE,QACnhB8kB,GAAG9kB,GAAE,OAAO8kB,GAAG,MAAM,IAAK,UAAU9kB,GAAE,SAAS8kB,GAAG,MAAM,IAAK,QAAQggF,EAAGhgF,EAAExiB,GAAGtC,GAAE,UAAU8kB,GAAG,MAAM,IAAK,SAASA,EAAE8/E,cAAc,CAACsvB,cAAc5xH,EAAE6xH,UAAUn0H,GAAE,UAAU8kB,GAAG,MAAM,IAAK,WAAW6gF,GAAG7gF,EAAExiB,GAAGtC,GAAE,UAAU8kB,GAAkB,IAAI,IAAIF,KAAvBqlF,GAAGvoG,EAAEY,GAAGiC,EAAE,KAAkBjC,EAAE,GAAGA,EAAEzD,eAAe+lB,GAAG,CAAC,IAAIhR,EAAEtR,EAAEsiB,GAAG,aAAaA,EAAE,kBAAkBhR,EAAEkR,EAAEnP,cAAc/B,KAAI,IAAKtR,EAAE8xH,0BAA0B1T,GAAG57F,EAAEnP,YAAY/B,EAAEpS,GAAG+C,EAAE,CAAC,WAAWqP,IAAI,kBAAkBA,GAAGkR,EAAEnP,cAAc,GAAG/B,KAAI,IAAKtR,EAAE8xH,0BAA0B1T,GAAG57F,EAAEnP,YAC1e/B,EAAEpS,GAAG+C,EAAE,CAAC,WAAW,GAAGqP,IAAI2sF,EAAG1hG,eAAe+lB,IAAI,MAAMhR,GAAG,aAAagR,GAAG5kB,GAAE,SAAS8kB,EAAE,CAAC,OAAOpjB,GAAG,IAAK,QAAQsiG,EAAGl/E,GAAGqgF,EAAGrgF,EAAExiB,GAAE,GAAI,MAAM,IAAK,WAAW0hG,EAAGl/E,GAAG+gF,GAAG/gF,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBxiB,EAAE+xH,UAAUvvG,EAAEwvG,QAAQ3T,IAAI77F,EAAEvgB,EAAE9C,EAAEomH,YAAY/iG,EAAE,OAAOA,IAAIrjB,EAAEuqG,OAAO,EAAE,KAAK,CAACpnF,EAAE,IAAIrgB,EAAEgiG,SAAShiG,EAAEA,EAAE6gG,cAAc,iCAAiC5jG,IAAIA,EAAEskG,GAAGpkG,IAAI,iCAAiCF,EAAE,WAAWE,IAAGF,EAAEojB,EAAE7iB,cAAc,QAAS6T,UAAU,qBAAuBpU,EAAEA,EAAEwpD,YAAYxpD,EAAE2kG,aAC/f,kBAAkBrhF,EAAEhjB,GAAGN,EAAEojB,EAAE7iB,cAAcL,EAAE,CAACI,GAAGgjB,EAAEhjB,MAAMN,EAAEojB,EAAE7iB,cAAcL,GAAG,WAAWA,IAAIkjB,EAAEpjB,EAAEsjB,EAAEqvG,SAASvvG,EAAEuvG,UAAS,EAAGrvG,EAAE8gC,OAAOhhC,EAAEghC,KAAK9gC,EAAE8gC,QAAQpkD,EAAEojB,EAAEuB,gBAAgB3kB,EAAEE,GAAGF,EAAEugH,IAAItgH,EAAED,EAAEwgH,IAAIl9F,EAAEstG,GAAG5wH,EAAEC,GAAE,GAAG,GAAIA,EAAEmpG,UAAUppG,EAAEA,EAAE,CAAW,OAAVojB,EAAEslF,GAAGxoG,EAAEojB,GAAUpjB,GAAG,IAAK,SAAS1B,GAAE,SAASwB,GAAGxB,GAAE,QAAQwB,GAAG+C,EAAEugB,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ9kB,GAAE,OAAOwB,GAAG+C,EAAEugB,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIvgB,EAAE,EAAEA,EAAEy6G,GAAGjhH,OAAOwG,IAAIvE,GAAEg/G,GAAGz6G,GAAG/C,GAAG+C,EAAEugB,EAAE,MAAM,IAAK,SAAS9kB,GAAE,QAAQwB,GAAG+C,EAAEugB,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO9kB,GAAE,QAClfwB,GAAGxB,GAAE,OAAOwB,GAAG+C,EAAEugB,EAAE,MAAM,IAAK,UAAU9kB,GAAE,SAASwB,GAAG+C,EAAEugB,EAAE,MAAM,IAAK,QAAQggF,EAAGtjG,EAAEsjB,GAAGvgB,EAAEkgG,EAAGjjG,EAAEsjB,GAAG9kB,GAAE,UAAUwB,GAAG,MAAM,IAAK,SAAiL,QAAQ+C,EAAEugB,QAAxK,IAAK,SAAStjB,EAAEojG,cAAc,CAACsvB,cAAcpvG,EAAEqvG,UAAU5vH,EAAEiE,EAAE,CAAC,EAAEsc,EAAE,CAACxlB,WAAM,IAASU,GAAE,UAAUwB,GAAG,MAAM,IAAK,WAAWmkG,GAAGnkG,EAAEsjB,GAAGvgB,EAAEkhG,GAAGjkG,EAAEsjB,GAAG9kB,GAAE,UAAUwB,GAAiC,IAAIc,KAAhB2nG,GAAGvoG,EAAE6C,GAAGqP,EAAErP,EAAa,GAAGqP,EAAE/U,eAAeyD,GAAG,CAAC,IAAIsG,EAAEgL,EAAEtR,GAAG,UAAUA,EAAE4mG,GAAG1nG,EAAEoH,GAAG,4BAA4BtG,EAAuB,OAApBsG,EAAEA,EAAEA,EAAEm4G,YAAO,IAAgB9a,GAAGzkG,EAAEoH,GAAI,aAAatG,EAAE,kBAAkBsG,GAAG,aAC7elH,GAAG,KAAKkH,IAAImmB,GAAGvtB,EAAEoH,GAAG,kBAAkBA,GAAGmmB,GAAGvtB,EAAE,GAAGoH,GAAG,mCAAmCtG,GAAG,6BAA6BA,GAAG,cAAcA,IAAIi+F,EAAG1hG,eAAeyD,GAAG,MAAMsG,GAAG,aAAatG,GAAGtC,GAAE,SAASwB,GAAG,MAAMoH,GAAG24F,EAAG//F,EAAEc,EAAEsG,EAAEgc,GAAG,CAAC,OAAOljB,GAAG,IAAK,QAAQsiG,EAAGxiG,GAAG2jG,EAAG3jG,EAAEsjB,GAAE,GAAI,MAAM,IAAK,WAAWk/E,EAAGxiG,GAAGqkG,GAAGrkG,GAAG,MAAM,IAAK,SAAS,MAAMsjB,EAAExlB,OAAOkC,EAAE45B,aAAa,QAAQ,GAAGyoE,EAAG/+E,EAAExlB,QAAQ,MAAM,IAAK,SAASkC,EAAE2yH,WAAWrvG,EAAEqvG,SAAmB,OAAV7xH,EAAEwiB,EAAExlB,OAAcslE,GAAGpjE,IAAIsjB,EAAEqvG,SAAS7xH,GAAE,GAAI,MAAMwiB,EAAE6/E,cAAc//B,GAAGpjE,IAAIsjB,EAAEqvG,SAASrvG,EAAE6/E,cAClf,GAAI,MAAM,QAAQ,oBAAoBpgG,EAAE8vH,UAAU7yH,EAAE8yH,QAAQ3T,IAAI,OAAOj/G,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWojB,IAAIA,EAAEyvG,UAAU,MAAM/yH,EAAE,IAAK,MAAMsjB,GAAE,EAAG,MAAMtjB,EAAE,QAAQsjB,GAAE,EAAG,CAACA,IAAIrjB,EAAEuqG,OAAO,EAAE,CAAC,OAAOvqG,EAAE07F,MAAM17F,EAAEuqG,OAAO,IAAIvqG,EAAEuqG,OAAO,QAAQ,CAAM,OAALvoG,GAAEhC,GAAU,KAAK,KAAK,EAAE,GAAGD,GAAG,MAAMC,EAAEmpG,UAAU2nB,GAAG/wH,EAAEC,EAAED,EAAE4jH,cAActgG,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOrjB,EAAEmpG,UAAU,MAAMlzF,MAAM5D,EAAE,MAAsC,GAAhCpS,EAAEmnH,GAAGD,GAAGh3B,SAASi3B,GAAGH,GAAG92B,SAAYuzB,GAAG1jH,GAAG,CAAyC,GAAxCqjB,EAAErjB,EAAEmpG,UAAUlpG,EAAED,EAAE2jH,cAActgG,EAAEi9F,IAAItgH,GAAKa,EAAEwiB,EAAE0hF,YAAY9kG,IAC/e,QADofF,EACvf6iH,IAAY,OAAO7iH,EAAEmK,KAAK,KAAK,EAAE+0G,GAAG57F,EAAE0hF,UAAU9kG,EAAE,KAAY,EAAPF,EAAEyK,OAAS,MAAM,KAAK,GAAE,IAAKzK,EAAE4jH,cAAcgP,0BAA0B1T,GAAG57F,EAAE0hF,UAAU9kG,EAAE,KAAY,EAAPF,EAAEyK,OAAS3J,IAAIb,EAAEuqG,OAAO,EAAE,MAAMlnF,GAAG,IAAIpjB,EAAE6kG,SAAS7kG,EAAEA,EAAE0jG,eAAeovB,eAAe1vG,IAAKi9F,IAAItgH,EAAEA,EAAEmpG,UAAU9lF,CAAC,CAAM,OAALrhB,GAAEhC,GAAU,KAAK,KAAK,GAA0B,GAAvBwO,GAAEi5G,IAAGpkG,EAAErjB,EAAEyqG,cAAiB,OAAO1qG,GAAG,OAAOA,EAAE0qG,eAAe,OAAO1qG,EAAE0qG,cAAcC,WAAW,CAAC,GAAGoY,IAAG,OAAOD,IAAI,KAAY,EAAP7iH,EAAEwK,OAAS,KAAa,IAARxK,EAAEuqG,OAAWqZ,KAAKC,KAAK7jH,EAAEuqG,OAAO,MAAM1pG,GAAE,OAAQ,GAAGA,EAAE6iH,GAAG1jH,GAAG,OAAOqjB,GAAG,OAAOA,EAAEqnF,WAAW,CAAC,GAAG,OAC5f3qG,EAAE,CAAC,IAAIc,EAAE,MAAMoV,MAAM5D,EAAE,MAAqD,KAA7BxR,EAAE,QAApBA,EAAEb,EAAEyqG,eAAyB5pG,EAAE6pG,WAAW,MAAW,MAAMz0F,MAAM5D,EAAE,MAAMxR,EAAEy/G,IAAItgH,CAAC,MAAM6jH,KAAK,KAAa,IAAR7jH,EAAEuqG,SAAavqG,EAAEyqG,cAAc,MAAMzqG,EAAEuqG,OAAO,EAAEvoG,GAAEhC,GAAGa,GAAE,CAAE,MAAM,OAAOkiH,KAAKyP,GAAGzP,IAAIA,GAAG,MAAMliH,GAAE,EAAG,IAAIA,EAAE,OAAe,MAARb,EAAEuqG,MAAYvqG,EAAE,IAAI,CAAC,OAAG,KAAa,IAARA,EAAEuqG,QAAkBvqG,EAAE0lH,MAAMzlH,EAAED,KAAEqjB,EAAE,OAAOA,MAAO,OAAOtjB,GAAG,OAAOA,EAAE0qG,gBAAgBpnF,IAAIrjB,EAAE6qG,MAAMN,OAAO,KAAK,KAAY,EAAPvqG,EAAEwK,QAAU,OAAOzK,GAAG,KAAe,EAAV0nH,GAAEt3B,SAAW,IAAI9oF,KAAIA,GAAE,GAAGmqH,OAAO,OAAOxxH,EAAEomH,cAAcpmH,EAAEuqG,OAAO,GAAGvoG,GAAEhC,GAAU,MAAK,KAAK,EAAE,OAAOsnH,KACrfsJ,GAAG7wH,EAAEC,GAAG,OAAOD,GAAG+9G,GAAG99G,EAAEmpG,UAAUqG,eAAextG,GAAEhC,GAAG,KAAK,KAAK,GAAG,OAAOolH,GAAGplH,EAAEuB,KAAKygG,UAAUhgG,GAAEhC,GAAG,KAA+C,KAAK,GAA0B,GAAvBwO,GAAEi5G,IAAwB,QAArB5mH,EAAEb,EAAEyqG,eAA0B,OAAOzoG,GAAEhC,GAAG,KAAuC,GAAlCqjB,EAAE,KAAa,IAARrjB,EAAEuqG,OAA4B,QAAjBpnF,EAAEtiB,EAAEmxH,WAAsB,GAAG3uG,EAAEivG,GAAGzxH,GAAE,OAAQ,CAAC,GAAG,IAAIwG,IAAG,OAAOtH,GAAG,KAAa,IAARA,EAAEwqG,OAAW,IAAIxqG,EAAEC,EAAE6qG,MAAM,OAAO9qG,GAAG,CAAS,GAAG,QAAXojB,EAAEukG,GAAG3nH,IAAe,CAAmG,IAAlGC,EAAEuqG,OAAO,IAAI+nB,GAAGzxH,GAAE,GAAoB,QAAhBwiB,EAAEF,EAAEijG,eAAuBpmH,EAAEomH,YAAY/iG,EAAErjB,EAAEuqG,OAAO,GAAGvqG,EAAE4xH,aAAa,EAAEvuG,EAAEpjB,EAAMA,EAAED,EAAE6qG,MAAM,OAAO5qG,GAAOF,EAAEsjB,GAANxiB,EAAEZ,GAAQsqG,OAAO,SAC/d,QAAdpnF,EAAEtiB,EAAEypG,YAAoBzpG,EAAE0kH,WAAW,EAAE1kH,EAAE6kH,MAAM3lH,EAAEc,EAAEgqG,MAAM,KAAKhqG,EAAE+wH,aAAa,EAAE/wH,EAAE8iH,cAAc,KAAK9iH,EAAE4pG,cAAc,KAAK5pG,EAAEulH,YAAY,KAAKvlH,EAAE2kH,aAAa,KAAK3kH,EAAEsoG,UAAU,OAAOtoG,EAAE0kH,WAAWpiG,EAAEoiG,WAAW1kH,EAAE6kH,MAAMviG,EAAEuiG,MAAM7kH,EAAEgqG,MAAM1nF,EAAE0nF,MAAMhqG,EAAE+wH,aAAa,EAAE/wH,EAAEqiH,UAAU,KAAKriH,EAAE8iH,cAAcxgG,EAAEwgG,cAAc9iH,EAAE4pG,cAActnF,EAAEsnF,cAAc5pG,EAAEulH,YAAYjjG,EAAEijG,YAAYvlH,EAAEU,KAAK4hB,EAAE5hB,KAAKxB,EAAEojB,EAAEqiG,aAAa3kH,EAAE2kH,aAAa,OAAOzlH,EAAE,KAAK,CAAC2lH,MAAM3lH,EAAE2lH,MAAMD,aAAa1lH,EAAE0lH,eAAexlH,EAAEA,EAAE6qG,QAA2B,OAAnBhpG,GAAE2lH,GAAY,EAAVA,GAAEt3B,QAAU,GAAUnwF,EAAE6qG,KAAK,CAAC9qG,EAClgBA,EAAE+qG,OAAO,CAAC,OAAOjqG,EAAEsxH,MAAMhwH,KAAI6wH,KAAKhzH,EAAEuqG,OAAO,IAAIlnF,GAAE,EAAGivG,GAAGzxH,GAAE,GAAIb,EAAE0lH,MAAM,QAAQ,KAAK,CAAC,IAAIriG,EAAE,GAAW,QAARtjB,EAAE2nH,GAAGvkG,KAAa,GAAGnjB,EAAEuqG,OAAO,IAAIlnF,GAAE,EAAmB,QAAhBpjB,EAAEF,EAAEqmH,eAAuBpmH,EAAEomH,YAAYnmH,EAAED,EAAEuqG,OAAO,GAAG+nB,GAAGzxH,GAAE,GAAI,OAAOA,EAAEsxH,MAAM,WAAWtxH,EAAEuxH,WAAWjvG,EAAEmnF,YAAYwY,GAAE,OAAO9gH,GAAEhC,GAAG,UAAU,EAAEmC,KAAItB,EAAEoxH,mBAAmBe,IAAI,aAAa/yH,IAAID,EAAEuqG,OAAO,IAAIlnF,GAAE,EAAGivG,GAAGzxH,GAAE,GAAIb,EAAE0lH,MAAM,SAAS7kH,EAAEkxH,aAAa5uG,EAAE2nF,QAAQ9qG,EAAE6qG,MAAM7qG,EAAE6qG,MAAM1nF,IAAa,QAATljB,EAAEY,EAAEqxH,MAAcjyH,EAAE6qG,QAAQ3nF,EAAEnjB,EAAE6qG,MAAM1nF,EAAEtiB,EAAEqxH,KAAK/uG,EAAE,CAAC,OAAG,OAAOtiB,EAAEsxH,MAAYnyH,EAAEa,EAAEsxH,KAAKtxH,EAAEmxH,UAC9ehyH,EAAEa,EAAEsxH,KAAKnyH,EAAE8qG,QAAQjqG,EAAEoxH,mBAAmB9vH,KAAInC,EAAE8qG,QAAQ,KAAK7qG,EAAEwnH,GAAEt3B,QAAQruF,GAAE2lH,GAAEpkG,EAAI,EAAFpjB,EAAI,EAAI,EAAFA,GAAKD,IAAEgC,GAAEhC,GAAU,MAAK,KAAK,GAAG,KAAK,GAAG,OAAOizH,KAAK5vG,EAAE,OAAOrjB,EAAEyqG,cAAc,OAAO1qG,GAAG,OAAOA,EAAE0qG,gBAAgBpnF,IAAIrjB,EAAEuqG,OAAO,MAAMlnF,GAAG,KAAY,EAAPrjB,EAAEwK,MAAQ,KAAQ,WAAHylH,MAAiBjuH,GAAEhC,GAAkB,EAAfA,EAAE4xH,eAAiB5xH,EAAEuqG,OAAO,OAAOvoG,GAAEhC,GAAG,KAAK,KAAK,GAAe,KAAK,GAAG,OAAO,KAAK,MAAMiW,MAAM5D,EAAE,IAAIrS,EAAEkK,KAAM,CAClX,SAASgpH,GAAGnzH,EAAEC,GAAS,OAAN2iH,GAAG3iH,GAAUA,EAAEkK,KAAK,KAAK,EAAE,OAAOk3G,GAAGphH,EAAEuB,OAAO8/G,KAAiB,OAAZthH,EAAEC,EAAEuqG,QAAevqG,EAAEuqG,OAAS,MAAHxqG,EAAS,IAAIC,GAAG,KAAK,KAAK,EAAE,OAAOsnH,KAAK94G,GAAEuyG,IAAIvyG,GAAEsyG,IAAG+G,KAAe,KAAO,OAAjB9nH,EAAEC,EAAEuqG,SAAqB,KAAO,IAAFxqG,IAAQC,EAAEuqG,OAAS,MAAHxqG,EAAS,IAAIC,GAAG,KAAK,KAAK,EAAE,OAAOwnH,GAAGxnH,GAAG,KAAK,KAAK,GAA0B,GAAvBwO,GAAEi5G,IAAwB,QAArB1nH,EAAEC,EAAEyqG,gBAA2B,OAAO1qG,EAAE2qG,WAAW,CAAC,GAAG,OAAO1qG,EAAEsqG,UAAU,MAAMr0F,MAAM5D,EAAE,MAAMwxG,IAAI,CAAW,OAAS,OAAnB9jH,EAAEC,EAAEuqG,QAAsBvqG,EAAEuqG,OAAS,MAAHxqG,EAAS,IAAIC,GAAG,KAAK,KAAK,GAAG,OAAOwO,GAAEi5G,IAAG,KAAK,KAAK,EAAE,OAAOH,KAAK,KAAK,KAAK,GAAG,OAAOlC,GAAGplH,EAAEuB,KAAKygG,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOixB,KAC1gB,KAAyB,QAAQ,OAAO,KAAK,CArB7CtC,GAAG,SAAS5wH,EAAEC,GAAG,IAAI,IAAIC,EAAED,EAAE6qG,MAAM,OAAO5qG,GAAG,CAAC,GAAG,IAAIA,EAAEiK,KAAK,IAAIjK,EAAEiK,IAAInK,EAAE2uB,YAAYzuB,EAAEkpG,gBAAgB,GAAG,IAAIlpG,EAAEiK,KAAK,OAAOjK,EAAE4qG,MAAM,CAAC5qG,EAAE4qG,MAAM9P,OAAO96F,EAAEA,EAAEA,EAAE4qG,MAAM,QAAQ,CAAC,GAAG5qG,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAE6qG,SAAS,CAAC,GAAG,OAAO7qG,EAAE86F,QAAQ96F,EAAE86F,SAAS/6F,EAAE,OAAOC,EAAEA,EAAE86F,MAAM,CAAC96F,EAAE6qG,QAAQ/P,OAAO96F,EAAE86F,OAAO96F,EAAEA,EAAE6qG,OAAO,CAAC,EAAE8lB,GAAG,WAAW,EACxTC,GAAG,SAAS9wH,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAE/C,EAAE4jH,cAAc,GAAG7gH,IAAIugB,EAAE,CAACtjB,EAAEC,EAAEmpG,UAAUie,GAAGH,GAAG92B,SAAS,IAA4RhtE,EAAxRtiB,EAAE,KAAK,OAAOZ,GAAG,IAAK,QAAQ6C,EAAEkgG,EAAGjjG,EAAE+C,GAAGugB,EAAE2/E,EAAGjjG,EAAEsjB,GAAGxiB,EAAE,GAAG,MAAM,IAAK,SAASiC,EAAEiE,EAAE,CAAC,EAAEjE,EAAE,CAACjF,WAAM,IAASwlB,EAAEtc,EAAE,CAAC,EAAEsc,EAAE,CAACxlB,WAAM,IAASgD,EAAE,GAAG,MAAM,IAAK,WAAWiC,EAAEkhG,GAAGjkG,EAAE+C,GAAGugB,EAAE2gF,GAAGjkG,EAAEsjB,GAAGxiB,EAAE,GAAG,MAAM,QAAQ,oBAAoBiC,EAAE8vH,SAAS,oBAAoBvvG,EAAEuvG,UAAU7yH,EAAE8yH,QAAQ3T,IAAyB,IAAIl0G,KAAzBw9F,GAAGvoG,EAAEojB,GAASpjB,EAAE,KAAc6C,EAAE,IAAIugB,EAAEjmB,eAAe4N,IAAIlI,EAAE1F,eAAe4N,IAAI,MAAMlI,EAAEkI,GAAG,GAAG,UAAUA,EAAE,CAAC,IAAImH,EAAErP,EAAEkI,GAAG,IAAImY,KAAKhR,EAAEA,EAAE/U,eAAe+lB,KACjfljB,IAAIA,EAAE,CAAC,GAAGA,EAAEkjB,GAAG,GAAG,KAAK,4BAA4BnY,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAI8zF,EAAG1hG,eAAe4N,GAAGnK,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIG,KAAKgK,EAAE,OAAO,IAAIA,KAAKqY,EAAE,CAAC,IAAIlc,EAAEkc,EAAErY,GAAyB,GAAtBmH,EAAE,MAAMrP,EAAEA,EAAEkI,QAAG,EAAUqY,EAAEjmB,eAAe4N,IAAI7D,IAAIgL,IAAI,MAAMhL,GAAG,MAAMgL,GAAG,GAAG,UAAUnH,EAAE,GAAGmH,EAAE,CAAC,IAAIgR,KAAKhR,GAAGA,EAAE/U,eAAe+lB,IAAIhc,GAAGA,EAAE/J,eAAe+lB,KAAKljB,IAAIA,EAAE,CAAC,GAAGA,EAAEkjB,GAAG,IAAI,IAAIA,KAAKhc,EAAEA,EAAE/J,eAAe+lB,IAAIhR,EAAEgR,KAAKhc,EAAEgc,KAAKljB,IAAIA,EAAE,CAAC,GAAGA,EAAEkjB,GAAGhc,EAAEgc,GAAG,MAAMljB,IAAIY,IAAIA,EAAE,IAAIA,EAAEG,KAAKgK,EACpf/K,IAAIA,EAAEkH,MAAM,4BAA4B6D,GAAG7D,EAAEA,EAAEA,EAAEm4G,YAAO,EAAOntG,EAAEA,EAAEA,EAAEmtG,YAAO,EAAO,MAAMn4G,GAAGgL,IAAIhL,IAAItG,EAAEA,GAAG,IAAIG,KAAKgK,EAAE7D,IAAI,aAAa6D,EAAE,kBAAkB7D,GAAG,kBAAkBA,IAAItG,EAAEA,GAAG,IAAIG,KAAKgK,EAAE,GAAG7D,GAAG,mCAAmC6D,GAAG,6BAA6BA,IAAI8zF,EAAG1hG,eAAe4N,IAAI,MAAM7D,GAAG,aAAa6D,GAAGzM,GAAE,SAASwB,GAAGc,GAAGsR,IAAIhL,IAAItG,EAAE,MAAMA,EAAEA,GAAG,IAAIG,KAAKgK,EAAE7D,GAAG,CAAClH,IAAIY,EAAEA,GAAG,IAAIG,KAAK,QAAQf,GAAG,IAAI+K,EAAEnK,GAAKb,EAAEomH,YAAYp7G,KAAEhL,EAAEuqG,OAAO,EAAC,CAAC,EAAEumB,GAAG,SAAS/wH,EAAEC,EAAEC,EAAEojB,GAAGpjB,IAAIojB,IAAIrjB,EAAEuqG,OAAO,EAAE,EAkBlb,IAAI4oB,IAAG,EAAGvwH,IAAE,EAAGwwH,GAAG,oBAAoBC,QAAQA,QAAQx0B,IAAIy0B,GAAE,KAAK,SAASC,GAAGxzH,EAAEC,GAAG,IAAIC,EAAEF,EAAE27F,IAAI,GAAG,OAAOz7F,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAMojB,GAAGhhB,GAAEtC,EAAEC,EAAEqjB,EAAE,MAAMpjB,EAAEkwF,QAAQ,IAAI,CAAC,SAASqjC,GAAGzzH,EAAEC,EAAEC,GAAG,IAAIA,GAAG,CAAC,MAAMojB,GAAGhhB,GAAEtC,EAAEC,EAAEqjB,EAAE,CAAC,CAAC,IAAIowG,IAAG,EAIxR,SAASC,GAAG3zH,EAAEC,EAAEC,GAAG,IAAIojB,EAAErjB,EAAEomH,YAAyC,GAAG,QAAhC/iG,EAAE,OAAOA,EAAEA,EAAEgnG,WAAW,MAAiB,CAAC,IAAIvnH,EAAEugB,EAAEA,EAAEvf,KAAK,EAAE,CAAC,IAAIhB,EAAEoH,IAAInK,KAAKA,EAAE,CAAC,IAAIc,EAAEiC,EAAE2S,QAAQ3S,EAAE2S,aAAQ,OAAO,IAAS5U,GAAG2yH,GAAGxzH,EAAEC,EAAEY,EAAE,CAACiC,EAAEA,EAAEgB,IAAI,OAAOhB,IAAIugB,EAAE,CAAC,CAAC,SAASswG,GAAG5zH,EAAEC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEomH,aAAuBpmH,EAAEqqH,WAAW,MAAiB,CAAC,IAAIpqH,EAAED,EAAEA,EAAE8D,KAAK,EAAE,CAAC,IAAI7D,EAAEiK,IAAInK,KAAKA,EAAE,CAAC,IAAIsjB,EAAEpjB,EAAEzB,OAAOyB,EAAEwV,QAAQ4N,GAAG,CAACpjB,EAAEA,EAAE6D,IAAI,OAAO7D,IAAID,EAAE,CAAC,CAAC,SAAS4zH,GAAG7zH,GAAG,IAAIC,EAAED,EAAE27F,IAAI,GAAG,OAAO17F,EAAE,CAAC,IAAIC,EAAEF,EAAEopG,UAAiBppG,EAAEmK,IAA8BnK,EAAEE,EAAE,oBAAoBD,EAAEA,EAAED,GAAGC,EAAEmwF,QAAQpwF,CAAC,CAAC,CAClf,SAAS8zH,GAAG9zH,GAAG,IAAIC,EAAED,EAAEuqG,UAAU,OAAOtqG,IAAID,EAAEuqG,UAAU,KAAKupB,GAAG7zH,IAAID,EAAE8qG,MAAM,KAAK9qG,EAAEmjH,UAAU,KAAKnjH,EAAE+qG,QAAQ,KAAK,IAAI/qG,EAAEmK,MAAoB,QAAdlK,EAAED,EAAEopG,oBAA4BnpG,EAAEsgH,WAAWtgH,EAAEugH,WAAWvgH,EAAEw7D,WAAWx7D,EAAEwgH,WAAWxgH,EAAEygH,MAAM1gH,EAAEopG,UAAU,KAAKppG,EAAEg7F,OAAO,KAAKh7F,EAAEylH,aAAa,KAAKzlH,EAAE4jH,cAAc,KAAK5jH,EAAE0qG,cAAc,KAAK1qG,EAAEqjH,aAAa,KAAKrjH,EAAEopG,UAAU,KAAKppG,EAAEqmH,YAAY,IAAI,CAAC,SAAS0N,GAAG/zH,GAAG,OAAO,IAAIA,EAAEmK,KAAK,IAAInK,EAAEmK,KAAK,IAAInK,EAAEmK,GAAG,CACna,SAAS6pH,GAAGh0H,GAAGA,EAAE,OAAO,CAAC,KAAK,OAAOA,EAAE+qG,SAAS,CAAC,GAAG,OAAO/qG,EAAEg7F,QAAQ+4B,GAAG/zH,EAAEg7F,QAAQ,OAAO,KAAKh7F,EAAEA,EAAEg7F,MAAM,CAA2B,IAA1Bh7F,EAAE+qG,QAAQ/P,OAAOh7F,EAAEg7F,OAAWh7F,EAAEA,EAAE+qG,QAAQ,IAAI/qG,EAAEmK,KAAK,IAAInK,EAAEmK,KAAK,KAAKnK,EAAEmK,KAAK,CAAC,GAAW,EAARnK,EAAEwqG,MAAQ,SAASxqG,EAAE,GAAG,OAAOA,EAAE8qG,OAAO,IAAI9qG,EAAEmK,IAAI,SAASnK,EAAOA,EAAE8qG,MAAM9P,OAAOh7F,EAAEA,EAAEA,EAAE8qG,KAAK,CAAC,KAAa,EAAR9qG,EAAEwqG,OAAS,OAAOxqG,EAAEopG,SAAS,CAAC,CACzT,SAAS6qB,GAAGj0H,EAAEC,EAAEC,GAAG,IAAIojB,EAAEtjB,EAAEmK,IAAI,GAAG,IAAImZ,GAAG,IAAIA,EAAEtjB,EAAEA,EAAEopG,UAAUnpG,EAAE,IAAIC,EAAE6kG,SAAS7kG,EAAE2kD,WAAWioB,aAAa9sE,EAAEC,GAAGC,EAAE4sE,aAAa9sE,EAAEC,IAAI,IAAIC,EAAE6kG,UAAU9kG,EAAEC,EAAE2kD,YAAaioB,aAAa9sE,EAAEE,IAAKD,EAAEC,GAAIyuB,YAAY3uB,GAA4B,QAAxBE,EAAEA,EAAEg0H,2BAA8B,IAASh0H,GAAG,OAAOD,EAAE6yH,UAAU7yH,EAAE6yH,QAAQ3T,UAAU,GAAG,IAAI77F,GAAc,QAAVtjB,EAAEA,EAAE8qG,OAAgB,IAAImpB,GAAGj0H,EAAEC,EAAEC,GAAGF,EAAEA,EAAE+qG,QAAQ,OAAO/qG,GAAGi0H,GAAGj0H,EAAEC,EAAEC,GAAGF,EAAEA,EAAE+qG,OAAO,CAC1X,SAASopB,GAAGn0H,EAAEC,EAAEC,GAAG,IAAIojB,EAAEtjB,EAAEmK,IAAI,GAAG,IAAImZ,GAAG,IAAIA,EAAEtjB,EAAEA,EAAEopG,UAAUnpG,EAAEC,EAAE4sE,aAAa9sE,EAAEC,GAAGC,EAAEyuB,YAAY3uB,QAAQ,GAAG,IAAIsjB,GAAc,QAAVtjB,EAAEA,EAAE8qG,OAAgB,IAAIqpB,GAAGn0H,EAAEC,EAAEC,GAAGF,EAAEA,EAAE+qG,QAAQ,OAAO/qG,GAAGm0H,GAAGn0H,EAAEC,EAAEC,GAAGF,EAAEA,EAAE+qG,OAAO,CAAC,IAAIqpB,GAAE,KAAKC,IAAG,EAAG,SAASC,GAAGt0H,EAAEC,EAAEC,GAAG,IAAIA,EAAEA,EAAE4qG,MAAM,OAAO5qG,GAAGq0H,GAAGv0H,EAAEC,EAAEC,GAAGA,EAAEA,EAAE6qG,OAAO,CACnR,SAASwpB,GAAGv0H,EAAEC,EAAEC,GAAG,GAAGs7D,IAAI,oBAAoBA,GAAGg5D,qBAAqB,IAAIh5D,GAAGg5D,qBAAqBloB,GAAGpsG,EAAE,CAAC,MAAMkS,GAAG,CAAC,OAAOlS,EAAEiK,KAAK,KAAK,EAAEtH,IAAG2wH,GAAGtzH,EAAED,GAAG,KAAK,EAAE,IAAIqjB,EAAE8wG,GAAErxH,EAAEsxH,GAAGD,GAAE,KAAKE,GAAGt0H,EAAEC,EAAEC,GAAOm0H,GAAGtxH,EAAE,QAATqxH,GAAE9wG,KAAkB+wG,IAAIr0H,EAAEo0H,GAAEl0H,EAAEA,EAAEkpG,UAAU,IAAIppG,EAAE+kG,SAAS/kG,EAAE6kD,WAAW2E,YAAYtpD,GAAGF,EAAEwpD,YAAYtpD,IAAIk0H,GAAE5qE,YAAYtpD,EAAEkpG,YAAY,MAAM,KAAK,GAAG,OAAOgrB,KAAIC,IAAIr0H,EAAEo0H,GAAEl0H,EAAEA,EAAEkpG,UAAU,IAAIppG,EAAE+kG,SAASmb,GAAGlgH,EAAE6kD,WAAW3kD,GAAG,IAAIF,EAAE+kG,UAAUmb,GAAGlgH,EAAEE,GAAG8vG,GAAGhwG,IAAIkgH,GAAGkU,GAAEl0H,EAAEkpG,YAAY,MAAM,KAAK,EAAE9lF,EAAE8wG,GAAErxH,EAAEsxH,GAAGD,GAAEl0H,EAAEkpG,UAAUqG,cAAc4kB,IAAG,EAClfC,GAAGt0H,EAAEC,EAAEC,GAAGk0H,GAAE9wG,EAAE+wG,GAAGtxH,EAAE,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIF,KAAoB,QAAhBygB,EAAEpjB,EAAEmmH,cAAsC,QAAf/iG,EAAEA,EAAEgnG,aAAsB,CAACvnH,EAAEugB,EAAEA,EAAEvf,KAAK,EAAE,CAAC,IAAIjD,EAAEiC,EAAEqgB,EAAEtiB,EAAE4U,QAAQ5U,EAAEA,EAAEqJ,SAAI,IAASiZ,IAAI,KAAO,EAAFtiB,IAAe,KAAO,EAAFA,KAAf2yH,GAAGvzH,EAAED,EAAEmjB,GAAyBrgB,EAAEA,EAAEgB,IAAI,OAAOhB,IAAIugB,EAAE,CAACgxG,GAAGt0H,EAAEC,EAAEC,GAAG,MAAM,KAAK,EAAE,IAAI2C,KAAI2wH,GAAGtzH,EAAED,GAAiB,oBAAdqjB,EAAEpjB,EAAEkpG,WAAgCqrB,sBAAsB,IAAInxG,EAAEjnB,MAAM6D,EAAE0jH,cAActgG,EAAEq9D,MAAMzgF,EAAEwqG,cAAcpnF,EAAEmxG,sBAAsB,CAAC,MAAMriH,GAAG9P,GAAEpC,EAAED,EAAEmS,EAAE,CAACkiH,GAAGt0H,EAAEC,EAAEC,GAAG,MAAM,KAAK,GAAGo0H,GAAGt0H,EAAEC,EAAEC,GAAG,MAAM,KAAK,GAAU,EAAPA,EAAEuK,MAAQ5H,IAAGygB,EAAEzgB,KAAI,OAChf3C,EAAEwqG,cAAc4pB,GAAGt0H,EAAEC,EAAEC,GAAG2C,GAAEygB,GAAGgxG,GAAGt0H,EAAEC,EAAEC,GAAG,MAAM,QAAQo0H,GAAGt0H,EAAEC,EAAEC,GAAG,CAAC,SAASw0H,GAAG10H,GAAG,IAAIC,EAAED,EAAEqmH,YAAY,GAAG,OAAOpmH,EAAE,CAACD,EAAEqmH,YAAY,KAAK,IAAInmH,EAAEF,EAAEopG,UAAU,OAAOlpG,IAAIA,EAAEF,EAAEopG,UAAU,IAAIiqB,IAAIpzH,EAAEkH,SAAQ,SAASlH,GAAG,IAAIqjB,EAAEqxG,GAAGtnG,KAAK,KAAKrtB,EAAEC,GAAGC,EAAEmB,IAAIpB,KAAKC,EAAEuiE,IAAIxiE,GAAGA,EAAE8/G,KAAKz8F,EAAEA,GAAG,GAAE,CAAC,CACzQ,SAASsxG,GAAG50H,EAAEC,GAAG,IAAIC,EAAED,EAAEkjH,UAAU,GAAG,OAAOjjH,EAAE,IAAI,IAAIojB,EAAE,EAAEA,EAAEpjB,EAAE3D,OAAO+mB,IAAI,CAAC,IAAIvgB,EAAE7C,EAAEojB,GAAG,IAAI,IAAIxiB,EAAEd,EAAEojB,EAAEnjB,EAAEmS,EAAEgR,EAAEpjB,EAAE,KAAK,OAAOoS,GAAG,CAAC,OAAOA,EAAEjI,KAAK,KAAK,EAAEiqH,GAAEhiH,EAAEg3F,UAAUirB,IAAG,EAAG,MAAMr0H,EAAE,KAAK,EAA4C,KAAK,EAAEo0H,GAAEhiH,EAAEg3F,UAAUqG,cAAc4kB,IAAG,EAAG,MAAMr0H,EAAEoS,EAAEA,EAAE4oF,MAAM,CAAC,GAAG,OAAOo5B,GAAE,MAAMl+G,MAAM5D,EAAE,MAAMiiH,GAAGzzH,EAAEsiB,EAAErgB,GAAGqxH,GAAE,KAAKC,IAAG,EAAG,IAAIjtH,EAAErE,EAAEwnG,UAAU,OAAOnjG,IAAIA,EAAE4zF,OAAO,MAAMj4F,EAAEi4F,OAAO,IAAI,CAAC,MAAM/vF,GAAG3I,GAAES,EAAE9C,EAAEgL,EAAE,CAAC,CAAC,GAAkB,MAAfhL,EAAE4xH,aAAmB,IAAI5xH,EAAEA,EAAE6qG,MAAM,OAAO7qG,GAAG40H,GAAG50H,EAAED,GAAGC,EAAEA,EAAE8qG,OAAO,CACje,SAAS8pB,GAAG70H,EAAEC,GAAG,IAAIC,EAAEF,EAAEuqG,UAAUjnF,EAAEtjB,EAAEwqG,MAAM,OAAOxqG,EAAEmK,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAiB,GAAdyqH,GAAG30H,EAAED,GAAG80H,GAAG90H,GAAQ,EAAFsjB,EAAI,CAAC,IAAIqwG,GAAG,EAAE3zH,EAAEA,EAAEg7F,QAAQ44B,GAAG,EAAE5zH,EAAE,CAAC,MAAM2P,GAAGrN,GAAEtC,EAAEA,EAAEg7F,OAAOrrF,EAAE,CAAC,IAAIgkH,GAAG,EAAE3zH,EAAEA,EAAEg7F,OAAO,CAAC,MAAMrrF,GAAGrN,GAAEtC,EAAEA,EAAEg7F,OAAOrrF,EAAE,CAAC,CAAC,MAAM,KAAK,EAAEilH,GAAG30H,EAAED,GAAG80H,GAAG90H,GAAK,IAAFsjB,GAAO,OAAOpjB,GAAGszH,GAAGtzH,EAAEA,EAAE86F,QAAQ,MAAM,KAAK,EAAgD,GAA9C45B,GAAG30H,EAAED,GAAG80H,GAAG90H,GAAK,IAAFsjB,GAAO,OAAOpjB,GAAGszH,GAAGtzH,EAAEA,EAAE86F,QAAmB,GAARh7F,EAAEwqG,MAAS,CAAC,IAAIznG,EAAE/C,EAAEopG,UAAU,IAAI77E,GAAGxqB,EAAE,GAAG,CAAC,MAAM4M,GAAGrN,GAAEtC,EAAEA,EAAEg7F,OAAOrrF,EAAE,CAAC,CAAC,GAAK,EAAF2T,GAAoB,OAAdvgB,EAAE/C,EAAEopG,WAAmB,CAAC,IAAItoG,EAAEd,EAAE4jH,cAAcxgG,EAAE,OAAOljB,EAAEA,EAAE0jH,cAAc9iH,EAAEsR,EAAEpS,EAAEwB,KAAK4F,EAAEpH,EAAEqmH,YACje,GAAnBrmH,EAAEqmH,YAAY,KAAQ,OAAOj/G,EAAE,IAAI,UAAUgL,GAAG,UAAUtR,EAAEU,MAAM,MAAMV,EAAEW,MAAMgiG,EAAG1gG,EAAEjC,GAAG4nG,GAAGt2F,EAAEgR,GAAG,IAAInY,EAAEy9F,GAAGt2F,EAAEtR,GAAG,IAAIsiB,EAAE,EAAEA,EAAEhc,EAAE7K,OAAO6mB,GAAG,EAAE,CAAC,IAAIusB,EAAEvoC,EAAEgc,GAAG9M,EAAElP,EAAEgc,EAAE,GAAG,UAAUusB,EAAE+3D,GAAG3kG,EAAEuT,GAAG,4BAA4Bq5B,EAAE80D,GAAG1hG,EAAEuT,GAAG,aAAaq5B,EAAEpiB,GAAGxqB,EAAEuT,GAAGypF,EAAGh9F,EAAE4sC,EAAEr5B,EAAErL,EAAE,CAAC,OAAOmH,GAAG,IAAK,QAAQsxF,EAAG3gG,EAAEjC,GAAG,MAAM,IAAK,WAAWsjG,GAAGrhG,EAAEjC,GAAG,MAAM,IAAK,SAAS,IAAIqR,EAAEpP,EAAEqgG,cAAcsvB,YAAY3vH,EAAEqgG,cAAcsvB,cAAc5xH,EAAE6xH,SAAS,IAAI1uF,EAAEnjC,EAAEhD,MAAM,MAAMmmC,EAAEm/B,GAAGrgE,IAAIjC,EAAE6xH,SAAS1uF,GAAE,GAAI9xB,MAAMrR,EAAE6xH,WAAW,MAAM7xH,EAAEqiG,aAAa//B,GAAGrgE,IAAIjC,EAAE6xH,SACnf7xH,EAAEqiG,cAAa,GAAI//B,GAAGrgE,IAAIjC,EAAE6xH,SAAS7xH,EAAE6xH,SAAS,GAAG,IAAG,IAAK5vH,EAAEy9G,IAAI1/G,CAAC,CAAC,MAAM6O,GAAGrN,GAAEtC,EAAEA,EAAEg7F,OAAOrrF,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdilH,GAAG30H,EAAED,GAAG80H,GAAG90H,GAAQ,EAAFsjB,EAAI,CAAC,GAAG,OAAOtjB,EAAEopG,UAAU,MAAMlzF,MAAM5D,EAAE,MAAMvP,EAAE/C,EAAEopG,UAAUtoG,EAAEd,EAAE4jH,cAAc,IAAI7gH,EAAEiiG,UAAUlkG,CAAC,CAAC,MAAM6O,GAAGrN,GAAEtC,EAAEA,EAAEg7F,OAAOrrF,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdilH,GAAG30H,EAAED,GAAG80H,GAAG90H,GAAQ,EAAFsjB,GAAK,OAAOpjB,GAAGA,EAAEwqG,cAAc8E,aAAa,IAAIQ,GAAG/vG,EAAEwvG,cAAc,CAAC,MAAM9/F,GAAGrN,GAAEtC,EAAEA,EAAEg7F,OAAOrrF,EAAE,CAAC,MAAM,KAAK,EAG4G,QAAQilH,GAAG30H,EACnfD,GAAG80H,GAAG90H,SAJ4Y,KAAK,GAAG40H,GAAG30H,EAAED,GAAG80H,GAAG90H,GAAqB,MAAlB+C,EAAE/C,EAAE8qG,OAAQN,QAAa1pG,EAAE,OAAOiC,EAAE2nG,cAAc3nG,EAAEqmG,UAAU2rB,SAASj0H,GAAGA,GAClf,OAAOiC,EAAEwnG,WAAW,OAAOxnG,EAAEwnG,UAAUG,gBAAgBsqB,GAAG5yH,OAAQ,EAAFkhB,GAAKoxG,GAAG10H,GAAG,MAAM,KAAK,GAAsF,GAAnF2vC,EAAE,OAAOzvC,GAAG,OAAOA,EAAEwqG,cAAqB,EAAP1qG,EAAEyK,MAAQ5H,IAAGoI,EAAEpI,KAAI8sC,EAAEilF,GAAG30H,EAAED,GAAG6C,GAAEoI,GAAG2pH,GAAG30H,EAAED,GAAG80H,GAAG90H,GAAQ,KAAFsjB,EAAO,CAA0B,GAAzBrY,EAAE,OAAOjL,EAAE0qG,eAAkB1qG,EAAEopG,UAAU2rB,SAAS9pH,KAAK0kC,GAAG,KAAY,EAAP3vC,EAAEyK,MAAQ,IAAI8oH,GAAEvzH,EAAE2vC,EAAE3vC,EAAE8qG,MAAM,OAAOn7D,GAAG,CAAC,IAAIr5B,EAAEi9G,GAAE5jF,EAAE,OAAO4jF,IAAG,CAAe,OAAVtvF,GAAJ9xB,EAAEohH,IAAMzoB,MAAa34F,EAAEhI,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAGwpH,GAAG,EAAExhH,EAAEA,EAAE6oF,QAAQ,MAAM,KAAK,EAAEw4B,GAAGrhH,EAAEA,EAAE6oF,QAAQ,IAAIprF,EAAEuC,EAAEi3F,UAAU,GAAG,oBAAoBx5F,EAAE6kH,qBAAqB,CAACnxG,EAAEnR,EAAEjS,EAAEiS,EAAE6oF,OAAO,IAAI/6F,EAAEqjB,EAAE1T,EAAEvT,MACpf4D,EAAE2jH,cAAch0G,EAAE+wE,MAAM1gF,EAAEyqG,cAAc96F,EAAE6kH,sBAAsB,CAAC,MAAM9kH,GAAGrN,GAAEghB,EAAEpjB,EAAEyP,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE6jH,GAAGrhH,EAAEA,EAAE6oF,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAO7oF,EAAEu4F,cAAc,CAACuqB,GAAG3+G,GAAG,QAAQ,EAAE,OAAO2tB,GAAGA,EAAE+2D,OAAO7oF,EAAEohH,GAAEtvF,GAAGgxF,GAAG3+G,EAAE,CAACq5B,EAAEA,EAAEo7D,OAAO,CAAC/qG,EAAE,IAAI2vC,EAAE,KAAKr5B,EAAEtW,IAAI,CAAC,GAAG,IAAIsW,EAAEnM,KAAK,GAAG,OAAOwlC,EAAE,CAACA,EAAEr5B,EAAE,IAAIvT,EAAEuT,EAAE8yF,UAAUn+F,EAAa,oBAAVnK,EAAEiC,EAAEmF,OAA4By/F,YAAY7mG,EAAE6mG,YAAY,UAAU,OAAO,aAAa7mG,EAAEqH,QAAQ,QAASiK,EAAEkE,EAAE8yF,UAAkChmF,OAAE,KAA1Bhc,EAAEkP,EAAEstG,cAAc17G,QAAoB,OAAOd,GAAGA,EAAE/J,eAAe,WAAW+J,EAAEe,QAAQ,KAAKiK,EAAElK,MAAMC,QACzfs/F,GAAG,UAAUrkF,GAAG,CAAC,MAAMzT,GAAGrN,GAAEtC,EAAEA,EAAEg7F,OAAOrrF,EAAE,CAAC,OAAO,GAAG,IAAI2G,EAAEnM,KAAK,GAAG,OAAOwlC,EAAE,IAAIr5B,EAAE8yF,UAAUpE,UAAU/5F,EAAE,GAAGqL,EAAEstG,aAAa,CAAC,MAAMj0G,GAAGrN,GAAEtC,EAAEA,EAAEg7F,OAAOrrF,EAAE,OAAO,IAAI,KAAK2G,EAAEnM,KAAK,KAAKmM,EAAEnM,KAAK,OAAOmM,EAAEo0F,eAAep0F,IAAItW,IAAI,OAAOsW,EAAEw0F,MAAM,CAACx0F,EAAEw0F,MAAM9P,OAAO1kF,EAAEA,EAAEA,EAAEw0F,MAAM,QAAQ,CAAC,GAAGx0F,IAAItW,EAAE,MAAMA,EAAE,KAAK,OAAOsW,EAAEy0F,SAAS,CAAC,GAAG,OAAOz0F,EAAE0kF,QAAQ1kF,EAAE0kF,SAASh7F,EAAE,MAAMA,EAAE2vC,IAAIr5B,IAAIq5B,EAAE,MAAMr5B,EAAEA,EAAE0kF,MAAM,CAACrrD,IAAIr5B,IAAIq5B,EAAE,MAAMr5B,EAAEy0F,QAAQ/P,OAAO1kF,EAAE0kF,OAAO1kF,EAAEA,EAAEy0F,OAAO,CAAC,CAAC,MAAM,KAAK,GAAG6pB,GAAG30H,EAAED,GAAG80H,GAAG90H,GAAK,EAAFsjB,GAAKoxG,GAAG10H,GAAS,KAAK,IACtd,CAAC,SAAS80H,GAAG90H,GAAG,IAAIC,EAAED,EAAEwqG,MAAM,GAAK,EAAFvqG,EAAI,CAAC,IAAID,EAAE,CAAC,IAAI,IAAIE,EAAEF,EAAEg7F,OAAO,OAAO96F,GAAG,CAAC,GAAG6zH,GAAG7zH,GAAG,CAAC,IAAIojB,EAAEpjB,EAAE,MAAMF,CAAC,CAACE,EAAEA,EAAE86F,MAAM,CAAC,MAAM9kF,MAAM5D,EAAE,KAAM,CAAC,OAAOgR,EAAEnZ,KAAK,KAAK,EAAE,IAAIpH,EAAEugB,EAAE8lF,UAAkB,GAAR9lF,EAAEknF,QAAWj9E,GAAGxqB,EAAE,IAAIugB,EAAEknF,QAAQ,IAAgB2pB,GAAGn0H,EAATg0H,GAAGh0H,GAAU+C,GAAG,MAAM,KAAK,EAAE,KAAK,EAAE,IAAIqgB,EAAEE,EAAE8lF,UAAUqG,cAAsBwkB,GAAGj0H,EAATg0H,GAAGh0H,GAAUojB,GAAG,MAAM,QAAQ,MAAMlN,MAAM5D,EAAE,MAAO,CAAC,MAAMlL,GAAG9E,GAAEtC,EAAEA,EAAEg7F,OAAO5zF,EAAE,CAACpH,EAAEwqG,QAAQ,CAAC,CAAG,KAAFvqG,IAASD,EAAEwqG,QAAQ,KAAK,CAAC,SAAS0qB,GAAGl1H,EAAEC,EAAEC,GAAGqzH,GAAEvzH,EAAEm1H,GAAGn1H,EAAEC,EAAEC,EAAE,CACvb,SAASi1H,GAAGn1H,EAAEC,EAAEC,GAAG,IAAI,IAAIojB,EAAE,KAAY,EAAPtjB,EAAEyK,MAAQ,OAAO8oH,IAAG,CAAC,IAAIxwH,EAAEwwH,GAAEzyH,EAAEiC,EAAE+nG,MAAM,GAAG,KAAK/nG,EAAEoH,KAAKmZ,EAAE,CAAC,IAAIF,EAAE,OAAOrgB,EAAE2nG,eAAe0oB,GAAG,IAAIhwG,EAAE,CAAC,IAAIhR,EAAErP,EAAEwnG,UAAUnjG,EAAE,OAAOgL,GAAG,OAAOA,EAAEs4F,eAAe7nG,GAAEuP,EAAEghH,GAAG,IAAInoH,EAAEpI,GAAO,GAALuwH,GAAGhwG,GAAMvgB,GAAEuE,KAAK6D,EAAE,IAAIsoH,GAAExwH,EAAE,OAAOwwH,IAAOnsH,GAAJgc,EAAEmwG,IAAMzoB,MAAM,KAAK1nF,EAAEjZ,KAAK,OAAOiZ,EAAEsnF,cAAc0qB,GAAGryH,GAAG,OAAOqE,GAAGA,EAAE4zF,OAAO53E,EAAEmwG,GAAEnsH,GAAGguH,GAAGryH,GAAG,KAAK,OAAOjC,GAAGyyH,GAAEzyH,EAAEq0H,GAAGr0H,EAAEb,EAAEC,GAAGY,EAAEA,EAAEiqG,QAAQwoB,GAAExwH,EAAEqwH,GAAGhhH,EAAEvP,GAAEoI,CAAC,CAACoqH,GAAGr1H,EAAM,MAAM,KAAoB,KAAf+C,EAAE8uH,eAAoB,OAAO/wH,GAAGA,EAAEk6F,OAAOj4F,EAAEwwH,GAAEzyH,GAAGu0H,GAAGr1H,EAAM,CAAC,CACvc,SAASq1H,GAAGr1H,GAAG,KAAK,OAAOuzH,IAAG,CAAC,IAAItzH,EAAEszH,GAAE,GAAG,KAAa,KAARtzH,EAAEuqG,OAAY,CAAC,IAAItqG,EAAED,EAAEsqG,UAAU,IAAI,GAAG,KAAa,KAARtqG,EAAEuqG,OAAY,OAAOvqG,EAAEkK,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGtH,IAAG+wH,GAAG,EAAE3zH,GAAG,MAAM,KAAK,EAAE,IAAIqjB,EAAErjB,EAAEmpG,UAAU,GAAW,EAARnpG,EAAEuqG,QAAU3nG,GAAE,GAAG,OAAO3C,EAAEojB,EAAE0qG,wBAAwB,CAAC,IAAIjrH,EAAE9C,EAAEw5F,cAAcx5F,EAAEuB,KAAKtB,EAAE0jH,cAAcgJ,GAAG3sH,EAAEuB,KAAKtB,EAAE0jH,eAAetgG,EAAEktG,mBAAmBztH,EAAE7C,EAAEwqG,cAAcpnF,EAAEgyG,oCAAoC,CAAC,IAAIx0H,EAAEb,EAAEomH,YAAY,OAAOvlH,GAAG+jC,GAAG5kC,EAAEa,EAAEwiB,GAAG,MAAM,KAAK,EAAE,IAAIF,EAAEnjB,EAAEomH,YAAY,GAAG,OAAOjjG,EAAE,CAAQ,GAAPljB,EAAE,KAAQ,OAAOD,EAAE6qG,MAAM,OAAO7qG,EAAE6qG,MAAM3gG,KAAK,KAAK,EACvf,KAAK,EAAEjK,EAAED,EAAE6qG,MAAM1B,UAAUvkE,GAAG5kC,EAAEmjB,EAAEljB,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIkS,EAAEnS,EAAEmpG,UAAU,GAAG,OAAOlpG,GAAW,EAARD,EAAEuqG,MAAQ,CAACtqG,EAAEkS,EAAE,IAAIhL,EAAEnH,EAAE2jH,cAAc,OAAO3jH,EAAEuB,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW4F,EAAE2rH,WAAW7yH,EAAE+7G,QAAQ,MAAM,IAAK,MAAM70G,EAAEgB,MAAMlI,EAAEkI,IAAIhB,EAAEgB,KAAK,CAAC,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAyJ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAhM,KAAK,GAAG,GAAG,OAAOnI,EAAEyqG,cAAc,CAAC,IAAIz/F,EAAEhL,EAAEsqG,UAAU,GAAG,OAAOt/F,EAAE,CAAC,IAAI0kC,EAAE1kC,EAAEy/F,cAAc,GAAG,OAAO/6D,EAAE,CAAC,IAAIr5B,EAAEq5B,EAAEg7D,WAAW,OAAOr0F,GAAG05F,GAAG15F,EAAE,CAAC,CAAC,CAAC,MAC5c,QAAQ,MAAMJ,MAAM5D,EAAE,MAAOzP,IAAW,IAAR5C,EAAEuqG,OAAWqpB,GAAG5zH,EAAE,CAAC,MAAMkS,GAAG7P,GAAErC,EAAEA,EAAE+6F,OAAO7oF,EAAE,CAAC,CAAC,GAAGlS,IAAID,EAAE,CAACuzH,GAAE,KAAK,KAAK,CAAa,GAAG,QAAfrzH,EAAED,EAAE8qG,SAAoB,CAAC7qG,EAAE86F,OAAO/6F,EAAE+6F,OAAOu4B,GAAErzH,EAAE,KAAK,CAACqzH,GAAEtzH,EAAE+6F,MAAM,CAAC,CAAC,SAASi6B,GAAGj1H,GAAG,KAAK,OAAOuzH,IAAG,CAAC,IAAItzH,EAAEszH,GAAE,GAAGtzH,IAAID,EAAE,CAACuzH,GAAE,KAAK,KAAK,CAAC,IAAIrzH,EAAED,EAAE8qG,QAAQ,GAAG,OAAO7qG,EAAE,CAACA,EAAE86F,OAAO/6F,EAAE+6F,OAAOu4B,GAAErzH,EAAE,KAAK,CAACqzH,GAAEtzH,EAAE+6F,MAAM,CAAC,CACvS,SAASo6B,GAAGp1H,GAAG,KAAK,OAAOuzH,IAAG,CAAC,IAAItzH,EAAEszH,GAAE,IAAI,OAAOtzH,EAAEkK,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAIjK,EAAED,EAAE+6F,OAAO,IAAI44B,GAAG,EAAE3zH,EAAE,CAAC,MAAMmH,GAAG9E,GAAErC,EAAEC,EAAEkH,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIkc,EAAErjB,EAAEmpG,UAAU,GAAG,oBAAoB9lF,EAAE0qG,kBAAkB,CAAC,IAAIjrH,EAAE9C,EAAE+6F,OAAO,IAAI13E,EAAE0qG,mBAAmB,CAAC,MAAM5mH,GAAG9E,GAAErC,EAAE8C,EAAEqE,EAAE,CAAC,CAAC,IAAItG,EAAEb,EAAE+6F,OAAO,IAAI64B,GAAG5zH,EAAE,CAAC,MAAMmH,GAAG9E,GAAErC,EAAEa,EAAEsG,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIgc,EAAEnjB,EAAE+6F,OAAO,IAAI64B,GAAG5zH,EAAE,CAAC,MAAMmH,GAAG9E,GAAErC,EAAEmjB,EAAEhc,EAAE,EAAE,CAAC,MAAMA,GAAG9E,GAAErC,EAAEA,EAAE+6F,OAAO5zF,EAAE,CAAC,GAAGnH,IAAID,EAAE,CAACuzH,GAAE,KAAK,KAAK,CAAC,IAAInhH,EAAEnS,EAAE8qG,QAAQ,GAAG,OAAO34F,EAAE,CAACA,EAAE4oF,OAAO/6F,EAAE+6F,OAAOu4B,GAAEnhH,EAAE,KAAK,CAACmhH,GAAEtzH,EAAE+6F,MAAM,CAAC,CAC7d,IAwBkNu6B,GAxB9MC,GAAGvyH,KAAKqI,KAAKmqH,GAAGr1B,EAAG6nB,uBAAuByN,GAAGt1B,EAAGivB,kBAAkBsG,GAAGv1B,EAAG8P,wBAAwBhpG,GAAE,EAAEkjH,GAAE,KAAKwL,GAAE,KAAKC,GAAE,EAAE3F,GAAG,EAAED,GAAGpP,GAAG,GAAGv5G,GAAE,EAAEwuH,GAAG,KAAK9O,GAAG,EAAE+O,GAAG,EAAEC,GAAG,EAAEttG,GAAG,KAAKutG,GAAG,KAAKjB,GAAG,EAAE/B,GAAGiD,IAASC,GAAG,KAAK1H,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKuH,IAAG,EAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAE,SAAS9zH,KAAI,OAAO,KAAO,EAAFsE,IAAK9E,MAAK,IAAIq0H,GAAGA,GAAGA,GAAGr0H,IAAG,CAChU,SAASspH,GAAG1rH,GAAG,OAAG,KAAY,EAAPA,EAAEyK,MAAe,EAAK,KAAO,EAAFvD,KAAM,IAAI2uH,GAASA,IAAGA,GAAK,OAAO7R,GAAG3T,YAAkB,IAAIqmB,KAAKA,GAAGnpB,MAAMmpB,IAAU,KAAP12H,EAAEwC,IAAkBxC,EAAiBA,OAAE,KAAjBA,EAAEgD,OAAO8nB,OAAmB,GAAG4lF,GAAG1wG,EAAEwB,KAAc,CAAC,SAASkpH,GAAG1qH,EAAEC,EAAEC,EAAEojB,GAAG,GAAG,GAAGizG,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKtgH,MAAM5D,EAAE,MAAMm7F,GAAGztG,EAAEE,EAAEojB,GAAM,KAAO,EAAFpc,KAAMlH,IAAIoqH,KAAEpqH,IAAIoqH,KAAI,KAAO,EAAFljH,MAAO6uH,IAAI71H,GAAG,IAAIoH,IAAGqvH,GAAG32H,EAAE61H,KAAIe,GAAG52H,EAAEsjB,GAAG,IAAIpjB,GAAG,IAAIgH,IAAG,KAAY,EAAPjH,EAAEwK,QAAUwoH,GAAG7wH,KAAI,IAAI0/G,IAAIE,MAAK,CAC1Y,SAAS4U,GAAG52H,EAAEC,GAAG,IAAIC,EAAEF,EAAE62H,cA3MzB,SAAY72H,EAAEC,GAAG,IAAI,IAAIC,EAAEF,EAAEitG,eAAe3pF,EAAEtjB,EAAEktG,YAAYnqG,EAAE/C,EAAE82H,gBAAgBh2H,EAAEd,EAAEgtG,aAAa,EAAElsG,GAAG,CAAC,IAAIsiB,EAAE,GAAGmpF,GAAGzrG,GAAGsR,EAAE,GAAGgR,EAAEhc,EAAErE,EAAEqgB,IAAO,IAAIhc,EAAM,KAAKgL,EAAElS,IAAI,KAAKkS,EAAEkR,KAAGvgB,EAAEqgB,GAAGiqF,GAAGj7F,EAAEnS,IAAQmH,GAAGnH,IAAID,EAAE+2H,cAAc3kH,GAAGtR,IAAIsR,CAAC,CAAC,CA2MnL4kH,CAAGh3H,EAAEC,GAAG,IAAIqjB,EAAEypF,GAAG/sG,EAAEA,IAAIoqH,GAAEyL,GAAE,GAAG,GAAG,IAAIvyG,EAAE,OAAOpjB,GAAGkrG,GAAGlrG,GAAGF,EAAE62H,aAAa,KAAK72H,EAAEi3H,iBAAiB,OAAO,GAAGh3H,EAAEqjB,GAAGA,EAAEtjB,EAAEi3H,mBAAmBh3H,EAAE,CAAgB,GAAf,MAAMC,GAAGkrG,GAAGlrG,GAAM,IAAID,EAAE,IAAID,EAAEmK,IA5IsJ,SAAYnK,GAAG8hH,IAAG,EAAGC,GAAG/hH,EAAE,CA4I5Kk3H,CAAGC,GAAG9pG,KAAK,KAAKrtB,IAAI+hH,GAAGoV,GAAG9pG,KAAK,KAAKrtB,IAAI4/G,IAAG,WAAW,KAAO,EAAF14G,KAAM86G,IAAI,IAAG9hH,EAAE,SAAS,CAAC,OAAO0tG,GAAGtqF,IAAI,KAAK,EAAEpjB,EAAE09D,GAAG,MAAM,KAAK,EAAE19D,EAAE4rG,GAAG,MAAM,KAAK,GAAwC,QAAQ5rG,EAAE8rG,SAApC,KAAK,UAAU9rG,EAAEksG,GAAsBlsG,EAAEk3H,GAAGl3H,EAAEm3H,GAAGhqG,KAAK,KAAKrtB,GAAG,CAACA,EAAEi3H,iBAAiBh3H,EAAED,EAAE62H,aAAa32H,CAAC,CAAC,CAC7c,SAASm3H,GAAGr3H,EAAEC,GAAc,GAAXw2H,IAAI,EAAEC,GAAG,EAAK,KAAO,EAAFxvH,IAAK,MAAMgP,MAAM5D,EAAE,MAAM,IAAIpS,EAAEF,EAAE62H,aAAa,GAAGS,MAAMt3H,EAAE62H,eAAe32H,EAAE,OAAO,KAAK,IAAIojB,EAAEypF,GAAG/sG,EAAEA,IAAIoqH,GAAEyL,GAAE,GAAG,GAAG,IAAIvyG,EAAE,OAAO,KAAK,GAAG,KAAO,GAAFA,IAAO,KAAKA,EAAEtjB,EAAE+2H,eAAe92H,EAAEA,EAAEs3H,GAAGv3H,EAAEsjB,OAAO,CAACrjB,EAAEqjB,EAAE,IAAIvgB,EAAEmE,GAAEA,IAAG,EAAE,IAAIpG,EAAE02H,KAAgD,IAAxCpN,KAAIpqH,GAAG61H,KAAI51H,IAAEk2H,GAAG,KAAKlD,GAAG7wH,KAAI,IAAIq1H,GAAGz3H,EAAEC,UAAUy3H,KAAK,KAAK,CAAC,MAAMtlH,GAAGulH,GAAG33H,EAAEoS,EAAE,CAAUgzG,KAAKqQ,GAAGrlC,QAAQtvF,EAAEoG,GAAEnE,EAAE,OAAO6yH,GAAE31H,EAAE,GAAGmqH,GAAE,KAAKyL,GAAE,EAAE51H,EAAEqH,GAAE,CAAC,GAAG,IAAIrH,EAAE,CAAyC,GAAxC,IAAIA,IAAY,KAAR8C,EAAEuqG,GAAGttG,MAAWsjB,EAAEvgB,EAAE9C,EAAE23H,GAAG53H,EAAE+C,KAAQ,IAAI9C,EAAE,MAAMC,EAAE41H,GAAG2B,GAAGz3H,EAAE,GAAG22H,GAAG32H,EAAEsjB,GAAGszG,GAAG52H,EAAEoC,MAAKlC,EAAE,GAAG,IAAID,EAAE02H,GAAG32H,EAAEsjB,OAChf,CAAuB,GAAtBvgB,EAAE/C,EAAEowF,QAAQma,UAAa,KAAO,GAAFjnF,KAGnC,SAAYtjB,GAAG,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAW,MAARC,EAAEuqG,MAAY,CAAC,IAAItqG,EAAED,EAAEomH,YAAY,GAAG,OAAOnmH,GAAe,QAAXA,EAAEA,EAAEqqH,QAAiB,IAAI,IAAIjnG,EAAE,EAAEA,EAAEpjB,EAAE3D,OAAO+mB,IAAI,CAAC,IAAIvgB,EAAE7C,EAAEojB,GAAGxiB,EAAEiC,EAAEknH,YAAYlnH,EAAEA,EAAEjF,MAAM,IAAI,IAAIm8G,GAAGn5G,IAAIiC,GAAG,OAAM,CAAE,CAAC,MAAMqgB,GAAG,OAAM,CAAE,CAAC,CAAC,CAAW,GAAVljB,EAAED,EAAE6qG,MAAwB,MAAf7qG,EAAE4xH,cAAoB,OAAO3xH,EAAEA,EAAE86F,OAAO/6F,EAAEA,EAAEC,MAAM,CAAC,GAAGD,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAE8qG,SAAS,CAAC,GAAG,OAAO9qG,EAAE+6F,QAAQ/6F,EAAE+6F,SAASh7F,EAAE,OAAM,EAAGC,EAAEA,EAAE+6F,MAAM,CAAC/6F,EAAE8qG,QAAQ/P,OAAO/6F,EAAE+6F,OAAO/6F,EAAEA,EAAE8qG,OAAO,CAAC,CAAC,OAAM,CAAE,CAHvX8sB,CAAG90H,KAAe,KAAV9C,EAAEs3H,GAAGv3H,EAAEsjB,MAAmB,KAARxiB,EAAEwsG,GAAGttG,MAAWsjB,EAAExiB,EAAEb,EAAE23H,GAAG53H,EAAEc,KAAK,IAAIb,GAAG,MAAMC,EAAE41H,GAAG2B,GAAGz3H,EAAE,GAAG22H,GAAG32H,EAAEsjB,GAAGszG,GAAG52H,EAAEoC,MAAKlC,EAAqC,OAAnCF,EAAE83H,aAAa/0H,EAAE/C,EAAE+3H,cAAcz0G,EAASrjB,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMiW,MAAM5D,EAAE,MAAM,KAAK,EAC8B,KAAK,EAAE0lH,GAAGh4H,EAAEi2H,GAAGE,IAAI,MAD7B,KAAK,EAAU,GAARQ,GAAG32H,EAAEsjB,IAAS,UAAFA,KAAeA,GAAiB,IAAbrjB,EAAE+0H,GAAG,IAAI5yH,MAAU,CAAC,GAAG,IAAI2qG,GAAG/sG,EAAE,GAAG,MAAyB,KAAnB+C,EAAE/C,EAAEitG,gBAAqB3pF,KAAKA,EAAE,CAAC1gB,KAAI5C,EAAEktG,aAAaltG,EAAEitG,eAAelqG,EAAE,KAAK,CAAC/C,EAAEi4H,cAAczY,GAAGwY,GAAG3qG,KAAK,KAAKrtB,EAAEi2H,GAAGE,IAAIl2H,GAAG,KAAK,CAAC+3H,GAAGh4H,EAAEi2H,GAAGE,IAAI,MAAM,KAAK,EAAU,GAARQ,GAAG32H,EAAEsjB,IAAS,QAAFA,KAC9eA,EAAE,MAAqB,IAAfrjB,EAAED,EAAE0tG,WAAe3qG,GAAG,EAAE,EAAEugB,GAAG,CAAC,IAAIF,EAAE,GAAGmpF,GAAGjpF,GAAGxiB,EAAE,GAAGsiB,GAAEA,EAAEnjB,EAAEmjB,IAAKrgB,IAAIA,EAAEqgB,GAAGE,IAAIxiB,CAAC,CAAqG,GAApGwiB,EAAEvgB,EAAqG,IAA3FugB,GAAG,KAAXA,EAAElhB,KAAIkhB,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKkyG,GAAGlyG,EAAE,OAAOA,GAAU,CAACtjB,EAAEi4H,cAAczY,GAAGwY,GAAG3qG,KAAK,KAAKrtB,EAAEi2H,GAAGE,IAAI7yG,GAAG,KAAK,CAAC00G,GAAGh4H,EAAEi2H,GAAGE,IAAI,MAA+B,QAAQ,MAAMjgH,MAAM5D,EAAE,MAAO,CAAC,CAAW,OAAVskH,GAAG52H,EAAEoC,MAAYpC,EAAE62H,eAAe32H,EAAEm3H,GAAGhqG,KAAK,KAAKrtB,GAAG,IAAI,CACrX,SAAS43H,GAAG53H,EAAEC,GAAG,IAAIC,EAAEwoB,GAA2G,OAAxG1oB,EAAEowF,QAAQsa,cAAc8E,eAAeioB,GAAGz3H,EAAEC,GAAGuqG,OAAO,KAAe,KAAVxqG,EAAEu3H,GAAGv3H,EAAEC,MAAWA,EAAEg2H,GAAGA,GAAG/1H,EAAE,OAAOD,GAAGwyH,GAAGxyH,IAAWD,CAAC,CAAC,SAASyyH,GAAGzyH,GAAG,OAAOi2H,GAAGA,GAAGj2H,EAAEi2H,GAAGh1H,KAAKd,MAAM81H,GAAGj2H,EAAE,CAE5L,SAAS22H,GAAG32H,EAAEC,GAAuD,IAApDA,IAAI+1H,GAAG/1H,IAAI81H,GAAG/1H,EAAEitG,gBAAgBhtG,EAAED,EAAEktG,cAAcjtG,EAAMD,EAAEA,EAAE82H,gBAAgB,EAAE72H,GAAG,CAAC,IAAIC,EAAE,GAAGqsG,GAAGtsG,GAAGqjB,EAAE,GAAGpjB,EAAEF,EAAEE,IAAI,EAAED,IAAIqjB,CAAC,CAAC,CAAC,SAAS6zG,GAAGn3H,GAAG,GAAG,KAAO,EAAFkH,IAAK,MAAMgP,MAAM5D,EAAE,MAAMglH,KAAK,IAAIr3H,EAAE8sG,GAAG/sG,EAAE,GAAG,GAAG,KAAO,EAAFC,GAAK,OAAO22H,GAAG52H,EAAEoC,MAAK,KAAK,IAAIlC,EAAEq3H,GAAGv3H,EAAEC,GAAG,GAAG,IAAID,EAAEmK,KAAK,IAAIjK,EAAE,CAAC,IAAIojB,EAAEgqF,GAAGttG,GAAG,IAAIsjB,IAAIrjB,EAAEqjB,EAAEpjB,EAAE03H,GAAG53H,EAAEsjB,GAAG,CAAC,GAAG,IAAIpjB,EAAE,MAAMA,EAAE41H,GAAG2B,GAAGz3H,EAAE,GAAG22H,GAAG32H,EAAEC,GAAG22H,GAAG52H,EAAEoC,MAAKlC,EAAE,GAAG,IAAIA,EAAE,MAAMgW,MAAM5D,EAAE,MAAiF,OAA3EtS,EAAE83H,aAAa93H,EAAEowF,QAAQma,UAAUvqG,EAAE+3H,cAAc93H,EAAE+3H,GAAGh4H,EAAEi2H,GAAGE,IAAIS,GAAG52H,EAAEoC,MAAY,IAAI,CACvd,SAAS81H,GAAGl4H,EAAEC,GAAG,IAAIC,EAAEgH,GAAEA,IAAG,EAAE,IAAI,OAAOlH,EAAEC,EAAE,CAAC,QAAY,KAAJiH,GAAEhH,KAAU+yH,GAAG7wH,KAAI,IAAI0/G,IAAIE,KAAK,CAAC,CAAC,SAASmW,GAAGn4H,GAAG,OAAOq2H,IAAI,IAAIA,GAAGlsH,KAAK,KAAO,EAAFjD,KAAMowH,KAAK,IAAIr3H,EAAEiH,GAAEA,IAAG,EAAE,IAAIhH,EAAEy1H,GAAGtlB,WAAW/sF,EAAE9gB,GAAE,IAAI,GAAGmzH,GAAGtlB,WAAW,KAAK7tG,GAAE,EAAExC,EAAE,OAAOA,GAAG,CAAC,QAAQwC,GAAE8gB,EAAEqyG,GAAGtlB,WAAWnwG,EAAM,KAAO,GAAXgH,GAAEjH,KAAa+hH,IAAI,CAAC,CAAC,SAASkR,KAAKhD,GAAGD,GAAG7/B,QAAQ3hF,GAAEwhH,GAAG,CAChT,SAASwH,GAAGz3H,EAAEC,GAAGD,EAAE83H,aAAa,KAAK93H,EAAE+3H,cAAc,EAAE,IAAI73H,EAAEF,EAAEi4H,cAAiD,IAAlC,IAAI/3H,IAAIF,EAAEi4H,eAAe,EAAExY,GAAGv/G,IAAO,OAAO01H,GAAE,IAAI11H,EAAE01H,GAAE56B,OAAO,OAAO96F,GAAG,CAAC,IAAIojB,EAAEpjB,EAAQ,OAAN0iH,GAAGt/F,GAAUA,EAAEnZ,KAAK,KAAK,EAA6B,QAA3BmZ,EAAEA,EAAE9hB,KAAK0V,yBAA4B,IAASoM,GAAGg+F,KAAK,MAAM,KAAK,EAAEiG,KAAK94G,GAAEuyG,IAAIvyG,GAAEsyG,IAAG+G,KAAK,MAAM,KAAK,EAAEL,GAAGnkG,GAAG,MAAM,KAAK,EAAEikG,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG94G,GAAEi5G,IAAG,MAAM,KAAK,GAAGrC,GAAG/hG,EAAE9hB,KAAKygG,UAAU,MAAM,KAAK,GAAG,KAAK,GAAGixB,KAAKhzH,EAAEA,EAAE86F,MAAM,CAAqE,GAApEovB,GAAEpqH,EAAE41H,GAAE51H,EAAEwkH,GAAGxkH,EAAEowF,QAAQ,MAAMylC,GAAE3F,GAAGjwH,EAAEqH,GAAE,EAAEwuH,GAAG,KAAKE,GAAGD,GAAG/O,GAAG,EAAEiP,GAAGvtG,GAAG,KAAQ,OAAOw6C,GAAG,CAAC,IAAIjjE,EAC1f,EAAEA,EAAEijE,GAAG3mE,OAAO0D,IAAI,GAA2B,QAAhBqjB,GAARpjB,EAAEgjE,GAAGjjE,IAAOgmH,aAAqB,CAAC/lH,EAAE+lH,YAAY,KAAK,IAAIljH,EAAEugB,EAAEvf,KAAKjD,EAAEZ,EAAEumH,QAAQ,GAAG,OAAO3lH,EAAE,CAAC,IAAIsiB,EAAEtiB,EAAEiD,KAAKjD,EAAEiD,KAAKhB,EAAEugB,EAAEvf,KAAKqf,CAAC,CAACljB,EAAEumH,QAAQnjG,CAAC,CAAC4/C,GAAG,IAAI,CAAC,OAAOljE,CAAC,CAC3K,SAAS23H,GAAG33H,EAAEC,GAAG,OAAE,CAAC,IAAIC,EAAE01H,GAAE,IAAuB,GAAnBxQ,KAAK4C,GAAG53B,QAAQ24B,GAAMT,GAAG,CAAC,IAAI,IAAIhlG,EAAE8kG,GAAE1d,cAAc,OAAOpnF,GAAG,CAAC,IAAIvgB,EAAEugB,EAAE6lG,MAAM,OAAOpmH,IAAIA,EAAE0jH,QAAQ,MAAMnjG,EAAEA,EAAEvf,IAAI,CAACukH,IAAG,CAAE,CAA4C,GAA3CH,GAAG,EAAE9oH,GAAEgpH,GAAED,GAAE,KAAKG,IAAG,EAAGC,GAAG,EAAEkN,GAAGtlC,QAAQ,KAAQ,OAAOlwF,GAAG,OAAOA,EAAE86F,OAAO,CAAC1zF,GAAE,EAAEwuH,GAAG71H,EAAE21H,GAAE,KAAK,KAAK,CAAC51H,EAAE,CAAC,IAAIc,EAAEd,EAAEojB,EAAEljB,EAAE86F,OAAO5oF,EAAElS,EAAEkH,EAAEnH,EAAqB,GAAnBA,EAAE41H,GAAEzjH,EAAEo4F,OAAO,MAAS,OAAOpjG,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE24G,KAAK,CAAC,IAAI90G,EAAE7D,EAAEuoC,EAAEv9B,EAAEkE,EAAEq5B,EAAExlC,IAAI,GAAG,KAAY,EAAPwlC,EAAEllC,QAAU,IAAI6L,GAAG,KAAKA,GAAG,KAAKA,GAAG,CAAC,IAAInE,EAAEw9B,EAAE46D,UAAUp4F,GAAGw9B,EAAE02E,YAAYl0G,EAAEk0G,YAAY12E,EAAE+6D,cAAcv4F,EAAEu4F,cACxe/6D,EAAEg2E,MAAMxzG,EAAEwzG,QAAQh2E,EAAE02E,YAAY,KAAK12E,EAAE+6D,cAAc,KAAK,CAAC,IAAIzmE,EAAEirF,GAAG9rG,GAAG,GAAG,OAAO6gB,EAAE,CAACA,EAAEumE,QAAQ,IAAI2kB,GAAGlrF,EAAE7gB,EAAEhR,EAAEtR,EAAEb,GAAU,EAAPgkC,EAAEx5B,MAAQskH,GAAGjuH,EAAEmK,EAAEhL,GAAOmH,EAAE6D,EAAE,IAAI2E,GAAZ3P,EAAEgkC,GAAcoiF,YAAY,GAAG,OAAOz2G,EAAE,CAAC,IAAID,EAAE,IAAImvF,IAAInvF,EAAE8yD,IAAIr7D,GAAGnH,EAAEomH,YAAY12G,CAAC,MAAMC,EAAE6yD,IAAIr7D,GAAG,MAAMpH,CAAC,CAAM,GAAG,KAAO,EAAFC,GAAK,CAAC8uH,GAAGjuH,EAAEmK,EAAEhL,GAAGwxH,KAAK,MAAMzxH,CAAC,CAACoH,EAAE8O,MAAM5D,EAAE,KAAM,MAAM,GAAGywG,IAAU,EAAP3wG,EAAE3H,KAAO,CAAC,IAAIyzG,EAAEgR,GAAG9rG,GAAG,GAAG,OAAO86F,EAAE,CAAC,KAAa,MAARA,EAAE1T,SAAe0T,EAAE1T,OAAO,KAAK2kB,GAAGjR,EAAE96F,EAAEhR,EAAEtR,EAAEb,GAAG8jH,GAAGkK,GAAG7mH,EAAEgL,IAAI,MAAMpS,CAAC,CAAC,CAACc,EAAEsG,EAAE6mH,GAAG7mH,EAAEgL,GAAG,IAAI9K,KAAIA,GAAE,GAAG,OAAOohB,GAAGA,GAAG,CAAC5nB,GAAG4nB,GAAGznB,KAAKH,GAAGA,EAAEsiB,EAAE,EAAE,CAAC,OAAOtiB,EAAEqJ,KAAK,KAAK,EAAErJ,EAAE0pG,OAAO,MACpfvqG,IAAIA,EAAEa,EAAE6kH,OAAO1lH,EAAkB8mH,GAAGjmH,EAAb0tH,GAAG1tH,EAAEsG,EAAEnH,IAAW,MAAMD,EAAE,KAAK,EAAEoS,EAAEhL,EAAE,IAAIhB,EAAEtF,EAAEU,KAAK6Q,EAAEvR,EAAEsoG,UAAU,GAAG,KAAa,IAARtoG,EAAE0pG,SAAa,oBAAoBpkG,EAAEoR,0BAA0B,OAAOnF,GAAG,oBAAoBA,EAAEu8G,oBAAoB,OAAOC,KAAKA,GAAGxtH,IAAIgR,KAAK,CAACvR,EAAE0pG,OAAO,MAAMvqG,IAAIA,EAAEa,EAAE6kH,OAAO1lH,EAAkB8mH,GAAGjmH,EAAb6tH,GAAG7tH,EAAEsR,EAAEnS,IAAW,MAAMD,CAAC,EAAEc,EAAEA,EAAEk6F,MAAM,OAAO,OAAOl6F,EAAE,CAACs3H,GAAGl4H,EAAE,CAAC,MAAMs+G,GAAIv+G,EAAEu+G,EAAGoX,KAAI11H,GAAG,OAAOA,IAAI01H,GAAE11H,EAAEA,EAAE86F,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAAC,SAASw8B,KAAK,IAAIx3H,EAAEy1H,GAAGrlC,QAAsB,OAAdqlC,GAAGrlC,QAAQ24B,GAAU,OAAO/oH,EAAE+oH,GAAG/oH,CAAC,CACrd,SAASyxH,KAAQ,IAAInqH,IAAG,IAAIA,IAAG,IAAIA,KAAEA,GAAE,GAAE,OAAO8iH,IAAG,KAAQ,UAAHpD,KAAe,KAAQ,UAAH+O,KAAeY,GAAGvM,GAAEyL,GAAE,CAAC,SAAS0B,GAAGv3H,EAAEC,GAAG,IAAIC,EAAEgH,GAAEA,IAAG,EAAE,IAAIoc,EAAEk0G,KAAqC,IAA7BpN,KAAIpqH,GAAG61H,KAAI51H,IAAEk2H,GAAG,KAAKsB,GAAGz3H,EAAEC,UAAUo4H,KAAK,KAAK,CAAC,MAAMt1H,GAAG40H,GAAG33H,EAAE+C,EAAE,CAAgC,GAAtBqiH,KAAKl+G,GAAEhH,EAAEu1H,GAAGrlC,QAAQ9sE,EAAK,OAAOsyG,GAAE,MAAM1/G,MAAM5D,EAAE,MAAiB,OAAX83G,GAAE,KAAKyL,GAAE,EAASvuH,EAAC,CAAC,SAAS+wH,KAAK,KAAK,OAAOzC,IAAG0C,GAAG1C,GAAE,CAAC,SAAS8B,KAAK,KAAK,OAAO9B,KAAItqB,MAAMgtB,GAAG1C,GAAE,CAAC,SAAS0C,GAAGt4H,GAAG,IAAIC,EAAEs1H,GAAGv1H,EAAEuqG,UAAUvqG,EAAEkwH,IAAIlwH,EAAE4jH,cAAc5jH,EAAEqjH,aAAa,OAAOpjH,EAAEm4H,GAAGp4H,GAAG41H,GAAE31H,EAAEy1H,GAAGtlC,QAAQ,IAAI,CAC1d,SAASgoC,GAAGp4H,GAAG,IAAIC,EAAED,EAAE,EAAE,CAAC,IAAIE,EAAED,EAAEsqG,UAAqB,GAAXvqG,EAAEC,EAAE+6F,OAAU,KAAa,MAAR/6F,EAAEuqG,QAAc,GAAgB,QAAbtqG,EAAEsyH,GAAGtyH,EAAED,EAAEiwH,KAAkB,YAAJ0F,GAAE11H,OAAc,CAAW,GAAG,QAAbA,EAAEizH,GAAGjzH,EAAED,IAAmC,OAAnBC,EAAEsqG,OAAO,WAAMorB,GAAE11H,GAAS,GAAG,OAAOF,EAAmE,OAAXsH,GAAE,OAAEsuH,GAAE,MAA5D51H,EAAEwqG,OAAO,MAAMxqG,EAAE6xH,aAAa,EAAE7xH,EAAEmjH,UAAU,IAA4B,CAAa,GAAG,QAAfljH,EAAEA,EAAE8qG,SAAyB,YAAJ6qB,GAAE31H,GAAS21H,GAAE31H,EAAED,CAAC,OAAO,OAAOC,GAAG,IAAIqH,KAAIA,GAAE,EAAE,CAAC,SAAS0wH,GAAGh4H,EAAEC,EAAEC,GAAG,IAAIojB,EAAE9gB,GAAEO,EAAE4yH,GAAGtlB,WAAW,IAAIslB,GAAGtlB,WAAW,KAAK7tG,GAAE,EAC3Y,SAAYxC,EAAEC,EAAEC,EAAEojB,GAAG,GAAGg0G,WAAW,OAAOjB,IAAI,GAAG,KAAO,EAAFnvH,IAAK,MAAMgP,MAAM5D,EAAE,MAAMpS,EAAEF,EAAE83H,aAAa,IAAI/0H,EAAE/C,EAAE+3H,cAAc,GAAG,OAAO73H,EAAE,OAAO,KAA2C,GAAtCF,EAAE83H,aAAa,KAAK93H,EAAE+3H,cAAc,EAAK73H,IAAIF,EAAEowF,QAAQ,MAAMl6E,MAAM5D,EAAE,MAAMtS,EAAE62H,aAAa,KAAK72H,EAAEi3H,iBAAiB,EAAE,IAAIn2H,EAAEZ,EAAEylH,MAAMzlH,EAAEslH,WAA8J,GAzNtT,SAAYxlH,EAAEC,GAAG,IAAIC,EAAEF,EAAEgtG,cAAc/sG,EAAED,EAAEgtG,aAAa/sG,EAAED,EAAEitG,eAAe,EAAEjtG,EAAEktG,YAAY,EAAEltG,EAAE+2H,cAAc92H,EAAED,EAAEu4H,kBAAkBt4H,EAAED,EAAEmtG,gBAAgBltG,EAAEA,EAAED,EAAEotG,cAAc,IAAI9pF,EAAEtjB,EAAE0tG,WAAW,IAAI1tG,EAAEA,EAAE82H,gBAAgB,EAAE52H,GAAG,CAAC,IAAI6C,EAAE,GAAGwpG,GAAGrsG,GAAGY,EAAE,GAAGiC,EAAE9C,EAAE8C,GAAG,EAAEugB,EAAEvgB,IAAI,EAAE/C,EAAE+C,IAAI,EAAE7C,IAAIY,CAAC,CAAC,CAyN5G03H,CAAGx4H,EAAEc,GAAGd,IAAIoqH,KAAIwL,GAAExL,GAAE,KAAKyL,GAAE,GAAG,KAAoB,KAAf31H,EAAE2xH,eAAoB,KAAa,KAAR3xH,EAAEsqG,QAAa4rB,KAAKA,IAAG,EAAGgB,GAAGprB,IAAG,WAAgB,OAALsrB,KAAY,IAAI,KAAIx2H,EAAE,KAAa,MAARZ,EAAEsqG,OAAgB,KAAoB,MAAftqG,EAAE2xH,eAAqB/wH,EAAE,CAACA,EAAE60H,GAAGtlB,WAAWslB,GAAGtlB,WAAW,KAChf,IAAIjtF,EAAE5gB,GAAEA,GAAE,EAAE,IAAI4P,EAAElL,GAAEA,IAAG,EAAEwuH,GAAGtlC,QAAQ,KA1CpC,SAAYpwF,EAAEC,GAAgB,GAAbm/G,GAAGjP,GAAawK,GAAV36G,EAAEy6G,MAAc,CAAC,GAAG,mBAAmBz6G,EAAE,IAAIE,EAAE,CAACwT,MAAM1T,EAAEg7G,eAAe1jF,IAAIt3B,EAAEi7G,mBAAmBj7G,EAAE,CAA8C,IAAIsjB,GAAjDpjB,GAAGA,EAAEF,EAAE4jG,gBAAgB1jG,EAAEg7G,aAAal4G,QAAem4G,cAAcj7G,EAAEi7G,eAAe,GAAG73F,GAAG,IAAIA,EAAE+3F,WAAW,CAACn7G,EAAEojB,EAAEg4F,WAAW,IAAIv4G,EAAEugB,EAAEi4F,aAAaz6G,EAAEwiB,EAAEk4F,UAAUl4F,EAAEA,EAAEm4F,YAAY,IAAIv7G,EAAE6kG,SAASjkG,EAAEikG,QAAQ,CAAC,MAAMljG,GAAG3B,EAAE,KAAK,MAAMF,CAAC,CAAC,IAAIojB,EAAE,EAAEhR,GAAG,EAAEhL,GAAG,EAAE6D,EAAE,EAAE0kC,EAAE,EAAEr5B,EAAEtW,EAAEmS,EAAE,KAAKlS,EAAE,OAAO,CAAC,IAAI,IAAIgkC,EAAK3tB,IAAIpW,GAAG,IAAI6C,GAAG,IAAIuT,EAAEyuF,WAAW3yF,EAAEgR,EAAErgB,GAAGuT,IAAIxV,GAAG,IAAIwiB,GAAG,IAAIhN,EAAEyuF,WAAW39F,EAAEgc,EAAEE,GAAG,IAAIhN,EAAEyuF,WAAW3hF,GACnf9M,EAAE0uF,UAAUzoG,QAAW,QAAQ0nC,EAAE3tB,EAAEquF,aAAkBxyF,EAAEmE,EAAEA,EAAE2tB,EAAE,OAAO,CAAC,GAAG3tB,IAAItW,EAAE,MAAMC,EAA8C,GAA5CkS,IAAIjS,KAAK+K,IAAIlI,IAAIqP,EAAEgR,GAAGjR,IAAIrR,KAAK6uC,IAAIrsB,IAAIlc,EAAEgc,GAAM,QAAQ6gB,EAAE3tB,EAAE+jG,aAAa,MAAUloG,GAAJmE,EAAEnE,GAAM0yC,UAAU,CAACvuC,EAAE2tB,CAAC,CAAC/jC,GAAG,IAAIkS,IAAI,IAAIhL,EAAE,KAAK,CAACsM,MAAMtB,EAAEklB,IAAIlwB,EAAE,MAAMlH,EAAE,IAAI,CAACA,EAAEA,GAAG,CAACwT,MAAM,EAAE4jB,IAAI,EAAE,MAAMp3B,EAAE,KAA+C,IAA1Cm/G,GAAG,CAACvE,YAAY96G,EAAE+6G,eAAe76G,GAAGiwG,IAAG,EAAOojB,GAAEtzH,EAAE,OAAOszH,IAAG,GAAOvzH,GAAJC,EAAEszH,IAAMzoB,MAAM,KAAoB,KAAf7qG,EAAE4xH,eAAoB,OAAO7xH,EAAEA,EAAEg7F,OAAO/6F,EAAEszH,GAAEvzH,OAAO,KAAK,OAAOuzH,IAAG,CAACtzH,EAAEszH,GAAE,IAAI,IAAI3jH,EAAE3P,EAAEsqG,UAAU,GAAG,KAAa,KAARtqG,EAAEuqG,OAAY,OAAOvqG,EAAEkK,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GACvK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAA3W,KAAK,EAAE,GAAG,OAAOyF,EAAE,CAAC,IAAID,EAAEC,EAAEg0G,cAAc1F,EAAEtuG,EAAE86F,cAAcpvE,EAAEr7B,EAAEmpG,UAAUhjG,EAAEk1B,EAAEuyF,wBAAwB5tH,EAAEw5F,cAAcx5F,EAAEuB,KAAKmO,EAAEi9G,GAAG3sH,EAAEuB,KAAKmO,GAAGuuG,GAAG5iF,EAAEg6F,oCAAoClvH,CAAC,CAAC,MAAM,KAAK,EAAE,IAAIiM,EAAEpS,EAAEmpG,UAAUqG,cAAc,IAAIp9F,EAAE0yF,SAAS1yF,EAAE8B,YAAY,GAAG,IAAI9B,EAAE0yF,UAAU1yF,EAAE/O,iBAAiB+O,EAAEm3C,YAAYn3C,EAAE/O,iBAAiB,MAAyC,QAAQ,MAAM4S,MAAM5D,EAAE,MAAO,CAAC,MAAMzQ,GAAGS,GAAErC,EAAEA,EAAE+6F,OAAOn5F,EAAE,CAAa,GAAG,QAAf7B,EAAEC,EAAE8qG,SAAoB,CAAC/qG,EAAEg7F,OAAO/6F,EAAE+6F,OAAOu4B,GAAEvzH,EAAE,KAAK,CAACuzH,GAAEtzH,EAAE+6F,MAAM,CAACprF,EAAE8jH,GAAGA,IAAG,CAAW,CAwCld+E,CAAGz4H,EAAEE,GAAG20H,GAAG30H,EAAEF,GAAG66G,GAAGwE,IAAIlP,KAAKiP,GAAGC,GAAGD,GAAG,KAAKp/G,EAAEowF,QAAQlwF,EAAEg1H,GAAGh1H,EAAEF,EAAE+C,GAAGyoG,KAAKtkG,GAAEkL,EAAE5P,GAAE4gB,EAAEuyG,GAAGtlB,WAAWvvG,CAAC,MAAMd,EAAEowF,QAAQlwF,EAAsF,GAApFk2H,KAAKA,IAAG,EAAGC,GAAGr2H,EAAEs2H,GAAGvzH,GAAGjC,EAAEd,EAAEgtG,aAAa,IAAIlsG,IAAI+tH,GAAG,MAhOmJ,SAAY7uH,GAAG,GAAGw7D,IAAI,oBAAoBA,GAAGk9D,kBAAkB,IAAIl9D,GAAGk9D,kBAAkBpsB,GAAGtsG,OAAE,EAAO,OAAuB,IAAhBA,EAAEowF,QAAQoa,OAAW,CAAC,MAAMvqG,GAAG,CAAC,CAgOxR04H,CAAGz4H,EAAEkpG,WAAawtB,GAAG52H,EAAEoC,MAAQ,OAAOnC,EAAE,IAAIqjB,EAAEtjB,EAAE44H,mBAAmB14H,EAAE,EAAEA,EAAED,EAAE1D,OAAO2D,IAAI6C,EAAE9C,EAAEC,GAAGojB,EAAEvgB,EAAEjF,MAAM,CAACgxH,eAAe/rH,EAAEmtE,MAAMi+C,OAAOprH,EAAEorH,SAAS,GAAGM,GAAG,MAAMA,IAAG,EAAGzuH,EAAE0uH,GAAGA,GAAG,KAAK1uH,EAAE,KAAQ,EAAHs2H,KAAO,IAAIt2H,EAAEmK,KAAKmtH,KAAKx2H,EAAEd,EAAEgtG,aAAa,KAAO,EAAFlsG,GAAKd,IAAIw2H,GAAGD,MAAMA,GAAG,EAAEC,GAAGx2H,GAAGu2H,GAAG,EAAEvU,IAAgB,CAFxF6W,CAAG74H,EAAEC,EAAEC,EAAEojB,EAAE,CAAC,QAAQqyG,GAAGtlB,WAAWttG,EAAEP,GAAE8gB,CAAC,CAAC,OAAO,IAAI,CAGhc,SAASg0G,KAAK,GAAG,OAAOjB,GAAG,CAAC,IAAIr2H,EAAE4tG,GAAG0oB,IAAIr2H,EAAE01H,GAAGtlB,WAAWnwG,EAAEsC,GAAE,IAAmC,GAA/BmzH,GAAGtlB,WAAW,KAAK7tG,GAAE,GAAGxC,EAAE,GAAGA,EAAK,OAAOq2H,GAAG,IAAI/yG,GAAE,MAAO,CAAmB,GAAlBtjB,EAAEq2H,GAAGA,GAAG,KAAKC,GAAG,EAAK,KAAO,EAAFpvH,IAAK,MAAMgP,MAAM5D,EAAE,MAAM,IAAIvP,EAAEmE,GAAO,IAALA,IAAG,EAAMqsH,GAAEvzH,EAAEowF,QAAQ,OAAOmjC,IAAG,CAAC,IAAIzyH,EAAEyyH,GAAEnwG,EAAEtiB,EAAEgqG,MAAM,GAAG,KAAa,GAARyoB,GAAE/oB,OAAU,CAAC,IAAIp4F,EAAEtR,EAAEqiH,UAAU,GAAG,OAAO/wG,EAAE,CAAC,IAAI,IAAIhL,EAAE,EAAEA,EAAEgL,EAAE7V,OAAO6K,IAAI,CAAC,IAAI6D,EAAEmH,EAAEhL,GAAG,IAAImsH,GAAEtoH,EAAE,OAAOsoH,IAAG,CAAC,IAAI5jF,EAAE4jF,GAAE,OAAO5jF,EAAExlC,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGwpH,GAAG,EAAEhkF,EAAE7uC,GAAG,IAAIwV,EAAEq5B,EAAEm7D,MAAM,GAAG,OAAOx0F,EAAEA,EAAE0kF,OAAOrrD,EAAE4jF,GAAEj9G,OAAO,KAAK,OAAOi9G,IAAG,CAAK,IAAIphH,GAARw9B,EAAE4jF,IAAUxoB,QAAQ9mE,EAAE0L,EAAEqrD,OAAa,GAAN84B,GAAGnkF,GAAMA,IACnf1kC,EAAE,CAACsoH,GAAE,KAAK,KAAK,CAAC,GAAG,OAAOphH,EAAE,CAACA,EAAE6oF,OAAO/2D,EAAEsvF,GAAEphH,EAAE,KAAK,CAACohH,GAAEtvF,CAAC,CAAC,CAAC,CAAC,IAAIr0B,EAAE9O,EAAEypG,UAAU,GAAG,OAAO36F,EAAE,CAAC,IAAID,EAAEC,EAAEk7F,MAAM,GAAG,OAAOn7F,EAAE,CAACC,EAAEk7F,MAAM,KAAK,EAAE,CAAC,IAAIoT,EAAEvuG,EAAEo7F,QAAQp7F,EAAEo7F,QAAQ,KAAKp7F,EAAEuuG,CAAC,OAAO,OAAOvuG,EAAE,CAAC,CAAC4jH,GAAEzyH,CAAC,CAAC,CAAC,GAAG,KAAoB,KAAfA,EAAE+wH,eAAoB,OAAOzuG,EAAEA,EAAE43E,OAAOl6F,EAAEyyH,GAAEnwG,OAAOnjB,EAAE,KAAK,OAAOszH,IAAG,CAAK,GAAG,KAAa,MAApBzyH,EAAEyyH,IAAY/oB,OAAY,OAAO1pG,EAAEqJ,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGwpH,GAAG,EAAE7yH,EAAEA,EAAEk6F,QAAQ,IAAI1/D,EAAEx6B,EAAEiqG,QAAQ,GAAG,OAAOzvE,EAAE,CAACA,EAAE0/D,OAAOl6F,EAAEk6F,OAAOu4B,GAAEj4F,EAAE,MAAMr7B,CAAC,CAACszH,GAAEzyH,EAAEk6F,MAAM,CAAC,CAAC,IAAI50F,EAAEpG,EAAEowF,QAAQ,IAAImjC,GAAEntH,EAAE,OAAOmtH,IAAG,CAAK,IAAIlhH,GAAR+Q,EAAEmwG,IAAUzoB,MAAM,GAAG,KAAoB,KAAf1nF,EAAEyuG,eAAoB,OAClfx/G,EAAEA,EAAE2oF,OAAO53E,EAAEmwG,GAAElhH,OAAOpS,EAAE,IAAImjB,EAAEhd,EAAE,OAAOmtH,IAAG,CAAK,GAAG,KAAa,MAApBnhH,EAAEmhH,IAAY/oB,OAAY,IAAI,OAAOp4F,EAAEjI,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGypH,GAAG,EAAExhH,GAAG,CAAC,MAAMosG,GAAIl8G,GAAE8P,EAAEA,EAAE4oF,OAAOwjB,EAAG,CAAC,GAAGpsG,IAAIgR,EAAE,CAACmwG,GAAE,KAAK,MAAMtzH,CAAC,CAAC,IAAI4B,EAAEuQ,EAAE24F,QAAQ,GAAG,OAAOlpG,EAAE,CAACA,EAAEm5F,OAAO5oF,EAAE4oF,OAAOu4B,GAAE1xH,EAAE,MAAM5B,CAAC,CAACszH,GAAEnhH,EAAE4oF,MAAM,CAAC,CAAU,GAAT9zF,GAAEnE,EAAEi/G,KAAQxmD,IAAI,oBAAoBA,GAAGs9D,sBAAsB,IAAIt9D,GAAGs9D,sBAAsBxsB,GAAGtsG,EAAE,CAAC,MAAMw+G,GAAI,CAACl7F,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQ9gB,GAAEtC,EAAEy1H,GAAGtlB,WAAWpwG,CAAC,CAAC,CAAC,OAAM,CAAE,CAAC,SAAS84H,GAAG/4H,EAAEC,EAAEC,GAAyBF,EAAE6mH,GAAG7mH,EAAjBC,EAAEuuH,GAAGxuH,EAAfC,EAAEguH,GAAG/tH,EAAED,GAAY,GAAY,GAAGA,EAAE2C,KAAI,OAAO5C,IAAIytG,GAAGztG,EAAE,EAAEC,GAAG22H,GAAG52H,EAAEC,GAAG,CACze,SAASqC,GAAEtC,EAAEC,EAAEC,GAAG,GAAG,IAAIF,EAAEmK,IAAI4uH,GAAG/4H,EAAEA,EAAEE,QAAQ,KAAK,OAAOD,GAAG,CAAC,GAAG,IAAIA,EAAEkK,IAAI,CAAC4uH,GAAG94H,EAAED,EAAEE,GAAG,KAAK,CAAM,GAAG,IAAID,EAAEkK,IAAI,CAAC,IAAImZ,EAAErjB,EAAEmpG,UAAU,GAAG,oBAAoBnpG,EAAEuB,KAAKgW,0BAA0B,oBAAoB8L,EAAEsrG,oBAAoB,OAAOC,KAAKA,GAAGxtH,IAAIiiB,IAAI,CAAuBrjB,EAAE4mH,GAAG5mH,EAAjBD,EAAE2uH,GAAG1uH,EAAfD,EAAEiuH,GAAG/tH,EAAEF,GAAY,GAAY,GAAGA,EAAE4C,KAAI,OAAO3C,IAAIwtG,GAAGxtG,EAAE,EAAED,GAAG42H,GAAG32H,EAAED,IAAI,KAAK,CAAC,CAACC,EAAEA,EAAE+6F,MAAM,CAAC,CACnV,SAASi0B,GAAGjvH,EAAEC,EAAEC,GAAG,IAAIojB,EAAEtjB,EAAEgvH,UAAU,OAAO1rG,GAAGA,EAAEurF,OAAO5uG,GAAGA,EAAE2C,KAAI5C,EAAEktG,aAAaltG,EAAEitG,eAAe/sG,EAAEkqH,KAAIpqH,IAAI61H,GAAE31H,KAAKA,IAAI,IAAIoH,IAAG,IAAIA,KAAM,UAAFuuH,MAAeA,IAAG,IAAIzzH,KAAI4yH,GAAGyC,GAAGz3H,EAAE,GAAGg2H,IAAI91H,GAAG02H,GAAG52H,EAAEC,EAAE,CAAC,SAAS+4H,GAAGh5H,EAAEC,GAAG,IAAIA,IAAI,KAAY,EAAPD,EAAEyK,MAAQxK,EAAE,GAAGA,EAAE4oD,GAAU,KAAQ,WAAfA,KAAK,MAAuBA,GAAG,WAAW,IAAI3oD,EAAE0C,KAAc,QAAV5C,EAAEkmH,GAAGlmH,EAAEC,MAAcwtG,GAAGztG,EAAEC,EAAEC,GAAG02H,GAAG52H,EAAEE,GAAG,CAAC,SAASwxH,GAAG1xH,GAAG,IAAIC,EAAED,EAAE0qG,cAAcxqG,EAAE,EAAE,OAAOD,IAAIC,EAAED,EAAEsjH,WAAWyV,GAAGh5H,EAAEE,EAAE,CACjZ,SAASy0H,GAAG30H,EAAEC,GAAG,IAAIC,EAAE,EAAE,OAAOF,EAAEmK,KAAK,KAAK,GAAG,IAAImZ,EAAEtjB,EAAEopG,UAAcrmG,EAAE/C,EAAE0qG,cAAc,OAAO3nG,IAAI7C,EAAE6C,EAAEwgH,WAAW,MAAM,KAAK,GAAGjgG,EAAEtjB,EAAEopG,UAAU,MAAM,QAAQ,MAAMlzF,MAAM5D,EAAE,MAAO,OAAOgR,GAAGA,EAAEurF,OAAO5uG,GAAG+4H,GAAGh5H,EAAEE,EAAE,CAQqK,SAASk3H,GAAGp3H,EAAEC,GAAG,OAAOirG,GAAGlrG,EAAEC,EAAE,CACjZ,SAASg5H,GAAGj5H,EAAEC,EAAEC,EAAEojB,GAAG7gB,KAAK0H,IAAInK,EAAEyC,KAAK7F,IAAIsD,EAAEuC,KAAKsoG,QAAQtoG,KAAKqoG,MAAMroG,KAAKu4F,OAAOv4F,KAAK2mG,UAAU3mG,KAAKjB,KAAKiB,KAAKg3F,YAAY,KAAKh3F,KAAKnD,MAAM,EAAEmD,KAAKk5F,IAAI,KAAKl5F,KAAK4gH,aAAapjH,EAAEwC,KAAKgjH,aAAahjH,KAAKioG,cAAcjoG,KAAK4jH,YAAY5jH,KAAKmhH,cAAc,KAAKnhH,KAAKgI,KAAK6Y,EAAE7gB,KAAKovH,aAAapvH,KAAK+nG,MAAM,EAAE/nG,KAAK0gH,UAAU,KAAK1gH,KAAK+iH,WAAW/iH,KAAKkjH,MAAM,EAAEljH,KAAK8nG,UAAU,IAAI,CAAC,SAAS2Y,GAAGljH,EAAEC,EAAEC,EAAEojB,GAAG,OAAO,IAAI21G,GAAGj5H,EAAEC,EAAEC,EAAEojB,EAAE,CAAC,SAASosG,GAAG1vH,GAAiB,UAAdA,EAAEA,EAAEjD,aAAuBiD,EAAEk5H,iBAAiB,CAEpd,SAAS1U,GAAGxkH,EAAEC,GAAG,IAAIC,EAAEF,EAAEuqG,UACuB,OADb,OAAOrqG,IAAGA,EAAEgjH,GAAGljH,EAAEmK,IAAIlK,EAAED,EAAEpD,IAAIoD,EAAEyK,OAAQgvF,YAAYz5F,EAAEy5F,YAAYv5F,EAAEsB,KAAKxB,EAAEwB,KAAKtB,EAAEkpG,UAAUppG,EAAEopG,UAAUlpG,EAAEqqG,UAAUvqG,EAAEA,EAAEuqG,UAAUrqG,IAAIA,EAAEmjH,aAAapjH,EAAEC,EAAEsB,KAAKxB,EAAEwB,KAAKtB,EAAEsqG,MAAM,EAAEtqG,EAAE2xH,aAAa,EAAE3xH,EAAEijH,UAAU,MAAMjjH,EAAEsqG,MAAc,SAARxqG,EAAEwqG,MAAetqG,EAAEslH,WAAWxlH,EAAEwlH,WAAWtlH,EAAEylH,MAAM3lH,EAAE2lH,MAAMzlH,EAAE4qG,MAAM9qG,EAAE8qG,MAAM5qG,EAAE0jH,cAAc5jH,EAAE4jH,cAAc1jH,EAAEwqG,cAAc1qG,EAAE0qG,cAAcxqG,EAAEmmH,YAAYrmH,EAAEqmH,YAAYpmH,EAAED,EAAEylH,aAAavlH,EAAEulH,aAAa,OAAOxlH,EAAE,KAAK,CAAC0lH,MAAM1lH,EAAE0lH,MAAMD,aAAazlH,EAAEylH,cAC/exlH,EAAE6qG,QAAQ/qG,EAAE+qG,QAAQ7qG,EAAEZ,MAAMU,EAAEV,MAAMY,EAAEy7F,IAAI37F,EAAE27F,IAAWz7F,CAAC,CACxD,SAASwkH,GAAG1kH,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,GAAG,IAAIsiB,EAAE,EAAM,GAAJE,EAAEtjB,EAAK,oBAAoBA,EAAE0vH,GAAG1vH,KAAKojB,EAAE,QAAQ,GAAG,kBAAkBpjB,EAAEojB,EAAE,OAAOpjB,EAAE,OAAOA,GAAG,KAAKygG,EAAG,OAAOokB,GAAG3kH,EAAEs7E,SAASz4E,EAAEjC,EAAEb,GAAG,KAAKygG,EAAGt9E,EAAE,EAAErgB,GAAG,EAAE,MAAM,KAAK49F,EAAG,OAAO3gG,EAAEkjH,GAAG,GAAGhjH,EAAED,EAAI,EAAF8C,IAAO02F,YAAYkH,EAAG3gG,EAAE2lH,MAAM7kH,EAAEd,EAAE,KAAK+gG,EAAG,OAAO/gG,EAAEkjH,GAAG,GAAGhjH,EAAED,EAAE8C,IAAK02F,YAAYsH,EAAG/gG,EAAE2lH,MAAM7kH,EAAEd,EAAE,KAAKghG,EAAG,OAAOhhG,EAAEkjH,GAAG,GAAGhjH,EAAED,EAAE8C,IAAK02F,YAAYuH,EAAGhhG,EAAE2lH,MAAM7kH,EAAEd,EAAE,KAAKmhG,EAAG,OAAOiwB,GAAGlxH,EAAE6C,EAAEjC,EAAEb,GAAG,QAAQ,GAAG,kBAAkBD,GAAG,OAAOA,EAAE,OAAOA,EAAEgiG,UAAU,KAAKpB,EAAGx9E,EAAE,GAAG,MAAMpjB,EAAE,KAAK6gG,EAAGz9E,EAAE,EAAE,MAAMpjB,EAAE,KAAK8gG,EAAG19E,EAAE,GACpf,MAAMpjB,EAAE,KAAKihG,EAAG79E,EAAE,GAAG,MAAMpjB,EAAE,KAAKkhG,EAAG99E,EAAE,GAAGE,EAAE,KAAK,MAAMtjB,EAAE,MAAMkW,MAAM5D,EAAE,IAAI,MAAMtS,EAAEA,SAASA,EAAE,KAAuD,OAAjDC,EAAEijH,GAAG9/F,EAAEljB,EAAED,EAAE8C,IAAK02F,YAAYz5F,EAAEC,EAAEuB,KAAK8hB,EAAErjB,EAAE0lH,MAAM7kH,EAASb,CAAC,CAAC,SAAS4kH,GAAG7kH,EAAEC,EAAEC,EAAEojB,GAA2B,OAAxBtjB,EAAEkjH,GAAG,EAAEljH,EAAEsjB,EAAErjB,IAAK0lH,MAAMzlH,EAASF,CAAC,CAAC,SAASoxH,GAAGpxH,EAAEC,EAAEC,EAAEojB,GAAuE,OAApEtjB,EAAEkjH,GAAG,GAAGljH,EAAEsjB,EAAErjB,IAAKw5F,YAAY0H,EAAGnhG,EAAE2lH,MAAMzlH,EAAEF,EAAEopG,UAAU,CAAC2rB,UAAS,GAAW/0H,CAAC,CAAC,SAASykH,GAAGzkH,EAAEC,EAAEC,GAA8B,OAA3BF,EAAEkjH,GAAG,EAAEljH,EAAE,KAAKC,IAAK0lH,MAAMzlH,EAASF,CAAC,CAC5W,SAAS4kH,GAAG5kH,EAAEC,EAAEC,GAA8J,OAA3JD,EAAEijH,GAAG,EAAE,OAAOljH,EAAEw7E,SAASx7E,EAAEw7E,SAAS,GAAGx7E,EAAEpD,IAAIqD,IAAK0lH,MAAMzlH,EAAED,EAAEmpG,UAAU,CAACqG,cAAczvG,EAAEyvG,cAAc0pB,gBAAgB,KAAKxU,eAAe3kH,EAAE2kH,gBAAuB1kH,CAAC,CACtL,SAASm5H,GAAGp5H,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAGN,KAAK0H,IAAIlK,EAAEwC,KAAKgtG,cAAczvG,EAAEyC,KAAKq1H,aAAar1H,KAAKusH,UAAUvsH,KAAK2tF,QAAQ3tF,KAAK02H,gBAAgB,KAAK12H,KAAKw1H,eAAe,EAAEx1H,KAAKo0H,aAAap0H,KAAKkuH,eAAeluH,KAAK8uE,QAAQ,KAAK9uE,KAAKw0H,iBAAiB,EAAEx0H,KAAKirG,WAAWF,GAAG,GAAG/qG,KAAKq0H,gBAAgBtpB,IAAI,GAAG/qG,KAAK0qG,eAAe1qG,KAAKs1H,cAAct1H,KAAK81H,iBAAiB91H,KAAKs0H,aAAat0H,KAAKyqG,YAAYzqG,KAAKwqG,eAAexqG,KAAKuqG,aAAa,EAAEvqG,KAAK2qG,cAAcI,GAAG,GAAG/qG,KAAKkqH,iBAAiBrpG,EAAE7gB,KAAKm2H,mBAAmB71H,EAAEN,KAAK42H,gCAC/e,IAAI,CAAC,SAASC,GAAGt5H,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,EAAEsiB,EAAEhR,EAAEhL,GAAgN,OAA7MpH,EAAE,IAAIo5H,GAAGp5H,EAAEC,EAAEC,EAAEkS,EAAEhL,GAAG,IAAInH,GAAGA,EAAE,GAAE,IAAKa,IAAIb,GAAG,IAAIA,EAAE,EAAEa,EAAEoiH,GAAG,EAAE,KAAK,KAAKjjH,GAAGD,EAAEowF,QAAQtvF,EAAEA,EAAEsoG,UAAUppG,EAAEc,EAAE4pG,cAAc,CAACrpF,QAAQiC,EAAEksF,aAAatvG,EAAE+nD,MAAM,KAAK+nE,YAAY,KAAKuJ,0BAA0B,MAAMnT,GAAGtlH,GAAUd,CAAC,CACzP,SAASw5H,GAAGx5H,GAAG,IAAIA,EAAE,OAAO8gH,GAAuB9gH,EAAE,CAAC,GAAGsqG,GAA1BtqG,EAAEA,EAAEgtH,mBAA8BhtH,GAAG,IAAIA,EAAEmK,IAAI,MAAM+L,MAAM5D,EAAE,MAAM,IAAIrS,EAAED,EAAE,EAAE,CAAC,OAAOC,EAAEkK,KAAK,KAAK,EAAElK,EAAEA,EAAEmpG,UAAU73B,QAAQ,MAAMvxE,EAAE,KAAK,EAAE,GAAGqhH,GAAGphH,EAAEuB,MAAM,CAACvB,EAAEA,EAAEmpG,UAAUuY,0CAA0C,MAAM3hH,CAAC,EAAEC,EAAEA,EAAE+6F,MAAM,OAAO,OAAO/6F,GAAG,MAAMiW,MAAM5D,EAAE,KAAM,CAAC,GAAG,IAAItS,EAAEmK,IAAI,CAAC,IAAIjK,EAAEF,EAAEwB,KAAK,GAAG6/G,GAAGnhH,GAAG,OAAOshH,GAAGxhH,EAAEE,EAAED,EAAE,CAAC,OAAOA,CAAC,CACpW,SAASd,GAAGa,EAAEC,EAAEC,EAAEojB,EAAEvgB,EAAEjC,EAAEsiB,EAAEhR,EAAEhL,GAAwK,OAArKpH,EAAEs5H,GAAGp5H,EAAEojB,GAAE,EAAGtjB,EAAE+C,EAAEjC,EAAEsiB,EAAEhR,EAAEhL,IAAKmqE,QAAQioD,GAAG,MAAMt5H,EAAEF,EAAEowF,SAAsBtvF,EAAE4lH,GAAhBpjG,EAAE1gB,KAAIG,EAAE2oH,GAAGxrH,KAAeiqB,cAAS,IAASlqB,GAAG,OAAOA,EAAEA,EAAE,KAAK4mH,GAAG3mH,EAAEY,EAAEiC,GAAG/C,EAAEowF,QAAQu1B,MAAM5iH,EAAE0qG,GAAGztG,EAAE+C,EAAEugB,GAAGszG,GAAG52H,EAAEsjB,GAAUtjB,CAAC,CAAC,SAASy5H,GAAGz5H,EAAEC,EAAEC,EAAEojB,GAAG,IAAIvgB,EAAE9C,EAAEmwF,QAAQtvF,EAAE8B,KAAIwgB,EAAEsoG,GAAG3oH,GAAsL,OAAnL7C,EAAEs5H,GAAGt5H,GAAG,OAAOD,EAAEsxE,QAAQtxE,EAAEsxE,QAAQrxE,EAAED,EAAE0wH,eAAezwH,GAAED,EAAEymH,GAAG5lH,EAAEsiB,IAAKwH,QAAQ,CAACvJ,QAAQrhB,GAAuB,QAApBsjB,OAAE,IAASA,EAAE,KAAKA,KAAarjB,EAAEkqB,SAAS7G,GAAe,QAAZtjB,EAAE6mH,GAAG9jH,EAAE9C,EAAEmjB,MAAcsnG,GAAG1qH,EAAE+C,EAAEqgB,EAAEtiB,GAAGgmH,GAAG9mH,EAAE+C,EAAEqgB,IAAWA,CAAC,CAC3b,SAASs2G,GAAG15H,GAAe,OAAZA,EAAEA,EAAEowF,SAAc0a,OAAyB9qG,EAAE8qG,MAAM3gG,IAAoDnK,EAAE8qG,MAAM1B,WAAhF,IAA0F,CAAC,SAASuwB,GAAG35H,EAAEC,GAAqB,GAAG,QAArBD,EAAEA,EAAE0qG,gBAA2B,OAAO1qG,EAAE2qG,WAAW,CAAC,IAAIzqG,EAAEF,EAAEujH,UAAUvjH,EAAEujH,UAAU,IAAIrjH,GAAGA,EAAED,EAAEC,EAAED,CAAC,CAAC,CAAC,SAAS25H,GAAG55H,EAAEC,GAAG05H,GAAG35H,EAAEC,IAAID,EAAEA,EAAEuqG,YAAYovB,GAAG35H,EAAEC,EAAE,CAnB7Ss1H,GAAG,SAASv1H,EAAEC,EAAEC,GAAG,GAAG,OAAOF,EAAE,GAAGA,EAAE4jH,gBAAgB3jH,EAAEojH,cAAcrC,GAAG5wB,QAAQw1B,IAAG,MAAO,CAAC,GAAG,KAAK5lH,EAAE2lH,MAAMzlH,IAAI,KAAa,IAARD,EAAEuqG,OAAW,OAAOob,IAAG,EAzE1I,SAAY5lH,EAAEC,EAAEC,GAAG,OAAOD,EAAEkK,KAAK,KAAK,EAAEumH,GAAGzwH,GAAG6jH,KAAK,MAAM,KAAK,EAAE0D,GAAGvnH,GAAG,MAAM,KAAK,EAAEohH,GAAGphH,EAAEuB,OAAOkgH,GAAGzhH,GAAG,MAAM,KAAK,EAAEqnH,GAAGrnH,EAAEA,EAAEmpG,UAAUqG,eAAe,MAAM,KAAK,GAAG,IAAInsF,EAAErjB,EAAEuB,KAAKygG,SAASl/F,EAAE9C,EAAE2jH,cAAc9lH,MAAMiE,GAAEijH,GAAG1hG,EAAEgiG,eAAehiG,EAAEgiG,cAAcviH,EAAE,MAAM,KAAK,GAAqB,GAAG,QAArBugB,EAAErjB,EAAEyqG,eAA2B,OAAG,OAAOpnF,EAAEqnF,YAAkB5oG,GAAE2lH,GAAY,EAAVA,GAAEt3B,SAAWnwF,EAAEuqG,OAAO,IAAI,MAAQ,KAAKtqG,EAAED,EAAE6qG,MAAM0a,YAAmB0L,GAAGlxH,EAAEC,EAAEC,IAAG6B,GAAE2lH,GAAY,EAAVA,GAAEt3B,SAA8B,QAAnBpwF,EAAEwvH,GAAGxvH,EAAEC,EAAEC,IAAmBF,EAAE+qG,QAAQ,MAAKhpG,GAAE2lH,GAAY,EAAVA,GAAEt3B,SAAW,MAAM,KAAK,GAC7d,GADge9sE,EAAE,KAAKpjB,EACrfD,EAAEulH,YAAe,KAAa,IAARxlH,EAAEwqG,OAAW,CAAC,GAAGlnF,EAAE,OAAOgvG,GAAGtyH,EAAEC,EAAEC,GAAGD,EAAEuqG,OAAO,GAAG,CAA6F,GAA1E,QAAlBznG,EAAE9C,EAAEyqG,iBAAyB3nG,EAAEkvH,UAAU,KAAKlvH,EAAEqvH,KAAK,KAAKrvH,EAAEunH,WAAW,MAAMvoH,GAAE2lH,GAAEA,GAAEt3B,SAAY9sE,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOrjB,EAAE0lH,MAAM,EAAEkK,GAAG7vH,EAAEC,EAAEC,GAAG,OAAOsvH,GAAGxvH,EAAEC,EAAEC,EAAE,CAwE7G25H,CAAG75H,EAAEC,EAAEC,GAAG0lH,GAAG,KAAa,OAAR5lH,EAAEwqG,MAAmB,MAAMob,IAAG,EAAG7C,IAAG,KAAa,QAAR9iH,EAAEuqG,QAAgBkY,GAAGziH,EAAEmiH,GAAGniH,EAAEX,OAAiB,OAAVW,EAAE0lH,MAAM,EAAS1lH,EAAEkK,KAAK,KAAK,EAAE,IAAImZ,EAAErjB,EAAEuB,KAAK6uH,GAAGrwH,EAAEC,GAAGD,EAAEC,EAAEojH,aAAa,IAAItgH,EAAEm+G,GAAGjhH,EAAE8gH,GAAE3wB,SAASroC,GAAG9nD,EAAEC,GAAG6C,EAAE4lH,GAAG,KAAK1oH,EAAEqjB,EAAEtjB,EAAE+C,EAAE7C,GAAG,IAAIY,EAAEkoH,KACvI,OAD4I/oH,EAAEuqG,OAAO,EAAE,kBAAkBznG,GAAG,OAAOA,GAAG,oBAAoBA,EAAEkR,aAAQ,IAASlR,EAAEi/F,UAAU/hG,EAAEkK,IAAI,EAAElK,EAAEyqG,cAAc,KAAKzqG,EAAEomH,YAC1e,KAAKhF,GAAG/9F,IAAIxiB,GAAE,EAAG4gH,GAAGzhH,IAAIa,GAAE,EAAGb,EAAEyqG,cAAc,OAAO3nG,EAAE49E,YAAO,IAAS59E,EAAE49E,MAAM59E,EAAE49E,MAAM,KAAKylC,GAAGnmH,GAAG8C,EAAEyqH,QAAQV,GAAG7sH,EAAEmpG,UAAUrmG,EAAEA,EAAEiqH,gBAAgB/sH,EAAE2tH,GAAG3tH,EAAEqjB,EAAEtjB,EAAEE,GAAGD,EAAEwwH,GAAG,KAAKxwH,EAAEqjB,GAAE,EAAGxiB,EAAEZ,KAAKD,EAAEkK,IAAI,EAAE44G,IAAGjiH,GAAG6hH,GAAG1iH,GAAGqvH,GAAG,KAAKrvH,EAAE8C,EAAE7C,GAAGD,EAAEA,EAAE6qG,OAAc7qG,EAAE,KAAK,GAAGqjB,EAAErjB,EAAEw5F,YAAYz5F,EAAE,CAAqF,OAApFqwH,GAAGrwH,EAAEC,GAAGD,EAAEC,EAAEojH,aAAuB//F,GAAVvgB,EAAEugB,EAAE6+E,OAAU7+E,EAAE4+E,UAAUjiG,EAAEuB,KAAK8hB,EAAEvgB,EAAE9C,EAAEkK,IAQtU,SAAYnK,GAAG,GAAG,oBAAoBA,EAAE,OAAO0vH,GAAG1vH,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEgiG,YAAgBlB,EAAG,OAAO,GAAG,GAAG9gG,IAAIihG,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAR2L64B,CAAGx2G,GAAGtjB,EAAE4sH,GAAGtpG,EAAEtjB,GAAU+C,GAAG,KAAK,EAAE9C,EAAE2vH,GAAG,KAAK3vH,EAAEqjB,EAAEtjB,EAAEE,GAAG,MAAMF,EAAE,KAAK,EAAEC,EAAEmwH,GAAG,KAAKnwH,EAAEqjB,EAAEtjB,EAAEE,GAAG,MAAMF,EAAE,KAAK,GAAGC,EAAEsvH,GAAG,KAAKtvH,EAAEqjB,EAAEtjB,EAAEE,GAAG,MAAMF,EAAE,KAAK,GAAGC,EAAEwvH,GAAG,KAAKxvH,EAAEqjB,EAAEspG,GAAGtpG,EAAE9hB,KAAKxB,GAAGE,GAAG,MAAMF,EAAE,MAAMkW,MAAM5D,EAAE,IACvgBgR,EAAE,IAAK,CAAC,OAAOrjB,EAAE,KAAK,EAAE,OAAOqjB,EAAErjB,EAAEuB,KAAKuB,EAAE9C,EAAEojH,aAA2CuM,GAAG5vH,EAAEC,EAAEqjB,EAArCvgB,EAAE9C,EAAEw5F,cAAcn2E,EAAEvgB,EAAE6pH,GAAGtpG,EAAEvgB,GAAc7C,GAAG,KAAK,EAAE,OAAOojB,EAAErjB,EAAEuB,KAAKuB,EAAE9C,EAAEojH,aAA2C+M,GAAGpwH,EAAEC,EAAEqjB,EAArCvgB,EAAE9C,EAAEw5F,cAAcn2E,EAAEvgB,EAAE6pH,GAAGtpG,EAAEvgB,GAAc7C,GAAG,KAAK,EAAEF,EAAE,CAAO,GAAN0wH,GAAGzwH,GAAM,OAAOD,EAAE,MAAMkW,MAAM5D,EAAE,MAAMgR,EAAErjB,EAAEojH,aAA+BtgH,GAAlBjC,EAAEb,EAAEyqG,eAAkBrpF,QAAQk9C,GAAGv+D,EAAEC,GAAGoV,GAAGpV,EAAEqjB,EAAE,KAAKpjB,GAAG,IAAIkjB,EAAEnjB,EAAEyqG,cAA0B,GAAZpnF,EAAEF,EAAE/B,QAAWvgB,EAAE0uG,aAAY,CAAC,GAAG1uG,EAAE,CAACugB,QAAQiC,EAAEksF,cAAa,EAAGvnD,MAAM7kC,EAAE6kC,MAAMsxE,0BAA0Bn2G,EAAEm2G,0BAA0BvJ,YAAY5sG,EAAE4sG,aAAa/vH,EAAEomH,YAAYC,UAChfxlH,EAAEb,EAAEyqG,cAAc5pG,EAAU,IAARb,EAAEuqG,MAAU,CAAuBvqG,EAAE4jD,GAAG7jD,EAAEC,EAAEqjB,EAAEpjB,EAAjC6C,EAAEkrH,GAAG/3G,MAAM5D,EAAE,MAAMrS,IAAmB,MAAMD,CAAC,CAAM,GAAGsjB,IAAIvgB,EAAE,CAAuB9C,EAAE4jD,GAAG7jD,EAAEC,EAAEqjB,EAAEpjB,EAAjC6C,EAAEkrH,GAAG/3G,MAAM5D,EAAE,MAAMrS,IAAmB,MAAMD,CAAC,CAAM,IAAI8iH,GAAG3C,GAAGlgH,EAAEmpG,UAAUqG,cAAc9K,YAAYke,GAAG5iH,EAAE8iH,IAAE,EAAGC,GAAG,KAAK9iH,EAAE6kH,GAAG9kH,EAAE,KAAKqjB,EAAEpjB,GAAGD,EAAE6qG,MAAM5qG,EAAEA,GAAGA,EAAEsqG,OAAe,EAATtqG,EAAEsqG,MAAS,KAAKtqG,EAAEA,EAAE6qG,OAAQ,KAAI,CAAM,GAAL+Y,KAAQxgG,IAAIvgB,EAAE,CAAC9C,EAAEuvH,GAAGxvH,EAAEC,EAAEC,GAAG,MAAMF,CAAC,CAACsvH,GAAGtvH,EAAEC,EAAEqjB,EAAEpjB,EAAE,CAACD,EAAEA,EAAE6qG,KAAK,CAAC,OAAO7qG,EAAE,KAAK,EAAE,OAAOunH,GAAGvnH,GAAG,OAAOD,GAAGyjH,GAAGxjH,GAAGqjB,EAAErjB,EAAEuB,KAAKuB,EAAE9C,EAAEojH,aAAaviH,EAAE,OAAOd,EAAEA,EAAE4jH,cAAc,KAAKxgG,EAAErgB,EAAEy4E,SAAS8jC,GAAGh8F,EAAEvgB,GAAGqgB,EAAE,KAAK,OAAOtiB,GAAGw+G,GAAGh8F,EAAExiB,KAAKb,EAAEuqG,OAAO,IACnf2lB,GAAGnwH,EAAEC,GAAGqvH,GAAGtvH,EAAEC,EAAEmjB,EAAEljB,GAAGD,EAAE6qG,MAAM,KAAK,EAAE,OAAO,OAAO9qG,GAAGyjH,GAAGxjH,GAAG,KAAK,KAAK,GAAG,OAAOixH,GAAGlxH,EAAEC,EAAEC,GAAG,KAAK,EAAE,OAAOonH,GAAGrnH,EAAEA,EAAEmpG,UAAUqG,eAAensF,EAAErjB,EAAEojH,aAAa,OAAOrjH,EAAEC,EAAE6qG,MAAMga,GAAG7kH,EAAE,KAAKqjB,EAAEpjB,GAAGovH,GAAGtvH,EAAEC,EAAEqjB,EAAEpjB,GAAGD,EAAE6qG,MAAM,KAAK,GAAG,OAAOxnF,EAAErjB,EAAEuB,KAAKuB,EAAE9C,EAAEojH,aAA2CkM,GAAGvvH,EAAEC,EAAEqjB,EAArCvgB,EAAE9C,EAAEw5F,cAAcn2E,EAAEvgB,EAAE6pH,GAAGtpG,EAAEvgB,GAAc7C,GAAG,KAAK,EAAE,OAAOovH,GAAGtvH,EAAEC,EAAEA,EAAEojH,aAAanjH,GAAGD,EAAE6qG,MAAM,KAAK,EAAmD,KAAK,GAAG,OAAOwkB,GAAGtvH,EAAEC,EAAEA,EAAEojH,aAAa7nC,SAASt7E,GAAGD,EAAE6qG,MAAM,KAAK,GAAG9qG,EAAE,CACxZ,GADyZsjB,EAAErjB,EAAEuB,KAAKygG,SAASl/F,EAAE9C,EAAEojH,aAAaviH,EAAEb,EAAE2jH,cAClfxgG,EAAErgB,EAAEjF,MAAMiE,GAAEijH,GAAG1hG,EAAEgiG,eAAehiG,EAAEgiG,cAAcliG,EAAK,OAAOtiB,EAAE,GAAGm5G,GAAGn5G,EAAEhD,MAAMslB,IAAI,GAAGtiB,EAAE06E,WAAWz4E,EAAEy4E,WAAWwlC,GAAG5wB,QAAQ,CAACnwF,EAAEuvH,GAAGxvH,EAAEC,EAAEC,GAAG,MAAMF,CAAC,OAAO,IAAc,QAAVc,EAAEb,EAAE6qG,SAAiBhqG,EAAEk6F,OAAO/6F,GAAG,OAAOa,GAAG,CAAC,IAAIsR,EAAEtR,EAAE2kH,aAAa,GAAG,OAAOrzG,EAAE,CAACgR,EAAEtiB,EAAEgqG,MAAM,IAAI,IAAI1jG,EAAEgL,EAAEszG,aAAa,OAAOt+G,GAAG,CAAC,GAAGA,EAAEmqE,UAAUjuD,EAAE,CAAC,GAAG,IAAIxiB,EAAEqJ,IAAI,EAAC/C,EAAEs/G,IAAI,EAAExmH,GAAGA,IAAKiK,IAAI,EAAE,IAAIc,EAAEnK,EAAEulH,YAAY,GAAG,OAAOp7G,EAAE,CAAY,IAAI0kC,GAAf1kC,EAAEA,EAAEZ,QAAeo8G,QAAQ,OAAO92E,EAAEvoC,EAAErD,KAAKqD,GAAGA,EAAErD,KAAK4rC,EAAE5rC,KAAK4rC,EAAE5rC,KAAKqD,GAAG6D,EAAEw7G,QAAQr/G,CAAC,CAAC,CAACtG,EAAE6kH,OAAOzlH,EAAgB,QAAdkH,EAAEtG,EAAEypG,aAAqBnjG,EAAEu+G,OAAOzlH,GAAGqlH,GAAGzkH,EAAEk6F,OAClf96F,EAAED,GAAGmS,EAAEuzG,OAAOzlH,EAAE,KAAK,CAACkH,EAAEA,EAAErD,IAAI,CAAC,MAAM,GAAG,KAAKjD,EAAEqJ,IAAIiZ,EAAEtiB,EAAEU,OAAOvB,EAAEuB,KAAK,KAAKV,EAAEgqG,WAAW,GAAG,KAAKhqG,EAAEqJ,IAAI,CAAY,GAAG,QAAdiZ,EAAEtiB,EAAEk6F,QAAmB,MAAM9kF,MAAM5D,EAAE,MAAM8Q,EAAEuiG,OAAOzlH,EAAgB,QAAdkS,EAAEgR,EAAEmnF,aAAqBn4F,EAAEuzG,OAAOzlH,GAAGqlH,GAAGniG,EAAEljB,EAAED,GAAGmjB,EAAEtiB,EAAEiqG,OAAO,MAAM3nF,EAAEtiB,EAAEgqG,MAAM,GAAG,OAAO1nF,EAAEA,EAAE43E,OAAOl6F,OAAO,IAAIsiB,EAAEtiB,EAAE,OAAOsiB,GAAG,CAAC,GAAGA,IAAInjB,EAAE,CAACmjB,EAAE,KAAK,KAAK,CAAa,GAAG,QAAftiB,EAAEsiB,EAAE2nF,SAAoB,CAACjqG,EAAEk6F,OAAO53E,EAAE43E,OAAO53E,EAAEtiB,EAAE,KAAK,CAACsiB,EAAEA,EAAE43E,MAAM,CAACl6F,EAAEsiB,CAAC,CAACksG,GAAGtvH,EAAEC,EAAE8C,EAAEy4E,SAASt7E,GAAGD,EAAEA,EAAE6qG,KAAK,CAAC,OAAO7qG,EAAE,KAAK,EAAE,OAAO8C,EAAE9C,EAAEuB,KAAK8hB,EAAErjB,EAAEojH,aAAa7nC,SAASzzB,GAAG9nD,EAAEC,GAAWojB,EAAEA,EAAVvgB,EAAE8iH,GAAG9iH,IAAU9C,EAAEuqG,OAAO,EAAE8kB,GAAGtvH,EAAEC,EAAEqjB,EAAEpjB,GACpfD,EAAE6qG,MAAM,KAAK,GAAG,OAAgB/nG,EAAE6pH,GAAXtpG,EAAErjB,EAAEuB,KAAYvB,EAAEojH,cAA6BoM,GAAGzvH,EAAEC,EAAEqjB,EAAtBvgB,EAAE6pH,GAAGtpG,EAAE9hB,KAAKuB,GAAc7C,GAAG,KAAK,GAAG,OAAOyvH,GAAG3vH,EAAEC,EAAEA,EAAEuB,KAAKvB,EAAEojH,aAAanjH,GAAG,KAAK,GAAG,OAAOojB,EAAErjB,EAAEuB,KAAKuB,EAAE9C,EAAEojH,aAAatgH,EAAE9C,EAAEw5F,cAAcn2E,EAAEvgB,EAAE6pH,GAAGtpG,EAAEvgB,GAAGstH,GAAGrwH,EAAEC,GAAGA,EAAEkK,IAAI,EAAEk3G,GAAG/9F,IAAItjB,GAAE,EAAG0hH,GAAGzhH,IAAID,GAAE,EAAG+nD,GAAG9nD,EAAEC,GAAGqtH,GAAGttH,EAAEqjB,EAAEvgB,GAAG6qH,GAAG3tH,EAAEqjB,EAAEvgB,EAAE7C,GAAGuwH,GAAG,KAAKxwH,EAAEqjB,GAAE,EAAGtjB,EAAEE,GAAG,KAAK,GAAG,OAAOoyH,GAAGtyH,EAAEC,EAAEC,GAAG,KAAK,GAAG,OAAO2vH,GAAG7vH,EAAEC,EAAEC,GAAG,MAAMgW,MAAM5D,EAAE,IAAIrS,EAAEkK,KAAM,EAYxC,IAAI4vH,GAAG,oBAAoBC,YAAYA,YAAY,SAASh6H,GAAG+S,QAAQ9B,MAAMjR,EAAE,EAAE,SAASi6H,GAAGj6H,GAAGyC,KAAKy3H,cAAcl6H,CAAC,CACjI,SAAS4jD,GAAG5jD,GAAGyC,KAAKy3H,cAAcl6H,CAAC,CAC5J,SAASm6H,GAAGn6H,GAAG,SAASA,GAAG,IAAIA,EAAE+kG,UAAU,IAAI/kG,EAAE+kG,UAAU,KAAK/kG,EAAE+kG,SAAS,CAAC,SAASq1B,GAAGp6H,GAAG,SAASA,GAAG,IAAIA,EAAE+kG,UAAU,IAAI/kG,EAAE+kG,UAAU,KAAK/kG,EAAE+kG,WAAW,IAAI/kG,EAAE+kG,UAAU,iCAAiC/kG,EAAEglG,WAAW,CAAC,SAASq1B,KAAK,CAExa,SAASC,GAAGt6H,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,IAAIjC,EAAEZ,EAAEg0H,oBAAoB,GAAGpzH,EAAE,CAAC,IAAIsiB,EAAEtiB,EAAE,GAAG,oBAAoBiC,EAAE,CAAC,IAAIqP,EAAErP,EAAEA,EAAE,WAAW,IAAI/C,EAAE05H,GAAGt2G,GAAGhR,EAAE9U,KAAK0C,EAAE,CAAC,CAACy5H,GAAGx5H,EAAEmjB,EAAEpjB,EAAE+C,EAAE,MAAMqgB,EADxJ,SAAYpjB,EAAEC,EAAEC,EAAEojB,EAAEvgB,GAAG,GAAGA,EAAE,CAAC,GAAG,oBAAoBugB,EAAE,CAAC,IAAIxiB,EAAEwiB,EAAEA,EAAE,WAAW,IAAItjB,EAAE05H,GAAGt2G,GAAGtiB,EAAExD,KAAK0C,EAAE,CAAC,CAAC,IAAIojB,EAAEjkB,GAAGc,EAAEqjB,EAAEtjB,EAAE,EAAE,MAAK,EAAG,EAAG,GAAGq6H,IAAmF,OAA/Er6H,EAAEk0H,oBAAoB9wG,EAAEpjB,EAAEo+G,IAAIh7F,EAAEgtE,QAAQ2tB,GAAG,IAAI/9G,EAAE+kG,SAAS/kG,EAAE6kD,WAAW7kD,GAAGm4H,KAAY/0G,CAAC,CAAC,KAAKrgB,EAAE/C,EAAE8kG,WAAW9kG,EAAEwpD,YAAYzmD,GAAG,GAAG,oBAAoBugB,EAAE,CAAC,IAAIlR,EAAEkR,EAAEA,EAAE,WAAW,IAAItjB,EAAE05H,GAAGtyH,GAAGgL,EAAE9U,KAAK0C,EAAE,CAAC,CAAC,IAAIoH,EAAEkyH,GAAGt5H,EAAE,GAAE,EAAG,KAAK,GAAK,EAAG,EAAG,GAAGq6H,IAA0G,OAAtGr6H,EAAEk0H,oBAAoB9sH,EAAEpH,EAAEo+G,IAAIh3G,EAAEgpF,QAAQ2tB,GAAG,IAAI/9G,EAAE+kG,SAAS/kG,EAAE6kD,WAAW7kD,GAAGm4H,IAAG,WAAWsB,GAAGx5H,EAAEmH,EAAElH,EAAEojB,EAAE,IAAUlc,CAAC,CACpUmzH,CAAGr6H,EAAED,EAAED,EAAE+C,EAAEugB,GAAG,OAAOo2G,GAAGt2G,EAAE,CAHpLwgC,GAAG7mD,UAAUkX,OAAOgmH,GAAGl9H,UAAUkX,OAAO,SAASjU,GAAG,IAAIC,EAAEwC,KAAKy3H,cAAc,GAAG,OAAOj6H,EAAE,MAAMiW,MAAM5D,EAAE,MAAMmnH,GAAGz5H,EAAEC,EAAE,KAAK,KAAK,EAAE2jD,GAAG7mD,UAAUy9H,QAAQP,GAAGl9H,UAAUy9H,QAAQ,WAAW,IAAIx6H,EAAEyC,KAAKy3H,cAAc,GAAG,OAAOl6H,EAAE,CAACyC,KAAKy3H,cAAc,KAAK,IAAIj6H,EAAED,EAAEyvG,cAAc0oB,IAAG,WAAWsB,GAAG,KAAKz5H,EAAE,KAAK,KAAK,IAAGC,EAAEm+G,IAAI,IAAI,CAAC,EACzTx6D,GAAG7mD,UAAU09H,2BAA2B,SAASz6H,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAE+tG,KAAKhuG,EAAE,CAACivG,UAAU,KAAK7yG,OAAO4D,EAAEuvG,SAAStvG,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAEwuG,GAAGnyG,QAAQ,IAAI0D,GAAGA,EAAEyuG,GAAGxuG,GAAGqvG,SAASrvG,KAAKwuG,GAAG/4F,OAAOzV,EAAE,EAAEF,GAAG,IAAIE,GAAGmvG,GAAGrvG,EAAE,CAAC,EAEX6tG,GAAG,SAAS7tG,GAAG,OAAOA,EAAEmK,KAAK,KAAK,EAAE,IAAIlK,EAAED,EAAEopG,UAAU,GAAGnpG,EAAEmwF,QAAQsa,cAAc8E,aAAa,CAAC,IAAItvG,EAAE4sG,GAAG7sG,EAAE+sG,cAAc,IAAI9sG,IAAIytG,GAAG1tG,EAAI,EAAFC,GAAK02H,GAAG32H,EAAEmC,MAAK,KAAO,EAAF8E,MAAO+rH,GAAG7wH,KAAI,IAAI4/G,MAAM,CAAC,MAAM,KAAK,GAAGmW,IAAG,WAAW,IAAIl4H,EAAEimH,GAAGlmH,EAAE,GAAG,GAAG,OAAOC,EAAE,CAAC,IAAIC,EAAE0C,KAAI8nH,GAAGzqH,EAAED,EAAE,EAAEE,EAAE,CAAC,IAAG05H,GAAG55H,EAAE,GAAG,EAC/b8tG,GAAG,SAAS9tG,GAAG,GAAG,KAAKA,EAAEmK,IAAI,CAAC,IAAIlK,EAAEimH,GAAGlmH,EAAE,WAAW,GAAG,OAAOC,EAAayqH,GAAGzqH,EAAED,EAAE,UAAX4C,MAAwBg3H,GAAG55H,EAAE,UAAU,CAAC,EAAE+tG,GAAG,SAAS/tG,GAAG,GAAG,KAAKA,EAAEmK,IAAI,CAAC,IAAIlK,EAAEyrH,GAAG1rH,GAAGE,EAAEgmH,GAAGlmH,EAAEC,GAAG,GAAG,OAAOC,EAAawqH,GAAGxqH,EAAEF,EAAEC,EAAX2C,MAAgBg3H,GAAG55H,EAAEC,EAAE,CAAC,EAAE+tG,GAAG,WAAW,OAAOxrG,EAAC,EAAEyrG,GAAG,SAASjuG,EAAEC,GAAG,IAAIC,EAAEsC,GAAE,IAAI,OAAOA,GAAExC,EAAEC,GAAG,CAAC,QAAQuC,GAAEtC,CAAC,CAAC,EAClS6oG,GAAG,SAAS/oG,EAAEC,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAyB,GAAjByjG,EAAG1jG,EAAEE,GAAGD,EAAEC,EAAEuB,KAAQ,UAAUvB,EAAEsB,MAAM,MAAMvB,EAAE,CAAC,IAAIC,EAAEF,EAAEE,EAAE2kD,YAAY3kD,EAAEA,EAAE2kD,WAAsF,IAA3E3kD,EAAEA,EAAEyoD,iBAAiB,cAAcv7C,KAAKE,UAAU,GAAGrN,GAAG,mBAAuBA,EAAE,EAAEA,EAAEC,EAAE3D,OAAO0D,IAAI,CAAC,IAAIqjB,EAAEpjB,EAAED,GAAG,GAAGqjB,IAAItjB,GAAGsjB,EAAEo3G,OAAO16H,EAAE06H,KAAK,CAAC,IAAI33H,EAAEsmG,GAAG/lF,GAAG,IAAIvgB,EAAE,MAAMmT,MAAM5D,EAAE,KAAKuwF,EAAGv/E,GAAGogF,EAAGpgF,EAAEvgB,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAWqhG,GAAGpkG,EAAEE,GAAG,MAAM,IAAK,SAAmB,OAAVD,EAAEC,EAAEpC,QAAeslE,GAAGpjE,IAAIE,EAAEyyH,SAAS1yH,GAAE,GAAI,EAAEupG,GAAG0uB,GAAGzuB,GAAG0uB,GACpa,IAAIwC,GAAG,CAACC,uBAAsB,EAAGC,OAAO,CAAC1xB,GAAGgQ,GAAG9P,GAAGC,GAAGC,GAAG2uB,KAAK4C,GAAG,CAACC,wBAAwBzrB,GAAG0rB,WAAW,EAAEt7H,QAAQ,SAASu7H,oBAAoB,aAC1IC,GAAG,CAACF,WAAWF,GAAGE,WAAWt7H,QAAQo7H,GAAGp7H,QAAQu7H,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,gBAAgB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBz7B,EAAG6nB,uBAAuB6T,wBAAwB,SAAS97H,GAAW,OAAO,QAAfA,EAAE6qG,GAAG7qG,IAAmB,KAAKA,EAAEopG,SAAS,EAAE2xB,wBAAwBD,GAAGC,yBARjN,WAAc,OAAO,IAAI,EASpUgB,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,KAAKC,kBAAkB,mCAAmC,GAAG,qBAAqBC,+BAA+B,CAAC,IAAIC,GAAGD,+BAA+B,IAAIC,GAAGC,YAAYD,GAAGE,cAAc,IAAIlwB,GAAGgwB,GAAGG,OAAOvB,IAAI1/D,GAAG8gE,EAAE,CAAC,MAAMt8H,IAAG,CAAC,CAACvE,EAAQ4kG,mDAAmDs6B,GAC/Yl/H,EAAQihI,aAAa,SAAS18H,EAAEC,GAAG,IAAIC,EAAE,EAAEhD,UAAUX,aAAQ,IAASW,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIi9H,GAAGl6H,GAAG,MAAMiW,MAAM5D,EAAE,MAAM,OAbuH,SAAYtS,EAAEC,EAAEC,GAAG,IAAIojB,EAAE,EAAEpmB,UAAUX,aAAQ,IAASW,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAAC8kG,SAASxB,EAAG5jG,IAAI,MAAM0mB,EAAE,KAAK,GAAGA,EAAEk4D,SAASx7E,EAAEyvG,cAAcxvG,EAAE0kH,eAAezkH,EAAE,CAa1RipB,CAAGnpB,EAAEC,EAAE,KAAKC,EAAE,EAAEzE,EAAQkhI,WAAW,SAAS38H,EAAEC,GAAG,IAAIk6H,GAAGn6H,GAAG,MAAMkW,MAAM5D,EAAE,MAAM,IAAIpS,GAAE,EAAGojB,EAAE,GAAGvgB,EAAEg3H,GAA4P,OAAzP,OAAO95H,QAAG,IAASA,KAAI,IAAKA,EAAE28H,sBAAsB18H,GAAE,QAAI,IAASD,EAAE0sH,mBAAmBrpG,EAAErjB,EAAE0sH,uBAAkB,IAAS1sH,EAAE24H,qBAAqB71H,EAAE9C,EAAE24H,qBAAqB34H,EAAEq5H,GAAGt5H,EAAE,GAAE,EAAG,KAAK,EAAKE,EAAE,EAAGojB,EAAEvgB,GAAG/C,EAAEo+G,IAAIn+G,EAAEmwF,QAAQ2tB,GAAG,IAAI/9G,EAAE+kG,SAAS/kG,EAAE6kD,WAAW7kD,GAAU,IAAIi6H,GAAGh6H,EAAE,EACrfxE,EAAQohI,YAAY,SAAS78H,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAE+kG,SAAS,OAAO/kG,EAAE,IAAIC,EAAED,EAAEgtH,gBAAgB,QAAG,IAAS/sH,EAAE,CAAC,GAAG,oBAAoBD,EAAEiU,OAAO,MAAMiC,MAAM5D,EAAE,MAAiC,MAA3BtS,EAAE5C,OAAOmH,KAAKvE,GAAGqH,KAAK,KAAW6O,MAAM5D,EAAE,IAAItS,GAAI,CAAqC,OAA5BA,EAAE,QAAVA,EAAE6qG,GAAG5qG,IAAc,KAAKD,EAAEopG,SAAkB,EAAE3tG,EAAQqhI,UAAU,SAAS98H,GAAG,OAAOm4H,GAAGn4H,EAAE,EAAEvE,EAAQshI,QAAQ,SAAS/8H,EAAEC,EAAEC,GAAG,IAAIk6H,GAAGn6H,GAAG,MAAMiW,MAAM5D,EAAE,MAAM,OAAOgoH,GAAG,KAAKt6H,EAAEC,GAAE,EAAGC,EAAE,EAC/YzE,EAAQuhI,YAAY,SAASh9H,EAAEC,EAAEC,GAAG,IAAIi6H,GAAGn6H,GAAG,MAAMkW,MAAM5D,EAAE,MAAM,IAAIgR,EAAE,MAAMpjB,GAAGA,EAAE+8H,iBAAiB,KAAKl6H,GAAE,EAAGjC,EAAE,GAAGsiB,EAAE22G,GAAyO,GAAtO,OAAO75H,QAAG,IAASA,KAAI,IAAKA,EAAE08H,sBAAsB75H,GAAE,QAAI,IAAS7C,EAAEysH,mBAAmB7rH,EAAEZ,EAAEysH,uBAAkB,IAASzsH,EAAE04H,qBAAqBx1G,EAAEljB,EAAE04H,qBAAqB34H,EAAEd,GAAGc,EAAE,KAAKD,EAAE,EAAE,MAAME,EAAEA,EAAE,KAAK6C,EAAE,EAAGjC,EAAEsiB,GAAGpjB,EAAEo+G,IAAIn+G,EAAEmwF,QAAQ2tB,GAAG/9G,GAAMsjB,EAAE,IAAItjB,EAAE,EAAEA,EAAEsjB,EAAE/mB,OAAOyD,IAA2B+C,GAAhBA,GAAP7C,EAAEojB,EAAEtjB,IAAOk9H,aAAgBh9H,EAAEi9H,SAAS,MAAMl9H,EAAEo5H,gCAAgCp5H,EAAEo5H,gCAAgC,CAACn5H,EAAE6C,GAAG9C,EAAEo5H,gCAAgCp4H,KAAKf,EACvhB6C,GAAG,OAAO,IAAI6gD,GAAG3jD,EAAE,EAAExE,EAAQwY,OAAO,SAASjU,EAAEC,EAAEC,GAAG,IAAIk6H,GAAGn6H,GAAG,MAAMiW,MAAM5D,EAAE,MAAM,OAAOgoH,GAAG,KAAKt6H,EAAEC,GAAE,EAAGC,EAAE,EAAEzE,EAAQ2hI,uBAAuB,SAASp9H,GAAG,IAAIo6H,GAAGp6H,GAAG,MAAMkW,MAAM5D,EAAE,KAAK,QAAOtS,EAAEk0H,sBAAqBiE,IAAG,WAAWmC,GAAG,KAAK,KAAKt6H,GAAE,GAAG,WAAWA,EAAEk0H,oBAAoB,KAAKl0H,EAAEo+G,IAAI,IAAI,GAAE,KAAG,EAAM,EAAE3iH,EAAQ4hI,wBAAwBnF,GAC/Uz8H,EAAQ6hI,oCAAoC,SAASt9H,EAAEC,EAAEC,EAAEojB,GAAG,IAAI82G,GAAGl6H,GAAG,MAAMgW,MAAM5D,EAAE,MAAM,GAAG,MAAMtS,QAAG,IAASA,EAAEgtH,gBAAgB,MAAM92G,MAAM5D,EAAE,KAAK,OAAOgoH,GAAGt6H,EAAEC,EAAEC,GAAE,EAAGojB,EAAE,EAAE7nB,EAAQiE,QAAQ,+DC/T7L,IAAIiwC,EAAIj0C,EAAQ,MAEdD,EAAQkhI,WAAahtF,EAAEgtF,WACvBlhI,EAAQuhI,YAAcrtF,EAAEqtF,0CCH1B,SAASO,IAEP,GAC4C,qBAAnClB,gCAC4C,oBAA5CA,+BAA+BkB,SAcxC,IAEElB,+BAA+BkB,SAASA,EAC1C,CAAE,MAAOjzG,GAGPvX,QAAQ9B,MAAMqZ,EAChB,CACF,CAKEizG,GACA/hI,EAAOC,QAAU,EAAjBD,6BChCF,IAAIkI,EAAUD,MAAMC,QAChB85H,EAAUpgI,OAAOmH,KACjBk5H,EAAUrgI,OAAOL,UAAUM,eAC3BqgI,EAAoC,qBAAZj/B,QAE5B,SAASk/B,EAAM39H,EAAGC,GAEhB,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,IAEI3D,EACAC,EACAK,EAJAghI,EAAOl6H,EAAQ1D,GACf69H,EAAOn6H,EAAQzD,GAKnB,GAAI29H,GAAQC,EAAM,CAEhB,IADAthI,EAASyD,EAAEzD,SACG0D,EAAE1D,OAAQ,OAAO,EAC/B,IAAKD,EAAIC,EAAgB,IAARD,KACf,IAAKqhI,EAAM39H,EAAE1D,GAAI2D,EAAE3D,IAAK,OAAO,EACjC,OAAO,CACT,CAEA,GAAIshI,GAAQC,EAAM,OAAO,EAEzB,IAAIC,EAAQ99H,aAAaqa,KACrB0jH,EAAQ99H,aAAaoa,KACzB,GAAIyjH,GAASC,EAAO,OAAO,EAC3B,GAAID,GAASC,EAAO,OAAO/9H,EAAEg+H,WAAa/9H,EAAE+9H,UAE5C,IAAIC,EAAUj+H,aAAak+H,OACvBC,EAAUl+H,aAAai+H,OAC3B,GAAID,GAAWE,EAAS,OAAO,EAC/B,GAAIF,GAAWE,EAAS,OAAOn+H,EAAET,YAAcU,EAAEV,WAEjD,IAAIgF,EAAOi5H,EAAQx9H,GAGnB,IAFAzD,EAASgI,EAAKhI,UAECihI,EAAQv9H,GAAG1D,OACxB,OAAO,EAET,IAAKD,EAAIC,EAAgB,IAARD,KACf,IAAKmhI,EAAQngI,KAAK2C,EAAGsE,EAAKjI,IAAK,OAAO,EAKxC,GAAIohI,GAAkB19H,aAAay+F,SAAWx+F,aAAaw+F,QACzD,OAAOz+F,IAAMC,EAGf,IAAK3D,EAAIC,EAAgB,IAARD,KAEf,IAAY,YADZM,EAAM2H,EAAKjI,MACa0D,EAAEgiG,YAQnB27B,EAAM39H,EAAEpD,GAAMqD,EAAErD,IAAO,OAAO,EAMvC,OAAO,CACT,CAEA,OAAOoD,IAAMA,GAAKC,IAAMA,CAC1B,CAGAzE,EAAOC,QAAU,SAAuBuE,EAAGC,GACzC,IACE,OAAO09H,EAAM39H,EAAGC,EAClB,CAAE,MAAOgR,GACP,GAAKA,EAAMi9G,SAAWj9G,EAAMi9G,QAAQ13G,MAAM,sBAA2C,aAAlBvF,EAAMqoF,OAOvE,OADAvmF,QAAQi2C,KAAK,mEAAoE/3C,EAAMxP,KAAMwP,EAAMi9G,UAC5F,EAGT,MAAMj9G,CACR,CACF,6BCpFa,IAAIhR,EAAE,oBAAoBgH,QAAQA,OAAOs5F,IAAIrgG,EAAED,EAAEgH,OAAOs5F,IAAI,iBAAiB,MAAMj9E,EAAErjB,EAAEgH,OAAOs5F,IAAI,gBAAgB,MAAMx9F,EAAE9C,EAAEgH,OAAOs5F,IAAI,kBAAkB,MAAMz/F,EAAEb,EAAEgH,OAAOs5F,IAAI,qBAAqB,MAAMn9E,EAAEnjB,EAAEgH,OAAOs5F,IAAI,kBAAkB,MAAMnuF,EAAEnS,EAAEgH,OAAOs5F,IAAI,kBAAkB,MAAMn5F,EAAEnH,EAAEgH,OAAOs5F,IAAI,iBAAiB,MAAMt1F,EAAEhL,EAAEgH,OAAOs5F,IAAI,oBAAoB,MAAM5wD,EAAE1vC,EAAEgH,OAAOs5F,IAAI,yBAAyB,MAAM3wF,EAAE3P,EAAEgH,OAAOs5F,IAAI,qBAAqB,MAAMjuF,EAAErS,EAAEgH,OAAOs5F,IAAI,kBAAkB,MAAMjqF,EAAErW,EACpfgH,OAAOs5F,IAAI,uBAAuB,MAAMpuF,EAAElS,EAAEgH,OAAOs5F,IAAI,cAAc,MAAM5wF,EAAE1P,EAAEgH,OAAOs5F,IAAI,cAAc,MAAMp9E,EAAEljB,EAAEgH,OAAOs5F,IAAI,eAAe,MAAMn6F,EAAEnG,EAAEgH,OAAOs5F,IAAI,qBAAqB,MAAMjlE,EAAEr7B,EAAEgH,OAAOs5F,IAAI,mBAAmB,MAAMt8D,EAAEhkC,EAAEgH,OAAOs5F,IAAI,eAAe,MAClQ,SAASjuD,EAAEtyC,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIqS,EAAErS,EAAEgiG,SAAS,OAAO3vF,GAAG,KAAKnS,EAAE,OAAOF,EAAEA,EAAEwB,MAAQ,KAAKyJ,EAAE,KAAK0kC,EAAE,KAAK5sC,EAAE,KAAKqgB,EAAE,KAAKtiB,EAAE,KAAKwR,EAAE,OAAOtS,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEgiG,UAAY,KAAK56F,EAAE,KAAKwI,EAAE,KAAKD,EAAE,KAAKwC,EAAE,KAAKC,EAAE,OAAOpS,EAAE,QAAQ,OAAOqS,GAAG,KAAKiR,EAAE,OAAOjR,EAAE,CAAC,CAAC,SAASrL,EAAEhH,GAAG,OAAOsyC,EAAEtyC,KAAK2vC,CAAC,CAACl0C,EAAQ2iI,UAAUnzH,EAAExP,EAAQ4iI,eAAe1uF,EAAEl0C,EAAQ6iI,gBAAgBl3H,EAAE3L,EAAQ8iI,gBAAgBnsH,EAAE3W,EAAQgjG,QAAQv+F,EAAEzE,EAAQ6c,WAAW1I,EAAEnU,EAAQ+iI,SAASz7H,EAAEtH,EAAQgjI,KAAK9uH,EAAElU,EAAQ8c,KAAKpG,EAAE1W,EAAQijI,OAAOp7G,EAChf7nB,EAAQkjI,SAASv7G,EAAE3nB,EAAQmjI,WAAW99H,EAAErF,EAAQojI,SAASvsH,EAAE7W,EAAQqjI,YAAY,SAAS9+H,GAAG,OAAOgH,EAAEhH,IAAIsyC,EAAEtyC,KAAKiL,CAAC,EAAExP,EAAQsjI,iBAAiB/3H,EAAEvL,EAAQujI,kBAAkB,SAASh/H,GAAG,OAAOsyC,EAAEtyC,KAAKoH,CAAC,EAAE3L,EAAQwjI,kBAAkB,SAASj/H,GAAG,OAAOsyC,EAAEtyC,KAAKoS,CAAC,EAAE3W,EAAQyjI,UAAU,SAASl/H,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEgiG,WAAW9hG,CAAC,EAAEzE,EAAQ0jI,aAAa,SAASn/H,GAAG,OAAOsyC,EAAEtyC,KAAK4P,CAAC,EAAEnU,EAAQ2jI,WAAW,SAASp/H,GAAG,OAAOsyC,EAAEtyC,KAAK+C,CAAC,EAAEtH,EAAQ4jI,OAAO,SAASr/H,GAAG,OAAOsyC,EAAEtyC,KAAK2P,CAAC,EAC1dlU,EAAQ4c,OAAO,SAASrY,GAAG,OAAOsyC,EAAEtyC,KAAKmS,CAAC,EAAE1W,EAAQ6jI,SAAS,SAASt/H,GAAG,OAAOsyC,EAAEtyC,KAAKsjB,CAAC,EAAE7nB,EAAQ8jI,WAAW,SAASv/H,GAAG,OAAOsyC,EAAEtyC,KAAKojB,CAAC,EAAE3nB,EAAQ+jI,aAAa,SAASx/H,GAAG,OAAOsyC,EAAEtyC,KAAKc,CAAC,EAAErF,EAAQgkI,WAAW,SAASz/H,GAAG,OAAOsyC,EAAEtyC,KAAKsS,CAAC,EAC1O7W,EAAQikI,mBAAmB,SAAS1/H,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAI+C,GAAG/C,IAAI2vC,GAAG3vC,IAAIojB,GAAGpjB,IAAIc,GAAGd,IAAIsS,GAAGtS,IAAIsW,GAAG,kBAAkBtW,GAAG,OAAOA,IAAIA,EAAEgiG,WAAWryF,GAAG3P,EAAEgiG,WAAW7vF,GAAGnS,EAAEgiG,WAAW5vF,GAAGpS,EAAEgiG,WAAW56F,GAAGpH,EAAEgiG,WAAWpyF,GAAG5P,EAAEgiG,WAAW57F,GAAGpG,EAAEgiG,WAAW1mE,GAAGt7B,EAAEgiG,WAAW/9D,GAAGjkC,EAAEgiG,WAAW7+E,EAAE,EAAE1nB,EAAQkkI,OAAOrtF,+BCXjU92C,EAAOC,QAAU,EAAjBD,mCCGF,IAEIokI,EAAYpiI,EAFA9B,EAAQ,OAMpBmkI,EAAmBriI,EAFD9B,EAAQ,OAM1BokI,EAAmBtiI,EAFA9B,EAAQ,OAM3BqkI,EAAgBviI,EAFA9B,EAAQ,OAMxBskI,EAA8BxiI,EAFA9B,EAAQ,OAMtCukI,EAAaziI,EAFA9B,EAAQ,OAMrBwkI,EAAU1iI,EAFD9B,EAAQ,OAMjBykI,EAAc3iI,EAFD9B,EAAQ,OAMrB0kI,EAAc5iI,EAFD9B,EAAQ,OAIzB,SAAS8B,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAEG,QAASH,EAAO,CAE9F,IAAIskI,EAAS,SAAUC,GAGrB,SAASD,IACP,IAAI5jC,EAEA8jC,EAAOC,EAAOC,GAElB,EAAIX,EAAiB5jI,SAASuG,KAAM49H,GAEpC,IAAK,IAAIvkC,EAAO5+F,UAAUX,OAAQgT,EAAO9L,MAAMq4F,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3ExsF,EAAKwsF,GAAQ7+F,UAAU6+F,GAGzB,OAAewkC,EAASC,GAAQ,EAAIR,EAA4B9jI,SAASuG,MAAOg6F,EAAO4jC,EAAOtiI,YAAa,EAAI8hI,EAAiB3jI,SAASmkI,IAAS/iI,KAAK6C,MAAMs8F,EAAM,CAACh6F,MAAM+E,OAAO+H,KAAiBixH,EAAME,mBAAqB,WAGvNF,EAAM90G,KAAK+F,SACb+uG,EAAM90G,KAAKjN,OAEX+hH,EAAM90G,KAAKzN,OAEf,EAROwiH,EAQJF,GAAQ,EAAIP,EAA4B9jI,SAASskI,EAAOC,EAC7D,CAiLA,OAvMA,EAAIR,EAAW/jI,SAASmkI,EAAQC,IAwBhC,EAAIP,EAAc7jI,SAASmkI,EAAQ,CAAC,CAClCzjI,IAAK,oBACLkB,MAAO,WACL,IAAI6iI,EAASl+H,KAAKpG,MACdyT,EAAU6wH,EAAO7wH,QACjB8wH,EAAiBD,EAAOC,eACxBjvG,EAAO7hB,EAAQ6hB,KACfD,EAAW5hB,EAAQ4hB,SACnBzJ,EAAgBnY,EAAQmY,cACxBgL,EAAmBnjB,EAAQmjB,iBAC3BhB,EAAWniB,EAAQmiB,SAGvBxvB,KAAKqN,QAAU,CACbgjB,UAAWrwB,KAAKtD,GAChByyB,SAAU,MACVD,MAAe,IAATA,EACND,UAAuB,IAAbA,EACVO,UAAuB,IAAbA,EACVhK,cAAeA,EACfgL,iBAAkBA,GAGpBxwB,KAAKqN,SAAU,EAAI8vH,EAAU1jI,SAAS,CAAC,EAAGuG,KAAKqN,QAASA,GAExDrN,KAAKipB,KAAO00G,EAAYlkI,QAAQivB,cAAc1oB,KAAKqN,SACnDrN,KAAKo+H,eAAeD,EACtB,GACC,CACDhkI,IAAK,sBACLkB,MAAO,SAA6BgjI,GAE9Br+H,KAAKqN,QAAQmY,gBAAkB64G,EAAUhxH,QAAQmY,gBACnDxlB,KAAKs+H,iBAAiBt+H,KAAKpG,MAAMukI,gBACjCn+H,KAAKiT,UACLjT,KAAKqN,SAAU,EAAI8vH,EAAU1jI,SAAS,CAAC,EAAGuG,KAAKqN,QAASgxH,EAAUhxH,SAClErN,KAAKipB,KAAO00G,EAAYlkI,QAAQivB,cAAc1oB,KAAKqN,SACnDrN,KAAKo+H,eAAeC,EAAUF,gBAElC,GACC,CACDhkI,IAAK,qBACLkB,MAAO,WACD2E,KAAKpG,MAAM2kI,UACbv+H,KAAKyzB,OACIzzB,KAAKpG,MAAM41B,SACpBxvB,KAAKm0B,eAELn0B,KAAKgc,OAGPhc,KAAKwb,QACLxb,KAAKy0B,WACLz0B,KAAK00B,cACP,GACC,CACDv6B,IAAK,uBACLkB,MAAO,WACL2E,KAAKs+H,iBAAiBt+H,KAAKpG,MAAMukI,gBACjCn+H,KAAKiT,UACLjT,KAAKqN,QAAQmY,cAAgB,KAC7BxlB,KAAKipB,KAAO,IACd,GACC,CACD9uB,IAAK,WACLkB,MAAO,WACL2E,KAAKipB,KAAKwL,SAASz0B,KAAKpG,MAAMozF,MAChC,GACC,CACD7yF,IAAK,eACLkB,MAAO,WACL2E,KAAKipB,KAAKyL,aAAa10B,KAAKpG,MAAM8lB,UACpC,GACC,CACDvlB,IAAK,OACLkB,MAAO,WACL2E,KAAKipB,KAAKjN,MACZ,GACC,CACD7hB,IAAK,eACLkB,MAAO,WACL2E,KAAKipB,KAAKkL,aAAan0B,KAAKpG,MAAM41B,SACpC,GACC,CACDr1B,IAAK,OACLkB,MAAO,WACL2E,KAAKipB,KAAKwK,MACZ,GACC,CACDt5B,IAAK,QACLkB,MAAO,YACD2E,KAAKpG,MAAMo1B,WAAahvB,KAAKipB,KAAK+F,WAE1BhvB,KAAKpG,MAAMo1B,UAAYhvB,KAAKipB,KAAK+F,WAD3ChvB,KAAKipB,KAAKzN,OAId,GACC,CACDrhB,IAAK,UACLkB,MAAO,WACL2E,KAAKipB,KAAKhW,SACZ,GACC,CACD9Y,IAAK,iBACLkB,MAAO,SAAwB8iI,GAC7B,IAAIK,EAASx+H,KAEbm+H,EAAez5H,SAAQ,SAAU+5H,GAC/BD,EAAOv1G,KAAK4C,iBAAiB4yG,EAAclyG,UAAWkyG,EAAc/2G,SACtE,GACF,GACC,CACDvtB,IAAK,mBACLkB,MAAO,SAA0B8iI,GAC/B,IAAIO,EAAS1+H,KAEbm+H,EAAez5H,SAAQ,SAAU+5H,GAC/BC,EAAOz1G,KAAKyD,oBAAoB+xG,EAAclyG,UAAWkyG,EAAc/2G,SACzE,GACF,GACC,CACDvtB,IAAK,SACLkB,MAAO,WACL,IAAIsjI,EAAS3+H,KAET4+H,EAAU5+H,KAAKpG,MACfyvB,EAAQu1G,EAAQv1G,MAChBtY,EAAS6tH,EAAQ7tH,OACjB8tH,EAAWD,EAAQC,SACnBz3D,EAAYw3D,EAAQx3D,UACpB03D,EAAyBF,EAAQE,uBACjCz3D,EAAQu3D,EAAQv3D,MAGhB03D,EAAU,SAAiBC,GAS7B,MANuB,kBAAZA,EACFA,EAAU,KAEVA,GAAW,MAItB,EAEIC,GAAe,EAAI9B,EAAU1jI,SAAS,CACxC4vB,MAAO01G,EAAQ11G,GACftY,OAAQguH,EAAQhuH,GAChBuqE,SAAU,SACV/B,OAAQ,SACR2lD,QAAS,QACRl/H,KAAKpG,MAAM6L,OAEV05H,EAAiBL,EAAyB,WAC5C,OAAO,IACT,EAAI9+H,KAAKi+H,mBAET,OAGER,EAAQhkI,QAAQqE,cAAc,MAAO,CACnCo7F,IAAK,SAAaz7F,GAChBkhI,EAAOjiI,GAAKe,CACd,EACAgI,MAAOw5H,EACP7O,QAAS+O,EACT93D,MAAOA,EACP+3D,KAAMP,EACN,aAAcz3D,EACdi4D,SAAU,KAGhB,KAEKzB,CACT,CAzMa,CAyMXH,EAAQhkI,QAAQ6lI,WAElBtmI,EAAQ,EAAU4kI,EAGlBA,EAAO1oH,UAAY,CACjBipH,eAAgBT,EAAYjkI,QAAQs9F,QAAQ2mC,EAAYjkI,QAAQmH,QAChEyM,QAASqwH,EAAYjkI,QAAQmH,OAAO41F,WACpCzlF,OAAQ2sH,EAAYjkI,QAAQ29F,UAAU,CAACsmC,EAAYjkI,QAAQqqD,OAAQ45E,EAAYjkI,QAAQo9F,SACvFxtE,MAAOq0G,EAAYjkI,QAAQ29F,UAAU,CAACsmC,EAAYjkI,QAAQqqD,OAAQ45E,EAAYjkI,QAAQo9F,SACtF0nC,UAAWb,EAAYjkI,QAAQm9F,KAC/B5nE,SAAU0uG,EAAYjkI,QAAQm9F,KAC9B5J,MAAO0wC,EAAYjkI,QAAQo9F,OAC3BrnE,SAAUkuG,EAAYjkI,QAAQs9F,QAAQ2mC,EAAYjkI,QAAQo9F,QAC1Dn3E,UAAWg+G,EAAYjkI,QAAQo9F,OAC/BgoC,SAAUnB,EAAYjkI,QAAQqqD,OAC9BsjB,UAAWs2D,EAAYjkI,QAAQqqD,OAC/Bg7E,uBAAwBpB,EAAYjkI,QAAQm9F,KAC5CvvB,MAAOq2D,EAAYjkI,QAAQqqD,OAC3Br+C,MAAOi4H,EAAYjkI,QAAQqqD,QAG7B85E,EAAOhpH,aAAe,CACpBupH,eAAgB,GAChBI,WAAW,EACXvvG,UAAU,EACVg+D,MAAO,EACP6xC,SAAU,SACVz3D,UAAW,YACX03D,wBAAwB,EACxBz3D,MAAO,0BCnRT,MAAMk4D,EACJnkI,WAAAA,GACE4E,KAAK6iB,KAAO5pB,EAAQ,MACpB+G,KAAKw/H,SAAW,CAAC,EACjBx/H,KAAKy/H,SAAW,CAAC,EAEjBz/H,KAAK6iB,KAAKne,SAAQg7H,IAChB1/H,KAAKw/H,SAASE,EAAQC,MAAMviF,eAAiBsiF,EAAQrkI,MACrD2E,KAAKy/H,SAASC,EAAQrkI,MAAM+hD,eAAiBsiF,EAAQC,KAAK,GAE9D,CAEA95F,QAAAA,CAAS85F,GACP,OAAO3/H,KAAKw/H,SAASG,EAAMviF,cAC7B,CAEAwiF,QAAAA,CAASvkI,GACP,OAAO2E,KAAKy/H,SAASpkI,EAAM+hD,cAC7B,CAEAyiF,SAAAA,GACE,OAAO7/H,KAAK6iB,KAAKi9G,KAAIJ,GAAWA,EAAQC,OAC1C,CAEAI,SAAAA,GACE,OAAO//H,KAAK6iB,KAAKi9G,KAAIJ,GAAWA,EAAQrkI,OAC1C,CAEA2kI,YAAAA,GACE,OAAOhgI,KAAKw/H,QACd,CAEAS,YAAAA,GACE,OAAOjgI,KAAKy/H,QACd,CAEAS,OAAAA,GACE,OAAOlgI,KAAK6iB,IACd,CAEAs9G,QAAAA,CAAS9kI,EAAOskI,GAQd,OAPA3/H,KAAK6iB,KAAKne,SAAQg7H,IACZA,EAAQrkI,QAAUA,IACpBqkI,EAAQC,MAAQA,EAChB3/H,KAAKy/H,SAASC,EAAQrkI,MAAM+hD,eAAiBsiF,EAAQC,MACvD,IAGK3/H,IACT,CAEAogI,QAAAA,CAAST,GAQP,OAPA3/H,KAAK6iB,KAAKw7B,QAAQ,CAChBhjD,MAAO,GACPskI,MAAOA,IAET3/H,KAAKy/H,SAAS,IAAME,EACpB3/H,KAAKw/H,SAASG,GAAS,GAEhB3/H,IACT,CAEAqgI,MAAAA,GAOE,OANArgI,KAAKsgI,WAAarnI,EAAQ,MAC1B+G,KAAKsgI,WAAW57H,SAAQg7H,IACtB1/H,KAAKw/H,SAASE,EAAQC,MAAMviF,eAAiBsiF,EAAQrkI,MACrD2E,KAAKy/H,SAASC,EAAQrkI,MAAM+hD,eAAiBsiF,EAAQC,KAAK,IAGrD3/H,IACT,EAOFjH,EAAOC,QAJaunI,KAClB,KAAMvgI,gBAAgBu/H,GAAc,OAAO,IAAIA,CAAa,+BCxE9D,SAAS3jI,EAAQ4T,GAAgC,OAAO5T,EAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAU4D,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBhL,QAAUgL,EAAEpU,cAAgBoJ,QAAUgL,IAAMhL,OAAOlK,UAAY,gBAAkBkV,CAAG,EAAG5T,EAAQ4T,EAAI,CAC7T7U,OAAOwB,eAAenD,EAAS,aAAc,CAC3CqC,OAAO,IAETrC,EAAQwnI,UAAYxnI,EAAQynI,eAAY,EACxC,IAAIC,EAAS3lI,EAAuB9B,EAAQ,OACxC0nI,EAAc5lI,EAAuB9B,EAAQ,OAC7C2nI,EAAoB3nI,EAAQ,MAChC,SAAS8B,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAE,QAAWA,EAAO,CAChG,SAASy+F,IAAiS,OAApRA,EAAWp9F,OAAO2J,OAAS3J,OAAO2J,OAAOsmB,OAAS,SAAUjxB,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CAAE,IAAIa,EAASD,UAAUZ,GAAI,IAAK,IAAIM,KAAOO,EAAcC,OAAOL,UAAUM,eAAeC,KAAKH,EAAQP,KAAQR,EAAOQ,GAAOO,EAAOP,GAAU,CAAE,OAAOR,CAAQ,EAAUo+F,EAASr6F,MAAMsC,KAAMvF,UAAY,CAClV,SAASi9F,EAAQp3F,EAAGoP,GAAK,IAAIxC,EAAIvS,OAAOmH,KAAKxB,GAAI,GAAI3F,OAAOkM,sBAAuB,CAAE,IAAI2I,EAAI7U,OAAOkM,sBAAsBvG,GAAIoP,IAAMF,EAAIA,EAAEkxC,QAAO,SAAUhxC,GAAK,OAAO/U,OAAO2L,yBAAyBhG,EAAGoP,GAAG1V,UAAY,KAAKkT,EAAE1O,KAAKd,MAAMwP,EAAGsC,EAAI,CAAE,OAAOtC,CAAG,CAC9P,SAAS2zH,EAAcvgI,GAAK,IAAK,IAAIoP,EAAI,EAAGA,EAAIjV,UAAUX,OAAQ4V,IAAK,CAAE,IAAIxC,EAAI,MAAQzS,UAAUiV,GAAKjV,UAAUiV,GAAK,CAAC,EAAGA,EAAI,EAAIgoF,EAAQ/8F,OAAOuS,IAAI,GAAIxI,SAAQ,SAAUgL,GAAKnW,EAAgB+G,EAAGoP,EAAGxC,EAAEwC,GAAK,IAAK/U,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiB4G,EAAG3F,OAAOi9F,0BAA0B1qF,IAAMwqF,EAAQ/8F,OAAOuS,IAAIxI,SAAQ,SAAUgL,GAAK/U,OAAOwB,eAAemE,EAAGoP,EAAG/U,OAAO2L,yBAAyB4G,EAAGwC,GAAK,GAAI,CAAE,OAAOpP,CAAG,CACtb,SAAS/G,EAAgBD,EAAKa,EAAKkB,GAA4L,OAAnLlB,EAAM09F,EAAe19F,MAAiBb,EAAOqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAAEkB,MAAOA,EAAOrB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBZ,EAAIa,GAAOkB,EAAgB/B,CAAK,CAC3O,SAASwnI,EAAgB3nI,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CACxJ,SAAS0nI,EAAkBpnI,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,IAAIE,EAAaH,EAAMC,GAAIE,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMS,OAAOwB,eAAexC,EAAQk+F,EAAe99F,EAAWI,KAAMJ,EAAa,CAAE,CAC5U,SAASinI,EAAa5nI,EAAagB,EAAYC,GAAyN,OAAtMD,GAAY2mI,EAAkB3nI,EAAYkB,UAAWF,GAAiBC,GAAa0mI,EAAkB3nI,EAAaiB,GAAcM,OAAOwB,eAAe/C,EAAa,YAAa,CAAEc,UAAU,IAAiBd,CAAa,CAC5R,SAASy+F,EAAe3qF,GAAK,IAAIrT,EACjC,SAAsBqT,EAAGwC,GAAK,GAAI,UAAY9T,EAAQsR,KAAOA,EAAG,OAAOA,EAAG,IAAI5M,EAAI4M,EAAE1I,OAAO2B,aAAc,QAAI,IAAW7F,EAAG,CAAE,IAAIzG,EAAIyG,EAAEzF,KAAKqS,EAAGwC,GAAK,WAAY,GAAI,UAAY9T,EAAQ/B,GAAI,OAAOA,EAAG,MAAM,IAAIR,UAAU,+CAAiD,CAAE,OAAQ,WAAaqW,EAAInH,OAASyG,QAAQ9B,EAAI,CADtR4qF,CAAa5qF,EAAG,UAAW,MAAO,UAAYtR,EAAQ/B,GAAKA,EAAI0O,OAAO1O,EAAI,CAE/G,SAASonI,EAAU/lI,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9B,UAAU,sDAAyD6B,EAASZ,UAAYK,OAAOqB,OAAOb,GAAcA,EAAWb,UAAW,CAAEc,YAAa,CAAEC,MAAOH,EAAUhB,UAAU,EAAMD,cAAc,KAAWU,OAAOwB,eAAejB,EAAU,YAAa,CAAEhB,UAAU,IAAciB,GAAY+lI,EAAgBhmI,EAAUC,EAAa,CACnc,SAAS+lI,EAAgB1xH,EAAGK,GAA6I,OAAxIqxH,EAAkBvmI,OAAO2M,eAAiB3M,OAAO2M,eAAesjB,OAAS,SAAyBpb,EAAGK,GAAsB,OAAjBL,EAAElU,UAAYuU,EAAUL,CAAG,EAAU0xH,EAAgB1xH,EAAGK,EAAI,CACvM,SAASsxH,EAAaC,GAAW,IAAIC,EAA4BC,IAA6B,OAAO,WAAkC,IAAsCnjI,EAAlCojI,EAAQC,EAAgBJ,GAAkB,GAAIC,EAA2B,CAAE,IAAII,EAAYD,EAAgBxhI,MAAM5E,YAAa+C,EAAS+gG,QAAQC,UAAUoiC,EAAO9mI,UAAWgnI,EAAY,MAAStjI,EAASojI,EAAM7jI,MAAMsC,KAAMvF,WAAc,OACpX,SAAoCe,EAAMX,GAAQ,GAAIA,IAA2B,WAAlBe,EAAQf,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIxB,UAAU,4DAA+D,OAC1P,SAAgCmC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,CAAM,CAD4FkmI,CAAuBlmI,EAAO,CAD4FmmI,CAA2B3hI,KAAM7B,EAAS,CAAG,CAGxa,SAASmjI,IAA8B,IAAM,IAAIp0H,GAAK00H,QAAQtnI,UAAU2O,QAAQpO,KAAKqkG,QAAQC,UAAUyiC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO10H,GAAI,CAAE,OAAQo0H,EAA4B,WAAuC,QAASp0H,CAAG,IAAM,CAClP,SAASs0H,EAAgBhyH,GAA+J,OAA1JgyH,EAAkB7mI,OAAO2M,eAAiB3M,OAAOgH,eAAeipB,OAAS,SAAyBpb,GAAK,OAAOA,EAAElU,WAAaX,OAAOgH,eAAe6N,EAAI,EAAUgyH,EAAgBhyH,EAAI,CACnMxW,EAAQwnI,UAAyB,SAAUqB,GACzDZ,EAAUT,EAAWqB,GACrB,IAAIC,EAASX,EAAaX,GAC1B,SAASA,IAEP,OADAM,EAAgB9gI,KAAMwgI,GACfsB,EAAOpkI,MAAMsC,KAAMvF,UAC5B,CAgDA,OA/CAumI,EAAaR,EAAW,CAAC,CACvBrmI,IAAK,eACLkB,MAAO,SAAsBgS,EAAS/M,GAChCA,GACFA,EAAE0uG,iBAEJhvG,KAAKpG,MAAMmoI,aAAa10H,EAAS/M,EACnC,GACC,CACDnG,IAAK,SACLkB,MAAO,WACL,IAAI2mI,EAAc,CAChB,eAAe,EACf,cAAc,GAEZC,EAAcjiI,KAAK+hI,aAAan3G,KAAK5qB,KAAM,CAC7CyrH,QAAS,cAENzrH,KAAKpG,MAAMsoI,WAAyC,IAA5BliI,KAAKpG,MAAMuoI,cAAsBniI,KAAKpG,MAAMwoI,YAAcpiI,KAAKpG,MAAMyoI,gBAChGL,EAAY,mBAAoB,EAChCC,EAAc,MAEhB,IAAIK,EAAiB,CACnBnoI,IAAK,IACL,YAAa,OACb4tE,WAAW,EAAI44D,EAAqB,SAAGqB,GACvCv8H,MAAO,CACLC,QAAS,SAEX0qH,QAAS6R,GAEPM,EAAc,CAChBJ,aAAcniI,KAAKpG,MAAMuoI,aACzBC,WAAYpiI,KAAKpG,MAAMwoI,YAWzB,OARIpiI,KAAKpG,MAAM4oI,UACY9B,EAAgB,QAAE+B,aAAaziI,KAAKpG,MAAM4oI,UAAW3B,EAAcA,EAAc,CAAC,EAAGyB,GAAiBC,IAEtG7B,EAAgB,QAAE5iI,cAAc,SAAUi6F,EAAS,CAC1E59F,IAAK,IACL4E,KAAM,UACLujI,GAAiB,IAAK,WAG7B,KAEK9B,CACT,CAvDiD,CAuD/CE,EAAgB,QAAEgC,eACJ1pI,EAAQynI,UAAyB,SAAUkC,GACzD1B,EAAUR,EAAWkC,GACrB,IAAIC,EAAUzB,EAAaV,GAC3B,SAASA,IAEP,OADAK,EAAgB9gI,KAAMygI,GACfmC,EAAQllI,MAAMsC,KAAMvF,UAC7B,CAgDA,OA/CAumI,EAAaP,EAAW,CAAC,CACvBtmI,IAAK,eACLkB,MAAO,SAAsBgS,EAAS/M,GAChCA,GACFA,EAAE0uG,iBAEJhvG,KAAKpG,MAAMmoI,aAAa10H,EAAS/M,EACnC,GACC,CACDnG,IAAK,SACLkB,MAAO,WACL,IAAIwnI,EAAc,CAChB,eAAe,EACf,cAAc,GAEZC,EAAc9iI,KAAK+hI,aAAan3G,KAAK5qB,KAAM,CAC7CyrH,QAAS,UAEN,EAAImV,EAAkBmC,WAAW/iI,KAAKpG,SACzCipI,EAAY,mBAAoB,EAChCC,EAAc,MAEhB,IAAIE,EAAiB,CACnB7oI,IAAK,IACL,YAAa,OACb4tE,WAAW,EAAI44D,EAAqB,SAAGkC,GACvCp9H,MAAO,CACLC,QAAS,SAEX0qH,QAAS0S,GAEPP,EAAc,CAChBJ,aAAcniI,KAAKpG,MAAMuoI,aACzBC,WAAYpiI,KAAKpG,MAAMwoI,YAWzB,OARIpiI,KAAKpG,MAAMqpI,UACYvC,EAAgB,QAAE+B,aAAaziI,KAAKpG,MAAMqpI,UAAWpC,EAAcA,EAAc,CAAC,EAAGmC,GAAiBT,IAEtG7B,EAAgB,QAAE5iI,cAAc,SAAUi6F,EAAS,CAC1E59F,IAAK,IACL4E,KAAM,UACLikI,GAAiB,IAAK,OAG7B,KAEKvC,CACT,CAvDiD,CAuD/CC,EAAgB,QAAEgC,4CCxIpB/nI,OAAOwB,eAAenD,EAAS,aAAc,CAC3CqC,OAAO,IAETrC,EAAiB,aAAI,EACrB,IACgCM,EAD5BonI,GAC4BpnI,EADIL,EAAQ,QACSK,EAAIJ,WAAaI,EAAM,CAAE,QAAWA,GACzF,IAAIsb,EAAe,CACjBsuH,eAAe,EACfC,gBAAgB,EAChBC,YAAa,KACbC,WAAY,SAAoBC,GAC9B,OAAoB5C,EAAgB,QAAE5iI,cAAc,KAAM,CACxD2H,MAAO,CACLC,QAAS,UAEV49H,EACL,EACAC,QAAQ,EACRt0G,UAAU,EACVu0G,cAAe,IACfC,aAAc,KACdC,YAAY,EACZC,cAAe,OACf57D,UAAW,GACX67D,QAAS,OACTC,aAAc,SAAsBhqI,GAClC,OAAoB6mI,EAAgB,QAAE5iI,cAAc,SAAU,KAAMjE,EAAI,EAC1E,EACAypI,MAAM,EACNQ,UAAW,aACXC,WAAW,EACXC,OAAQ,SACRC,aAAc,IACdC,MAAM,EACNC,eAAe,EACfjC,UAAU,EACVkC,aAAc,EACdC,SAAU,KACVpB,UAAW,KACXqB,OAAQ,KACRC,OAAQ,KACRC,gBAAiB,KACjBC,SAAU,KACVC,kBAAkB,EAClBC,cAAc,EACdC,cAAc,EACdpC,UAAW,KACXqC,WAAY,KACZC,KAAM,EACNC,KAAK,EACLC,MAAO,MACPC,aAAc,EACdC,eAAgB,EAChB7C,aAAc,EACdr1C,MAAO,IACPm4C,OAAO,EACPC,WAAY,KACZC,cAAc,EACdC,WAAW,EACXC,eAAgB,EAChBC,QAAQ,EACRC,cAAc,EACdC,eAAe,EACfC,UAAU,EACVC,gBAAgB,EAChBC,SAAU,MAEG7sI,EAAiB,QAAI4b,+BCnEpC,SAAShZ,EAAQ4T,GAAgC,OAAO5T,EAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAU4D,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBhL,QAAUgL,EAAEpU,cAAgBoJ,QAAUgL,IAAMhL,OAAOlK,UAAY,gBAAkBkV,CAAG,EAAG5T,EAAQ4T,EAAI,CAC7T7U,OAAOwB,eAAenD,EAAS,aAAc,CAC3CqC,OAAO,IAETrC,EAAQ8sI,UAAO,EACf,IAAIpF,EAAS3lI,EAAuB9B,EAAQ,OACxC0nI,EAAc5lI,EAAuB9B,EAAQ,OAC7C2nI,EAAoB3nI,EAAQ,MAChC,SAAS8B,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAE,QAAWA,EAAO,CAChG,SAASo+F,EAAQp3F,EAAGoP,GAAK,IAAIxC,EAAIvS,OAAOmH,KAAKxB,GAAI,GAAI3F,OAAOkM,sBAAuB,CAAE,IAAI2I,EAAI7U,OAAOkM,sBAAsBvG,GAAIoP,IAAMF,EAAIA,EAAEkxC,QAAO,SAAUhxC,GAAK,OAAO/U,OAAO2L,yBAAyBhG,EAAGoP,GAAG1V,UAAY,KAAKkT,EAAE1O,KAAKd,MAAMwP,EAAGsC,EAAI,CAAE,OAAOtC,CAAG,CAE9P,SAAS3T,EAAgBD,EAAKa,EAAKkB,GAA4L,OAAnLlB,EAAM09F,EAAe19F,MAAiBb,EAAOqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAAEkB,MAAOA,EAAOrB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBZ,EAAIa,GAAOkB,EAAgB/B,CAAK,CAE3O,SAASynI,EAAkBpnI,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,IAAIE,EAAaH,EAAMC,GAAIE,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMS,OAAOwB,eAAexC,EAAQk+F,EAAe99F,EAAWI,KAAMJ,EAAa,CAAE,CAE5U,SAAS89F,EAAe3qF,GAAK,IAAIrT,EACjC,SAAsBqT,EAAGwC,GAAK,GAAI,UAAY9T,EAAQsR,KAAOA,EAAG,OAAOA,EAAG,IAAI5M,EAAI4M,EAAE1I,OAAO2B,aAAc,QAAI,IAAW7F,EAAG,CAAE,IAAIzG,EAAIyG,EAAEzF,KAAKqS,EAAGwC,GAAK,WAAY,GAAI,UAAY9T,EAAQ/B,GAAI,OAAOA,EAAG,MAAM,IAAIR,UAAU,+CAAiD,CAAE,OAAQ,WAAaqW,EAAInH,OAASyG,QAAQ9B,EAAI,CADtR4qF,CAAa5qF,EAAG,UAAW,MAAO,UAAYtR,EAAQ/B,GAAKA,EAAI0O,OAAO1O,EAAI,CAG/G,SAASqnI,EAAgB1xH,EAAGK,GAA6I,OAAxIqxH,EAAkBvmI,OAAO2M,eAAiB3M,OAAO2M,eAAesjB,OAAS,SAAyBpb,EAAGK,GAAsB,OAAjBL,EAAElU,UAAYuU,EAAUL,CAAG,EAAU0xH,EAAgB1xH,EAAGK,EAAI,CACvM,SAASsxH,EAAaC,GAAW,IAAIC,EAA4BC,IAA6B,OAAO,WAAkC,IAAsCnjI,EAAlCojI,EAAQC,EAAgBJ,GAAkB,GAAIC,EAA2B,CAAE,IAAII,EAAYD,EAAgBxhI,MAAM5E,YAAa+C,EAAS+gG,QAAQC,UAAUoiC,EAAO9mI,UAAWgnI,EAAY,MAAStjI,EAASojI,EAAM7jI,MAAMsC,KAAMvF,WAAc,OACpX,SAAoCe,EAAMX,GAAQ,GAAIA,IAA2B,WAAlBe,EAAQf,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIxB,UAAU,4DAA+D,OAC1P,SAAgCmC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,CAAM,CAD4FkmI,CAAuBlmI,EAAO,CAD4FmmI,CAA2B3hI,KAAM7B,EAAS,CAAG,CAGxa,SAASmjI,IAA8B,IAAM,IAAIp0H,GAAK00H,QAAQtnI,UAAU2O,QAAQpO,KAAKqkG,QAAQC,UAAUyiC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO10H,GAAI,CAAE,OAAQo0H,EAA4B,WAAuC,QAASp0H,CAAG,IAAM,CAClP,SAASs0H,EAAgBhyH,GAA+J,OAA1JgyH,EAAkB7mI,OAAO2M,eAAiB3M,OAAOgH,eAAeipB,OAAS,SAAyBpb,GAAK,OAAOA,EAAElU,WAAaX,OAAOgH,eAAe6N,EAAI,EAAUgyH,EAAgBhyH,EAAI,CAUxMxW,EAAQ8sI,KAAoB,SAAUjE,IAhBjD,SAAmB3mI,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9B,UAAU,sDAAyD6B,EAASZ,UAAYK,OAAOqB,OAAOb,GAAcA,EAAWb,UAAW,CAAEc,YAAa,CAAEC,MAAOH,EAAUhB,UAAU,EAAMD,cAAc,KAAWU,OAAOwB,eAAejB,EAAU,YAAa,CAAEhB,UAAU,IAAciB,GAAY+lI,EAAgBhmI,EAAUC,EAAa,CAiBjc8lI,CAAU6E,EAAMjE,GAChB,IArBoBzoI,EAAagB,EAAYC,EAqBzCynI,EAASX,EAAa2E,GAC1B,SAASA,IAEP,OA1BJ,SAAyB3sI,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAyBpJynI,CAAgB9gI,KAAM8lI,GACfhE,EAAOpkI,MAAMsC,KAAMvF,UAC5B,CA4DA,OArFoBrB,EA0BP0sI,EA1BoB1rI,EA0Bd,CAAC,CAClBD,IAAK,eACLkB,MAAO,SAAsBgS,EAAS/M,GAGpCA,EAAE0uG,iBACFhvG,KAAKpG,MAAMmoI,aAAa10H,EAC1B,GACC,CACDlT,IAAK,SACLkB,MAAO,WAsBL,IArBA,IA3BiC0qI,EA2B7BC,EAAchmI,KAAKpG,MACrBqsI,EAAeD,EAAYC,aAC3BC,EAAcF,EAAYE,YAC1BC,EAAeH,EAAYG,aAC3BjE,EAAW8D,EAAY9D,SACvBgD,EAAiBc,EAAYd,eAC7B7C,EAAe2D,EAAY3D,aAC3BD,EAAa4D,EAAY5D,WACzBD,EAAe6D,EAAY7D,aACzBiE,GApC6BL,EAoCN,CACzB3D,WAAYA,EACZ8C,eAAgBA,EAChB7C,aAAcA,EACdH,SAAUA,IAtCPA,SACA1hI,KAAKqI,KAAKk9H,EAAK3D,WAAa2D,EAAKb,gBAEjC1kI,KAAKqI,MAAMk9H,EAAK3D,WAAa2D,EAAK1D,cAAgB0D,EAAKb,gBAAkB,EAqC1EmB,EAAc,CAChBJ,aAAcA,EACdC,YAAaA,EACbC,aAAcA,GAEZ7C,EAAO,GACFzpI,EAAI,EAAGA,EAAIusI,EAAUvsI,IAAK,CACjC,IAAIysI,GAAezsI,EAAI,GAAKqrI,EAAiB,EACzCqB,EAAarE,EAAWoE,GAAc,EAAI1F,EAAkB9gD,OAAOwmD,EAAa,EAAGlE,EAAa,GAChGoE,EAAaD,GAAcrB,EAAiB,GAC5CuB,EAAYvE,EAAWsE,GAAa,EAAI5F,EAAkB9gD,OAAO0mD,EAAY,EAAGpE,EAAa,GAC7Fr6D,GAAY,EAAI44D,EAAqB,SAAG,CAC1C,eAAgBuB,EAAWC,GAAgBsE,GAAatE,GAAgBoE,EAAapE,IAAiBsE,IAEpGC,EAAa,CACfjb,QAAS,OACT5uH,MAAOhD,EACPqrI,eAAgBA,EAChB/C,aAAcA,GAEZ/R,EAAUpwH,KAAK+hI,aAAan3G,KAAK5qB,KAAM0mI,GAC3CpD,EAAOA,EAAKv+H,OAAqB27H,EAAgB,QAAE5iI,cAAc,KAAM,CACrE3D,IAAKN,EACLkuE,UAAWA,GACG24D,EAAgB,QAAE+B,aAAaziI,KAAKpG,MAAMiqI,aAAahqI,GAAI,CACzEu2H,QAASA,KAEb,CACA,OAAoBsQ,EAAgB,QAAE+B,aAAaziI,KAAKpG,MAAMypI,WAAWC,GApF/E,SAAuBhjI,GAAK,IAAK,IAAIoP,EAAI,EAAGA,EAAIjV,UAAUX,OAAQ4V,IAAK,CAAE,IAAIxC,EAAI,MAAQzS,UAAUiV,GAAKjV,UAAUiV,GAAK,CAAC,EAAGA,EAAI,EAAIgoF,EAAQ/8F,OAAOuS,IAAI,GAAIxI,SAAQ,SAAUgL,GAAKnW,EAAgB+G,EAAGoP,EAAGxC,EAAEwC,GAAK,IAAK/U,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiB4G,EAAG3F,OAAOi9F,0BAA0B1qF,IAAMwqF,EAAQ/8F,OAAOuS,IAAIxI,SAAQ,SAAUgL,GAAK/U,OAAOwB,eAAemE,EAAGoP,EAAG/U,OAAO2L,yBAAyB4G,EAAGwC,GAAK,GAAI,CAAE,OAAOpP,CAAG,CAoFhWugI,CAAc,CAC5F94D,UAAW/nE,KAAKpG,MAAMkqI,WACrBuC,GACL,IAnF8DjsI,GAAY2mI,EAAkB3nI,EAAYkB,UAAWF,GAAiBC,GAAa0mI,EAAkB3nI,EAAaiB,GAAcM,OAAOwB,eAAe/C,EAAa,YAAa,CAAEc,UAAU,IAqFrP4rI,CACT,CAnEuC,CAmErCpF,EAAgB,QAAEgC,4CCjGpB1pI,EAAAA,OAAqB,EACrB,IACgCM,EAD5BqtI,GAC4BrtI,EADKL,EAAQ,OACQK,EAAIJ,WAAaI,EAAM,CAAE,QAAWA,GAC1EN,EAAAA,EAAqB2tI,EAAiB,mCCNrDhsI,OAAOwB,eAAenD,EAAS,aAAc,CAC3CqC,OAAO,IAETrC,EAAiB,aAAI,EAgCNA,EAAiB,QA/Bb,CACjB4tI,WAAW,EACXC,YAAa,KACbC,iBAAkB,EAClBC,YAAa,KACb5E,aAAc,EACdziH,UAAW,EACXsnH,UAAU,EACVC,aAAa,EACbx1C,aAAa,EACby1C,eAAgB,GAChBC,WAAY,KACZC,UAAW,KACXC,WAAW,EACXjF,WAAY,KACZkF,YAAa,KACbC,WAAY,KACZC,UAAW,KACXC,QAAQ,EAERC,SAAS,EACTC,YAAa,CACXC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,KAAM,GAERC,WAAY,CAAC,EACbC,WAAY,EACZC,YAAa,gCCjCfvtI,OAAOwB,eAAenD,EAAS,aAAc,CAC3CqC,OAAO,IAETrC,EAAQmvI,iBAAc,EACtB,IAAIzH,EAAS3lI,EAAuB9B,EAAQ,OACxCmvI,EAAgBrtI,EAAuB9B,EAAQ,OAC/CovI,EAAUttI,EAAuB9B,EAAQ,MACzC0nI,EAAc5lI,EAAuB9B,EAAQ,OAC7C2nI,EAAoB3nI,EAAQ,MAC5BqvI,EAASrvI,EAAQ,KACjBsvI,EAAQtvI,EAAQ,MAChBuvI,EAAUvvI,EAAQ,MAClBwvI,EAA0B1tI,EAAuB9B,EAAQ,OAC7D,SAAS8B,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAE,QAAWA,EAAO,CAChG,SAASsC,EAAQ4T,GAAgC,OAAO5T,EAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAU4D,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBhL,QAAUgL,EAAEpU,cAAgBoJ,QAAUgL,IAAMhL,OAAOlK,UAAY,gBAAkBkV,CAAG,EAAG5T,EAAQ4T,EAAI,CAC7T,SAASuoF,IAAiS,OAApRA,EAAWp9F,OAAO2J,OAAS3J,OAAO2J,OAAOsmB,OAAS,SAAUjxB,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CAAE,IAAIa,EAASD,UAAUZ,GAAI,IAAK,IAAIM,KAAOO,EAAcC,OAAOL,UAAUM,eAAeC,KAAKH,EAAQP,KAAQR,EAAOQ,GAAOO,EAAOP,GAAU,CAAE,OAAOR,CAAQ,EAAUo+F,EAASr6F,MAAMsC,KAAMvF,UAAY,CAClV,SAASu9F,EAAyBt9F,EAAQu9F,GAAY,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAAG,IAAkEP,EAAKN,EAAnEF,EACzF,SAAuCe,EAAQu9F,GAAY,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAAG,IAA2DP,EAAKN,EAA5DF,EAAS,CAAC,EAAOu+F,EAAav9F,OAAOmH,KAAKpH,GAAqB,IAAKb,EAAI,EAAGA,EAAIq+F,EAAWp+F,OAAQD,IAAOM,EAAM+9F,EAAWr+F,GAAQo+F,EAAS5wE,QAAQltB,IAAQ,IAAaR,EAAOQ,GAAOO,EAAOP,IAAQ,OAAOR,CAAQ,CADhNw+F,CAA8Bz9F,EAAQu9F,GAAuB,GAAIt9F,OAAOkM,sBAAuB,CAAE,IAAIuxF,EAAmBz9F,OAAOkM,sBAAsBnM,GAAS,IAAKb,EAAI,EAAGA,EAAIu+F,EAAiBt+F,OAAQD,IAAOM,EAAMi+F,EAAiBv+F,GAAQo+F,EAAS5wE,QAAQltB,IAAQ,GAAkBQ,OAAOL,UAAUyG,qBAAqBlG,KAAKH,EAAQP,KAAgBR,EAAOQ,GAAOO,EAAOP,GAAQ,CAAE,OAAOR,CAAQ,CAE3e,SAAS+9F,EAAQp3F,EAAGoP,GAAK,IAAIxC,EAAIvS,OAAOmH,KAAKxB,GAAI,GAAI3F,OAAOkM,sBAAuB,CAAE,IAAI2I,EAAI7U,OAAOkM,sBAAsBvG,GAAIoP,IAAMF,EAAIA,EAAEkxC,QAAO,SAAUhxC,GAAK,OAAO/U,OAAO2L,yBAAyBhG,EAAGoP,GAAG1V,UAAY,KAAKkT,EAAE1O,KAAKd,MAAMwP,EAAGsC,EAAI,CAAE,OAAOtC,CAAG,CAC9P,SAAS2zH,EAAcvgI,GAAK,IAAK,IAAIoP,EAAI,EAAGA,EAAIjV,UAAUX,OAAQ4V,IAAK,CAAE,IAAIxC,EAAI,MAAQzS,UAAUiV,GAAKjV,UAAUiV,GAAK,CAAC,EAAGA,EAAI,EAAIgoF,EAAQ/8F,OAAOuS,IAAI,GAAIxI,SAAQ,SAAUgL,GAAKnW,EAAgB+G,EAAGoP,EAAGxC,EAAEwC,GAAK,IAAK/U,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiB4G,EAAG3F,OAAOi9F,0BAA0B1qF,IAAMwqF,EAAQ/8F,OAAOuS,IAAIxI,SAAQ,SAAUgL,GAAK/U,OAAOwB,eAAemE,EAAGoP,EAAG/U,OAAO2L,yBAAyB4G,EAAGwC,GAAK,GAAI,CAAE,OAAOpP,CAAG,CAEtb,SAASygI,EAAkBpnI,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,IAAIE,EAAaH,EAAMC,GAAIE,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMS,OAAOwB,eAAexC,EAAQk+F,EAAe99F,EAAWI,KAAMJ,EAAa,CAAE,CAG5U,SAASmnI,EAAgB1xH,EAAGK,GAA6I,OAAxIqxH,EAAkBvmI,OAAO2M,eAAiB3M,OAAO2M,eAAesjB,OAAS,SAAyBpb,EAAGK,GAAsB,OAAjBL,EAAElU,UAAYuU,EAAUL,CAAG,EAAU0xH,EAAgB1xH,EAAGK,EAAI,CACvM,SAASsxH,EAAaC,GAAW,IAAIC,EAA4BC,IAA6B,OAAO,WAAkC,IAAsCnjI,EAAlCojI,EAAQC,EAAgBJ,GAAkB,GAAIC,EAA2B,CAAE,IAAII,EAAYD,EAAgBxhI,MAAM5E,YAAa+C,EAAS+gG,QAAQC,UAAUoiC,EAAO9mI,UAAWgnI,EAAY,MAAStjI,EAASojI,EAAM7jI,MAAMsC,KAAMvF,WAAc,OACpX,SAAoCe,EAAMX,GAAQ,GAAIA,IAA2B,WAAlBe,EAAQf,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIxB,UAAU,4DAA+D,OAAOqoI,EAAuBlmI,EAAO,CAD4FmmI,CAA2B3hI,KAAM7B,EAAS,CAAG,CAExa,SAASujI,EAAuBlmI,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,CAAM,CACrK,SAAS8lI,IAA8B,IAAM,IAAIp0H,GAAK00H,QAAQtnI,UAAU2O,QAAQpO,KAAKqkG,QAAQC,UAAUyiC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO10H,GAAI,CAAE,OAAQo0H,EAA4B,WAAuC,QAASp0H,CAAG,IAAM,CAClP,SAASs0H,EAAgBhyH,GAA+J,OAA1JgyH,EAAkB7mI,OAAO2M,eAAiB3M,OAAOgH,eAAeipB,OAAS,SAAyBpb,GAAK,OAAOA,EAAElU,WAAaX,OAAOgH,eAAe6N,EAAI,EAAUgyH,EAAgBhyH,EAAI,CACnN,SAASjW,EAAgBD,EAAKa,EAAKkB,GAA4L,OAAnLlB,EAAM09F,EAAe19F,MAAiBb,EAAOqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAAEkB,MAAOA,EAAOrB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBZ,EAAIa,GAAOkB,EAAgB/B,CAAK,CAC3O,SAASu+F,EAAe3qF,GAAK,IAAIrT,EACjC,SAAsBqT,EAAGwC,GAAK,GAAI,UAAY9T,EAAQsR,KAAOA,EAAG,OAAOA,EAAG,IAAI5M,EAAI4M,EAAE1I,OAAO2B,aAAc,QAAI,IAAW7F,EAAG,CAAE,IAAIzG,EAAIyG,EAAEzF,KAAKqS,EAAGwC,GAAK,WAAY,GAAI,UAAY9T,EAAQ/B,GAAI,OAAOA,EAAG,MAAM,IAAIR,UAAU,+CAAiD,CAAE,OAAQ,WAAaqW,EAAInH,OAASyG,QAAQ9B,EAAI,CADtR4qF,CAAa5qF,EAAG,UAAW,MAAO,UAAYtR,EAAQ/B,GAAKA,EAAI0O,OAAO1O,EAAI,CAE7Fb,EAAQmvI,YAA2B,SAAUtK,IAV/D,SAAmB3iI,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9B,UAAU,sDAAyD6B,EAASZ,UAAYK,OAAOqB,OAAOb,GAAcA,EAAWb,UAAW,CAAEc,YAAa,CAAEC,MAAOH,EAAUhB,UAAU,EAAMD,cAAc,KAAWU,OAAOwB,eAAejB,EAAU,YAAa,CAAEhB,UAAU,IAAciB,GAAY+lI,EAAgBhmI,EAAUC,EAAa,CAWjc8lI,CAAUkH,EAAatK,GACvB,IAboBzkI,EAAagB,EAAYC,EAazCynI,EAASX,EAAagH,GAC1B,SAASA,EAAYvuI,GACnB,IAAImkI,GAjBR,SAAyB5kI,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAkBpJynI,CAAgB9gI,KAAMmoI,GAEtB5uI,EAAgBmoI,EADhB3D,EAAQ+D,EAAOjnI,KAAKmF,KAAMpG,IACqB,kBAAkB,SAAUs/F,GACzE,OAAO6kC,EAAMx4E,KAAO2zC,CACtB,IACA3/F,EAAgBmoI,EAAuB3D,GAAQ,mBAAmB,SAAU7kC,GAC1E,OAAO6kC,EAAMj4B,MAAQ5M,CACvB,IACA3/F,EAAgBmoI,EAAuB3D,GAAQ,eAAe,WAC5D,GAAIA,EAAMnkI,MAAMupI,gBAAkBpF,EAAMx4E,KAAM,CAC5C,IAAI/uB,EAAOunG,EAAMx4E,KAAKmjF,cAAc,gBAAiB3jI,OAAOg5H,EAAM7/C,MAAMikD,aAAc,OACtFpE,EAAMx4E,KAAK9/C,MAAMsL,QAAS,EAAI6vH,EAAkB+H,WAAWnyG,GAAQ,IACrE,CACF,IACAj9B,EAAgBmoI,EAAuB3D,GAAQ,qBAAqB,WAElE,GADAA,EAAMnkI,MAAM2qI,QAAUxG,EAAMnkI,MAAM2qI,SAC9BxG,EAAMnkI,MAAMyqI,SAAU,CACxB,IAAIuE,GAAe,EAAIhI,EAAkBiI,uBAAuBhI,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,QAChH0qD,EAAa9uI,OAAS,IACxBikI,EAAM+K,UAAS,SAAUC,GACvB,MAAO,CACL7B,eAAgB6B,EAAU7B,eAAeniI,OAAO6jI,GAEpD,IACI7K,EAAMnkI,MAAMovI,YACdjL,EAAMnkI,MAAMovI,WAAWJ,GAG7B,CACA,IAAI7C,EAAOlF,EAAc,CACvBoI,QAASlL,EAAMx4E,KACf2jF,SAAUnL,EAAMj4B,OACfi4B,EAAMnkI,OACTmkI,EAAMoL,YAAYpD,GAAM,GAAM,WAC5BhI,EAAMqL,cACNrL,EAAMnkI,MAAMq1B,UAAY8uG,EAAMsL,SAAS,SACzC,IAC6B,gBAAzBtL,EAAMnkI,MAAMyqI,WACdtG,EAAMuL,cAAgB9+G,YAAYuzG,EAAMwL,oBAAqB,MAE/DxL,EAAMyL,GAAK,IAAIf,EAAiC,SAAE,WAC5C1K,EAAM7/C,MAAM0oD,WACd7I,EAAM0L,iBAAgB,GACtB1L,EAAM2L,eAAelrI,KAAKwS,YAAW,WACnC,OAAO+sH,EAAM0L,iBACf,GAAG1L,EAAMnkI,MAAMozF,SAEf+wC,EAAM0L,iBAEV,IACA1L,EAAMyL,GAAGG,QAAQ5L,EAAMx4E,MACvB3nD,SAASsoD,kBAAoBllD,MAAM1G,UAAUoK,QAAQ7J,KAAK+C,SAASsoD,iBAAiB,iBAAiB,SAAU8+E,GAC7GA,EAAM4E,QAAU7L,EAAMnkI,MAAM+qI,aAAe5G,EAAM8L,aAAe,KAChE7E,EAAM8E,OAAS/L,EAAMnkI,MAAM+qI,aAAe5G,EAAMgM,YAAc,IAChE,IACIxpI,OAAOsrB,iBACTtrB,OAAOsrB,iBAAiB,SAAUkyG,EAAM0L,iBAExClpI,OAAO62G,YAAY,WAAY2mB,EAAM0L,gBAEzC,IACAlwI,EAAgBmoI,EAAuB3D,GAAQ,wBAAwB,WACjEA,EAAMiM,sBACRxwH,aAAaukH,EAAMiM,sBAEjBjM,EAAMuL,eACR3+G,cAAcozG,EAAMuL,eAElBvL,EAAM2L,eAAe5vI,SACvBikI,EAAM2L,eAAehlI,SAAQ,SAAUulI,GACrC,OAAOzwH,aAAaywH,EACtB,IACAlM,EAAM2L,eAAiB,IAErBnpI,OAAOsrB,iBACTtrB,OAAOmsB,oBAAoB,SAAUqxG,EAAM0L,iBAE3ClpI,OAAO02G,YAAY,WAAY8mB,EAAM0L,iBAEnC1L,EAAMmM,eACRv/G,cAAcozG,EAAMmM,eAEtBnM,EAAMyL,GAAGW,YACX,IACA5wI,EAAgBmoI,EAAuB3D,GAAQ,sBAAsB,SAAUqM,GAG7E,GAFArM,EAAMsM,kBACNtM,EAAMnkI,MAAM6qI,UAAY1G,EAAMnkI,MAAM6qI,WAChC1G,EAAMnkI,MAAMyqI,SAAU,CACxB,IAAIuE,GAAe,EAAIhI,EAAkBiI,uBAAuBhI,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,QAChH0qD,EAAa9uI,OAAS,IACxBikI,EAAM+K,UAAS,SAAUC,GACvB,MAAO,CACL7B,eAAgB6B,EAAU7B,eAAeniI,OAAO6jI,GAEpD,IACI7K,EAAMnkI,MAAMovI,YACdjL,EAAMnkI,MAAMovI,WAAWJ,GAG7B,CAIA7K,EAAMqL,cACN,IAAIrD,EAAOlF,EAAcA,EAAc,CACrCoI,QAASlL,EAAMx4E,KACf2jF,SAAUnL,EAAMj4B,OACfi4B,EAAMnkI,OAAQmkI,EAAM7/C,OACnBosD,EAAgBvM,EAAMwM,eAAeH,GACzCE,GAAiBvM,EAAMoL,YAAYpD,EAAMuE,GAAe,WAClDvM,EAAM7/C,MAAMikD,cAAgBzB,EAAgB,QAAE8J,SAAS77H,MAAMovH,EAAMnkI,MAAMm/E,WAC3EglD,EAAM0M,YAAY,CAChBhf,QAAS,QACT5uH,MAAO6jI,EAAgB,QAAE8J,SAAS77H,MAAMovH,EAAMnkI,MAAMm/E,UAAYglD,EAAMnkI,MAAMyoI,aAC5EF,aAAcpE,EAAM7/C,MAAMikD,eAG1BpE,EAAMnkI,MAAMq1B,SACd8uG,EAAMsL,SAAS,UAEftL,EAAMviH,MAAM,SAEhB,GACF,IACAjiB,EAAgBmoI,EAAuB3D,GAAQ,mBAAmB,SAAUuM,GACtEvM,EAAM2M,iBAAiB3M,EAAM2M,gBAAgBnxH,SACjDwkH,EAAM2M,iBAAkB,EAAIrC,EAAiB,UAAG,WAC9C,OAAOtK,EAAM4M,aAAaL,EAC5B,GAAG,IACHvM,EAAM2M,iBACR,IACAnxI,EAAgBmoI,EAAuB3D,GAAQ,gBAAgB,WAC7D,IAAIuM,IAAgB7vI,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,KAAmBA,UAAU,GAGnF,GAFqBmnI,QAAQ7D,EAAMj4B,OAASi4B,EAAMj4B,MAAMxjD,MAExD,CACA,IAAIyjF,EAAOlF,EAAcA,EAAc,CACrCoI,QAASlL,EAAMx4E,KACf2jF,SAAUnL,EAAMj4B,OACfi4B,EAAMnkI,OAAQmkI,EAAM7/C,OACvB6/C,EAAMoL,YAAYpD,EAAMuE,GAAe,WACjCvM,EAAMnkI,MAAMq1B,SAAU8uG,EAAMsL,SAAS,UAAetL,EAAMviH,MAAM,SACtE,IAEAuiH,EAAM+K,SAAS,CACblC,WAAW,IAEbptH,aAAaukH,EAAMiM,6BACZjM,EAAMiM,oBAbc,CAc7B,IACAzwI,EAAgBmoI,EAAuB3D,GAAQ,eAAe,SAAUgI,EAAMuE,EAAe5iH,GAC3F,IAAIkjH,GAAe,EAAIhK,EAAkBiK,kBAAkB9E,GAC3DA,EAAOlF,EAAcA,EAAcA,EAAc,CAAC,EAAGkF,GAAO6E,GAAe,CAAC,EAAG,CAC7EE,WAAYF,EAAazI,eAE3B,IAAI4I,GAAa,EAAInK,EAAkBoK,cAAcjF,GACrDA,EAAOlF,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CAChDjnH,KAAMisH,IAER,IAAI/C,GAAa,EAAIpH,EAAkBqK,aAAalF,IAChDuE,GAAiB5J,EAAgB,QAAE8J,SAAS77H,MAAMovH,EAAMnkI,MAAMm/E,YAAc2nD,EAAgB,QAAE8J,SAAS77H,MAAMo3H,EAAKhtD,aACpH6xD,EAAyB,WAAI5C,GAE/BjK,EAAM+K,SAAS8B,EAAcljH,EAC/B,IACAnuB,EAAgBmoI,EAAuB3D,GAAQ,WAAW,WACxD,GAAIA,EAAMnkI,MAAM8rI,cAAe,CAC7B,IAAIwF,EAAc,EAChBC,EAAa,EACXC,EAAiB,GACjBC,GAAY,EAAIzK,EAAkB0K,cAAczK,EAAcA,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,OAAQ,CAAC,EAAG,CAChIkkD,WAAYrE,EAAMnkI,MAAMm/E,SAASj/E,UAE/ByxI,GAAa,EAAI3K,EAAkB4K,eAAe3K,EAAcA,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,OAAQ,CAAC,EAAG,CAClIkkD,WAAYrE,EAAMnkI,MAAMm/E,SAASj/E,UAEnCikI,EAAMnkI,MAAMm/E,SAASr0E,SAAQ,SAAU2jG,GACrC+iC,EAAe5sI,KAAK6pG,EAAMzuG,MAAM6L,MAAM4jB,OACtC6hH,GAAe7iC,EAAMzuG,MAAM6L,MAAM4jB,KACnC,IACA,IAAK,IAAIxvB,EAAI,EAAGA,EAAIwxI,EAAWxxI,IAC7BsxI,GAAcC,EAAeA,EAAetxI,OAAS,EAAID,GACzDqxI,GAAeE,EAAeA,EAAetxI,OAAS,EAAID,GAE5D,IAAK,IAAI8P,EAAK,EAAGA,EAAK4hI,EAAY5hI,IAChCuhI,GAAeE,EAAezhI,GAEhC,IAAK,IAAI8hI,EAAM,EAAGA,EAAM1N,EAAM7/C,MAAMikD,aAAcsJ,IAChDN,GAAcC,EAAeK,GAE/B,IAAIC,EAAc,CAChBriH,MAAO6hH,EAAc,KACrBpsH,MAAOqsH,EAAa,MAEtB,GAAIpN,EAAMnkI,MAAM8pI,WAAY,CAC1B,IAAIiI,EAAe,GAAG5mI,OAAOqmI,EAAerN,EAAM7/C,MAAMikD,cAAe,MACvEuJ,EAAY5sH,KAAO,QAAQ/Z,OAAO2mI,EAAY5sH,KAAM,eAAe/Z,OAAO4mI,EAAc,WAC1F,CACA,MAAO,CACL3D,WAAY0D,EAEhB,CACA,IAAIE,EAAgBlL,EAAgB,QAAE8J,SAAS77H,MAAMovH,EAAMnkI,MAAMm/E,UAC7DgtD,EAAOlF,EAAcA,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,OAAQ,CAAC,EAAG,CACvFkkD,WAAYwJ,IAEVxJ,GAAa,EAAIxB,EAAkB0K,cAAcvF,IAAQ,EAAInF,EAAkB4K,eAAezF,GAAQ6F,EACtG3D,EAAa,IAAMlK,EAAMnkI,MAAMyoI,aAAeD,EAC9CmF,EAAa,IAAMnF,EACnByJ,GAAatE,IAAc,EAAI3G,EAAkB0K,cAAcvF,GAAQhI,EAAM7/C,MAAMikD,cAAgB8F,EAAa,IAQpH,OAPIlK,EAAMnkI,MAAM8pI,aACdmI,IAAc,IAAMtE,EAAaU,EAAa,KAAO,GAMhD,CACLV,WAAYA,EAAa,IACzBS,WANe,CACf3+G,MAAO4+G,EAAa,IACpBnpH,KAAM+sH,EAAY,KAMtB,IACAtyI,EAAgBmoI,EAAuB3D,GAAQ,mBAAmB,WAChE,IAAI7yG,EAAS6yG,EAAMx4E,MAAQw4E,EAAMx4E,KAAKW,kBAAoB63E,EAAMx4E,KAAKW,iBAAiB,qBAAuB,GACzG4lF,EAAc5gH,EAAOpxB,OACvBgtD,EAAc,EAChB9lD,MAAM1G,UAAUoK,QAAQ7J,KAAKqwB,GAAQ,SAAU6gH,GAC7C,IAAIp5H,EAAU,WACZ,QAASm0C,GAAeA,GAAeglF,GAAe/N,EAAM0L,iBAC9D,EACA,GAAKsC,EAAM1b,QAIJ,CACL,IAAI2b,EAAmBD,EAAM1b,QAC7B0b,EAAM1b,QAAU,SAAU/vH,GACxB0rI,EAAiB1rI,GACjByrI,EAAM3pF,WAAWo3D,OACnB,CACF,MATEuyB,EAAM1b,QAAU,WACd,OAAO0b,EAAM3pF,WAAWo3D,OAC1B,EAQGuyB,EAAME,SACLlO,EAAMnkI,MAAMyqI,SACd0H,EAAME,OAAS,WACblO,EAAMqL,cACNrL,EAAM2L,eAAelrI,KAAKwS,WAAW+sH,EAAM0L,gBAAiB1L,EAAMnkI,MAAMozF,OAC1E,GAEA++C,EAAME,OAASt5H,EACfo5H,EAAMG,QAAU,WACdv5H,IACAorH,EAAMnkI,MAAM4qI,iBAAmBzG,EAAMnkI,MAAM4qI,iBAC7C,GAGN,GACF,IACAjrI,EAAgBmoI,EAAuB3D,GAAQ,uBAAuB,WAGpE,IAFA,IAAI6K,EAAe,GACf7C,EAAOlF,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,OACtDrhF,EAAQkhI,EAAM7/C,MAAMikD,aAActlI,EAAQkhI,EAAM7/C,MAAMkkD,YAAa,EAAIxB,EAAkB4K,eAAezF,GAAOlpI,IACtH,GAAIkhI,EAAM7/C,MAAMgpD,eAAe7/G,QAAQxqB,GAAS,EAAG,CACjD+rI,EAAapqI,KAAK3B,GAClB,KACF,CAEF,IAAK,IAAIsvI,EAASpO,EAAM7/C,MAAMikD,aAAe,EAAGgK,KAAW,EAAIvL,EAAkB0K,cAAcvF,GAAOoG,IACpG,GAAIpO,EAAM7/C,MAAMgpD,eAAe7/G,QAAQ8kH,GAAU,EAAG,CAClDvD,EAAapqI,KAAK2tI,GAClB,KACF,CAEEvD,EAAa9uI,OAAS,GACxBikI,EAAM+K,UAAS,SAAU5qD,GACvB,MAAO,CACLgpD,eAAgBhpD,EAAMgpD,eAAeniI,OAAO6jI,GAEhD,IACI7K,EAAMnkI,MAAMovI,YACdjL,EAAMnkI,MAAMovI,WAAWJ,IAGrB7K,EAAMuL,gBACR3+G,cAAcozG,EAAMuL,sBACbvL,EAAMuL,cAGnB,IACA/vI,EAAgBmoI,EAAuB3D,GAAQ,gBAAgB,SAAUlhI,GACvE,IAAIuvI,EAAc3xI,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,IAAmBA,UAAU,GAC7EurI,EAAcjI,EAAMnkI,MACtBisI,EAAWG,EAAYH,SACvBpC,EAAeuC,EAAYvC,aAC3BuF,EAAahD,EAAYgD,WACzBh8C,EAAQg5C,EAAYh5C,MACpBo2C,EAAc4C,EAAY5C,YACxBjB,EAAepE,EAAM7/C,MAAMikD,aAC3BkK,GAAgB,EAAIzL,EAAkB0L,cAAczL,EAAcA,EAAcA,EAAc,CAC9FhkI,MAAOA,GACNkhI,EAAMnkI,OAAQmkI,EAAM7/C,OAAQ,CAAC,EAAG,CACjCgrD,SAAUnL,EAAMj4B,MAChB0/B,OAAQzH,EAAMnkI,MAAM4rI,SAAW4G,KAEjCluD,EAAQmuD,EAAcnuD,MACtBquD,EAAYF,EAAcE,UAC5B,GAAKruD,EAAL,CACAulD,GAAgBA,EAAatB,EAAcjkD,EAAMikD,cACjD,IAAIyG,EAAe1qD,EAAMgpD,eAAexmF,QAAO,SAAUrlD,GACvD,OAAO0iI,EAAM7/C,MAAMgpD,eAAe7/G,QAAQhsB,GAAS,CACrD,IACA2tI,GAAcJ,EAAa9uI,OAAS,GAAKkvI,EAAWJ,IAC/C7K,EAAMnkI,MAAMgsI,gBAAkB7H,EAAMiM,uBACvCxwH,aAAaukH,EAAMiM,sBACnB5G,GAAeA,EAAYjB,UACpBpE,EAAMiM,sBAEfjM,EAAM+K,SAAS5qD,GAAO,WAEhB2nD,GAAY9H,EAAMyO,gBAAkB3vI,IACtCkhI,EAAMyO,cAAgB3vI,EACtBgpI,EAAS4G,YAAYH,aAAazvI,IAE/B0vI,IACLxO,EAAMiM,qBAAuBh5H,YAAW,WACtC,IAAI41H,EAAY2F,EAAU3F,UACxB8F,EAAa10C,EAAyBu0C,EAAW,CAAC,cACpDxO,EAAM+K,SAAS4D,GAAY,WACzB3O,EAAM2L,eAAelrI,KAAKwS,YAAW,WACnC,OAAO+sH,EAAM+K,SAAS,CACpBlC,UAAWA,GAEf,GAAG,KACHxD,GAAeA,EAAYllD,EAAMikD,qBAC1BpE,EAAMiM,oBACf,GACF,GAAGh9C,GACL,GA/BkB,CAgCpB,IACAzzF,EAAgBmoI,EAAuB3D,GAAQ,eAAe,SAAU1wH,GACtE,IAAI++H,EAAc3xI,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,IAAmBA,UAAU,GAC7EsrI,EAAOlF,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,OAC3DgqD,GAAc,EAAItH,EAAkB6J,aAAa1E,EAAM14H,GAC3D,IAAoB,IAAhB66H,GAAsBA,MACN,IAAhBkE,EACFrO,EAAMuO,aAAapE,EAAakE,GAEhCrO,EAAMuO,aAAapE,GAErBnK,EAAMnkI,MAAMq1B,UAAY8uG,EAAMsL,SAAS,UACnCtL,EAAMnkI,MAAMuqI,eAAe,CAC7B,IAAIjxD,EAAQ6qD,EAAMx4E,KAAKW,iBAAiB,kBACxCgtB,EAAM,IAAMA,EAAM,GAAGsmC,OACvB,CACF,IACAjgH,EAAgBmoI,EAAuB3D,GAAQ,gBAAgB,SAAUz9H,IAC/C,IAApBy9H,EAAM4O,YACRrsI,EAAE0tG,kBACF1tG,EAAE0uG,kBAEJ+uB,EAAM4O,WAAY,CACpB,IACApzI,EAAgBmoI,EAAuB3D,GAAQ,cAAc,SAAUz9H,GACrE,IAAI+8B,GAAM,EAAIujG,EAAkBgM,YAAYtsI,EAAGy9H,EAAMnkI,MAAMspI,cAAenF,EAAMnkI,MAAMmrI,KAC9E,KAAR1nG,GAAc0gG,EAAM0M,YAAY,CAC9Bhf,QAASpuF,GAEb,IACA9jC,EAAgBmoI,EAAuB3D,GAAQ,iBAAiB,SAAU1wH,GACxE0wH,EAAM0M,YAAYp9H,EACpB,IACA9T,EAAgBmoI,EAAuB3D,GAAQ,qBAAqB,WAMlEx9H,OAAOssI,YALc,SAAwBvsI,IAC3CA,EAAIA,GAAKC,OAAO8nB,OACV2mF,gBAAgB1uG,EAAE0uG,iBACxB1uG,EAAEwuG,aAAc,CAClB,CAEF,IACAv1G,EAAgBmoI,EAAuB3D,GAAQ,oBAAoB,WACjEx9H,OAAOssI,YAAc,IACvB,IACAtzI,EAAgBmoI,EAAuB3D,GAAQ,cAAc,SAAUz9H,GACjEy9H,EAAMnkI,MAAMkzI,iBACd/O,EAAMgP,oBAER,IAAI7uD,GAAQ,EAAI0iD,EAAkBoM,YAAY1sI,EAAGy9H,EAAMnkI,MAAMurI,MAAOpH,EAAMnkI,MAAMmqI,WACtE,KAAV7lD,GAAgB6/C,EAAM+K,SAAS5qD,EACjC,IACA3kF,EAAgBmoI,EAAuB3D,GAAQ,aAAa,SAAUz9H,GACpE,IAAI49E,GAAQ,EAAI0iD,EAAkBqM,WAAW3sI,EAAGugI,EAAcA,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,OAAQ,CAAC,EAAG,CAC5HgrD,SAAUnL,EAAMj4B,MAChBmjC,QAASlL,EAAMx4E,KACfulF,WAAY/M,EAAM7/C,MAAMikD,gBAErBjkD,IACDA,EAAe,UACjB6/C,EAAM4O,WAAY,GAEpB5O,EAAM+K,SAAS5qD,GACjB,IACA3kF,EAAgBmoI,EAAuB3D,GAAQ,YAAY,SAAUz9H,GACnE,IAAI49E,GAAQ,EAAI0iD,EAAkBsM,UAAU5sI,EAAGugI,EAAcA,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,OAAQ,CAAC,EAAG,CAC3HgrD,SAAUnL,EAAMj4B,MAChBmjC,QAASlL,EAAMx4E,KACfulF,WAAY/M,EAAM7/C,MAAMikD,gBAE1B,GAAKjkD,EAAL,CACA,IAAIivD,EAAsBjvD,EAA2B,2BAC9CA,EAA2B,oBAClC6/C,EAAM+K,SAAS5qD,QACa5gF,IAAxB6vI,IACJpP,EAAMuO,aAAaa,GACfpP,EAAMnkI,MAAMkzI,iBACd/O,EAAMqP,mBAPU,CASpB,IACA7zI,EAAgBmoI,EAAuB3D,GAAQ,YAAY,SAAUz9H,GACnEy9H,EAAMmP,SAAS5sI,GACfy9H,EAAM4O,WAAY,CACpB,IACApzI,EAAgBmoI,EAAuB3D,GAAQ,aAAa,WAI1DA,EAAM2L,eAAelrI,KAAKwS,YAAW,WACnC,OAAO+sH,EAAM0M,YAAY,CACvBhf,QAAS,YAEb,GAAG,GACL,IACAlyH,EAAgBmoI,EAAuB3D,GAAQ,aAAa,WAC1DA,EAAM2L,eAAelrI,KAAKwS,YAAW,WACnC,OAAO+sH,EAAM0M,YAAY,CACvBhf,QAAS,QAEb,GAAG,GACL,IACAlyH,EAAgBmoI,EAAuB3D,GAAQ,aAAa,SAAUiH,GACpE,IAAIoH,EAAc3xI,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,IAAmBA,UAAU,GAEjF,GADAuqI,EAAQh2H,OAAOg2H,GACXj8H,MAAMi8H,GAAQ,MAAO,GACzBjH,EAAM2L,eAAelrI,KAAKwS,YAAW,WACnC,OAAO+sH,EAAM0M,YAAY,CACvBhf,QAAS,QACT5uH,MAAOmoI,EACP7C,aAAcpE,EAAM7/C,MAAMikD,cACzBiK,EACL,GAAG,GACL,IACA7yI,EAAgBmoI,EAAuB3D,GAAQ,QAAQ,WACrD,IAAIzjF,EACJ,GAAIyjF,EAAMnkI,MAAMmrI,IACdzqF,EAAYyjF,EAAM7/C,MAAMikD,aAAepE,EAAMnkI,MAAMsrI,mBAC9C,CACL,KAAI,EAAItE,EAAkBmC,WAAWlC,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,QAGvF,OAAO,EAFP5jC,EAAYyjF,EAAM7/C,MAAMikD,aAAepE,EAAMnkI,MAAMsrI,cAIvD,CACAnH,EAAMuO,aAAahyF,EACrB,IACA/gD,EAAgBmoI,EAAuB3D,GAAQ,YAAY,SAAUsP,GAC/DtP,EAAMmM,eACRv/G,cAAcozG,EAAMmM,eAEtB,IAAIrD,EAAc9I,EAAM7/C,MAAM2oD,YAC9B,GAAiB,WAAbwG,GACF,GAAoB,YAAhBxG,GAA6C,YAAhBA,GAA6C,WAAhBA,EAC5D,YAEG,GAAiB,UAAbwG,GACT,GAAoB,WAAhBxG,GAA4C,YAAhBA,EAC9B,YAEG,GAAiB,SAAbwG,IACW,WAAhBxG,GAA4C,YAAhBA,GAC9B,OAGJ9I,EAAMmM,cAAgB1/G,YAAYuzG,EAAM/hH,KAAM+hH,EAAMnkI,MAAM4pI,cAAgB,IAC1EzF,EAAM+K,SAAS,CACbjC,YAAa,WAEjB,IACAttI,EAAgBmoI,EAAuB3D,GAAQ,SAAS,SAAUuP,GAC5DvP,EAAMmM,gBACRv/G,cAAcozG,EAAMmM,eACpBnM,EAAMmM,cAAgB,MAExB,IAAIrD,EAAc9I,EAAM7/C,MAAM2oD,YACZ,WAAdyG,EACFvP,EAAM+K,SAAS,CACbjC,YAAa,WAEQ,YAAdyG,EACW,YAAhBzG,GAA6C,YAAhBA,GAC/B9I,EAAM+K,SAAS,CACbjC,YAAa,YAKG,YAAhBA,GACF9I,EAAM+K,SAAS,CACbjC,YAAa,WAIrB,IACAttI,EAAgBmoI,EAAuB3D,GAAQ,cAAc,WAC3D,OAAOA,EAAMnkI,MAAMq1B,UAAY8uG,EAAMviH,MAAM,UAC7C,IACAjiB,EAAgBmoI,EAAuB3D,GAAQ,eAAe,WAC5D,OAAOA,EAAMnkI,MAAMq1B,UAAwC,YAA5B8uG,EAAM7/C,MAAM2oD,aAA6B9I,EAAMsL,SAAS,QACzF,IACA9vI,EAAgBmoI,EAAuB3D,GAAQ,eAAe,WAC5D,OAAOA,EAAMnkI,MAAMq1B,UAAY8uG,EAAMviH,MAAM,UAC7C,IACAjiB,EAAgBmoI,EAAuB3D,GAAQ,gBAAgB,WAC7D,OAAOA,EAAMnkI,MAAMq1B,UAAwC,YAA5B8uG,EAAM7/C,MAAM2oD,aAA6B9I,EAAMsL,SAAS,QACzF,IACA9vI,EAAgBmoI,EAAuB3D,GAAQ,gBAAgB,WAC7D,OAAOA,EAAMnkI,MAAMq1B,UAAY8uG,EAAMviH,MAAM,UAC7C,IACAjiB,EAAgBmoI,EAAuB3D,GAAQ,eAAe,WAC5D,OAAOA,EAAMnkI,MAAMq1B,UAAwC,YAA5B8uG,EAAM7/C,MAAM2oD,aAA6B9I,EAAMsL,SAAS,OACzF,IACA9vI,EAAgBmoI,EAAuB3D,GAAQ,UAAU,WACvD,IAaIuF,EAYAd,EAAWS,EAzBXl7D,GAAY,EAAI44D,EAAqB,SAAG,eAAgB5C,EAAMnkI,MAAMmuE,UAAW,CACjF,iBAAkBg2D,EAAMnkI,MAAM+rI,SAC9B,qBAAqB,IAEnBI,EAAOlF,EAAcA,EAAc,CAAC,EAAG9C,EAAMnkI,OAAQmkI,EAAM7/C,OAC3DqvD,GAAa,EAAI3M,EAAkB4M,eAAezH,EAAM,CAAC,OAAQ,UAAW,QAAS,WAAY,aAAc,gBAAiB,eAAgB,WAAY,iBAAkB,MAAO,aAAc,cAAe,aAAc,WAAY,eAAgB,iBAAkB,aAAc,aAAc,gBAAiB,UAAW,gBAAiB,cAAe,WACtWnB,EAAe7G,EAAMnkI,MAAMgrI,aAQ/B,GAPA2I,EAAa1M,EAAcA,EAAc,CAAC,EAAG0M,GAAa,CAAC,EAAG,CAC5DtH,aAAcrB,EAAe7G,EAAM0P,YAAc,KACjDtH,aAAcvB,EAAe7G,EAAM2P,aAAe,KAClDxH,YAAatB,EAAe7G,EAAM0P,YAAc,KAChDtJ,cAAepG,EAAMnkI,MAAMuqI,eAAiBpG,EAAM4O,UAAY5O,EAAM4P,cAAgB,QAG7D,IAArB5P,EAAMnkI,MAAM0pI,MAAiBvF,EAAM7/C,MAAMkkD,YAAcrE,EAAMnkI,MAAMyoI,aAAc,CACnF,IAAIuL,GAAW,EAAIhN,EAAkB4M,eAAezH,EAAM,CAAC,YAAa,aAAc,eAAgB,eAAgB,iBAAkB,eAAgB,WAAY,eAAgB,WAAY,eAC5LrB,EAAmB3G,EAAMnkI,MAAM8qI,iBACnCkJ,EAAW/M,EAAcA,EAAc,CAAC,EAAG+M,GAAW,CAAC,EAAG,CACxD7L,aAAchE,EAAM0M,YACpBxE,aAAcvB,EAAmB3G,EAAM8P,YAAc,KACrD3H,YAAaxB,EAAmB3G,EAAM+P,WAAa,KACnD3H,aAAczB,EAAmB3G,EAAM8P,YAAc,OAEvDvK,EAAoB5C,EAAgB,QAAE5iI,cAAcyqI,EAAMzC,KAAM8H,EAClE,CAEA,IAAIG,GAAa,EAAInN,EAAkB4M,eAAezH,EAAM,CAAC,WAAY,aAAc,eAAgB,aAAc,eAAgB,YAAa,cAClJgI,EAAWhM,aAAehE,EAAM0M,YAC5B1M,EAAMnkI,MAAM2pI,SACdf,EAAyB9B,EAAgB,QAAE5iI,cAAc0qI,EAAQhI,UAAWuN,GAC5E9K,EAAyBvC,EAAgB,QAAE5iI,cAAc0qI,EAAQ/H,UAAWsN,IAE9E,IAAIC,EAAsB,KACtBjQ,EAAMnkI,MAAM+rI,WACdqI,EAAsB,CACpBj9H,OAAQgtH,EAAM7/C,MAAMipD,aAGxB,IAAI8G,EAAqB,MACI,IAAzBlQ,EAAMnkI,MAAM+rI,UACiB,IAA3B5H,EAAMnkI,MAAM8pI,aACduK,EAAqB,CACnBC,QAAS,OAASnQ,EAAMnkI,MAAM+pI,iBAIH,IAA3B5F,EAAMnkI,MAAM8pI,aACduK,EAAqB,CACnBC,QAASnQ,EAAMnkI,MAAM+pI,cAAgB,SAI3C,IAAIwK,EAAYtN,EAAcA,EAAc,CAAC,EAAGmN,GAAsBC,GAClE3I,EAAYvH,EAAMnkI,MAAM0rI,UACxB8I,EAAY,CACdrmE,UAAW,aACXtiE,MAAO0oI,EACP/d,QAAS2N,EAAMgE,aACfsM,YAAa/I,EAAYvH,EAAMiP,WAAa,KAC5CsB,YAAavQ,EAAM7/C,MAAM8oD,UAAY1B,EAAYvH,EAAMkP,UAAY,KACnEsB,UAAWjJ,EAAYvH,EAAMmP,SAAW,KACxC/G,aAAcpI,EAAM7/C,MAAM8oD,UAAY1B,EAAYvH,EAAMmP,SAAW,KACnEsB,aAAclJ,EAAYvH,EAAMiP,WAAa,KAC7CyB,YAAa1Q,EAAM7/C,MAAM8oD,UAAY1B,EAAYvH,EAAMkP,UAAY,KACnEyB,WAAYpJ,EAAYvH,EAAM4Q,SAAW,KACzCC,cAAe7Q,EAAM7/C,MAAM8oD,UAAY1B,EAAYvH,EAAMmP,SAAW,KACpE2B,UAAW9Q,EAAMnkI,MAAMspI,cAAgBnF,EAAM6O,WAAa,MAExDkC,EAAmB,CACrB/mE,UAAWA,EACX1qC,IAAK,MACL53B,MAAOs4H,EAAMnkI,MAAM6L,OAUrB,OARIs4H,EAAMnkI,MAAMm1I,UACdX,EAAY,CACVrmE,UAAW,cAEb+mE,EAAmB,CACjB/mE,UAAWA,IAGK24D,EAAgB,QAAE5iI,cAAc,MAAOgxI,EAAmB/Q,EAAMnkI,MAAMm1I,QAAsB,GAAZvM,EAA6B9B,EAAgB,QAAE5iI,cAAc,MAAOi6F,EAAS,CAC/KmB,IAAK6kC,EAAMiR,gBACVZ,GAAyB1N,EAAgB,QAAE5iI,cAAcwqI,EAAO2G,MAAOl3C,EAAS,CACjFmB,IAAK6kC,EAAMmR,iBACV3B,GAAaxP,EAAMnkI,MAAMm/E,WAAaglD,EAAMnkI,MAAMm1I,QAAsB,GAAZ9L,EAAiBlF,EAAMnkI,MAAMm1I,QAAiB,GAAPzL,EACxG,IACAvF,EAAMx4E,KAAO,KACbw4E,EAAMj4B,MAAQ,KACdi4B,EAAM7/C,MAAQ2iD,EAAcA,EAAc,CAAC,EAAGuH,EAAuB,SAAI,CAAC,EAAG,CAC3EjG,aAAcpE,EAAMnkI,MAAMwqI,aAC1B8D,YAAanK,EAAMnkI,MAAMwqI,aAAerG,EAAMnkI,MAAMwqI,aAAe,EACnEhC,WAAY1B,EAAgB,QAAE8J,SAAS77H,MAAMovH,EAAMnkI,MAAMm/E,YAE3DglD,EAAM2L,eAAiB,GACvB3L,EAAM4O,WAAY,EAClB5O,EAAM2M,gBAAkB,KACxB,IAAIyE,EAAWpR,EAAMqR,UAErB,OADArR,EAAM7/C,MAAQ2iD,EAAcA,EAAc,CAAC,EAAG9C,EAAM7/C,OAAQixD,GACrDpR,CACT,CAsBA,OA3pBoB3kI,EAsoBP+uI,GAtoBoB/tI,EAsoBP,CAAC,CACzBD,IAAK,iBACLkB,MAAO,SAAwB+uI,GAE7B,IADA,IAAIE,GAAgB,EACX+E,EAAM,EAAGC,EAAe30I,OAAOmH,KAAK9B,KAAKpG,OAAQy1I,EAAMC,EAAax1I,OAAQu1I,IAAO,CAC1F,IAAIl1I,EAAMm1I,EAAaD,GACvB,IAAKjF,EAAUxvI,eAAeT,GAAM,CAClCmwI,GAAgB,EAChB,KACF,CACA,GAAgC,WAA5B1uI,EAAQwuI,EAAUjwI,KAAgD,oBAAnBiwI,EAAUjwI,KAAuB4O,MAAMqhI,EAAUjwI,KAGhGiwI,EAAUjwI,KAAS6F,KAAKpG,MAAMO,GAAM,CACtCmwI,GAAgB,EAChB,KACF,CACF,CACA,OAAOA,GAAiB5J,EAAgB,QAAE8J,SAAS77H,MAAM3O,KAAKpG,MAAMm/E,YAAc2nD,EAAgB,QAAE8J,SAAS77H,MAAMy7H,EAAUrxD,SAC/H,MAzpB0EgoD,EAAkB3nI,EAAYkB,UAAWF,GAAiBC,GAAa0mI,EAAkB3nI,EAAaiB,GAAcM,OAAOwB,eAAe/C,EAAa,YAAa,CAAEc,UAAU,IA2pBrPiuI,CACT,CAjpBqD,CAipBnDzH,EAAgB,QAAEpB,uCClrBpB3kI,OAAOwB,eAAenD,EAAS,aAAc,CAC3CqC,OAAO,IAETrC,EAAiB,aAAI,EACrB,IAAI0nI,EAAS3lI,EAAuB9B,EAAQ,OACxCs2I,EAAet2I,EAAQ,MACvBu2I,EAAWz0I,EAAuB9B,EAAQ,OAC1Cw2I,EAAgB10I,EAAuB9B,EAAQ,OAC/C2nI,EAAoB3nI,EAAQ,MAChC,SAAS8B,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAE,QAAWA,EAAO,CAChG,SAASsC,EAAQ4T,GAAgC,OAAO5T,EAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAU4D,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBhL,QAAUgL,EAAEpU,cAAgBoJ,QAAUgL,IAAMhL,OAAOlK,UAAY,gBAAkBkV,CAAG,EAAG5T,EAAQ4T,EAAI,CAC7T,SAASuoF,IAAiS,OAApRA,EAAWp9F,OAAO2J,OAAS3J,OAAO2J,OAAOsmB,OAAS,SAAUjxB,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CAAE,IAAIa,EAASD,UAAUZ,GAAI,IAAK,IAAIM,KAAOO,EAAcC,OAAOL,UAAUM,eAAeC,KAAKH,EAAQP,KAAQR,EAAOQ,GAAOO,EAAOP,GAAU,CAAE,OAAOR,CAAQ,EAAUo+F,EAASr6F,MAAMsC,KAAMvF,UAAY,CAClV,SAASi9F,EAAQp3F,EAAGoP,GAAK,IAAIxC,EAAIvS,OAAOmH,KAAKxB,GAAI,GAAI3F,OAAOkM,sBAAuB,CAAE,IAAI2I,EAAI7U,OAAOkM,sBAAsBvG,GAAIoP,IAAMF,EAAIA,EAAEkxC,QAAO,SAAUhxC,GAAK,OAAO/U,OAAO2L,yBAAyBhG,EAAGoP,GAAG1V,UAAY,KAAKkT,EAAE1O,KAAKd,MAAMwP,EAAGsC,EAAI,CAAE,OAAOtC,CAAG,CAC9P,SAAS2zH,EAAcvgI,GAAK,IAAK,IAAIoP,EAAI,EAAGA,EAAIjV,UAAUX,OAAQ4V,IAAK,CAAE,IAAIxC,EAAI,MAAQzS,UAAUiV,GAAKjV,UAAUiV,GAAK,CAAC,EAAGA,EAAI,EAAIgoF,EAAQ/8F,OAAOuS,IAAI,GAAIxI,SAAQ,SAAUgL,GAAKnW,EAAgB+G,EAAGoP,EAAGxC,EAAEwC,GAAK,IAAK/U,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiB4G,EAAG3F,OAAOi9F,0BAA0B1qF,IAAMwqF,EAAQ/8F,OAAOuS,IAAIxI,SAAQ,SAAUgL,GAAK/U,OAAOwB,eAAemE,EAAGoP,EAAG/U,OAAO2L,yBAAyB4G,EAAGwC,GAAK,GAAI,CAAE,OAAOpP,CAAG,CAEtb,SAASygI,EAAkBpnI,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,IAAIE,EAAaH,EAAMC,GAAIE,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMS,OAAOwB,eAAexC,EAAQk+F,EAAe99F,EAAWI,KAAMJ,EAAa,CAAE,CAG5U,SAASmnI,EAAgB1xH,EAAGK,GAA6I,OAAxIqxH,EAAkBvmI,OAAO2M,eAAiB3M,OAAO2M,eAAesjB,OAAS,SAAyBpb,EAAGK,GAAsB,OAAjBL,EAAElU,UAAYuU,EAAUL,CAAG,EAAU0xH,EAAgB1xH,EAAGK,EAAI,CACvM,SAASsxH,EAAaC,GAAW,IAAIC,EAA4BC,IAA6B,OAAO,WAAkC,IAAsCnjI,EAAlCojI,EAAQC,EAAgBJ,GAAkB,GAAIC,EAA2B,CAAE,IAAII,EAAYD,EAAgBxhI,MAAM5E,YAAa+C,EAAS+gG,QAAQC,UAAUoiC,EAAO9mI,UAAWgnI,EAAY,MAAStjI,EAASojI,EAAM7jI,MAAMsC,KAAMvF,WAAc,OACpX,SAAoCe,EAAMX,GAAQ,GAAIA,IAA2B,WAAlBe,EAAQf,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIxB,UAAU,4DAA+D,OAAOqoI,EAAuBlmI,EAAO,CAD4FmmI,CAA2B3hI,KAAM7B,EAAS,CAAG,CAExa,SAASujI,EAAuBlmI,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,CAAM,CACrK,SAAS8lI,IAA8B,IAAM,IAAIp0H,GAAK00H,QAAQtnI,UAAU2O,QAAQpO,KAAKqkG,QAAQC,UAAUyiC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO10H,GAAI,CAAE,OAAQo0H,EAA4B,WAAuC,QAASp0H,CAAG,IAAM,CAClP,SAASs0H,EAAgBhyH,GAA+J,OAA1JgyH,EAAkB7mI,OAAO2M,eAAiB3M,OAAOgH,eAAeipB,OAAS,SAAyBpb,GAAK,OAAOA,EAAElU,WAAaX,OAAOgH,eAAe6N,EAAI,EAAUgyH,EAAgBhyH,EAAI,CACnN,SAASjW,EAAgBD,EAAKa,EAAKkB,GAA4L,OAAnLlB,EAAM09F,EAAe19F,MAAiBb,EAAOqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAAEkB,MAAOA,EAAOrB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBZ,EAAIa,GAAOkB,EAAgB/B,CAAK,CAC3O,SAASu+F,EAAe3qF,GAAK,IAAIrT,EACjC,SAAsBqT,EAAGwC,GAAK,GAAI,UAAY9T,EAAQsR,KAAOA,EAAG,OAAOA,EAAG,IAAI5M,EAAI4M,EAAE1I,OAAO2B,aAAc,QAAI,IAAW7F,EAAG,CAAE,IAAIzG,EAAIyG,EAAEzF,KAAKqS,EAAGwC,GAAK,WAAY,GAAI,UAAY9T,EAAQ/B,GAAI,OAAOA,EAAG,MAAM,IAAIR,UAAU,+CAAiD,CAAE,OAAQ,WAAaqW,EAAInH,OAASyG,QAAQ9B,EAAI,CADtR4qF,CAAa5qF,EAAG,UAAW,MAAO,UAAYtR,EAAQ/B,GAAKA,EAAI0O,OAAO1O,EAAI,CAE/G,IAAI61I,GAAU,EAAI9O,EAAkB+O,cAAgB12I,EAAQ,KAC/CD,EAAiB,QAAiB,SAAU6kI,IAXzD,SAAmB3iI,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9B,UAAU,sDAAyD6B,EAASZ,UAAYK,OAAOqB,OAAOb,GAAcA,EAAWb,UAAW,CAAEc,YAAa,CAAEC,MAAOH,EAAUhB,UAAU,EAAMD,cAAc,KAAWU,OAAOwB,eAAejB,EAAU,YAAa,CAAEhB,UAAU,IAAciB,GAAY+lI,EAAgBhmI,EAAUC,EAAa,CAYjc8lI,CAAU2O,EAAQ/R,GAClB,IAdoBzkI,EAAagB,EAAYC,EAczCynI,EAASX,EAAayO,GAC1B,SAASA,EAAOh2I,GACd,IAAImkI,EA0BJ,OA5CJ,SAAyB5kI,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAmBpJynI,CAAgB9gI,KAAM4vI,GAEtBr2I,EAAgBmoI,EADhB3D,EAAQ+D,EAAOjnI,KAAKmF,KAAMpG,IACqB,yBAAyB,SAAUs/F,GAChF,OAAO6kC,EAAM0O,YAAcvzC,CAC7B,IACA3/F,EAAgBmoI,EAAuB3D,GAAQ,aAAa,WAC1D,OAAOA,EAAM0O,YAAYoD,WAC3B,IACAt2I,EAAgBmoI,EAAuB3D,GAAQ,aAAa,WAC1D,OAAOA,EAAM0O,YAAYqD,WAC3B,IACAv2I,EAAgBmoI,EAAuB3D,GAAQ,aAAa,SAAUiH,GACpE,IAAIoH,EAAc3xI,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,IAAmBA,UAAU,GACjF,OAAOsjI,EAAM0O,YAAYsD,UAAU/K,EAAOoH,EAC5C,IACA7yI,EAAgBmoI,EAAuB3D,GAAQ,cAAc,WAC3D,OAAOA,EAAM0O,YAAYjxH,MAAM,SACjC,IACAjiB,EAAgBmoI,EAAuB3D,GAAQ,aAAa,WAC1D,OAAOA,EAAM0O,YAAYpD,SAAS,OACpC,IACAtL,EAAM7/C,MAAQ,CACZ8xD,WAAY,MAEdjS,EAAMkS,yBAA2B,GAC1BlS,CACT,CA2KA,OAtNoB3kI,EA4CPw2I,GA5CoBx1I,EA4CZ,CAAC,CACpBD,IAAK,QACLkB,MAAO,SAAe2W,EAAOW,GAE3B+8H,EAAQ97H,SAAS5B,EAAOW,GACxB3S,KAAKiwI,yBAAyBzxI,KAAK,CACjCwT,MAAOA,EACPW,QAASA,GAEb,GACC,CACDxY,IAAK,oBACLkB,MAAO,WACL,IAAImjI,EAASx+H,KAMb,GAAIA,KAAKpG,MAAMirI,WAAY,CACzB,IAAIqL,EAAclwI,KAAKpG,MAAMirI,WAAW/E,KAAI,SAAUqQ,GACpD,OAAOA,EAAQH,UACjB,IAEAE,EAAYE,MAAK,SAAUv3G,EAAG2I,GAC5B,OAAO3I,EAAI2I,CACb,IACA0uG,EAAYxrI,SAAQ,SAAUsrI,EAAYnzI,GAExC,IAAIwzI,EAEFA,EADY,IAAVxzI,GACO,EAAI2yI,EAAkB,SAAG,CAChCc,SAAU,EACVC,SAAUP,KAGH,EAAIR,EAAkB,SAAG,CAChCc,SAAUJ,EAAYrzI,EAAQ,GAAK,EACnC0zI,SAAUP,KAId,EAAIpP,EAAkB+O,cAAgBnR,EAAOgS,MAAMH,GAAQ,WACzD7R,EAAOsK,SAAS,CACdkH,WAAYA,GAEhB,GACF,IAIA,IAAIh+H,GAAQ,EAAIw9H,EAAkB,SAAG,CACnCc,SAAUJ,EAAYnzI,OAAO,GAAG,MAElC,EAAI6jI,EAAkB+O,cAAgB3vI,KAAKwwI,MAAMx+H,GAAO,WACtDwsH,EAAOsK,SAAS,CACdkH,WAAY,MAEhB,GACF,CACF,GACC,CACD71I,IAAK,uBACLkB,MAAO,WACL2E,KAAKiwI,yBAAyBvrI,SAAQ,SAAUpL,GAC9Co2I,EAAQ17H,WAAW1a,EAAI0Y,MAAO1Y,EAAIqZ,QACpC,GACF,GACC,CACDxY,IAAK,SACLkB,MAAO,WACL,IACIo1I,EACAC,EAFAhS,EAAS1+H,MAOXywI,EAJEzwI,KAAKk+E,MAAM8xD,WAIuB,aAHpCU,EAAW1wI,KAAKpG,MAAMirI,WAAWnkF,QAAO,SAAUiwF,GAChD,OAAOA,EAAKX,aAAetR,EAAOxgD,MAAM8xD,UAC1C,KACoB,GAAGS,SAAyB,UAAY5P,EAAcA,EAAcA,EAAc,CAAC,EAAG4O,EAAuB,SAAIzvI,KAAKpG,OAAQ82I,EAAS,GAAGD,UAEnJ5P,EAAcA,EAAc,CAAC,EAAG4O,EAAuB,SAAIzvI,KAAKpG,QAIhE8pI,aACP+M,EAASvL,eAGbuL,EAASvL,eAAiB,GAGxBuL,EAASvM,OACPuM,EAASpO,aAGToO,EAASvL,eAGbuL,EAASpO,aAAe,EACxBoO,EAASvL,eAAiB,GAI5B,IAAInsD,EAAW2nD,EAAgB,QAAE8J,SAASoG,QAAQ5wI,KAAKpG,MAAMm/E,UAI7DA,EAAWA,EAASr4B,QAAO,SAAU2nD,GACnC,MAAqB,kBAAVA,IACAA,EAAMr7E,SAERq7E,CACX,IAGIooC,EAAS/K,gBAAkB+K,EAAS3L,KAAO,GAAK2L,EAASxL,aAAe,KAC1E30H,QAAQi2C,KAAK,0EACbkqF,EAAS/K,eAAgB,GAI3B,IAFA,IAAImL,EAAc,GACdlF,EAAe,KACV9xI,EAAI,EAAGA,EAAIk/E,EAASj/E,OAAQD,GAAK42I,EAAS3L,KAAO2L,EAASxL,aAAc,CAE/E,IADA,IAAI6L,EAAW,GACN9rI,EAAInL,EAAGmL,EAAInL,EAAI42I,EAAS3L,KAAO2L,EAASxL,aAAcjgI,GAAKyrI,EAASxL,aAAc,CAEzF,IADA,IAAI8L,EAAM,GACDpsI,EAAIK,EAAGL,EAAIK,EAAIyrI,EAASxL,eAC3BwL,EAAS/K,eAAiB3sD,EAASp0E,GAAG/K,MAAM6L,QAC9CkmI,EAAe5yD,EAASp0E,GAAG/K,MAAM6L,MAAM4jB,SAErC1kB,GAAKo0E,EAASj/E,SAJ2B6K,GAAK,EAKlDosI,EAAIvyI,KAAmBkiI,EAAgB,QAAE+B,aAAa1pD,EAASp0E,GAAI,CACjExK,IAAK,IAAMN,EAAI,GAAKmL,EAAIL,EACxB06H,UAAW,EACX55H,MAAO,CACL4jB,MAAO,GAAGtkB,OAAO,IAAM0rI,EAASxL,aAAc,KAC9Cv/H,QAAS,mBAIforI,EAAStyI,KAAmBkiI,EAAgB,QAAE5iI,cAAc,MAAO,CACjE3D,IAAK,GAAKN,EAAImL,GACb+rI,GACL,CACIN,EAAS/K,cACXmL,EAAYryI,KAAmBkiI,EAAgB,QAAE5iI,cAAc,MAAO,CACpE3D,IAAKN,EACL4L,MAAO,CACL4jB,MAAOsiH,IAERmF,IAEHD,EAAYryI,KAAmBkiI,EAAgB,QAAE5iI,cAAc,MAAO,CACpE3D,IAAKN,GACJi3I,GAEP,CACA,GAAiB,YAAbL,EAAwB,CAC1B,IAAI1oE,EAAY,mBAAqB/nE,KAAKpG,MAAMmuE,WAAa,IAC7D,OAAoB24D,EAAgB,QAAE5iI,cAAc,MAAO,CACzDiqE,UAAWA,GACVgR,EACL,CAGA,OAHW83D,EAAY/2I,QAAU22I,EAASpO,eAAiBoO,EAASvO,WAClEuO,EAAS1B,SAAU,GAEDrO,EAAgB,QAAE5iI,cAAcyxI,EAAapH,YAAapwC,EAAS,CACrFtyF,MAAOzF,KAAKpG,MAAM6L,MAClByzF,IAAKl5F,KAAKgxI,wBACT,EAAIpQ,EAAkBqQ,gBAAgBR,IAAYI,EACvD,MApN0E9P,EAAkB3nI,EAAYkB,UAAWF,GAAiBC,GAAa0mI,EAAkB3nI,EAAaiB,GAAcM,OAAOwB,eAAe/C,EAAa,YAAa,CAAEc,UAAU,IAsNrP01I,CACT,CA3M+C,CA2M7ClP,EAAgB,QAAEpB,uCCvOpB3kI,OAAOwB,eAAenD,EAAS,aAAc,CAC3CqC,OAAO,IAETrC,EAAQi2I,WAAQ,EAChB,IAAIvO,EAAS3lI,EAAuB9B,EAAQ,OACxC0nI,EAAc5lI,EAAuB9B,EAAQ,OAC7C2nI,EAAoB3nI,EAAQ,MAChC,SAAS8B,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAE,QAAWA,EAAO,CAChG,SAASsC,EAAQ4T,GAAgC,OAAO5T,EAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAU4D,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBhL,QAAUgL,EAAEpU,cAAgBoJ,QAAUgL,IAAMhL,OAAOlK,UAAY,gBAAkBkV,CAAG,EAAG5T,EAAQ4T,EAAI,CAC7T,SAASuoF,IAAiS,OAApRA,EAAWp9F,OAAO2J,OAAS3J,OAAO2J,OAAOsmB,OAAS,SAAUjxB,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CAAE,IAAIa,EAASD,UAAUZ,GAAI,IAAK,IAAIM,KAAOO,EAAcC,OAAOL,UAAUM,eAAeC,KAAKH,EAAQP,KAAQR,EAAOQ,GAAOO,EAAOP,GAAU,CAAE,OAAOR,CAAQ,EAAUo+F,EAASr6F,MAAMsC,KAAMvF,UAAY,CAElV,SAASsmI,EAAkBpnI,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,IAAIE,EAAaH,EAAMC,GAAIE,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMS,OAAOwB,eAAexC,EAAQk+F,EAAe99F,EAAWI,KAAMJ,EAAa,CAAE,CAG5U,SAASmnI,EAAgB1xH,EAAGK,GAA6I,OAAxIqxH,EAAkBvmI,OAAO2M,eAAiB3M,OAAO2M,eAAesjB,OAAS,SAAyBpb,EAAGK,GAAsB,OAAjBL,EAAElU,UAAYuU,EAAUL,CAAG,EAAU0xH,EAAgB1xH,EAAGK,EAAI,CACvM,SAASsxH,EAAaC,GAAW,IAAIC,EAA4BC,IAA6B,OAAO,WAAkC,IAAsCnjI,EAAlCojI,EAAQC,EAAgBJ,GAAkB,GAAIC,EAA2B,CAAE,IAAII,EAAYD,EAAgBxhI,MAAM5E,YAAa+C,EAAS+gG,QAAQC,UAAUoiC,EAAO9mI,UAAWgnI,EAAY,MAAStjI,EAASojI,EAAM7jI,MAAMsC,KAAMvF,WAAc,OACpX,SAAoCe,EAAMX,GAAQ,GAAIA,IAA2B,WAAlBe,EAAQf,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIxB,UAAU,4DAA+D,OAAOqoI,EAAuBlmI,EAAO,CAD4FmmI,CAA2B3hI,KAAM7B,EAAS,CAAG,CAExa,SAASujI,EAAuBlmI,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,CAAM,CACrK,SAAS8lI,IAA8B,IAAM,IAAIp0H,GAAK00H,QAAQtnI,UAAU2O,QAAQpO,KAAKqkG,QAAQC,UAAUyiC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO10H,GAAI,CAAE,OAAQo0H,EAA4B,WAAuC,QAASp0H,CAAG,IAAM,CAClP,SAASs0H,EAAgBhyH,GAA+J,OAA1JgyH,EAAkB7mI,OAAO2M,eAAiB3M,OAAOgH,eAAeipB,OAAS,SAAyBpb,GAAK,OAAOA,EAAElU,WAAaX,OAAOgH,eAAe6N,EAAI,EAAUgyH,EAAgBhyH,EAAI,CACnN,SAASkoF,EAAQp3F,EAAGoP,GAAK,IAAIxC,EAAIvS,OAAOmH,KAAKxB,GAAI,GAAI3F,OAAOkM,sBAAuB,CAAE,IAAI2I,EAAI7U,OAAOkM,sBAAsBvG,GAAIoP,IAAMF,EAAIA,EAAEkxC,QAAO,SAAUhxC,GAAK,OAAO/U,OAAO2L,yBAAyBhG,EAAGoP,GAAG1V,UAAY,KAAKkT,EAAE1O,KAAKd,MAAMwP,EAAGsC,EAAI,CAAE,OAAOtC,CAAG,CAC9P,SAAS2zH,EAAcvgI,GAAK,IAAK,IAAIoP,EAAI,EAAGA,EAAIjV,UAAUX,OAAQ4V,IAAK,CAAE,IAAIxC,EAAI,MAAQzS,UAAUiV,GAAKjV,UAAUiV,GAAK,CAAC,EAAGA,EAAI,EAAIgoF,EAAQ/8F,OAAOuS,IAAI,GAAIxI,SAAQ,SAAUgL,GAAKnW,EAAgB+G,EAAGoP,EAAGxC,EAAEwC,GAAK,IAAK/U,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiB4G,EAAG3F,OAAOi9F,0BAA0B1qF,IAAMwqF,EAAQ/8F,OAAOuS,IAAIxI,SAAQ,SAAUgL,GAAK/U,OAAOwB,eAAemE,EAAGoP,EAAG/U,OAAO2L,yBAAyB4G,EAAGwC,GAAK,GAAI,CAAE,OAAOpP,CAAG,CACtb,SAAS/G,EAAgBD,EAAKa,EAAKkB,GAA4L,OAAnLlB,EAAM09F,EAAe19F,MAAiBb,EAAOqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAAEkB,MAAOA,EAAOrB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBZ,EAAIa,GAAOkB,EAAgB/B,CAAK,CAC3O,SAASu+F,EAAe3qF,GAAK,IAAIrT,EACjC,SAAsBqT,EAAGwC,GAAK,GAAI,UAAY9T,EAAQsR,KAAOA,EAAG,OAAOA,EAAG,IAAI5M,EAAI4M,EAAE1I,OAAO2B,aAAc,QAAI,IAAW7F,EAAG,CAAE,IAAIzG,EAAIyG,EAAEzF,KAAKqS,EAAGwC,GAAK,WAAY,GAAI,UAAY9T,EAAQ/B,GAAI,OAAOA,EAAG,MAAM,IAAIR,UAAU,+CAAiD,CAAE,OAAQ,WAAaqW,EAAInH,OAASyG,QAAQ9B,EAAI,CADtR4qF,CAAa5qF,EAAG,UAAW,MAAO,UAAYtR,EAAQ/B,GAAKA,EAAI0O,OAAO1O,EAAI,CAG/G,IAAIq3I,EAAkB,SAAyBnL,GAC7C,IAAIoL,EAAaC,EAAaC,EAC1BC,EAAcz0I,EAyBlB,OAnBAw0I,GAJEx0I,EADEkpI,EAAKhB,IACCgB,EAAK3D,WAAa,EAAI2D,EAAKlpI,MAE3BkpI,EAAKlpI,OAEO,GAAKA,GAASkpI,EAAK3D,WACrC2D,EAAKrC,YACP4N,EAAe9wI,KAAKsI,MAAMi9H,EAAK1D,aAAe,GAC9C+O,GAAev0I,EAAQkpI,EAAK5D,cAAgB4D,EAAK3D,aAAe,EAC5DvlI,EAAQkpI,EAAK5D,aAAemP,EAAe,GAAKz0I,GAASkpI,EAAK5D,aAAemP,IAC/EH,GAAc,IAGhBA,EAAcpL,EAAK5D,cAAgBtlI,GAASA,EAAQkpI,EAAK5D,aAAe4D,EAAK1D,aAWxE,CACL,eAAe,EACf,eAAgB8O,EAChB,eAAgBC,EAChB,eAAgBC,EAChB,gBANiBx0I,KAPfkpI,EAAKmC,YAAc,EACNnC,EAAKmC,YAAcnC,EAAK3D,WAC9B2D,EAAKmC,aAAenC,EAAK3D,WACnB2D,EAAKmC,YAAcnC,EAAK3D,WAExB2D,EAAKmC,aAUxB,EAqBIqJ,EAAS,SAAgBlpC,EAAOmpC,GAClC,OAAOnpC,EAAMluG,KAAOq3I,CACtB,EACIC,EAAe,SAAsB1L,GACvC,IAAI5rI,EACAu3I,EAAS,GACTC,EAAiB,GACjBC,EAAkB,GAClBhG,EAAgBlL,EAAgB,QAAE8J,SAAS77H,MAAMo3H,EAAKhtD,UACtD84D,GAAa,EAAIjR,EAAkBkR,gBAAgB/L,GACnDr2C,GAAW,EAAIkxC,EAAkBmR,cAAchM,GA0FnD,OAzFArF,EAAgB,QAAE8J,SAAS9lI,QAAQqhI,EAAKhtD,UAAU,SAAUviD,EAAM35B,GAChE,IAAIwrG,EACA2pC,EAAsB,CACxBvmB,QAAS,WACT5uH,MAAOA,EACPqoI,eAAgBa,EAAKb,eACrB/C,aAAc4D,EAAK5D,cAKnB95B,GADG09B,EAAK1B,UAAY0B,EAAK1B,UAAY0B,EAAKmB,eAAe7/G,QAAQxqB,IAAU,EACnE25B,EAEakqG,EAAgB,QAAE5iI,cAAc,MAAO,MAE9D,IAAIm0I,EA9CY,SAAuBlM,GACzC,IAAItgI,EAAQ,CAAC,EAiBb,YAhB2BnI,IAAvByoI,EAAKL,gBAAsD,IAAvBK,EAAKL,gBAC3CjgI,EAAM4jB,MAAQ08G,EAAKwB,YAEjBxB,EAAK7B,OACPz+H,EAAMoZ,SAAW,WACbknH,EAAKJ,SACPlgI,EAAMoL,KAAOk1H,EAAKlpI,MAAQua,SAAS2uH,EAAKuB,aAExC7hI,EAAMqZ,MAAQinH,EAAKlpI,MAAQua,SAAS2uH,EAAKwB,YAE3C9hI,EAAMmrD,QAAUm1E,EAAK5D,eAAiB4D,EAAKlpI,MAAQ,EAAI,EACvD4I,EAAM6+F,OAASyhC,EAAK5D,eAAiB4D,EAAKlpI,MAAQ,IAAM,IACpDkpI,EAAKP,SACP//H,EAAMmoG,WAAa,WAAam4B,EAAK/4C,MAAQ,MAAQ+4C,EAAKnC,QAAvC,gBAAwEmC,EAAK/4C,MAAQ,MAAQ+4C,EAAKnC,UAGlHn+H,CACT,CA2BqBysI,CAAcrR,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACxElpI,MAAOA,KAELs1I,EAAa9pC,EAAMzuG,MAAMmuE,WAAa,GACtCqqE,EAAelB,EAAgBrQ,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CAC5ElpI,MAAOA,KAqBT,GAlBA60I,EAAOlzI,KAAmBkiI,EAAgB,QAAE+B,aAAap6B,EAAO,CAC9DluG,IAAK,WAAao3I,EAAOlpC,EAAOxrG,GAChC,aAAcA,EACdkrE,WAAW,EAAI44D,EAAqB,SAAGyR,EAAcD,GACrD9S,SAAU,KACV,eAAgB+S,EAAa,gBAC7B3sI,MAAOo7H,EAAcA,EAAc,CACjC3B,QAAS,QACR72B,EAAMzuG,MAAM6L,OAAS,CAAC,GAAIwsI,GAC7B7hB,QAAS,SAAiB9vH,GACxB+nG,EAAMzuG,OAASyuG,EAAMzuG,MAAMw2H,SAAW/nB,EAAMzuG,MAAMw2H,QAAQ9vH,GACtDylI,EAAK5B,eACP4B,EAAK5B,cAAc6N,EAEvB,KAIEjM,EAAK7D,WAA0B,IAAd6D,EAAK7B,KAAgB,CACxC,IAAImO,EAAazG,EAAgB/uI,EAC7Bw1I,IAAc,EAAIzR,EAAkB0K,cAAcvF,MACpD5rI,GAAOk4I,IACIR,IACTxpC,EAAQ7xE,GAEV47G,EAAelB,EAAgBrQ,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACxElpI,MAAO1C,KAETw3I,EAAenzI,KAAmBkiI,EAAgB,QAAE+B,aAAap6B,EAAO,CACtEluG,IAAK,YAAco3I,EAAOlpC,EAAOluG,GACjC,aAAcA,EACdklI,SAAU,KACVt3D,WAAW,EAAI44D,EAAqB,SAAGyR,EAAcD,GACrD,eAAgBC,EAAa,gBAC7B3sI,MAAOo7H,EAAcA,EAAc,CAAC,EAAGx4B,EAAMzuG,MAAM6L,OAAS,CAAC,GAAIwsI,GACjE7hB,QAAS,SAAiB9vH,GACxB+nG,EAAMzuG,OAASyuG,EAAMzuG,MAAMw2H,SAAW/nB,EAAMzuG,MAAMw2H,QAAQ9vH,GACtDylI,EAAK5B,eACP4B,EAAK5B,cAAc6N,EAEvB,OAGJ73I,EAAMyxI,EAAgB/uI,GACZ6yF,IACR2Y,EAAQ7xE,GAEV47G,EAAelB,EAAgBrQ,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACxElpI,MAAO1C,KAETy3I,EAAgBpzI,KAAmBkiI,EAAgB,QAAE+B,aAAap6B,EAAO,CACvEluG,IAAK,aAAeo3I,EAAOlpC,EAAOluG,GAClC,aAAcA,EACdklI,SAAU,KACVt3D,WAAW,EAAI44D,EAAqB,SAAGyR,EAAcD,GACrD,eAAgBC,EAAa,gBAC7B3sI,MAAOo7H,EAAcA,EAAc,CAAC,EAAGx4B,EAAMzuG,MAAM6L,OAAS,CAAC,GAAIwsI,GACjE7hB,QAAS,SAAiB9vH,GACxB+nG,EAAMzuG,OAASyuG,EAAMzuG,MAAMw2H,SAAW/nB,EAAMzuG,MAAMw2H,QAAQ9vH,GACtDylI,EAAK5B,eACP4B,EAAK5B,cAAc6N,EAEvB,IAEJ,CACF,IACIjM,EAAKhB,IACA4M,EAAe5sI,OAAO2sI,EAAQE,GAAiBpqG,UAE/CmqG,EAAe5sI,OAAO2sI,EAAQE,EAEzC,EACY54I,EAAQi2I,MAAqB,SAAUpN,IA9KnD,SAAmB3mI,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9B,UAAU,sDAAyD6B,EAASZ,UAAYK,OAAOqB,OAAOb,GAAcA,EAAWb,UAAW,CAAEc,YAAa,CAAEC,MAAOH,EAAUhB,UAAU,EAAMD,cAAc,KAAWU,OAAOwB,eAAejB,EAAU,YAAa,CAAEhB,UAAU,IAAciB,GAAY+lI,EAAgBhmI,EAAUC,EAAa,CA+Kjc8lI,CAAUgO,EAAOpN,GACjB,IAjLoBzoI,EAAagB,EAAYC,EAiLzCynI,EAASX,EAAa8N,GAC1B,SAASA,IACP,IAAIlR,GArLR,SAAyB5kI,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAsLpJynI,CAAgB9gI,KAAMivI,GACtB,IAAK,IAAI51C,EAAO5+F,UAAUX,OAAQgT,EAAO,IAAI9L,MAAMq4F,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExsF,EAAKwsF,GAAQ7+F,UAAU6+F,GAOzB,OAJA//F,EAAgBmoI,EADhB3D,EAAQ+D,EAAOjnI,KAAK6C,MAAMokI,EAAQ,CAAC9hI,MAAM+E,OAAO+H,KACD,OAAQ,MACvDvT,EAAgBmoI,EAAuB3D,GAAQ,aAAa,SAAU7kC,GACpE6kC,EAAMz7E,KAAO42C,CACf,IACO6kC,CACT,CAqBA,OAnNoB3kI,EA+LP61I,GA/LoB70I,EA+Lb,CAAC,CACnBD,IAAK,SACLkB,MAAO,WACL,IAAIq2I,EAASD,EAAazxI,KAAKpG,OAC3BosI,EAAchmI,KAAKpG,MAInBysI,EAAc,CAChBJ,aAJeD,EAAYC,aAK3BC,YAJcF,EAAYE,YAK1BC,aAJeH,EAAYG,cAM7B,OAAoBzF,EAAgB,QAAE5iI,cAAc,MAAOi6F,EAAS,CAClEmB,IAAKl5F,KAAKsyI,UACVvqE,UAAW,cACXtiE,MAAOzF,KAAKpG,MAAMouI,YACjB3B,GAAcqL,EACnB,MAjN0E3Q,EAAkB3nI,EAAYkB,UAAWF,GAAiBC,GAAa0mI,EAAkB3nI,EAAaiB,GAAcM,OAAOwB,eAAe/C,EAAa,YAAa,CAAEc,UAAU,IAmNrP+0I,CACT,CArCyC,CAqCvCvO,EAAgB,QAAEgC,4CChOpB/nI,OAAOwB,eAAenD,EAAS,aAAc,CAC3CqC,OAAO,IAETrC,EAAQu5I,cAAgBv5I,EAAQw5I,eAAiBx5I,EAAQyxI,YAAczxI,EAAQ22I,UAAY32I,EAAQ+pI,eAAY,EAC/G/pI,EAAQ8mF,MAAQA,EAChB9mF,EAAQw0I,mBAAgB,EACxBx0I,EAAQi4I,eAgvBR,SAAwBR,GACtB,OAAOgC,EAAcC,QAAO,SAAUC,EAAKC,GAIzC,OAHInC,EAAS71I,eAAeg4I,KAC1BD,EAAIC,GAAenC,EAASmC,IAEvBD,CACT,GAAG,CAAC,EACN,EAtvBA35I,EAAQy5I,cAAgBz5I,EAAQg0I,WAAah0I,EAAQi0I,UAAYj0I,EAAQk0I,SAAWl0I,EAAQ65I,cAAgB75I,EAAQ85I,aAAe95I,EAAQszI,aAAetzI,EAAQ+5I,iBAAmB/5I,EAAQg6I,mBAAqBh6I,EAAQ84I,eAAiB94I,EAAQi6I,kBAAoBj6I,EAAQk6I,iBAAmBl6I,EAAQ+4I,aAAe/4I,EAAQ4zI,WAAa5zI,EAAQ6xI,iBAAmB7xI,EAAQm6I,SAAWn6I,EAAQgyI,aAAehyI,EAAQiyI,YAAcjyI,EAAQo6I,mBAAqBp6I,EAAQq6I,eAAiBr6I,EAAQs6I,kBAAoBt6I,EAAQu6I,cAAgBv6I,EAAQw6I,sBAAwBx6I,EAAQsyI,aAAetyI,EAAQwyI,cAAgBxyI,EAAQ6vI,sBAAwB7vI,EAAQy6I,oBAAsBz6I,EAAQ2vI,eAAY,EACprB,IAAIjI,EAAS3lI,EAAuB9B,EAAQ,OACxCw2I,EAAgB10I,EAAuB9B,EAAQ,OACnD,SAAS8B,EAAuBzB,GAAO,OAAOA,GAAOA,EAAIJ,WAAaI,EAAM,CAAE,QAAWA,EAAO,CAChG,SAASsC,EAAQ4T,GAAgC,OAAO5T,EAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAU4D,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBhL,QAAUgL,EAAEpU,cAAgBoJ,QAAUgL,IAAMhL,OAAOlK,UAAY,gBAAkBkV,CAAG,EAAG5T,EAAQ4T,EAAI,CAC7T,SAASkoF,EAAQp3F,EAAGoP,GAAK,IAAIxC,EAAIvS,OAAOmH,KAAKxB,GAAI,GAAI3F,OAAOkM,sBAAuB,CAAE,IAAI2I,EAAI7U,OAAOkM,sBAAsBvG,GAAIoP,IAAMF,EAAIA,EAAEkxC,QAAO,SAAUhxC,GAAK,OAAO/U,OAAO2L,yBAAyBhG,EAAGoP,GAAG1V,UAAY,KAAKkT,EAAE1O,KAAKd,MAAMwP,EAAGsC,EAAI,CAAE,OAAOtC,CAAG,CAC9P,SAAS2zH,EAAcvgI,GAAK,IAAK,IAAIoP,EAAI,EAAGA,EAAIjV,UAAUX,OAAQ4V,IAAK,CAAE,IAAIxC,EAAI,MAAQzS,UAAUiV,GAAKjV,UAAUiV,GAAK,CAAC,EAAGA,EAAI,EAAIgoF,EAAQ/8F,OAAOuS,IAAI,GAAIxI,SAAQ,SAAUgL,GAAKnW,EAAgB+G,EAAGoP,EAAGxC,EAAEwC,GAAK,IAAK/U,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiB4G,EAAG3F,OAAOi9F,0BAA0B1qF,IAAMwqF,EAAQ/8F,OAAOuS,IAAIxI,SAAQ,SAAUgL,GAAK/U,OAAOwB,eAAemE,EAAGoP,EAAG/U,OAAO2L,yBAAyB4G,EAAGwC,GAAK,GAAI,CAAE,OAAOpP,CAAG,CACtb,SAAS/G,EAAgBD,EAAKa,EAAKkB,GAA4L,OAAnLlB,EAC5C,SAAwB+S,GAAK,IAAIrT,EACjC,SAAsBqT,EAAGwC,GAAK,GAAI,UAAY9T,EAAQsR,KAAOA,EAAG,OAAOA,EAAG,IAAI5M,EAAI4M,EAAE1I,OAAO2B,aAAc,QAAI,IAAW7F,EAAG,CAAE,IAAIzG,EAAIyG,EAAEzF,KAAKqS,EAAGwC,GAAK,WAAY,GAAI,UAAY9T,EAAQ/B,GAAI,OAAOA,EAAG,MAAM,IAAIR,UAAU,+CAAiD,CAAE,OAAQ,WAAaqW,EAAInH,OAASyG,QAAQ9B,EAAI,CADtR4qF,CAAa5qF,EAAG,UAAW,MAAO,UAAYtR,EAAQ/B,GAAKA,EAAI0O,OAAO1O,EAAI,CAD7Dg+F,CAAe19F,MAAiBb,EAAOqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAAEkB,MAAOA,EAAOrB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBZ,EAAIa,GAAOkB,EAAgB/B,CAAK,CAG3O,SAASwmF,EAAM+W,EAAQ68C,EAAYC,GACjC,OAAOnzI,KAAKmI,IAAI+qI,EAAYlzI,KAAKoI,IAAIiuF,EAAQ88C,GAC/C,CACA,IAAIX,EAAqBh6I,EAAQg6I,mBAAqB,SAA4B3qH,GAC5D,CAAC,eAAgB,cAAe,WACjC+2E,SAAS/2E,EAAMqmF,aAChCrmF,EAAM2mF,gBAEV,EACI65B,EAAwB7vI,EAAQ6vI,sBAAwB,SAA+B9C,GAIzF,IAHA,IAAI6N,EAAiB,GACjB/B,EAAaC,EAAe/L,GAC5Br2C,EAAWqiD,EAAahM,GACnB+E,EAAa+G,EAAY/G,EAAap7C,EAAUo7C,IACnD/E,EAAKmB,eAAe7/G,QAAQyjH,GAAc,GAC5C8I,EAAep1I,KAAKssI,GAGxB,OAAO8I,CACT,EAcI9B,GAXwB94I,EAAQw6I,sBAAwB,SAA+BzN,GAIzF,IAHA,IAAI8N,EAAiB,GACjBhC,EAAaC,EAAe/L,GAC5Br2C,EAAWqiD,EAAahM,GACnB+E,EAAa+G,EAAY/G,EAAap7C,EAAUo7C,IACvD+I,EAAer1I,KAAKssI,GAEtB,OAAO+I,CACT,EAGqB76I,EAAQ84I,eAAiB,SAAwB/L,GACpE,OAAOA,EAAK5D,aAAe+Q,EAAiBnN,EAC9C,GACIgM,EAAe/4I,EAAQ+4I,aAAe,SAAsBhM,GAC9D,OAAOA,EAAK5D,aAAe8Q,EAAkBlN,EAC/C,EACImN,EAAmBl6I,EAAQk6I,iBAAmB,SAA0BnN,GAC1E,OAAOA,EAAKrC,WAAaljI,KAAKsI,MAAMi9H,EAAK1D,aAAe,IAAMjrH,SAAS2uH,EAAKpC,eAAiB,EAAI,EAAI,GAAK,CAC5G,EACIsP,EAAoBj6I,EAAQi6I,kBAAoB,SAA2BlN,GAC7E,OAAOA,EAAKrC,WAAaljI,KAAKsI,OAAOi9H,EAAK1D,aAAe,GAAK,GAAK,GAAKjrH,SAAS2uH,EAAKpC,eAAiB,EAAI,EAAI,GAAKoC,EAAK1D,YAC3H,EAGI8Q,EAAWn6I,EAAQm6I,SAAW,SAAkB38G,GAClD,OAAOA,GAAQA,EAAKosB,aAAe,CACrC,EACI+lF,EAAY3vI,EAAQ2vI,UAAY,SAAmBnyG,GACrD,OAAOA,GAAQA,EAAKm/C,cAAgB,CACtC,EACI29D,EAAoBt6I,EAAQs6I,kBAAoB,SAA2B3L,GAC7E,IACImM,EAAOC,EAAOrkI,EAAGskI,EADjBlH,EAAkBryI,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,IAAmBA,UAAU,GASrF,OAPAq5I,EAAQnM,EAAYC,OAASD,EAAYG,KACzCiM,EAAQpM,EAAYE,OAASF,EAAYI,KACzCr4H,EAAIlP,KAAKqjC,MAAMkwG,EAAOD,IACtBE,EAAaxzI,KAAKke,MAAU,IAAJhP,EAAUlP,KAAK8d,KACtB,IACf01H,EAAa,IAAMxzI,KAAKiP,IAAIukI,IAE1BA,GAAc,IAAMA,GAAc,GAAKA,GAAc,KAAOA,GAAc,IACrE,OAELA,GAAc,KAAOA,GAAc,IAC9B,SAEe,IAApBlH,EACEkH,GAAc,IAAMA,GAAc,IAC7B,KAEA,OAGJ,UACT,EAGIjR,EAAY/pI,EAAQ+pI,UAAY,SAAmBgD,GACrD,IAAIkO,GAAQ,EAQZ,OAPKlO,EAAK7D,WACJ6D,EAAKrC,YAAcqC,EAAK5D,cAAgB4D,EAAK3D,WAAa,GAEnD2D,EAAK3D,YAAc2D,EAAK1D,cAAgB0D,EAAK5D,cAAgB4D,EAAK3D,WAAa2D,EAAK1D,gBAD7F4R,GAAQ,GAKLA,CACT,EAmYIR,GAhYgBz6I,EAAQw0I,cAAgB,SAAuBzH,EAAMjkI,GACvE,IAAIoyI,EAAY,CAAC,EAIjB,OAHApyI,EAAK4C,SAAQ,SAAUvK,GACrB,OAAO+5I,EAAU/5I,GAAO4rI,EAAK5rI,EAC/B,IACO+5I,CACT,EAGuBl7I,EAAQ6xI,iBAAmB,SAA0B9E,GAE1E,IAKIwB,EALAnF,EAAa1B,EAAgB,QAAE8J,SAAS77H,MAAMo3H,EAAKhtD,UACnDo7D,EAAWpO,EAAKkD,QAChB7B,EAAY5mI,KAAKqI,KAAKsqI,EAASgB,IAC/BC,EAAYrO,EAAKmD,UAAYnD,EAAKmD,SAAS5mF,KAC3C2lF,EAAaznI,KAAKqI,KAAKsqI,EAASiB,IAEpC,GAAKrO,EAAKJ,SAOR4B,EAAaH,MAPK,CAClB,IAAIiN,EAAmBtO,EAAKrC,YAA6C,EAA/BtsH,SAAS2uH,EAAKpC,eACtB,kBAAvBoC,EAAKpC,eAA+D,MAAjCoC,EAAKpC,cAAc5mI,OAAO,KACtEs3I,GAAoBjN,EAAY,KAElCG,EAAa/mI,KAAKqI,MAAMu+H,EAAYiN,GAAoBtO,EAAK1D,aAC/D,CAGA,IAAIiF,EAAc6M,GAAYxL,EAAUwL,EAASzL,cAAc,qBAC3DvB,EAAaG,EAAcvB,EAAK1D,aAChCF,OAAqC7kI,IAAtByoI,EAAK5D,aAA6B4D,EAAK3B,aAAe2B,EAAK5D,aAC1E4D,EAAKhB,UAA6BznI,IAAtByoI,EAAK5D,eACnBA,EAAeC,EAAa,EAAI2D,EAAK3B,cAEvC,IAAI8C,EAAiBnB,EAAKmB,gBAAkB,GACxC0B,EAAeC,EAAsBhI,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CAClF5D,aAAcA,EACd+E,eAAgBA,KAGdhpD,EAAQ,CACVkkD,WAAYA,EACZmF,WAAYA,EACZH,UAAWA,EACXa,WAAYA,EACZ9F,aAAcA,EACdmF,YAAaA,EACbH,WAAYA,EACZD,eATFA,EAAiBA,EAAeniI,OAAO6jI,IAcvC,OAHyB,OAArB7C,EAAKc,aAAwBd,EAAK92G,WACpCivD,EAAmB,YAAI,WAElBA,CACT,EACmBllF,EAAQszI,aAAe,SAAsBvG,GAC9D,IAAIH,EAAiBG,EAAKH,eACxBgB,EAAYb,EAAKa,UACjB1C,EAAO6B,EAAK7B,KACZhC,EAAW6D,EAAK7D,SAChBrlI,EAAQkpI,EAAKlpI,MACbulI,EAAa2D,EAAK3D,WAClBiC,EAAW0B,EAAK1B,SAChBlC,EAAe4D,EAAK5D,aACpBuB,EAAaqC,EAAKrC,WAClBwB,EAAiBa,EAAKb,eACtB7C,EAAe0D,EAAK1D,aACpBmD,EAASO,EAAKP,OACZ0B,EAAiBnB,EAAKmB,eAC1B,GAAItB,GAAkBgB,EAAW,MAAO,CAAC,EACzC,IACE0N,EACAC,EACAC,EAHEC,EAAiB53I,EAIjBqhF,EAAQ,CAAC,EACXquD,EAAY,CAAC,EACXrE,EAAchG,EAAWrlI,EAAQijF,EAAMjjF,EAAO,EAAGulI,EAAa,GAClE,GAAI8B,EAAM,CACR,IAAKhC,IAAarlI,EAAQ,GAAKA,GAASulI,GAAa,MAAO,CAAC,EACzDvlI,EAAQ,EACV43I,EAAiB53I,EAAQulI,EAChBvlI,GAASulI,IAClBqS,EAAiB53I,EAAQulI,GAEvBiC,GAAY6C,EAAe7/G,QAAQotH,GAAkB,IACvDvN,EAAiBA,EAAeniI,OAAO0vI,IAEzCv2D,EAAQ,CACN0oD,WAAW,EACXzE,aAAcsS,EACdvN,eAAgBA,EAChBgB,YAAauM,GAEflI,EAAY,CACV3F,WAAW,EACXsB,YAAauM,EAEjB,MACEH,EAAaG,EACTA,EAAiB,GACnBH,EAAaG,EAAiBrS,EACzBF,EAAkCE,EAAa8C,IAAmB,IAAGoP,EAAalS,EAAaA,EAAa8C,GAAlGoP,EAAa,IAClBvR,EAAUgD,IAAS0O,EAAiBtS,EAC9CsS,EAAiBH,EAAanS,EACrBuB,GAAc+Q,GAAkBrS,GACzCqS,EAAiBvS,EAAWE,EAAaA,EAAa,EACtDkS,EAAapS,EAAW,EAAIE,EAAa,GAChCqS,GAAkBrS,IAC3BkS,EAAaG,EAAiBrS,EACzBF,EAA0DE,EAAa8C,IAAmB,IAAGoP,EAAa,GAAhGA,EAAalS,EAAaC,IAEtCH,GAAYuS,EAAiBpS,GAAgBD,IAChDkS,EAAalS,EAAaC,GAE5BkS,EAAgBvJ,EAAanK,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACtE+E,WAAY2J,KAEdD,EAAYxJ,EAAanK,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CAClE+E,WAAYwJ,KAETpS,IACCqS,IAAkBC,IAAWC,EAAiBH,GAClDC,EAAgBC,GAEdnQ,IACF6C,EAAiBA,EAAeniI,OAAO8jI,EAAsBhI,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACtG5D,aAAcsS,OAGbjP,GAUHtnD,EAAQ,CACN0oD,WAAW,EACXzE,aAAcmS,EACdtM,WAAYoL,EAAmBvS,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACxEjnH,KAAMy1H,KAERrN,eAAgBA,EAChBgB,YAAaA,GAEfqE,EAAY,CACV3F,WAAW,EACXzE,aAAcmS,EACdtM,WAAYiD,EAAYpK,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACjEjnH,KAAM01H,KAERhN,UAAW,KACXU,YAAaA,IAzBfhqD,EAAQ,CACNikD,aAAcmS,EACdtM,WAAYiD,EAAYpK,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACjEjnH,KAAM01H,KAERtN,eAAgBA,EAChBgB,YAAaA,GAuBnB,MAAO,CACLhqD,MAAOA,EACPquD,UAAWA,EAEf,EACkBvzI,EAAQyxI,YAAc,SAAqB1E,EAAM14H,GACjE,IAAIqnI,EAAaC,EAAaC,EAA2B1M,EACrDhD,EAAiBa,EAAKb,eACxB7C,EAAe0D,EAAK1D,aACpBD,EAAa2D,EAAK3D,WAClBD,EAAe4D,EAAK5D,aACpB0S,EAAsB9O,EAAKmC,YAC3B7D,EAAW0B,EAAK1B,SAChBnC,EAAW6D,EAAK7D,SAGlB,GADAwS,EADetS,EAAa8C,IAAmB,EAClB,GAAK9C,EAAaD,GAAgB+C,EACvC,aAApB73H,EAAQo+G,QAEVyc,EAAc/F,GADdyS,EAA8B,IAAhBF,EAAoBxP,EAAiB7C,EAAeqS,GAE9DrQ,IAAanC,IAEfgG,GAA+B,KAD/ByM,EAAcxS,EAAeyS,GACMxS,EAAa,EAAIuS,GAEjDzS,IACHgG,EAAc2M,EAAsB3P,QAEjC,GAAwB,SAApB73H,EAAQo+G,QAEjByc,EAAc/F,GADdyS,EAA8B,IAAhBF,EAAoBxP,EAAiBwP,GAE/CrQ,IAAanC,IACfgG,GAAe/F,EAAe+C,GAAkB9C,EAAasS,GAE1DxS,IACHgG,EAAc2M,EAAsB3P,QAEjC,GAAwB,SAApB73H,EAAQo+G,QAEjByc,EAAc76H,EAAQxQ,MAAQwQ,EAAQ63H,oBACjC,GAAwB,aAApB73H,EAAQo+G,SAGjB,GADAyc,EAAc76H,EAAQxQ,MAClBqlI,EAAU,CACZ,IAAIxiH,EAAYqzH,EAAiBlS,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CAC1EmC,YAAaA,KAEXA,EAAc76H,EAAQ80H,cAA8B,SAAdziH,EACxCwoH,GAA4B9F,EACnB8F,EAAc76H,EAAQ80H,cAA8B,UAAdziH,IAC/CwoH,GAA4B9F,EAEhC,MAC6B,UAApB/0H,EAAQo+G,UACjByc,EAAcl5H,OAAO3B,EAAQxQ,QAE/B,OAAOqrI,CACT,EACiBlvI,EAAQ4zI,WAAa,SAAoBtsI,EAAG4iI,EAAe6B,GAC1E,OAAIzkI,EAAE3G,OAAO8X,QAAQsC,MAAM,2BAA6BmvH,EAAsB,GAC5D,KAAd5iI,EAAEiuG,QAAuBw2B,EAAM,OAAS,WAC1B,KAAdzkI,EAAEiuG,QAAuBw2B,EAAM,WAAa,OACzC,EACT,EACiB/rI,EAAQg0I,WAAa,SAAoB1sI,EAAG6kI,EAAOpB,GAElE,MADqB,QAArBzjI,EAAE3G,OAAO8X,SAAqBuhI,EAAmB1yI,IAC5C6kI,IAAUpB,IAA0C,IAA7BzjI,EAAEvB,KAAKsoB,QAAQ,SAAwB,GAC5D,CACL2/G,UAAU,EACVW,YAAa,CACXC,OAAQtnI,EAAE4zG,QAAU5zG,EAAE4zG,QAAQ,GAAG7D,MAAQ/vG,EAAE6vG,QAC3C03B,OAAQvnI,EAAE4zG,QAAU5zG,EAAE4zG,QAAQ,GAAG5D,MAAQhwG,EAAE8vG,QAC3C03B,KAAMxnI,EAAE4zG,QAAU5zG,EAAE4zG,QAAQ,GAAG7D,MAAQ/vG,EAAE6vG,QACzC43B,KAAMznI,EAAE4zG,QAAU5zG,EAAE4zG,QAAQ,GAAG5D,MAAQhwG,EAAE8vG,SAG/C,EACgBp3G,EAAQi0I,UAAY,SAAmB3sI,EAAGylI,GAExD,IAAIsB,EAAYtB,EAAKsB,UACnBT,EAAYb,EAAKa,UACjBjB,EAAWI,EAAKJ,SAChBN,EAAeU,EAAKV,aACpByH,EAAkB/G,EAAK+G,gBACvB/H,EAAMgB,EAAKhB,IACX5C,EAAe4D,EAAK5D,aACpB8B,EAAe8B,EAAK9B,aACpBgD,EAAclB,EAAKkB,YACnB3C,EAASyB,EAAKzB,OACdmD,EAAS1B,EAAK0B,OACdC,EAAU3B,EAAK2B,QACftF,EAAa2D,EAAK3D,WAClB8C,EAAiBa,EAAKb,eACtBhD,EAAW6D,EAAK7D,SAChByF,EAAc5B,EAAK4B,YACnBvC,EAAaW,EAAKX,WAClB+B,EAAapB,EAAKoB,WAClBC,EAAYrB,EAAKqB,UACnB,IAAIC,EAAJ,CACA,GAAIT,EAAW,OAAOoM,EAAmB1yI,GACrCqlI,GAAYN,GAAgByH,GAAiBkG,EAAmB1yI,GACpE,IAAIknI,EACFtpD,EAAQ,CAAC,EACP42D,EAAU9J,EAAajF,GAC3B4B,EAAYG,KAAOxnI,EAAE4zG,QAAU5zG,EAAE4zG,QAAQ,GAAG7D,MAAQ/vG,EAAE6vG,QACtDw3B,EAAYI,KAAOznI,EAAE4zG,QAAU5zG,EAAE4zG,QAAQ,GAAG5D,MAAQhwG,EAAE8vG,QACtDu3B,EAAYoN,YAAcv0I,KAAKke,MAAMle,KAAKod,KAAKpd,KAAKyP,IAAI03H,EAAYG,KAAOH,EAAYC,OAAQ,KAC/F,IAAIoN,EAAsBx0I,KAAKke,MAAMle,KAAKod,KAAKpd,KAAKyP,IAAI03H,EAAYI,KAAOJ,EAAYE,OAAQ,KAC/F,IAAKiF,IAAoBpF,GAAWsN,EAAsB,GACxD,MAAO,CACL3N,WAAW,GAGXyF,IAAiBnF,EAAYoN,YAAcC,GAC/C,IAAIC,GAAmBlQ,GAAW,EAAL,IAAW4C,EAAYG,KAAOH,EAAYC,OAAS,GAAK,GACjFkF,IAAiBmI,EAAiBtN,EAAYI,KAAOJ,EAAYE,OAAS,GAAK,GACnF,IAAIzB,EAAW5lI,KAAKqI,KAAKu5H,EAAa8C,GAClCgQ,EAAiB5B,EAAkBvN,EAAK4B,YAAamF,GACrDqI,EAAmBxN,EAAYoN,YAiCnC,OAhCK7S,IACkB,IAAjBC,IAA0C,UAAnB+S,GAAiD,SAAnBA,IAA8B/S,EAAe,GAAKiE,IAAgC,SAAnB8O,GAAgD,OAAnBA,KAA6BnS,EAAUgD,KAA6B,SAAnBmP,GAAgD,OAAnBA,MACjOC,EAAmBxN,EAAYoN,YAAc9Q,GACzB,IAAhBgD,GAAyB3C,IAC3BA,EAAO4Q,GACPh3D,EAAmB,aAAI,KAIxBupD,GAAUrC,IACbA,EAAW8P,GACXh3D,EAAc,QAAI,GASlBspD,EAPG7B,EAOSmP,EAAUK,GAAoBhO,EAAaC,GAAa6N,EAN/DlQ,EAGS+P,EAAUK,EAAmBF,EAF7BH,EAAUK,EAAmBF,EAOzCnI,IACFtF,EAAYsN,EAAUK,EAAmBF,GAE3C/2D,EAAQ2iD,EAAcA,EAAc,CAAC,EAAG3iD,GAAQ,CAAC,EAAG,CAClDypD,YAAaA,EACbH,UAAWA,EACXQ,WAAYiD,EAAYpK,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CACjEjnH,KAAM0oH,OAGNhnI,KAAKiP,IAAIk4H,EAAYG,KAAOH,EAAYC,QAA4D,GAAlDpnI,KAAKiP,IAAIk4H,EAAYI,KAAOJ,EAAYE,QACrF3pD,GAELypD,EAAYoN,YAAc,KAC5B72D,EAAe,SAAI,EACnB80D,EAAmB1yI,IAEd49E,EA5Dc,CA6DvB,EACellF,EAAQk0I,SAAW,SAAkB5sI,EAAGylI,GACrD,IAAIiB,EAAWjB,EAAKiB,SAClB7B,EAAQY,EAAKZ,MACbwC,EAAc5B,EAAK4B,YACnBP,EAAYrB,EAAKqB,UACjB7B,EAAiBQ,EAAKR,eACtBuH,EAAkB/G,EAAK+G,gBACvB3F,EAAapB,EAAKoB,WAClB9B,EAAeU,EAAKV,aACpBgC,EAAYtB,EAAKsB,UACjB+N,EAAUrP,EAAKqP,QACflN,EAAcnC,EAAKmC,YACnB/F,EAAe4D,EAAK5D,aACpBD,EAAW6D,EAAK7D,SAClB,IAAK8E,EAEH,OADI7B,GAAO6N,EAAmB1yI,GACvB,CAAC,EAEV,IAAI+0I,EAAWvI,EAAkB3F,EAAa5B,EAAiB6B,EAAY7B,EACvE2P,EAAiB5B,EAAkB3L,EAAamF,GAEhD5uD,EAAQ,CACV8oD,UAAU,EACVC,aAAa,EACbI,WAAW,EACXK,SAAS,EACTD,QAAQ,EACRD,UAAW,KACXG,YAAa,CAAC,GAEhB,GAAIN,EACF,OAAOnpD,EAET,IAAKypD,EAAYoN,YACf,OAAO72D,EAET,GAAIypD,EAAYoN,YAAcM,EAAU,CAKtC,IAAIjT,EAAY0O,EAJhBkC,EAAmB1yI,GACf80I,GACFA,EAAQF,GAGV,IAAII,EAAcpT,EAAWC,EAAe+F,EAC5C,OAAQgN,GACN,IAAK,OACL,IAAK,KACHpE,EAAWwE,EAAc/B,EAAcxN,GACvC3D,EAAaiD,EAAemN,EAAezM,EAAM+K,GAAYA,EAC7D5yD,EAAwB,iBAAI,EAC5B,MACF,IAAK,QACL,IAAK,OACH4yD,EAAWwE,EAAc/B,EAAcxN,GACvC3D,EAAaiD,EAAemN,EAAezM,EAAM+K,GAAYA,EAC7D5yD,EAAwB,iBAAI,EAC5B,MACF,QACEkkD,EAAakT,EAEjBp3D,EAA2B,oBAAIkkD,CACjC,KAAO,CAEL,IAAI2E,EAAciE,EAAajF,GAC/B7nD,EAAkB,WAAIk1D,EAAmBvS,EAAcA,EAAc,CAAC,EAAGkF,GAAO,CAAC,EAAG,CAClFjnH,KAAMioH,IAEV,CACA,OAAO7oD,CACT,EAC0BllF,EAAQy6I,oBAAsB,SAA6B1N,GAKnF,IAJA,IAAIp9H,EAAMo9H,EAAK7D,SAA6B,EAAlB6D,EAAK3D,WAAiB2D,EAAK3D,WACjD4N,EAAajK,EAAK7D,UAAgC,EAArB6D,EAAK1D,aAAoB,EACtDkT,EAAUxP,EAAK7D,UAAgC,EAArB6D,EAAK1D,aAAoB,EACnD7hE,EAAU,GACPwvE,EAAarnI,GAClB63D,EAAQhiE,KAAKwxI,GACbA,EAAauF,EAAUxP,EAAKb,eAC5BqQ,GAAW/0I,KAAKoI,IAAIm9H,EAAKb,eAAgBa,EAAK1D,cAEhD,OAAO7hE,CACT,GACIgyE,EAAiBx5I,EAAQw5I,eAAiB,SAAwBzM,EAAMlpI,GAC1E,IAAI24I,EAAa/B,EAAoB1N,GACjC0P,EAAgB,EACpB,GAAI54I,EAAQ24I,EAAWA,EAAW17I,OAAS,GACzC+C,EAAQ24I,EAAWA,EAAW17I,OAAS,QAEvC,IAAK,IAAIqT,KAAKqoI,EAAY,CACxB,GAAI34I,EAAQ24I,EAAWroI,GAAI,CACzBtQ,EAAQ44I,EACR,KACF,CACAA,EAAgBD,EAAWroI,EAC7B,CAEF,OAAOtQ,CACT,EACI02I,EAAgBv6I,EAAQu6I,cAAgB,SAAuBxN,GACjE,IAAIuL,EAAevL,EAAKrC,WAAaqC,EAAKwB,WAAa/mI,KAAKsI,MAAMi9H,EAAK1D,aAAe,GAAK,EAC3F,GAAI0D,EAAKV,aAAc,CACrB,IAAIqQ,EACAC,EAAY5P,EAAKkD,QACjByI,EAASiE,EAAUzvF,kBAAoByvF,EAAUzvF,iBAAiB,iBAAmB,GAezF,GAdAllD,MAAM23F,KAAK+4C,GAAQkE,OAAM,SAAU5Q,GACjC,GAAKe,EAAKJ,UAMR,GAAIX,EAAM6Q,UAAYlN,EAAU3D,GAAS,GAAsB,EAAlBe,EAAKyB,UAEhD,OADAkO,EAAc1Q,GACP,OAPT,GAAIA,EAAM8Q,WAAaxE,EAAe6B,EAASnO,GAAS,GAAsB,EAAlBe,EAAKyB,UAE/D,OADAkO,EAAc1Q,GACP,EAQX,OAAO,CACT,KACK0Q,EACH,OAAO,EAET,IAAIh3E,GAA4B,IAAbqnE,EAAKhB,IAAegB,EAAK3D,WAAa2D,EAAK5D,aAAe4D,EAAK5D,aAElF,OADsB3hI,KAAKiP,IAAIimI,EAAY5mB,QAAQjyH,MAAQ6hE,IAAiB,CAE9E,CACE,OAAOqnE,EAAKb,cAEhB,EACIqN,EAAgBv5I,EAAQu5I,cAAgB,SAAuBxM,EAAMgQ,GACvE,OAAOA,EAAUrD,QAAO,SAAUr3I,EAAOlB,GACvC,OAAOkB,GAAS0qI,EAAKnrI,eAAeT,EACtC,IAAG,GAAQ,KAAOmW,QAAQ9B,MAAM,gBAAiBu3H,EACnD,EACIkF,EAAcjyI,EAAQiyI,YAAc,SAAqBlF,GAE3D,IAAIkC,EAAY+N,EADhBzD,EAAcxM,EAAM,CAAC,OAAQ,gBAAiB,aAAc,eAAgB,eAE5E,IAAIkQ,EAAgBlQ,EAAK3D,WAAa,EAAI2D,EAAK1D,aAC1C0D,EAAKJ,SAGRqQ,EAAcC,EAAgBlQ,EAAKuB,YAFnCW,EAAaoL,EAAetN,GAAQA,EAAKwB,WAI3C,IAAI9hI,EAAQ,CACVmrD,QAAS,EACTg9C,WAAY,GACZsoC,iBAAkB,IAEpB,GAAInQ,EAAKN,aAAc,CACrB,IAAI0Q,EAAmBpQ,EAAKJ,SAA0D,oBAAsBI,EAAKjnH,KAAO,WAAjF,eAAiBinH,EAAKjnH,KAAO,gBAChEwuB,EAAay4F,EAAKJ,SAA0D,oBAAsBI,EAAKjnH,KAAO,WAAjF,eAAiBinH,EAAKjnH,KAAO,gBAC1Ds3H,EAAerQ,EAAKJ,SAA+C,cAAgBI,EAAKjnH,KAAO,MAAhE,cAAgBinH,EAAKjnH,KAAO,MAC/DrZ,EAAQo7H,EAAcA,EAAc,CAAC,EAAGp7H,GAAQ,CAAC,EAAG,CAClD0wI,gBAAiBA,EACjB7oG,UAAWA,EACX8oG,YAAaA,GAEjB,MACMrQ,EAAKJ,SACPlgI,EAAW,IAAIsgI,EAAKjnH,KAEpBrZ,EAAY,KAAIsgI,EAAKjnH,KAiBzB,OAdIinH,EAAK7B,OAAMz+H,EAAQ,CACrBmrD,QAAS,IAEPq3E,IAAYxiI,EAAM4jB,MAAQ4+G,GAC1B+N,IAAavwI,EAAMsL,OAASilI,GAG5Bz1I,SAAWA,OAAOsrB,kBAAoBtrB,OAAO62G,cAC1C2uB,EAAKJ,SAGRlgI,EAAM4wI,UAAYtQ,EAAKjnH,KAAO,KAF9BrZ,EAAM6wI,WAAavQ,EAAKjnH,KAAO,MAK5BrZ,CACT,EACI2tI,EAAqBp6I,EAAQo6I,mBAAqB,SAA4BrN,GAChFwM,EAAcxM,EAAM,CAAC,OAAQ,gBAAiB,aAAc,eAAgB,aAAc,QAAS,YACnG,IAAItgI,EAAQwlI,EAAYlF,GAYxB,OAVIA,EAAKN,cACPhgI,EAAMywI,iBAAmB,qBAAuBnQ,EAAK/4C,MAAQ,MAAQ+4C,EAAKnC,QAC1En+H,EAAMmoG,WAAa,aAAem4B,EAAK/4C,MAAQ,MAAQ+4C,EAAKnC,SAExDmC,EAAKJ,SACPlgI,EAAMmoG,WAAa,OAASm4B,EAAK/4C,MAAQ,MAAQ+4C,EAAKnC,QAEtDn+H,EAAMmoG,WAAa,QAAUm4B,EAAK/4C,MAAQ,MAAQ+4C,EAAKnC,QAGpDn+H,CACT,EACIulI,EAAehyI,EAAQgyI,aAAe,SAAsBjF,GAC9D,GAAIA,EAAKgJ,QACP,OAAO,EAETwD,EAAcxM,EAAM,CAAC,aAAc,WAAY,WAAY,aAAc,aAAc,eAAgB,iBAAkB,aAAc,YAAa,gBAAiB,gBACrK,IAcIgF,EACA7C,EAfA4C,EAAa/E,EAAK+E,WACpB5B,EAAWnD,EAAKmD,SAChBhH,EAAW6D,EAAK7D,SAChBwB,EAAaqC,EAAKrC,WAClBtB,EAAa2D,EAAK3D,WAClBC,EAAe0D,EAAK1D,aACpB6C,EAAiBa,EAAKb,eACtBqC,EAAaxB,EAAKwB,WAClBH,EAAYrB,EAAKqB,UACjB1B,EAAgBK,EAAKL,cACrB4B,EAAcvB,EAAKuB,YACnBpD,EAAO6B,EAAK7B,KACZyB,EAAWI,EAAKJ,SAKlB,GAAIzB,GAA4B,IAApB6B,EAAK3D,WACf,OAAO,EAET,IAAImU,EAAiB,EA0BrB,GAzBIrU,GACFqU,GAAkBjL,EAAavF,GAE3B3D,EAAa8C,IAAmB,GAAK4F,EAAa5F,EAAiB9C,IACrEmU,IAAmBzL,EAAa1I,EAAaC,GAAgByI,EAAa1I,GAAcA,EAAa8C,IAGnGxB,IACF6S,GAAkBn/H,SAASirH,EAAe,MAGxCD,EAAa8C,IAAmB,GAAK4F,EAAa5F,EAAiB9C,IACrEmU,EAAiBlU,EAAeD,EAAa8C,GAE3CxB,IACF6S,EAAiBn/H,SAASirH,EAAe,KAQ3C0I,EAHGpF,EAGUmF,EAAaxD,GAAe,EAJ1BiP,EAAiBjP,EAEnBwD,EAAavD,GAAc,EAH5BgP,EAAiBhP,GAOT,IAAlB7B,EAAwB,CAC1B,IAAI8Q,EACAC,EAAYvN,GAAYA,EAAS5mF,KAIrC,GAHAk0F,EAAmB1L,EAAaQ,EAAavF,GAE7CgF,GADA7C,EAAcuO,GAAaA,EAAU1jD,WAAWyjD,KACK,EAA1BtO,EAAY4N,WAAkB,GACtC,IAAfpS,EAAqB,CACvB8S,EAAmBtU,EAAW4I,EAAaQ,EAAavF,GAAQ+E,EAChE5C,EAAcuO,GAAaA,EAAU19D,SAASy9D,GAC9CzL,EAAa,EACb,IAAK,IAAI/F,EAAQ,EAAGA,EAAQwR,EAAkBxR,IAC5C+F,GAAc0L,GAAaA,EAAU19D,SAASisD,IAAUyR,EAAU19D,SAASisD,GAAOpiF,YAEpFmoF,GAAc3zH,SAAS2uH,EAAKpC,eAC5BoH,GAAc7C,IAAgBd,EAAYc,EAAYtlF,aAAe,CACvE,CACF,CACA,OAAOmoF,CACT,EACIO,EAAetyI,EAAQsyI,aAAe,SAAsBvF,GAC9D,OAAIA,EAAKgJ,UAAYhJ,EAAK7D,SACjB,EAEL6D,EAAKL,cACAK,EAAK3D,WAEP2D,EAAK1D,cAAgB0D,EAAKrC,WAAa,EAAI,EACpD,EACI8H,EAAgBxyI,EAAQwyI,cAAgB,SAAuBzF,GACjE,OAAIA,EAAKgJ,UAAYhJ,EAAK7D,SACjB,EAEF6D,EAAK3D,UACd,EACIiR,EAAiBr6I,EAAQq6I,eAAiB,SAAwBtN,GACpE,OAA2B,IAApBA,EAAK3D,WAAmB,EAAIkJ,EAAavF,GAAQA,EAAK3D,WAAaoJ,EAAczF,EAC1F,EACIgN,EAAmB/5I,EAAQ+5I,iBAAmB,SAA0BhN,GAC1E,OAAIA,EAAKmC,YAAcnC,EAAK5D,aACtB4D,EAAKmC,YAAcnC,EAAK5D,aAAe0Q,EAAc9M,GAChD,OAEF,QAEHA,EAAKmC,YAAcnC,EAAK5D,aAAe2Q,EAAa/M,GAC/C,QAEF,MAEX,EACI8M,EAAgB75I,EAAQ65I,cAAgB,SAAuB74C,GACjE,IAAIqoC,EAAeroC,EAAKqoC,aACtBqB,EAAa1pC,EAAK0pC,WAClBqB,EAAM/qC,EAAK+qC,IACXpB,EAAgB3pC,EAAK2pC,cAEvB,GAAID,EAAY,CACd,IAAIhnF,GAAS2lF,EAAe,GAAK,EAAI,EAGrC,OAFIjrH,SAASusH,GAAiB,IAAGjnF,GAAS,GACtCqoF,GAAO1C,EAAe,IAAM,IAAG3lF,GAAS,GACrCA,CACT,CACA,OAAIqoF,EACK,EAEF1C,EAAe,CACxB,EACIyQ,EAAe95I,EAAQ85I,aAAe,SAAsB4D,GAC9D,IAAIrU,EAAeqU,EAAMrU,aACvBqB,EAAagT,EAAMhT,WACnBqB,EAAM2R,EAAM3R,IACZpB,EAAgB+S,EAAM/S,cAExB,GAAID,EAAY,CACd,IAAI5kH,GAAQujH,EAAe,GAAK,EAAI,EAGpC,OAFIjrH,SAASusH,GAAiB,IAAG7kH,GAAQ,GACpCimH,GAAO1C,EAAe,IAAM,IAAGvjH,GAAQ,GACrCA,CACT,CACA,OAAIimH,EACK1C,EAAe,EAEjB,CACT,EAIIoQ,GAHYz5I,EAAQ22I,UAAY,WAClC,QAA4B,qBAAXpvI,SAA0BA,OAAO3C,WAAY2C,OAAO3C,SAASE,cAChF,EACoB9E,EAAQy5I,cAAgB93I,OAAOmH,KAAK2tI,EAAuB,uCC9uBlE,IAAIpxI,EAAEpF,EAAQ,MAAS0L,EAAEH,OAAOs5F,IAAI,iBAAiBt1F,EAAEhE,OAAOs5F,IAAI,kBAAkB5wD,EAAEvyC,OAAOL,UAAUM,eAAeuS,EAAE9O,EAAEu/F,mDAAmDgvB,kBAAkB/8G,EAAE,CAAC1V,KAAI,EAAG++F,KAAI,EAAGy9C,QAAO,EAAGC,UAAS,GAChP,SAAS/iI,EAAEpW,EAAEF,EAAEojB,GAAG,IAAInjB,EAAEqjB,EAAE,CAAC,EAAEvgB,EAAE,KAAKqP,EAAE,KAAiF,IAAInS,UAAhF,IAASmjB,IAAIrgB,EAAE,GAAGqgB,QAAG,IAASpjB,EAAEpD,MAAMmG,EAAE,GAAG/C,EAAEpD,UAAK,IAASoD,EAAE27F,MAAMvpF,EAAEpS,EAAE27F,KAAc37F,EAAE2vC,EAAEryC,KAAK0C,EAAEC,KAAKqS,EAAEjV,eAAe4C,KAAKqjB,EAAErjB,GAAGD,EAAEC,IAAI,GAAGC,GAAGA,EAAEmX,aAAa,IAAIpX,KAAKD,EAAEE,EAAEmX,kBAAe,IAASiM,EAAErjB,KAAKqjB,EAAErjB,GAAGD,EAAEC,IAAI,MAAM,CAAC+hG,SAAS56F,EAAE5F,KAAKtB,EAAEtD,IAAImG,EAAE44F,IAAIvpF,EAAE/V,MAAMinB,EAAE4gG,OAAOt0G,EAAEwgF,QAAQ,CAAC30F,EAAQ+iI,SAASvzH,EAAExP,EAAQ69I,IAAIhjI,EAAE7a,EAAQ89I,KAAKjjI,6BCD7V,IAAIrL,EAAEhE,OAAOs5F,IAAI,iBAAiB3wF,EAAE3I,OAAOs5F,IAAI,gBAAgBjuF,EAAErL,OAAOs5F,IAAI,kBAAkBjqF,EAAErP,OAAOs5F,IAAI,qBAAqBpuF,EAAElL,OAAOs5F,IAAI,kBAAkB5wF,EAAE1I,OAAOs5F,IAAI,kBAAkBluF,EAAEpL,OAAOs5F,IAAI,iBAAiBp9E,EAAElc,OAAOs5F,IAAI,qBAAqBn6F,EAAEa,OAAOs5F,IAAI,kBAAkBjlE,EAAEr0B,OAAOs5F,IAAI,cAAct8D,EAAEh9B,OAAOs5F,IAAI,cAAcjuD,EAAErrC,OAAOoH,SACzW,IAAIjM,EAAE,CAAC2qH,UAAU,WAAW,OAAM,CAAE,EAAEI,mBAAmB,WAAW,EAAED,oBAAoB,WAAW,EAAED,gBAAgB,WAAW,GAAGzqH,EAAEpF,OAAO2J,OAAOvI,EAAE,CAAC,EAAE,SAASiQ,EAAEzO,EAAEC,EAAE8C,GAAGN,KAAKpG,MAAM2D,EAAEyC,KAAK8uE,QAAQtxE,EAAEwC,KAAK2hH,KAAK5lH,EAAEiE,KAAK+qH,QAAQzqH,GAAGX,CAAC,CACwI,SAASP,IAAI,CAAyB,SAASE,EAAE/B,EAAEC,EAAE8C,GAAGN,KAAKpG,MAAM2D,EAAEyC,KAAK8uE,QAAQtxE,EAAEwC,KAAK2hH,KAAK5lH,EAAEiE,KAAK+qH,QAAQzqH,GAAGX,CAAC,CADxPqM,EAAE1R,UAAUm8H,iBAAiB,CAAC,EACpQzqH,EAAE1R,UAAUwuI,SAAS,SAASvrI,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMkW,MAAM,yHAAyHzT,KAAK+qH,QAAQP,gBAAgBxqH,KAAKzC,EAAEC,EAAE,WAAW,EAAEwO,EAAE1R,UAAUy8I,YAAY,SAASx5I,GAAGyC,KAAK+qH,QAAQL,mBAAmB1qH,KAAKzC,EAAE,cAAc,EAAgB6B,EAAE9E,UAAU0R,EAAE1R,UAAsF,IAAIgkH,EAAEh/G,EAAEhF,UAAU,IAAI8E,EACrfk/G,EAAEljH,YAAYkE,EAAES,EAAEu+G,EAAEtyG,EAAE1R,WAAWgkH,EAAEuM,sBAAqB,EAAG,IAAIvK,EAAEt/G,MAAMC,QAAQw6G,EAAE9gH,OAAOL,UAAUM,eAAe6J,EAAE,CAACkpF,QAAQ,MAAMs3B,EAAE,CAAC9qH,KAAI,EAAG++F,KAAI,EAAGy9C,QAAO,EAAGC,UAAS,GACtK,SAASjxB,EAAEpoH,EAAEC,EAAE8C,GAAG,IAAIugB,EAAEpjB,EAAE,CAAC,EAAEkH,EAAE,KAAKgL,EAAE,KAAK,GAAG,MAAMnS,EAAE,IAAIqjB,UAAK,IAASrjB,EAAE07F,MAAMvpF,EAAEnS,EAAE07F,UAAK,IAAS17F,EAAErD,MAAMwK,EAAE,GAAGnH,EAAErD,KAAKqD,EAAEi+G,EAAE5gH,KAAK2C,EAAEqjB,KAAKokG,EAAErqH,eAAeimB,KAAKpjB,EAAEojB,GAAGrjB,EAAEqjB,IAAI,IAAIF,EAAElmB,UAAUX,OAAO,EAAE,GAAG,IAAI6mB,EAAEljB,EAAEs7E,SAASz4E,OAAO,GAAG,EAAEqgB,EAAE,CAAC,IAAI,IAAItiB,EAAE2C,MAAM2f,GAAGusB,EAAE,EAAEA,EAAEvsB,EAAEusB,IAAI7uC,EAAE6uC,GAAGzyC,UAAUyyC,EAAE,GAAGzvC,EAAEs7E,SAAS16E,CAAC,CAAC,GAAGd,GAAGA,EAAEqX,aAAa,IAAIiM,KAAKF,EAAEpjB,EAAEqX,kBAAe,IAASnX,EAAEojB,KAAKpjB,EAAEojB,GAAGF,EAAEE,IAAI,MAAM,CAAC0+E,SAAS/2F,EAAEzJ,KAAKxB,EAAEpD,IAAIwK,EAAEu0F,IAAIvpF,EAAE/V,MAAM6D,EAAEgkH,OAAOh9G,EAAEkpF,QAAQ,CAChV,SAAS/wF,EAAEW,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEgiG,WAAW/2F,CAAC,CAAoG,IAAI1M,EAAE,OAAO,SAAS6rH,EAAEpqH,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAEpD,IAA7K,SAAgBoD,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAID,EAAEwS,QAAQ,SAAQ,SAASxS,GAAG,OAAOC,EAAED,EAAE,GAAE,CAA+Ey5I,CAAO,GAAGz5I,EAAEpD,KAAKqD,EAAEV,SAAS,GAAG,CAC/W,SAASqD,EAAE5C,EAAEC,EAAE8C,EAAEugB,EAAEpjB,GAAG,IAAIkH,SAASpH,EAAK,cAAcoH,GAAG,YAAYA,IAAEpH,EAAE,MAAK,IAAIoS,GAAE,EAAG,GAAG,OAAOpS,EAAEoS,GAAE,OAAQ,OAAOhL,GAAG,IAAK,SAAS,IAAK,SAASgL,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOpS,EAAEgiG,UAAU,KAAK/2F,EAAE,KAAK2E,EAAEwC,GAAE,GAAI,GAAGA,EAAE,OAAWlS,EAAEA,EAANkS,EAAEpS,GAASA,EAAE,KAAKsjB,EAAE,IAAI8mG,EAAEh4G,EAAE,GAAGkR,EAAEy/F,EAAE7iH,IAAI6C,EAAE,GAAG,MAAM/C,IAAI+C,EAAE/C,EAAEwS,QAAQjU,EAAE,OAAO,KAAKqE,EAAE1C,EAAED,EAAE8C,EAAE,IAAG,SAAS/C,GAAG,OAAOA,CAAC,KAAI,MAAME,IAAIb,EAAEa,KAAKA,EADnW,SAAWF,EAAEC,GAAG,MAAM,CAAC+hG,SAAS/2F,EAAEzJ,KAAKxB,EAAEwB,KAAK5E,IAAIqD,EAAE07F,IAAI37F,EAAE27F,IAAIt/F,MAAM2D,EAAE3D,MAAM6nH,OAAOlkH,EAAEkkH,OAAO,CACyQmE,CAAEnoH,EAAE6C,IAAI7C,EAAEtD,KAAKwV,GAAGA,EAAExV,MAAMsD,EAAEtD,IAAI,IAAI,GAAGsD,EAAEtD,KAAK4V,QAAQjU,EAAE,OAAO,KAAKyB,IAAIC,EAAEgB,KAAKf,IAAI,EAAyB,GAAvBkS,EAAE,EAAEkR,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOy/F,EAAE/iH,GAAG,IAAI,IAAIojB,EAAE,EAAEA,EAAEpjB,EAAEzD,OAAO6mB,IAAI,CAC/e,IAAItiB,EAAEwiB,EAAE8mG,EADwehjH,EACrfpH,EAAEojB,GAAeA,GAAGhR,GAAGxP,EAAEwE,EAAEnH,EAAE8C,EAAEjC,EAAEZ,EAAE,MAAM,GAAGY,EAPsU,SAAWd,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEsyC,GAAGtyC,EAAEsyC,IAAItyC,EAAE,eAA0CA,EAAE,IAAI,CAO5bgH,CAAEhH,GAAG,oBAAoBc,EAAE,IAAId,EAAEc,EAAExD,KAAK0C,GAAGojB,EAAE,IAAIhc,EAAEpH,EAAE+D,QAAQ6B,MAA6BwM,GAAGxP,EAA1BwE,EAAEA,EAAEtJ,MAA0BmC,EAAE8C,EAAtBjC,EAAEwiB,EAAE8mG,EAAEhjH,EAAEgc,KAAkBljB,QAAQ,GAAG,WAAWkH,EAAE,MAAMnH,EAAE+K,OAAOhL,GAAGkW,MAAM,mDAAmD,oBAAoBjW,EAAE,qBAAqB7C,OAAOmH,KAAKvE,GAAGqH,KAAK,MAAM,IAAIpH,GAAG,6EAA6E,OAAOmS,CAAC,CACzZ,SAASnQ,EAAEjC,EAAEC,EAAE8C,GAAG,GAAG,MAAM/C,EAAE,OAAOA,EAAE,IAAIsjB,EAAE,GAAGpjB,EAAE,EAAmD,OAAjD0C,EAAE5C,EAAEsjB,EAAE,GAAG,IAAG,SAAStjB,GAAG,OAAOC,EAAE3C,KAAKyF,EAAE/C,EAAEE,IAAI,IAAUojB,CAAC,CAAC,SAAShc,EAAEtH,GAAG,IAAI,IAAIA,EAAE05I,QAAQ,CAAC,IAAIz5I,EAAED,EAAE25I,SAAQ15I,EAAEA,KAAM8/G,MAAK,SAAS9/G,GAAM,IAAID,EAAE05I,UAAU,IAAI15I,EAAE05I,UAAQ15I,EAAE05I,QAAQ,EAAE15I,EAAE25I,QAAQ15I,EAAC,IAAE,SAASA,GAAM,IAAID,EAAE05I,UAAU,IAAI15I,EAAE05I,UAAQ15I,EAAE05I,QAAQ,EAAE15I,EAAE25I,QAAQ15I,EAAC,KAAI,IAAID,EAAE05I,UAAU15I,EAAE05I,QAAQ,EAAE15I,EAAE25I,QAAQ15I,EAAE,CAAC,GAAG,IAAID,EAAE05I,QAAQ,OAAO15I,EAAE25I,QAAQz9I,QAAQ,MAAM8D,EAAE25I,OAAQ,CAC5Z,IAAI92I,EAAE,CAACutF,QAAQ,MAAMmjC,EAAE,CAACljB,WAAW,MAAM/tG,EAAE,CAAC2lH,uBAAuBplH,EAAEqtG,wBAAwBqjB,EAAElE,kBAAkBnoH,GAAG,SAASktH,IAAI,MAAMl+G,MAAM,2DAA4D,CACzMza,EAAQwxI,SAAS,CAAC1K,IAAItgI,EAAEkF,QAAQ,SAASnH,EAAEC,EAAE8C,GAAGd,EAAEjC,GAAE,WAAWC,EAAEE,MAAMsC,KAAKvF,UAAU,GAAE6F,EAAE,EAAEqO,MAAM,SAASpR,GAAG,IAAIC,EAAE,EAAuB,OAArBgC,EAAEjC,GAAE,WAAWC,GAAG,IAAUA,CAAC,EAAEozI,QAAQ,SAASrzI,GAAG,OAAOiC,EAAEjC,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAE45I,KAAK,SAAS55I,GAAG,IAAIX,EAAEW,GAAG,MAAMkW,MAAM,yEAAyE,OAAOlW,CAAC,GAAGvE,EAAQsmI,UAAUtzH,EAAEhT,EAAQ+iI,SAASlsH,EAAE7W,EAAQkjI,SAASxsH,EAAE1W,EAAQ0pI,cAAcpjI,EAAEtG,EAAQmjI,WAAWtoH,EAAE7a,EAAQojI,SAASz4H,EAClc3K,EAAQ4kG,mDAAmD/9F,EAAE7G,EAAQo+I,IAAIzlB,EACzE34H,EAAQypI,aAAa,SAASllI,EAAEC,EAAE8C,GAAG,GAAG,OAAO/C,QAAG,IAASA,EAAE,MAAMkW,MAAM,iFAAiFlW,EAAE,KAAK,IAAIsjB,EAAE9gB,EAAE,CAAC,EAAExC,EAAE3D,OAAO6D,EAAEF,EAAEpD,IAAIwK,EAAEpH,EAAE27F,IAAIvpF,EAAEpS,EAAEkkH,OAAO,GAAG,MAAMjkH,EAAE,CAAoE,QAAnE,IAASA,EAAE07F,MAAMv0F,EAAEnH,EAAE07F,IAAIvpF,EAAElL,EAAEkpF,cAAS,IAASnwF,EAAErD,MAAMsD,EAAE,GAAGD,EAAErD,KAAQoD,EAAEwB,MAAMxB,EAAEwB,KAAK6V,aAAa,IAAI+L,EAAEpjB,EAAEwB,KAAK6V,aAAa,IAAIvW,KAAKb,EAAEi+G,EAAE5gH,KAAK2C,EAAEa,KAAK4mH,EAAErqH,eAAeyD,KAAKwiB,EAAExiB,QAAG,IAASb,EAAEa,SAAI,IAASsiB,EAAEA,EAAEtiB,GAAGb,EAAEa,GAAG,CAAC,IAAIA,EAAE5D,UAAUX,OAAO,EAAE,GAAG,IAAIuE,EAAEwiB,EAAEk4D,SAASz4E,OAAO,GAAG,EAAEjC,EAAE,CAACsiB,EAAE3f,MAAM3C,GACrf,IAAI,IAAI6uC,EAAE,EAAEA,EAAE7uC,EAAE6uC,IAAIvsB,EAAEusB,GAAGzyC,UAAUyyC,EAAE,GAAGrsB,EAAEk4D,SAASp4D,CAAC,CAAC,MAAM,CAAC4+E,SAAS/2F,EAAEzJ,KAAKxB,EAAEwB,KAAK5E,IAAIsD,EAAEy7F,IAAIv0F,EAAE/K,MAAMinB,EAAE4gG,OAAO9xG,EAAE,EAAE3W,EAAQq+I,cAAc,SAAS95I,GAAqK,OAAlKA,EAAE,CAACgiG,SAAS3vF,EAAEizG,cAActlH,EAAE+5I,eAAe/5I,EAAEg6I,aAAa,EAAEC,SAAS,KAAKC,SAAS,KAAKC,cAAc,KAAKC,YAAY,OAAQH,SAAS,CAACj4C,SAASryF,EAAEsyF,SAASjiG,GAAUA,EAAEk6I,SAASl6I,CAAC,EAAEvE,EAAQ8E,cAAc6nH,EAAE3sH,EAAQ4+I,cAAc,SAASr6I,GAAG,IAAIC,EAAEmoH,EAAE/6F,KAAK,KAAKrtB,GAAY,OAATC,EAAEuB,KAAKxB,EAASC,CAAC,EAAExE,EAAQ6+I,UAAU,WAAW,MAAM,CAAClqD,QAAQ,KAAK,EAC9d30F,EAAQ8+I,WAAW,SAASv6I,GAAG,MAAM,CAACgiG,SAAS7+E,EAAElP,OAAOjU,EAAE,EAAEvE,EAAQ++I,eAAen7I,EAAE5D,EAAQg/I,KAAK,SAASz6I,GAAG,MAAM,CAACgiG,SAAS/9D,EAAEi+D,SAAS,CAACw3C,SAAS,EAAEC,QAAQ35I,GAAGmiG,MAAM76F,EAAE,EAAE7L,EAAQi/I,KAAK,SAAS16I,EAAEC,GAAG,MAAM,CAAC+hG,SAAS1mE,EAAE95B,KAAKxB,EAAEiY,aAAQ,IAAShY,EAAE,KAAKA,EAAE,EAAExE,EAAQk/I,gBAAgB,SAAS36I,GAAG,IAAIC,EAAEszH,EAAEljB,WAAWkjB,EAAEljB,WAAW,CAAC,EAAE,IAAIrwG,GAAG,CAAC,QAAQuzH,EAAEljB,WAAWpwG,CAAC,CAAC,EAAExE,EAAQm/I,aAAaxmB,EAAE34H,EAAQogG,YAAY,SAAS77F,EAAEC,GAAG,OAAO4C,EAAEutF,QAAQyL,YAAY77F,EAAEC,EAAE,EAAExE,EAAQswH,WAAW,SAAS/rH,GAAG,OAAO6C,EAAEutF,QAAQ27B,WAAW/rH,EAAE,EAC3fvE,EAAQ2wH,cAAc,WAAW,EAAE3wH,EAAQ4wH,iBAAiB,SAASrsH,GAAG,OAAO6C,EAAEutF,QAAQi8B,iBAAiBrsH,EAAE,EAAEvE,EAAQggG,UAAU,SAASz7F,EAAEC,GAAG,OAAO4C,EAAEutF,QAAQqL,UAAUz7F,EAAEC,EAAE,EAAExE,EAAQgxH,MAAM,WAAW,OAAO5pH,EAAEutF,QAAQq8B,OAAO,EAAEhxH,EAAQuwH,oBAAoB,SAAShsH,EAAEC,EAAE8C,GAAG,OAAOF,EAAEutF,QAAQ47B,oBAAoBhsH,EAAEC,EAAE8C,EAAE,EAAEtH,EAAQwwH,mBAAmB,SAASjsH,EAAEC,GAAG,OAAO4C,EAAEutF,QAAQ67B,mBAAmBjsH,EAAEC,EAAE,EAAExE,EAAQ+/F,gBAAgB,SAASx7F,EAAEC,GAAG,OAAO4C,EAAEutF,QAAQoL,gBAAgBx7F,EAAEC,EAAE,EACzdxE,EAAQkhG,QAAQ,SAAS38F,EAAEC,GAAG,OAAO4C,EAAEutF,QAAQuM,QAAQ38F,EAAEC,EAAE,EAAExE,EAAQywH,WAAW,SAASlsH,EAAEC,EAAE8C,GAAG,OAAOF,EAAEutF,QAAQ87B,WAAWlsH,EAAEC,EAAE8C,EAAE,EAAEtH,EAAQmgG,OAAO,SAAS57F,GAAG,OAAO6C,EAAEutF,QAAQwL,OAAO57F,EAAE,EAAEvE,EAAQ0wH,SAAS,SAASnsH,GAAG,OAAO6C,EAAEutF,QAAQ+7B,SAASnsH,EAAE,EAAEvE,EAAQ+wH,qBAAqB,SAASxsH,EAAEC,EAAE8C,GAAG,OAAOF,EAAEutF,QAAQo8B,qBAAqBxsH,EAAEC,EAAE8C,EAAE,EAAEtH,EAAQ6wH,cAAc,WAAW,OAAOzpH,EAAEutF,QAAQk8B,eAAe,EAAE7wH,EAAQiE,QAAQ,sCCtBlalE,EAAOC,QAAU,EAAjBD,kCCAAA,EAAOC,QAAU,EAAjBD,iECIF,IAAIq/I,EAAW,WACX,GAAmB,qBAARrsC,IACP,OAAOA,IASX,SAASssC,EAASx7H,EAAK1iB,GACnB,IAAIgE,GAAU,EAQd,OAPA0e,EAAIy7H,MAAK,SAAUC,EAAO17I,GACtB,OAAI07I,EAAM,KAAOp+I,IACbgE,EAAStB,GACF,EAGf,IACOsB,CACX,CACA,OAAsB,WAClB,SAASq6I,IACLx4I,KAAKy4I,YAAc,EACvB,CAsEA,OArEA99I,OAAOwB,eAAeq8I,EAAQl+I,UAAW,OAAQ,CAI7CqD,IAAK,WACD,OAAOqC,KAAKy4I,YAAY3+I,MAC5B,EACAE,YAAY,EACZC,cAAc,IAMlBu+I,EAAQl+I,UAAUqD,IAAM,SAAUxD,GAC9B,IAAI0C,EAAQw7I,EAASr4I,KAAKy4I,YAAat+I,GACnCo+I,EAAQv4I,KAAKy4I,YAAY57I,GAC7B,OAAO07I,GAASA,EAAM,EAC1B,EAMAC,EAAQl+I,UAAU+M,IAAM,SAAUlN,EAAKkB,GACnC,IAAIwB,EAAQw7I,EAASr4I,KAAKy4I,YAAat+I,IAClC0C,EACDmD,KAAKy4I,YAAY57I,GAAO,GAAKxB,EAG7B2E,KAAKy4I,YAAYj6I,KAAK,CAACrE,EAAKkB,GAEpC,EAKAm9I,EAAQl+I,UAAU8xG,OAAS,SAAUjyG,GACjC,IAAI8I,EAAUjD,KAAKy4I,YACf57I,EAAQw7I,EAASp1I,EAAS9I,IACzB0C,GACDoG,EAAQiQ,OAAOrW,EAAO,EAE9B,EAKA27I,EAAQl+I,UAAUsE,IAAM,SAAUzE,GAC9B,SAAUk+I,EAASr4I,KAAKy4I,YAAat+I,EACzC,EAIAq+I,EAAQl+I,UAAU6Y,MAAQ,WACtBnT,KAAKy4I,YAAYvlI,OAAO,EAC5B,EAMAslI,EAAQl+I,UAAUoK,QAAU,SAAUgjB,EAAUhpB,QAChC,IAARA,IAAkBA,EAAM,MAC5B,IAAK,IAAIiL,EAAK,EAAG+uI,EAAK14I,KAAKy4I,YAAa9uI,EAAK+uI,EAAG5+I,OAAQ6P,IAAM,CAC1D,IAAI4uI,EAAQG,EAAG/uI,GACf+d,EAAS7sB,KAAK6D,EAAK65I,EAAM,GAAIA,EAAM,GACvC,CACJ,EACOC,CACX,CA1EsB,EA2E1B,CAjGe,GAsGXG,EAA8B,qBAAXp4I,QAA8C,qBAAb3C,UAA4B2C,OAAO3C,WAAaA,SAGpGg7I,EACsB,qBAAXn6I,EAAAA,GAA0BA,EAAAA,EAAO+B,OAASA,KAC1C/B,EAAAA,EAES,qBAATjD,MAAwBA,KAAKgF,OAASA,KACtChF,KAEW,qBAAX+E,QAA0BA,OAAOC,OAASA,KAC1CD,OAGJN,SAAS,cAATA,GASP44I,EACqC,oBAA1BzpI,sBAIAA,sBAAsBwb,KAAKguH,GAE/B,SAAUlxH,GAAY,OAAO1W,YAAW,WAAc,OAAO0W,EAAS9P,KAAKD,MAAQ,GAAG,IAAO,GAAK,EAqE7G,IAGImhI,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,qBAArBC,iBAInCC,EAA0C,WAM1C,SAASA,IAMLj5I,KAAKk5I,YAAa,EAMlBl5I,KAAKm5I,sBAAuB,EAM5Bn5I,KAAKo5I,mBAAqB,KAM1Bp5I,KAAKq5I,WAAa,GAClBr5I,KAAKs5I,iBAAmBt5I,KAAKs5I,iBAAiB1uH,KAAK5qB,MACnDA,KAAKu5I,QAjGb,SAAmB7xH,EAAU+xE,GACzB,IAAI+/C,GAAc,EAAOC,GAAe,EAAOlhI,EAAe,EAO9D,SAASmhI,IACDF,IACAA,GAAc,EACd9xH,KAEA+xH,GACAE,GAER,CAQA,SAASC,IACLf,EAAwBa,EAC5B,CAMA,SAASC,IACL,IAAIhqC,EAAY/3F,KAAKD,MACrB,GAAI6hI,EAAa,CAEb,GAAI7pC,EAAYp3F,EA7CN,EA8CN,OAMJkhI,GAAe,CACnB,MAEID,GAAc,EACdC,GAAe,EACfzoI,WAAW4oI,EAAiBngD,GAEhClhF,EAAeo3F,CACnB,CACA,OAAOgqC,CACX,CA4CuBE,CAAS75I,KAAKu5I,QAAQ3uH,KAAK5qB,MAzC9B,GA0ChB,CA+JA,OAxJAi5I,EAAyB3+I,UAAUw/I,YAAc,SAAUC,IACjD/5I,KAAKq5I,WAAWhyH,QAAQ0yH,IAC1B/5I,KAAKq5I,WAAW76I,KAAKu7I,GAGpB/5I,KAAKk5I,YACNl5I,KAAKg6I,UAEb,EAOAf,EAAyB3+I,UAAU2/I,eAAiB,SAAUF,GAC1D,IAAIG,EAAYl6I,KAAKq5I,WACjBx8I,EAAQq9I,EAAU7yH,QAAQ0yH,IAEzBl9I,GACDq9I,EAAUhnI,OAAOrW,EAAO,IAGvBq9I,EAAUpgJ,QAAUkG,KAAKk5I,YAC1Bl5I,KAAKm6I,aAEb,EAOAlB,EAAyB3+I,UAAUi/I,QAAU,WACnBv5I,KAAKo6I,oBAIvBp6I,KAAKu5I,SAEb,EASAN,EAAyB3+I,UAAU8/I,iBAAmB,WAElD,IAAIC,EAAkBr6I,KAAKq5I,WAAW34F,QAAO,SAAUq5F,GACnD,OAAOA,EAASO,eAAgBP,EAASQ,WAC7C,IAOA,OADAF,EAAgB31I,SAAQ,SAAUq1I,GAAY,OAAOA,EAASS,iBAAmB,IAC1EH,EAAgBvgJ,OAAS,CACpC,EAOAm/I,EAAyB3+I,UAAU0/I,SAAW,WAGrCrB,IAAa34I,KAAKk5I,aAMvBt7I,SAASiuB,iBAAiB,gBAAiB7rB,KAAKs5I,kBAChD/4I,OAAOsrB,iBAAiB,SAAU7rB,KAAKu5I,SACnCR,GACA/4I,KAAKo5I,mBAAqB,IAAIJ,iBAAiBh5I,KAAKu5I,SACpDv5I,KAAKo5I,mBAAmBzP,QAAQ/rI,SAAU,CACtCyzB,YAAY,EACZopH,WAAW,EACXC,eAAe,EACfC,SAAS,MAIb/8I,SAASiuB,iBAAiB,qBAAsB7rB,KAAKu5I,SACrDv5I,KAAKm5I,sBAAuB,GAEhCn5I,KAAKk5I,YAAa,EACtB,EAOAD,EAAyB3+I,UAAU6/I,YAAc,WAGxCxB,GAAc34I,KAAKk5I,aAGxBt7I,SAAS8uB,oBAAoB,gBAAiB1sB,KAAKs5I,kBACnD/4I,OAAOmsB,oBAAoB,SAAU1sB,KAAKu5I,SACtCv5I,KAAKo5I,oBACLp5I,KAAKo5I,mBAAmBjP,aAExBnqI,KAAKm5I,sBACLv7I,SAAS8uB,oBAAoB,qBAAsB1sB,KAAKu5I,SAE5Dv5I,KAAKo5I,mBAAqB,KAC1Bp5I,KAAKm5I,sBAAuB,EAC5Bn5I,KAAKk5I,YAAa,EACtB,EAQAD,EAAyB3+I,UAAUg/I,iBAAmB,SAAUZ,GAC5D,IAAIkC,EAAKlC,EAAGpvD,aAAcA,OAAsB,IAAPsxD,EAAgB,GAAKA,EAEvC9B,EAAeR,MAAK,SAAUn+I,GACjD,SAAUmvF,EAAajiE,QAAQltB,EACnC,KAEI6F,KAAKu5I,SAEb,EAMAN,EAAyB4B,YAAc,WAInC,OAHK76I,KAAK86I,YACN96I,KAAK86I,UAAY,IAAI7B,GAElBj5I,KAAK86I,SAChB,EAMA7B,EAAyB6B,UAAY,KAC9B7B,CACX,CAjM8C,GA0M1C8B,EAAsB,SAAUphJ,EAAQC,GACxC,IAAK,IAAI+P,EAAK,EAAG+uI,EAAK/9I,OAAOmH,KAAKlI,GAAQ+P,EAAK+uI,EAAG5+I,OAAQ6P,IAAM,CAC5D,IAAIxP,EAAMu+I,EAAG/uI,GACbhP,OAAOwB,eAAexC,EAAQQ,EAAK,CAC/BkB,MAAOzB,EAAMO,GACbH,YAAY,EACZE,UAAU,EACVD,cAAc,GAEtB,CACA,OAAON,CACX,EAQIqhJ,EAAe,SAAUrhJ,GAOzB,OAHkBA,GAAUA,EAAOwnG,eAAiBxnG,EAAOwnG,cAAcsX,aAGnDmgC,CAC1B,EAGIqC,EAAYC,EAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,EAAQ9/I,GACb,OAAO+/I,WAAW//I,IAAU,CAChC,CAQA,SAASggJ,EAAep+F,GAEpB,IADA,IAAIq+F,EAAY,GACP3xI,EAAK,EAAGA,EAAKlP,UAAUX,OAAQ6P,IACpC2xI,EAAU3xI,EAAK,GAAKlP,UAAUkP,GAElC,OAAO2xI,EAAU5I,QAAO,SAAU/wF,EAAM9iC,GAEpC,OAAO8iC,EAAOw5F,EADFl+F,EAAO,UAAYp+B,EAAW,UAE9C,GAAG,EACP,CAkCA,SAAS08H,EAA0B5hJ,GAG/B,IAAI6hJ,EAAc7hJ,EAAO6hJ,YAAaC,EAAe9hJ,EAAO8hJ,aAS5D,IAAKD,IAAgBC,EACjB,OAAOR,EAEX,IAAIh+F,EAAS+9F,EAAYrhJ,GAAQ+hJ,iBAAiB/hJ,GAC9CgiJ,EA3CR,SAAqB1+F,GAGjB,IAFA,IACI0+F,EAAW,CAAC,EACPhyI,EAAK,EAAGiyI,EAFD,CAAC,MAAO,QAAS,SAAU,QAEDjyI,EAAKiyI,EAAY9hJ,OAAQ6P,IAAM,CACrE,IAAIkV,EAAW+8H,EAAYjyI,GACvBtO,EAAQ4hD,EAAO,WAAap+B,GAChC88H,EAAS98H,GAAYs8H,EAAQ9/I,EACjC,CACA,OAAOsgJ,CACX,CAkCmBE,CAAY5+F,GACvB6+F,EAAWH,EAAS78H,KAAO68H,EAASj/F,MACpCq/F,EAAUJ,EAAS9qI,IAAM8qI,EAAS36F,OAKlC33B,EAAQ8xH,EAAQl+F,EAAO5zB,OAAQtY,EAASoqI,EAAQl+F,EAAOlsC,QAqB3D,GAlByB,eAArBksC,EAAO++F,YAOHx7I,KAAKke,MAAM2K,EAAQyyH,KAAcN,IACjCnyH,GAASgyH,EAAep+F,EAAQ,OAAQ,SAAW6+F,GAEnDt7I,KAAKke,MAAM3N,EAASgrI,KAAaN,IACjC1qI,GAAUsqI,EAAep+F,EAAQ,MAAO,UAAY8+F,KAoDhE,SAA2BpiJ,GACvB,OAAOA,IAAWqhJ,EAAYrhJ,GAAQiE,SAASiD,eACnD,CA/CSo7I,CAAkBtiJ,GAAS,CAK5B,IAAIuiJ,EAAgB17I,KAAKke,MAAM2K,EAAQyyH,GAAYN,EAC/CW,EAAiB37I,KAAKke,MAAM3N,EAASgrI,GAAWN,EAMpB,IAA5Bj7I,KAAKiP,IAAIysI,KACT7yH,GAAS6yH,GAEoB,IAA7B17I,KAAKiP,IAAI0sI,KACTprI,GAAUorI,EAElB,CACA,OAAOjB,EAAeS,EAAS78H,KAAM68H,EAAS9qI,IAAKwY,EAAOtY,EAC9D,CAOA,IAAIqrI,EAGkC,qBAAvBC,mBACA,SAAU1iJ,GAAU,OAAOA,aAAkBqhJ,EAAYrhJ,GAAQ0iJ,kBAAoB,EAKzF,SAAU1iJ,GAAU,OAAQA,aAAkBqhJ,EAAYrhJ,GAAQ2iJ,YAC3C,oBAAnB3iJ,EAAO8wB,OAAyB,EAiB/C,SAAS8xH,EAAe5iJ,GACpB,OAAKg/I,EAGDyD,EAAqBziJ,GAhH7B,SAA2BA,GACvB,IAAIiwE,EAAOjwE,EAAO8wB,UAClB,OAAOywH,EAAe,EAAG,EAAGtxE,EAAKvgD,MAAOugD,EAAK74D,OACjD,CA8GeyrI,CAAkB7iJ,GAEtB4hJ,EAA0B5hJ,GALtBshJ,CAMf,CAiCA,SAASC,EAAeriH,EAAG2I,EAAGnY,EAAOtY,GACjC,MAAO,CAAE8nB,EAAGA,EAAG2I,EAAGA,EAAGnY,MAAOA,EAAOtY,OAAQA,EAC/C,CAMA,IAAI0rI,EAAmC,WAMnC,SAASA,EAAkB9iJ,GAMvBqG,KAAK08I,eAAiB,EAMtB18I,KAAK28I,gBAAkB,EAMvB38I,KAAK48I,aAAe1B,EAAe,EAAG,EAAG,EAAG,GAC5Cl7I,KAAKrG,OAASA,CAClB,CAyBA,OAlBA8iJ,EAAkBniJ,UAAUuiJ,SAAW,WACnC,IAAIjuF,EAAO2tF,EAAev8I,KAAKrG,QAE/B,OADAqG,KAAK48I,aAAehuF,EACZA,EAAKvlC,QAAUrpB,KAAK08I,gBACxB9tF,EAAK79C,SAAW/Q,KAAK28I,eAC7B,EAOAF,EAAkBniJ,UAAUwiJ,cAAgB,WACxC,IAAIluF,EAAO5uD,KAAK48I,aAGhB,OAFA58I,KAAK08I,eAAiB9tF,EAAKvlC,MAC3BrpB,KAAK28I,gBAAkB/tF,EAAK79C,OACrB69C,CACX,EACO6tF,CACX,CApDuC,GAsDnCM,EAOA,SAA6BpjJ,EAAQqjJ,GACjC,IAAIC,EA/FZ,SAA4BvE,GACxB,IAAI7/G,EAAI6/G,EAAG7/G,EAAG2I,EAAIk3G,EAAGl3G,EAAGnY,EAAQqvH,EAAGrvH,MAAOtY,EAAS2nI,EAAG3nI,OAElDmsI,EAAoC,qBAApBC,gBAAkCA,gBAAkBxiJ,OACpEi0D,EAAOj0D,OAAOqB,OAAOkhJ,EAAO5iJ,WAShC,OAPAygJ,EAAmBnsF,EAAM,CACrB/1B,EAAGA,EAAG2I,EAAGA,EAAGnY,MAAOA,EAAOtY,OAAQA,EAClCF,IAAK2wB,EACLkb,MAAO7jB,EAAIxP,EACX23B,OAAQjwC,EAASywB,EACjB1iB,KAAM+Z,IAEH+1B,CACX,CAiF0BwuF,CAAmBJ,GAOrCjC,EAAmB/6I,KAAM,CAAErG,OAAQA,EAAQsjJ,YAAaA,GAC5D,EAIAI,EAAmC,WAWnC,SAASA,EAAkB31H,EAAU41H,EAAYC,GAc7C,GAPAv9I,KAAKw9I,oBAAsB,GAM3Bx9I,KAAKy9I,cAAgB,IAAIrF,EACD,oBAAb1wH,EACP,MAAM,IAAIruB,UAAU,2DAExB2G,KAAK09I,UAAYh2H,EACjB1nB,KAAK29I,YAAcL,EACnBt9I,KAAK49I,aAAeL,CACxB,CAmHA,OA5GAF,EAAkB/iJ,UAAUqvI,QAAU,SAAUhwI,GAC5C,IAAKc,UAAUX,OACX,MAAM,IAAIT,UAAU,4CAGxB,GAAuB,qBAAZ2iG,SAA6BA,mBAAmBrhG,OAA3D,CAGA,KAAMhB,aAAkBqhJ,EAAYrhJ,GAAQqiG,SACxC,MAAM,IAAI3iG,UAAU,yCAExB,IAAIwkJ,EAAe79I,KAAKy9I,cAEpBI,EAAaj/I,IAAIjF,KAGrBkkJ,EAAax2I,IAAI1N,EAAQ,IAAI8iJ,EAAkB9iJ,IAC/CqG,KAAK29I,YAAY7D,YAAY95I,MAE7BA,KAAK29I,YAAYpE,UAZjB,CAaJ,EAOA8D,EAAkB/iJ,UAAUwjJ,UAAY,SAAUnkJ,GAC9C,IAAKc,UAAUX,OACX,MAAM,IAAIT,UAAU,4CAGxB,GAAuB,qBAAZ2iG,SAA6BA,mBAAmBrhG,OAA3D,CAGA,KAAMhB,aAAkBqhJ,EAAYrhJ,GAAQqiG,SACxC,MAAM,IAAI3iG,UAAU,yCAExB,IAAIwkJ,EAAe79I,KAAKy9I,cAEnBI,EAAaj/I,IAAIjF,KAGtBkkJ,EAAazxC,OAAOzyG,GACfkkJ,EAAal8F,MACd3hD,KAAK29I,YAAY1D,eAAej6I,MAXpC,CAaJ,EAMAq9I,EAAkB/iJ,UAAU6vI,WAAa,WACrCnqI,KAAK+9I,cACL/9I,KAAKy9I,cAActqI,QACnBnT,KAAK29I,YAAY1D,eAAej6I,KACpC,EAOAq9I,EAAkB/iJ,UAAUggJ,aAAe,WACvC,IAAIvc,EAAQ/9H,KACZA,KAAK+9I,cACL/9I,KAAKy9I,cAAc/4I,SAAQ,SAAUs5I,GAC7BA,EAAYnB,YACZ9e,EAAMyf,oBAAoBh/I,KAAKw/I,EAEvC,GACJ,EAOAX,EAAkB/iJ,UAAUkgJ,gBAAkB,WAE1C,GAAKx6I,KAAKu6I,YAAV,CAGA,IAAI77I,EAAMsB,KAAK49I,aAEX36I,EAAUjD,KAAKw9I,oBAAoB1d,KAAI,SAAUke,GACjD,OAAO,IAAIjB,EAAoBiB,EAAYrkJ,OAAQqkJ,EAAYlB,gBACnE,IACA98I,KAAK09I,UAAU7iJ,KAAK6D,EAAKuE,EAASvE,GAClCsB,KAAK+9I,aAPL,CAQJ,EAMAV,EAAkB/iJ,UAAUyjJ,YAAc,WACtC/9I,KAAKw9I,oBAAoBtqI,OAAO,EACpC,EAMAmqI,EAAkB/iJ,UAAUigJ,UAAY,WACpC,OAAOv6I,KAAKw9I,oBAAoB1jJ,OAAS,CAC7C,EACOujJ,CACX,CAnJuC,GAwJnCnD,EAA+B,qBAAZpuB,QAA0B,IAAIA,QAAY,IAAIssB,EAKjE6F,EAOA,SAASA,EAAev2H,GACpB,KAAM1nB,gBAAgBi+I,GAClB,MAAM,IAAI5kJ,UAAU,sCAExB,IAAKoB,UAAUX,OACX,MAAM,IAAIT,UAAU,4CAExB,IAAIikJ,EAAarE,EAAyB4B,cACtCd,EAAW,IAAIsD,EAAkB31H,EAAU41H,EAAYt9I,MAC3Dk6I,EAAU7yI,IAAIrH,KAAM+5I,EACxB,EAIJ,CACI,UACA,YACA,cACFr1I,SAAQ,SAAUw5I,GAChBD,EAAe3jJ,UAAU4jJ,GAAU,WAC/B,IAAIxF,EACJ,OAAQA,EAAKwB,EAAUv8I,IAAIqC,OAAOk+I,GAAQxgJ,MAAMg7I,EAAIj+I,UACxD,CACJ,IAUA,QAN2C,qBAA5Bm+I,EAASqF,eACTrF,EAASqF,eAEbA,6BCn5BE,SAAS5/I,EAAEd,EAAEC,GAAG,IAAIC,EAAEF,EAAEzD,OAAOyD,EAAEiB,KAAKhB,GAAGD,EAAE,KAAK,EAAEE,GAAG,CAAC,IAAIojB,EAAEpjB,EAAE,IAAI,EAAE6C,EAAE/C,EAAEsjB,GAAG,KAAG,EAAEF,EAAErgB,EAAE9C,IAA0B,MAAMD,EAA7BA,EAAEsjB,GAAGrjB,EAAED,EAAEE,GAAG6C,EAAE7C,EAAEojB,CAAc,CAAC,CAAC,SAASlR,EAAEpS,GAAG,OAAO,IAAIA,EAAEzD,OAAO,KAAKyD,EAAE,EAAE,CAAC,SAASoH,EAAEpH,GAAG,GAAG,IAAIA,EAAEzD,OAAO,OAAO,KAAK,IAAI0D,EAAED,EAAE,GAAGE,EAAEF,EAAEk3C,MAAM,GAAGh3C,IAAID,EAAE,CAACD,EAAE,GAAGE,EAAEF,EAAE,IAAI,IAAIsjB,EAAE,EAAEvgB,EAAE/C,EAAEzD,OAAO6J,EAAErD,IAAI,EAAEugB,EAAEld,GAAG,CAAC,IAAIupC,EAAE,GAAGrsB,EAAE,GAAG,EAAE9gB,EAAExC,EAAE2vC,GAAG//B,EAAE+/B,EAAE,EAAErU,EAAEt7B,EAAE4P,GAAG,GAAG,EAAEwT,EAAE5gB,EAAEtC,GAAG0P,EAAE7M,GAAG,EAAEqgB,EAAEkY,EAAE94B,IAAIxC,EAAEsjB,GAAGgY,EAAEt7B,EAAE4P,GAAG1P,EAAEojB,EAAE1T,IAAI5P,EAAEsjB,GAAG9gB,EAAExC,EAAE2vC,GAAGzvC,EAAEojB,EAAEqsB,OAAQ,MAAG//B,EAAE7M,GAAG,EAAEqgB,EAAEkY,EAAEp7B,IAA0B,MAAMF,EAA7BA,EAAEsjB,GAAGgY,EAAEt7B,EAAE4P,GAAG1P,EAAEojB,EAAE1T,CAAc,EAAC,CAAC,OAAO3P,CAAC,CAC3c,SAASmjB,EAAEpjB,EAAEC,GAAG,IAAIC,EAAEF,EAAE4gJ,UAAU3gJ,EAAE2gJ,UAAU,OAAO,IAAI1gJ,EAAEA,EAAEF,EAAE+F,GAAG9F,EAAE8F,EAAE,CAAC,GAAG,kBAAkB86I,aAAa,oBAAoBA,YAAYzmI,IAAI,CAAC,IAAInP,EAAE41I,YAAYplJ,EAAQiwG,aAAa,WAAW,OAAOzgG,EAAEmP,KAAK,CAAC,KAAK,CAAC,IAAI9H,EAAE+H,KAAK/D,EAAEhE,EAAE8H,MAAM3e,EAAQiwG,aAAa,WAAW,OAAOp5F,EAAE8H,MAAM9D,CAAC,CAAC,CAAC,IAAInE,EAAE,GAAGxC,EAAE,GAAG0C,EAAE,EAAE8Q,EAAE,KAAK8gB,EAAE,EAAEqO,GAAE,EAAGtrC,GAAE,EAAG5E,GAAE,EAAG5D,EAAE,oBAAoBiV,WAAWA,WAAW,KAAKhF,EAAE,oBAAoBwN,aAAaA,aAAa,KAAKpa,EAAE,qBAAqBi/I,aAAaA,aAAa,KACnT,SAAS/+I,EAAE/B,GAAG,IAAI,IAAIC,EAAEmS,EAAEzC,GAAG,OAAO1P,GAAG,CAAC,GAAG,OAAOA,EAAEkqB,SAAS/iB,EAAEuI,OAAQ,MAAG1P,EAAEoR,WAAWrR,GAAgD,MAA9CoH,EAAEuI,GAAG1P,EAAE2gJ,UAAU3gJ,EAAE8gJ,eAAejgJ,EAAEqR,EAAElS,EAAa,CAACA,EAAEmS,EAAEzC,EAAE,CAAC,CAAC,SAASoxG,EAAE/gH,GAAa,GAAVoC,GAAE,EAAGL,EAAE/B,IAAOgH,EAAE,GAAG,OAAOoL,EAAED,GAAGnL,GAAE,EAAG+7G,EAAE7E,OAAO,CAAC,IAAIj+G,EAAEmS,EAAEzC,GAAG,OAAO1P,GAAGiH,EAAE65G,EAAE9gH,EAAEoR,UAAUrR,EAAE,CAAC,CACra,SAASk+G,EAAEl+G,EAAEC,GAAG+G,GAAE,EAAG5E,IAAIA,GAAE,EAAGqM,EAAEi5G,GAAGA,GAAG,GAAGp1E,GAAE,EAAG,IAAIpyC,EAAE+jC,EAAE,IAAS,IAALliC,EAAE9B,GAAOkjB,EAAE/Q,EAAED,GAAG,OAAOgR,MAAMA,EAAE49H,eAAe9gJ,IAAID,IAAIooH,MAAM,CAAC,IAAI9kG,EAAEH,EAAEgH,SAAS,GAAG,oBAAoB7G,EAAE,CAACH,EAAEgH,SAAS,KAAK8Z,EAAE9gB,EAAE69H,cAAc,IAAIj+I,EAAEugB,EAAEH,EAAE49H,gBAAgB9gJ,GAAGA,EAAExE,EAAQiwG,eAAe,oBAAoB3oG,EAAEogB,EAAEgH,SAASpnB,EAAEogB,IAAI/Q,EAAED,IAAI/K,EAAE+K,GAAGpQ,EAAE9B,EAAE,MAAMmH,EAAE+K,GAAGgR,EAAE/Q,EAAED,EAAE,CAAC,GAAG,OAAOgR,EAAE,IAAI/c,GAAE,MAAO,CAAC,IAAIupC,EAAEv9B,EAAEzC,GAAG,OAAOggC,GAAGzoC,EAAE65G,EAAEpxE,EAAEt+B,UAAUpR,GAAGmG,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQ+c,EAAE,KAAK8gB,EAAE/jC,EAAEoyC,GAAE,CAAE,CAAC,CAD1a,qBAAqBl2B,gBAAW,IAASA,UAAU6kI,iBAAY,IAAS7kI,UAAU6kI,WAAWC,gBAAgB9kI,UAAU6kI,WAAWC,eAAe7zH,KAAKjR,UAAU6kI,YAC2Q,IACzPh/I,EAD6PomH,GAAE,EAAGhpH,EAAE,KAAKqoH,GAAG,EAAEnpH,EAAE,EAAE6rH,GAAG,EACvc,SAAShC,IAAI,QAAO3sH,EAAQiwG,eAAe0e,EAAE7rH,EAAO,CAAC,SAASqE,IAAI,GAAG,OAAOvD,EAAE,CAAC,IAAIW,EAAEvE,EAAQiwG,eAAe0e,EAAEpqH,EAAE,IAAIC,GAAE,EAAG,IAAIA,EAAEZ,GAAE,EAAGW,EAAE,CAAC,QAAQC,EAAEgC,KAAKomH,GAAE,EAAGhpH,EAAE,KAAK,CAAC,MAAMgpH,GAAE,CAAE,CAAO,GAAG,oBAAoBxmH,EAAEI,EAAE,WAAWJ,EAAEe,EAAE,OAAO,GAAG,qBAAqBu+I,eAAe,CAAC,IAAI75I,EAAE,IAAI65I,eAAet+I,EAAEyE,EAAE85I,MAAM95I,EAAE+5I,MAAMl8H,UAAUviB,EAAEX,EAAE,WAAWY,EAAEuiB,YAAY,KAAK,CAAC,MAAMnjB,EAAE,WAAWzD,EAAEoE,EAAE,EAAE,EAAE,SAASmgH,EAAE/iH,GAAGX,EAAEW,EAAEqoH,IAAIA,GAAE,EAAGpmH,IAAI,CAAC,SAASiF,EAAElH,EAAEC,GAAGynH,EAAElpH,GAAE,WAAWwB,EAAEvE,EAAQiwG,eAAe,GAAEzrG,EAAE,CAC5dxE,EAAQ4wG,sBAAsB,EAAE5wG,EAAQowG,2BAA2B,EAAEpwG,EAAQ0wG,qBAAqB,EAAE1wG,EAAQwwG,wBAAwB,EAAExwG,EAAQ6lJ,mBAAmB,KAAK7lJ,EAAQswG,8BAA8B,EAAEtwG,EAAQ4vG,wBAAwB,SAASrrG,GAAGA,EAAEmqB,SAAS,IAAI,EAAE1uB,EAAQ8lJ,2BAA2B,WAAWv6I,GAAGsrC,IAAItrC,GAAE,EAAG+7G,EAAE7E,GAAG,EAC1UziH,EAAQ+lJ,wBAAwB,SAASxhJ,GAAG,EAAEA,GAAG,IAAIA,EAAE+S,QAAQ9B,MAAM,mHAAmH1S,EAAE,EAAEyB,EAAEiD,KAAKsI,MAAM,IAAIvL,GAAG,CAAC,EAAEvE,EAAQmwG,iCAAiC,WAAW,OAAO3nE,CAAC,EAAExoC,EAAQgmJ,8BAA8B,WAAW,OAAOrvI,EAAED,EAAE,EAAE1W,EAAQimJ,cAAc,SAAS1hJ,GAAG,OAAOikC,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIhkC,EAAE,EAAE,MAAM,QAAQA,EAAEgkC,EAAE,IAAI/jC,EAAE+jC,EAAEA,EAAEhkC,EAAE,IAAI,OAAOD,GAAG,CAAC,QAAQikC,EAAE/jC,CAAC,CAAC,EAAEzE,EAAQkmJ,wBAAwB,WAAW,EAC9flmJ,EAAQgwG,sBAAsB,WAAW,EAAEhwG,EAAQmmJ,yBAAyB,SAAS5hJ,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIE,EAAE+jC,EAAEA,EAAEjkC,EAAE,IAAI,OAAOC,GAAG,CAAC,QAAQgkC,EAAE/jC,CAAC,CAAC,EAChMzE,EAAQ0vG,0BAA0B,SAASnrG,EAAEC,EAAEC,GAAG,IAAIojB,EAAE7nB,EAAQiwG,eAA8F,OAA/E,kBAAkBxrG,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEg8F,QAA6B,EAAEh8F,EAAEojB,EAAEpjB,EAAEojB,EAAGpjB,EAAEojB,EAAStjB,GAAG,KAAK,EAAE,IAAI+C,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzM/C,EAAE,CAAC+F,GAAGsM,IAAI8X,SAASlqB,EAAE+gJ,cAAchhJ,EAAEqR,UAAUnR,EAAE6gJ,eAAvDh+I,EAAE7C,EAAE6C,EAAoE69I,WAAW,GAAG1gJ,EAAEojB,GAAGtjB,EAAE4gJ,UAAU1gJ,EAAEY,EAAE6O,EAAE3P,GAAG,OAAOoS,EAAED,IAAInS,IAAIoS,EAAEzC,KAAKvN,GAAGqM,EAAEi5G,GAAGA,GAAG,GAAGtlH,GAAE,EAAG8E,EAAE65G,EAAE7gH,EAAEojB,MAAMtjB,EAAE4gJ,UAAU79I,EAAEjC,EAAEqR,EAAEnS,GAAGgH,GAAGsrC,IAAItrC,GAAE,EAAG+7G,EAAE7E,KAAYl+G,CAAC,EACnevE,EAAQ8vG,qBAAqB6c,EAAE3sH,EAAQomJ,sBAAsB,SAAS7hJ,GAAG,IAAIC,EAAEgkC,EAAE,OAAO,WAAW,IAAI/jC,EAAE+jC,EAAEA,EAAEhkC,EAAE,IAAI,OAAOD,EAAEG,MAAMsC,KAAKvF,UAAU,CAAC,QAAQ+mC,EAAE/jC,CAAC,CAAC,CAAC,+BCf7J1E,EAAOC,QAAU,EAAjBD,gBCKFA,EAAOC,QARY,SAAU6+B,GAC3B,OAAOA,EACE9nB,QAAQ,UAAU,SAAUgE,GAC3B,MAAO,IAAMA,EAAMqpC,aACrB,IACCA,aACX,gBCNA,OAOC,WACA,aAEA,IAAIiiG,EAAS,CAAC,EAAEzkJ,eAEhB,SAAS0kJ,IAGR,IAFA,IAAIC,EAAU,GAEL1lJ,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CAC1C,IAAIqH,EAAMzG,UAAUZ,GAChBqH,IACHq+I,EAAUC,EAAYD,EAASE,EAAWv+I,IAE5C,CAEA,OAAOq+I,CACR,CAEA,SAASE,EAAYv+I,GACpB,GAAmB,kBAARA,GAAmC,kBAARA,EACrC,OAAOA,EAGR,GAAmB,kBAARA,EACV,MAAO,GAGR,GAAIF,MAAMC,QAAQC,GACjB,OAAOo+I,EAAW5hJ,MAAM,KAAMwD,GAG/B,GAAIA,EAAIpE,WAAanC,OAAOL,UAAUwC,WAAaoE,EAAIpE,SAASA,WAAWsiG,SAAS,iBACnF,OAAOl+F,EAAIpE,WAGZ,IAAIyiJ,EAAU,GAEd,IAAK,IAAIplJ,KAAO+G,EACXm+I,EAAOxkJ,KAAKqG,EAAK/G,IAAQ+G,EAAI/G,KAChColJ,EAAUC,EAAYD,EAASplJ,IAIjC,OAAOolJ,CACR,CAEA,SAASC,EAAankJ,EAAOqkJ,GAC5B,OAAKA,EAIDrkJ,EACIA,EAAQ,IAAMqkJ,EAGfrkJ,EAAQqkJ,EAPPrkJ,CAQT,CAEqCtC,EAAOC,SAC3CsmJ,EAAW7lJ,QAAU6lJ,EACrBvmJ,EAAOC,QAAUsmJ,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIF,CArEA,4znBCNGK,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeH,yBAAyBE,GAC5C,QAAqBviJ,IAAjBwiJ,EACH,OAAOA,EAAa9mJ,QAGrB,IAAID,EAAS4mJ,yBAAyBE,GAAY,CAGjD7mJ,QAAS,CAAC,GAOX,OAHA+mJ,oBAAoBF,GAAUhlJ,KAAK9B,EAAOC,QAASD,EAAQA,EAAOC,QAAS4mJ,qBAGpE7mJ,EAAOC,OACf,CCtBA4mJ,oBAAoBI,KAAO,CAAC,ECC5BJ,oBAAoBzyI,EAAKpU,IACxB,IAAIknJ,EAASlnJ,GAAUA,EAAOG,WAC7B,IAAOH,EAAiB,QACxB,IAAM,EAEP,OADA6mJ,oBAAoB/+H,EAAEo/H,EAAQ,CAAE1iJ,EAAG0iJ,IAC5BA,CAAM,QCNd,IACIC,EADAC,EAAWxlJ,OAAOgH,eAAkBrI,GAASqB,OAAOgH,eAAerI,GAASA,GAASA,EAAa,UAQtGsmJ,oBAAoB1yI,EAAI,SAAS7R,EAAO2M,GAEvC,GADU,EAAPA,IAAU3M,EAAQ2E,KAAK3E,IAChB,EAAP2M,EAAU,OAAO3M,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAP2M,GAAa3M,EAAMnC,WAAY,OAAOmC,EAC1C,GAAW,GAAP2M,GAAoC,oBAAf3M,EAAMiiH,KAAqB,OAAOjiH,CAC5D,CACA,IAAI+kJ,EAAKzlJ,OAAOqB,OAAO,MACvB4jJ,oBAAoBlwI,EAAE0wI,GACtB,IAAI34I,EAAM,CAAC,EACXy4I,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIxyD,EAAiB,EAAP3lF,GAAY3M,EAAyB,iBAAXsyF,KAAyBuyD,EAAe74H,QAAQsmE,GAAUA,EAAUwyD,EAASxyD,GACxHhzF,OAAO8L,oBAAoBknF,GAASjpF,SAASvK,GAASsN,EAAItN,GAAO,IAAOkB,EAAMlB,KAI/E,OAFAsN,EAAa,QAAI,IAAM,EACvBm4I,oBAAoB/+H,EAAEu/H,EAAI34I,GACnB24I,CACR,MCxBAR,oBAAoB/+H,EAAI,CAAC7nB,EAASqnJ,KACjC,IAAI,IAAIlmJ,KAAOkmJ,EACXT,oBAAoBpwI,EAAE6wI,EAAYlmJ,KAASylJ,oBAAoBpwI,EAAExW,EAASmB,IAC5EQ,OAAOwB,eAAenD,EAASmB,EAAK,CAAEH,YAAY,EAAM2D,IAAK0iJ,EAAWlmJ,IAE1E,ECNDylJ,oBAAoBj/H,EAAI,WACvB,GAA0B,kBAAf2/H,WAAyB,OAAOA,WAC3C,IACC,OAAOtgJ,MAAQ,IAAIC,SAAS,cAAb,EAChB,CAAE,MAAOK,GACR,GAAsB,kBAAXC,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBq/I,oBAAoBpwI,EAAI,CAAClW,EAAKuhB,IAAUlgB,OAAOL,UAAUM,eAAeC,KAAKvB,EAAKuhB,GCClF+kI,oBAAoBlwI,EAAK1W,IACH,qBAAXwL,QAA0BA,OAAO+7I,aAC1C5lJ,OAAOwB,eAAenD,EAASwL,OAAO+7I,YAAa,CAAEllJ,MAAO,WAE7DV,OAAOwB,eAAenD,EAAS,aAAc,CAAEqC,OAAO,GAAO,ECL9DukJ,oBAAoB/vI,EAAI,yNCOZ2wI,4TAAZ,SAAYA,GAQVA,EAAA,UAOAA,EAAA,YAMAA,EAAA,iBACD,CAtBD,CAAYA,IAAAA,EAsBX,KAqKD,MAAMC,EAAoB,WAySV,SAAAC,EAAUrlJ,EAAYowH,GACpC,IAAc,IAAVpwH,GAA6B,OAAVA,GAAmC,qBAAVA,EAC9C,MAAM,IAAIoY,MAAMg4G,EAEpB,CAEgB,SAAAk1B,EAAQC,EAAWn1B,GACjC,IAAKm1B,EAAM,CAEc,qBAAZtwI,SAAyBA,QAAQi2C,KAAKklE,GAEjD,IAME,MAAM,IAAIh4G,MAAMg4G,EAEjB,CAAC,MAAOnrH,IAAI,CACd,CACH,CASA,SAASugJ,EAAgBj4H,EAAoB/rB,GAC3C,MAAO,CACLikJ,IAAKl4H,EAASs1D,MACd/jF,IAAKyuB,EAASzuB,IACd4mJ,IAAKlkJ,EAET,CAKM,SAAUmkJ,EACdrzD,EACAxsD,EACA+8C,EACA/jF,GAcA,YAfA,IAAA+jF,IAAAA,EAAa,MAGD6Z,EAAA,CACVjvE,SAA6B,kBAAZ6kE,EAAuBA,EAAUA,EAAQ7kE,SAC1DmtF,OAAQ,GACRgrC,KAAM,IACY,kBAAP9/G,EAAkB+/G,EAAU//G,GAAMA,EAAE,CAC/C+8C,QAKA/jF,IAAMgnC,GAAOA,EAAgBhnC,KAAQA,GAjChCqG,KAAK2I,SAASrM,SAAS,IAAIk0B,OAAO,EAAG,IAoC9C,CAKgB,SAAAmwD,EAAU6Y,GAIV,IAJW,SACzBlxE,EAAW,IAAG,OACdmtF,EAAS,GAAE,KACXgrC,EAAO,IACOjnD,EAKd,OAJIic,GAAqB,MAAXA,IACZntF,GAAiC,MAArBmtF,EAAOvtG,OAAO,GAAautG,EAAS,IAAMA,GACpDgrC,GAAiB,MAATA,IACVn4H,GAA+B,MAAnBm4H,EAAKv4I,OAAO,GAAau4I,EAAO,IAAMA,GAC7Cn4H,CACT,CAKM,SAAUo4H,EAAUt+H,GACxB,IAAIu+H,EAA4B,CAAC,EAEjC,GAAIv+H,EAAM,CACR,IAAIw+H,EAAYx+H,EAAKyE,QAAQ,KACzB+5H,GAAa,IACfD,EAAWF,KAAOr+H,EAAKoO,OAAOowH,GAC9Bx+H,EAAOA,EAAKoO,OAAO,EAAGowH,IAGxB,IAAIC,EAAcz+H,EAAKyE,QAAQ,KAC3Bg6H,GAAe,IACjBF,EAAWlrC,OAASrzF,EAAKoO,OAAOqwH,GAChCz+H,EAAOA,EAAKoO,OAAO,EAAGqwH,IAGpBz+H,IACFu+H,EAAWr4H,SAAWlG,EAEzB,CAED,OAAOu+H,CACT,CASA,SAASG,EACPC,EACAC,EACAC,EACAp0I,QAAA,IAAAA,IAAAA,EAA6B,CAAC,GAE9B,IAAI,OAAE9M,EAAS3C,SAAS66G,YAAY,SAAEipC,GAAW,GAAUr0I,EACvDs0I,EAAgBphJ,EAAOqhJ,QACvBvuI,EAASmtI,EAAOqB,IAChBxvI,EAA4B,KAE5BxV,EAAQw7I,IASZ,SAASA,IAEP,OADYsJ,EAAczjE,OAAS,CAAE6iE,IAAK,OAC7BA,GACf,CAEA,SAASe,IACPzuI,EAASmtI,EAAOqB,IAChB,IAAIvnG,EAAY+9F,IACZjhG,EAAqB,MAAbkD,EAAoB,KAAOA,EAAYz9C,EACnDA,EAAQy9C,EACJjoC,GACFA,EAAS,CAAEgB,SAAQuV,SAAUg5H,EAAQh5H,SAAUwuB,SAEnD,CA+CA,SAAS2qG,EAAU5gH,GAIjB,IAAImkE,EACyB,SAA3B/kG,EAAOqoB,SAASC,OACZtoB,EAAOqoB,SAASC,OAChBtoB,EAAOqoB,SAAS0oB,KAElBA,EAAqB,kBAAPnQ,EAAkBA,EAAKggD,EAAWhgD,GASpD,OALAmQ,EAAOA,EAAKvhC,QAAQ,KAAM,OAC1B2wI,EACEp7C,EACsE,sEAAAh0D,GAEjE,IAAIluB,IAAIkuB,EAAMg0D,EACvB,CApFa,MAATzoG,IACFA,EAAQ,EACR8kJ,EAAcK,aAAYjqD,EAAM,GAAA4pD,EAAczjE,MAAO,CAAA6iE,IAAKlkJ,IAAS,KAoFrE,IAAI+kJ,EAAmB,CACrB,UAAIvuI,GACF,OAAOA,GAET,YAAIuV,GACF,OAAO24H,EAAYhhJ,EAAQohJ,IAE7BM,MAAAA,CAAO7kJ,GACL,GAAIiV,EACF,MAAM,IAAIoB,MAAM,8CAKlB,OAHAlT,EAAOsrB,iBAAiB40H,EAAmBqB,GAC3CzvI,EAAWjV,EAEJ,KACLmD,EAAOmsB,oBAAoB+zH,EAAmBqB,GAC9CzvI,EAAW,IAAI,GAGnBmvI,WAAWrgH,GACFqgH,EAAWjhJ,EAAQ4gC,GAE5B4gH,YACAG,cAAAA,CAAe/gH,GAEb,IAAIhe,EAAM4+H,EAAU5gH,GACpB,MAAO,CACLrY,SAAU3F,EAAI2F,SACdmtF,OAAQ9yF,EAAI8yF,OACZgrC,KAAM99H,EAAI89H,OAGdziJ,KAlGF,SAAc2iC,EAAQ+8C,GACpB7qE,EAASmtI,EAAO2B,KAChB,IAAIv5H,EAAWo4H,EAAeY,EAAQh5H,SAAUuY,EAAI+8C,GAChDujE,GAAkBA,EAAiB74H,EAAUuY,GAEjDtkC,EAAQw7I,IAAa,EACrB,IAAI+J,EAAevB,EAAgBj4H,EAAU/rB,GACzCsmB,EAAMy+H,EAAQJ,WAAW54H,GAG7B,IACE+4H,EAAcU,UAAUD,EAAc,GAAIj/H,GAC1C,MAAO3U,GAKP,GAAIA,aAAiB8zI,cAA+B,mBAAf9zI,EAAMxP,KACzC,MAAMwP,EAIRjO,EAAOqoB,SAAStkB,OAAO6e,EACxB,CAEGu+H,GAAYrvI,GACdA,EAAS,CAAEgB,SAAQuV,SAAUg5H,EAAQh5H,SAAUwuB,MAAO,GAE1D,EAuEErnC,QArEF,SAAiBoxB,EAAQ+8C,GACvB7qE,EAASmtI,EAAO+B,QAChB,IAAI35H,EAAWo4H,EAAeY,EAAQh5H,SAAUuY,EAAI+8C,GAChDujE,GAAkBA,EAAiB74H,EAAUuY,GAEjDtkC,EAAQw7I,IACR,IAAI+J,EAAevB,EAAgBj4H,EAAU/rB,GACzCsmB,EAAMy+H,EAAQJ,WAAW54H,GAC7B+4H,EAAcK,aAAaI,EAAc,GAAIj/H,GAEzCu+H,GAAYrvI,GACdA,EAAS,CAAEgB,SAAQuV,SAAUg5H,EAAQh5H,SAAUwuB,MAAO,GAE1D,EAyDEorG,GAAGr1I,GACMw0I,EAAca,GAAGr1I,IAI5B,OAAOy0I,CACT,CC7tBA,IAAYa,GAAZ,SAAYA,GACVA,EAAA,YACAA,EAAA,oBACAA,EAAA,oBACAA,EAAA,aACD,CALD,CAAYA,IAAAA,EAKX,KAyQiC,IAAIpmD,IAAuB,CAC3D,OACA,gBACA,OACA,KACA,QACA,aAoNI,SAAUqmD,EAGdC,EACAC,EACAC,QAAQ,IAARA,IAAAA,EAAW,KAEX,IAGI/5H,EAAWg6H,GAFU,kBAAhBF,EAA2B1B,EAAU0B,GAAeA,GAEvB95H,UAAY,IAAK+5H,GAEvD,GAAgB,MAAZ/5H,EACF,OAAO,KAGT,IAAIi6H,EAAWC,EAAcL,IAgM/B,SAA2BI,GACzBA,EAAS3S,MAAK,CAAC7yI,EAAGC,IAChBD,EAAE0lJ,QAAUzlJ,EAAEylJ,MACVzlJ,EAAEylJ,MAAQ1lJ,EAAE0lJ,MAyCpB,SAAwB1lJ,EAAaC,GACnC,IAAI0lJ,EACF3lJ,EAAEzD,SAAW0D,EAAE1D,QAAUyD,EAAER,MAAM,GAAI,GAAG64I,OAAM,CAACzoI,EAAGtT,IAAMsT,IAAM3P,EAAE3D,KAElE,OAAOqpJ,EAKH3lJ,EAAEA,EAAEzD,OAAS,GAAK0D,EAAEA,EAAE1D,OAAS,GAG/B,CACN,CArDQqpJ,CACE5lJ,EAAE6lJ,WAAWtjB,KAAKl8H,GAASA,EAAKy/I,gBAChC7lJ,EAAE4lJ,WAAWtjB,KAAKl8H,GAASA,EAAKy/I,kBAG1C,CAxMEC,CAAkBP,GAElB,IAAIlwI,EAAU,KACd,IAAK,IAAIhZ,EAAI,EAAc,MAAXgZ,GAAmBhZ,EAAIkpJ,EAASjpJ,SAAUD,EAAG,CAO3D,IAAI0pJ,EAAUC,EAAW16H,GACzBjW,EAAU4wI,EAA0CV,EAASlpJ,GAAI0pJ,EAClE,CAED,OAAO1wI,CACT,CAyCA,SAASmwI,EAGPL,EACAI,EACAW,EACAC,QAF2C,IAA3CZ,IAAAA,EAA2C,SAC3C,IAAAW,IAAAA,EAA4C,SAClC,IAAVC,IAAAA,EAAa,IAEb,IAAIC,EAAeA,CACjBC,EACAhnJ,EACAinJ,KAEA,IAAIlgJ,EAAmC,CACrCkgJ,kBACmBxmJ,IAAjBwmJ,EAA6BD,EAAMjhI,MAAQ,GAAKkhI,EAClDC,eAAuC,IAAxBF,EAAME,cACrBV,cAAexmJ,EACfgnJ,SAGEjgJ,EAAKkgJ,aAAaE,WAAW,OAC/BtD,EACE98I,EAAKkgJ,aAAaE,WAAWL,GAC7B,wBAAwB//I,EAAKkgJ,aAA7B,wBACMH,EADN,4GAKF//I,EAAKkgJ,aAAelgJ,EAAKkgJ,aAAa/mJ,MAAM4mJ,EAAW7pJ,SAGzD,IAAI8oB,EAAOqhI,EAAU,CAACN,EAAY//I,EAAKkgJ,eACnCV,EAAaM,EAAY3+I,OAAOnB,GAKhCigJ,EAAM9qE,UAAY8qE,EAAM9qE,SAASj/E,OAAS,IAC5C4mJ,GAGkB,IAAhBmD,EAAMhnJ,MACN,4FACuC+lB,EAAI,MAG7CogI,EAAca,EAAM9qE,SAAUgqE,EAAUK,EAAYxgI,KAKpC,MAAdihI,EAAMjhI,MAAiBihI,EAAMhnJ,QAIjCkmJ,EAASvkJ,KAAK,CACZokB,OACAqgI,MAAOiB,EAAathI,EAAMihI,EAAMhnJ,OAChCumJ,cACA,EAaJ,OAXAT,EAAOj+I,SAAQ,CAACm/I,EAAOhnJ,KAAS,IAAAsnJ,EAE9B,GAAmB,KAAfN,EAAMjhI,MAA0B,OAAXuhI,EAACN,EAAMjhI,OAANuhI,EAAY/kD,SAAS,KAG7C,IAAK,IAAIglD,KAAYC,EAAwBR,EAAMjhI,MACjDghI,EAAaC,EAAOhnJ,EAAOunJ,QAH7BR,EAAaC,EAAOhnJ,EAKrB,IAGIkmJ,CACT,CAgBA,SAASsB,EAAwBzhI,GAC/B,IAAI4M,EAAW5M,EAAK7kB,MAAM,KAC1B,GAAwB,IAApByxB,EAAS11B,OAAc,MAAO,GAElC,IAAK+8B,KAAUytH,GAAQ90H,EAGnB+0H,EAAa1tH,EAAM2tH,SAAS,KAE5BC,EAAW5tH,EAAM9mB,QAAQ,MAAO,IAEpC,GAAoB,IAAhBu0I,EAAKxqJ,OAGP,OAAOyqJ,EAAa,CAACE,EAAU,IAAM,CAACA,GAGxC,IAAIC,EAAeL,EAAwBC,EAAK1/I,KAAK,MAEjDzG,EAAmB,GAqBvB,OAZAA,EAAOK,QACFkmJ,EAAa5kB,KAAK6kB,GACP,KAAZA,EAAiBF,EAAW,CAACA,EAAUE,GAAS//I,KAAK,QAKrD2/I,GACFpmJ,EAAOK,QAAQkmJ,GAIVvmJ,EAAO2hI,KAAKskB,GACjBxhI,EAAKohI,WAAW,MAAqB,KAAbI,EAAkB,IAAMA,GAEpD,CAaA,MAAMQ,EAAU,YACVC,EAAsB,EACtBC,EAAkB,EAClBC,EAAoB,EACpBC,EAAqB,GACrBC,GAAgB,EAChBC,EAAW58I,GAAoB,MAANA,EAE/B,SAAS47I,EAAathI,EAAc/lB,GAClC,IAAI2yB,EAAW5M,EAAK7kB,MAAM,KACtBonJ,EAAe31H,EAAS11B,OAS5B,OARI01B,EAAS8oH,KAAK4M,KAChBC,GAAgBF,GAGdpoJ,IACFsoJ,GAAgBL,GAGXt1H,EACJkxB,QAAQp4C,IAAO48I,EAAQ58I,KACvBoqI,QACC,CAACuQ,EAAOjxH,IACNixH,GACC2B,EAAQr9I,KAAKyqB,GACV6yH,EACY,KAAZ7yH,EACA+yH,EACAC,IACNG,EAEN,CAiBA,SAAS1B,EAIP2B,EACAt8H,GAEA,IAAI,WAAEs6H,GAAegC,EAEjBC,EAAgB,CAAC,EACjBC,EAAkB,IAClBzyI,EAA2D,GAC/D,IAAK,IAAIhZ,EAAI,EAAGA,EAAIupJ,EAAWtpJ,SAAUD,EAAG,CAC1C,IAAI+J,EAAOw/I,EAAWvpJ,GAClBg7B,EAAMh7B,IAAMupJ,EAAWtpJ,OAAS,EAChCyrJ,EACkB,MAApBD,EACIx8H,EACAA,EAAS/rB,MAAMuoJ,EAAgBxrJ,SAAW,IAC5Cia,EAAQyxI,EACV,CAAE5iI,KAAMhf,EAAKkgJ,aAAcC,cAAengJ,EAAKmgJ,cAAelvH,OAC9D0wH,GAGF,IAAKxxI,EAAO,OAAO,KAEnBpZ,OAAO2J,OAAO+gJ,EAAetxI,EAAMoc,QAEnC,IAAI0zH,EAAQjgJ,EAAKigJ,MAEjBhxI,EAAQrU,KAAK,CAEX2xB,OAAQk1H,EACRv8H,SAAUm7H,EAAU,CAACqB,EAAiBvxI,EAAM+U,WAC5C28H,aAAcC,EACZzB,EAAU,CAACqB,EAAiBvxI,EAAM0xI,gBAEpC5B,UAGyB,MAAvB9vI,EAAM0xI,eACRH,EAAkBrB,EAAU,CAACqB,EAAiBvxI,EAAM0xI,eAEvD,CAED,OAAO5yI,CACT,CAiHgB,SAAA2yI,EAIdG,EACA78H,GAEuB,kBAAZ68H,IACTA,EAAU,CAAE/iI,KAAM+iI,EAAS5B,eAAe,EAAOlvH,KAAK,IAGxD,IAAK+wH,EAASC,GA4ChB,SACEjjI,EACAmhI,EACAlvH,QADa,IAAbkvH,IAAAA,GAAgB,QACb,IAAHlvH,IAAAA,GAAM,GAEN8rH,EACW,MAAT/9H,IAAiBA,EAAK4hI,SAAS,MAAQ5hI,EAAK4hI,SAAS,MACrD,eAAe5hI,EAAf,oCACMA,EAAK7S,QAAQ,MAAO,MAD1B,qIAGsC6S,EAAK7S,QAAQ,MAAO,MAAK,MAGjE,IAAIogB,EAA8B,GAC9B21H,EACF,IACAljI,EACG7S,QAAQ,UAAW,IACnBA,QAAQ,OAAQ,KAChBA,QAAQ,qBAAsB,QAC9BA,QACC,qBACA,CAACyd,EAAWu4H,EAAmBxB,KAC7Bp0H,EAAO3xB,KAAK,CAAEunJ,YAAWxB,WAA0B,MAAdA,IAC9BA,EAAa,eAAiB,gBAIzC3hI,EAAK4hI,SAAS,MAChBr0H,EAAO3xB,KAAK,CAAEunJ,UAAW,MACzBD,GACW,MAATljI,GAAyB,OAATA,EACZ,QACA,qBACGiS,EAETixH,GAAgB,QACE,KAATljI,GAAwB,MAATA,IAQxBkjI,GAAgB,iBAKlB,IAAIF,EAAU,IAAInqB,OAAOqqB,EAAc/B,OAAgBzmJ,EAAY,KAEnE,MAAO,CAACsoJ,EAASz1H,EACnB,CAjGkC61H,CAC9BL,EAAQ/iI,KACR+iI,EAAQ5B,cACR4B,EAAQ9wH,KAGN9gB,EAAQ+U,EAAS/U,MAAM6xI,GAC3B,IAAK7xI,EAAO,OAAO,KAEnB,IAAIuxI,EAAkBvxI,EAAM,GACxB0xI,EAAeH,EAAgBv1I,QAAQ,UAAW,MAClDk2I,EAAgBlyI,EAAMhX,MAAM,GAC5BozB,EAAiB01H,EAAenT,QAClC,CAACuF,EAAIj+C,EAA6Bn9F,KAAS,IAApC,UAAEkpJ,EAAS,WAAExB,GAAYvqD,EAG9B,GAAkB,MAAd+rD,EAAmB,CACrB,IAAIG,EAAaD,EAAcppJ,IAAU,GACzC4oJ,EAAeH,EACZvoJ,MAAM,EAAGuoJ,EAAgBxrJ,OAASosJ,EAAWpsJ,QAC7CiW,QAAQ,UAAW,KACvB,CAED,MAAM1U,EAAQ4qJ,EAAcppJ,GAM5B,OAJEo7I,EAAK8N,GADHxB,IAAelpJ,OACCiC,GAECjC,GAAS,IAAI0U,QAAQ,OAAQ,KAE3CkoI,CAAI,GAEb,CAAC,GAGH,MAAO,CACL9nH,SACArH,SAAUw8H,EACVG,eACAE,UAEJ,CA2DA,SAASnC,EAAWnoJ,GAClB,IACE,OAAOA,EACJ0C,MAAM,KACN+hI,KAAKp/G,GAAM0xB,mBAAmB1xB,GAAG3Q,QAAQ,MAAO,SAChDnL,KAAK,KACR,MAAO4J,GAQP,OAPAmyI,GACE,EACA,iBAAiBtlJ,EAAjB,oHAEemT,EAAK,MAGfnT,CACR,CACH,CAKgB,SAAAynJ,EACdh6H,EACA+5H,GAEA,GAAiB,MAAbA,EAAkB,OAAO/5H,EAE7B,IAAKA,EAASs0B,cAAc4mG,WAAWnB,EAASzlG,eAC9C,OAAO,KAKT,IAAIy0F,EAAagR,EAAS2B,SAAS,KAC/B3B,EAAS/oJ,OAAS,EAClB+oJ,EAAS/oJ,OACTqsJ,EAAWr9H,EAASpgB,OAAOmpI,GAC/B,OAAIsU,GAAyB,MAAbA,EAEP,KAGFr9H,EAAS/rB,MAAM80I,IAAe,GACvC,CA2CA,SAASuU,EACPhqC,EACAiqC,EACAC,EACA1jI,GAEA,MACE,qBAAqBw5F,EAArB,2CACQiqC,EAAK,YAAa17I,KAAKE,UAC7B+X,GAFF,yCAIQ0jI,EAJR,2HAOJ,CAyBM,SAAUC,EAEd1zI,GACA,OAAOA,EAAQ6tC,QACb,CAAC3sC,EAAOlX,IACI,IAAVA,GAAgBkX,EAAM8vI,MAAMjhI,MAAQ7O,EAAM8vI,MAAMjhI,KAAK9oB,OAAS,GAEpE,CAIgB,SAAA0sJ,EAEd3zI,EAAc4zI,GACd,IAAIC,EAAcH,EAA2B1zI,GAK7C,OAAI4zI,EACKC,EAAY5mB,KAAI,CAAC/rH,EAAOgtI,IAC7BA,IAAQluI,EAAQ/Y,OAAS,EAAIia,EAAM+U,SAAW/U,EAAM0xI,eAIjDiB,EAAY5mB,KAAK/rH,GAAUA,EAAM0xI,cAC1C,CAKM,SAAUkB,EACdC,EACAC,EACAC,EACAC,GAEA,IAAI5lH,OAFU,IAAd4lH,IAAAA,GAAiB,GAGI,kBAAVH,EACTzlH,EAAK+/G,EAAU0F,IAEfzlH,EAAE42D,EAAQ,GAAA6uD,GAEVlG,GACGv/G,EAAGrY,WAAaqY,EAAGrY,SAASs2E,SAAS,KACtCgnD,EAAoB,IAAK,WAAY,SAAUjlH,IAEjDu/G,GACGv/G,EAAGrY,WAAaqY,EAAGrY,SAASs2E,SAAS,KACtCgnD,EAAoB,IAAK,WAAY,OAAQjlH,IAE/Cu/G,GACGv/G,EAAG80E,SAAW90E,EAAG80E,OAAO7W,SAAS,KAClCgnD,EAAoB,IAAK,SAAU,OAAQjlH,KAI/C,IAGIw3D,EAHAquD,EAAwB,KAAVJ,GAAgC,KAAhBzlH,EAAGrY,SACjCm+H,EAAaD,EAAc,IAAM7lH,EAAGrY,SAaxC,GAAkB,MAAdm+H,EACFtuD,EAAOmuD,MACF,CACL,IAAII,EAAqBL,EAAe/sJ,OAAS,EAMjD,IAAKitJ,GAAkBE,EAAWjD,WAAW,MAAO,CAClD,IAAImD,EAAaF,EAAWlpJ,MAAM,KAElC,KAAyB,OAAlBopJ,EAAW,IAChBA,EAAWl1H,QACXi1H,GAAsB,EAGxB/lH,EAAGrY,SAAWq+H,EAAWviJ,KAAK,IAC/B,CAED+zF,EAAOuuD,GAAsB,EAAIL,EAAeK,GAAsB,GACvE,CAED,IAAItkI,WAzKsBue,EAAQimH,QAAY,IAAZA,IAAAA,EAAe,KACjD,IACEt+H,SAAUm+H,EAAU,OACpBhxC,EAAS,GAAE,KACXgrC,EAAO,IACS,kBAAP9/G,EAAkB+/G,EAAU//G,GAAMA,EAEzCrY,EAAWm+H,EACXA,EAAWjD,WAAW,KACpBiD,EAWR,SAAyBnD,EAAsBsD,GAC7C,IAAI53H,EAAW43H,EAAar3I,QAAQ,OAAQ,IAAIhS,MAAM,KAYtD,OAXuB+lJ,EAAa/lJ,MAAM,KAEzB2G,SAASstB,IACR,OAAZA,EAEExC,EAAS11B,OAAS,GAAG01B,EAASilB,MACb,MAAZziB,GACTxC,EAAShxB,KAAKwzB,EACf,IAGIxC,EAAS11B,OAAS,EAAI01B,EAAS5qB,KAAK,KAAO,GACpD,CAxBQyiJ,CAAgBJ,EAAYG,GAC9BA,EAEJ,MAAO,CACLt+H,WACAmtF,OAAQqxC,EAAgBrxC,GACxBgrC,KAAMsG,EAActG,GAExB,CAuJauG,CAAYrmH,EAAIw3D,GAGvB8uD,EACFR,GAA6B,MAAfA,GAAsBA,EAAWzC,SAAS,KAEtDkD,GACDV,GAA8B,MAAfC,IAAuBH,EAAiBtC,SAAS,KAQnE,OANG5hI,EAAKkG,SAAS07H,SAAS,OACvBiD,IAA4BC,IAE7B9kI,EAAKkG,UAAY,KAGZlG,CACT,OAiBaqhI,EAAa/6G,GACxBA,EAAMtkC,KAAK,KAAKmL,QAAQ,SAAU,KAKvB21I,EAAqB58H,GAChCA,EAAS/Y,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,KAKlCu3I,EAAmBrxC,GAC7BA,GAAqB,MAAXA,EAEPA,EAAO+tC,WAAW,KAClB/tC,EACA,IAAMA,EAHN,GAQOsxC,EAAiBtG,GAC3BA,GAAiB,MAATA,EAAoBA,EAAK+C,WAAW,KAAO/C,EAAO,IAAMA,EAAzC,GA+BgBxtI,MAyRpC,SAAUk0I,EAAqBn5I,GACnC,OACW,MAATA,GACwB,kBAAjBA,EAAMwZ,QACe,kBAArBxZ,EAAMo5I,YACa,mBAAnBp5I,EAAMq5I,UACb,SAAUr5I,CAEd,CC/7BA,MAAMs5I,EAAgD,CACpD,OACA,MACA,QACA,UAMIC,GAJuB,IAAI1rD,IAC/ByrD,GAG2C,CAC3C,SACGA,IAEuB,IAAIzrD,IAAgB0rD,GAEpB,IAAI1rD,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACf,IAAIA,IAAI,CAAC,IAAK,MAqrElB73F,OAAO,gPCpxFtC,MAAMwjJ,EACXxwD,EAAAA,cAAoD,MAK/C,MAAMywD,EAAyBzwD,EAAAA,cAEpC,MA8CK,MAAM0wD,EAAoB1wD,EAAAA,cAC/B,MAYK,MAAM2wD,EAAkB3wD,EAAAA,cAC7B,YAaW4wD,EAAe5wD,EAAAA,cAAwC,CAClE6wD,OAAQ,KACRx1I,QAAS,GACTy1I,aAAa,IAOR,MAAMC,EAAoB/wD,EAAAA,cAAyB,MCnFnD,SAASgxD,IACd,OAA4C,MAArChxD,EAAAA,WAAiB2wD,EAC1B,CAYO,SAASM,IAQd,OANED,KADFE,GAAU,GAOHlxD,EAAAA,WAAiB2wD,GAAiBv/H,QAC3C,CAkDA,SAASkwE,EACP1tE,GAEeosE,EAAAA,WAAiB0wD,GAAmBS,QAKjDnxD,EAAAA,gBAAsBpsE,EAE1B,CAQO,SAASw9H,IACd,IAAI,YAAEN,GAAgB9wD,EAAAA,WAAiB4wD,GAGvC,OAAOE,EAo3BT,WACE,IAAI,OAAEO,GAAWC,GAAqBC,GAAeC,mBACjD1lJ,EAAK2lJ,GAAkBC,GAAoBF,mBAE3CG,EAAY3xD,EAAAA,QAAa,GAC7BsB,GAA0B,KACxBqwD,EAAUx7D,SAAU,CAAI,IAG1B,IAAIy7D,EAA6B5xD,EAAAA,aAC/B,SAACr2D,EAAiB9zB,QAAwB,IAAxBA,IAAAA,EAA2B,CAAC,GAKvC87I,EAAUx7D,UAEG,kBAAPxsD,EACT0nH,EAAOO,SAASjoH,GAEhB0nH,EAAOO,SAASjoH,EAAE42D,EAAA,CAAIsxD,YAAa/lJ,GAAO+J,IAE9C,GACA,CAACw7I,EAAQvlJ,IAGX,OAAO8lJ,CACT,CA/4BuBE,GAGvB,WAEId,KADFE,GAAU,GAOV,IAAIa,EAAoB/xD,EAAAA,WAAiBwwD,IACrC,SAAEnF,EAAQ,OAAE2G,EAAM,UAAE7vI,GAAc69E,EAAAA,WAAiB0wD,IACnD,QAAEr1I,GAAY2kF,EAAAA,WAAiB4wD,IAC7Bt/H,SAAUg+H,GAAqB2B,IAEjCgB,EAAqB9+I,KAAKE,UAC5B6+I,EAAoB72I,EAAS22I,EAAO/C,uBAGlC0C,EAAY3xD,EAAAA,QAAa,GAC7BsB,GAA0B,KACxBqwD,EAAUx7D,SAAU,CAAI,IAG1B,IAAIy7D,EAA6B5xD,EAAAA,aAC/B,SAACr2D,EAAiB9zB,GAKhB,QALwC,IAAxBA,IAAAA,EAA2B,CAAC,IAKvC87I,EAAUx7D,QAAS,OAExB,GAAkB,kBAAPxsD,EAET,YADAxnB,EAAU6oI,GAAGrhH,GAIf,IAAIve,EAAO+jI,EACTxlH,EACAx2B,KAAKia,MAAM6kI,GACX3C,EACqB,SAArBz5I,EAAQs8I,UASe,MAArBJ,GAA0C,MAAb1G,IAC/BjgI,EAAKkG,SACe,MAAlBlG,EAAKkG,SACD+5H,EACAoB,EAAU,CAACpB,EAAUjgI,EAAKkG,aAG/Bzb,EAAQ0C,QAAU4J,EAAU5J,QAAU4J,EAAUnb,MACjDokB,EACAvV,EAAQ6wE,MACR7wE,EAEJ,GACA,CACEw1I,EACAlpI,EACA8vI,EACA3C,EACAyC,IAIJ,OAAOH,CACT,CA1E6CQ,EAC7C,CA2EA,MAAMC,EAAgBryD,EAAAA,cAA6B,MAuF5C,SAASsyD,EACdnH,EACAC,EACAmH,EACAP,GAGEhB,KADFE,GAAU,GAOV,IAAI,UAAE/uI,GAAc69E,EAAAA,WAAiB0wD,IAC/Br1I,QAASm3I,GAAkBxyD,EAAAA,WAAiB4wD,GAC9C6B,EAAaD,EAAcA,EAAclwJ,OAAS,GAClDowJ,EAAeD,EAAaA,EAAW95H,OAAS,CAAC,EAEjDg6H,GADiBF,GAAaA,EAAWnhI,SACpBmhI,EAAaA,EAAWxE,aAAe,KAC9CwE,GAAcA,EAAWpG,MAqC3C,IAEIj7H,EAFAwhI,EAAsB3B,IAG1B,GAAI7F,EAAa,KAAAyH,EACf,IAAIC,EACqB,kBAAhB1H,EAA2B1B,EAAU0B,GAAeA,EAGpC,MAAvBuH,IAC4B,OADFE,EACxBC,EAAkBxhI,eAAQ,EAA1BuhI,EAA4BrG,WAAWmG,KAF3CzB,GAAU,GASV9/H,EAAW0hI,CACb,MACE1hI,EAAWwhI,EAGb,IAAIthI,EAAWF,EAASE,UAAY,IAEhCy8H,EAAoBz8H,EACxB,GAA2B,MAAvBqhI,EAA4B,CAe9B,IAAII,EAAiBJ,EAAmBp6I,QAAQ,MAAO,IAAIhS,MAAM,KAEjEwnJ,EAAoB,IADLz8H,EAAS/Y,QAAQ,MAAO,IAAIhS,MAAM,KACdhB,MAAMwtJ,EAAezwJ,QAAQ8K,KAAK,IACvE,CAEA,IAAIiO,EAAU6vI,EAAYC,EAAQ,CAAE75H,SAAUy8H,IAmB9C,IAAIiF,EAAkBC,GACpB53I,GACEA,EAAQitH,KAAK/rH,GACXpZ,OAAO2J,OAAO,CAAC,EAAGyP,EAAO,CACvBoc,OAAQx1B,OAAO2J,OAAO,CAAC,EAAG4lJ,EAAcn2I,EAAMoc,QAC9CrH,SAAUm7H,EAAU,CAClBkG,EAEAxwI,EAAUuoI,eACNvoI,EAAUuoI,eAAenuI,EAAM+U,UAAUA,SACzC/U,EAAM+U,WAEZ28H,aACyB,MAAvB1xI,EAAM0xI,aACF0E,EACAlG,EAAU,CACRkG,EAEAxwI,EAAUuoI,eACNvoI,EAAUuoI,eAAenuI,EAAM0xI,cAAc38H,SAC7C/U,EAAM0xI,mBAIxBuE,EACAD,EACAP,GAMF,OAAI5G,GAAe4H,EAEfhzD,EAAAA,cAAC2wD,EAAgB3Q,SAAQ,CACvBn8I,MAAO,CACLutB,SAAQmvE,EAAA,CACNjvE,SAAU,IACVmtF,OAAQ,GACRgrC,KAAM,GACN/iE,MAAO,KACP/jF,IAAK,WACFyuB,GAEL8hI,eAAgBlK,EAAeqB,MAGhC2I,GAKAA,CACT,CAEA,SAASG,KACP,IAAIn8I,EAybC,WAAkC,IAAAo8I,EACvC,IAAIp8I,EAAQgpF,EAAAA,WAAiB+wD,GACzBrqE,EAAQ2sE,GAAmB3B,GAAoB4B,eAC/CC,EAAU9B,GAAkBC,GAAoB4B,eAIpD,QAAcxtJ,IAAVkR,EACF,OAAOA,EAIT,OAAO,OAAPo8I,EAAO1sE,EAAM8sE,aAAN,EAAAJ,EAAeG,EACxB,CAtccE,GACRx/B,EAAUk8B,EAAqBn5I,GAC5BA,EAAMwZ,OAAU,IAAAxZ,EAAMo5I,WACzBp5I,aAAiBiF,MACjBjF,EAAMi9G,QACN9gH,KAAKE,UAAU2D,GACfi/D,EAAQj/D,aAAiBiF,MAAQjF,EAAMi/D,MAAQ,KAC/Cy9E,EAAY,yBACZC,EAAY,CAAEjd,QAAS,SAAUr3D,gBAAiBq0E,GAsBtD,OACE1zD,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAI,2CACJA,EAAAA,cAAA,MAAI/xF,MAAO,CAAEg9C,UAAW,WAAagpE,GACpCh+C,EAAQ+pB,EAAAA,cAAA,OAAK/xF,MAAO0lJ,GAAY19E,GAAe,KAvBtC,KA2BhB,CAEA,MAAM29E,GAAsB5zD,EAAAA,cAACmzD,GAAqB,MAgB3C,MAAMU,WAA4B7zD,EAAAA,UAIvCp8F,WAAAA,CAAYxB,GACV0xJ,MAAM1xJ,GACNoG,KAAKk+E,MAAQ,CACXt1D,SAAUhvB,EAAMgvB,SAChB2iI,aAAc3xJ,EAAM2xJ,aACpB/8I,MAAO5U,EAAM4U,MAEjB,CAEA,+BAAOuG,CAAyBvG,GAC9B,MAAO,CAAEA,MAAOA,EAClB,CAEA,+BAAOwG,CACLpb,EACAskF,GAUA,OACEA,EAAMt1D,WAAahvB,EAAMgvB,UACD,SAAvBs1D,EAAMqtE,cAAkD,SAAvB3xJ,EAAM2xJ,aAEjC,CACL/8I,MAAO5U,EAAM4U,MACboa,SAAUhvB,EAAMgvB,SAChB2iI,aAAc3xJ,EAAM2xJ,cAQjB,CACL/8I,WAAuBlR,IAAhB1D,EAAM4U,MAAsB5U,EAAM4U,MAAQ0vE,EAAM1vE,MACvDoa,SAAUs1D,EAAMt1D,SAChB2iI,aAAc3xJ,EAAM2xJ,cAAgBrtE,EAAMqtE,aAE9C,CAEAp/B,iBAAAA,CAAkB39G,EAAYg9I,GAC5Bl7I,QAAQ9B,MACN,wDACAA,EACAg9I,EAEJ,CAEAh6I,MAAAA,GACE,YAA4BlU,IAArB0C,KAAKk+E,MAAM1vE,MAChBgpF,EAAAA,cAAC4wD,EAAa5Q,SAAQ,CAACn8I,MAAO2E,KAAKpG,MAAM6xJ,cACvCj0D,EAAAA,cAAC+wD,EAAkB/Q,SAAQ,CACzBn8I,MAAO2E,KAAKk+E,MAAM1vE,MAClBuqE,SAAU/4E,KAAKpG,MAAM+b,aAIzB3V,KAAKpG,MAAMm/E,QAEf,EASF,SAAS2yE,GAAa1xD,GAAwD,IAAvD,aAAEyxD,EAAY,MAAE13I,EAAK,SAAEglE,GAA8BihB,EACtEuvD,EAAoB/xD,EAAAA,WAAiBwwD,GAazC,OAREuB,GACAA,EAAkBZ,QAClBY,EAAkBoC,gBACjB53I,EAAM8vI,MAAM+H,cAAgB73I,EAAM8vI,MAAMgI,iBAEzCtC,EAAkBoC,cAAcG,2BAA6B/3I,EAAM8vI,MAAMvgJ,IAIzEk0F,EAAAA,cAAC4wD,EAAa5Q,SAAQ,CAACn8I,MAAOowJ,GAC3B1yE,EAGP,CAEO,SAAS0xE,GACd53I,EACAm3I,EACAD,EACAP,GAC2B,IAAAuC,EAC3B,QAJ2B,IAA3B/B,IAAAA,EAA8B,SACc,IAA5CD,IAAAA,EAA+C,WACX,IAApCP,IAAAA,EAAuC,MAExB,MAAX32I,EAAiB,KAAAm5I,EACnB,GAAmB,OAAnBA,EAAIjC,KAAAiC,EAAiBhB,OAKnB,OAAO,KAFPn4I,EAAUk3I,EAAgBl3I,OAI9B,CAEA,IAAI23I,EAAkB33I,EAGlBm4I,EAAS,OAAHe,EAAGhC,QAAA,EAAAgC,EAAiBf,OAC9B,GAAc,MAAVA,EAAgB,CAClB,IAAIiB,EAAazB,EAAgB0B,WAC9Bh/G,GAAMA,EAAE22G,MAAMvgJ,SAA+BhG,KAAnB,MAAN0tJ,OAAM,EAANA,EAAS99G,EAAE22G,MAAMvgJ,OAGtC2oJ,GAAc,GADhBvD,GAAU,GAMV8B,EAAkBA,EAAgBztJ,MAChC,EACAyD,KAAKoI,IAAI4hJ,EAAgB1wJ,OAAQmyJ,EAAa,GAElD,CAIA,IAAIE,GAAiB,EACjBC,GAAiB,EACrB,GAAIrC,GAAmBP,GAAUA,EAAO6C,oBACtC,IAAK,IAAIxyJ,EAAI,EAAGA,EAAI2wJ,EAAgB1wJ,OAAQD,IAAK,CAC/C,IAAIka,EAAQy2I,EAAgB3wJ,GAM5B,IAJIka,EAAM8vI,MAAMyI,iBAAmBv4I,EAAM8vI,MAAM0I,0BAC7CH,EAAgBvyJ,GAGdka,EAAM8vI,MAAMvgJ,GAAI,CAClB,IAAI,WAAEkpJ,EAAU,OAAExB,GAAWjB,EACzB0C,EACF14I,EAAM8vI,MAAM6I,aACmBpvJ,IAA/BkvJ,EAAWz4I,EAAM8vI,MAAMvgJ,OACrB0nJ,QAAqC1tJ,IAA3B0tJ,EAAOj3I,EAAM8vI,MAAMvgJ,KACjC,GAAIyQ,EAAM8vI,MAAM7L,MAAQyU,EAAkB,CAIxCN,GAAiB,EAEf3B,EADE4B,GAAiB,EACD5B,EAAgBztJ,MAAM,EAAGqvJ,EAAgB,GAEzC,CAAC5B,EAAgB,IAErC,KACF,CACF,CACF,CAGF,OAAOA,EAAgBmC,aAAY,CAACtE,EAAQt0I,EAAOlX,KAEjD,IAAI2R,EACAo+I,GAA8B,EAC9BhB,EAAuC,KACvCW,EAAiD,KA0VzD,IAAqBpyJ,EAzVb4vJ,IACFv7I,EAAQw8I,GAAUj3I,EAAM8vI,MAAMvgJ,GAAK0nJ,EAAOj3I,EAAM8vI,MAAMvgJ,SAAMhG,EAC5DsuJ,EAAe73I,EAAM8vI,MAAM+H,cAAgBR,GAEvCe,IACEC,EAAgB,GAAe,IAAVvvJ,GAoVZ1C,EAlVT,kBACA,GAkVI0yJ,GAAc1yJ,KAC1B0yJ,GAAc1yJ,IAAO,GAhVfyyJ,GAA8B,EAC9BL,EAAyB,MAChBH,IAAkBvvJ,IAC3B+vJ,GAA8B,EAC9BL,EAAyBx4I,EAAM8vI,MAAM0I,wBAA0B,QAKrE,IAAI15I,EAAUm3I,EAAcjlJ,OAAOylJ,EAAgBztJ,MAAM,EAAGF,EAAQ,IAChEiwJ,EAAcA,KAChB,IAAI/zE,EAkBJ,OAhBEA,EADEvqE,EACSo9I,EACFgB,EACEL,EACFx4I,EAAM8vI,MAAMvkB,UAOV9nC,EAAAA,cAACzjF,EAAM8vI,MAAMvkB,UAAS,MACxBvrH,EAAM8vI,MAAMjlI,QACV7K,EAAM8vI,MAAMjlI,QAEZypI,EAGX7wD,EAAAA,cAACk0D,GAAa,CACZ33I,MAAOA,EACP03I,aAAc,CACZpD,SACAx1I,UACAy1I,YAAgC,MAAnByB,GAEfhxE,SAAUA,GACV,EAMN,OAAOgxE,IACJh2I,EAAM8vI,MAAMgI,eAAiB93I,EAAM8vI,MAAM+H,cAA0B,IAAV/uJ,GAC1D26F,EAAAA,cAAC6zD,GAAmB,CAClBziI,SAAUmhI,EAAgBnhI,SAC1B2iI,aAAcxB,EAAgBwB,aAC9B51I,UAAWi2I,EACXp9I,MAAOA,EACPuqE,SAAU+zE,IACVrB,aAAc,CAAEpD,OAAQ,KAAMx1I,UAASy1I,aAAa,KAGtDwE,GACD,GACA,KACL,CAAC,IAEI/D,GAAc,SAAdA,GAAc,OAAdA,EAAc,wBAAdA,EAAc,gCAAdA,EAAc,gCAAdA,CAAc,EAAdA,IAAc,IAMdG,GAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,wBAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,wCAAnBA,EAAmB,wBAAnBA,EAAmB,gCAAnBA,EAAmB,gCAAnBA,EAAmB,wBAAnBA,CAAmB,EAAnBA,IAAmB,IAmBxB,SAASJ,GAAqBiE,GAC5B,IAAIruJ,EAAM84F,EAAAA,WAAiBwwD,GAE3B,OADUtpJ,GAAVgqJ,GAAU,GACHhqJ,CACT,CAEA,SAASmsJ,GAAmBkC,GAC1B,IAAI7uE,EAAQsZ,EAAAA,WAAiBywD,GAE7B,OADU/pE,GAAVwqE,GAAU,GACHxqE,CACT,CASA,SAAS+qE,GAAkB8D,GACzB,IAAIlJ,EARN,SAAyBkJ,GACvB,IAAIlJ,EAAQrsD,EAAAA,WAAiB4wD,GAE7B,OADUvE,GAAV6E,GAAU,GACH7E,CACT,CAIcmJ,GACRC,EAAYpJ,EAAMhxI,QAAQgxI,EAAMhxI,QAAQ/Y,OAAS,GAKrD,OAHEmzJ,EAAUpJ,MAAMvgJ,IADlBolJ,GAAU,GAIHuE,EAAUpJ,MAAMvgJ,EACzB,CA4NA,MAAMupJ,GAAyC,CAAC,ECj/BpBr1D,EAAsB,gBA+L3C,SAAS01D,GAAQC,GAKA,IALC,GACvBhsH,EAAE,QACFpxB,EAAO,MACPmuE,EAAK,SACLyrE,GACcwD,EAEZ3E,KADFE,GAAU,GAOV,IAAI,OAAEc,EAAQb,OAAQyE,GAAa51D,EAAAA,WAAiB0wD,IAShD,QAAEr1I,GAAY2kF,EAAAA,WAAiB4wD,IAC7Bt/H,SAAUg+H,GAAqB2B,IACjCW,EAAWR,IAIXhmI,EAAO+jI,EACTxlH,EACAuoH,EAAoB72I,EAAS22I,EAAO/C,sBACpCK,EACa,SAAb6C,GAEE0D,EAAW1iJ,KAAKE,UAAU+X,GAO9B,OALA40E,EAAAA,WACE,IAAM4xD,EAASz+I,KAAKia,MAAMyoI,GAAW,CAAEt9I,UAASmuE,QAAOyrE,cACvD,CAACP,EAAUiE,EAAU1D,EAAU55I,EAASmuE,IAGnC,IACT,CAWO,SAASovE,GAAO1zJ,GACrB,ODxDK,SAAmBk1E,GACxB,IAAIu5E,EAAS7wD,EAAAA,WAAiB4wD,GAAcC,OAC5C,OAAIA,EAEA7wD,EAAAA,cAACqyD,EAAcrS,SAAQ,CAACn8I,MAAOyzE,GAAUu5E,GAGtCA,CACT,CCgDSkF,CAAU3zJ,EAAMk1E,QACzB,CAmDO,SAAS0+E,GAAMtvB,GACpBwqB,GAAU,EAKZ,CAqBO,SAAS+E,GAAMC,GAQqB,IAPzC7K,SAAU8K,EAAe,IAAG,SAC5B50E,EAAW,KACXnwD,SAAUglI,EAAY,eACtBlD,EAAiBlK,EAAeqB,IAAG,UACnCloI,EACAgvI,OAAQkF,GAAa,EAAK,OAC1BrE,GACYkE,EAETlF,KADHE,GAAU,GAQV,IAAI7F,EAAW8K,EAAa59I,QAAQ,OAAQ,KACxC+9I,EAAoBt2D,EAAAA,SACtB,KAAM,CACJqrD,WACAlpI,YACAgvI,OAAQkF,EACRrE,OAAMzxD,EAAA,CACJ0uD,sBAAsB,GACnB+C,MAGP,CAAC3G,EAAU2G,EAAQ7vI,EAAWk0I,IAGJ,kBAAjBD,IACTA,EAAe1M,EAAU0M,IAG3B,IAAI,SACF9kI,EAAW,IAAG,OACdmtF,EAAS,GAAE,KACXgrC,EAAO,GAAE,MACT/iE,EAAQ,KAAI,IACZ/jF,EAAM,WACJyzJ,EAEAG,EAAkBv2D,EAAAA,SAAc,KAClC,IAAIw2D,EAAmBlL,EAAch6H,EAAU+5H,GAE/C,OAAwB,MAApBmL,EACK,KAGF,CACLplI,SAAU,CACRE,SAAUklI,EACV/3C,SACAgrC,OACA/iE,QACA/jF,OAEFuwJ,iBACD,GACA,CAAC7H,EAAU/5H,EAAUmtF,EAAQgrC,EAAM/iE,EAAO/jF,EAAKuwJ,IASlD,OAAuB,MAAnBqD,EACK,KAIPv2D,EAAAA,cAAC0wD,EAAkB1Q,SAAQ,CAACn8I,MAAOyyJ,GACjCt2D,EAAAA,cAAC2wD,EAAgB3Q,SAAQ,CAACz+D,SAAUA,EAAU19E,MAAO0yJ,IAG3D,CAaO,SAASE,GAAMC,GAGqB,IAHpB,SACrBn1E,EAAQ,SACRnwD,GACYslI,EACZ,ODpKOpE,ECoKUqE,GAAyBp1E,GAAWnwD,EACvD,CAuC4B,IAAIs0F,SAAQ,SAEP1lB,EAAAA,UAkH1B,SAAS22D,GACdp1E,EACA4qE,QAAoB,IAApBA,IAAAA,EAAuB,IAEvB,IAAIhB,EAAwB,GA6D5B,OA3DAnrD,EAAAA,SAAe9yF,QAAQq0E,GAAU,CAACn6D,EAAS/hB,KACzC,IAAK26F,EAAAA,eAAqB54E,GAGxB,OAGF,IAAIwvI,EAAW,IAAIzK,EAAY9mJ,GAE/B,GAAI+hB,EAAQ7f,OAASy4F,EAAAA,SAMnB,YAJAmrD,EAAOnkJ,KAAKd,MACVilJ,EACAwL,GAAyBvvI,EAAQhlB,MAAMm/E,SAAUq1E,IAMnDxvI,EAAQ7f,OAASyuJ,IADnB9E,GAAU,GAQP9pI,EAAQhlB,MAAMiD,OAAU+hB,EAAQhlB,MAAMm/E,UADzC2vE,GAAU,GAKV,IAAI7E,EAAqB,CACvBvgJ,GAAIsb,EAAQhlB,MAAM0J,IAAM8qJ,EAASxpJ,KAAK,KACtCm/I,cAAenlI,EAAQhlB,MAAMmqJ,cAC7BnlI,QAASA,EAAQhlB,MAAMglB,QACvB0gH,UAAW1gH,EAAQhlB,MAAM0lI,UACzBziI,MAAO+hB,EAAQhlB,MAAMiD,MACrB+lB,KAAMhE,EAAQhlB,MAAMgpB,KACpB8pI,OAAQ9tI,EAAQhlB,MAAM8yJ,OACtBr5I,OAAQuL,EAAQhlB,MAAMyZ,OACtBu4I,aAAchtI,EAAQhlB,MAAMgyJ,aAC5BC,cAAejtI,EAAQhlB,MAAMiyJ,cAC7BwC,iBACiC,MAA/BzvI,EAAQhlB,MAAMiyJ,eACgB,MAA9BjtI,EAAQhlB,MAAMgyJ,aAChB0C,iBAAkB1vI,EAAQhlB,MAAM00J,iBAChCC,OAAQ3vI,EAAQhlB,MAAM20J,OACtBvW,KAAMp5H,EAAQhlB,MAAMo+I,MAGlBp5H,EAAQhlB,MAAMm/E,WAChB8qE,EAAM9qE,SAAWo1E,GACfvvI,EAAQhlB,MAAMm/E,SACdq1E,IAIJzL,EAAOnkJ,KAAKqlJ,EAAM,IAGblB,CACT,iEC/fgD,IAAItmD,IAAI,CACtD,oCACA,sBACA,eCuBF,IACE97F,OAAOiuJ,qBAHT,GAIC,CAAC,MAAOluJ,IACP,CA6IiE,IAAIyrG,IAkCvE,MACM0iD,GAAsBj3D,EAAsB,gBAE5Bk3D,GAAmB,UAEvBl3D,EAAY,MAoVxB,SAAUm3D,GAAaxB,GAKR,IALS,SAC5BtK,EAAQ,SACR9pE,EAAQ,OACRywE,EAAM,OACNjpJ,GACmB4sJ,EACfyB,EAAap3D,EAAAA,SACS,MAAtBo3D,EAAWjhE,UACbihE,EAAWjhE,QP/ZC,SACdtgF,GAoBA,YApBA,IAAAA,IAAAA,EAAiC,CAAC,GAoB3Bi0I,GAlBP,SACE/gJ,EACAohJ,GAEA,IAAI,SAAE74H,EAAQ,OAAEmtF,EAAM,KAAEgrC,GAAS1gJ,EAAOqoB,SACxC,OAAOo4H,EACL,GACA,CAAEl4H,WAAUmtF,SAAQgrC,QAEnBU,EAAczjE,OAASyjE,EAAczjE,MAAM4iE,KAAQ,KACnDa,EAAczjE,OAASyjE,EAAczjE,MAAM/jF,KAAQ,UAExD,IAEA,SAA2BoG,EAAgB4gC,GACzC,MAAqB,kBAAPA,EAAkBA,EAAKggD,EAAWhgD,EAClD,GAKE,KACA9zB,EAEJ,COoYyBwhJ,CAAqB,CAAEtuJ,SAAQmhJ,UAAU,KAGhE,IAAIE,EAAUgN,EAAWjhE,SACpBzP,EAAO4wE,GAAgBt3D,EAAAA,SAAe,CACzCnkF,OAAQuuI,EAAQvuI,OAChBuV,SAAUg5H,EAAQh5H,YAEhB,mBAAEmmI,GAAuBvF,GAAU,CAAC,EACpC1gB,EAAWtxC,EAAAA,aACZw3D,IACCD,GAAsBN,GAClBA,IAAoB,IAAMK,EAAaE,KACvCF,EAAaE,EAAS,GAE5B,CAACF,EAAcC,IAKjB,OAFAv3D,EAAAA,iBAAsB,IAAMoqD,EAAQK,OAAOnZ,IAAW,CAAC8Y,EAAS9Y,IAG9DtxC,EAAAA,cAACi2D,GAAM,CACL5K,SAAUA,EACV9pE,SAAUA,EACVnwD,SAAUs1D,EAAMt1D,SAChB8hI,eAAgBxsE,EAAM7qE,OACtBsG,UAAWioI,EACX4H,OAAQA,GAGd,CAsHoB,qBAAXjpJ,QACoB,qBAApBA,OAAO3C,UACP2C,OAAO3C,SAASE,cA+ZzB,IAAKirJ,GAQAG,IARL,SAAKH,GACHA,EAAA,4CACAA,EAAA,sBACAA,EAAA,oCACAA,EAAA,wBACAA,EAAA,+CACD,EAND,CAAKA,KAAAA,GAMJ,KAED,SAAKG,GACHA,EAAA,wBACAA,EAAA,0BACAA,EAAA,2CACD,CAJD,CAAKA,KAAAA,GAIJ,q6UCxyCD,MACA,GAAe,sBAA0B,gECJzC,MACA,GAAe,sBAA0B,gEC3BzC,SAAS5kJ,GAAQ3K,GACf,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CACzC,IAAIa,EAASD,UAAUZ,GACvB,IAAK,IAAIM,KAAOO,EACdf,EAAOQ,GAAOO,EAAOP,EAEzB,CACA,OAAOR,CACT,CAwHA,IAAIs1J,GAlGJ,SAASr6H,EAAMs6H,EAAWC,GACxB,SAAS9nJ,EAAKrI,EAAM3D,EAAOg2B,GACzB,GAAwB,qBAAbzzB,SAAX,CAMkC,kBAFlCyzB,EAAa/sB,GAAO,CAAC,EAAG6qJ,EAAmB99H,IAErB+9H,UACpB/9H,EAAW+9H,QAAU,IAAIx3I,KAAKA,KAAKD,MAA6B,MAArB0Z,EAAW+9H,UAEpD/9H,EAAW+9H,UACb/9H,EAAW+9H,QAAU/9H,EAAW+9H,QAAQC,eAG1CrwJ,EAAOo9F,mBAAmBp9F,GACvB+Q,QAAQ,uBAAwBqiC,oBAChCriC,QAAQ,QAASinI,QAEpB,IAAIsY,EAAwB,GAC5B,IAAK,IAAIvyD,KAAiB1rE,EACnBA,EAAW0rE,KAIhBuyD,GAAyB,KAAOvyD,GAEE,IAA9B1rE,EAAW0rE,KAWfuyD,GAAyB,IAAMj+H,EAAW0rE,GAAeh/F,MAAM,KAAK,KAGtE,OAAQH,SAAS2xJ,OACfvwJ,EAAO,IAAMkwJ,EAAUppJ,MAAMzK,EAAO2D,GAAQswJ,CAtC9C,CAuCF,CA4BA,OAAO30J,OAAOqB,OACZ,CACEqL,MACA1J,IA7BJ,SAAcqB,GACZ,GAAwB,qBAAbpB,YAA6BnD,UAAUX,QAAWkF,GAA7D,CAQA,IAFA,IAAIwwJ,EAAU5xJ,SAAS2xJ,OAAS3xJ,SAAS2xJ,OAAOxxJ,MAAM,MAAQ,GAC1D0xJ,EAAM,CAAC,EACF51J,EAAI,EAAGA,EAAI21J,EAAQ11J,OAAQD,IAAK,CACvC,IAAI61J,EAAQF,EAAQ31J,GAAGkE,MAAM,KACzB1C,EAAQq0J,EAAM3yJ,MAAM,GAAG6H,KAAK,KAEhC,IACE,IAAIygD,EAAQjT,mBAAmBs9G,EAAM,IAGrC,GAFAD,EAAIpqG,GAAS6pG,EAAUS,KAAKt0J,EAAOgqD,GAE/BrmD,IAASqmD,EACX,KAEJ,CAAE,MAAO/kD,IAAI,CACf,CAEA,OAAOtB,EAAOywJ,EAAIzwJ,GAAQywJ,CApB1B,CAqBF,EAMIG,OAAQ,SAAU5wJ,EAAMqyB,GACtBhqB,EACErI,EACA,GACAsF,GAAO,CAAC,EAAG+sB,EAAY,CACrB+9H,SAAU,IAGhB,EACAS,eAAgB,SAAUx+H,GACxB,OAAOuD,EAAK50B,KAAKkvJ,UAAW5qJ,GAAO,CAAC,EAAGtE,KAAKqxB,WAAYA,GAC1D,EACAy+H,cAAe,SAAUZ,GACvB,OAAOt6H,EAAKtwB,GAAO,CAAC,EAAGtE,KAAKkvJ,UAAWA,GAAYlvJ,KAAKqxB,WAC1D,GAEF,CACEA,WAAY,CAAEh2B,MAAOV,OAAO68B,OAAO23H,IACnCD,UAAW,CAAE7zJ,MAAOV,OAAO68B,OAAO03H,KAGxC,CAEUt6H,CApHa,CACrB+6H,KAAM,SAAUt0J,GAId,MAHiB,MAAbA,EAAM,KACRA,EAAQA,EAAM0B,MAAM,GAAI,IAEnB1B,EAAM0U,QAAQ,mBAAoBqiC,mBAC3C,EACAtsC,MAAO,SAAUzK,GACf,OAAO+gG,mBAAmB/gG,GAAO0U,QAC/B,2CACAqiC,mBAEJ,GAwG+B,CAAExvB,KAAM,MChI1B,SAASgI,GAAKxtB,EAAI0b,GAC/B,OAAO,WACL,OAAO1b,EAAGM,MAAMob,EAASre,UAC3B,CACF,CCAA,MAAOqC,SAAQA,IAAInC,OAAOL,WACpB,eAACqH,IAAkBhH,OAEnBo1J,IAAUvqG,GAGb7qD,OAAOqB,OAAO,MAHQg0J,IACrB,MAAMn4H,EAAM/6B,GAASjC,KAAKm1J,GAC1B,OAAOxqG,GAAM3tB,KAAS2tB,GAAM3tB,GAAOA,EAAI96B,MAAM,GAAI,GAAGqgD,cAAc,GAFvD,IAACoI,GAKhB,MAAMyqG,GAAclxJ,IAClBA,EAAOA,EAAKq+C,cACJ4yG,GAAUD,GAAOC,KAAWjxJ,GAGhCmxJ,GAAanxJ,GAAQixJ,UAAgBA,IAAUjxJ,GAS/C,QAACkC,IAAWD,MASZmvJ,GAAcD,GAAW,aAqB/B,MAAME,GAAgBH,GAAW,eA2BjC,MAAMI,GAAWH,GAAW,UAQtB38I,GAAa28I,GAAW,YASxBI,GAAWJ,GAAW,UAStB9zJ,GAAY4zJ,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/CO,GAAiBvnJ,IACrB,GAAoB,WAAhB+mJ,GAAO/mJ,GACT,OAAO,EAGT,MAAM1O,EAAYqH,GAAeqH,GACjC,OAAsB,OAAd1O,GAAsBA,IAAcK,OAAOL,WAAkD,OAArCK,OAAOgH,eAAerH,OAA0BkK,OAAO+7I,eAAev3I,MAAUxE,OAAOoH,YAAY5C,EAAI,EAUnKwnJ,GAASP,GAAW,QASpBQ,GAASR,GAAW,QASpBS,GAAST,GAAW,QASpBU,GAAaV,GAAW,YAsCxBW,GAAoBX,GAAW,oBAE9BY,GAAkBC,GAAWC,GAAYC,IAAa,CAAC,iBAAkB,UAAW,WAAY,WAAWlxB,IAAImwB,IA2BtH,SAASvrJ,GAAQpL,EAAK8D,GAA+B,IAM/CvD,EACA2O,GAPoB,WAACyoJ,GAAa,GAAMx2J,UAAAX,OAAA,QAAAwD,IAAA7C,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhD,GAAY,OAARnB,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGL2H,GAAQ3H,GAEV,IAAKO,EAAI,EAAG2O,EAAIlP,EAAIQ,OAAQD,EAAI2O,EAAG3O,IACjCuD,EAAGvC,KAAK,KAAMvB,EAAIO,GAAIA,EAAGP,OAEtB,CAEL,MAAMwI,EAAOmvJ,EAAat2J,OAAO8L,oBAAoBnN,GAAOqB,OAAOmH,KAAKxI,GAClEohB,EAAM5Y,EAAKhI,OACjB,IAAIK,EAEJ,IAAKN,EAAI,EAAGA,EAAI6gB,EAAK7gB,IACnBM,EAAM2H,EAAKjI,GACXuD,EAAGvC,KAAK,KAAMvB,EAAIa,GAAMA,EAAKb,EAEjC,CACF,CAEA,SAAS43J,GAAQ53J,EAAKa,GACpBA,EAAMA,EAAIijD,cACV,MAAMt7C,EAAOnH,OAAOmH,KAAKxI,GACzB,IACIggG,EADAz/F,EAAIiI,EAAKhI,OAEb,KAAOD,KAAM,GAEX,GADAy/F,EAAOx3F,EAAKjI,GACRM,IAAQm/F,EAAKl8C,cACf,OAAOk8C,EAGX,OAAO,IACT,CAEA,MAAM63D,GAEsB,qBAAf7Q,WAAmCA,WACvB,qBAAT9kJ,KAAuBA,KAA0B,qBAAX+E,OAAyBA,OAAS9B,OAGlF2yJ,GAAoBtiF,IAAaqhF,GAAYrhF,IAAYA,IAAYqiF,GAoD3E,MA8HME,IAAgBC,GAKG,qBAAfl0E,YAA8Bz7E,GAAey7E,YAH9C4yE,GACEsB,IAActB,aAAiBsB,IAHrB,IAACA,GAetB,MAiCMC,GAAatB,GAAW,mBAWxBr1J,GAAiB,CAACo/F,IAAA,IAAC,eAACp/F,GAAeo/F,EAAA,MAAK,CAAC1gG,EAAKuhB,IAASjgB,EAAeC,KAAKvB,EAAKuhB,EAAK,EAApE,CAAsElgB,OAAOL,WAS9Fk3J,GAAWvB,GAAW,UAEtBwB,GAAoBA,CAACn4J,EAAKo4J,KAC9B,MAAMC,EAAch3J,OAAOi9F,0BAA0Bt+F,GAC/Cs4J,EAAqB,CAAC,EAE5BltJ,GAAQitJ,GAAa,CAAC53J,EAAYiF,KAChC,IAAIuuF,GAC2C,KAA1CA,EAAMmkE,EAAQ33J,EAAYiF,EAAM1F,MACnCs4J,EAAmB5yJ,GAAQuuF,GAAOxzF,EACpC,IAGFY,OAAOjB,iBAAiBJ,EAAKs4J,EAAmB,EAsD5CC,GAAQ,6BAERC,GAAQ,aAERC,GAAW,CACfD,SACAD,SACAG,YAAaH,GAAQA,GAAMx0D,cAAgBy0D,IAwB7C,MA+BMG,GAAYhC,GAAW,iBAK7B,IACEhvJ,WACAmvJ,iBACA8B,SApnBF,SAAkBlpJ,GAChB,OAAe,OAARA,IAAiBmnJ,GAAYnnJ,IAA4B,OAApBA,EAAI5N,cAAyB+0J,GAAYnnJ,EAAI5N,cACpFmY,GAAWvK,EAAI5N,YAAY82J,WAAalpJ,EAAI5N,YAAY82J,SAASlpJ,EACxE,EAknBEmpJ,WAtekBnC,IAClB,IAAIxtJ,EACJ,OAAOwtJ,IACgB,oBAAboC,UAA2BpC,aAAiBoC,UAClD7+I,GAAWy8I,EAAM/jI,UACY,cAA1BzpB,EAAOutJ,GAAOC,KAEL,WAATxtJ,GAAqB+Q,GAAWy8I,EAAMlzJ,WAAkC,sBAArBkzJ,EAAMlzJ,YAG/D,EA6dDu1J,kBAhmBF,SAA2BrpJ,GACzB,IAAI7K,EAMJ,OAJEA,EAD0B,qBAAhBm0J,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAOvpJ,GAElBA,GAASA,EAAI+oE,QAAYq+E,GAAcpnJ,EAAI+oE,QAEhD5zE,CACT,EAylBEkyJ,YACAC,YACAkC,UAhjBgBxC,IAAmB,IAAVA,IAA4B,IAAVA,EAijB3C5zJ,YACAm0J,iBACAM,oBACAC,aACAC,WAAU,GACVC,aACAb,eACAK,UACAC,UACAC,UACAc,YACAj+I,cACAk/I,SAhgBgBzpJ,GAAQ5M,GAAS4M,IAAQuK,GAAWvK,EAAI0pJ,MAigBxD9B,qBACAS,gBACAV,cACAjsJ,WACAiuJ,MAlYF,SAASA,IACP,MAAM,SAACC,GAAYxB,GAAiBpxJ,OAASA,MAAQ,CAAC,EAChD7B,EAAS,CAAC,EACV00J,EAAcA,CAAC7pJ,EAAK7O,KACxB,MAAM24J,EAAYF,GAAY1B,GAAQ/yJ,EAAQhE,IAAQA,EAClDo2J,GAAcpyJ,EAAO20J,KAAevC,GAAcvnJ,GACpD7K,EAAO20J,GAAaH,EAAMx0J,EAAO20J,GAAY9pJ,GACpCunJ,GAAcvnJ,GACvB7K,EAAO20J,GAAaH,EAAM,CAAC,EAAG3pJ,GACrB/H,GAAQ+H,GACjB7K,EAAO20J,GAAa9pJ,EAAIjM,QAExBoB,EAAO20J,GAAa9pJ,CACtB,EAGF,IAAK,IAAInP,EAAI,EAAG2O,EAAI/N,UAAUX,OAAQD,EAAI2O,EAAG3O,IAC3CY,UAAUZ,IAAM6K,GAAQjK,UAAUZ,GAAIg5J,GAExC,OAAO10J,CACT,EA+WEw6G,OAnWa,SAACp7G,EAAGC,EAAGsb,GAA8B,IAArB,WAACm4I,GAAWx2J,UAAAX,OAAA,QAAAwD,IAAA7C,UAAA,GAAAA,UAAA,GAAE,CAAC,EAQ5C,OAPAiK,GAAQlH,GAAG,CAACwL,EAAK7O,KACX2e,GAAWvF,GAAWvK,GACxBzL,EAAEpD,GAAOywB,GAAK5hB,EAAK8P,GAEnBvb,EAAEpD,GAAO6O,CACX,GACC,CAACioJ,eACG1zJ,CACT,EA2VEyvB,KA/dY6K,GAAQA,EAAI7K,KACxB6K,EAAI7K,OAAS6K,EAAI9nB,QAAQ,qCAAsC,IA+d/DgjJ,SAnVgBznG,IACc,QAA1BA,EAAQ7iD,WAAW,KACrB6iD,EAAUA,EAAQvuD,MAAM,IAEnBuuD,GAgVP0nG,SApUeA,CAAC53J,EAAa63J,EAAkBr5J,EAAO+3J,KACtDv2J,EAAYd,UAAYK,OAAOqB,OAAOi3J,EAAiB34J,UAAWq3J,GAClEv2J,EAAYd,UAAUc,YAAcA,EACpCT,OAAOwB,eAAef,EAAa,QAAS,CAC1CC,MAAO43J,EAAiB34J,YAE1BV,GAASe,OAAO2J,OAAOlJ,EAAYd,UAAWV,EAAM,EA+TpDs5J,aAnTmBA,CAACC,EAAWC,EAAS1yG,EAAQ2yG,KAChD,IAAIz5J,EACAC,EACAghB,EACJ,MAAMy4I,EAAS,CAAC,EAIhB,GAFAF,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAx5J,EAAQe,OAAO8L,oBAAoB0sJ,GACnCt5J,EAAID,EAAME,OACHD,KAAM,GACXghB,EAAOjhB,EAAMC,GACPw5J,IAAcA,EAAWx4I,EAAMs4I,EAAWC,IAAcE,EAAOz4I,KACnEu4I,EAAQv4I,GAAQs4I,EAAUt4I,GAC1By4I,EAAOz4I,IAAQ,GAGnBs4I,GAAuB,IAAXzyG,GAAoB/+C,GAAewxJ,EACjD,OAASA,KAAezyG,GAAUA,EAAOyyG,EAAWC,KAAaD,IAAcx4J,OAAOL,WAEtF,OAAO84J,CAAO,EA6RdrD,UACAE,cACAzL,SAnReA,CAAC3sH,EAAK07H,EAAc10I,KACnCgZ,EAAMtvB,OAAOsvB,SACIv6B,IAAbuhB,GAA0BA,EAAWgZ,EAAI/9B,UAC3C+kB,EAAWgZ,EAAI/9B,QAEjB+kB,GAAY00I,EAAaz5J,OACzB,MAAM+mC,EAAYhJ,EAAIxQ,QAAQksI,EAAc10I,GAC5C,OAAsB,IAAfgiB,GAAoBA,IAAchiB,CAAQ,EA6QjD+xH,QAlQeof,IACf,IAAKA,EAAO,OAAO,KACnB,GAAI/uJ,GAAQ+uJ,GAAQ,OAAOA,EAC3B,IAAIn2J,EAAIm2J,EAAMl2J,OACd,IAAKw2J,GAASz2J,GAAI,OAAO,KACzB,MAAMgjB,EAAM,IAAI7b,MAAMnH,GACtB,KAAOA,KAAM,GACXgjB,EAAIhjB,GAAKm2J,EAAMn2J,GAEjB,OAAOgjB,CAAG,EA0PV22I,aA/NmBA,CAACl6J,EAAK8D,KACzB,MAEMwO,GAFYtS,GAAOA,EAAIkL,OAAOoH,WAET/Q,KAAKvB,GAEhC,IAAI6E,EAEJ,MAAQA,EAASyN,EAAStK,UAAYnD,EAAOgF,MAAM,CACjD,MAAMgvC,EAAOh0C,EAAO9C,MACpB+B,EAAGvC,KAAKvB,EAAK64C,EAAK,GAAIA,EAAK,GAC7B,GAsNAshH,SA3MeA,CAACC,EAAQ77H,KACxB,IAAIhlB,EACJ,MAAMgK,EAAM,GAEZ,KAAwC,QAAhChK,EAAU6gJ,EAAOrzJ,KAAKw3B,KAC5Bhb,EAAIre,KAAKqU,GAGX,OAAOgK,CAAG,EAoMV00I,cACA32J,eAAc,GACd+4J,WAAY/4J,GACZ62J,qBACAmC,cA3JqBt6J,IACrBm4J,GAAkBn4J,GAAK,CAACS,EAAYiF,KAElC,GAAIuU,GAAWja,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAU+tB,QAAQroB,GAC/D,OAAO,EAGT,MAAM3D,EAAQ/B,EAAI0F,GAEbuU,GAAWlY,KAEhBtB,EAAWC,YAAa,EAEpB,aAAcD,EAChBA,EAAWG,UAAW,EAInBH,EAAWsN,MACdtN,EAAWsN,IAAM,KACf,MAAMoM,MAAM,qCAAwCzU,EAAO,IAAK,GAEpE,GACA,EAqIF60J,YAlIkBA,CAACC,EAAeC,KAClC,MAAMz6J,EAAM,CAAC,EAEPo5C,EAAU71B,IACdA,EAAInY,SAAQrJ,IACV/B,EAAI+B,IAAS,CAAI,GACjB,EAKJ,OAFA4F,GAAQ6yJ,GAAiBphH,EAAOohH,GAAiBphH,EAAOnqC,OAAOurJ,GAAe/1J,MAAMg2J,IAE7Ez6J,CAAG,EAwHV06J,YApMkBn8H,GACXA,EAAIulB,cAAcrtC,QAAQ,yBAC/B,SAAkBm9B,EAAGpD,EAAIuE,GACvB,OAAOvE,EAAGuzD,cAAgBhvD,CAC5B,IAiMF4lH,KAtHWA,OAuHXC,eArHqBA,CAAC74J,EAAOqlG,IACb,MAATrlG,GAAiB2T,OAAOmlJ,SAAS94J,GAASA,GAASA,EAAQqlG,EAqHlEwwD,WACAzyJ,OAAQ0yJ,GACRC,oBACAW,YACAqC,eA5GqB,WAAgD,IAA/CzyG,EAAIlnD,UAAAX,OAAA,QAAAwD,IAAA7C,UAAA,GAAAA,UAAA,GAAG,GAAI45J,EAAQ55J,UAAAX,OAAA,QAAAwD,IAAA7C,UAAA,GAAAA,UAAA,GAAGs3J,GAASC,YACjDn6H,EAAM,GACV,MAAM,OAAC/9B,GAAUu6J,EACjB,KAAO1yG,KACL9pB,GAAOw8H,EAAS7zJ,KAAK2I,SAAWrP,EAAO,GAGzC,OAAO+9B,CACT,EAqGEy8H,oBA5FF,SAA6BtE,GAC3B,SAAUA,GAASz8I,GAAWy8I,EAAM/jI,SAAyC,aAA9B+jI,EAAMxrJ,OAAO+7I,cAA+ByP,EAAMxrJ,OAAOoH,UAC1G,EA2FE2oJ,aAzFoBj7J,IACpB,MAAMm0E,EAAQ,IAAIzsE,MAAM,IAElBwzJ,EAAQA,CAAC95J,EAAQb,KAErB,GAAIuC,GAAS1B,GAAS,CACpB,GAAI+yE,EAAMpmD,QAAQ3sB,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxB+yE,EAAM5zE,GAAKa,EACX,MAAMf,EAASsH,GAAQvG,GAAU,GAAK,CAAC,EASvC,OAPAgK,GAAQhK,GAAQ,CAACW,EAAOlB,KACtB,MAAMs6J,EAAeD,EAAMn5J,EAAOxB,EAAI,IACrCs2J,GAAYsE,KAAkB96J,EAAOQ,GAAOs6J,EAAa,IAG5DhnF,EAAM5zE,QAAKyD,EAEJ3D,CACT,CACF,CAEA,OAAOe,CAAM,EAGf,OAAO85J,EAAMl7J,EAAK,EAAE,EA8DpB24J,aACAyC,WA1DkB1E,GAClBA,IAAU5zJ,GAAS4zJ,IAAUz8I,GAAWy8I,KAAWz8I,GAAWy8I,EAAM1yC,OAAS/pG,GAAWy8I,EAAMzyC,QC9oBhG,SAASo3C,GAAWlpC,EAASrY,EAAMlsC,EAAQ0tF,EAASttI,GAClD7T,MAAM5Y,KAAKmF,MAEPyT,MAAMohJ,kBACRphJ,MAAMohJ,kBAAkB70J,KAAMA,KAAK5E,aAEnC4E,KAAKytE,OAAS,IAAIh6D,OAASg6D,MAG7BztE,KAAKyrH,QAAUA,EACfzrH,KAAKhB,KAAO,aACZo0G,IAASpzG,KAAKozG,KAAOA,GACrBlsC,IAAWlnE,KAAKknE,OAASA,GACzB0tF,IAAY50J,KAAK40J,QAAUA,GAC3BttI,IAAatnB,KAAKsnB,SAAWA,EAC/B,CAEAwtI,GAAM9B,SAAS2B,GAAYlhJ,MAAO,CAChCshJ,OAAQ,WACN,MAAO,CAELtpC,QAASzrH,KAAKyrH,QACdzsH,KAAMgB,KAAKhB,KAEXwoE,YAAaxnE,KAAKwnE,YAClBqvB,OAAQ72F,KAAK62F,OAEb5lE,SAAUjxB,KAAKixB,SACfi1C,WAAYlmE,KAAKkmE,WACjB8uF,aAAch1J,KAAKg1J,aACnBvnF,MAAOztE,KAAKytE,MAEZvG,OAAQ4tF,GAAMP,aAAav0J,KAAKknE,QAChCksC,KAAMpzG,KAAKozG,KACXprF,OAAQhoB,KAAKsnB,UAAYtnB,KAAKsnB,SAASU,OAAShoB,KAAKsnB,SAASU,OAAS,KAE3E,IAGF,MAAM1tB,GAAYq6J,GAAWr6J,UACvBq3J,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAjtJ,SAAQ0uG,IACRu+C,GAAYv+C,GAAQ,CAAC/3G,MAAO+3G,EAAK,IAGnCz4G,OAAOjB,iBAAiBi7J,GAAYhD,IACpCh3J,OAAOwB,eAAe7B,GAAW,eAAgB,CAACe,OAAO,IAGzDs5J,GAAWh8D,KAAO,CAACnqF,EAAO4kG,EAAMlsC,EAAQ0tF,EAASttI,EAAUi7G,KACzD,MAAM0yB,EAAat6J,OAAOqB,OAAO1B,IAgBjC,OAdAw6J,GAAM5B,aAAa1kJ,EAAOymJ,GAAY,SAAgB37J,GACpD,OAAOA,IAAQma,MAAMnZ,SACvB,IAAGugB,GACe,iBAATA,IAGT85I,GAAW95J,KAAKo6J,EAAYzmJ,EAAMi9G,QAASrY,EAAMlsC,EAAQ0tF,EAASttI,GAElE2tI,EAAWC,MAAQ1mJ,EAEnBymJ,EAAWj2J,KAAOwP,EAAMxP,KAExBujI,GAAe5nI,OAAO2J,OAAO2wJ,EAAY1yB,GAElC0yB,CAAU,EAGnB,YCrFA,SAASE,GAAYnF,GACnB,OAAO8E,GAAMvE,cAAcP,IAAU8E,GAAM7zJ,QAAQ+uJ,EACrD,CASA,SAASoF,GAAej7J,GACtB,OAAO26J,GAAMtQ,SAASrqJ,EAAK,MAAQA,EAAI4C,MAAM,GAAI,GAAK5C,CACxD,CAWA,SAASk7J,GAAUzyI,EAAMzoB,EAAKmpI,GAC5B,OAAK1gH,EACEA,EAAK7d,OAAO5K,GAAK2lI,KAAI,SAAcw1B,EAAOz7J,GAG/C,OADAy7J,EAAQF,GAAeE,IACfhyB,GAAQzpI,EAAI,IAAMy7J,EAAQ,IAAMA,CAC1C,IAAG1wJ,KAAK0+H,EAAO,IAAM,IALHnpI,CAMpB,CAaA,MAAMo7J,GAAaT,GAAM5B,aAAa4B,GAAO,CAAC,EAAG,MAAM,SAAgBj6I,GACrE,MAAO,WAAWtT,KAAKsT,EACzB,IA8JA,SArIA,SAAoBvhB,EAAKk8J,EAAUnoJ,GACjC,IAAKynJ,GAAM14J,SAAS9C,GAClB,MAAM,IAAID,UAAU,4BAItBm8J,EAAWA,GAAY,IAAyBpD,SAYhD,MAAMqD,GATNpoJ,EAAUynJ,GAAM5B,aAAa7lJ,EAAS,CACpCooJ,YAAY,EACZnyB,MAAM,EACN9iE,SAAS,IACR,GAAO,SAAiBk1F,EAAQh7J,GAEjC,OAAQo6J,GAAM3E,YAAYz1J,EAAOg7J,GACnC,KAE2BD,WAErBE,EAAUtoJ,EAAQsoJ,SAAWC,EAC7BtyB,EAAOj2H,EAAQi2H,KACf9iE,EAAUnzD,EAAQmzD,QAElBq1F,GADQxoJ,EAAQ4V,MAAwB,qBAATA,MAAwBA,OACpC6xI,GAAMR,oBAAoBkB,GAEnD,IAAKV,GAAMvhJ,WAAWoiJ,GACpB,MAAM,IAAIt8J,UAAU,8BAGtB,SAASy8J,EAAaz6J,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAIy5J,GAAMtE,OAAOn1J,GACf,OAAOA,EAAM06J,cAGf,IAAKF,GAAWf,GAAMpE,OAAOr1J,GAC3B,MAAM,IAAIs5J,GAAW,gDAGvB,OAAIG,GAAM1E,cAAc/0J,IAAUy5J,GAAMzD,aAAah2J,GAC5Cw6J,GAA2B,oBAAT5yI,KAAsB,IAAIA,KAAK,CAAC5nB,IAAU26J,OAAOr9D,KAAKt9F,GAG1EA,CACT,CAYA,SAASu6J,EAAev6J,EAAOlB,EAAKyoB,GAClC,IAAI/F,EAAMxhB,EAEV,GAAIA,IAAUunB,GAAyB,kBAAVvnB,EAC3B,GAAIy5J,GAAMtQ,SAASrqJ,EAAK,MAEtBA,EAAMs7J,EAAat7J,EAAMA,EAAI4C,MAAM,GAAI,GAEvC1B,EAAQsP,KAAKE,UAAUxP,QAClB,GACJy5J,GAAM7zJ,QAAQ5F,IAnGvB,SAAqBwhB,GACnB,OAAOi4I,GAAM7zJ,QAAQ4b,KAASA,EAAIy7H,KAAK6c,GACzC,CAiGiCc,CAAY56J,KACnCy5J,GAAMnE,WAAWt1J,IAAUy5J,GAAMtQ,SAASrqJ,EAAK,SAAW0iB,EAAMi4I,GAAMlkB,QAAQv1I,IAYhF,OATAlB,EAAMi7J,GAAej7J,GAErB0iB,EAAInY,SAAQ,SAAchI,EAAIG,IAC1Bi4J,GAAM3E,YAAYzzJ,IAAc,OAAPA,GAAgB84J,EAASvpI,QAEtC,IAAZu0C,EAAmB60F,GAAU,CAACl7J,GAAM0C,EAAOymI,GAAqB,OAAZ9iE,EAAmBrmE,EAAMA,EAAM,KACnF27J,EAAap5J,GAEjB,KACO,EAIX,QAAIy4J,GAAY95J,KAIhBm6J,EAASvpI,OAAOopI,GAAUzyI,EAAMzoB,EAAKmpI,GAAOwyB,EAAaz6J,KAElD,EACT,CAEA,MAAMoyE,EAAQ,GAERyoF,EAAiBv7J,OAAO2J,OAAOixJ,GAAY,CAC/CK,iBACAE,eACAX,iBAyBF,IAAKL,GAAM14J,SAAS9C,GAClB,MAAM,IAAID,UAAU,0BAKtB,OA5BA,SAAS88J,EAAM96J,EAAOunB,GACpB,IAAIkyI,GAAM3E,YAAY90J,GAAtB,CAEA,IAA8B,IAA1BoyE,EAAMpmD,QAAQhsB,GAChB,MAAMoY,MAAM,kCAAoCmP,EAAKhe,KAAK,MAG5D6oE,EAAMjvE,KAAKnD,GAEXy5J,GAAMpwJ,QAAQrJ,GAAO,SAAcqB,EAAIvC,IAKtB,OAJE26J,GAAM3E,YAAYzzJ,IAAc,OAAPA,IAAgBi5J,EAAQ96J,KAChE26J,EAAU94J,EAAIo4J,GAAMzE,SAASl2J,GAAOA,EAAI6yB,OAAS7yB,EAAKyoB,EAAMszI,KAI5DC,EAAMz5J,EAAIkmB,EAAOA,EAAK7d,OAAO5K,GAAO,CAACA,GAEzC,IAEAszE,EAAMh5B,KAlB8B,CAmBtC,CAMA0hH,CAAM78J,GAECk8J,CACT,EC5MA,SAASY,GAAOv+H,GACd,MAAMw+H,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAOj6D,mBAAmBvkE,GAAK9nB,QAAQ,oBAAoB,SAAkBgE,GAC3E,OAAOsiJ,EAAQtiJ,EACjB,GACF,CAUA,SAASuiJ,GAAqBnmI,EAAQ9iB,GACpCrN,KAAKu2J,OAAS,GAEdpmI,GAAUqmI,GAAWrmI,EAAQnwB,KAAMqN,EACrC,CAEA,MAAM/S,GAAYg8J,GAAqBh8J,UAEvCA,GAAU2xB,OAAS,SAAgBjtB,EAAM3D,GACvC2E,KAAKu2J,OAAO/3J,KAAK,CAACQ,EAAM3D,GAC1B,EAEAf,GAAUwC,SAAW,SAAkB25J,GACrC,MAAMC,EAAUD,EAAU,SAASp7J,GACjC,OAAOo7J,EAAQ57J,KAAKmF,KAAM3E,EAAO+6J,GACnC,EAAIA,GAEJ,OAAOp2J,KAAKu2J,OAAOz2B,KAAI,SAAc3tF,GACnC,OAAOukH,EAAQvkH,EAAK,IAAM,IAAMukH,EAAQvkH,EAAK,GAC/C,GAAG,IAAIvtC,KAAK,IACd,EAEA,YC5CA,SAASwxJ,GAAOptJ,GACd,OAAOozF,mBAAmBpzF,GACxB+G,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAAS4mJ,GAASxzI,EAAKgN,EAAQ9iB,GAE5C,IAAK8iB,EACH,OAAOhN,EAGT,MAAMuzI,EAAUrpJ,GAAWA,EAAQ+oJ,QAAUA,GAEvCQ,EAAcvpJ,GAAWA,EAAQwpJ,UAEvC,IAAIC,EAUJ,GAPEA,EADEF,EACiBA,EAAYzmI,EAAQ9iB,GAEpBynJ,GAAMlE,kBAAkBzgI,GACzCA,EAAOrzB,WACP,IAAIw5J,GAAqBnmI,EAAQ9iB,GAASvQ,SAAS45J,GAGnDI,EAAkB,CACpB,MAAMC,EAAgB5zI,EAAIkE,QAAQ,MAEX,IAAnB0vI,IACF5zI,EAAMA,EAAIpmB,MAAM,EAAGg6J,IAErB5zI,KAA8B,IAAtBA,EAAIkE,QAAQ,KAAc,IAAM,KAAOyvI,CACjD,CAEA,OAAO3zI,CACT,CCQA,SAlEA,MACE/nB,WAAAA,GACE4E,KAAKkS,SAAW,EAClB,CAUA8kJ,GAAAA,CAAIC,EAAWC,EAAU7pJ,GAOvB,OANArN,KAAKkS,SAAS1T,KAAK,CACjBy4J,YACAC,WACAC,cAAa9pJ,GAAUA,EAAQ8pJ,YAC/BC,QAAS/pJ,EAAUA,EAAQ+pJ,QAAU,OAEhCp3J,KAAKkS,SAASpY,OAAS,CAChC,CASAu9J,KAAAA,CAAM/zJ,GACAtD,KAAKkS,SAAS5O,KAChBtD,KAAKkS,SAAS5O,GAAM,KAExB,CAOA6P,KAAAA,GACMnT,KAAKkS,WACPlS,KAAKkS,SAAW,GAEpB,CAYAxN,OAAAA,CAAQtH,GACN03J,GAAMpwJ,QAAQ1E,KAAKkS,UAAU,SAAwBvC,GACzC,OAANA,GACFvS,EAAGuS,EAEP,GACF,GCjEF,IACE2nJ,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDvB,IACE7e,WAAW,EACX4G,QAAS,CACPkY,gBCJsC,qBAApBA,gBAAkCA,gBAAkBnB,GDKtElE,SEN+B,qBAAbA,SAA2BA,SAAW,KFOxDnvI,KGP2B,qBAATA,KAAuBA,KAAO,MHSlDy0I,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXhDC,GAAkC,qBAAXp3J,QAA8C,qBAAb3C,SAmBxDg6J,IACHC,GAEuB,qBAAdl+I,WAA6BA,UAAUk+I,QADxCF,IAAiB,CAAC,cAAe,eAAgB,MAAMtwI,QAAQwwI,IAAW,GAFvD,IAC3BA,GAaH,MAAMC,GAE2B,qBAAtBC,mBAEPv8J,gBAAgBu8J,mBACc,oBAAvBv8J,KAAKw8J,cAIVnvI,GAAS8uI,IAAiBp3J,OAAOqoB,SAAS0oB,MAAQ,mBCvCxD,OACKwjH,KACAmD,ICyFL,SA9CA,SAAwBzC,GACtB,SAAS0C,EAAUt1I,EAAMvnB,EAAO1B,EAAQkD,GACtC,IAAImC,EAAO4jB,EAAK/lB,KAEhB,GAAa,cAATmC,EAAsB,OAAO,EAEjC,MAAMm5J,EAAenpJ,OAAOmlJ,UAAUn1J,GAChCo5J,EAASv7J,GAAS+lB,EAAK9oB,OAG7B,GAFAkF,GAAQA,GAAQ81J,GAAM7zJ,QAAQtH,GAAUA,EAAOG,OAASkF,EAEpDo5J,EAOF,OANItD,GAAMnB,WAAWh6J,EAAQqF,GAC3BrF,EAAOqF,GAAQ,CAACrF,EAAOqF,GAAO3D,GAE9B1B,EAAOqF,GAAQ3D,GAGT88J,EAGLx+J,EAAOqF,IAAU81J,GAAM14J,SAASzC,EAAOqF,MAC1CrF,EAAOqF,GAAQ,IASjB,OANek5J,EAAUt1I,EAAMvnB,EAAO1B,EAAOqF,GAAOnC,IAEtCi4J,GAAM7zJ,QAAQtH,EAAOqF,MACjCrF,EAAOqF,GA/Cb,SAAuB6d,GACrB,MAAMvjB,EAAM,CAAC,EACPwI,EAAOnH,OAAOmH,KAAK+a,GACzB,IAAIhjB,EACJ,MAAM6gB,EAAM5Y,EAAKhI,OACjB,IAAIK,EACJ,IAAKN,EAAI,EAAGA,EAAI6gB,EAAK7gB,IACnBM,EAAM2H,EAAKjI,GACXP,EAAIa,GAAO0iB,EAAI1iB,GAEjB,OAAOb,CACT,CAoCqB++J,CAAc1+J,EAAOqF,MAG9Bm5J,CACV,CAEA,GAAIrD,GAAM3C,WAAWqD,IAAaV,GAAMvhJ,WAAWiiJ,EAASvyJ,SAAU,CACpE,MAAM3J,EAAM,CAAC,EAMb,OAJAw7J,GAAMtB,aAAagC,GAAU,CAACx2J,EAAM3D,KAClC68J,EA1EN,SAAuBl5J,GAKrB,OAAO81J,GAAMrB,SAAS,gBAAiBz0J,GAAM8gI,KAAI/rH,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CAkEgBukJ,CAAct5J,GAAO3D,EAAO/B,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECzDA,MAAMgU,GAAW,CAEfirJ,aAAcC,GAEdC,QAAS,CAAC,MAAO,OAAQ,SAEzBC,iBAAkB,CAAC,SAA0B71I,EAAM81I,GACjD,MAAMC,EAAcD,EAAQE,kBAAoB,GAC1CC,EAAqBF,EAAYvxI,QAAQ,qBAAuB,EAChE0xI,EAAkBjE,GAAM14J,SAASymB,GAEnCk2I,GAAmBjE,GAAMvD,WAAW1uI,KACtCA,EAAO,IAAIuvI,SAASvvI,IAKtB,GAFmBiyI,GAAM3C,WAAWtvI,GAGlC,OAAOi2I,EAAqBnuJ,KAAKE,UAAUmuJ,GAAen2I,IAASA,EAGrE,GAAIiyI,GAAM1E,cAAcvtI,IACtBiyI,GAAM5C,SAASrvI,IACfiyI,GAAMrC,SAAS5vI,IACfiyI,GAAMrE,OAAO5tI,IACbiyI,GAAMpE,OAAO7tI,IACbiyI,GAAMjE,iBAAiBhuI,GAEvB,OAAOA,EAET,GAAIiyI,GAAMzC,kBAAkBxvI,GAC1B,OAAOA,EAAKkvD,OAEd,GAAI+iF,GAAMlE,kBAAkB/tI,GAE1B,OADA81I,EAAQM,eAAe,mDAAmD,GACnEp2I,EAAK/lB,WAGd,IAAI6zJ,EAEJ,GAAIoI,EAAiB,CACnB,GAAIH,EAAYvxI,QAAQ,sCAAwC,EAC9D,OCvEO,SAA0BxE,EAAMxV,GAC7C,OAAOmpJ,GAAW3zI,EAAM,IAAIo1I,GAAS1Y,QAAQkY,gBAAmB98J,OAAO2J,OAAO,CAC5EqxJ,QAAS,SAASt6J,EAAOlB,EAAKyoB,EAAMs2I,GAClC,OAAIjB,GAASkB,QAAUrE,GAAM5C,SAAS72J,IACpC2E,KAAKisB,OAAO9xB,EAAKkB,EAAMyB,SAAS,YACzB,GAGFo8J,EAAQtD,eAAel4J,MAAMsC,KAAMvF,UAC5C,GACC4S,GACL,CD4De+rJ,CAAiBv2I,EAAM7iB,KAAKq5J,gBAAgBv8J,WAGrD,IAAK6zJ,EAAamE,GAAMnE,WAAW9tI,KAAU+1I,EAAYvxI,QAAQ,wBAA0B,EAAG,CAC5F,MAAMiyI,EAAYt5J,KAAKu5J,KAAOv5J,KAAKu5J,IAAInH,SAEvC,OAAOoE,GACL7F,EAAa,CAAC,UAAW9tI,GAAQA,EACjCy2I,GAAa,IAAIA,EACjBt5J,KAAKq5J,eAET,CACF,CAEA,OAAIN,GAAmBD,GACrBH,EAAQM,eAAe,oBAAoB,GAxEjD,SAAyBO,EAAUC,EAAQhD,GACzC,GAAI3B,GAAMzE,SAASmJ,GACjB,IAEE,OADCC,GAAU9uJ,KAAKia,OAAO40I,GAChB1E,GAAM9nI,KAAKwsI,EACpB,CAAE,MAAOl5J,IACP,GAAe,gBAAXA,GAAEtB,KACJ,MAAMsB,EAEV,CAGF,OAAQm2J,GAAW9rJ,KAAKE,WAAW2uJ,EACrC,CA4DaE,CAAgB72I,IAGlBA,CACT,GAEA82I,kBAAmB,CAAC,SAA2B92I,GAC7C,MAAM01I,EAAev4J,KAAKu4J,cAAgBjrJ,GAASirJ,aAC7ChB,EAAoBgB,GAAgBA,EAAahB,kBACjDqC,EAAsC,SAAtB55J,KAAKonB,aAE3B,GAAI0tI,GAAM/D,WAAWluI,IAASiyI,GAAMjE,iBAAiBhuI,GACnD,OAAOA,EAGT,GAAIA,GAAQiyI,GAAMzE,SAASxtI,KAAW00I,IAAsBv3J,KAAKonB,cAAiBwyI,GAAgB,CAChG,MACMC,IADoBtB,GAAgBA,EAAajB,oBACPsC,EAEhD,IACE,OAAOjvJ,KAAKia,MAAM/B,EACpB,CAAE,MAAOviB,IACP,GAAIu5J,EAAmB,CACrB,GAAe,gBAAXv5J,GAAEtB,KACJ,MAAM21J,GAAWh8D,KAAKr4F,GAAGq0J,GAAWmF,iBAAkB95J,KAAM,KAAMA,KAAKsnB,UAEzE,MAAMhnB,EACR,CACF,CACF,CAEA,OAAOuiB,CACT,GAMAk3I,QAAS,EAETC,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBZ,IAAK,CACHnH,SAAU6F,GAAS1Y,QAAQ6S,SAC3BnvI,KAAMg1I,GAAS1Y,QAAQt8H,MAGzBm3I,eAAgB,SAAwBpyI,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA2wI,QAAS,CACP0B,OAAQ,CACN,OAAU,oCACV,oBAAgB/8J,KAKtBw3J,GAAMpwJ,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAWw5I,IAChE5wI,GAASqrJ,QAAQza,GAAU,CAAC,CAAC,IAG/B,YE1JMoc,GAAoBxF,GAAMjB,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtB0G,GAAa/1J,OAAO,aAE1B,SAASg2J,GAAgBC,GACvB,OAAOA,GAAUlyJ,OAAOkyJ,GAAQztI,OAAOowB,aACzC,CAEA,SAASs9G,GAAer/J,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGFy5J,GAAM7zJ,QAAQ5F,GAASA,EAAMykI,IAAI46B,IAAkBnyJ,OAAOlN,EACnE,CAgBA,SAASs/J,GAAiB7rF,EAASzzE,EAAOo/J,EAAQ/5G,EAAQk6G,GACxD,OAAI9F,GAAMvhJ,WAAWmtC,GACZA,EAAO7lD,KAAKmF,KAAM3E,EAAOo/J,IAG9BG,IACFv/J,EAAQo/J,GAGL3F,GAAMzE,SAASh1J,GAEhBy5J,GAAMzE,SAAS3vG,IACiB,IAA3BrlD,EAAMgsB,QAAQq5B,GAGnBo0G,GAAMtD,SAAS9wG,GACVA,EAAOn5C,KAAKlM,QADrB,OANA,EASF,CAsBA,MAAMw/J,GACJz/J,WAAAA,CAAYu9J,GACVA,GAAW34J,KAAKqH,IAAIsxJ,EACtB,CAEAtxJ,GAAAA,CAAIozJ,EAAQK,EAAgBC,GAC1B,MAAMv/J,EAAOwE,KAEb,SAASg7J,EAAUp5E,EAAQq5E,EAASC,GAClC,MAAMC,EAAUX,GAAgBS,GAEhC,IAAKE,EACH,MAAM,IAAI1nJ,MAAM,0CAGlB,MAAMtZ,EAAM26J,GAAM5D,QAAQ11J,EAAM2/J,KAE5BhhK,QAAqBmD,IAAd9B,EAAKrB,KAAmC,IAAb+gK,QAAmC59J,IAAb49J,IAAwC,IAAd1/J,EAAKrB,MACzFqB,EAAKrB,GAAO8gK,GAAWP,GAAe94E,GAE1C,CAEA,MAAMw5E,EAAaA,CAACzC,EAASuC,IAC3BpG,GAAMpwJ,QAAQi0J,GAAS,CAAC/2E,EAAQq5E,IAAYD,EAAUp5E,EAAQq5E,EAASC,KAEzE,GAAIpG,GAAMvE,cAAckK,IAAWA,aAAkBz6J,KAAK5E,YACxDggK,EAAWX,EAAQK,QACd,GAAGhG,GAAMzE,SAASoK,KAAYA,EAASA,EAAOztI,UArEtB,iCAAiCzlB,KAqEmBkzJ,EArEVztI,QAsEvEouI,ED1EN,CAAeC,IACb,MAAMC,EAAS,CAAC,EAChB,IAAInhK,EACA6O,EACAnP,EAsBJ,OApBAwhK,GAAcA,EAAWt9J,MAAM,MAAM2G,SAAQ,SAAgBmoB,GAC3DhzB,EAAIgzB,EAAKxF,QAAQ,KACjBltB,EAAM0yB,EAAK84D,UAAU,EAAG9rF,GAAGmzB,OAAOowB,cAClCp0C,EAAM6jB,EAAK84D,UAAU9rF,EAAI,GAAGmzB,QAEvB7yB,GAAQmhK,EAAOnhK,IAAQmgK,GAAkBngK,KAIlC,eAARA,EACEmhK,EAAOnhK,GACTmhK,EAAOnhK,GAAKqE,KAAKwK,GAEjBsyJ,EAAOnhK,GAAO,CAAC6O,GAGjBsyJ,EAAOnhK,GAAOmhK,EAAOnhK,GAAOmhK,EAAOnhK,GAAO,KAAO6O,EAAMA,EAE3D,IAEOsyJ,CACR,EC+CgBC,CAAad,GAASK,QAC5B,GAAIhG,GAAM9D,UAAUyJ,GACzB,IAAK,MAAOtgK,EAAKkB,KAAUo/J,EAAOx3J,UAChC+3J,EAAU3/J,EAAOlB,EAAK4gK,QAGd,MAAVN,GAAkBO,EAAUF,EAAgBL,EAAQM,GAGtD,OAAO/6J,IACT,CAEArC,GAAAA,CAAI88J,EAAQhB,GAGV,GAFAgB,EAASD,GAAgBC,GAEb,CACV,MAAMtgK,EAAM26J,GAAM5D,QAAQlxJ,KAAMy6J,GAEhC,GAAItgK,EAAK,CACP,MAAMkB,EAAQ2E,KAAK7F,GAEnB,IAAKs/J,EACH,OAAOp+J,EAGT,IAAe,IAAXo+J,EACF,OA5GV,SAAqB5hI,GACnB,MAAM2jI,EAAS7gK,OAAOqB,OAAO,MACvBy/J,EAAW,mCACjB,IAAI1nJ,EAEJ,KAAQA,EAAQ0nJ,EAASp7J,KAAKw3B,IAC5B2jI,EAAOznJ,EAAM,IAAMA,EAAM,GAG3B,OAAOynJ,CACT,CAkGiBE,CAAYrgK,GAGrB,GAAIy5J,GAAMvhJ,WAAWkmJ,GACnB,OAAOA,EAAO5+J,KAAKmF,KAAM3E,EAAOlB,GAGlC,GAAI26J,GAAMtD,SAASiI,GACjB,OAAOA,EAAOp5J,KAAKhF,GAGrB,MAAM,IAAIhC,UAAU,yCACtB,CACF,CACF,CAEAuF,GAAAA,CAAI67J,EAAQ7U,GAGV,GAFA6U,EAASD,GAAgBC,GAEb,CACV,MAAMtgK,EAAM26J,GAAM5D,QAAQlxJ,KAAMy6J,GAEhC,SAAUtgK,QAAqBmD,IAAd0C,KAAK7F,IAAwByrJ,IAAW+U,GAAiB36J,EAAMA,KAAK7F,GAAMA,EAAKyrJ,GAClG,CAEA,OAAO,CACT,CAEAx5C,OAAOquD,EAAQ7U,GACb,MAAMpqJ,EAAOwE,KACb,IAAI27J,GAAU,EAEd,SAASC,EAAaX,GAGpB,GAFAA,EAAUT,GAAgBS,GAEb,CACX,MAAM9gK,EAAM26J,GAAM5D,QAAQ11J,EAAMy/J,IAE5B9gK,GAASyrJ,IAAW+U,GAAiBn/J,EAAMA,EAAKrB,GAAMA,EAAKyrJ,YACtDpqJ,EAAKrB,GAEZwhK,GAAU,EAEd,CACF,CAQA,OANI7G,GAAM7zJ,QAAQw5J,GAChBA,EAAO/1J,QAAQk3J,GAEfA,EAAanB,GAGRkB,CACT,CAEAxoJ,KAAAA,CAAMyyI,GACJ,MAAM9jJ,EAAOnH,OAAOmH,KAAK9B,MACzB,IAAInG,EAAIiI,EAAKhI,OACT6hK,GAAU,EAEd,KAAO9hK,KAAK,CACV,MAAMM,EAAM2H,EAAKjI,GACb+rJ,IAAW+U,GAAiB36J,EAAMA,KAAK7F,GAAMA,EAAKyrJ,GAAS,YACtD5lJ,KAAK7F,GACZwhK,GAAU,EAEd,CAEA,OAAOA,CACT,CAEAp7E,SAAAA,CAAUs7E,GACR,MAAMrgK,EAAOwE,KACP24J,EAAU,CAAC,EAsBjB,OApBA7D,GAAMpwJ,QAAQ1E,MAAM,CAAC3E,EAAOo/J,KAC1B,MAAMtgK,EAAM26J,GAAM5D,QAAQyH,EAAS8B,GAEnC,GAAItgK,EAGF,OAFAqB,EAAKrB,GAAOugK,GAAer/J,eACpBG,EAAKi/J,GAId,MAAMqB,EAAaD,EA9JzB,SAAsBpB,GACpB,OAAOA,EAAOztI,OACXowB,cAAcrtC,QAAQ,mBAAmB,CAACpM,EAAGy4G,EAAMvkF,IAC3CukF,EAAK/e,cAAgBxlE,GAElC,CAyJkCkkI,CAAatB,GAAUlyJ,OAAOkyJ,GAAQztI,OAE9D8uI,IAAerB,UACVj/J,EAAKi/J,GAGdj/J,EAAKsgK,GAAcpB,GAAer/J,GAElCs9J,EAAQmD,IAAc,CAAI,IAGrB97J,IACT,CAEA+E,MAAAA,GAAmB,QAAAs0F,EAAA5+F,UAAAX,OAATkiK,EAAO,IAAAh7J,MAAAq4F,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAP0iE,EAAO1iE,GAAA7+F,UAAA6+F,GACf,OAAOt5F,KAAK5E,YAAY2J,OAAO/E,QAASg8J,EAC1C,CAEAjH,MAAAA,CAAOkH,GACL,MAAM3iK,EAAMqB,OAAOqB,OAAO,MAM1B,OAJA84J,GAAMpwJ,QAAQ1E,MAAM,CAAC3E,EAAOo/J,KACjB,MAATp/J,IAA2B,IAAVA,IAAoB/B,EAAImhK,GAAUwB,GAAanH,GAAM7zJ,QAAQ5F,GAASA,EAAMuJ,KAAK,MAAQvJ,EAAM,IAG3G/B,CACT,CAEA,CAACkL,OAAOoH,YACN,OAAOjR,OAAOsI,QAAQjD,KAAK+0J,UAAUvwJ,OAAOoH,WAC9C,CAEA9O,QAAAA,GACE,OAAOnC,OAAOsI,QAAQjD,KAAK+0J,UAAUj1B,KAAI9lC,IAAA,IAAEygE,EAAQp/J,GAAM2+F,EAAA,OAAKygE,EAAS,KAAOp/J,CAAK,IAAEuJ,KAAK,KAC5F,CAEA,IAAKJ,OAAO+7I,eACV,MAAO,cACT,CAEA,WAAO5nD,CAAKq3D,GACV,OAAOA,aAAiBhwJ,KAAOgwJ,EAAQ,IAAIhwJ,KAAKgwJ,EAClD,CAEA,aAAOjrJ,CAAO8xB,GACZ,MAAMqlI,EAAW,IAAIl8J,KAAK62B,GAAO,QAAAslI,EAAA1hK,UAAAX,OADXkiK,EAAO,IAAAh7J,MAAAm7J,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPJ,EAAOI,EAAA,GAAA3hK,UAAA2hK,GAK7B,OAFAJ,EAAQt3J,SAAS/K,GAAWuiK,EAAS70J,IAAI1N,KAElCuiK,CACT,CAEA,eAAOG,CAAS5B,GACd,MAIM6B,GAJYt8J,KAAKu6J,IAAev6J,KAAKu6J,IAAc,CACvD+B,UAAW,CAAC,IAGcA,UACtBhiK,EAAY0F,KAAK1F,UAEvB,SAASiiK,EAAetB,GACtB,MAAME,EAAUX,GAAgBS,GAE3BqB,EAAUnB,MAtNrB,SAAwB7hK,EAAKmhK,GAC3B,MAAM+B,EAAe1H,GAAMd,YAAY,IAAMyG,GAE7C,CAAC,MAAO,MAAO,OAAO/1J,SAAQ+3J,IAC5B9hK,OAAOwB,eAAe7C,EAAKmjK,EAAaD,EAAc,CACpDnhK,MAAO,SAASqhK,EAAMC,EAAMC,GAC1B,OAAO58J,KAAKy8J,GAAY5hK,KAAKmF,KAAMy6J,EAAQiC,EAAMC,EAAMC,EACzD,EACA3iK,cAAc,GACd,GAEN,CA4MQ4iK,CAAeviK,EAAW2gK,GAC1BqB,EAAUnB,IAAW,EAEzB,CAIA,OAFArG,GAAM7zJ,QAAQw5J,GAAUA,EAAO/1J,QAAQ63J,GAAkBA,EAAe9B,GAEjEz6J,IACT,EAGF66J,GAAawB,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpGvH,GAAMrD,kBAAkBoJ,GAAavgK,WAAW,CAAAo8I,EAAUv8I,KAAQ,IAAjB,MAACkB,GAAMq7I,EAClDomB,EAAS3iK,EAAI,GAAGkjG,cAAgBljG,EAAI4C,MAAM,GAC9C,MAAO,CACLY,IAAKA,IAAMtC,EACXgM,GAAAA,CAAI01J,GACF/8J,KAAK88J,GAAUC,CACjB,EACD,IAGHjI,GAAMlB,cAAciH,IAEpB,YC/Re,SAASt7G,GAAcy9G,EAAK11I,GACzC,MAAM4/C,EAASlnE,MAAQsN,GACjBwhE,EAAUxnD,GAAY4/C,EACtByxF,EAAUkC,GAAaliE,KAAK7pB,EAAQ6pF,SAC1C,IAAI91I,EAAOisD,EAAQjsD,KAQnB,OANAiyI,GAAMpwJ,QAAQs4J,GAAK,SAAmB5/J,GACpCylB,EAAOzlB,EAAGvC,KAAKqsE,EAAQrkD,EAAM81I,EAAQp4E,YAAaj5D,EAAWA,EAASU,YAAS1qB,EACjF,IAEAq7J,EAAQp4E,YAED19D,CACT,CCzBe,SAASo6I,GAAS5hK,GAC/B,SAAUA,IAASA,EAAM6hK,WAC3B,CCUA,SAASC,GAAc1xC,EAASvkD,EAAQ0tF,GAEtCD,GAAW95J,KAAKmF,KAAiB,MAAXyrH,EAAkB,WAAaA,EAASkpC,GAAWyI,aAAcl2F,EAAQ0tF,GAC/F50J,KAAKhB,KAAO,eACd,CAEA81J,GAAM9B,SAASmK,GAAexI,GAAY,CACxCuI,YAAY,IAGd,YCXe,SAASG,GAAOhgD,EAASigD,EAAQh2I,GAC9C,MAAM8yI,EAAiB9yI,EAAS4/C,OAAOkzF,eAClC9yI,EAASU,QAAWoyI,IAAkBA,EAAe9yI,EAASU,QAGjEs1I,EAAO,IAAI3I,GACT,mCAAqCrtI,EAASU,OAC9C,CAAC2sI,GAAW4I,gBAAiB5I,GAAWmF,kBAAkBt5J,KAAKsI,MAAMwe,EAASU,OAAS,KAAO,GAC9FV,EAAS4/C,OACT5/C,EAASstI,QACTttI,IAPF+1F,EAAQ/1F,EAUZ,CC4BA,SA9CA,SAAqBk2I,EAAc50J,GACjC40J,EAAeA,GAAgB,GAC/B,MAAMC,EAAQ,IAAIz8J,MAAMw8J,GAClBE,EAAa,IAAI18J,MAAMw8J,GAC7B,IAEIG,EAFAC,EAAO,EACPjuC,EAAO,EAKX,OAFA/mH,OAActL,IAARsL,EAAoBA,EAAM,IAEzB,SAAci1J,GACnB,MAAMlmJ,EAAMC,KAAKD,MAEXmmJ,EAAYJ,EAAW/tC,GAExBguC,IACHA,EAAgBhmJ,GAGlB8lJ,EAAMG,GAAQC,EACdH,EAAWE,GAAQjmJ,EAEnB,IAAI9d,EAAI81H,EACJouC,EAAa,EAEjB,KAAOlkK,IAAM+jK,GACXG,GAAcN,EAAM5jK,KACpBA,GAAQ2jK,EASV,GANAI,GAAQA,EAAO,GAAKJ,EAEhBI,IAASjuC,IACXA,GAAQA,EAAO,GAAK6tC,GAGlB7lJ,EAAMgmJ,EAAgB/0J,EACxB,OAGF,MAAMo1J,EAASF,GAAanmJ,EAAMmmJ,EAElC,OAAOE,EAASx9J,KAAKke,MAAmB,IAAbq/I,EAAoBC,QAAU1gK,CAC3D,CACF,EClBA,SA1BA,SAAkBF,EAAIsmF,GACpB,IAAIu6E,EAAY,EAChB,MAAM77F,EAAY,IAAOshB,EACzB,IAAIumD,EAAQ,KACZ,OAAO,WACL,MAAMi0B,GAAiB,IAATl+J,KAER2X,EAAMC,KAAKD,MACjB,GAAIumJ,GAASvmJ,EAAMsmJ,EAAY77F,EAM7B,OALI6nE,IACFzwH,aAAaywH,GACbA,EAAQ,MAEVg0B,EAAYtmJ,EACLva,EAAGM,MAAM,KAAMjD,WAEnBwvI,IACHA,EAAQj5H,YAAW,KACjBi5H,EAAQ,KACRg0B,EAAYrmJ,KAAKD,MACVva,EAAGM,MAAM,KAAMjD,aACrB2nE,GAAazqD,EAAMsmJ,IAE1B,CACF,EC7BA,YAAgB5rJ,EAAU8rJ,GAA+B,IAAbz6E,EAAIjpF,UAAAX,OAAA,QAAAwD,IAAA7C,UAAA,GAAAA,UAAA,GAAG,EAC7C2jK,EAAgB,EACpB,MAAMC,EAAeC,GAAY,GAAI,KAErC,OAAOzkB,IAASv5I,IACd,MAAMulD,EAASvlD,EAAEulD,OACX04G,EAAQj+J,EAAEk+J,iBAAmBl+J,EAAEi+J,WAAQjhK,EACvCmhK,EAAgB54G,EAASu4G,EACzBjiJ,EAAOkiJ,EAAaI,GAG1BL,EAAgBv4G,EAEhB,MAAMhjC,EAAO,CACXgjC,SACA04G,QACAG,SAAUH,EAAS14G,EAAS04G,OAASjhK,EACrCmgK,MAAOgB,EACPtiJ,KAAMA,QAAc7e,EACpBqhK,UAAWxiJ,GAAQoiJ,GAVL14G,GAAU04G,GAUeA,EAAQ14G,GAAU1pC,OAAO7e,EAChE+qB,MAAO/nB,EACPk+J,iBAA2B,MAATD,GAGpB17I,EAAKs7I,EAAmB,WAAa,WAAY,EAEjD9rJ,EAASwQ,EAAK,GACb6gE,EACJ,EC1BD,GAAeu0E,GAASL,sBAIrB,WACC,MAAMgH,EAAO,kBAAkBr3J,KAAKoS,UAAU6D,WACxCqhJ,EAAiBjhK,SAASE,cAAc,KAC9C,IAAIghK,EAQJ,SAASC,EAAW57I,GAClB,IAAImuB,EAAOnuB,EAWX,OATIy7I,IAEFC,EAAe1nI,aAAa,OAAQma,GACpCA,EAAOutH,EAAevtH,MAGxButH,EAAe1nI,aAAa,OAAQma,GAG7B,CACLA,KAAMutH,EAAevtH,KACrB0tH,SAAUH,EAAeG,SAAWH,EAAeG,SAASjvJ,QAAQ,KAAM,IAAM,GAChFkvJ,KAAMJ,EAAeI,KACrBhpD,OAAQ4oD,EAAe5oD,OAAS4oD,EAAe5oD,OAAOlmG,QAAQ,MAAO,IAAM,GAC3EkxI,KAAM4d,EAAe5d,KAAO4d,EAAe5d,KAAKlxI,QAAQ,KAAM,IAAM,GACpEmvJ,SAAUL,EAAeK,SACzBC,KAAMN,EAAeM,KACrBr2I,SAAiD,MAAtC+1I,EAAe/1I,SAASpgB,OAAO,GACxCm2J,EAAe/1I,SACf,IAAM+1I,EAAe/1I,SAE3B,CAUA,OARAg2I,EAAYC,EAAWx+J,OAAOqoB,SAAS0oB,MAQhC,SAAyB8tH,GAC9B,MAAM9D,EAAUxG,GAAMzE,SAAS+O,GAAeL,EAAWK,GAAcA,EACvE,OAAQ9D,EAAO0D,WAAaF,EAAUE,UAClC1D,EAAO2D,OAASH,EAAUG,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,EC9DJ,GAAehH,GAASL,sBAGtB,CACE9xJ,KAAAA,CAAM9G,EAAM3D,EAAO+zJ,EAASxsI,EAAMy8I,EAAQC,GACxC,MAAM/P,EAAS,CAACvwJ,EAAO,IAAMo9F,mBAAmB/gG,IAEhDy5J,GAAMxE,SAASlB,IAAYG,EAAO/wJ,KAAK,WAAa,IAAIoZ,KAAKw3I,GAASmQ,eAEtEzK,GAAMzE,SAASztI,IAAS2sI,EAAO/wJ,KAAK,QAAUokB,GAE9CkyI,GAAMzE,SAASgP,IAAW9P,EAAO/wJ,KAAK,UAAY6gK,IAEvC,IAAXC,GAAmB/P,EAAO/wJ,KAAK,UAE/BZ,SAAS2xJ,OAASA,EAAO3qJ,KAAK,KAChC,EAEA+qJ,IAAAA,CAAK3wJ,GACH,MAAM+U,EAAQnW,SAAS2xJ,OAAOx7I,MAAM,IAAI0nH,OAAO,aAAez8H,EAAO,cACrE,OAAQ+U,EAAQq+B,mBAAmBr+B,EAAM,IAAM,IACjD,EAEA67I,MAAAA,CAAO5wJ,GACLgB,KAAK8F,MAAM9G,EAAM,GAAI4Y,KAAKD,MAAQ,MACpC,GAMF,CACE7R,KAAAA,GAAS,EACT6pJ,KAAIA,IACK,KAETC,MAAAA,GAAU,GCxBC,SAAS4P,GAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8Bl4J,KDGPm4J,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQ1vJ,QAAQ,SAAU,IAAM,IAAM4vJ,EAAY5vJ,QAAQ,OAAQ,IAClE0vJ,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,MAAMG,GAAmB7P,GAAUA,aAAiB6K,GAAe,IAAK7K,GAAUA,EAWnE,SAAS8P,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAM94F,EAAS,CAAC,EAEhB,SAAS+4F,EAAetmK,EAAQe,EAAQk4J,GACtC,OAAIkC,GAAMvE,cAAc52J,IAAWm7J,GAAMvE,cAAc71J,GAC9Co6J,GAAMnC,MAAM93J,KAAK,CAAC+3J,YAAWj5J,EAAQe,GACnCo6J,GAAMvE,cAAc71J,GACtBo6J,GAAMnC,MAAM,CAAC,EAAGj4J,GACdo6J,GAAM7zJ,QAAQvG,GAChBA,EAAOqC,QAETrC,CACT,CAGA,SAASwlK,EAAoB3iK,EAAGC,EAAGo1J,GACjC,OAAKkC,GAAM3E,YAAY3yJ,GAEXs3J,GAAM3E,YAAY5yJ,QAAvB,EACE0iK,OAAe3iK,EAAWC,EAAGq1J,GAF7BqN,EAAe1iK,EAAGC,EAAGo1J,EAIhC,CAGA,SAASuN,EAAiB5iK,EAAGC,GAC3B,IAAKs3J,GAAM3E,YAAY3yJ,GACrB,OAAOyiK,OAAe3iK,EAAWE,EAErC,CAGA,SAAS4iK,EAAiB7iK,EAAGC,GAC3B,OAAKs3J,GAAM3E,YAAY3yJ,GAEXs3J,GAAM3E,YAAY5yJ,QAAvB,EACE0iK,OAAe3iK,EAAWC,GAF1B0iK,OAAe3iK,EAAWE,EAIrC,CAGA,SAAS6iK,EAAgB9iK,EAAGC,EAAGqd,GAC7B,OAAIA,KAAQmlJ,EACHC,EAAe1iK,EAAGC,GAChBqd,KAAQklJ,EACVE,OAAe3iK,EAAWC,QAD5B,CAGT,CAEA,MAAM+iK,EAAW,CACfn9I,IAAKg9I,EACLjiB,OAAQiiB,EACRt9I,KAAMs9I,EACNV,QAASW,EACT1H,iBAAkB0H,EAClBzG,kBAAmByG,EACnBG,iBAAkBH,EAClBrG,QAASqG,EACTI,eAAgBJ,EAChBK,gBAAiBL,EACjBM,cAAeN,EACf3H,QAAS2H,EACTh5I,aAAcg5I,EACdpG,eAAgBoG,EAChBnG,eAAgBmG,EAChBO,iBAAkBP,EAClBQ,mBAAoBR,EACpBS,WAAYT,EACZlG,iBAAkBkG,EAClBjG,cAAeiG,EACfU,eAAgBV,EAChBW,UAAWX,EACXY,UAAWZ,EACXa,WAAYb,EACZc,YAAad,EACbe,WAAYf,EACZgB,iBAAkBhB,EAClBhG,eAAgBiG,EAChB1H,QAASA,CAACp7J,EAAGC,IAAM0iK,EAAoBL,GAAgBtiK,GAAIsiK,GAAgBriK,IAAI,IASjF,OANAs3J,GAAMpwJ,QAAQ/J,OAAOmH,KAAKnH,OAAO2J,OAAO,CAAC,EAAGy7J,EAASC,KAAW,SAA4BnlJ,GAC1F,MAAM83I,EAAQ2N,EAASzlJ,IAASqlJ,EAC1BmB,EAAc1O,EAAMoN,EAAQllJ,GAAOmlJ,EAAQnlJ,GAAOA,GACvDi6I,GAAM3E,YAAYkR,IAAgB1O,IAAU0N,IAAqBn5F,EAAOrsD,GAAQwmJ,EACnF,IAEOn6F,CACT,CChGA,SAAgBA,IACd,MAAMo6F,EAAYxB,GAAY,CAAC,EAAG54F,GAElC,IAaI0xF,GAbA,KAAC/1I,EAAI,cAAE69I,EAAa,eAAEzG,EAAc,eAAED,EAAc,QAAErB,EAAO,KAAE4I,GAAQD,EAe3E,GAbAA,EAAU3I,QAAUA,EAAUkC,GAAaliE,KAAKggE,GAEhD2I,EAAUn+I,IAAMwzI,GAAS6I,GAAc8B,EAAU7B,QAAS6B,EAAUn+I,KAAM+jD,EAAO/2C,OAAQ+2C,EAAOq5F,kBAG5FgB,GACF5I,EAAQtxJ,IAAI,gBAAiB,SAC3Bm6J,MAAMD,EAAKE,UAAY,IAAM,KAAOF,EAAKxrD,SAAW2rD,SAAStlE,mBAAmBmlE,EAAKxrD,WAAa,MAMlG++C,GAAM3C,WAAWtvI,GACnB,GAAIo1I,GAASL,uBAAyBK,GAASH,+BAC7Ca,EAAQM,oBAAe37J,QAClB,IAAiD,KAA5Cs7J,EAAcD,EAAQE,kBAA6B,CAE7D,MAAO95J,KAASy8J,GAAU5C,EAAcA,EAAY76J,MAAM,KAAK+hI,KAAIw1B,GAASA,EAAMtoI,SAAQ0zB,OAAOkhF,SAAW,GAC5G+2B,EAAQM,eAAe,CAACl6J,GAAQ,yBAA0By8J,GAAQ52J,KAAK,MACzE,CAOF,GAAIqzJ,GAASL,wBACX8I,GAAiB5L,GAAMvhJ,WAAWmtJ,KAAmBA,EAAgBA,EAAcY,IAE/EZ,IAAoC,IAAlBA,GAA2BiB,GAAgBL,EAAUn+I,MAAO,CAEhF,MAAMy+I,EAAY3H,GAAkBD,GAAkBxK,GAAQG,KAAKqK,GAE/D4H,GACFjJ,EAAQtxJ,IAAI4yJ,EAAgB2H,EAEhC,CAGF,OAAON,CACR,EC1CD,GAFwD,qBAAnB15I,gBAEG,SAAUs/C,GAChD,OAAO,IAAIg2C,SAAQ,SAA4BG,EAASigD,GACtD,MAAMuE,EAAUC,GAAc56F,GAC9B,IAAI66F,EAAcF,EAAQh/I,KAC1B,MAAMm/I,EAAiBnH,GAAaliE,KAAKkpE,EAAQlJ,SAASp4E,YAC1D,IACI0hF,GADA,aAAC76I,GAAgBy6I,EAErB,SAAS1+J,IACH0+J,EAAQX,aACVW,EAAQX,YAAYgB,YAAYD,GAG9BJ,EAAQM,QACVN,EAAQM,OAAOz1I,oBAAoB,QAASu1I,EAEhD,CAEA,IAAIrN,EAAU,IAAIhtI,eAOlB,SAASw6I,IACP,IAAKxN,EACH,OAGF,MAAMyN,EAAkBxH,GAAaliE,KACnC,0BAA2Bi8D,GAAWA,EAAQ0N,yBAahDjF,IAAO,SAAkBhiK,GACvBgiH,EAAQhiH,GACR8H,GACF,IAAG,SAAiB0kB,GAClBy1I,EAAOz1I,GACP1kB,GACF,GAfiB,CACf0f,KAHoBuE,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxCwtI,EAAQttI,SAA/BstI,EAAQrtI,aAGRS,OAAQ4sI,EAAQ5sI,OAChB4/H,WAAYgN,EAAQhN,WACpB+Q,QAAS0J,EACTn7F,SACA0tF,YAYFA,EAAU,IACZ,CAlCAA,EAAQ/uJ,KAAKg8J,EAAQ3jB,OAAO7gD,cAAewkE,EAAQ1+I,KAAK,GAGxDyxI,EAAQmF,QAAU8H,EAAQ9H,QAiCtB,cAAenF,EAEjBA,EAAQwN,UAAYA,EAGpBxN,EAAQ9sI,mBAAqB,WACtB8sI,GAAkC,IAAvBA,EAAQ7sI,aAQD,IAAnB6sI,EAAQ5sI,QAAkB4sI,EAAQ2N,aAAwD,IAAzC3N,EAAQ2N,YAAYl7I,QAAQ,WAKjFrW,WAAWoxJ,EACb,EAIFxN,EAAQ4N,QAAU,WACX5N,IAIL0I,EAAO,IAAI3I,GAAW,kBAAmBA,GAAW8N,aAAcZ,EAASjN,IAG3EA,EAAU,KACZ,EAGAA,EAAQ1oB,QAAU,WAGhBoxB,EAAO,IAAI3I,GAAW,gBAAiBA,GAAW+N,YAAab,EAASjN,IAGxEA,EAAU,IACZ,EAGAA,EAAQ+N,UAAY,WAClB,IAAIC,EAAsBf,EAAQ9H,QAAU,cAAgB8H,EAAQ9H,QAAU,cAAgB,mBAC9F,MAAMxB,EAAesJ,EAAQtJ,cAAgBC,GACzCqJ,EAAQe,sBACVA,EAAsBf,EAAQe,qBAEhCtF,EAAO,IAAI3I,GACTiO,EACArK,EAAaf,oBAAsB7C,GAAWkO,UAAYlO,GAAW8N,aACrEZ,EACAjN,IAGFA,EAAU,IACZ,OAGgBt3J,IAAhBykK,GAA6BC,EAAe/I,eAAe,MAGvD,qBAAsBrE,GACxBE,GAAMpwJ,QAAQs9J,EAAejN,UAAU,SAA0B/rJ,EAAK7O,GACpEy6J,EAAQkO,iBAAiB3oK,EAAK6O,EAChC,IAIG8rJ,GAAM3E,YAAY0R,EAAQpB,mBAC7B7L,EAAQ6L,kBAAoBoB,EAAQpB,iBAIlCr5I,GAAiC,SAAjBA,IAClBwtI,EAAQxtI,aAAey6I,EAAQz6I,cAIS,oBAA/By6I,EAAQjB,oBACjBhM,EAAQ/oI,iBAAiB,WAAYk3I,GAAqBlB,EAAQjB,oBAAoB,IAIhD,oBAA7BiB,EAAQlB,kBAAmC/L,EAAQoO,QAC5DpO,EAAQoO,OAAOn3I,iBAAiB,WAAYk3I,GAAqBlB,EAAQlB,oBAGvEkB,EAAQX,aAAeW,EAAQM,UAGjCF,EAAa1oJ,IACNq7I,IAGL0I,GAAQ/jJ,GAAUA,EAAOxa,KAAO,IAAIo+J,GAAc,KAAMj2F,EAAQ0tF,GAAWr7I,GAC3Eq7I,EAAQqO,QACRrO,EAAU,KAAI,EAGhBiN,EAAQX,aAAeW,EAAQX,YAAYgC,UAAUjB,GACjDJ,EAAQM,SACVN,EAAQM,OAAOgB,QAAUlB,IAAeJ,EAAQM,OAAOt2I,iBAAiB,QAASo2I,KAIrF,MAAMjD,EChLK,SAAuB77I,GACpC,MAAMpP,EAAQ,4BAA4B1T,KAAK8iB,GAC/C,OAAOpP,GAASA,EAAM,IAAM,EAC9B,CD6KqBqvJ,CAAcvB,EAAQ1+I,KAEnC67I,IAAsD,IAA1C/G,GAASP,UAAUrwI,QAAQ23I,GACzC1B,EAAO,IAAI3I,GAAW,wBAA0BqK,EAAW,IAAKrK,GAAW4I,gBAAiBr2F,IAM9F0tF,EAAQ3sI,KAAK85I,GAAe,KAC9B,GACF,EEhJA,GA1CuBsB,CAACC,EAASvJ,KAC/B,IAEIoJ,EAFA7lB,EAAa,IAAIimB,gBAIrB,MAAMf,EAAU,SAAUjpJ,GACxB,IAAK4pJ,EAAS,CACZA,GAAU,EACVjB,IACA,MAAMr6I,EAAMtO,aAAkB9F,MAAQ8F,EAASvZ,KAAKwjK,OACpDlmB,EAAW2lB,MAAMp7I,aAAe8sI,GAAa9sI,EAAM,IAAIs1I,GAAct1I,aAAepU,MAAQoU,EAAI4jG,QAAU5jG,GAC5G,CACF,EAEA,IAAIoiH,EAAQ8vB,GAAW/oJ,YAAW,KAChCwxJ,EAAQ,IAAI7N,GAAW,WAAD5vJ,OAAYg1J,EAAO,mBAAmBpF,GAAWkO,WAAW,GACjF9I,GAEH,MAAMmI,EAAcA,KACdoB,IACFr5B,GAASzwH,aAAaywH,GACtBA,EAAQ,KACRq5B,EAAQ5+J,SAAQy9J,IACdA,IACCA,EAAOz1I,oBAAsBy1I,EAAOz1I,oBAAoB,QAAS81I,GAAWL,EAAOD,YAAYM,GAAS,IAE3Gc,EAAU,KACZ,EAGFA,EAAQ5+J,SAASy9J,GAAWA,GAAUA,EAAOt2I,kBAAoBs2I,EAAOt2I,iBAAiB,QAAS22I,KAElG,MAAM,OAACL,GAAU7kB,EAIjB,OAFA6kB,EAAOD,YAAcA,EAEd,CAACC,EAAQ,KACdl4B,GAASzwH,aAAaywH,GACtBA,EAAQ,IAAI,EACZ,ECxCSw5B,GAAc,UAAWC,EAAOC,GAC3C,IAAIjpJ,EAAMgpJ,EAAME,WAEhB,IAAKD,GAAajpJ,EAAMipJ,EAEtB,kBADMD,GAIR,IACI7uI,EADAxsB,EAAM,EAGV,KAAOA,EAAMqS,GACXma,EAAMxsB,EAAMs7J,QACND,EAAM3mK,MAAMsL,EAAKwsB,GACvBxsB,EAAMwsB,CAEV,EAQagvI,GAAcA,CAACC,EAAQH,EAAWI,EAAYC,EAAU5N,KACnE,MAAMxqJ,EAPiBq4J,gBAAiBC,EAAUP,EAAWvN,GAC7D,UAAW,MAAMsN,KAASQ,QACjBT,GAAYnR,YAAYC,OAAOmR,GAASA,QAAetN,EAAO7tJ,OAAOm7J,IAAUC,EAE1F,CAGmBQ,CAAUL,EAAQH,EAAWvN,GAE9C,IAAIqH,EAAQ,EAEZ,OAAO,IAAI2G,eAAe,CACxBrlK,KAAM,QAEN,UAAMslK,CAAK/mB,GACT,MAAM,KAACn6I,EAAI,MAAE9H,SAAeuQ,EAAStK,OAErC,GAAI6B,EAGF,OAFAm6I,EAAWt3I,aACXg+J,IAIF,IAAItpJ,EAAMrf,EAAMuoK,WAChBG,GAAcA,EAAWtG,GAAS/iJ,GAClC4iI,EAAWgnB,QAAQ,IAAIlnF,WAAW/hF,GACpC,EACAke,OAAOiqJ,IACLQ,EAASR,GACF53J,EAAS2sF,WAEjB,CACDgsE,cAAe,GACf,EC3CEC,GAAyBA,CAACjG,EAAOnhK,KACrC,MAAMohK,EAA4B,MAATD,EACzB,OAAQ14G,GAAW70C,YAAW,IAAM5T,EAAG,CACrCohK,mBACAD,QACA14G,YACC,EAGC4+G,GAAoC,oBAAVlmF,OAA2C,oBAAZmmF,SAA8C,oBAAbC,SAC1FC,GAA4BH,IAA8C,oBAAnBL,eAGvDS,GAAaJ,KAA4C,oBAAhBK,aACzCrO,GAA0C,IAAIqO,YAAjCjtI,GAAQ4+H,GAAQL,OAAOv+H,IACtCosI,SAAe,IAAI7mF,iBAAiB,IAAIunF,SAAS9sI,GAAKktI,gBADtD,IAAEtO,GAIN,MAAMuO,GAAwBJ,IAA6B,MACzD,IAAIK,GAAiB,EAErB,MAAMC,EAAiB,IAAIR,QAAQzM,GAASpvI,OAAQ,CAClDuO,KAAM,IAAIgtI,eACVlmB,OAAQ,OACR,UAAIinB,GAEF,OADAF,GAAiB,EACV,MACT,IACCtM,QAAQ/5J,IAAI,gBAEf,OAAOqmK,IAAmBC,CAC3B,EAb0D,GAiBrDE,GAAyBR,MAA+B,MAC5D,IACE,OAAO9P,GAAMjE,iBAAiB,IAAI8T,SAAS,IAAIvtI,KACjD,CAAE,MAAMvP,GACN,CAEH,EAN6D,GAQxDw9I,GAAY,CAChBvB,OAAQsB,IAA0B,CAAEE,GAAQA,EAAIluI,OAG7B,IAAEkuI,GAAvBb,KAAuBa,GAOpB,IAAIX,SANL,CAAC,OAAQ,cAAe,OAAQ,WAAY,UAAUjgK,SAAQ3F,KAC3DsmK,GAAUtmK,KAAUsmK,GAAUtmK,GAAQ+1J,GAAMvhJ,WAAW+xJ,GAAIvmK,IAAUumK,GAAQA,EAAIvmK,KAChF,CAACyuB,EAAG05C,KACF,MAAM,IAAIytF,GAAW,kBAAD5vJ,OAAmBhG,EAAI,sBAAsB41J,GAAW4Q,gBAAiBr+F,EAAO,EACpG,KAIR,MA0BMs+F,GAAoBvB,MAAOtL,EAASvhI,KACxC,MAAMt9B,EAASg7J,GAAMZ,eAAeyE,EAAQ8M,oBAE5C,OAAiB,MAAV3rK,EA7BamqK,UACR,MAAR7sI,EACK,EAGN09H,GAAMpE,OAAOt5H,GACPA,EAAKuqB,KAGXmzG,GAAMR,oBAAoBl9H,UACb,IAAIstI,QAAQttI,GAAM2tI,eAAenB,WAG9C9O,GAAMzC,kBAAkBj7H,GAClBA,EAAKwsI,YAGX9O,GAAMlE,kBAAkBx5H,KACzBA,GAAc,IAGb09H,GAAMzE,SAASj5H,UACFytI,GAAWztI,IAAOwsI,gBADlC,GAQwB8B,CAActuI,GAAQt9B,CAAM,EAGtD,GAAe2qK,IAAoB,OAACR,IAClC,IAAI,IACF9gJ,EAAG,OACH+6H,EAAM,KACNr7H,EAAI,OACJs/I,EAAM,YACNjB,EAAW,QACXnH,EAAO,mBACP6G,EAAkB,iBAClBD,EAAgB,aAChBv5I,EAAY,QACZuxI,EAAO,gBACP8H,EAAkB,cAAa,aAC/BkF,GACE7D,GAAc56F,GAElB9/C,EAAeA,GAAgBA,EAAe,IAAIg2B,cAAgB,OAElE,IAGIwoH,EAAUhR,GAHTiR,EAAgBC,GAAgB3D,GAAUjB,GAAenH,EAC5DsJ,GAAe,CAAClB,EAAQjB,GAAcnH,GAAW,GAInD,MAAMiK,EAAWA,MACd4B,GAAY50J,YAAW,KACtB60J,GAAkBA,EAAe3D,aAAa,IAGhD0D,GAAW,CAAI,EAGjB,IAAIG,EAEJ,IACE,GACEpF,GAAoBqE,IAAoC,QAAX9mB,GAA+B,SAAXA,GACG,KAAnE6nB,QAA6BP,GAAkB7M,EAAS91I,IACzD,CACA,IAMIqE,EANA8+I,EAAW,IAAItB,QAAQvhJ,EAAK,CAC9B+6H,OAAQ,OACR9mH,KAAMvU,EACNsiJ,OAAQ,SAKNrQ,GAAM3C,WAAWtvI,KAAUqE,EAAoB8+I,EAASrN,QAAQh7J,IAAI,kBACtEg7J,EAAQM,eAAe/xI,GAGrB8+I,EAAS5uI,OACXvU,EAAOghJ,GAAYmC,EAAS5uI,KA1GT,MA0GmCotI,GACpDuB,EACAhD,GAAqBpC,IACpB,KAAMkE,IAEb,CAEK/P,GAAMzE,SAASoQ,KAClBA,EAAkBA,EAAkB,OAAS,QAG/C7L,EAAU,IAAI8P,QAAQvhJ,EAAK,IACtBwiJ,EACHxD,OAAQ0D,EACR3nB,OAAQA,EAAO7gD,cACfs7D,QAASA,EAAQp4E,YAAYw0E,SAC7B39H,KAAMvU,EACNsiJ,OAAQ,OACR1E,oBAGF,IAAIn5I,QAAiBi3D,MAAMq2E,GAE3B,MAAMqR,EAAmBb,KAA4C,WAAjBh+I,GAA8C,aAAjBA,GAEjF,GAAIg+I,KAA2BxE,GAAsBqF,GAAmB,CACtE,MAAM54J,EAAU,CAAC,EAEjB,CAAC,SAAU,aAAc,WAAW3I,SAAQmW,IAC1CxN,EAAQwN,GAAQyM,EAASzM,EAAK,IAGhC,MAAMqrJ,EAAwBpR,GAAMZ,eAAe5sI,EAASqxI,QAAQh7J,IAAI,mBAExE2pB,EAAW,IAAIq9I,SACbd,GAAYv8I,EAAS8P,KA7IF,MA6I4BwpI,GAAsB4D,GACnE0B,EACAnD,GAAqBnC,GAAoB,IACxCqF,GAAoBjC,EAAUa,IACjCx3J,EAEJ,CAEA+Z,EAAeA,GAAgB,OAE/B,IAAI++I,QAAqBd,GAAUvQ,GAAM5D,QAAQmU,GAAWj+I,IAAiB,QAAQE,EAAU4/C,GAM/F,OAJC++F,GAAoBjC,IAErB8B,GAAeA,UAEF,IAAI5oD,SAAQ,CAACG,EAASigD,KACjCD,GAAOhgD,EAASigD,EAAQ,CACtBz6I,KAAMsjJ,EACNxN,QAASkC,GAAaliE,KAAKrxE,EAASqxI,SACpC3wI,OAAQV,EAASU,OACjB4/H,WAAYtgI,EAASsgI,WACrB1gF,SACA0tF,WACA,GAEN,CAAE,MAAO/sI,GAGP,GAFAm8I,IAEIn8I,GAAoB,cAAbA,EAAI7oB,MAAwB,SAASuI,KAAKsgB,EAAI4jG,SACvD,MAAM9wH,OAAO2J,OACX,IAAIqwJ,GAAW,gBAAiBA,GAAW+N,YAAax7F,EAAQ0tF,GAChE,CACEM,MAAOrtI,EAAIqtI,OAASrtI,IAK1B,MAAM8sI,GAAWh8D,KAAK9wE,EAAKA,GAAOA,EAAIurF,KAAMlsC,EAAQ0tF,EACtD,CACD,GC1NKwR,GAAgB,CACpBC,KCNF,KDOEp/I,IAAKq/I,GACL/nF,MAAOgoF,IAGTzR,GAAMpwJ,QAAQ0hK,IAAe,CAAChpK,EAAI/B,KAChC,GAAI+B,EAAI,CACN,IACEzC,OAAOwB,eAAeiB,EAAI,OAAQ,CAAC/B,SACrC,CAAE,MAAOiF,IACP,CAEF3F,OAAOwB,eAAeiB,EAAI,cAAe,CAAC/B,SAC5C,KAGF,MAAMmrK,GAAgBhD,GAAM,KAAAz+J,OAAUy+J,GAEhCiD,GAAoBhO,GAAY3D,GAAMvhJ,WAAWklJ,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,GACeiO,IACXA,EAAW5R,GAAM7zJ,QAAQylK,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAAC5sK,GAAU4sK,EACjB,IAAIC,EACAlO,EAEJ,MAAMmO,EAAkB,CAAC,EAEzB,IAAK,IAAI/sK,EAAI,EAAGA,EAAIC,EAAQD,IAAK,CAE/B,IAAIyJ,EAIJ,GALAqjK,EAAgBD,EAAS7sK,GAGzB4+J,EAAUkO,GAELF,GAAiBE,KACpBlO,EAAU2N,IAAe9iK,EAAKiF,OAAOo+J,IAAgBvpH,oBAErC9/C,IAAZm7J,GACF,MAAM,IAAI9D,GAAW,oBAAD5vJ,OAAqBzB,EAAE,MAI/C,GAAIm1J,EACF,MAGFmO,EAAgBtjK,GAAM,IAAMzJ,GAAK4+J,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAMoO,EAAUlsK,OAAOsI,QAAQ2jK,GAC5B9mC,KAAI9lC,IAAA,IAAE12F,EAAI46E,GAAM8b,EAAA,MAAK,WAAAj1F,OAAWzB,EAAE,OACtB,IAAV46E,EAAkB,sCAAwC,gCAAgC,IAG/F,IAAI51E,EAAIxO,EACL+sK,EAAQ/sK,OAAS,EAAI,YAAc+sK,EAAQ/mC,IAAI0mC,IAAc5hK,KAAK,MAAQ,IAAM4hK,GAAaK,EAAQ,IACtG,0BAEF,MAAM,IAAIlS,GACR,wDAA0DrsJ,EAC1D,kBAEJ,CAEA,OAAOmwJ,CAAO,EE3DlB,SAASqO,GAA6B5/F,GAKpC,GAJIA,EAAOg6F,aACTh6F,EAAOg6F,YAAY6F,mBAGjB7/F,EAAOi7F,QAAUj7F,EAAOi7F,OAAOgB,QACjC,MAAM,IAAIhG,GAAc,KAAMj2F,EAElC,CASe,SAAS8/F,GAAgB9/F,GACtC4/F,GAA6B5/F,GAE7BA,EAAOyxF,QAAUkC,GAAaliE,KAAKzxB,EAAOyxF,SAG1CzxF,EAAOrkD,KAAO08B,GAAc1kD,KAC1BqsE,EACAA,EAAOwxF,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAASrxI,QAAQ6/C,EAAOg3E,SAC1Ch3E,EAAOyxF,QAAQM,eAAe,qCAAqC,GAKrE,OAFgByN,GAAoBx/F,EAAOuxF,SAAWnrJ,GAASmrJ,QAExDA,CAAQvxF,GAAQo2C,MAAK,SAA6Bh2F,GAYvD,OAXAw/I,GAA6B5/F,GAG7B5/C,EAASzE,KAAO08B,GAAc1kD,KAC5BqsE,EACAA,EAAOyyF,kBACPryI,GAGFA,EAASqxI,QAAUkC,GAAaliE,KAAKrxE,EAASqxI,SAEvCrxI,CACT,IAAG,SAA4Bk8I,GAe7B,OAdKvG,GAASuG,KACZsD,GAA6B5/F,GAGzBs8F,GAAUA,EAAOl8I,WACnBk8I,EAAOl8I,SAASzE,KAAO08B,GAAc1kD,KACnCqsE,EACAA,EAAOyyF,kBACP6J,EAAOl8I,UAETk8I,EAAOl8I,SAASqxI,QAAUkC,GAAaliE,KAAK6qE,EAAOl8I,SAASqxI,WAIzDz7C,QAAQogD,OAAOkG,EACxB,GACF,CChFO,MAAMyD,GAAU,QCKjBC,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUxiK,SAAQ,CAAC3F,EAAMlF,KAC7EqtK,GAAWnoK,GAAQ,SAAmBixJ,GACpC,cAAcA,IAAUjxJ,GAAQ,KAAOlF,EAAI,EAAI,KAAO,KAAOkF,CAC/D,CAAC,IAGH,MAAMooK,GAAqB,CAAC,EAW5BD,GAAW3O,aAAe,SAAsB6O,EAAWnqK,EAASwuH,GAClE,SAAS47C,EAAcC,EAAKprK,GAC1B,MAAO,uCAAoDorK,EAAM,IAAOprK,GAAQuvH,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAACpwH,EAAOisK,EAAKC,KAClB,IAAkB,IAAdH,EACF,MAAM,IAAIzS,GACR0S,EAAcC,EAAK,qBAAuBrqK,EAAU,OAASA,EAAU,KACvE03J,GAAW6S,gBAef,OAXIvqK,IAAYkqK,GAAmBG,KACjCH,GAAmBG,IAAO,EAE1Bh3J,QAAQi2C,KACN8gH,EACEC,EACA,+BAAiCrqK,EAAU,8CAK1CmqK,GAAYA,EAAU/rK,EAAOisK,EAAKC,EAAY,CAEzD,EAmCA,UACEE,cAxBF,SAAuBp6J,EAASq6J,EAAQC,GACtC,GAAuB,kBAAZt6J,EACT,MAAM,IAAIsnJ,GAAW,4BAA6BA,GAAWiT,sBAE/D,MAAM9lK,EAAOnH,OAAOmH,KAAKuL,GACzB,IAAIxT,EAAIiI,EAAKhI,OACb,KAAOD,KAAM,GAAG,CACd,MAAMytK,EAAMxlK,EAAKjI,GACXutK,EAAYM,EAAOJ,GACzB,GAAIF,EAAJ,CACE,MAAM/rK,EAAQgS,EAAQi6J,GAChBnpK,OAAmBb,IAAVjC,GAAuB+rK,EAAU/rK,EAAOisK,EAAKj6J,GAC5D,IAAe,IAAXlP,EACF,MAAM,IAAIw2J,GAAW,UAAY2S,EAAM,YAAcnpK,EAAQw2J,GAAWiT,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAIhT,GAAW,kBAAoB2S,EAAK3S,GAAWkT,eAE7D,CACF,EAIEX,eC9EIA,GAAaE,GAAUF,WAS7B,MAAMY,GACJ1sK,WAAAA,CAAY2sK,GACV/nK,KAAKsN,SAAWy6J,EAChB/nK,KAAKgoK,aAAe,CAClBpT,QAAS,IAAIqT,GACb3gJ,SAAU,IAAI2gJ,GAElB,CAUA,aAAMrT,CAAQsT,EAAahhG,GACzB,IACE,aAAalnE,KAAKgmK,SAASkC,EAAahhG,EAC1C,CAAE,MAAOr/C,GACP,GAAIA,aAAepU,MAAO,CACxB,IAAI00J,EAEJ10J,MAAMohJ,kBAAoBphJ,MAAMohJ,kBAAkBsT,EAAQ,CAAC,GAAMA,EAAQ,IAAI10J,MAG7E,MAAMg6D,EAAQ06F,EAAM16F,MAAQ06F,EAAM16F,MAAM19D,QAAQ,QAAS,IAAM,GAC/D,IACO8X,EAAI4lD,MAGEA,IAAUllE,OAAOsf,EAAI4lD,OAAO+2E,SAAS/2E,EAAM19D,QAAQ,YAAa,OACzE8X,EAAI4lD,OAAS,KAAOA,GAHpB5lD,EAAI4lD,MAAQA,CAKhB,CAAE,MAAOntE,IACP,CAEJ,CAEA,MAAMunB,CACR,CACF,CAEAm+I,QAAAA,CAASkC,EAAahhG,GAGO,kBAAhBghG,GACThhG,EAASA,GAAU,CAAC,GACb/jD,IAAM+kJ,EAEbhhG,EAASghG,GAAe,CAAC,EAG3BhhG,EAAS44F,GAAY9/J,KAAKsN,SAAU45D,GAEpC,MAAM,aAACqxF,EAAY,iBAAEgI,EAAgB,QAAE5H,GAAWzxF,OAE7B5pE,IAAjBi7J,GACF6O,GAAUK,cAAclP,EAAc,CACpCjB,kBAAmB4P,GAAW3O,aAAa2O,GAAWkB,SACtD7Q,kBAAmB2P,GAAW3O,aAAa2O,GAAWkB,SACtD5Q,oBAAqB0P,GAAW3O,aAAa2O,GAAWkB,WACvD,GAGmB,MAApB7H,IACEzL,GAAMvhJ,WAAWgtJ,GACnBr5F,EAAOq5F,iBAAmB,CACxB1J,UAAW0J,GAGb6G,GAAUK,cAAclH,EAAkB,CACxCnK,OAAQ8Q,GAAWmB,SACnBxR,UAAWqQ,GAAWmB,WACrB,IAKPnhG,EAAOg3E,QAAUh3E,EAAOg3E,QAAUl+I,KAAKsN,SAAS4wI,QAAU,OAAO9gG,cAGjE,IAAIkrH,EAAiB3P,GAAW7D,GAAMnC,MACpCgG,EAAQ0B,OACR1B,EAAQzxF,EAAOg3E,SAGjBya,GAAW7D,GAAMpwJ,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjDw5I,WACQya,EAAQza,EAAO,IAI1Bh3E,EAAOyxF,QAAUkC,GAAa91J,OAAOujK,EAAgB3P,GAGrD,MAAM4P,EAA0B,GAChC,IAAIC,GAAiC,EACrCxoK,KAAKgoK,aAAapT,QAAQlwJ,SAAQ,SAAoC+jK,GACjC,oBAAxBA,EAAYrR,UAA0D,IAAhCqR,EAAYrR,QAAQlwF,KAIrEshG,EAAiCA,GAAkCC,EAAYtR,YAE/EoR,EAAwBlqH,QAAQoqH,EAAYxR,UAAWwR,EAAYvR,UACrE,IAEA,MAAMwR,EAA2B,GAKjC,IAAIC,EAJJ3oK,KAAKgoK,aAAa1gJ,SAAS5iB,SAAQ,SAAkC+jK,GACnEC,EAAyBlqK,KAAKiqK,EAAYxR,UAAWwR,EAAYvR,SACnE,IAGA,IACIx8I,EADA7gB,EAAI,EAGR,IAAK2uK,EAAgC,CACnC,MAAMI,EAAQ,CAAC5B,GAAgBp8I,KAAK5qB,WAAO1C,GAO3C,IANAsrK,EAAMvqH,QAAQ3gD,MAAMkrK,EAAOL,GAC3BK,EAAMpqK,KAAKd,MAAMkrK,EAAOF,GACxBhuJ,EAAMkuJ,EAAM9uK,OAEZ6uK,EAAUzrD,QAAQG,QAAQn2C,GAEnBrtE,EAAI6gB,GACTiuJ,EAAUA,EAAQrrD,KAAKsrD,EAAM/uK,KAAM+uK,EAAM/uK,MAG3C,OAAO8uK,CACT,CAEAjuJ,EAAM6tJ,EAAwBzuK,OAE9B,IAAIwnK,EAAYp6F,EAIhB,IAFArtE,EAAI,EAEGA,EAAI6gB,GAAK,CACd,MAAMmuJ,EAAcN,EAAwB1uK,KACtCivK,EAAaP,EAAwB1uK,KAC3C,IACEynK,EAAYuH,EAAYvH,EAC1B,CAAE,MAAO9yJ,GACPs6J,EAAWjuK,KAAKmF,KAAMwO,GACtB,KACF,CACF,CAEA,IACEm6J,EAAU3B,GAAgBnsK,KAAKmF,KAAMshK,EACvC,CAAE,MAAO9yJ,GACP,OAAO0uG,QAAQogD,OAAO9uJ,EACxB,CAKA,IAHA3U,EAAI,EACJ6gB,EAAMguJ,EAAyB5uK,OAExBD,EAAI6gB,GACTiuJ,EAAUA,EAAQrrD,KAAKorD,EAAyB7uK,KAAM6uK,EAAyB7uK,MAGjF,OAAO8uK,CACT,CAEAI,MAAAA,CAAO7hG,GAGL,OAAOyvF,GADU6I,IADjBt4F,EAAS44F,GAAY9/J,KAAKsN,SAAU45D,IACEu4F,QAASv4F,EAAO/jD,KAC5B+jD,EAAO/2C,OAAQ+2C,EAAOq5F,iBAClD,EAIFzL,GAAMpwJ,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6Bw5I,GAE/E4pB,GAAMxtK,UAAU4jJ,GAAU,SAAS/6H,EAAK+jD,GACtC,OAAOlnE,KAAK40J,QAAQkL,GAAY54F,GAAU,CAAC,EAAG,CAC5Cg3E,SACA/6H,MACAN,MAAOqkD,GAAU,CAAC,GAAGrkD,OAEzB,CACF,IAEAiyI,GAAMpwJ,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+Bw5I,GAGrE,SAAS8qB,EAAmBC,GAC1B,OAAO,SAAoB9lJ,EAAKN,EAAMqkD,GACpC,OAAOlnE,KAAK40J,QAAQkL,GAAY54F,GAAU,CAAC,EAAG,CAC5Cg3E,SACAya,QAASsQ,EAAS,CAChB,eAAgB,uBACd,CAAC,EACL9lJ,MACAN,SAEJ,CACF,CAEAilJ,GAAMxtK,UAAU4jJ,GAAU8qB,IAE1BlB,GAAMxtK,UAAU4jJ,EAAS,QAAU8qB,GAAmB,EACxD,IAEA,YCxNA,MAAME,GACJ9tK,WAAAA,CAAY+tK,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAI9vK,UAAU,gCAGtB,IAAI+vK,EAEJppK,KAAK2oK,QAAU,IAAIzrD,SAAQ,SAAyBG,GAClD+rD,EAAiB/rD,CACnB,IAEA,MAAMi4C,EAAQt1J,KAGdA,KAAK2oK,QAAQrrD,MAAK/jG,IAChB,IAAK+7I,EAAM+T,WAAY,OAEvB,IAAIxvK,EAAIy7J,EAAM+T,WAAWvvK,OAEzB,KAAOD,KAAM,GACXy7J,EAAM+T,WAAWxvK,GAAG0f,GAEtB+7I,EAAM+T,WAAa,IAAI,IAIzBrpK,KAAK2oK,QAAQrrD,KAAOgsD,IAClB,IAAIC,EAEJ,MAAMZ,EAAU,IAAIzrD,SAAQG,IAC1Bi4C,EAAM4N,UAAU7lD,GAChBksD,EAAWlsD,CAAO,IACjBC,KAAKgsD,GAMR,OAJAX,EAAQpvJ,OAAS,WACf+7I,EAAM4M,YAAYqH,EACpB,EAEOZ,CAAO,EAGhBQ,GAAS,SAAgB19C,EAASvkD,EAAQ0tF,GACpCU,EAAMkO,SAKVlO,EAAMkO,OAAS,IAAIrG,GAAc1xC,EAASvkD,EAAQ0tF,GAClDwU,EAAe9T,EAAMkO,QACvB,GACF,CAKAuD,gBAAAA,GACE,GAAI/mK,KAAKwjK,OACP,MAAMxjK,KAAKwjK,MAEf,CAMAN,SAAAA,CAAU7wJ,GACJrS,KAAKwjK,OACPnxJ,EAASrS,KAAKwjK,QAIZxjK,KAAKqpK,WACPrpK,KAAKqpK,WAAW7qK,KAAK6T,GAErBrS,KAAKqpK,WAAa,CAACh3J,EAEvB,CAMA6vJ,WAAAA,CAAY7vJ,GACV,IAAKrS,KAAKqpK,WACR,OAEF,MAAMxsK,EAAQmD,KAAKqpK,WAAWhiJ,QAAQhV,IACvB,IAAXxV,GACFmD,KAAKqpK,WAAWn2J,OAAOrW,EAAO,EAElC,CAMA,aAAOnC,GACL,IAAI6e,EAIJ,MAAO,CACL+7I,MAJY,IAAI4T,IAAY,SAAkBzrK,GAC9C8b,EAAS9b,CACX,IAGE8b,SAEJ,EAGF,YCxHA,MAAMiwJ,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZx0C,GAAI,IACJy0C,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjC3yK,OAAOsI,QAAQumK,IAAgB9kK,SAAQs1F,IAAkB,IAAhB7/F,EAAKkB,GAAM2+F,EAClDwvE,GAAenuK,GAASlB,CAAG,IAG7B,YCxBA,MAAMozK,GAnBN,SAAS3yE,EAAe4yE,GACtB,MAAM1+F,EAAU,IAAIg5F,GAAM0F,GACpBr0K,EAAWyxB,GAAKk9I,GAAMxtK,UAAUs6J,QAAS9lF,GAa/C,OAVAgmF,GAAMn8C,OAAOx/G,EAAU2uK,GAAMxtK,UAAWw0E,EAAS,CAACmiF,YAAY,IAG9D6D,GAAMn8C,OAAOx/G,EAAU21E,EAAS,KAAM,CAACmiF,YAAY,IAGnD93J,EAAS6C,OAAS,SAAgB+rK,GAChC,OAAOntE,EAAeklE,GAAY0N,EAAezF,GACnD,EAEO5uK,CACT,CAGcyhG,CAAettF,IAG7BigK,GAAMzF,MAAQA,GAGdyF,GAAMpQ,cAAgBA,GACtBoQ,GAAMrE,YAAcA,GACpBqE,GAAMtQ,SAAWA,GACjBsQ,GAAMtG,QAAUA,GAChBsG,GAAM/W,WAAaA,GAGnB+W,GAAM5Y,WAAaA,GAGnB4Y,GAAME,OAASF,GAAMpQ,cAGrBoQ,GAAMG,IAAM,SAAaC,GACvB,OAAOzwD,QAAQwwD,IAAIC,EACrB,EAEAJ,GAAMK,OC9CS,SAAgBlmJ,GAC7B,OAAO,SAAc7K,GACnB,OAAO6K,EAAShqB,MAAM,KAAMmf,EAC9B,CACF,ED6CA0wJ,GAAMM,aE7DS,SAAsB1lJ,GACnC,OAAO2sI,GAAM14J,SAAS+rB,KAAsC,IAAzBA,EAAQ0lJ,YAC7C,EF8DAN,GAAMzN,YAAcA,GAEpByN,GAAM1S,aAAeA,GAErB0S,GAAMO,WAAa9d,GAASgJ,GAAelE,GAAMvD,WAAWvB,GAAS,IAAIoC,SAASpC,GAASA,GAE3Fud,GAAMQ,WAAarH,GAEnB6G,GAAM/D,eAAiBA,GAEvB+D,GAAM9zK,QAAU8zK,GAGhB,4CGrFA,MAAMS,IAAc32B,EAAAA,EAAAA,iBAEP42B,GAAej0E,IAAmB,IAAlB,SAAEjhB,GAAUihB,EACvC,MAAOk0E,EAAaC,IAAkBzkD,EAAAA,EAAAA,WAAS,KAC7C,MAAM4rC,EAAQ8Y,GAAQzwK,IAAI,SACpB0wK,EAAWD,GAAQzwK,IAAI,YACvB2wK,EAASF,GAAQzwK,IAAI,UACrB4wK,EAAWH,GAAQzwK,IAAI,YACvB6wK,EAAgBJ,GAAQzwK,IAAI,iBAElC,OAAI23J,GAAS+Y,GAAYC,GAAUC,EAC1B,CACLjZ,QACA+Y,WACAC,SACAC,WACAC,iBAGK,IACT,KAGKC,EAAYC,IAAiBhlD,EAAAA,EAAAA,WAAS,MAClC0kD,GAAQzwK,IAAI,WAwDvB,OACEgxK,EAAAA,GAAAA,KAACX,GAAYx2B,SAAQ,CAACn8I,MAAO,CAAEozK,aAAYG,MAtD/B3K,UACZ,IACE,MAAM38I,QAAiBimJ,GAAMsB,KAAK,4BAA6B3rK,EAAQ,CACrEy1J,QAAS,CACP,eAAgB,sBAIpBroJ,QAAQ45F,IAAI,WAAY5iF,EAASzE,MAEjC,MAAM,MAAEyyI,EAAK,SAAE+Y,EAAQ,OAAEC,EAAM,SAAEC,EAAQ,cAAEC,GACzClnJ,EAASzE,KAUX,OARAurJ,GAAQ/mK,IAAI,QAASiuJ,EAAO,CAAElG,QAAS,EAAI,KAC3Cgf,GAAQ/mK,IAAI,WAAYgnK,EAAU,CAAEjf,QAAS,EAAI,KACjDgf,GAAQ/mK,IAAI,SAAUinK,EAAQ,CAAElf,QAAS,EAAI,KAC7Cgf,GAAQ/mK,IAAI,WAAYknK,EAAU,CAAEnf,QAAS,EAAI,KACjDgf,GAAQ/mK,IAAI,gBAAiBmnK,EAAe,CAAEpf,QAAS,EAAI,KAE3Dsf,GAAc,GACdP,EAAe,CAAE7Y,QAAO+Y,WAAUC,SAAQC,WAAUC,kBAC7ClnJ,CACT,CAAE,MAAO9Y,GAEP,MADA8B,QAAQ9B,MAAM,kCAAmCA,GAC3CA,CACR,GA6BkDsgK,OA1BrCA,KACbJ,GAAc,GACdP,EAAe,MACfC,GAAQxe,OAAO,SACfwe,GAAQxe,OAAO,YACfwe,GAAQxe,OAAO,UACfwe,GAAQxe,OAAO,WAAW,EAoBgCse,eAAcn1F,SACrEA,GACoB,EAIdg2F,GAAUA,KACdzlD,EAAAA,EAAAA,YAAW0kD,IC3Fb,ICCIgB,GAAiB,CAC1BjuJ,WAAOzjB,EACPqkD,UAAMrkD,EACNyqE,eAAWzqE,EACXmI,WAAOnI,EACPqd,UAAMrd,GAEG2xK,GAAcz3E,EAAAA,eAAuBA,EAAAA,cAAoBw3E,ICRhEE,GAAoC,WAQtC,OAPAA,GAAWv0K,OAAO2J,QAAU,SAAU4I,GACpC,IAAK,IAAI5E,EAAGzO,EAAI,EAAGsT,EAAI1S,UAAUX,OAAQD,EAAIsT,EAAGtT,IAE9C,IAAK,IAAIgW,KADTvH,EAAI7N,UAAUZ,GACOc,OAAOL,UAAUM,eAAeC,KAAKyN,EAAGuH,KAAI3C,EAAE2C,GAAKvH,EAAEuH,IAE5E,OAAO3C,CACT,EACOgiK,GAASxxK,MAAMsC,KAAMvF,UAC9B,EACI00K,GAAgC,SAAU7mK,EAAGhI,GAC/C,IAAI4M,EAAI,CAAC,EACT,IAAK,IAAI2C,KAAKvH,EAAO3N,OAAOL,UAAUM,eAAeC,KAAKyN,EAAGuH,IAAMvP,EAAE+mB,QAAQxX,GAAK,IAAG3C,EAAE2C,GAAKvH,EAAEuH,IAC9F,GAAS,MAALvH,GAAqD,oBAAjC3N,OAAOkM,sBAA2C,KAAIhN,EAAI,EAAb,IAAgBgW,EAAIlV,OAAOkM,sBAAsByB,GAAIzO,EAAIgW,EAAE/V,OAAQD,IAClIyG,EAAE+mB,QAAQxX,EAAEhW,IAAM,GAAKc,OAAOL,UAAUyG,qBAAqBlG,KAAKyN,EAAGuH,EAAEhW,MAAKqT,EAAE2C,EAAEhW,IAAMyO,EAAEuH,EAAEhW,IADuB,CAGvH,OAAOqT,CACT,EAGA,SAASkiK,GAAaC,GACpB,OAAOA,GAAQA,EAAKvvC,KAAI,SAAUx9E,EAAMzoD,GACtC,OAAO29F,EAAAA,cAAoBl1C,EAAK56C,IAAKwnK,GAAS,CAC5C/0K,IAAKN,GACJyoD,EAAK3nC,MAAOy0J,GAAa9sH,EAAK+lD,OACnC,GACF,CACO,SAASinE,GAAQzsJ,GAEtB,OAAO,SAAUjpB,GACf,OAAO49F,EAAAA,cAAoB+3E,GAAUL,GAAS,CAC5Cv0J,KAAMu0J,GAAS,CAAC,EAAGrsJ,EAAKlI,OACvB/gB,GAAQw1K,GAAavsJ,EAAKwlF,OAC/B,CACF,CACO,SAASknE,GAAS31K,GACvB,IAAI48B,EAAO,SAAUg5I,GACnB,IAKIznG,EALAptD,EAAO/gB,EAAM+gB,KACfgnC,EAAO/nD,EAAM+nD,KACb0lB,EAAQztE,EAAMytE,MACdooG,EAAWN,GAAOv1K,EAAO,CAAC,OAAQ,OAAQ,UACxC81K,EAAe/tH,GAAQ6tH,EAAK7tH,MAAQ,MAIxC,OAFI6tH,EAAKznG,YAAWA,EAAYynG,EAAKznG,WACjCnuE,EAAMmuE,YAAWA,GAAaA,EAAYA,EAAY,IAAM,IAAMnuE,EAAMmuE,WACrEyvB,EAAAA,cAAoB,MAAO03E,GAAS,CACzCriG,OAAQ,eACRC,KAAM,eACN6L,YAAa,KACZ62F,EAAK70J,KAAMA,EAAM80J,EAAU,CAC5B1nG,UAAWA,EACXtiE,MAAOypK,GAASA,GAAS,CACvBnuJ,MAAOnnB,EAAMmnB,OAASyuJ,EAAKzuJ,OAC1ByuJ,EAAK/pK,OAAQ7L,EAAM6L,OACtBsL,OAAQ2+J,EACRrmJ,MAAOqmJ,EACPC,MAAO,+BACLtoG,GAASmwB,EAAAA,cAAoB,QAAS,KAAMnwB,GAAQztE,EAAMm/E,SAChE,EACA,YAAuBz7E,IAAhB2xK,GAA4Bz3E,EAAAA,cAAoBy3E,GAAYx3B,SAAU,MAAM,SAAU+3B,GAC3F,OAAOh5I,EAAKg5I,EACd,IAAKh5I,EAAKw4I,GACZ,CCoXO,SAASY,GAAUh2K,GACxB,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,aAAa,MAAQ,CAAC,CAAC,IAAM,IAAI,KAAO,CAAC,GAAK,UAAU,MAAQ,CAAC,CAAC,IAAM,IAAI,KAAO,CAAC,EAAE,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,yRAAyR,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,wNAAndA,CAA4qB11K,EACrrB,CA8LO,SAASi2K,GAAUj2K,GACxB,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,MAAM,GAAK,SAAS,EAAI,MAAM,EAAI,MAAM,QAAU,YAAY,MAAQ,oCAAoC,MAAQ,CAAC,CAAC,IAAM,IAAI,KAAO,CAAC,EAAE,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,iWAAlNA,CAAojB11K,EAC7jB,CC1mBA,MA2JA,GA3JeogG,IAAwB,IAAvB,cAAEzyC,GAAeyyC,EAC/B,MAAO81E,EAAaC,IAAkBrmD,EAAAA,EAAAA,WAAS,IACzC,OAAEolD,GAAWC,MACb,YAAEb,GAAgBa,KAKlBnmJ,EAAW6/H,IACX5L,EAAYj6H,GACTgG,EAASE,WAAalG,EAGzBotJ,EAAgBA,KACpBD,GAAgBD,EAAY,EAE9B,OACEG,EAAAA,GAAAA,MAAA,UAAQloG,UAAWxgB,EAAgB,GAAK,YAAYwxB,SAAA,EAClDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,wBAAuBgR,SAAA,EACpC41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,eAAcgR,UAClC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKuqK,GAAMC,IAAI,oBAEtBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,WAAUgR,SAAA,EACvBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,sBAAqBgR,SAAA,EAClC41F,EAAAA,GAAAA,KAACkB,GAAQ,CAACluH,KAAM,GAAIomB,UAAU,iBAC9B4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,2BACZroG,UAAU,eACVw5B,UAAQ,EACR97F,MAAO,CAACsb,MAAM,eAGlBkvJ,EAAAA,GAAAA,MAAA,OAAKI,MAAM,0BAAyBt3F,SAAA,EAClC41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,oBAAmBynC,SAAC,iCAC5B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAGynC,SAAC,yBACZ41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,oBAAmBynC,SAAC,8BAC5B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAGynC,SAAC,8BAGhBk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,WAAUgR,SAAA,EACtB41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,WAAWy2B,UAAW80E,EAAS,YAAc,SAAW,GAAG9jE,SAAC,eAItE41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KACEr9H,KAAK,uBACLy2B,UAAW80E,EAAS,wBAA0B,SAAW,GAAG9jE,SAC7D,iBAIH41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KACEr9H,KAAK,eACLy2B,UAAW80E,EAAS,gBAAkB,SAAW,GAAG9jE,SACrD,qBAKJm1F,GACC+B,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1Bk3F,EAAAA,GAAAA,MAAA,KAAAl3F,SAAA,CAAG,SAAOm1F,EAAYK,aACtB0B,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mCAAkCgR,SAAA,CACf,MAApB,OAAXm1F,QAAW,IAAXA,OAAW,EAAXA,EAAaM,gBACZG,EAAAA,GAAAA,KAAA,OACEhpK,IAAKuoK,EAAYM,cACjB2B,IAAI,OACJpoG,UAAU,UAGZ4mG,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK2qK,GAAMH,IAAI,OAAOpoG,UAAU,UAEvCkoG,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,WAAUynC,SAAC,aACnB41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,YAAWynC,SAAC,cACpB41F,EAAAA,GAAAA,KAAA,KACEr9H,KAAI,GAAAvsC,OACuB,YAAzBmpK,EAAYG,SACR,eACA,gBAENj+C,QAhFKmgD,KACnBzB,GAAQ,EA+E4B/1F,SACvB,qBAOPk3F,EAAAA,GAAAA,MAAA,OAAKI,MAAM,aAAYt3F,SAAA,EACrBk3F,EAAAA,GAAAA,MAAA,OAAKI,MAAM,WAAUt3F,SAAA,EACnB41F,EAAAA,GAAAA,KAAA,UAAQ0B,MAAM,6BAA4Bt3F,SAAC,WAC3Ck3F,EAAAA,GAAAA,MAAA,OAAKI,MAAM,mBAAkBt3F,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,eAAcynC,SAAC,aACvB41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,cAAaynC,SAAC,qBAG1Bk3F,EAAAA,GAAAA,MAAA,OAAKI,MAAM,WAAUt3F,SAAA,EACnB41F,EAAAA,GAAAA,KAAA,UAAQ0B,MAAM,yBAAwBt3F,SAAC,cACvCk3F,EAAAA,GAAAA,MAAA,OAAKI,MAAM,mBAAkBt3F,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,kBAAiBynC,SAAC,aAC1B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,iBAAgBynC,SAAC,wBAOjC41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBAAqBqoD,QAAS4/C,EAAcj3F,UACzD41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAKmqK,EAAcU,GAAgBC,GACnCN,IAAI,sBAGRxB,EAAAA,GAAAA,KAAA,OACE5mG,UAAS,iCAAAhjE,OACN+qK,EAAc,UAAY,IAAK/2F,UAElCk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KACEr9H,KAAK,WACLy2B,UAAW80E,EAAS,YAAc,SAAW,GAAG9jE,SACjD,eAIH41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KACEr9H,KAAK,uBACLy2B,UAAW80E,EAAS,wBAA0B,SAAW,GAAG9jE,SAC7D,2BAIH41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KACEr9H,KAAK,eACLy2B,UAAW80E,EAAS,gBAAkB,SAAW,GAAG9jE,SACrD,0BAOR+2F,IAAenB,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,UAAUqoD,QAAS4/C,MAC3C,ECtJb,GARsBU,KAElB/B,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,eAAcgR,UAC3B41F,EAAAA,GAAAA,KAAA,SAAOhpK,IAAI,mCAAmC0jI,UAAQ,EAACn6G,MAAI,EAACyhJ,OAAK,uCCAvE,MAuBA,GAvBiB32E,IAAgB,IAAf,MAAEl7C,GAAOk7C,EASzB,OACE20E,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBAAoBgR,UACjC41F,EAAAA,GAAAA,KAAC/+B,GAAAA,EAAM,CATTtM,MAAM,EACNpB,UAAU,EACVl1C,MAAO,IACPq1C,aAAc,EACd6C,eAAgB,EAChBxB,YAAY,EAIgB3qD,SACvBj6B,EAAMghF,KAAK5oD,IACV+4F,EAAAA,GAAAA,MAAA,OAAmBloG,UAAU,iBAAgBgR,SAAA,EAC3C41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKuxE,EAAK60D,MAAOhkE,UAAU,iBAAiBooG,IAAI,cACrDxB,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,iBAAgBgR,SAAE7B,EAAK7P,UAF7B6P,EAAK5zE,SAMf,ECGV,GAtBqB02F,IAAgB,IAAf,MAAEl7C,GAAOk7C,EAQ7B,OACE20E,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBAAoBgR,UACjC41F,EAAAA,GAAAA,KAAC/+B,GAAAA,EAAM,CARTtM,MAAM,EACNpB,UAAU,EACVl1C,MAAO,IACPq1C,aAAc,EACd6C,eAAgB,EAIYnsD,SACvBj6B,EAAMghF,KAAK5oD,IACV+4F,EAAAA,GAAAA,MAAA,OAAmBloG,UAAU,sBAAqBgR,SAAA,EAChD41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKuxE,EAAK60D,MAAOhkE,UAAU,iBAAiBooG,IAAI,cACrDxB,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,iBAAgBgR,SAAE7B,EAAK7P,UAF7B6P,EAAK5zE,SAMf,ECOV,GA5B+B02F,IAQxB,IARyB,MAC9B3yB,EAAK,QACL/b,EAAO,OACPslH,EAAM,SACNvvE,EAAQ,SACRtoB,EAAQ,aACRktD,EAAY,aACZE,GACDnsC,EACC,OACEi2E,EAAAA,GAAAA,MAAA,OACEloG,UAAS,WAAAhjE,OAAas8F,GAAY,WAAU,KAC5C4kC,aAAcA,EACdE,aAAcA,EAAaptD,SAAA,CAE1BA,GACD41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK1R,KACLsnG,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,iBAAgBgR,SAAEztB,KAC/BqjH,EAAAA,GAAAA,KAAA,KACEr9H,KAAMs/H,EACN7oG,UAAWs5B,EAAW,iBAAmB,mBAAmBtoB,SAC7D,gBAGG,EC4XH,SAAS83F,GAAYj3K,GAC1B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,+QAAzFA,CAAyW11K,EAClX,CA4NO,SAASk3K,GAAmBl3K,GACjC,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,o8BAAzFA,CAA8hC11K,EACviC,CA8FO,SAASm3K,GAAYn3K,GAC1B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,+aAAzFA,CAAygB11K,EAClhB,CAmoBO,SAASo3K,GAAWp3K,GACzB,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,6dAAzFA,CAAujB11K,EAChkB,CA2dO,SAASq3K,GAAqBr3K,GACnC,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,8gBAAzFA,CAAwmB11K,EACjnB,CAw+BO,SAASs3K,GAASt3K,GACvB,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,qVAAzFA,CAA+a11K,EACxb,CAutBO,SAASu3K,GAAcv3K,GAC5B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,whBAAzFA,CAAknB11K,EAC3nB,CAqjBO,SAASw3K,GAAcx3K,GAC5B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,6ZAAzFA,CAAuf11K,EAChgB,CAunBO,SAASy3K,GAAgBz3K,GAC9B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,y/CAAzFA,CAAmlD11K,EAC5lD,CCrqJA,MAyHA,GAzHe03K,KAEXrB,EAAAA,GAAAA,MAAA,UAAAl3F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,8BAA6BgR,SAAA,EAC1Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAGynC,UACT41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,cAAcpiE,ygTAAWwqK,IAAI,iBAE9CxB,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,gBAAegR,SAAC,yCAC7B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,kBACHk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACkC,GAAU,CAAClvH,KAAM,QAEpBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACmC,GAAiB,CAACnvH,KAAM,QAE3BgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACoC,GAAU,CAACpvH,KAAM,cAIxBsuH,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,aAAYgR,SAAC,WAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,IAAGynC,SAAC,eAItC41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,UAASynC,SAAC,cAI5C41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,WAAUynC,SAAC,kBAI7C41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,oBAAmBynC,SAAC,0BAItD41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,cAAaynC,SAAC,kBAIhD41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,kBAAiBynC,SAAC,4BAMxDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,aAAYgR,SAAC,cAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,WAAUynC,SAAC,gBAI7C41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,uBAAsBynC,SAAC,kBAIzD41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,eAAcynC,SAAC,0BAMrDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,aAAYgR,SAAC,eAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,QAAOynC,SAAC,aAI1C41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,WAAUynC,SAAC,qBAI7C41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,IAAGynC,SAAC,iBAM1Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,aAAYgR,SAAC,kBAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,gBAAeynC,SAAC,gBAGhD41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAcz2B,KAAK,uBAAsBynC,SAAC,mBAGvD41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,cAAagR,SAAC,qCAKpC41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5B41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,qBAAoBgR,SAAC,oDC4rGnC,SAASw4F,GAAiB33K,GAC/B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,qyBAAzFA,CAA+3B11K,EACx4B,CClzGA,MAoNA,GApNyBogG,IAOlB,IAPmB,SACxBw3E,EAAQ,aACRC,EAAY,kBACZC,EAAiB,kBACjBC,EAAiB,WACjBC,EAAU,cACVC,GACD73E,EACC,OACEi2E,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,CAC7By4F,GAMAvB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,UAAQv+C,QAASshD,EAAmB3pG,UAAU,mBAAkBgR,SAAC,eAGjE41F,EAAAA,GAAAA,KAAA,UAAQv+C,QAASqhD,EAAc1pG,UAAU,mBAAkBgR,SAAC,YAG5D41F,EAAAA,GAAAA,KAAA,UAAQv+C,QAASuhD,EAAmB5pG,UAAU,iBAAgBgR,SAAC,sBAZjEk3F,EAAAA,GAAAA,MAAA,QAAM7/C,QAASqhD,EAAa14F,SAAA,CAAC,WAE3B41F,EAAAA,GAAAA,KAAC4C,GAAe,OAenBC,IACCvB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,UAASgR,SAAA,EACtBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,eAAcgR,SAAC,iBAC7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAM/4F,SAAC,UACtB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,OACHjI,MAAOu2K,EAAW5yK,KAClB+yK,SAAWzxK,IACTuxK,EAAc,IAAKD,EAAY5yK,KAAMsB,EAAE3G,OAAO0B,OAAQ,QAI5D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,UAAS/4F,SAAC,aACzB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,UACHjI,MAAOu2K,EAAWlyC,QAClBqyC,SAAWzxK,IACTuxK,EAAc,IAAKD,EAAYlyC,QAASp/H,EAAE3G,OAAO0B,OAAQ,QAI/D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,iBAAgB/4F,SAAC,qBAChC41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,iBACHjI,MAAOu2K,EAAWI,eAClBD,SAAWzxK,IACTuxK,EAAc,IACTD,EACHI,eAAgB1xK,EAAE3G,OAAO0B,OACzB,QAIR40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,QACHjI,MAAOu2K,EAAW1zF,MAClB6zF,SAAWzxK,IACTuxK,EAAc,IAAKD,EAAY1zF,MAAO59E,EAAE3G,OAAO0B,OAAQ,QAI7D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,eAC1B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,WACHjI,MAAOu2K,EAAWK,SAClBF,SAAWzxK,IACTuxK,EAAc,IAAKD,EAAYK,SAAU3xK,EAAE3G,OAAO0B,OAAQ,cAMpE40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,eAAcgR,SAAC,cAC7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,gBAAe/4F,SAAC,oBAC/Bk3F,EAAAA,GAAAA,MAAA,UACEjxK,KAAK,gBACLsE,GAAG,gBACHjI,MAAOu2K,EAAWM,cAClBH,SAAWzxK,IACTuxK,EAAc,IACTD,EACHM,cAAe5xK,EAAE3G,OAAO0B,OACxB,EACF09E,SAAA,EAEF41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,SAAQ09E,SAAC,YACvB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,UAAS09E,SAAC,aACxB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,YAAW09E,SAAC,eAC1B41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,YAAW09E,SAAC,qBAG9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,cAAa/4F,SAAC,kBAC7Bk3F,EAAAA,GAAAA,MAAA,UACEjxK,KAAK,cACLsE,GAAG,cACHjI,MAAOu2K,EAAWO,YAClBJ,SAAWzxK,IACTuxK,EAAc,IACTD,EACHO,YAAa7xK,EAAE3G,OAAO0B,OACtB,EACF09E,SAAA,EAEF41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,SAAQ09E,SAAC,YACvB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,UAAS09E,SAAC,aACxB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,cAAa09E,SAAC,iBAC5B41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,cAAa09E,SAAC,wBAGhCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,sBAAqBgR,SAAA,EAClCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,CAAC,QAE7B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACLuE,GAAG,cACHjI,MAAOu2K,EAAWQ,YAClBL,SAAWzxK,IACTuxK,EAAc,IACTD,EACHQ,YAAa9xK,EAAE3G,OAAO0mG,SACtB,QAIR4vE,EAAAA,GAAAA,MAAA,OACEloG,UAAU,gBACV1sE,MAAOu2K,EAAWS,cAClBN,SAAWzxK,IACTuxK,EAAc,IACTD,EACHS,cAAe/xK,EAAE3G,OAAO0mG,SACxB,EACFtnB,SAAA,CACH,UAEC41F,EAAAA,GAAAA,KAAA,SAAO5vK,KAAK,WAAWuE,GAAG,sBAE5B2sK,EAAAA,GAAAA,MAAA,OACEloG,UAAU,gBACV1sE,MAAOu2K,EAAWU,cAClBP,SAAWzxK,IACTuxK,EAAc,IACTD,EACHU,cAAehyK,EAAE3G,OAAO0mG,SACxB,EACFtnB,SAAA,CACH,UAEC41F,EAAAA,GAAAA,KAAA,SAAO5vK,KAAK,WAAWuE,GAAG,yBAG9B2sK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,eAAc/4F,SAAC,WAC9B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,eACHjI,MAAOu2K,EAAWW,aAClBR,SAAWzxK,IACTuxK,EAAc,IACTD,EACHW,aAAcjyK,EAAE3G,OAAO0B,OACvB,QAIR40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,cAAa/4F,SAAC,mBAC7B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,cACHjI,MAAOu2K,EAAWY,YAClBT,SAAWzxK,IACTuxK,EAAc,IACTD,EACHY,YAAalyK,EAAE3G,OAAO0B,OACtB,kBAQZ,+EClLV,GA7BuB2+F,IAAe,IAAd,KAAE9iB,GAAM8iB,EAC9B,MAAMovD,EAAWR,IAYjB,OACEqnB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAiBqoD,QAZJqiD,KAC5B,MAAMC,EAAoB,OAAJx7F,QAAI,IAAJA,GAAAA,EAAMy7F,KACxBz7F,EAAKy7F,KACLz7F,EAAKl4E,KAAK+Q,QAAQ,OAAQ,KAC9Bq5I,EAAS,sBAADrkJ,OAAuB2tK,GAAiB,CAC9Cx0F,MAAO,CACL00F,WAAY17F,IAEd,EAI6D6B,SAAA,CAC5D7B,EAAK27F,cACJlE,EAAAA,GAAAA,KAAA,OACE5mG,UAAU,sBACVpiE,IAAKuxE,EAAK27F,aACV1C,IAAI,SAGNxB,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,sBAAsBpiE,IAAKmtK,GAAW3C,IAAI,SAE3DxB,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,qBAAoBgR,SAAE7B,EAAKl4E,SACrC,EC8SH,SAAS+zK,GAAen5K,GAC7B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,0IAA0I,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,6HAA7PA,CAA2X11K,EACpY,CA8IO,SAASo5K,GAAWp5K,GACzB,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,0NAA0N,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,uXAA7UA,CAAqsB11K,EAC9sB,CA4KO,SAASq5K,GAAar5K,GAC3B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,klBAAzFA,CAA4qB11K,EACrrB,CAwIO,SAASs5K,GAAet5K,GAC7B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,yzBAAzFA,CAAm5B11K,EAC55B,CA2aO,SAASu5K,GAAuBv5K,GACrC,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,sQAAzFA,CAAgW11K,EACzW,CC8wCO,SAASw5K,GAAgBx5K,GAC9B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,07BAAzFA,CAAohC11K,EAC7hC,CCjrBO,SAASy5K,GAAez5K,GAC7B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,KAAO,eAAe,QAAU,aAAa,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,uoBAA7GA,CAAqvB11K,EAC9vB,CCjyDA,MAAM05K,GAAgB/F,GAAMvxK,OAAO,CACjCyjK,QAAS,KAIX6T,GAAchmK,SAASqrJ,QAAQ0B,OAAsB,cAAC,UAAAt1J,OAAaqpK,GAAQzwK,IACzE,UAEF,YCXA,SAAS+R,GAAEpP,GAAG,IAAI4M,EAAE7O,EAAE8O,EAAE,GAAG,GAAG,iBAAiB7M,GAAG,iBAAiBA,EAAE6M,GAAG7M,OAAO,GAAG,iBAAiBA,EAAE,GAAGU,MAAMC,QAAQX,GAAG,IAAI4M,EAAE,EAAEA,EAAE5M,EAAExG,OAAOoT,IAAI5M,EAAE4M,KAAK7O,EAAEqR,GAAEpP,EAAE4M,OAAOC,IAAIA,GAAG,KAAKA,GAAG9O,QAAQ,IAAI6O,KAAK5M,EAAEA,EAAE4M,KAAKC,IAAIA,GAAG,KAAKA,GAAGD,GAAG,OAAOC,CAAC,CAA2H,SAAnH,WAAgB,IAAI,IAAI7M,EAAE4M,EAAE7O,EAAE,EAAE8O,EAAE,GAAG9O,EAAE5D,UAAUX,SAASwG,EAAE7F,UAAU4D,QAAQ6O,EAAEwC,GAAEpP,MAAM6M,IAAIA,GAAG,KAAKA,GAAGD,GAAG,OAAOC,CAAC,uqfCUjW,MAsRA,GAtRmB6sF,IAAgB,IAAf,MAAEl7C,GAAOk7C,EAC3B,MAAM,YAAEk0E,GAAgBa,MACjBwE,EAAWC,IAAgB9pD,EAAAA,EAAAA,WAAS,IACpC+pD,EAAaC,IAAkBhqD,EAAAA,EAAAA,UAAS,KACxCiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACjCmqD,EAA4C,eAAf,OAAX3F,QAAW,IAAXA,OAAW,EAAXA,EAAaG,WAErCr1E,EAAAA,EAAAA,YAAU,KACR,GAAI66E,EAAiB,CACA5P,WACjB,IACE,MAAM38I,QAAiBgsJ,GAAc31K,IAAI,4CAADoH,OACMmpK,EAAYI,SAEpDwF,QAAyB52D,QAAQwwD,IACrCpmJ,EAASzE,KAAKi9G,KAAImkC,UAChB,IACE,MAAM8P,QAAoBT,GAAc31K,IAAI,6BAADoH,OACZivK,EAAQC,aAEvC,MAAO,IAAKD,KAAYD,EAAYlxJ,KACtC,CAAE,MAAOrU,GAKP,OAJA8B,QAAQ9B,MAAM,mCAADzJ,OACwBivK,EAAQC,WAAU,KACrDzlK,GAEKwlK,CACT,MAIJN,EAAeI,GACfxjK,QAAQ45F,IAAI,yBAA0B4pE,EACxC,CAAE,MAAOtlK,GACP8B,QAAQ9B,MAAM,uBAAwBA,EACxC,GAGF0lK,EACF,IACC,CAACL,EAA4B,OAAX3F,QAAW,IAAXA,OAAW,EAAXA,EAAaI,SAElC,MAAO6F,EAAgBC,IAAqB1qD,EAAAA,EAAAA,UAAS,CAAC,GACtD,GAAqB,IAAjB5qE,EAAMhlD,OACR,OAAO60K,EAAAA,GAAAA,KAAA,OAAA51F,SAAK,yBAEd,MAAMs7F,EAAgB,CAAC,EAEvBv1H,EAAMp6C,SAASwyE,IACRm9F,EAAcn9F,EAAKn4E,MAGtBs1K,EAAcn9F,EAAKn4E,MAAMP,KAAK04E,GAF9Bm9F,EAAcn9F,EAAKn4E,MAAQ,CAACm4E,EAG9B,IAqFF,OACE+4F,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,CACGp+E,OAAOmH,KAAKuyK,GAAev0C,KAAI,CAAC/gI,EAAMlC,KACrCozK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,wBAAuBgR,SAAA,EACpCk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,cAAagR,SAAA,CAAEh6E,EAAK,QACjCs1K,EAAct1K,GAAM+gI,KAAI,CAACy0C,EAAQC,KAChCvE,EAAAA,GAAAA,MAAA,OAAuBloG,UAAU,cAAagR,SAAA,EAC5Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAKw7F,EAAOv1K,QACZixK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,UAAA51F,SAAQ,oBACR41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAIw7F,EAAOlvE,WAEb4qE,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,UAAA51F,SAAQ,YACPw7F,EAAOE,OACNxE,EAAAA,GAAAA,MAAA,KAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAACyE,GAAc,IAAG,qBAIrBmB,EAAOG,SACNzE,EAAAA,GAAAA,MAAA,KAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAC0C,GAAc,IAAG,sBAIrBkD,EAAOI,SACN1E,EAAAA,GAAAA,MAAA,KAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAC0E,GAAa,IAAG,2BAKvB1E,EAAAA,GAAAA,KAAA,YAEFsB,EAAAA,GAAAA,MAAA,UACE7/C,QAASA,IAvHFmkD,KACnBH,EAAkBG,GAClBjkK,QAAQ45F,IAAI,mBAAoBqqE,GAChCf,GAAa,EAAK,EAoHSoB,CAAYL,GAC3BxsG,UAAU,gCAA+BgR,SAAA,CAC1C,UACO41F,EAAAA,GAAAA,KAACwE,GAAqB,SAlCtBqB,OAH8B33K,KA2C7C02K,IACC5E,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,kBAAiBgR,UAC9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CAAEovK,OAAQ,UAAWtyH,SAAU,QACtCwlB,UAAU,QACVqoD,QAASA,IAAMojD,GAAa,GAAOz6F,SACpC,SAGAm1F,GACC+B,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,eACW,KACb41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAC7Co7F,EAAen1K,WAGpBixK,EAAAA,GAAAA,MAAA,QAAM6E,SA5IA7Q,UAClB57I,EAAM2mF,iBAEN,MAAM+lE,EACqB,cAAzB7G,EAAYG,SACRhmJ,EAAM1uB,OAAO4kD,SAASy1H,QAAQ34K,MAC9B6yK,EAAYI,OAElB,IACE,MAGM0G,SAHiB1B,GAAc31K,IAAI,kCAADoH,OACJovK,EAAe7F,UAEpBzrJ,KAC/BvS,QAAQ45F,IAAI,kBAAmB8qE,GAE/B,MAAMC,EAAwBD,EAAcE,MACzCryJ,GAASA,EAAK7jB,KAAKo+C,gBAAkB+2H,EAAep1K,KAAKq+C,gBAG5D,IAAK63H,EACH,MAAM,IAAIxhK,MAAM,qCAGlB,MAAM,OAAE0hK,EAAM,aAAEC,EAAY,YAAEC,EAAW,MAAE9W,GACzC0W,EAEIK,EAAY,CAChBC,WAAYR,EACZS,cAAerB,EAAe7F,OAC9BmH,aAC2B,cAAzBvH,EAAYG,SAA2BH,EAAYI,OAAS,GAC9DvvK,KAAMo1K,EAAep1K,KACrB22K,eAAgBvB,EAAen1K,KAC/Bm2K,OAAQA,GAAU,EAClBC,aAAcA,GAAgB,EAC9BC,YAAaA,GAAe,EAC5B9W,MAAOA,GAAS,EAChBoX,cAAe,SACf3tJ,OAAQ,WAGV1X,QAAQ45F,IAAI,uBAAwBorE,GACpC1B,GAAW,SAELN,GAAczE,KAAK,oBAAqByG,GAC9CM,GAAMC,QAAQ,sCACdrC,GAAa,GACbI,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,6BAA8BA,GAGxCA,EAAM8Y,UACRhX,QAAQ9B,MAAM,iBAAkBA,EAAM8Y,SAASzE,MAC/CvS,QAAQ9B,MAAM,mBAAoBA,EAAM8Y,SAASU,QACjD1X,QAAQ9B,MAAM,oBAAqBA,EAAM8Y,SAASqxI,SACpB,MAA1BnqJ,EAAM8Y,SAASU,OACjB4tJ,GAAMrvH,KAAK,uCAEXqvH,GAAMpnK,MAAM,8BAADzJ,OAEPyJ,EAAM8Y,SAASzE,KAAK4oG,SAAWj9G,EAAMi9G,WAIlCj9G,EAAMomJ,SACftkJ,QAAQ9B,MAAM,gBAAiBA,EAAMomJ,SACrCghB,GAAMpnK,MAAM,sCAEZ8B,QAAQ9B,MAAM,iBAAkBA,EAAMi9G,SACtCmqD,GAAMpnK,MAAM,UAADzJ,OAAWyJ,EAAMi9G,WAE9BmoD,GAAW,EACb,GAmEwC76F,SAAA,CACA,cAAzBm1F,EAAYG,WACX4B,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,aACS,KACX41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,gBAInD41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,UAAS/4F,SAAC,2BACzBk3F,EAAAA,GAAAA,MAAA,UAAQjxK,KAAK,UAAUsE,GAAG,UAAUmhJ,UAAQ,EAAA1rE,SAAA,EAC1C41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,OAAM09E,SACjB06F,EAAY35K,OAAS,EAClB,uBACA,+BAEL25K,EAAY3zC,KAAI,CAACk0C,EAASn3K,KACzBozK,EAAAA,GAAAA,MAAA,UAAoB50K,MAAO24K,EAAQ1F,OAAOv1F,SAAA,CACvCi7F,EAAQ8B,UAAU,IAAE9B,EAAQ+B,WADlBl5K,YAOrBozK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,UACE5vK,KAAK,SACLgpE,UAAU,mBACVqoD,QAASA,IAAMojD,GAAa,GAAOz6F,SACpC,YAGD41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBhpE,KAAK,SAAQg6E,SAAC,oBAOvDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,2BACuB,KACzB41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAC7Co7F,EAAen1K,WAGpB2vK,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,6DACHk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChCk3F,EAAAA,GAAAA,MAAA,KACE3+H,KAAK,gBACLy2B,UAAU,8BAA6BgR,SAAA,CACxC,qBACkB41F,EAAAA,GAAAA,KAACwE,GAAqB,QAEzClD,EAAAA,GAAAA,MAAA,KACE3+H,KAAK,eACLy2B,UAAU,gCAA+BgR,SAAA,CAC1C,sBACmB41F,EAAAA,GAAAA,KAACwE,GAAqB,kBAQrDQ,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,uBAGN,EC5RP,IA8WIi9F,GAAW,CACb/nK,OAAQ,MACRgoK,SAAU,SACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4PAa3BC,GAAe,CACjBloK,OAAQ,MACRgoK,SAAU,cACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,iTAke3BE,GAAU,CACZnoK,OAAQ,MACRgoK,SAAU,QACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,wbAizB3BG,GAAc,CAChBpoK,OAAQ,MACRgoK,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,+5BAY3BI,GAAa,CACfroK,OAAQ,MACRgoK,SAAU,WACVC,KAAM,CAAC,IAAK,IAAK,CAAC,MAAQ,OAAQ,iRA6dhCK,GAAY,CACdtoK,OAAQ,MACRgoK,SAAU,UACVC,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,OAAQ,2dA2BhCM,GAAY,CACdvoK,OAAQ,MACRgoK,SAAU,UACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4xBCzkE3BO,GAAY,CACdxoK,OAAQ,MACRgoK,SAAU,UACVC,KAAM,CAAC,IAAK,IAAK,CAAC,eAAgB,OAAQ,qKA6RxCQ,GAAkB,CACpBzoK,OAAQ,MACRgoK,SAAU,iBACVC,KAAM,CAAC,IAAK,IAAK,CAAC,aAAc,OAAQ,4iBAEtCS,GAAaD,GA6oBbE,GAAS,CACX3oK,OAAQ,MACRgoK,SAAU,OACVC,KAAM,CAAC,IAAK,IAAK,CAAC,QAAS,OAAQ,yNAoGjCW,GAAU,CACZ5oK,OAAQ,MACRgoK,SAAU,QACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,8lBAE3BY,GAAa,CACf7oK,OAAQ,MACRgoK,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,swBA+X3Ba,GAAS,CACX9oK,OAAQ,MACRgoK,SAAU,OACVC,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,OAAQ,OAAQ,wLA8sExCc,GAAQ,CACV/oK,OAAQ,MACRgoK,SAAU,MACVC,KAAM,CAAC,IAAK,IAAK,CAAC,QAAS,OAAQ,ikBAkNjCe,GAAU,CACZhpK,OAAQ,MACRgoK,SAAU,QACVC,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,QAAS,OAAQ,0RAmUzCgB,GAAa,CACfjpK,OAAQ,MACRgoK,SAAU,WACVC,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,KAAM,OAAQ,OAAQ,wQA+zD9CiB,GAAc,CAChBlpK,OAAQ,MACRgoK,SAAU,aACVC,KAAM,CAAC,IAAK,IAAK,CAAC,eAAgB,OAAQ,+4BAyPxCkB,GAAc,CAChBnpK,OAAQ,MACRgoK,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,sYAkD3BmB,GAAU,CACZppK,OAAQ,MACRgoK,SAAU,QACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,y3CAyP3BoB,GAAa,CACfrpK,OAAQ,MACRgoK,SAAU,WACVC,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,QAAS,OAAQ,gOAmLzCqB,GAAa,CACftpK,OAAQ,MACRgoK,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,0WAiD3BsB,GAAc,CAChBvpK,OAAQ,MACRgoK,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,CAAC,QAAS,OAAQ,uTAgDjCuB,GAAa,CACfxpK,OAAQ,MACRgoK,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,QAAS,OAAQ,ycAgXzCwB,GAAM,CACRzpK,OAAQ,MACRgoK,SAAU,IACVC,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,KAAM,+RC5uOhC,SAASx+E,GAAQ92F,EAAQ+2K,GACvB,IAAI71K,EAAOnH,OAAOmH,KAAKlB,GAEvB,GAAIjG,OAAOkM,sBAAuB,CAChC,IAAIvI,EAAU3D,OAAOkM,sBAAsBjG,GAC3C+2K,IAAmBr5K,EAAUA,EAAQoiD,QAAO,SAAUh1C,GACpD,OAAO/Q,OAAO2L,yBAAyB1F,EAAQ8K,GAAK1R,UACtD,KAAK8H,EAAKtD,KAAKd,MAAMoE,EAAMxD,EAC7B,CAEA,OAAOwD,CACT,CAEA,SAAS61F,GAAeh+F,GACtB,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CACzC,IAAIa,EAAS,MAAQD,UAAUZ,GAAKY,UAAUZ,GAAK,CAAC,EACpDA,EAAI,EAAI69F,GAAQ/8F,OAAOD,IAAS,GAAIgK,SAAQ,SAAUvK,GACpDZ,GAAgBI,EAAQQ,EAAKO,EAAOP,GACtC,IAAKQ,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiBC,EAAQgB,OAAOi9F,0BAA0Bl9F,IAAWg9F,GAAQ/8F,OAAOD,IAASgK,SAAQ,SAAUvK,GAC5JQ,OAAOwB,eAAexC,EAAQQ,EAAKQ,OAAO2L,yBAAyB5L,EAAQP,GAC7E,GACF,CAEA,OAAOR,CACT,CAEA,SAASiC,GAAQtC,GAGf,OAAOsC,GAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAUtS,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBkL,QAAUlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAC1H,EAAGsC,GAAQtC,EACb,CAwDA,SAASynI,GAAkBpnI,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDS,OAAOwB,eAAexC,EAAQI,EAAWI,IAAKJ,EAChD,CACF,CAWA,SAASR,GAAgBD,EAAKa,EAAKkB,GAYjC,OAXIlB,KAAOb,EACTqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAC9BkB,MAAOA,EACPrB,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZZ,EAAIa,GAAOkB,EAGN/B,CACT,CA6BA,SAAS++F,GAAex7E,EAAKhjB,GAC3B,OAWF,SAAyBgjB,GACvB,GAAI7b,MAAMC,QAAQ4b,GAAM,OAAOA,CACjC,CAbSy7E,CAAgBz7E,IAmBzB,SAA+BA,EAAKhjB,GAClC,IAAI8P,EAAY,MAAPkT,EAAc,KAAyB,qBAAXrY,QAA0BqY,EAAIrY,OAAOoH,WAAaiR,EAAI,cAE3F,GAAU,MAANlT,EAAY,OAChB,IAIIwqC,EAAIyjI,EAJJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKpuK,EAAKA,EAAG9O,KAAKgiB,KAAQi7J,GAAM3jI,EAAKxqC,EAAGrI,QAAQ6B,QAC9C00K,EAAKr5K,KAAK21C,EAAG94C,QAETxB,GAAKg+K,EAAK/9K,SAAWD,GAH4Bi+K,GAAK,GAK9D,CAAE,MAAOjwJ,GACPkwJ,GAAK,EACLH,EAAK/vJ,CACP,CAAE,QACA,IACOiwJ,GAAsB,MAAhBnuK,EAAW,QAAWA,EAAW,QAC9C,CAAE,QACA,GAAIouK,EAAI,MAAMH,CAChB,CACF,CAEA,OAAOC,CACT,CA/CiCr/E,CAAsB37E,EAAKhjB,IAAM++F,GAA4B/7E,EAAKhjB,IAsEnG,WACE,MAAM,IAAIR,UAAU,4IACtB,CAxEyGw/F,EACzG,CAEA,SAASm/E,GAAmBn7J,GAC1B,OAGF,SAA4BA,GAC1B,GAAI7b,MAAMC,QAAQ4b,GAAM,OAAO67E,GAAkB77E,EACnD,CALSo7J,CAAmBp7J,IAW5B,SAA0Bq7J,GACxB,GAAsB,qBAAX1zK,QAAmD,MAAzB0zK,EAAK1zK,OAAOoH,WAA2C,MAAtBssK,EAAK,cAAuB,OAAOl3K,MAAM23F,KAAKu/E,EACtH,CAboCC,CAAiBt7J,IAAQ+7E,GAA4B/7E,IA8DzF,WACE,MAAM,IAAIxjB,UAAU,uIACtB,CAhEiG++K,EACjG,CA4CA,SAASx/E,GAA4BppF,EAAGipF,GACtC,GAAKjpF,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOkpF,GAAkBlpF,EAAGipF,GACvD,IAAItrF,EAAIxS,OAAOL,UAAUwC,SAASjC,KAAK2U,GAAGzS,MAAM,GAAI,GAEpD,MADU,WAANoQ,GAAkBqC,EAAEpU,cAAa+R,EAAIqC,EAAEpU,YAAY4D,MAC7C,QAANmO,GAAqB,QAANA,EAAoBnM,MAAM23F,KAAKnpF,GACxC,cAANrC,GAAqB,2CAA2C5F,KAAK4F,GAAWurF,GAAkBlpF,EAAGipF,QAAzG,CALc,CAMhB,CAEA,SAASC,GAAkB77E,EAAKnC,IACnB,MAAPA,GAAeA,EAAMmC,EAAI/iB,UAAQ4gB,EAAMmC,EAAI/iB,QAE/C,IAAK,IAAID,EAAI,EAAGymF,EAAO,IAAIt/E,MAAM0Z,GAAM7gB,EAAI6gB,EAAK7gB,IAAKymF,EAAKzmF,GAAKgjB,EAAIhjB,GAEnE,OAAOymF,CACT,CAUA,IAAI2zE,GAAO,WAAiB,EAExBokB,GAAU,CAAC,EACXC,GAAY,CAAC,EACbC,GAAqB,KACrBC,GAAe,CACjBC,KAAMxkB,GACNykB,QAASzkB,IAGX,IACwB,qBAAX1zJ,SAAwB83K,GAAU93K,QACrB,qBAAb3C,WAA0B06K,GAAY16K,UACjB,qBAArBo7I,mBAAkCu/B,GAAqBv/B,kBACvC,qBAAhBoF,cAA6Bo6B,GAAep6B,YACzD,CAAE,MAAO99I,IAAI,CAEb,IAWIq4K,GAAcC,GAAeC,GAAeC,GAAeC,GAV3DC,IADOX,GAAQ1+J,WAAa,CAAC,GACP6D,UACtBA,QAA+B,IAAnBw7J,GAA4B,GAAKA,GAC7CC,GAASZ,GACTa,GAAWZ,GACXa,GAAoBZ,GACpBa,GAAcZ,GAEda,IADeJ,GAAOr7K,WACXs7K,GAASr4K,mBAAqBq4K,GAAStb,MAA6C,oBAA9Bsb,GAASrtJ,kBAAqE,oBAA3BqtJ,GAASp7K,eAC7Hw7K,IAAS97J,GAAU6J,QAAQ,UAAY7J,GAAU6J,QAAQ,YAIzDkyJ,GAAuB,qBACvBC,GAAgB,GAChBC,GAAqB,KACrBC,GAA4B,iBAC5BC,GAAgB,gBAChBC,GAAyB,yBACzBC,GAAiC,iCACjCC,GAAc,cACdC,GAAY,YACZC,GAA8B,oBAC9BC,GAA0B,QAC1BC,GAAsC,CAAC,OAAQ,OAAQ,QAAS,UAChEC,GAAa,WACf,IACE,OAAO7xJ,CACT,CAAE,MAAOhoB,IACP,OAAO,CACT,CACF,CANiB,GAOb85K,GAAiB,UACjBC,GAAe,QACfC,GAAW,CAACF,GAAgBC,IAEhC,SAASE,GAAYjhL,GAEnB,OAAO,IAAIkhL,MAAMlhL,EAAK,CACpBqE,IAAK,SAAahE,EAAQkhB,GACxB,OAAOA,KAAQlhB,EAASA,EAAOkhB,GAAQlhB,EAAOygL,GAChD,GAEJ,CACA,IAAIK,GAAkBF,IAAgChhL,GAAnBo/K,GAAe,CAAC,EAAiCyB,GAAgB,CAClG,GAAM,QACN,IAAO,QACP,WAAY,QACZ,IAAO,UACP,aAAc,UACd,IAAO,QACP,WAAY,QACZ,IAAO,OACP,UAAW,OACX,IAAO,UACP,aAAc,UACd,IAAO,SACP,YAAa,SACb,IAAO,MACP,KAAQ,MACR,SAAU,MACV,iBAAkB,QAChB7gL,GAAgBo/K,GAAc0B,GAAc,CAC9C,GAAM,QACN,KAAQ,QACR,WAAY,QACZ,KAAQ,UACR,aAAc,UACd,KAAQ,QACR,WAAY,QACZ,KAAQ,OACR,UAAW,SACT1B,KACA+B,GAAkBH,IAAiChhL,GAApBq/K,GAAgB,CAAC,EAAkCwB,GAAgB,CACpGO,MAAO,MACPC,QAAS,MACTC,MAAO,MACPC,KAAM,MACNC,QAAS,MACTC,OAAQ,MACRC,IAAK,QACH1hL,GAAgBq/K,GAAeyB,GAAc,CAC/CM,MAAO,OACPC,QAAS,OACTC,MAAO,OACPC,KAAM,SACJlC,KACAsC,GAAuBX,IAAiChhL,GAApBs/K,GAAgB,CAAC,EAAkCuB,GAAgB,CACzGe,IAAK,YACLC,IAAK,aACLC,IAAK,SACLC,IAAK,WACLC,IAAK,aACLC,IAAK,WACLC,IAAK,YACHliL,GAAgBs/K,GAAewB,GAAc,CAC/CqB,KAAM,WACNC,KAAM,aACNC,KAAM,WACNC,KAAM,YACJhD,KACAiD,GAAuBvB,IAAiChhL,GAApBu/K,GAAgB,CAAC,EAAkCsB,GAAgB,CACzG,YAAa,MACb,aAAc,MACd,SAAU,MACV,WAAY,MACZ,aAAc,MACd,WAAY,MACZ,UAAW,QACT7gL,GAAgBu/K,GAAeuB,GAAc,CAC/C,WAAY,OACZ,aAAc,OACd,WAAY,OACZ,UAAW,SACTvB,KACAiD,GAAgC,uCAEhCC,GAAwB,iBACxBC,GAAsB,0FACtBC,GAAwB3B,IAAiChhL,GAApBw/K,GAAgB,CAAC,EAAkCqB,GAAgB,CAC1G,IAAK,MACL,IAAK,MACL+B,OAAQ,MACR,IAAK,MACL,IAAK,QACH5iL,GAAgBw/K,GAAesB,GAAc,CAC/C,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,SACHtB,KACAqD,GAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACvCC,GAAcD,GAASr3K,OAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACnEu3K,GAAkC,CAAC,QAAS,cAAe,YAAa,oBAAqB,gBAC7FC,GAAkB,CACpBC,MAAO,gBACPC,aAAc,eACdC,QAAS,UACTC,UAAW,aAETC,GAAW,IAAIvgF,IACnB1hG,OAAOmH,KAAK44K,GAAgBN,KAAiBt6C,IAAI88C,GAAS58G,IAAIp1C,KAAKgyJ,KACnEjiL,OAAOmH,KAAK44K,GAAgBL,KAAev6C,IAAI88C,GAAS58G,IAAIp1C,KAAKgyJ,KACjE,IAAIC,GAAmB,GAAG93K,OAAOu1K,GAAUtC,GAAmB4E,IAAW,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,OAAQ,SAAU,OAAQ,YAAa,SAAU,YAAa,kBAAmB,gBAAiB,OAAQ,KAAM,UAAW,iBAAkB,cAAe,SAAU,KAAM,YAAa,aAAc,QAAS,aAAc,aAAc,YAAa,YAAa,QAAS,aAAc,eAAgB,OAAQ,WAAY,WAAY,QAAS,KAAML,GAAgBC,MAAOD,GAAgBE,aAAcF,GAAgBG,QAASH,GAAgBI,YAAY53K,OAAOq3K,GAASt8C,KAAI,SAAU3yH,GACllB,MAAO,GAAGpI,OAAOoI,EAAG,IACtB,KAAIpI,OAAOs3K,GAAYv8C,KAAI,SAAU3yH,GACnC,MAAO,KAAKpI,OAAOoI,EACrB,KAEI6xH,GAAUi6C,GAAO6D,mBAAqB,CAAC,EAmB3C,GAAI5D,IAA8C,oBAA3BA,GAASxwC,cAA8B,CAChD,CAAC,CAAC,qBAAsB,gBAAiB,CAAC,kBAAmB,aAAc,CAAC,sBAAuB,iBAAkB,CAAC,qBAAsB,gBAAiB,CAAC,yBAA0B,oBAAqB,CAAC,wBAAyB,kBAAmB,CAAC,oBAAqB,cAAe,CAAC,iBAAkB,YAAa,CAAC,8BAA+B,wBAAyB,CAAC,yBAA0B,oBAAqB,CAAC,uBAAwB,kBAAmB,CAAC,4BAA6B,sBAAuB,CAAC,2BAA4B,sBAAuB,CAAC,0BAA2B,qBAC/lBhkI,SAAQ,SAAUs1F,GACtB,IAAI08C,EAAQr+C,GAAe2B,EAAM,GAC7Br/E,EAAO+7H,EAAM,GACbv8I,EAAMu8I,EAAM,GAEZ1tI,EAhBR,SAAgBA,GAGd,MAAY,KAARA,GACQ,UAARA,IACQ,SAARA,GACGA,EACT,CASc+zK,CAxBd,SAAuBpiK,GACrB,IAAIiE,EAAUs6J,GAASxwC,cAAc,UAAY/tH,EAAO,KAExD,GAAIiE,EACF,OAAOA,EAAQo+J,aAAariK,EAEhC,CAkBqBsiK,CAActiK,SAEnBrd,IAAR0L,GAA6B,OAARA,IACvBg2H,GAAQ7kI,GAAO6O,EAEnB,GACF,CAEA,IAAIk0K,GAAW,CACbC,aAAc,QACdC,cAAe,UACfC,UAAW5D,GACX6D,iBAAkB5D,GAClB6D,gBAAgB,EAChBC,YAAY,EACZC,UAAU,EACVC,sBAAsB,EACtBC,kBAAkB,EAClBC,eAAgB,QAChBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,GAGhB/+C,GAAQg/C,eACVh/C,GAAQq+C,UAAYr+C,GAAQg/C,cAG9B,IAAInc,GAAUlqE,GAAeA,GAAe,CAAC,EAAGulF,IAAWl+C,IAEtD6iC,GAAQ0b,iBAAgB1b,GAAQ8b,kBAAmB,GACxD,IAAIz2G,GAAS,CAAC,EACdvsE,OAAOmH,KAAKo7K,IAAUx4K,SAAQ,SAAUvK,GACtCQ,OAAOwB,eAAe+qE,GAAQ/sE,EAAK,CACjCH,YAAY,EACZqN,IAAK,SAAa2B,GAChB64J,GAAQ1nK,GAAO6O,EAEfi1K,GAAYv5K,SAAQ,SAAU0mB,GAC5B,OAAOA,EAAG87C,GACZ,GACF,EACAvpE,IAAK,WACH,OAAOkkK,GAAQ1nK,EACjB,GAEJ,IAEAQ,OAAOwB,eAAe+qE,GAAQ,eAAgB,CAC5CltE,YAAY,EACZqN,IAAK,SAAa2B,GAChB64J,GAAQwb,UAAYr0K,EAEpBi1K,GAAYv5K,SAAQ,SAAU0mB,GAC5B,OAAOA,EAAG87C,GACZ,GACF,EACAvpE,IAAK,WACH,OAAOkkK,GAAQwb,SACjB,IAEFpE,GAAO6D,kBAAoB51G,GAC3B,IAAI+2G,GAAc,GASlB,IAAIp9J,GAAI24J,GACJ0E,GAAuB,CACzBv8H,KAAM,GACN9oB,EAAG,EACH2I,EAAG,EACH6K,OAAQ,EACR8xI,OAAO,EACPC,OAAO,GAyBT,IAAIC,GAAS,iEACb,SAASC,KAIP,IAHA,IAAI38H,EAAO,GACPr+C,EAAK,GAEFq+C,KAAS,GACdr+C,GAAM+6K,GAAuB,GAAhB79K,KAAK2I,SAAgB,GAGpC,OAAO7F,CACT,CACA,SAASstI,GAAQt3I,GAGf,IAFA,IAAIo9F,EAAQ,GAEH78F,GAAKP,GAAO,IAAIQ,SAAW,EAAGD,KACrC68F,EAAM78F,GAAKP,EAAIO,GAGjB,OAAO68F,CACT,CACA,SAAS6nF,GAAWj8H,GAClB,OAAIA,EAAKk8H,UACA5tC,GAAQtuF,EAAKk8H,YAEZl8H,EAAK06H,aAAa,UAAY,IAAIj/K,MAAM,KAAK2iD,QAAO,SAAU7mD,GACpE,OAAOA,CACT,GAEJ,CACA,SAAS4kL,GAAW5mJ,GAClB,MAAO,GAAG9yB,OAAO8yB,GAAK9nB,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OAClI,CAMA,SAAS2uK,GAAWzhI,GAClB,OAAOtiD,OAAOmH,KAAKm7C,GAAU,CAAC,GAAGy1F,QAAO,SAAUC,EAAKgsC,GACrD,OAAOhsC,EAAM,GAAG5tI,OAAO45K,EAAW,MAAM55K,OAAOk4C,EAAO0hI,GAAW3xJ,OAAQ,IAC3E,GAAG,GACL,CACA,SAAS4xJ,GAAsBtxI,GAC7B,OAAOA,EAAUqU,OAASu8H,GAAqBv8H,MAAQrU,EAAUzU,IAAMqlJ,GAAqBrlJ,GAAKyU,EAAU9L,IAAM08I,GAAqB18I,GAAK8L,EAAUjB,SAAW6xI,GAAqB7xI,QAAUiB,EAAU6wI,OAAS7wI,EAAU8wI,KAC9N,CA8CA,IAAIS,GAAa,iwrBAEjB,SAASC,KACP,IAAIC,EAAMtF,GACNuF,EAAMtF,GACNuF,EAAK/3G,GAAOm2G,UACZjzE,EAAKljC,GAAOo2G,iBACZh1K,EAAIu2K,GAER,GAAII,IAAOF,GAAO30E,IAAO40E,EAAK,CAC5B,IAAIE,EAAQ,IAAIzjD,OAAO,MAAM12H,OAAOg6K,EAAK,OAAQ,KAC7CI,EAAiB,IAAI1jD,OAAO,OAAO12H,OAAOg6K,EAAK,OAAQ,KACvDK,EAAQ,IAAI3jD,OAAO,MAAM12H,OAAOi6K,GAAM,KAC1C12K,EAAIA,EAAEyH,QAAQmvK,EAAO,IAAIn6K,OAAOk6K,EAAI,MAAMlvK,QAAQovK,EAAgB,KAAKp6K,OAAOk6K,EAAI,MAAMlvK,QAAQqvK,EAAO,IAAIr6K,OAAOqlG,GACpH,CAEA,OAAO9hG,CACT,CAEA,IAAI+2K,IAAe,EAEnB,SAASC,KACHp4G,GAAOs2G,aAAe6B,MAvI5B,SAAmBP,GACjB,GAAKA,GAAQzF,GAAb,CAIA,IAAI5zK,EAAQyzK,GAASp7K,cAAc,SACnC2H,EAAM0xB,aAAa,OAAQ,YAC3B1xB,EAAMkM,UAAYmtK,EAIlB,IAHA,IAAIS,EAAerG,GAAStb,KAAK7qE,WAC7BysF,EAAc,KAET3lL,EAAI0lL,EAAazlL,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACjD,IAAIwuG,EAAQk3E,EAAa1lL,GACrB4X,GAAW42F,EAAM52F,SAAW,IAAI4rF,cAEhC,CAAC,QAAS,QAAQh2E,QAAQ5V,IAAY,IACxC+tK,EAAcn3E,EAElB,CAEA6wE,GAAStb,KAAKvzF,aAAa5kE,EAAO+5K,EAjBlC,CAmBF,CAkHIC,CAAUX,MACVO,IAAe,EAEnB,CAEA,IAAIK,GAAY,CACdC,OAAQ,WACN,MAAO,CACLC,IAAK,CACHd,IAAKA,GACLW,UAAWH,IAGjB,EACAO,MAAO,WACL,MAAO,CACLC,yBAA0B,WACxBR,IACF,EACAS,YAAa,WACXT,IACF,EAEJ,GAGE37K,GAAIs1K,IAAU,CAAC,EACdt1K,GAAE41K,MAAuB51K,GAAE41K,IAAwB,CAAC,GACpD51K,GAAE41K,IAAsBt8H,SAAQt5C,GAAE41K,IAAsBt8H,OAAS,CAAC,GAClEt5C,GAAE41K,IAAsBsG,QAAOl8K,GAAE41K,IAAsBsG,MAAQ,CAAC,GAChEl8K,GAAE41K,IAAsByG,QAAOr8K,GAAE41K,IAAsByG,MAAQ,IACpE,IAAIC,GAAYt8K,GAAE41K,IAEd2G,GAAY,GAUZr6H,IAAS,EAYb,SAASs6H,GAAOC,GACd,IAAI14K,EAAM04K,EAAc14K,IACpB24K,EAAwBD,EAAc/uJ,WACtCA,OAAuC,IAA1BgvJ,EAAmC,CAAC,EAAIA,EACrDC,EAAwBF,EAAcrnG,SACtCA,OAAqC,IAA1BunG,EAAmC,GAAKA,EAEvD,MAA6B,kBAAlBF,EACF3B,GAAW2B,GAEX,IAAIr7K,OAAO2C,EAAK,KAAK3C,OAlJhC,SAAwBssB,GACtB,OAAO12B,OAAOmH,KAAKuvB,GAAc,CAAC,GAAGqhH,QAAO,SAAUC,EAAK51C,GACzD,OAAO41C,EAAM,GAAG5tI,OAAOg4F,EAAe,MAAOh4F,OAAO05K,GAAWptJ,EAAW0rE,IAAiB,KAC7F,GAAG,IAAI/vE,MACT,CA8IuCuzJ,CAAelvJ,GAAa,KAAKtsB,OAAOg0E,EAAS+mD,IAAIqgD,IAAQv7K,KAAK,IAAK,MAAMG,OAAO2C,EAAK,IAEhI,CAEA,SAAS84K,GAAgBC,EAASxyK,EAAQgoK,GACxC,GAAIwK,GAAWA,EAAQxyK,IAAWwyK,EAAQxyK,GAAQgoK,GAChD,MAAO,CACLhoK,OAAQA,EACRgoK,SAAUA,EACVC,KAAMuK,EAAQxyK,GAAQgoK,GAG5B,CAhCIoD,MACFxzH,IAAUqzH,GAASr4K,gBAAgB6/K,SAAW,aAAe,iBAAiBn5K,KAAK2xK,GAASnxJ,cAC/EmxJ,GAASrtJ,iBAAiB,oBAZ1B,SAASxZ,IACtB6mK,GAASxsJ,oBAAoB,mBAAoBra,GACjDwzC,GAAS,EACTq6H,GAAUpgD,KAAI,SAAU1iI,GACtB,OAAOA,GACT,GACF,KA2CA,IAmBIs1I,GAAS,SAA0BiuC,EAASvjL,EAAI0jG,EAAc8/E,GAChE,IAGI/mL,EACAM,EACAgE,EALA2D,EAAOnH,OAAOmH,KAAK6+K,GACnB7mL,EAASgI,EAAKhI,OACd8R,OAA2BtO,IAAhBsjL,EAtBG,SAAuB3oK,EAAM2oK,GAC/C,OAAO,SAAUrjL,EAAGC,EAAGC,EAAGojB,GACxB,OAAO5I,EAAKpd,KAAK+lL,EAAarjL,EAAGC,EAAGC,EAAGojB,EACzC,CACF,CAkB6CggK,CAAczjL,EAAIwjL,GAAexjL,EAa5E,SARqBE,IAAjBwjG,GACFjnG,EAAI,EACJsE,EAASwiL,EAAQ7+K,EAAK,MAEtBjI,EAAI,EACJsE,EAAS2iG,GAGJjnG,EAAIC,EAAQD,IAEjBsE,EAASyN,EAASzN,EAAQwiL,EAD1BxmL,EAAM2H,EAAKjI,IAC6BM,EAAKwmL,GAG/C,OAAOxiL,CACT,EAoDA,SAAS2iL,GAAMC,GACb,IAAIx9B,EA3BN,SAAoBz/F,GAKlB,IAJA,IAAIk9H,EAAS,GACTzrC,EAAU,EACVz7I,EAASgqD,EAAOhqD,OAEby7I,EAAUz7I,GAAQ,CACvB,IAAIuB,EAAQyoD,EAAOr7C,WAAW8sI,KAE9B,GAAIl6I,GAAS,OAAUA,GAAS,OAAUk6I,EAAUz7I,EAAQ,CAC1D,IAAIqmE,EAAQrc,EAAOr7C,WAAW8sI,KAEN,QAAX,MAARp1E,GAEH6gH,EAAOxiL,OAAe,KAARnD,IAAkB,KAAe,KAAR8kE,GAAiB,QAExD6gH,EAAOxiL,KAAKnD,GACZk6I,IAEJ,MACEyrC,EAAOxiL,KAAKnD,EAEhB,CAEA,OAAO2lL,CACT,CAGgBC,CAAWF,GACzB,OAA0B,IAAnBx9B,EAAQzpJ,OAAeypJ,EAAQ,GAAGzmJ,SAAS,IAAM,IAC1D,CAiBA,SAASokL,GAAeC,GACtB,OAAOxmL,OAAOmH,KAAKq/K,GAAOzuC,QAAO,SAAUC,EAAKsjC,GAC9C,IAAIC,EAAOiL,EAAMlL,GASjB,QARiBC,EAAKA,KAGpBvjC,EAAIujC,EAAKD,UAAYC,EAAKA,KAE1BvjC,EAAIsjC,GAAYC,EAGXvjC,CACT,GAAG,CAAC,EACN,CAEA,SAASyuC,GAAYnzK,EAAQkzK,GAC3B,IACIE,GADS5mL,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACnD6mL,UAC3BA,OAAkC,IAAtBD,GAAuCA,EACnDvlB,EAAaolB,GAAeC,GAEO,oBAA5BlB,GAAUJ,MAAM0B,SAA2BD,EAGpDrB,GAAUhjI,OAAOhvC,GAAU0pF,GAAeA,GAAe,CAAC,EAAGsoF,GAAUhjI,OAAOhvC,IAAW,CAAC,GAAI6tJ,GAF9FmkB,GAAUJ,MAAM0B,QAAQtzK,EAAQizK,GAAeC,IAYlC,QAAXlzK,GACFmzK,GAAY,KAAMD,EAEtB,CAEA,IAaIK,GAAaC,GAAWC,GACxBzkI,GAASgjI,GAAUhjI,OACnB+iI,GAAQC,GAAUD,MAClB2B,IAAgCpoL,GAAlBioL,GAAc,CAAC,EAAgCpH,GAAgBz/K,OAAOuI,OAAOg4K,GAAqBd,MAAmB7gL,GAAgBioL,GAAanH,GAAc1/K,OAAOuI,OAAOg4K,GAAqBb,MAAiBmH,IAClOI,GAAuB,KACvBC,GAAa,CAAC,EACdC,GAAc,CAAC,EACfC,GAAa,CAAC,EACdC,GAAgB,CAAC,EACjBC,GAAW,CAAC,EACZC,IAA4B3oL,GAAhBkoL,GAAY,CAAC,EAA8BrH,GAAgBz/K,OAAOmH,KAAK24K,GAAgBL,MAAmB7gL,GAAgBkoL,GAAWpH,GAAc1/K,OAAOmH,KAAK24K,GAAgBJ,MAAiBoH,IAMhN,SAASU,GAAY9E,EAAW+E,GAC9B,IALkBpjL,EAKd0wJ,EAAQ0yB,EAAIrkL,MAAM,KAClBkQ,EAASyhJ,EAAM,GACfumB,EAAWvmB,EAAM3yJ,MAAM,GAAG6H,KAAK,KAEnC,OAAIqJ,IAAWovK,GAA0B,KAAbpH,IATVj3K,EASyCi3K,GARnD4G,GAAiBx1J,QAAQroB,IAWxB,KAFAi3K,CAIX,CACA,IA7akB7qJ,GA6ad+qI,GAAQ,WACV,IAAIksB,EAAS,SAAgB3wB,GAC3B,OAAOhf,GAAOz1F,IAAQ,SAAUztC,EAAG/J,EAAOwI,GAExC,OADAuB,EAAEvB,GAAUykI,GAAOjtI,EAAOisJ,EAAS,CAAC,GAC7BliJ,CACT,GAAG,CAAC,EACN,EAEAqyK,GAAaQ,GAAO,SAAU1vC,EAAKujC,EAAMD,IACnCC,EAAK,KACPvjC,EAAIujC,EAAK,IAAMD,GAGbC,EAAK,KACOA,EAAK,GAAGx1H,QAAO,SAAUnjD,GACrC,MAAoB,kBAANA,CAChB,IACQmH,SAAQ,SAAU49K,GACxB3vC,EAAI2vC,EAAMxlL,SAAS,KAAOm5K,CAC5B,IAGF,OAAOtjC,CACT,IACAmvC,GAAcO,GAAO,SAAU1vC,EAAKujC,EAAMD,IACxCtjC,EAAIsjC,GAAYA,EAEZC,EAAK,KACOA,EAAK,GAAGx1H,QAAO,SAAUnjD,GACrC,MAAoB,kBAANA,CAChB,IACQmH,SAAQ,SAAU49K,GACxB3vC,EAAI2vC,GAASrM,CACf,IAGF,OAAOtjC,CACT,IACAsvC,GAAWI,GAAO,SAAU1vC,EAAKujC,EAAMD,GACrC,IAAIsM,EAAUrM,EAAK,GAKnB,OAJAvjC,EAAIsjC,GAAYA,EAChBsM,EAAQ79K,SAAQ,SAAU49K,GACxB3vC,EAAI2vC,GAASrM,CACf,IACOtjC,CACT,IAGA,IAAI6vC,EAAa,QAASvlI,IAAUiqB,GAAOu7G,aACvCC,EAAchwC,GAAOstC,IAAO,SAAUrtC,EAAKz8C,GAC7C,IAAIysF,EAAwBzsF,EAAK,GAC7BjoF,EAASioF,EAAK,GACd+/E,EAAW//E,EAAK,GAoBpB,MAlBe,QAAXjoF,GAAqBu0K,IACvBv0K,EAAS,OAG0B,kBAA1B00K,IACThwC,EAAI3rI,MAAM27K,GAAyB,CACjC10K,OAAQA,EACRgoK,SAAUA,IAIuB,kBAA1B0M,IACThwC,EAAIiwC,SAASD,EAAsB7lL,SAAS,KAAO,CACjDmR,OAAQA,EACRgoK,SAAUA,IAIPtjC,CACT,GAAG,CACD3rI,MAAO,CAAC,EACR47K,SAAU,CAAC,IAEbb,GAAaW,EAAY17K,MACzBg7K,GAAgBU,EAAYE,SAC5BhB,GAAuBiB,GAAmB37G,GAAOi2G,aAAc,CAC7Dh7H,OAAQ+kB,GAAOk2G,eAEnB,EAOA,SAAS0F,GAAU70K,EAAQ8yK,GACzB,OAAQc,GAAW5zK,IAAW,CAAC,GAAG8yK,EACpC,CAIA,SAASgC,GAAQ90K,EAAQq0K,GACvB,OAAQL,GAASh0K,IAAW,CAAC,GAAGq0K,EAClC,CACA,SAASU,GAAUhkL,GACjB,OAAO+iL,GAAW/iL,IAAS,CACzBiP,OAAQ,KACRgoK,SAAU,KAEd,CAYA,SAASgN,KACP,OAAOrB,EACT,CAliBkBx2J,GAggBT,SAAU3tB,GACjBmkL,GAAuBiB,GAAmBplL,EAAE0/K,aAAc,CACxDh7H,OAAQ+kB,GAAOk2G,eAEnB,EAngBEa,GAAYz/K,KAAK4sB,IAogBnB+qI,KA8BA,IAAI+sB,GAAqB,WACvB,MAAO,CACLj1K,OAAQ,KACRgoK,SAAU,KACV3xB,KAAM,GAEV,EACA,SAASu+B,GAAmBM,GAC1B,IACIC,GADS3oL,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACtD0nD,OACxBA,OAA4B,IAAnBihI,EAA4BhJ,GAAiBgJ,EACtD39K,EAAQg1K,GAAgBt4H,GAAQghI,GAChCl1K,EAASysK,GAAgBv4H,GAAQghI,IAAkBzI,GAAgBv4H,GAAQ18C,GAC3E0C,EAAUg7K,KAAiBlD,GAAUhjI,OAASkmI,EAAgB,KAClE,OAAOl1K,GAAU9F,GAAW,IAC9B,CACA,IAAIk7K,IAAkD9pL,GAA3BmoL,GAAuB,CAAC,EAAyCtH,GAAgBz/K,OAAOmH,KAAKo5K,GAAqBd,MAAmB7gL,GAAgBmoL,GAAsBrH,GAAc1/K,OAAOmH,KAAKo5K,GAAqBb,MAAiBqH,IACtQ,SAAS4B,GAAiBpgL,GACxB,IAAIqgL,EAGAC,GADS/oL,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACjDgpL,YAC7BA,OAAsC,IAAxBD,GAAyCA,EACvDE,GAA4BnqL,GAAhBgqL,EAAY,CAAC,EAA8BnJ,GAAgB,GAAGr1K,OAAOmiE,GAAOm2G,UAAW,KAAKt4K,OAAOq1K,KAAkB7gL,GAAgBgqL,EAAWlJ,GAAc,GAAGt1K,OAAOmiE,GAAOm2G,UAAW,KAAKt4K,OAAOs1K,KAAgBkJ,GAClOI,EAAc,KACdxhI,EAASi4H,IAETl3K,EAAOk8F,SAASskF,EAAStJ,MAAoBl3K,EAAOo1I,MAAK,SAAU53H,GACrE,OAAO2iK,GAAoBjJ,IAAgBh7E,SAAS1+E,EACtD,OACEyhC,EAASi4H,KAGPl3K,EAAOk8F,SAASskF,EAASrJ,MAAkBn3K,EAAOo1I,MAAK,SAAU53H,GACnE,OAAO2iK,GAAoBhJ,IAAcj7E,SAAS1+E,EACpD,OACEyhC,EAASk4H,IAGX,IAAIuJ,EAAY1gL,EAAOwvI,QAAO,SAAUC,EAAKyvC,GAC3C,IAAInM,EAAWkM,GAAYj7G,GAAOm2G,UAAW+E,GAiB7C,GAfInlI,GAAOmlI,IACTA,EAAMT,GAAWx/H,GAAQi9C,SAASgjF,GAAOtG,GAAqB35H,GAAQigI,GAAOA,EAC7EuB,EAAcvB,EACdzvC,EAAI1kI,OAASm0K,GACJF,GAAS//H,GAAQ96B,QAAQ+6J,IAAQ,GAC1CuB,EAAcvB,EACdzvC,EAAI1kI,OAAS40K,GAAmBT,EAAK,CACnCjgI,OAAQA,KAED8zH,EACTtjC,EAAIsjC,SAAWA,EACNmM,IAAQl7G,GAAOo2G,kBAAoB8E,IAAQsB,EAAStJ,KAAmBgI,IAAQsB,EAASrJ,KACjG1nC,EAAI2R,KAAK9lJ,KAAK4jL,IAGXqB,GAAe9wC,EAAI1kI,QAAU0kI,EAAIsjC,SAAU,CAC9C,IAAI//E,EAAuB,OAAhBytF,EAAuBX,GAAUrwC,EAAIsjC,UAAY,CAAC,EACzD4N,EAAgBd,GAAQpwC,EAAI1kI,OAAQ0kI,EAAIsjC,UAExC//E,EAAKjoF,SACP01K,EAAc,MAGhBhxC,EAAIsjC,SAAW//E,EAAK+/E,UAAY4N,GAAiBlxC,EAAIsjC,SACrDtjC,EAAI1kI,OAASioF,EAAKjoF,QAAU0kI,EAAI1kI,OAEb,QAAf0kI,EAAI1kI,QAAqBgvC,GAAY,MAAKA,GAAY,KAAMiqB,GAAOu7G,eAGrE9vC,EAAI1kI,OAAS,MAEjB,CAEA,OAAO0kI,CACT,GAAGuwC,MAqBH,OAnBIhgL,EAAOk8F,SAAS,cAAgBl8F,EAAOk8F,SAAS,UAClDwkF,EAAU31K,OAAS,QAGjB/K,EAAOk8F,SAAS,eAAiBl8F,EAAOk8F,SAAS,UACnDwkF,EAAU31K,OAAS,OAGhB21K,EAAU31K,QAAUk0C,IAAWk4H,KAAiBp9H,GAAa,OAAKiqB,GAAOu7G,eAC5EmB,EAAU31K,OAAS,OACnB21K,EAAU3N,SAAW8M,GAAQa,EAAU31K,OAAQ21K,EAAU3N,WAAa2N,EAAU3N,UAGzD,OAArB2N,EAAU31K,QAAmC,OAAhB01K,IAG/BC,EAAU31K,OAASg1K,MAA4B,OAG1CW,CACT,CAEA,IAAIE,GAAuB,WACzB,SAASA,KArhCX,SAAyB3qL,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,oCAExB,CAkhCIynI,CAAgB9gI,KAAM8jL,GAEtB9jL,KAAK+jL,YAAc,CAAC,CACtB,CAzgCF,IAAsB3qL,EAAagB,EAAYC,EA+jC7C,OA/jCoBjB,EA2gCP0qL,EA3gCoB1pL,EA2gCX,CAAC,CACrBD,IAAK,MACLkB,MAAO,WAGL,IAFA,IAAI0iI,EAAQ/9H,KAEHq5F,EAAO5+F,UAAUX,OAAQiqL,EAAc,IAAI/iL,MAAMq4F,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACtFyqF,EAAYzqF,GAAQ7+F,UAAU6+F,GAGhC,IAAI0qF,EAAYD,EAAYrxC,OAAO1yI,KAAKikL,iBAAkB,CAAC,GAC3DtpL,OAAOmH,KAAKkiL,GAAWt/K,SAAQ,SAAUvK,GACvC4jI,EAAMgmD,YAAY5pL,GAAOw9F,GAAeA,GAAe,CAAC,EAAGomC,EAAMgmD,YAAY5pL,IAAQ,CAAC,GAAI6pL,EAAU7pL,IACpGinL,GAAYjnL,EAAK6pL,EAAU7pL,IAE3B,IAAI+pL,EAAahJ,GAAqBd,IAAgBjgL,GAClD+pL,GAAY9C,GAAY8C,EAAYF,EAAU7pL,IAClDg8J,IACF,GACF,GACC,CACDh8J,IAAK,QACLkB,MAAO,WACL2E,KAAK+jL,YAAc,CAAC,CACtB,GACC,CACD5pL,IAAK,mBACLkB,MAAO,SAA0B2oL,EAAW3jC,GAC1C,IAAIyb,EAAazb,EAAWpyI,QAAUoyI,EAAW41B,UAAY51B,EAAW61B,KAAO,CAC7E,EAAG71B,GACDA,EAmBJ,OAlBA1lJ,OAAOmH,KAAKg6J,GAAYh8B,KAAI,SAAU3lI,GACpC,IAAIgqL,EAAkBroB,EAAW3hK,GAC7B8T,EAASk2K,EAAgBl2K,OACzBgoK,EAAWkO,EAAgBlO,SAC3BC,EAAOiO,EAAgBjO,KACvBqM,EAAUrM,EAAK,GACd8N,EAAU/1K,KAAS+1K,EAAU/1K,GAAU,CAAC,GAEzCs0K,EAAQzoL,OAAS,GACnByoL,EAAQ79K,SAAQ,SAAU49K,GACH,kBAAVA,IACT0B,EAAU/1K,GAAQq0K,GAASpM,EAE/B,IAGF8N,EAAU/1K,GAAQgoK,GAAYC,CAChC,IACO8N,CACT,IA3jCE5pL,GAAY2mI,GAAkB3nI,EAAYkB,UAAWF,GACrDC,GAAa0mI,GAAkB3nI,EAAaiB,GAChDM,OAAOwB,eAAe/C,EAAa,YAAa,CAC9Cc,UAAU,IA2jCL4pL,CACT,CA5D2B,GA8DvBM,GAAW,GACXC,GAAS,CAAC,EACVC,GAAY,CAAC,EACbC,GAAsB5pL,OAAOmH,KAAKwiL,IA+CtC,SAASE,GAAWC,EAAMC,GACxB,IAAK,IAAIrrF,EAAO5+F,UAAUX,OAAQgT,EAAO,IAAI9L,MAAMq4F,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGxsF,EAAKwsF,EAAO,GAAK7+F,UAAU6+F,GAO7B,OAJc+qF,GAAOI,IAAS,IACtB//K,SAAQ,SAAUigL,GACxBD,EAAcC,EAAOjnL,MAAM,KAAM,CAACgnL,GAAa3/K,OAAO+H,GACxD,IACO43K,CACT,CACA,SAASE,GAAUH,GACjB,IAAK,IAAItoB,EAAQ1hK,UAAUX,OAAQgT,EAAO,IAAI9L,MAAMm7J,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGtvJ,EAAKsvJ,EAAQ,GAAK3hK,UAAU2hK,IAGhBioB,GAAOI,IAAS,IACtB//K,SAAQ,SAAUigL,GACxBA,EAAOjnL,MAAM,KAAMoP,EACrB,GAEF,CACA,SAAS+3K,KACP,IAAIJ,EAAOhqL,UAAU,GACjBqS,EAAO9L,MAAM1G,UAAUyC,MAAMlC,KAAKJ,UAAW,GACjD,OAAO6pL,GAAUG,GAAQH,GAAUG,GAAM/mL,MAAM,KAAMoP,QAAQxP,CAC/D,CAEA,SAASwnL,GAAmBC,GACA,OAAtBA,EAAW92K,SACb82K,EAAW92K,OAAS,OAGtB,IAAIgoK,EAAW8O,EAAW9O,SACtBhoK,EAAS82K,EAAW92K,QAAUg1K,KAClC,GAAKhN,EAEL,OADAA,EAAW8M,GAAQ90K,EAAQgoK,IAAaA,EACjCuK,GAAgBwE,GAAQjB,YAAa91K,EAAQgoK,IAAauK,GAAgBP,GAAUhjI,OAAQhvC,EAAQgoK,EAC7G,CACA,IAAI+O,GAAU,IAAIlB,GAMdlE,GAAM,CACRqF,MAAO,WACL,IAAI90J,EAAS11B,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAElF,OAAI4+K,IACFuL,GAAU,cAAez0J,GACzB00J,GAAa,qBAAsB10J,GAC5B00J,GAAa,QAAS10J,IAEtB+sF,QAAQogD,OAAO,yCAE1B,EACA4nB,MAAO,WACL,IAtmBe9nL,EAsmBX+yB,EAAS11B,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E0qL,EAAqBh1J,EAAOg1J,oBAEF,IAA1Bj+G,GAAOq2G,iBACTr2G,GAAOq2G,gBAAiB,GAG1Br2G,GAAOy2G,kBAAmB,EA7mBXvgL,EA8mBN,WACPgoL,GAAY,CACVD,mBAAoBA,IAEtBP,GAAU,QAASz0J,EACrB,EAlnBGkpJ,KACLxzH,GAAS70C,WAAW5T,EAAI,GAAK8iL,GAAU1hL,KAAKpB,GAknB5C,GA4CE6xJ,GAAM,CACRo2B,OA7EW,WACXn+G,GAAOq2G,gBAAiB,EACxBr2G,GAAOy2G,kBAAmB,EAC1BiH,GAAU,SACZ,EA0EE19G,OAAQA,GACR04G,IAAKA,GACLh7J,MA9CU,CACVsxJ,KAAM,SAAcoP,GAClB,GAAc,OAAVA,EACF,OAAO,KAGT,GAAuB,WAAnB1pL,GAAQ0pL,IAAuBA,EAAMr3K,QAAUq3K,EAAMrP,SACvD,MAAO,CACLhoK,OAAQq3K,EAAMr3K,OACdgoK,SAAU8M,GAAQuC,EAAMr3K,OAAQq3K,EAAMrP,WAAaqP,EAAMrP,UAI7D,GAAIj1K,MAAMC,QAAQqkL,IAA2B,IAAjBA,EAAMxrL,OAAc,CAC9C,IAAIm8K,EAAuC,IAA5BqP,EAAM,GAAGj+J,QAAQ,OAAei+J,EAAM,GAAGvoL,MAAM,GAAKuoL,EAAM,GACrEr3K,EAAS40K,GAAmByC,EAAM,IACtC,MAAO,CACLr3K,OAAQA,EACRgoK,SAAU8M,GAAQ90K,EAAQgoK,IAAaA,EAE3C,CAEA,GAAqB,kBAAVqP,IAAuBA,EAAMj+J,QAAQ,GAAGtiB,OAAOmiE,GAAOm2G,UAAW,OAAS,GAAKiI,EAAMvxK,MAAMgoK,KAAiC,CACrI,IAAIwJ,EAAgBjC,GAAiBgC,EAAMvnL,MAAM,KAAM,CACrD0lL,aAAa,IAEf,MAAO,CACLx1K,OAAQs3K,EAAct3K,QAAUg1K,KAChChN,SAAU8M,GAAQwC,EAAct3K,OAAQs3K,EAActP,WAAasP,EAActP,SAErF,CAEA,GAAqB,kBAAVqP,EAAoB,CAC7B,IAAIE,EAAUvC,KAEd,MAAO,CACLh1K,OAAQu3K,EACRvP,SAAU8M,GAAQyC,EAASF,IAAUA,EAEzC,CACF,GAOAN,QAASA,GACTF,mBAAoBA,GACpB3E,OAAQA,IAGNiF,GAAc,WAChB,IACIK,GADShrL,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC/C0qL,mBAC/BA,OAA+C,IAA1BM,EAAmCvM,GAAWuM,GAClE9qL,OAAOmH,KAAKm+K,GAAUhjI,QAAQnjD,OAAS,GAAKotE,GAAOu7G,eAAiBpJ,IAAUnyG,GAAOq2G,gBAAgBtuB,GAAI2wB,IAAIqF,MAAM,CACtH3iI,KAAM6iI,GAEV,EAEA,SAASO,GAAY18K,EAAK28K,GAmBxB,OAlBAhrL,OAAOwB,eAAe6M,EAAK,WAAY,CACrCrL,IAAKgoL,IAEPhrL,OAAOwB,eAAe6M,EAAK,OAAQ,CACjCrL,IAAK,WACH,OAAOqL,EAAI48K,SAAS9lD,KAAI,SAAUviI,GAChC,OAAO4iL,GAAO5iL,EAChB,GACF,IAEF5C,OAAOwB,eAAe6M,EAAK,OAAQ,CACjCrL,IAAK,WACH,GAAK07K,GAAL,CACA,IAAIhpJ,EAAY6oJ,GAASp7K,cAAc,OAEvC,OADAuyB,EAAU1e,UAAY3I,EAAI68K,KACnBx1J,EAAU0oD,QAHE,CAIrB,IAEK/vE,CACT,CAmDA,SAAS88K,GAAsB31J,GAC7B,IAAI41J,EAAgB51J,EAAOgxJ,MACvB6E,EAAOD,EAAcC,KACrBt2H,EAAOq2H,EAAcr2H,KACrBzhD,EAASkiB,EAAOliB,OAChBgoK,EAAW9lJ,EAAO8lJ,SAClB3oI,EAAYnd,EAAOmd,UACnB8nD,EAASjlE,EAAOilE,OAChB/tB,EAAQl3C,EAAOk3C,MACfxO,EAAS1oC,EAAO0oC,OAChB0O,EAAUp3C,EAAOo3C,QACjBpH,EAAQhwC,EAAOgwC,MACf8lH,EAAoB91J,EAAO+1J,UAC3BA,OAAkC,IAAtBD,GAAuCA,EAEnDjsF,EAAOtqC,EAAKrK,MAAQqK,EAAOs2H,EAC3B38J,EAAQ2wE,EAAK3wE,MACbtY,EAASipF,EAAKjpF,OAEdo1K,EAA4B,QAAXl4K,EACjBm4K,EAAY,CAACl/G,GAAOo2G,iBAAkBrH,EAAW,GAAGlxK,OAAOmiE,GAAOm2G,UAAW,KAAKt4K,OAAOkxK,GAAY,IAAIv1H,QAAO,SAAUjjD,GAC5H,OAAqC,IAA9B0iE,EAAMo/E,QAAQl4H,QAAQ5pB,EAC/B,IAAGijD,QAAO,SAAUjjD,GAClB,MAAa,KAANA,KAAcA,CACvB,IAAGsH,OAAOo7D,EAAMo/E,SAAS36I,KAAK,KAC1B0mD,EAAU,CACZytB,SAAU,GACV1nD,WAAYsmE,GAAeA,GAAe,CAAC,EAAGx3B,EAAM9uC,YAAa,CAAC,EAAG,CACnE,cAAepjB,EACf,YAAagoK,EACb,MAASmQ,EACT,KAAQjmH,EAAM9uC,WAAW+tG,MAAQ,MACjC,MAAS,6BACT,QAAW,OAAOr6H,OAAOskB,EAAO,KAAKtkB,OAAOgM,MAG5Cs1K,EAAyBF,KAAoBhmH,EAAMo/E,QAAQl4H,QAAQ,SAAW,CAChFgC,MAAO,GAAGtkB,OAAOskB,EAAQtY,EAAS,GAAK,MAAQ,OAC7C,CAAC,EAEDm1K,IACF56H,EAAQj6B,WAAWsoJ,IAAiB,IAGlCtyG,IACF/b,EAAQytB,SAASv6E,KAAK,CACpBkJ,IAAK,QACL2pB,WAAY,CACV/tB,GAAIgoD,EAAQj6B,WAAW,oBAAsB,SAAStsB,OAAOwiE,GAAW+2G,OAE1EvlG,SAAU,CAAC1R,YAEN/b,EAAQj6B,WAAWg2C,OAG5B,IAAIv6D,EAAO6qF,GAAeA,GAAe,CAAC,EAAGrsC,GAAU,CAAC,EAAG,CACzDr9C,OAAQA,EACRgoK,SAAUA,EACV+P,KAAMA,EACNt2H,KAAMA,EACNmJ,OAAQA,EACRvrB,UAAWA,EACX8nD,OAAQA,EACRn4C,OAAQ06C,GAAeA,GAAe,CAAC,EAAG0uF,GAAyBlmH,EAAMljB,UAGvEy5F,EAAQhnF,EAAKrK,OAAS2gI,EAAK3gI,MAAQw/H,GAAa,uBAAwB/3K,IAAS,CACnFisE,SAAU,GACV1nD,WAAY,CAAC,GACXwzJ,GAAa,uBAAwB/3K,IAAS,CAChDisE,SAAU,GACV1nD,WAAY,CAAC,GAEX0nD,EAAW29D,EAAM39D,SACjB1nD,EAAaqlH,EAAMrlH,WAKvB,OAHAvkB,EAAKisE,SAAWA,EAChBjsE,EAAKukB,WAAaA,EAEd+jE,EArGN,SAAmB4E,GACjB,IAAI/rF,EAAS+rF,EAAK/rF,OACdgoK,EAAWj8E,EAAKi8E,SAChBl9F,EAAWihB,EAAKjhB,SAChB1nD,EAAa2oE,EAAK3oE,WAClB+jE,EAAS4E,EAAK5E,OACd9xF,GAAgB,IAAX8xF,EAAkB,GAAGrwF,OAAOkJ,EAAQ,KAAKlJ,OAAOmiE,GAAOm2G,UAAW,KAAKt4K,OAAOkxK,GAAY7gF,EACnG,MAAO,CAAC,CACN1tF,IAAK,MACL2pB,WAAY,CACV5rB,MAAO,kBAETszE,SAAU,CAAC,CACTrxE,IAAK,SACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGtmE,GAAa,CAAC,EAAG,CAC7D/tB,GAAIA,IAENy1E,SAAUA,KAGhB,CAkFWutG,CAASx5K,GAjIpB,SAAiBktF,GACf,IAAIjhB,EAAWihB,EAAKjhB,SAChBitG,EAAOhsF,EAAKgsF,KACZt2H,EAAOsqC,EAAKtqC,KACZr+B,EAAa2oE,EAAK3oE,WAClB4rB,EAAS+8C,EAAK/8C,OACd3P,EAAY0sD,EAAK1sD,UAErB,GAAIsxI,GAAsBtxI,IAAc04I,EAAK3gI,QAAUqK,EAAKrK,MAAO,CACjE,IAEIrkC,EAAS,CACX6X,EAHUmtJ,EAAK38J,MACJ28J,EAAKj1K,OAEI,EACpBywB,EAAG,IAELnQ,EAAkB,MAAIqtJ,GAAW/mF,GAAeA,GAAe,CAAC,EAAG16C,GAAS,CAAC,EAAG,CAC9E,mBAAoB,GAAGl4C,OAAOic,EAAO6X,EAAIyU,EAAUzU,EAAI,GAAI,OAAO9zB,OAAOic,EAAOwgB,EAAI8L,EAAU9L,EAAI,GAAI,QAE1G,CAEA,MAAO,CAAC,CACN95B,IAAK,MACL2pB,WAAYA,EACZ0nD,SAAUA,GAEd,CA0GWwtG,CAAOz5K,EAElB,CACA,SAAS05K,GAAuBr2J,GAC9B,IAAIm7B,EAAUn7B,EAAOm7B,QACjBjiC,EAAQ8G,EAAO9G,MACftY,EAASof,EAAOpf,OAChBu8B,EAAYnd,EAAOmd,UACnB+5B,EAAQl3C,EAAOk3C,MACflH,EAAQhwC,EAAOgwC,MACfsmH,EAAqBt2J,EAAO+1J,UAC5BA,OAAmC,IAAvBO,GAAwCA,EAEpDp1J,EAAasmE,GAAeA,GAAeA,GAAe,CAAC,EAAGx3B,EAAM9uC,YAAag2C,EAAQ,CAC3F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAASlH,EAAMo/E,QAAQ36I,KAAK,OAG1BshL,IACF70J,EAAWsoJ,IAAiB,IAG9B,IAAI18H,EAAS06C,GAAe,CAAC,EAAGx3B,EAAMljB,QAElC2hI,GAAsBtxI,KACxB2P,EAAkB,UAt8BtB,SAAyBy5F,GACvB,IAAIppG,EAAYopG,EAAMppG,UAClBo5I,EAAchwC,EAAMrtH,MACpBA,OAAwB,IAAhBq9J,EAAyBlN,GAAgBkN,EACjDC,EAAejwC,EAAM3lI,OACrBA,OAA0B,IAAjB41K,EAA0BnN,GAAgBmN,EACnDC,EAAsBlwC,EAAMmwC,cAC5BA,OAAwC,IAAxBD,GAAyCA,EACzD59K,EAAM,GAYV,OATEA,GADE69K,GAAiBvN,GACZ,aAAav0K,OAAOuoC,EAAUzU,EAAIhY,GAAIwI,EAAQ,EAAG,QAAQtkB,OAAOuoC,EAAU9L,EAAI3gB,GAAI9P,EAAS,EAAG,QAC5F81K,EACF,yBAAyB9hL,OAAOuoC,EAAUzU,EAAIhY,GAAG,qBAAqB9b,OAAOuoC,EAAU9L,EAAI3gB,GAAG,SAE9F,aAAa9b,OAAOuoC,EAAUzU,EAAIhY,GAAG,QAAQ9b,OAAOuoC,EAAU9L,EAAI3gB,GAAG,QAG9E7X,GAAO,SAASjE,OAAOuoC,EAAUqU,KAAO9gC,IAAKysB,EAAU6wI,OAAS,EAAI,GAAI,MAAMp5K,OAAOuoC,EAAUqU,KAAO9gC,IAAKysB,EAAU8wI,OAAS,EAAI,GAAI,MACtIp1K,EAAO,UAAUjE,OAAOuoC,EAAUjB,OAAQ,QAE5C,CAi7B0By6I,CAAgB,CACpCx5I,UAAWA,EACXu5I,eAAe,EACfx9J,MAAOA,EACPtY,OAAQA,IAEVksC,EAAO,qBAAuBA,EAAkB,WAGlD,IAAI8pI,EAAcrI,GAAWzhI,GAEzB8pI,EAAYjtL,OAAS,IACvBu3B,EAAkB,MAAI01J,GAGxB,IAAI/9K,EAAM,GAiBV,OAhBAA,EAAIxK,KAAK,CACPkJ,IAAK,OACL2pB,WAAYA,EACZ0nD,SAAU,CAACztB,KAGT+b,GACFr+D,EAAIxK,KAAK,CACPkJ,IAAK,OACL2pB,WAAY,CACVg/I,MAAO,WAETt3F,SAAU,CAAC1R,KAIRr+D,CACT,CAsCA,IAAIg+K,GAAW/G,GAAUhjI,OACzB,SAASgqI,GAAY/Q,GACnB,IAAI7sJ,EAAQ6sJ,EAAK,GACbnlK,EAASmlK,EAAK,GAIdgR,EADe7uF,GADD69E,EAAKn5K,MAAM,GACkB,GACjB,GAoC9B,MAAO,CACLsoD,OAAO,EACPh8B,MAAOA,EACPtY,OAAQA,EACRmlK,KApCEl1K,MAAMC,QAAQimL,GACN,CACRx/K,IAAK,IACL2pB,WAAY,CACVg/I,MAAO,GAAGtrK,OAAOmiE,GAAOm2G,UAAW,KAAKt4K,OAAOw3K,GAAgBC,QAEjEzjG,SAAU,CAAC,CACTrxE,IAAK,OACL2pB,WAAY,CACVg/I,MAAO,GAAGtrK,OAAOmiE,GAAOm2G,UAAW,KAAKt4K,OAAOw3K,GAAgBI,WAC/D7vG,KAAM,eACNjsD,EAAGqmK,EAAW,KAEf,CACDx/K,IAAK,OACL2pB,WAAY,CACVg/I,MAAO,GAAGtrK,OAAOmiE,GAAOm2G,UAAW,KAAKt4K,OAAOw3K,GAAgBG,SAC/D5vG,KAAM,eACNjsD,EAAGqmK,EAAW,OAKV,CACRx/K,IAAK,OACL2pB,WAAY,CACVy7C,KAAM,eACNjsD,EAAGqmK,IAWX,CACA,IAAIC,GAA6B,CAC/B9hI,OAAO,EACPh8B,MAAO,IACPtY,OAAQ,KASV,SAASq2K,GAASnR,EAAUhoK,GAC1B,IAAI01K,EAAc11K,EAMlB,MAJe,OAAXA,GAA2C,OAAxBi5D,GAAOi2G,eAC5BlvK,EAASg1K,MAGJ,IAAI/lE,SAAQ,SAAUG,EAASigD,GAK5BunB,GAAa,uBAGrB,GAAoB,OAAhBlB,EAAsB,CACxB,IAAIztF,EAAO8sF,GAAU/M,IAAa,CAAC,EACnCA,EAAW//E,EAAK+/E,UAAYA,EAC5BhoK,EAASioF,EAAKjoF,QAAUA,CAC1B,CAEA,GAAIgoK,GAAYhoK,GAAU+4K,GAAS/4K,IAAW+4K,GAAS/4K,GAAQgoK,GAE7D,OAAO54D,EAAQ4pE,GADJD,GAAS/4K,GAAQgoK,MA5BlC,SAA4BA,EAAUhoK,GAC/BksK,IAAejzG,GAAO62G,mBAAoB9H,GAC7C3lK,QAAQ9B,MAAM,mBAAoBzJ,OAAOkxK,EAAU,kBAAoBlxK,OAAOkJ,EAAQ,iBAE1F,CA4BIo5K,CAAmBpR,EAAUhoK,GAC7BovG,EAAQ1lB,GAAeA,GAAe,CAAC,EAAGwvF,IAA6B,CAAC,EAAG,CACzEjR,KAAMhvG,GAAO62G,kBAAoB9H,GAAW4O,GAAa,wBAA+B,CAAC,IAE7F,GACF,CAEA,IAAIyC,GAAS,WAAiB,EAE1Bz3K,GAAIq3D,GAAO42G,oBAAsB1E,IAAeA,GAAYX,MAAQW,GAAYV,QAAUU,GAAc,CAC1GX,KAAM6O,GACN5O,QAAS4O,IAEPC,GAAW,aASX1yJ,GAAM,SAAa71B,GACrB6Q,GAAE4oK,KAAK,GAAG1zK,OAAOwiL,GAAU,KAAKxiL,OAAO/F,EAAM,UAC7C6Q,GAAE6oK,QAAQ,GAAG3zK,OAAOwiL,GAAU,KAAKxiL,OAAO/F,GAAO,GAAG+F,OAAOwiL,GAAU,KAAKxiL,OAAO/F,EAAM,WAAY,GAAG+F,OAAOwiL,GAAU,KAAKxiL,OAAO/F,EAAM,SAC3I,EAEIwoL,GAAO,CACTC,MAbU,SAAezoL,GAEzB,OADA6Q,GAAE4oK,KAAK,GAAG1zK,OAAOwiL,GAAU,KAAKxiL,OAAO/F,EAAM,YACtC,WACL,OAAO61B,GAAI71B,EACb,CACF,EASE61B,IAAKA,IAGH6yJ,GAAS,WAAiB,EAE9B,SAASC,GAAUrlI,GAEjB,MAAwB,kBADZA,EAAK06H,aAAe16H,EAAK06H,aAAarD,IAAiB,KAErE,CAqBA,SAASz3J,GAAgBxa,GACvB,OAAOwxK,GAASh3J,gBAAgB,6BAA8Bxa,EAChE,CAEA,SAAS5J,GAAc4J,GACrB,OAAOwxK,GAASp7K,cAAc4J,EAChC,CAEA,SAASkgL,GAAWC,GAClB,IACIC,GADSrtL,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACxDstL,KACtBA,OAAwB,IAAjBD,EAA8C,QAApBD,EAAYngL,IAAgBwa,GAAkBpkB,GAAgBgqL,EAEnG,GAA2B,kBAAhBD,EACT,OAAO3O,GAAS3oD,eAAes3D,GAGjC,IAAIngL,EAAMqgL,EAAKF,EAAYngL,KAU3B,OATA/M,OAAOmH,KAAK+lL,EAAYx2J,YAAc,IAAI3sB,SAAQ,SAAUvK,GAC1DuN,EAAIyvB,aAAah9B,EAAK0tL,EAAYx2J,WAAWl3B,GAC/C,KACe0tL,EAAY9uG,UAAY,IAC9Br0E,SAAQ,SAAU2jG,GACzB3gG,EAAIwkB,YAAY07J,GAAWv/E,EAAO,CAChC0/E,KAAMA,IAEV,IACOrgL,CACT,CAYA,IAAIsgL,GAAW,CACbj4K,QAAS,SAAiBk4K,GACxB,IAAI3lI,EAAO2lI,EAAS,GAEpB,GAAI3lI,EAAKF,WAKP,GAJA6lI,EAAS,GAAGvjL,SAAQ,SAAUwjL,GAC5B5lI,EAAKF,WAAWioB,aAAau9G,GAAWM,GAAY5lI,EACtD,IAEyC,OAArCA,EAAK06H,aAAarD,KAA2BzyG,GAAO22G,mBAAoB,CAC1E,IAAIsK,EAAUjP,GAASkP,cApB/B,SAAuB9lI,GACrB,IAAI6lI,EAAU,IAAIpjL,OAAOu9C,EAAK+lI,UAAW,KAMzC,MAHU,GAAGtjL,OAAOojL,EAAS,gCAI/B,CAY6CG,CAAchmI,IACnDA,EAAKF,WAAWmmI,aAAaJ,EAAS7lI,EACxC,MACEA,EAAKstG,QAGX,EACA44B,KAAM,SAAcP,GAClB,IAAI3lI,EAAO2lI,EAAS,GAChBQ,EAAaR,EAAS,GAG1B,IAAK1J,GAAWj8H,GAAMj7B,QAAQ6/C,GAAOo2G,kBACnC,OAAO0K,GAASj4K,QAAQk4K,GAG1B,IAAIS,EAAS,IAAIjtD,OAAO,GAAG12H,OAAOmiE,GAAOm2G,UAAW,QAGpD,UAFOoL,EAAW,GAAGp3J,WAAW/tB,GAE5BmlL,EAAW,GAAGp3J,WAAWg/I,MAAO,CAClC,IAAIsY,EAAeF,EAAW,GAAGp3J,WAAWg/I,MAAMtyK,MAAM,KAAK20I,QAAO,SAAUC,EAAKyvC,GAOjF,OANIA,IAAQl7G,GAAOo2G,kBAAoB8E,EAAIruK,MAAM20K,GAC/C/1C,EAAIi2C,MAAMpqL,KAAK4jL,GAEfzvC,EAAIk2C,OAAOrqL,KAAK4jL,GAGXzvC,CACT,GAAG,CACDk2C,OAAQ,GACRD,MAAO,KAGTH,EAAW,GAAGp3J,WAAWg/I,MAAQsY,EAAaC,MAAMhkL,KAAK,KAEtB,IAA/B+jL,EAAaE,OAAO/uL,OACtBwoD,EAAK0wC,gBAAgB,SAErB1wC,EAAKnrB,aAAa,QAASwxJ,EAAaE,OAAOjkL,KAAK,KAExD,CAEA,IAAIkkL,EAAeL,EAAW3oD,KAAI,SAAUviI,GAC1C,OAAO4iL,GAAO5iL,EAChB,IAAGqH,KAAK,MAER09C,EAAKnrB,aAAawiJ,GAAe,IACjCr3H,EAAK3wC,UAAYm3K,CACnB,GAGF,SAASC,GAAqBjjK,GAC5BA,GACF,CAEA,SAASkjK,GAAQC,EAAWvhK,GAC1B,IAAIwhK,EAAuC,oBAAbxhK,EAA0BA,EAAWggK,GAEnE,GAAyB,IAArBuB,EAAUnvL,OACZovL,QACK,CACL,IAAIC,EAAQJ,GAER7hH,GAAO02G,iBAAmB3D,KAC5BkP,EAAQlQ,GAAO7pK,uBAAyB25K,IAG1CI,GAAM,WACJ,IAAIC,GA9HsB,IAA1BliH,GAAOq2G,eACFyK,GAASj4K,QAGJi4K,GAAS9gH,GAAOq2G,iBACZyK,GAASj4K,QA0HnB0oK,EAAO+O,GAAKC,MAAM,UACtBwB,EAAUnpD,IAAIspD,GACd3Q,IACAyQ,GACF,GACF,CACF,CACA,IAAI3nF,IAAW,EACf,SAAS8nF,KACP9nF,IAAW,CACb,CACA,SAAS+nF,KACP/nF,IAAW,CACb,CACA,IAAIgoF,GAAK,KACT,SAAS5/C,GAAQt8H,GACf,GAAK8rK,IAIAjyG,GAAOy2G,iBAAZ,CAIA,IAAI6L,EAAwBn8K,EAAQo8K,aAChCA,OAAyC,IAA1BD,EAAmC9B,GAAS8B,EAC3DE,EAAwBr8K,EAAQs8K,aAChCA,OAAyC,IAA1BD,EAAmChC,GAASgC,EAC3DE,EAAwBv8K,EAAQw8K,uBAChCA,OAAmD,IAA1BD,EAAmClC,GAASkC,EACrEE,EAAwBz8K,EAAQ08K,qBAChCA,OAAiD,IAA1BD,EAAmC5Q,GAAW4Q,EACzEP,GAAK,IAAIpQ,IAAkB,SAAU6Q,GACnC,IAAIzoF,GAAJ,CACA,IAAI0oF,EAAgBhH,KACpBryC,GAAQo5C,GAAStlL,SAAQ,SAAUwlL,GAajC,GAZ4B,cAAxBA,EAAenrL,MAAwBmrL,EAAeC,WAAWrwL,OAAS,IAAM6tL,GAAUuC,EAAeC,WAAW,MAClHjjH,GAAOw2G,sBACTmM,EAAuBK,EAAevwL,QAGxC8vL,EAAaS,EAAevwL,SAGF,eAAxBuwL,EAAenrL,MAAyBmrL,EAAevwL,OAAOyoD,YAAc8kB,GAAOw2G,sBACrFmM,EAAuBK,EAAevwL,OAAOyoD,YAGnB,eAAxB8nI,EAAenrL,MAAyB4oL,GAAUuC,EAAevwL,UAAY2iL,GAAgCj1J,QAAQ6iK,EAAentF,eACtI,GAAqC,UAAjCmtF,EAAentF,eA3L3B,SAA0Bz6C,GACxB,IAAIr0C,EAASq0C,EAAK06H,aAAe16H,EAAK06H,aAAalD,IAAe,KAC9D5D,EAAO5zH,EAAK06H,aAAe16H,EAAK06H,aAAajD,IAAa,KAC9D,OAAO9rK,GAAUioK,CACnB,CAuLwDkU,CAAiBF,EAAevwL,QAAS,CACvF,IAAI0wL,EAAoB/G,GAAiB/E,GAAW2L,EAAevwL,SAC/DsU,EAASo8K,EAAkBp8K,OAC3BgoK,EAAWoU,EAAkBpU,SAEjCiU,EAAevwL,OAAOw9B,aAAa2iJ,GAAa7rK,GAAUg8K,GACtDhU,GAAUiU,EAAevwL,OAAOw9B,aAAa4iJ,GAAW9D,EAC9D,MA5LR,SAAyB3zH,GACvB,OAAOA,GAAQA,EAAKk8H,WAAal8H,EAAKk8H,UAAU1mE,UAAYx1D,EAAKk8H,UAAU1mE,SAAS5wC,GAAOo2G,iBAC7F,EA0LmBgN,CAAgBJ,EAAevwL,SACxCgwL,EAAaO,EAAevwL,OAGlC,GA3BoB,CA4BtB,IACK0/K,IACLkQ,GAAG5/C,QAAQogD,EAAsB,CAC/BtvC,WAAW,EACXppH,YAAY,EACZqpH,eAAe,EACfC,SAAS,GA7CX,CA+CF,CA2BA,SAAS4vC,GAAajoI,GACpB,IAAIkoI,EAAiBloI,EAAK06H,aAAa,eACnCyN,EAAmBnoI,EAAK06H,aAAa,aACrC1lJ,OAA+Bh6B,IAAnBglD,EAAKhrB,UAA0BgrB,EAAKhrB,UAAUtK,OAAS,GACnEhkB,EAAMs6K,GAAiB/E,GAAWj8H,IAWtC,OATKt5C,EAAIiF,SACPjF,EAAIiF,OAASg1K,MAGXuH,GAAkBC,IACpBzhL,EAAIiF,OAASu8K,EACbxhL,EAAIitK,SAAWwU,GAGbzhL,EAAIitK,UAAYjtK,EAAIiF,SAIpBjF,EAAIiF,QAAUqpB,EAAUx9B,OAAS,IACnCkP,EAAIitK,SA5+BR,SAAoBhoK,EAAQy8K,GAC1B,OAAQ5I,GAAY7zK,IAAW,CAAC,GAAGy8K,EACrC,CA0+BmBC,CAAW3hL,EAAIiF,OAAQq0C,EAAKhrB,YAAcwrJ,GAAU95K,EAAIiF,OAAQ6yK,GAAMx+H,EAAKhrB,cAGvFtuB,EAAIitK,UAAY/uG,GAAOu7G,cAAgBngI,EAAK4/C,YAAc5/C,EAAK4/C,WAAWI,WAAasoF,KAAKC,YAC/F7hL,EAAIitK,SAAW3zH,EAAK4/C,WAAWr/E,OARxB7Z,CAYX,CA8CA,SAAS8hL,GAAUxoI,GACjB,IAAIm3G,EAASh/J,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAC/EswL,aAAa,GAGXC,EAAeT,GAAYjoI,GAC3B2zH,EAAW+U,EAAa/U,SACxBhoK,EAAS+8K,EAAa/8K,OACtBg9K,EAAeD,EAAa1mC,KAE5B4mC,EAtDN,SAA2B5oI,GACzB,IAAI4oI,EAAkBt6C,GAAQtuF,EAAKjxB,YAAYqhH,QAAO,SAAUC,EAAKh4H,GAKnE,MAJiB,UAAbg4H,EAAI3zI,MAAiC,UAAb2zI,EAAI3zI,OAC9B2zI,EAAIh4H,EAAK3b,MAAQ2b,EAAKtf,OAGjBs3I,CACT,GAAG,CAAC,GACAtrE,EAAQ/kB,EAAK06H,aAAa,SAC1Bz1G,EAAUjlB,EAAK06H,aAAa,oBAWhC,OATI91G,GAAOu2G,WACLp2G,EACF6jH,EAAgB,mBAAqB,GAAGnmL,OAAOmiE,GAAOo2G,iBAAkB,WAAWv4K,OAAOwiE,GAAW+2G,OAErG4M,EAAgB,eAAiB,OACjCA,EAA2B,UAAI,UAI5BA,CACT,CAiCwBC,CAAiB7oI,GACnC8oI,EAAa5G,GAAW,sBAAuB,CAAC,EAAGliI,GACnD+oI,EAAc5xB,EAAOsxB,YA3G3B,SAAsBzoI,GACpB,IAAI78C,EAAQ68C,EAAK06H,aAAa,SAC1Bh0K,EAAM,GAgBV,OAdIvD,IACFuD,EAAMvD,EAAM1H,MAAM,KAAK20I,QAAO,SAAUC,EAAKltI,GAC3C,IAAIw3C,EAASx3C,EAAM1H,MAAM,KACrB8c,EAAOoiC,EAAO,GACd5hD,EAAQ4hD,EAAOlgD,MAAM,GAMzB,OAJI8d,GAAQxf,EAAMvB,OAAS,IACzB64I,EAAI93H,GAAQxf,EAAMuJ,KAAK,KAAKooB,QAGvB2lH,CACT,GAAG,CAAC,IAGC3pI,CACT,CAwFyC+hL,CAAYzoI,GAAQ,GAC3D,OAAOq1C,GAAe,CACpBs+E,SAAUA,EACV5uG,MAAO/kB,EAAK06H,aAAa,SACzBz1G,QAASjlB,EAAK06H,aAAa,oBAC3B/uK,OAAQA,EACRq/B,UAAW4wI,GACXxuH,KAAM,CACJumH,SAAU,KACVhoK,OAAQ,KACRq2I,KAAM,IAERzrF,OAAQ,KACRu8B,QAAQ,EACRj1B,MAAO,CACLo/E,QAAS0rC,EACThuI,OAAQouI,EACRh6J,WAAY65J,IAEbE,EACL,CAEA,IAAIE,GAAWrL,GAAUhjI,OAEzB,SAASsuI,GAAiBjpI,GACxB,IAAIkpI,EAAqC,SAA1BtkH,GAAOq2G,eAA4BuN,GAAUxoI,EAAM,CAChEyoI,aAAa,IACVD,GAAUxoI,GAEf,OAAKkpI,EAASrrH,MAAMo/E,QAAQl4H,QAAQ20J,IAC3B6I,GAAa,qBAAsBviI,EAAMkpI,GAEzC3G,GAAa,iCAAkCviI,EAAMkpI,EAEhE,CAEA,IAAIC,GAAgB,IAAIpvF,IAQxB,SAASqvF,GAAOn0K,GACd,IAAImQ,EAAWjtB,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,KACnF,IAAK4+K,GAAQ,OAAOn8D,QAAQG,UAC5B,IAAIsuE,EAAgBzS,GAASr4K,gBAAgB29K,UAEzCoN,EAAS,SAAgB19K,GAC3B,OAAOy9K,EAAc3rH,IAAI,GAAGj7D,OAAOi1K,GAA6B,KAAKj1K,OAAOmJ,GAC9E,EAEI29K,EAAY,SAAmB39K,GACjC,OAAOy9K,EAAc/7B,OAAO,GAAG7qJ,OAAOi1K,GAA6B,KAAKj1K,OAAOmJ,GACjF,EAEI0uK,EAAW11G,GAAOu7G,aAAegJ,GAAgBnR,GAASx6C,KAAI,SAAUzhI,GAC1E,MAAO,MAAM0G,OAAO1G,EACtB,IAAG0G,OAAOpK,OAAOmH,KAAKwpL,KAEjB1O,EAASx9E,SAAS,OACrBw9E,EAASp+K,KAAK,MAGhB,IAAIstL,EAAmB,CAAC,IAAI/mL,OAAOi3K,GAAuB,UAAUj3K,OAAO40K,GAAe,OAAO50K,OAAO63K,EAAS98C,KAAI,SAAUjwH,GAC7H,MAAO,IAAI9K,OAAO8K,EAAG,UAAU9K,OAAO40K,GAAe,KACvD,KAAI/0K,KAAK,MAET,GAAgC,IAA5BknL,EAAiBhyL,OACnB,OAAOojH,QAAQG,UAGjB,IAAI0uE,EAAa,GAEjB,IACEA,EAAan7C,GAAQr5H,EAAK2uC,iBAAiB4lI,GAC7C,CAAE,MAAOxrL,IAAI,CAGb,KAAIyrL,EAAWjyL,OAAS,GAItB,OAAOojH,QAAQG,UAHfuuE,EAAO,WACPC,EAAU,YAKZ,IAAIpT,EAAO+O,GAAKC,MAAM,UAClBwB,EAAY8C,EAAWr5C,QAAO,SAAUC,EAAKrwF,GAC/C,IACE,IAAI2lI,EAAWsD,GAAiBjpI,GAE5B2lI,GACFt1C,EAAIn0I,KAAKypL,EAEb,CAAE,MAAO3nL,IACF65K,IACY,gBAAX75K,GAAEtB,MACJsR,QAAQ9B,MAAMlO,GAGpB,CAEA,OAAOqyI,CACT,GAAG,IACH,OAAO,IAAIz1B,SAAQ,SAAUG,EAASigD,GACpCpgD,QAAQwwD,IAAIub,GAAW3rE,MAAK,SAAU0uE,GACpChD,GAAQgD,GAAmB,WACzBJ,EAAO,UACPA,EAAO,YACPC,EAAU,WACc,oBAAbnkK,GAAyBA,IACpC+wJ,IACAp7D,GACF,GACF,IAAGE,OAAM,SAAUj9G,GACjBm4K,IACAnb,EAAOh9J,EACT,GACF,GACF,CAEA,SAAS2rL,GAAO3pI,GACd,IAAI56B,EAAWjtB,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,KACnF8wL,GAAiBjpI,GAAMg7D,MAAK,SAAU2qE,GAChCA,GACFe,GAAQ,CAACf,GAAWvgK,EAExB,GACF,CAEA,SAASwkK,GAAa5qL,GACpB,OAAO,SAAU6qL,GACf,IAAIh8J,EAAS11B,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E2xL,GAAkBD,GAAuB,CAAC,GAAGjW,KAAOiW,EAAsBrH,GAAmBqH,GAAuB,CAAC,GACrHz8H,EAAOv/B,EAAOu/B,KAMlB,OAJIA,IACFA,GAAQA,GAAQ,CAAC,GAAGwmH,KAAOxmH,EAAOo1H,GAAmBp1H,GAAQ,CAAC,IAGzDpuD,EAAK8qL,EAAgBz0F,GAAeA,GAAe,CAAC,EAAGxnE,GAAS,CAAC,EAAG,CACzEu/B,KAAMA,IAEV,CACF,CA5GA4qH,GAASx6C,KAAI,SAAU39E,GACrBspI,GAAczrH,IAAI,MAAMj7D,OAAOo9C,GACjC,IACAxnD,OAAOmH,KAAK24K,GAAgBL,KAAiBt6C,IAAI2rD,GAAczrH,IAAIp1C,KAAK6gK,KACxE9wL,OAAOmH,KAAK24K,GAAgBJ,KAAev6C,IAAI2rD,GAAczrH,IAAIp1C,KAAK6gK,KACtEA,GAAgBzT,GAAmByT,IAyGnC,IAAIj6K,GAAS,SAAgB46K,GAC3B,IAAIj8J,EAAS11B,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E4xL,EAAoBl8J,EAAOmd,UAC3BA,OAAkC,IAAtB++I,EAA+BnO,GAAuBmO,EAClEC,EAAiBn8J,EAAOilE,OACxBA,OAA4B,IAAnBk3F,GAAoCA,EAC7CC,EAAep8J,EAAOu/B,KACtBA,OAAwB,IAAjB68H,EAA0B,KAAOA,EACxCC,EAAiBr8J,EAAO0oC,OACxBA,OAA4B,IAAnB2zH,EAA4B,KAAOA,EAC5CC,EAAgBt8J,EAAOk3C,MACvBA,OAA0B,IAAlBolH,EAA2B,KAAOA,EAC1CC,EAAkBv8J,EAAOo3C,QACzBA,OAA8B,IAApBmlH,EAA6B,KAAOA,EAC9CC,EAAkBx8J,EAAOovH,QACzBA,OAA8B,IAApBotC,EAA6B,GAAKA,EAC5CC,EAAqBz8J,EAAOkB,WAC5BA,OAAoC,IAAvBu7J,EAAgC,CAAC,EAAIA,EAClDC,EAAiB18J,EAAO8sB,OACxBA,OAA4B,IAAnB4vI,EAA4B,CAAC,EAAIA,EAC9C,GAAKT,EAAL,CACA,IAAIn+K,EAASm+K,EAAen+K,OACxBgoK,EAAWmW,EAAenW,SAC1BC,EAAOkW,EAAelW,KAC1B,OAAOwP,GAAY/tF,GAAe,CAChC54F,KAAM,QACLqtL,IAAiB,WAelB,OAdAxH,GAAU,2BAA4B,CACpCwH,eAAgBA,EAChBj8J,OAAQA,IAGN+2C,GAAOu2G,WACLp2G,EACFh2C,EAAW,mBAAqB,GAAGtsB,OAAOmiE,GAAOo2G,iBAAkB,WAAWv4K,OAAOwiE,GAAW+2G,OAEhGjtJ,EAAW,eAAiB,OAC5BA,EAAsB,UAAI,UAIvBy0J,GAAsB,CAC3B3E,MAAO,CACL6E,KAAMiB,GAAY/Q,GAClBxmH,KAAMA,EAAOu3H,GAAYv3H,EAAKwmH,MAAQ,CACpC7wH,OAAO,EACPh8B,MAAO,KACPtY,OAAQ,KACRmlK,KAAM,CAAC,IAGXjoK,OAAQA,EACRgoK,SAAUA,EACV3oI,UAAWqqD,GAAeA,GAAe,CAAC,EAAGumF,IAAuB5wI,GACpE8nD,OAAQA,EACR/tB,MAAOA,EACPxO,OAAQA,EACR0O,QAASA,EACTpH,MAAO,CACL9uC,WAAYA,EACZ4rB,OAAQA,EACRsiG,QAASA,IAGf,GA5C2B,CA6C7B,EACIutC,GAAkB,CACpBnN,OAAQ,WACN,MAAO,CACLzJ,KAAMgW,GAAa16K,IAEvB,EACAquK,MAAO,WACL,MAAO,CACLkN,0BAA2B,SAAmCrI,GAG5D,OAFAA,EAAY+E,aAAeiC,GAC3BhH,EAAYiF,aAAesC,GACpBvH,CACT,EAEJ,EACAsI,SAAU,SAAkBC,GAC1BA,EAAahI,MAAQ,SAAU90J,GAC7B,IAAI+8J,EAAe/8J,EAAOmyB,KACtBA,OAAwB,IAAjB4qI,EAA0BhU,GAAWgU,EAC5CC,EAAmBh9J,EAAOzI,SAE9B,OAAOgkK,GAAOppI,OADsB,IAArB6qI,EAA8B,WAAa,EAAIA,EAEhE,EAEAF,EAAaG,+BAAiC,SAAU9qI,EAAMkpI,GAC5D,IAAIvV,EAAWuV,EAASvV,SACpB5uG,EAAQmkH,EAASnkH,MACjBE,EAAUikH,EAASjkH,QACnBt5D,EAASu9K,EAASv9K,OAClBq/B,EAAYk+I,EAASl+I,UACrB8nD,EAASo2F,EAASp2F,OAClB1lC,EAAO87H,EAAS97H,KAChBmJ,EAAS2yH,EAAS3yH,OAClBsH,EAAQqrH,EAASrrH,MACrB,OAAO,IAAI+8C,SAAQ,SAAUG,EAASigD,GACpCpgD,QAAQwwD,IAAI,CAAC0Z,GAASnR,EAAUhoK,GAASyhD,EAAKumH,SAAWmR,GAAS13H,EAAKumH,SAAUvmH,EAAKzhD,QAAUivG,QAAQG,QAAQ,CAC9Gh4D,OAAO,EACPh8B,MAAO,IACPtY,OAAQ,IACRmlK,KAAM,CAAC,MACJ54D,MAAK,SAAUtjB,GAClB,IAAI08C,EAAQr+C,GAAe2B,EAAM,GAC7BgsF,EAAOtvC,EAAM,GACbhnF,EAAOgnF,EAAM,GAEjBr5B,EAAQ,CAAC/6D,EAAMwjI,GAAsB,CACnC3E,MAAO,CACL6E,KAAMA,EACNt2H,KAAMA,GAERzhD,OAAQA,EACRgoK,SAAUA,EACV3oI,UAAWA,EACX8nD,OAAQA,EACRv8B,OAAQA,EACRwO,MAAOA,EACPE,QAASA,EACTpH,MAAOA,EACP+lH,WAAW,KAEf,IAAG3oE,MAAM+/C,EACX,GACF,EAEA2vB,EAAaI,qBAAuB,SAAUC,GAC5C,IAWIr4F,EAXAlc,EAAWu0G,EAAMv0G,SACjB1nD,EAAai8J,EAAMj8J,WACnB20J,EAAOsH,EAAMtH,KACb14I,EAAYggJ,EAAMhgJ,UAElBy5I,EAAcrI,GADL4O,EAAMrwI,QAmBnB,OAhBI8pI,EAAYjtL,OAAS,IACvBu3B,EAAkB,MAAI01J,GAKpBnI,GAAsBtxI,KACxB2nD,EAAY4vF,GAAa,oCAAqC,CAC5DmB,KAAMA,EACN14I,UAAWA,EACXigJ,eAAgBvH,EAAK38J,MACrBmkK,UAAWxH,EAAK38J,SAIpB0vD,EAASv6E,KAAKy2F,GAAa+wF,EAAK9P,MACzB,CACLn9F,SAAUA,EACV1nD,WAAYA,EAEhB,CACF,GAGEo8J,GAAS,CACX9N,OAAQ,WACN,MAAO,CACL9yH,MAAO,SAAe6gI,GACpB,IAAIv9J,EAAS11B,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EkyL,EAAkBx8J,EAAOovH,QACzBA,OAA8B,IAApBotC,EAA6B,GAAKA,EAChD,OAAOjH,GAAY,CACjB3mL,KAAM,UACL,WACD6lL,GAAU,2BAA4B,CACpC8I,UAAWA,EACXv9J,OAAQA,IAEV,IAAI4oD,EAAW,GAMf,OALA20G,GAAU,SAAU5gL,GAClB9L,MAAMC,QAAQ6L,GAAQA,EAAKgzH,KAAI,SAAUviI,GACvCw7E,EAAWA,EAASh0E,OAAOxH,EAAEqoL,SAC/B,IAAK7sG,EAAWA,EAASh0E,OAAO+H,EAAK84K,SACvC,IACO,CAAC,CACNl+K,IAAK,OACL2pB,WAAY,CACVg/I,MAAO,CAAC,GAAGtrK,OAAOmiE,GAAOm2G,UAAW,YAAYt4K,OAAOizK,GAAmBz4B,IAAU36I,KAAK,MAE3Fm0E,SAAUA,GAEd,GACF,EAEJ,GAGE40G,GAAgB,CAClBhO,OAAQ,WACN,MAAO,CACLpqC,QAAS,SAAiBjqF,GACxB,IAAIn7B,EAAS11B,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EgyL,EAAgBt8J,EAAOk3C,MACvBA,OAA0B,IAAlBolH,EAA2B,KAAOA,EAC1CE,EAAkBx8J,EAAOovH,QACzBA,OAA8B,IAApBotC,EAA6B,GAAKA,EAC5CC,EAAqBz8J,EAAOkB,WAC5BA,OAAoC,IAAvBu7J,EAAgC,CAAC,EAAIA,EAClDC,EAAiB18J,EAAO8sB,OACxBA,OAA4B,IAAnB4vI,EAA4B,CAAC,EAAIA,EAC9C,OAAOnH,GAAY,CACjB3mL,KAAM,UACNusD,QAASA,IACR,WAKD,OAJAs5H,GAAU,2BAA4B,CACpCt5H,QAASA,EACTn7B,OAAQA,IA70BpB,SAAmCA,GACjC,IAAIm7B,EAAUn7B,EAAOm7B,QACjB+b,EAAQl3C,EAAOk3C,MACflH,EAAQhwC,EAAOgwC,MAEf9uC,EAAasmE,GAAeA,GAAeA,GAAe,CAAC,EAAGx3B,EAAM9uC,YAAag2C,EAAQ,CAC3F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAASlH,EAAMo/E,QAAQ36I,KAAK,OAG1BmiL,EAAcrI,GAAWv+G,EAAMljB,QAE/B8pI,EAAYjtL,OAAS,IACvBu3B,EAAkB,MAAI01J,GAGxB,IAAI/9K,EAAM,GAiBV,OAhBAA,EAAIxK,KAAK,CACPkJ,IAAK,OACL2pB,WAAYA,EACZ0nD,SAAU,CAACztB,KAGT+b,GACFr+D,EAAIxK,KAAK,CACPkJ,IAAK,OACL2pB,WAAY,CACVg/I,MAAO,WAETt3F,SAAU,CAAC1R,KAIRr+D,CACT,CA4yBiB4kL,CAA0B,CAC/BtiI,QAASA,EAAQxuD,WACjBuqE,MAAOA,EACPlH,MAAO,CACL9uC,WAAYA,EACZ4rB,OAAQA,EACRsiG,QAAS,CAAC,GAAGx6I,OAAOmiE,GAAOm2G,UAAW,oBAAoBt4K,OAAOizK,GAAmBz4B,MAG1F,GACF,EAEJ,GAGEsuC,GAAa,CACflO,OAAQ,WACN,MAAO,CACLh8H,KAAM,SAAc2H,GAClB,IAAIn7B,EAAS11B,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E4xL,EAAoBl8J,EAAOmd,UAC3BA,OAAkC,IAAtB++I,EAA+BnO,GAAuBmO,EAClEI,EAAgBt8J,EAAOk3C,MACvBA,OAA0B,IAAlBolH,EAA2B,KAAOA,EAC1CE,EAAkBx8J,EAAOovH,QACzBA,OAA8B,IAApBotC,EAA6B,GAAKA,EAC5CC,EAAqBz8J,EAAOkB,WAC5BA,OAAoC,IAAvBu7J,EAAgC,CAAC,EAAIA,EAClDC,EAAiB18J,EAAO8sB,OACxBA,OAA4B,IAAnB4vI,EAA4B,CAAC,EAAIA,EAC9C,OAAOnH,GAAY,CACjB3mL,KAAM,OACNusD,QAASA,IACR,WAKD,OAJAs5H,GAAU,2BAA4B,CACpCt5H,QAASA,EACTn7B,OAAQA,IAEHq2J,GAAuB,CAC5Bl7H,QAASA,EACThe,UAAWqqD,GAAeA,GAAe,CAAC,EAAGumF,IAAuB5wI,GACpE+5B,MAAOA,EACPlH,MAAO,CACL9uC,WAAYA,EACZ4rB,OAAQA,EACRsiG,QAAS,CAAC,GAAGx6I,OAAOmiE,GAAOm2G,UAAW,iBAAiBt4K,OAAOizK,GAAmBz4B,MAGvF,GACF,EAEJ,EACAytC,SAAU,SAAkBC,GAC1BA,EAAaa,mBAAqB,SAAUxrI,EAAMkpI,GAChD,IAAInkH,EAAQmkH,EAASnkH,MACjB/5B,EAAYk+I,EAASl+I,UACrB6yB,EAAQqrH,EAASrrH,MACjB92C,EAAQ,KACRtY,EAAS,KAEb,GAAIuoK,GAAO,CACT,IAAIyU,EAAmB32K,SAASskI,iBAAiBp5F,GAAMC,SAAU,IAC7DyrI,EAAqB1rI,EAAK1xC,wBAC9ByY,EAAQ2kK,EAAmB3kK,MAAQ0kK,EACnCh9K,EAASi9K,EAAmBj9K,OAASg9K,CACvC,CAMA,OAJI7mH,GAAOu2G,WAAap2G,IACtBlH,EAAM9uC,WAAW,eAAiB,QAG7B6rF,QAAQG,QAAQ,CAAC/6D,EAAMkkI,GAAuB,CACnDl7H,QAAShJ,EAAK3wC,UACd0X,MAAOA,EACPtY,OAAQA,EACRu8B,UAAWA,EACX+5B,MAAOA,EACPlH,MAAOA,EACP+lH,WAAW,KAEf,CACF,GAGE+H,GAAwB,IAAIxyD,OAAO,IAAM,MACzCyyD,GAA0B,CAAC,QAAS,SAYxC,SAASC,GAAmB7rI,EAAMzjC,GAChC,IAAIuvK,EAAmB,GAAGrpL,OAAO80K,IAAgC90K,OAAO8Z,EAAS9O,QAAQ,IAAK,MAC9F,OAAO,IAAImtG,SAAQ,SAAUG,EAASigD,GACpC,GAA4C,OAAxCh7G,EAAK06H,aAAaoR,GAEpB,OAAO/wE,IAGT,IACIgxE,EADWz9C,GAAQtuF,EAAKy2B,UACiBr4B,QAAO,SAAUjjD,GAC5D,OAAOA,EAAEu/K,aAAapD,MAA4B/6J,CACpD,IAAG,GACCo+B,EAASg8H,GAAOv9B,iBAAiBp5F,EAAMzjC,GACvCwjC,EAAapF,EAAOqxI,iBAAiB,eAAev6K,MAAMkoK,IAC1Dv5H,EAAazF,EAAOqxI,iBAAiB,eACrChjI,EAAUrO,EAAOqxI,iBAAiB,WAEtC,GAAID,IAAkChsI,EAKpC,OADAC,EAAKyE,YAAYsnI,GACVhxE,IACF,GAAIh7D,GAA0B,SAAZiJ,GAAkC,KAAZA,EAAgB,CAC7D,IAAIijI,EAAWtxI,EAAOqxI,iBAAiB,WAEnCnsI,GAAU,CAAC,SAAS96B,QAAQg7B,EAAW,IAAMg4H,GAAeD,GAC5DnsK,GAAU,CAAC,QAAS,UAAW,QAAS,OAAQ,UAAW,SAAU,OAAOoZ,QAAQg7B,EAAW,IAAMq4H,GAAgBv4H,GAAQE,EAAW,GAAGjF,eAAiB8+H,GAAsB/5H,GAAQO,GAE1L8rI,EAxCV,SAA6BljI,GAC3B,IAAImjI,EAAUnjI,EAAQv7C,QAAQk+K,GAAuB,IACjDlqI,EA5qDN,SAAqBD,EAAQjnD,GAC3B,IAEImnD,EAFArC,EAAOmC,EAAOhqD,OACd+8B,EAAQitB,EAAOr7C,WAAW5L,GAG9B,OAAIg6B,GAAS,OAAUA,GAAS,OAAU8qB,EAAO9kD,EAAQ,IACvDmnD,EAASF,EAAOr7C,WAAW5L,EAAQ,KAErB,OAAUmnD,GAAU,MACN,MAAlBntB,EAAQ,OAAkBmtB,EAAS,MAAS,MAIjDntB,CACT,CA8pDkB63J,CAAYD,EAAS,GACjCE,EAAe5qI,GAAamqI,GAAwB,IAAMnqI,GAAamqI,GAAwB,GAC/FU,EAA+B,IAAnBH,EAAQ30L,QAAe20L,EAAQ,KAAOA,EAAQ,GAC9D,MAAO,CACLpzL,MAAmBylL,GAAZ8N,EAAkBH,EAAQ,GAAYA,GAC7CI,YAAaF,GAAgBC,EAEjC,CA+BiCE,CAAoBP,GAC3CQ,EAAWP,EAAqBnzL,MAChCwzL,EAAcL,EAAqBK,YAEnCG,EAAO3sI,EAAW,GAAG2hG,WAAW,eAChCiyB,EAAW6M,GAAU70K,EAAQ8gL,GAC7BE,EAAiBhZ,EAErB,GAAI+Y,EAAM,CACR,IAAIE,EAphDZ,SAAsBnO,GACpB,IAAIoO,EAAanN,GAAcjB,GAC3BqO,EAAatM,GAAU,MAAO/B,GAClC,OAAOoO,IAAeC,EAAa,CACjCnhL,OAAQ,MACRgoK,SAAUmZ,GACR,OAAS,CACXnhL,OAAQ,KACRgoK,SAAU,KAEd,CA0gDwBoZ,CAAaN,GAEzBG,EAAUjZ,UAAYiZ,EAAUjhL,SAClCgoK,EAAWiZ,EAAUjZ,SACrBhoK,EAASihL,EAAUjhL,OAEvB,CAIA,IAAIgoK,GAAa4Y,GAAiBR,GAAiCA,EAA8BrR,aAAalD,MAAiB7rK,GAAUogL,EAA8BrR,aAAajD,MAAekV,EAsCjM5xE,QAtCkN,CAClN/6D,EAAKnrB,aAAai3J,EAAkBa,GAEhCZ,GAEF/rI,EAAKyE,YAAYsnI,GAGnB,IAAIzqL,EApiBH,CACLqyK,SAAU,KACV5uG,MAAO,KACPE,QAAS,KACTt5D,OAAQ,KACRq/B,UAAW4wI,GACX9oF,QAAQ,EACR1lC,KAAM,CACJumH,SAAU,KACVhoK,OAAQ,KACRq2I,KAAM,IAERzrF,OAAQ,KACRsH,MAAO,CACLo/E,QAAS,GACTtiG,OAAQ,CAAC,EACT5rB,WAAY,CAAC,IAqhBP8uC,EAAQv8D,EAAKu8D,MACjBA,EAAM9uC,WAAWuoJ,IAA0B/6J,EAC3CuoK,GAASnR,EAAUhoK,GAAQqvG,MAAK,SAAU0oE,GACxC,IAAIkC,EAAYpC,GAAsBnuF,GAAeA,GAAe,CAAC,EAAG/zF,GAAO,CAAC,EAAG,CACjFu9K,MAAO,CACL6E,KAAMA,EACNt2H,KAAMwzH,MAERj1K,OAAQA,EACRgoK,SAAUgZ,EACV9uH,MAAOA,EACP+lH,WAAW,KAGTtnK,EAAUs6J,GAASh3J,gBAAgB,6BAA8B,OAEpD,aAAbrD,EACFyjC,EAAK+nB,aAAazrD,EAAS0jC,EAAK4/C,YAEhC5/C,EAAKp2B,YAAYtN,GAGnBA,EAAQypK,UAAYH,EAAUpoD,KAAI,SAAUviI,GAC1C,OAAO4iL,GAAO5iL,EAChB,IAAGqH,KAAK,MACR09C,EAAK0wC,gBAAgBo7F,GACrB/wE,GACF,IAAGE,MAAM+/C,EACX,CAGF,MACEjgD,GAEJ,GACF,CAEA,SAASttG,GAAQuyC,GACf,OAAO46D,QAAQwwD,IAAI,CAACygB,GAAmB7rI,EAAM,YAAa6rI,GAAmB7rI,EAAM,YACrF,CAEA,SAASgtI,GAAYhtI,GACnB,OAAOA,EAAKF,aAAexkD,SAASggK,QAAUsc,GAAoC7yJ,QAAQi7B,EAAK7wC,QAAQ4rF,iBAAmB/6C,EAAK06H,aAAapD,OAA6Bt3H,EAAKF,YAA0C,QAA5BE,EAAKF,WAAW3wC,QAC9M,CAEA,SAASisK,GAAqBnmK,GAC5B,GAAK8hK,GACL,OAAO,IAAIn8D,SAAQ,SAAUG,EAASigD,GACpC,IAAIiyB,EAAa3+C,GAAQr5H,EAAK2uC,iBAAiB,MAAMxF,OAAO4uI,IAAaxvD,IAAI/vH,IACzE8kB,EAAM2yJ,GAAKC,MAAM,wBACrB4B,KACAnsE,QAAQwwD,IAAI6hB,GAAYjyE,MAAK,WAC3BzoF,IACAy0J,KACAjsE,GACF,IAAGE,OAAM,WACP1oF,IACAy0J,KACAhsB,GACF,GACF,GACF,CAEA,IAAIkyB,GAAiB,CACnB3P,MAAO,WACL,MAAO,CACLkN,0BAA2B,SAAmCrI,GAE5D,OADAA,EAAYmF,uBAAyBnM,GAC9BgH,CACT,EAEJ,EACAsI,SAAU,SAAkBC,GAC1BA,EAAawC,mBAAqB,SAAUt/J,GAC1C,IAAI+8J,EAAe/8J,EAAOmyB,KACtBA,OAAwB,IAAjB4qI,EAA0BhU,GAAWgU,EAE5ChmH,GAAOw2G,sBACTA,GAAqBp7H,EAEzB,CACF,GAGEotI,IAAa,EAmCbC,GAAuB,SAA8BC,GASvD,OAAOA,EAAgBxyI,cAAcr/C,MAAM,KAAK20I,QAAO,SAAUC,EAAKxlI,GACpE,IAAIuiJ,EAAQviJ,EAAEiwC,cAAcr/C,MAAM,KAC9B84B,EAAQ64H,EAAM,GACdpL,EAAOoL,EAAM3yJ,MAAM,GAAG6H,KAAK,KAE/B,GAAIiyB,GAAkB,MAATytH,EAEX,OADA3R,EAAIwrC,OAAQ,EACLxrC,EAGT,GAAI97G,GAAkB,MAATytH,EAEX,OADA3R,EAAIyrC,OAAQ,EACLzrC,EAKT,GAFA2R,EAAOlJ,WAAWkJ,GAEdv7I,MAAMu7I,GACR,OAAO3R,EAGT,OAAQ97G,GACN,IAAK,OACH87G,EAAIhxF,KAAOgxF,EAAIhxF,KAAO2iG,EACtB,MAEF,IAAK,SACH3R,EAAIhxF,KAAOgxF,EAAIhxF,KAAO2iG,EACtB,MAEF,IAAK,OACH3R,EAAI95G,EAAI85G,EAAI95G,EAAIyrH,EAChB,MAEF,IAAK,QACH3R,EAAI95G,EAAI85G,EAAI95G,EAAIyrH,EAChB,MAEF,IAAK,KACH3R,EAAInxG,EAAImxG,EAAInxG,EAAI8iH,EAChB,MAEF,IAAK,OACH3R,EAAInxG,EAAImxG,EAAInxG,EAAI8iH,EAChB,MAEF,IAAK,SACH3R,EAAItmG,OAASsmG,EAAItmG,OAASi4G,EAI9B,OAAO3R,CACT,GA5DgB,CACdhxF,KAAM,GACN9oB,EAAG,EACH2I,EAAG,EACH28I,OAAO,EACPC,OAAO,EACP/xI,OAAQ,GAuDZ,EACIwjJ,GAAkB,CACpBlQ,OAAQ,WACN,MAAO,CACL/6J,MAAO,CACL0oB,UAAW,SAAmBsiJ,GAC5B,OAAOD,GAAqBC,EAC9B,GAGN,EACA/P,MAAO,WACL,MAAO,CACLiQ,oBAAqB,SAA6BpL,EAAapiI,GAC7D,IAAIstI,EAAkBttI,EAAK06H,aAAa,qBAMxC,OAJI4S,IACFlL,EAAYp3I,UAAYqiJ,GAAqBC,IAGxClL,CACT,EAEJ,EACAsI,SAAU,SAAkB1I,GAC1BA,EAAUyL,kCAAoC,SAAU/1F,GACtD,IAAIgsF,EAAOhsF,EAAKgsF,KACZ14I,EAAY0sD,EAAK1sD,UACjBigJ,EAAiBvzF,EAAKuzF,eACtBC,EAAYxzF,EAAKwzF,UACjBwC,EAAQ,CACV1iJ,UAAW,aAAavoC,OAAOwoL,EAAiB,EAAG,UAEjD0C,EAAiB,aAAalrL,OAAqB,GAAduoC,EAAUzU,EAAQ,MAAM9zB,OAAqB,GAAduoC,EAAU9L,EAAQ,MACtF0uJ,EAAa,SAASnrL,OAAOuoC,EAAUqU,KAAO,IAAMrU,EAAU6wI,OAAS,EAAI,GAAI,MAAMp5K,OAAOuoC,EAAUqU,KAAO,IAAMrU,EAAU8wI,OAAS,EAAI,GAAI,MAC9I+R,EAAc,UAAUprL,OAAOuoC,EAAUjB,OAAQ,SAOjDkjJ,EAAa,CACfS,MAAOA,EACPI,MARU,CACV9iJ,UAAW,GAAGvoC,OAAOkrL,EAAgB,KAAKlrL,OAAOmrL,EAAY,KAAKnrL,OAAOorL,IAQzEvtK,KANS,CACT0qB,UAAW,aAAavoC,OAAOyoL,EAAY,GAAK,EAAG,YAOrD,MAAO,CACL9lL,IAAK,IACL2pB,WAAYsmE,GAAe,CAAC,EAAG43F,EAAWS,OAC1Cj3G,SAAU,CAAC,CACTrxE,IAAK,IACL2pB,WAAYsmE,GAAe,CAAC,EAAG43F,EAAWa,OAC1Cr3G,SAAU,CAAC,CACTrxE,IAAKs+K,EAAK9P,KAAKxuK,IACfqxE,SAAUitG,EAAK9P,KAAKn9F,SACpB1nD,WAAYsmE,GAAeA,GAAe,CAAC,EAAGquF,EAAK9P,KAAK7kJ,YAAak+J,EAAW3sK,UAIxF,CACF,GAGEytK,GAAY,CACdx3J,EAAG,EACH2I,EAAG,EACHnY,MAAO,OACPtY,OAAQ,QAGV,SAASu/K,GAAUpI,GACjB,IAAIhqB,IAAQzjK,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,KAAmBA,UAAU,GAM3E,OAJIytL,EAAU72J,aAAe62J,EAAU72J,WAAWy7C,MAAQoxF,KACxDgqB,EAAU72J,WAAWy7C,KAAO,SAGvBo7G,CACT,CAUA,IAAIqI,GAAQ,CACV1Q,MAAO,WACL,MAAO,CACLiQ,oBAAqB,SAA6BpL,EAAapiI,GAC7D,IAAIkuI,EAAWluI,EAAK06H,aAAa,gBAC7BttH,EAAQ8gI,EAAkClN,GAAiBkN,EAASzyL,MAAM,KAAK+hI,KAAI,SAAUjmI,GAC/F,OAAOA,EAAEmzB,MACX,KAFuBk2J,KAUvB,OANKxzH,EAAKzhD,SACRyhD,EAAKzhD,OAASg1K,MAGhByB,EAAYh1H,KAAOA,EACnBg1H,EAAY7rH,OAASvW,EAAK06H,aAAa,mBAChC0H,CACT,EAEJ,EACAsI,SAAU,SAAkB1I,GAC1BA,EAAUmM,qBAAuB,SAAUz2F,GACzC,IA7BWyuF,EA6BP1vG,EAAWihB,EAAKjhB,SAChB1nD,EAAa2oE,EAAK3oE,WAClB20J,EAAOhsF,EAAKgsF,KACZt2H,EAAOsqC,EAAKtqC,KACZghI,EAAiB12F,EAAKnhC,OACtBvrB,EAAY0sD,EAAK1sD,UACjBqjJ,EAAY3K,EAAK38J,MACjBunK,EAAW5K,EAAK9P,KAChB2a,EAAYnhI,EAAKrmC,MACjBynK,EAAWphI,EAAKwmH,KAChB6a,EApxEV,SAAyB/2F,GACvB,IAAI1sD,EAAY0sD,EAAK1sD,UACjBigJ,EAAiBvzF,EAAKuzF,eACtBC,EAAYxzF,EAAKwzF,UACjBwC,EAAQ,CACV1iJ,UAAW,aAAavoC,OAAOwoL,EAAiB,EAAG,UAEjD0C,EAAiB,aAAalrL,OAAqB,GAAduoC,EAAUzU,EAAQ,MAAM9zB,OAAqB,GAAduoC,EAAU9L,EAAQ,MACtF0uJ,EAAa,SAASnrL,OAAOuoC,EAAUqU,KAAO,IAAMrU,EAAU6wI,OAAS,EAAI,GAAI,MAAMp5K,OAAOuoC,EAAUqU,KAAO,IAAMrU,EAAU8wI,OAAS,EAAI,GAAI,MAC9I+R,EAAc,UAAUprL,OAAOuoC,EAAUjB,OAAQ,SAOrD,MAAO,CACL2jJ,MAAOA,EACPI,MARU,CACV9iJ,UAAW,GAAGvoC,OAAOkrL,EAAgB,KAAKlrL,OAAOmrL,EAAY,KAAKnrL,OAAOorL,IAQzEvtK,KANS,CACT0qB,UAAW,aAAavoC,OAAOyoL,EAAY,GAAK,EAAG,WAOvD,CA+vEkBwD,CAAgB,CAC1B1jJ,UAAWA,EACXigJ,eAAgBsD,EAChBrD,UAAWmD,IAETM,EAAW,CACbvpL,IAAK,OACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAG04F,IAAY,CAAC,EAAG,CAC5DvjH,KAAM,WAGNokH,EAA8BN,EAAS73G,SAAW,CACpDA,SAAU63G,EAAS73G,SAAS+mD,IAAIwwD,KAC9B,CAAC,EACDa,EAAiB,CACnBzpL,IAAK,IACL2pB,WAAYsmE,GAAe,CAAC,EAAGo5F,EAAMX,OACrCr3G,SAAU,CAACu3G,GAAU34F,GAAe,CAClCjwF,IAAKkpL,EAASlpL,IACd2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGi5F,EAASv/J,YAAa0/J,EAAMnuK,OACzEsuK,MAEDE,EAAiB,CACnB1pL,IAAK,IACL2pB,WAAYsmE,GAAe,CAAC,EAAGo5F,EAAMf,OACrCj3G,SAAU,CAACo4G,IAETt4H,EAAS,QAAQ9zD,OAAO2rL,GAAkBpS,MAC1CpqH,EAAS,QAAQnvD,OAAO2rL,GAAkBpS,MAC1C+S,EAAU,CACZ3pL,IAAK,OACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAG04F,IAAY,CAAC,EAAG,CAC5D/sL,GAAIu1D,EACJy4H,UAAW,iBACXC,iBAAkB,mBAEpBx4G,SAAU,CAACk4G,EAAUG,IAEnB1gK,EAAO,CACThpB,IAAK,OACLqxE,SAAU,CAAC,CACTrxE,IAAK,WACL2pB,WAAY,CACV/tB,GAAI4wD,GAEN6kB,UApFO0vG,EAoFWqI,EAnFH,MAAnBrI,EAAW/gL,IACN+gL,EAAW1vG,SAEX,CAAC0vG,KAiFD4I,IAUL,OARAt4G,EAASv6E,KAAKkyB,EAAM,CAClBhpB,IAAK,OACL2pB,WAAYsmE,GAAe,CACzB7qB,KAAM,eACN,YAAa,QAAQ/nE,OAAOmvD,EAAQ,KACpCxE,KAAM,QAAQ3qD,OAAO8zD,EAAQ,MAC5Bw3H,MAEE,CACLt3G,SAAUA,EACV1nD,WAAYA,EAEhB,CACF,GAGEmgK,GAAuB,CACzBxE,SAAU,SAAkB1I,GAC1B,IAAImN,GAAe,EAEfxY,GAAO7mK,aACTq/K,EAAexY,GAAO7mK,WAAW,oCAAoCS,SAGvEyxK,EAAUoN,oBAAsB,WAC9B,IAAIC,EAAY,GACZC,EAAO,CACT9kH,KAAM,gBAEJ+kH,EAAiB,CACnBC,cAAe,MACfC,YAAa,aACbC,IAAK,MAGPL,EAAUnzL,KAAK,CACbkJ,IAAK,OACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGi6F,GAAO,CAAC,EAAG,CACvD/wK,EAAG,u4CAIP,IAAIoxK,EAAkBt6F,GAAeA,GAAe,CAAC,EAAGk6F,GAAiB,CAAC,EAAG,CAC3E90F,cAAe,YAGbm1F,EAAM,CACRxqL,IAAK,SACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGi6F,GAAO,CAAC,EAAG,CACvD15I,GAAI,MACJC,GAAI,MACJzoC,EAAG,OAELqpE,SAAU,IAkDZ,OA/CK04G,GACHS,EAAIn5G,SAASv6E,KAAK,CAChBkJ,IAAK,UACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGk6F,GAAiB,CAAC,EAAG,CACjE90F,cAAe,IACf75F,OAAQ,wBAET,CACDwE,IAAK,UACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGs6F,GAAkB,CAAC,EAAG,CAClE/uL,OAAQ,mBAKdyuL,EAAUnzL,KAAK0zL,GACfP,EAAUnzL,KAAK,CACbkJ,IAAK,OACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGi6F,GAAO,CAAC,EAAG,CACvDhhI,QAAS,IACT/vC,EAAG,ySAELk4D,SAAU04G,EAAe,GAAK,CAAC,CAC7B/pL,IAAK,UACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGs6F,GAAkB,CAAC,EAAG,CAClE/uL,OAAQ,qBAKTuuL,GAEHE,EAAUnzL,KAAK,CACbkJ,IAAK,OACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGi6F,GAAO,CAAC,EAAG,CACvDhhI,QAAS,IACT/vC,EAAG,gJAELk4D,SAAU,CAAC,CACTrxE,IAAK,UACL2pB,WAAYsmE,GAAeA,GAAe,CAAC,EAAGs6F,GAAkB,CAAC,EAAG,CAClE/uL,OAAQ,qBAMT,CACLwE,IAAK,IACL2pB,WAAY,CACV,MAAS,WAEX0nD,SAAU44G,EAEd,CACF,GAgBEl0G,GAAU,CAACiiG,GAAWoN,GAAiBW,GAAQE,GAAeE,GAAY2B,GAvYrD,CACvB7P,OAAQ,WACN,MAAO,CACLC,IAAK,CACHuS,QAAS,WACP9I,KACAqG,IAAa,CACf,GAGN,EACA7P,MAAO,WACL,MAAO,CACLuS,UAAW,WACTzoD,GAAQ66C,GAAW,4BAA6B,CAAC,GACnD,EACAa,OAAQ,WAztBPkE,IACLA,GAAGp/C,YA0tBC,EACA+6C,MAAO,SAAe/0J,GACpB,IAAI45J,EAAuB55J,EAAO45J,qBAE9B2F,GACFpG,KAEA3/C,GAAQ66C,GAAW,4BAA6B,CAC9CuF,qBAAsBA,IAG5B,EAEJ,GAwWgH8F,GAAiBU,GAAOiB,GAbzH,CACf3R,MAAO,WACL,MAAO,CACLiQ,oBAAqB,SAA6BpL,EAAapiI,GAC7D,IAAI+vI,EAAa/vI,EAAK06H,aAAa,kBAC/B5nF,EAAwB,OAAfi9F,IAA6C,KAAfA,GAA2BA,GAEtE,OADA3N,EAAoB,OAAItvF,EACjBsvF,CACT,EAEJ,KA50DF,SAAyB4N,EAAat4F,GACpC,IAAI1gG,EAAM0gG,EAAKu4F,UACfnO,GAAWkO,EACXjO,GAAS,CAAC,EACV1pL,OAAOmH,KAAKwiL,IAAW5/K,SAAQ,SAAUC,IACC,IAApC4/K,GAAoBl9J,QAAQ1iB,WACvB2/K,GAAU3/K,EAErB,IAEAy/K,GAAS1/K,SAAQ,SAAU6M,GACzB,IAAIouK,EAASpuK,EAAOouK,OAASpuK,EAAOouK,SAAW,CAAC,EAiBhD,GAhBAhlL,OAAOmH,KAAK69K,GAAQj7K,SAAQ,SAAU8uH,GACV,oBAAfmsD,EAAOnsD,KAChBl6H,EAAIk6H,GAAMmsD,EAAOnsD,IAGS,WAAxB53H,GAAQ+jL,EAAOnsD,KACjB74H,OAAOmH,KAAK69K,EAAOnsD,IAAK9uH,SAAQ,SAAUuhB,GACnC3sB,EAAIk6H,KACPl6H,EAAIk6H,GAAM,CAAC,GAGbl6H,EAAIk6H,GAAIvtG,GAAM05J,EAAOnsD,GAAIvtG,EAC3B,GAEJ,IAEI1U,EAAOsuK,MAAO,CAChB,IAAIA,EAAQtuK,EAAOsuK,QACnBllL,OAAOmH,KAAK+9K,GAAOn7K,SAAQ,SAAU+/K,GAC9BJ,GAAOI,KACVJ,GAAOI,GAAQ,IAGjBJ,GAAOI,GAAMjmL,KAAKqhL,EAAM4E,GAC1B,GACF,CAEIlzK,EAAOy7K,UACTz7K,EAAOy7K,SAAS1I,GAEpB,GAGF,CAoyDAkO,CAAgB/0G,GAAS,CACvB80G,UAAWtjC,KAEb,IAIIwjC,GAAUxjC,GAAIrqI,MAGdsxJ,GAAOjnB,GAAIinB,+DCjgGf,SAASx+E,GAAQ92F,EAAQ+2K,GACvB,IAAI71K,EAAOnH,OAAOmH,KAAKlB,GAEvB,GAAIjG,OAAOkM,sBAAuB,CAChC,IAAIvI,EAAU3D,OAAOkM,sBAAsBjG,GAC3C+2K,IAAmBr5K,EAAUA,EAAQoiD,QAAO,SAAUh1C,GACpD,OAAO/Q,OAAO2L,yBAAyB1F,EAAQ8K,GAAK1R,UACtD,KAAK8H,EAAKtD,KAAKd,MAAMoE,EAAMxD,EAC7B,CAEA,OAAOwD,CACT,CAEA,SAAS61F,GAAeh+F,GACtB,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CACzC,IAAIa,EAAS,MAAQD,UAAUZ,GAAKY,UAAUZ,GAAK,CAAC,EACpDA,EAAI,EAAI69F,GAAQ/8F,OAAOD,IAAS,GAAIgK,SAAQ,SAAUvK,GACpDZ,GAAgBI,EAAQQ,EAAKO,EAAOP,GACtC,IAAKQ,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiBC,EAAQgB,OAAOi9F,0BAA0Bl9F,IAAWg9F,GAAQ/8F,OAAOD,IAASgK,SAAQ,SAAUvK,GAC5JQ,OAAOwB,eAAexC,EAAQQ,EAAKQ,OAAO2L,yBAAyB5L,EAAQP,GAC7E,GACF,CAEA,OAAOR,CACT,CAEA,SAASiC,GAAQtC,GAGf,OAAOsC,GAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAUtS,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBkL,QAAUlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAC1H,EAAGsC,GAAQtC,EACb,CAEA,SAASC,GAAgBD,EAAKa,EAAKkB,GAYjC,OAXIlB,KAAOb,EACTqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAC9BkB,MAAOA,EACPrB,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZZ,EAAIa,GAAOkB,EAGN/B,CACT,CAiBA,SAAS0+F,GAAyBt9F,EAAQu9F,GACxC,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAE5B,IAEIP,EAAKN,EAFLF,EAlBN,SAAuCe,EAAQu9F,GAC7C,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAC5B,IAEIP,EAAKN,EAFLF,EAAS,CAAC,EACVu+F,EAAav9F,OAAOmH,KAAKpH,GAG7B,IAAKb,EAAI,EAAGA,EAAIq+F,EAAWp+F,OAAQD,IACjCM,EAAM+9F,EAAWr+F,GACbo+F,EAAS5wE,QAAQltB,IAAQ,IAC7BR,EAAOQ,GAAOO,EAAOP,IAGvB,OAAOR,CACT,CAKew+F,CAA8Bz9F,EAAQu9F,GAInD,GAAIt9F,OAAOkM,sBAAuB,CAChC,IAAIuxF,EAAmBz9F,OAAOkM,sBAAsBnM,GAEpD,IAAKb,EAAI,EAAGA,EAAIu+F,EAAiBt+F,OAAQD,IACvCM,EAAMi+F,EAAiBv+F,GACnBo+F,EAAS5wE,QAAQltB,IAAQ,GACxBQ,OAAOL,UAAUyG,qBAAqBlG,KAAKH,EAAQP,KACxDR,EAAOQ,GAAOO,EAAOP,GAEzB,CAEA,OAAOR,CACT,CAEA,SAASq+K,GAAmBn7J,GAC1B,OAGF,SAA4BA,GAC1B,GAAI7b,MAAMC,QAAQ4b,GAAM,OAAO67E,GAAkB77E,EACnD,CALSo7J,CAAmBp7J,IAO5B,SAA0Bq7J,GACxB,GAAsB,qBAAX1zK,QAAmD,MAAzB0zK,EAAK1zK,OAAOoH,WAA2C,MAAtBssK,EAAK,cAAuB,OAAOl3K,MAAM23F,KAAKu/E,EACtH,CAToCC,CAAiBt7J,IAWrD,SAAqCrN,EAAGipF,GACtC,IAAKjpF,EAAG,OACR,GAAiB,kBAANA,EAAgB,OAAOkpF,GAAkBlpF,EAAGipF,GACvD,IAAItrF,EAAIxS,OAAOL,UAAUwC,SAASjC,KAAK2U,GAAGzS,MAAM,GAAI,GAC1C,WAANoQ,GAAkBqC,EAAEpU,cAAa+R,EAAIqC,EAAEpU,YAAY4D,MACvD,GAAU,QAANmO,GAAqB,QAANA,EAAa,OAAOnM,MAAM23F,KAAKnpF,GAClD,GAAU,cAANrC,GAAqB,2CAA2C5F,KAAK4F,GAAI,OAAOurF,GAAkBlpF,EAAGipF,EAC3G,CAlB6DG,CAA4B/7E,IA4BzF,WACE,MAAM,IAAIxjB,UAAU,uIACtB,CA9BiG++K,EACjG,CAmBA,SAAS1/E,GAAkB77E,EAAKnC,IACnB,MAAPA,GAAeA,EAAMmC,EAAI/iB,UAAQ4gB,EAAMmC,EAAI/iB,QAE/C,IAAK,IAAID,EAAI,EAAGymF,EAAO,IAAIt/E,MAAM0Z,GAAM7gB,EAAI6gB,EAAK7gB,IAAKymF,EAAKzmF,GAAKgjB,EAAIhjB,GAEnE,OAAOymF,CACT,CAmEA,SAASoyG,GAAS5uI,GAChB,OAPoBxqD,EAOHwqD,GANjBxqD,GAAY,KAEGA,EAKNwqD,GAITA,EAASA,EAAO/zC,QAAQ,iBAAiB,SAAUgE,EAAO4+K,GACxD,OAAOA,EAAMA,EAAIt1F,cAAgB,EACnC,KAEcrsE,OAAO,EAAG,GAAGosB,cAAgB0G,EAAO9yB,OAAO,GAhB3D,IAAsB13B,CAiBtB,CAEA,IAAIkiG,GAAY,CAAC,SAqEjB,IAAI2+E,IAAa,EAEjB,IACEA,IAAa7xJ,CACf,CAAE,MAAOhoB,IAAI,CAUb,SAASsyL,GAAkB1c,GAGzB,OAAIA,GAA0B,WAAlBt6K,GAAQs6K,IAAsBA,EAAKjoK,QAAUioK,EAAKD,UAAYC,EAAKA,KACtEA,EAGLtxJ,GAAMsxJ,KACDtxJ,GAAMsxJ,KAAKA,GAIP,OAATA,EACK,KAILA,GAA0B,WAAlBt6K,GAAQs6K,IAAsBA,EAAKjoK,QAAUioK,EAAKD,SACrDC,EAILl1K,MAAMC,QAAQi1K,IAAyB,IAAhBA,EAAKp8K,OAEvB,CACLmU,OAAQioK,EAAK,GACbD,SAAUC,EAAK,IAKC,kBAATA,EACF,CACLjoK,OAAQ,MACRgoK,SAAUC,QAHd,CAMF,CAKA,SAAS2c,GAAc14L,EAAKkB,GAK1B,OAAO2F,MAAMC,QAAQ5F,IAAUA,EAAMvB,OAAS,IAAMkH,MAAMC,QAAQ5F,IAAUA,EAAQ9B,GAAgB,CAAC,EAAGY,EAAKkB,GAAS,CAAC,CACzH,CAEA,IAAIuZ,GAAe,CACjBk+K,QAAQ,EACR/qH,UAAW,GACXrY,KAAM,KACNmJ,OAAQ,KACRk6H,YAAY,EACZC,SAAS,EACTC,MAAM,EACN/c,KAAM,KACNgd,UAAU,EACV7uB,KAAM,KACN8uB,OAAO,EACPpwG,SAAU,KACVphC,KAAM,KACNyxI,MAAM,EACNC,WAAW,EACXC,aAAa,EACbC,MAAM,EACNrvD,MAAM,EACNsvD,UAAU,EACVC,QAAQ,EACRC,OAAO,EACPt+F,QAAQ,EACR/tB,MAAO,GACPE,QAAS,KACTj6B,UAAW,KACXqmJ,aAAa,GAEXC,GAA+Bp8F,EAAAA,YAAiB,SAAU59F,EAAOs/F,GACnE,IAAI26F,EAAWl8F,GAAeA,GAAe,CAAC,EAAG/iF,IAAehb,GAE5Dk6L,EAAWD,EAAS3d,KACpB6d,EAAWF,EAASnkI,KACpB0lC,EAASy+F,EAASz+F,OAClBrtB,EAAY8rH,EAAS9rH,UACrBV,EAAQwsH,EAASxsH,MACjBE,EAAUssH,EAAStsH,QACnB1O,EAASg7H,EAASh7H,OAClBksH,EAAa6N,GAAkBkB,GAC/Bv0C,EAAUszC,GAAc,UAAW,GAAG9tL,OAAOizK,GArPnD,SAAmBp+K,GACjB,IAAIo6L,EAEAT,EAAO35L,EAAM25L,KACbrvD,EAAOtqI,EAAMsqI,KACbsvD,EAAW55L,EAAM45L,SACjBC,EAAS75L,EAAM65L,OACfC,EAAQ95L,EAAM85L,MACdO,EAAQr6L,EAAMq6L,MACdb,EAAOx5L,EAAMw5L,KACbC,EAAYz5L,EAAMy5L,UAClBC,EAAc15L,EAAM05L,YACpBH,EAAQv5L,EAAMu5L,MACdJ,EAAan5L,EAAMm5L,WACnBC,EAAUp5L,EAAMo5L,QAChBF,EAASl5L,EAAMk5L,OACfI,EAAWt5L,EAAMs5L,SACjBD,EAAOr5L,EAAMq5L,KACbtxI,EAAO/nD,EAAM+nD,KACbohC,EAAWnpF,EAAMmpF,SACjBshF,EAAOzqK,EAAMyqK,KAEb9kB,GAkBDhmJ,GAlBYy6L,EAAW,CACxB,UAAWT,EACX,UAAWrvD,EACX,eAAgBsvD,EAChB,YAAaC,EACb,WAAYC,EACZ,WAAYO,EACZ,UAAWb,EACX,kBAAmBE,EACnB,gBAAiBD,EACjB,WAAYF,EACZ,QAASJ,EACT,aAAcC,EACd,YAAaF,EACb,QAASI,EACT,WAAoB,IAATD,EACX,qBAA+B,eAATA,GAAkC,SAATA,EAC/C,mBAA6B,aAATA,GAAgC,SAATA,GAChB,MAAMluL,OAAO48C,GAAuB,qBAATA,GAAiC,OAATA,GAAgBpoD,GAAgBy6L,EAAU,aAAajvL,OAAOg+E,GAA+B,qBAAbA,GAAyC,OAAbA,GAAkC,IAAbA,GAAiBxpF,GAAgBy6L,EAAU,WAAWjvL,OAAOs/J,GAAuB,qBAATA,GAAiC,OAATA,GAAgB9qK,GAAgBy6L,EAAU,kBAAmBp6L,EAAM+5L,aAAcK,GAGrY,OAAOr5L,OAAOmH,KAAKy9I,GAASzf,KAAI,SAAU3lI,GACxC,OAAOolJ,EAAQplJ,GAAOA,EAAM,IAC9B,IAAGumD,QAAO,SAAUvmD,GAClB,OAAOA,CACT,GACF,CAqMsEqkL,CAAUqV,IAAY7b,IAAoBjwG,GAAa,IAAIhqE,MAAM,QACjIuvC,EAAYulJ,GAAc,YAA2C,kBAAvBgB,EAASvmJ,UAAyB1oB,GAAM0oB,UAAUumJ,EAASvmJ,WAAaumJ,EAASvmJ,WAC/HoiB,EAAOmjI,GAAc,OAAQD,GAAkBmB,IAC/CG,EAAehe,GAAK6O,EAAYptF,GAAeA,GAAeA,GAAeA,GAAe,CAAC,EAAG4nD,GAAUjyG,GAAYoiB,GAAO,CAAC,EAAG,CACnI0lC,OAAQA,EACR/tB,MAAOA,EACPE,QAASA,EACT1O,OAAQA,KAGV,IAAKq7H,EAEH,OA7GJ,WAEI,IAAIC,GADDha,IAAc7pK,SAAoC,oBAAlBA,QAAQ9B,QAG1C2lL,EAAW7jL,SAAS9B,MAAM9Q,MAAMy2L,EAAU15L,UAE/C,CAsGIyvG,CAAI,sBAAuB66E,GACpB,KAGT,IAAIa,EAAWsO,EAAatO,SACxBwO,EAAa,CACfl7F,IAAKA,GAQP,OANAv+F,OAAOmH,KAAK+xL,GAAUnvL,SAAQ,SAAUvK,GAEjCya,GAAaha,eAAeT,KAC/Bi6L,EAAWj6L,GAAO05L,EAAS15L,GAE/B,IACOk6L,GAAazO,EAAS,GAAIwO,EACnC,IACAR,GAAgB/+K,YAAc,kBAC9B++K,GAAgB1+K,UAAY,CAC1Bq+K,KAAMh8F,KAAAA,KACNu7F,OAAQv7F,KAAAA,KACRi8F,SAAUj8F,KAAAA,KACVk8F,OAAQl8F,KAAAA,KACRxvB,UAAWwvB,KAAAA,OACX2sC,KAAM3sC,KAAAA,KACN08F,MAAO18F,KAAAA,KACP7nC,KAAM6nC,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,MAAiBA,KAAAA,SAC9D1+B,OAAQ0+B,KAAAA,OACRw7F,WAAYx7F,KAAAA,KACZy7F,QAASz7F,KAAAA,KACT07F,KAAM17F,KAAAA,MAAgB,EAAC,GAAM,EAAO,aAAc,WAAY,SAC9D2+E,KAAM3+E,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,MAAiBA,KAAAA,SAC9D27F,SAAU37F,KAAAA,KACV8sE,KAAM9sE,KAAAA,MAAgB,CAAC,QAAS,SAChC47F,MAAO57F,KAAAA,KACPxU,SAAUwU,KAAAA,MAAgB,CAAC,EAAG,GAAI,IAAK,MACvCm8F,MAAOn8F,KAAAA,KACP51C,KAAM41C,KAAAA,MAAgB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QACnH67F,KAAM77F,KAAAA,KACN87F,UAAW97F,KAAAA,KACX+7F,YAAa/7F,KAAAA,KACbnC,OAAQmC,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,SAC7ClwB,MAAOkwB,KAAAA,OACPhwB,QAASgwB,KAAAA,OACTjqD,UAAWiqD,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,SAClDo8F,YAAap8F,KAAAA,MAEf,IAAI88F,GAjNJ,SAASC,EAAQx2L,EAAe8gB,GAC9B,IAAIw1K,EAAa35L,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEtF,GAAuB,kBAAZmkB,EACT,OAAOA,EAGT,IAAIm6D,GAAYn6D,EAAQm6D,UAAY,IAAI+mD,KAAI,SAAUz3B,GACpD,OAAOisF,EAAQx2L,EAAeuqG,EAChC,IAGIpzF,EAASta,OAAOmH,KAAK8c,EAAQyS,YAAc,CAAC,GAAGqhH,QAAO,SAAUC,EAAKx4I,GACvE,IAAI6O,EAAM4V,EAAQyS,WAAWl3B,GAE7B,OAAQA,GACN,IAAK,QACHw4I,EAAI4hD,MAAiB,UAAIvrL,SAClB4V,EAAQyS,WAAkB,MACjC,MAEF,IAAK,QACHshH,EAAI4hD,MAAa,MAAkBvrL,EAnC5BjL,MAAM,KAAK+hI,KAAI,SAAUx3H,GACpC,OAAOA,EAAE0kB,MACX,IAAG0zB,QAAO,SAAUp4C,GAClB,OAAOA,CACT,IAAGoqI,QAAO,SAAUC,EAAKxgG,GACvB,IAVgBnpC,EAUZnP,EAAIs4C,EAAK9qB,QAAQ,KACjBxM,EAAO63K,GAASvgJ,EAAKp1C,MAAM,EAAGlD,IAC9BwB,EAAQ82C,EAAKp1C,MAAMlD,EAAI,GAAGmzB,OAE9B,OADAnS,EAAKmpI,WAAW,UAAYrR,GAbZ3pI,EAa2B6R,EAZtC7R,EAAIN,OAAO,GAAG20F,cAAgBr0F,EAAIjM,MAAM,KAYO1B,EAAQs3I,EAAI93H,GAAQxf,EACjEs3I,CACT,GAAG,CAAC,GA0BE,MAEF,QAC+B,IAAzBx4I,EAAIktB,QAAQ,UAA2C,IAAzBltB,EAAIktB,QAAQ,SAC5CsrH,EAAI4hD,MAAMp6L,EAAIijD,eAAiBp0C,EAE/B2pI,EAAI4hD,MAAM7B,GAASv4L,IAAQ6O,EAKjC,OAAO2pI,CACT,GAAG,CACD4hD,MAAO,CAAC,IAGNC,EAAoBJ,EAAW3uL,MAC/BgvL,OAAsC,IAAtBD,EAA+B,CAAC,EAAIA,EACpD3lL,EAAYmpF,GAAyBo8F,EAAY54F,IAKrD,OAHAvmF,EAAOs/K,MAAa,MAAI58F,GAAeA,GAAe,CAAC,EAAG1iF,EAAOs/K,MAAa,OAAIE,GAG3E32L,EAAcJ,WAAM,EAAQ,CAACkhB,EAAQlX,IAAKiwF,GAAeA,GAAe,CAAC,EAAG1iF,EAAOs/K,OAAQ1lL,IAAY9J,OAAOizK,GAAmBj/F,IAC1I,EAkK2BnuD,KAAK,KAAM4sE,EAAAA,eC3alCk9F,GAAoB,SAA2Br5L,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,kBAAVA,CAC1B,CANQs5L,CAAgBt5L,KAQxB,SAAmBA,GAClB,IAAI8wF,EAAcxxF,OAAOL,UAAUwC,SAASjC,KAAKQ,GAEjD,MAAuB,oBAAhB8wF,GACa,kBAAhBA,GAQL,SAAwB9wF,GACvB,OAAOA,EAAMkkG,WAAaq1F,EAC3B,CATKC,CAAex5L,EACpB,CAbMy5L,CAAUz5L,EAChB,EAeA,IACIu5L,GADiC,oBAAXpwL,QAAyBA,OAAOs5F,IAClBt5F,OAAOs5F,IAAI,iBAAmB,MAUtE,SAASi3F,GAA8B15L,EAAOgS,GAC7C,OAA0B,IAAlBA,EAAQ26B,OAAmB36B,EAAQqnL,kBAAkBr5L,GAC1D25L,IANiBhsL,EAMK3N,EALlB2F,MAAMC,QAAQ+H,GAAO,GAAK,CAAC,GAKD3N,EAAOgS,GACrChS,EAPJ,IAAqB2N,CAQrB,CAEA,SAASisL,GAAkBt7L,EAAQe,EAAQ2S,GAC1C,OAAO1T,EAAOoL,OAAOrK,GAAQolI,KAAI,SAASlhH,GACzC,OAAOm2K,GAA8Bn2K,EAASvR,EAC/C,GACD,CAmBA,SAAS2nL,GAAUr7L,EAAQe,EAAQ2S,IAClCA,EAAUA,GAAW,CAAC,GACd6nL,WAAa7nL,EAAQ6nL,YAAcD,GAC3C5nL,EAAQqnL,kBAAoBrnL,EAAQqnL,mBAAqBA,GAEzD,IAAIS,EAAgBn0L,MAAMC,QAAQvG,GAIlC,OAFgCy6L,IADZn0L,MAAMC,QAAQtH,GAKvBw7L,EACH9nL,EAAQ6nL,WAAWv7L,EAAQe,EAAQ2S,GA7B5C,SAAqB1T,EAAQe,EAAQ2S,GACpC,IAAImN,EAAc,CAAC,EAanB,OAZInN,EAAQqnL,kBAAkB/6L,IAC7BgB,OAAOmH,KAAKnI,GAAQ+K,SAAQ,SAASvK,GACpCqgB,EAAYrgB,GAAO46L,GAA8Bp7L,EAAOQ,GAAMkT,EAC/D,IAED1S,OAAOmH,KAAKpH,GAAQgK,SAAQ,SAASvK,GAC/BkT,EAAQqnL,kBAAkBh6L,EAAOP,KAAUR,EAAOQ,GAGtDqgB,EAAYrgB,GAAO66L,GAAUr7L,EAAOQ,GAAMO,EAAOP,GAAMkT,GAFvDmN,EAAYrgB,GAAO46L,GAA8Br6L,EAAOP,GAAMkT,EAIhE,IACOmN,CACR,CAgBS46K,CAAYz7L,EAAQe,EAAQ2S,GAJ5B0nL,GAA8Br6L,EAAQ2S,EAM/C,CAEA2nL,GAAUtnB,IAAM,SAAsBh3E,EAAOrpF,GAC5C,IAAKrM,MAAMC,QAAQy1F,GAClB,MAAM,IAAIjjF,MAAM,qCAGjB,OAAOijF,EAAMg8C,QAAO,SAAS2iD,EAAM/zL,GAClC,OAAO0zL,GAAUK,EAAM/zL,EAAM+L,EAC9B,GAAG,CAAC,EACL,EAIA,SAFkB2nL,GCnFlB,SAFkC,iBAAVv2L,QAAsBA,QAAUA,OAAO9D,SAAWA,QAAU8D,OCEpF,IAAI6Y,GAA0B,iBAAR9b,MAAoBA,MAAQA,KAAKb,SAAWA,QAAUa,KAK5E,SAFW6b,IAAcC,IAAYrX,SAAS,cAATA,GCDrC,SAFasX,GAAK/S,OCAlB,IAAI8wL,GAAc36L,OAAOL,UAGrBM,GAAiB06L,GAAY16L,eAO7B26L,GAAuBD,GAAYx4L,SAGnC04L,GAAiBhxL,GAASA,GAAO+7I,iBAAcjjJ,EA6BnD,SApBA,SAAmBjC,GACjB,IAAIo6L,EAAQ76L,GAAeC,KAAKQ,EAAOm6L,IACnC9tL,EAAMrM,EAAMm6L,IAEhB,IACEn6L,EAAMm6L,SAAkBl4L,EACxB,IAAIo4L,GAAW,CACjB,CAAE,MAAOp1L,IAAI,CAEb,IAAInC,EAASo3L,GAAqB16L,KAAKQ,GAQvC,OAPIq6L,IACED,EACFp6L,EAAMm6L,IAAkB9tL,SAEjBrM,EAAMm6L,KAGVr3L,CACT,EC1CA,IAOIo3L,GAPc56L,OAAOL,UAOcwC,SAavC,SAJA,SAAwBzB,GACtB,OAAOk6L,GAAqB16L,KAAKQ,EACnC,ECdA,IAIIm6L,GAAiBhxL,GAASA,GAAO+7I,iBAAcjjJ,EAkBnD,SATA,SAAoBjC,GAClB,OAAa,MAATA,OACeiC,IAAVjC,EAdQ,qBADL,gBAiBJm6L,IAAkBA,MAAkB76L,OAAOU,GAC/Cs6L,GAAUt6L,GACVmc,GAAenc,EACrB,ECXA,SANA,SAAiB4c,EAAMq1B,GACrB,OAAO,SAASpsC,GACd,OAAO+W,EAAKq1B,EAAUpsC,GACxB,CACF,ECPA,SAFmB00L,GAAQj7L,OAAOgH,eAAgBhH,QCyBlD,SAJA,SAAsBU,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,ECrBA,IAGIw6L,GAAY51L,SAAS3F,UACrBg7L,GAAc36L,OAAOL,UAGrBw7L,GAAeD,GAAU/4L,SAGzBlC,GAAiB06L,GAAY16L,eAG7Bm7L,GAAmBD,GAAaj7L,KAAKF,QA2CzC,SAbA,SAAuBU,GACrB,IAAKyc,GAAazc,IA5CJ,mBA4Cc26L,GAAW36L,GACrC,OAAO,EAET,IAAIoH,EAAQwzL,GAAa56L,GACzB,GAAc,OAAVoH,EACF,OAAO,EAET,IAAIyzL,EAAOt7L,GAAeC,KAAK4H,EAAO,gBAAkBA,EAAMrH,YAC9D,MAAsB,mBAAR86L,GAAsBA,aAAgBA,GAClDJ,GAAaj7L,KAAKq7L,IAASH,EAC/B,EC/CA,SALA,WACE/1L,KAAKm2L,SAAW,GAChBn2L,KAAK2hD,KAAO,CACd,EC0BA,SAJA,SAAYtmD,EAAO0c,GACjB,OAAO1c,IAAU0c,GAAU1c,IAAUA,GAAS0c,IAAUA,CAC1D,ECdA,SAVA,SAAsB2+E,EAAOv8F,GAE3B,IADA,IAAIL,EAAS48F,EAAM58F,OACZA,KACL,GAAIs8L,GAAG1/F,EAAM58F,GAAQ,GAAIK,GACvB,OAAOL,EAGX,OAAQ,CACV,ECfA,IAGIoZ,GAHalS,MAAM1G,UAGC4Y,OA4BxB,SAjBA,SAAyB/Y,GACvB,IAAI0oB,EAAO7iB,KAAKm2L,SACZt5L,EAAQw5L,GAAaxzK,EAAM1oB,GAE/B,QAAI0C,EAAQ,KAIRA,GADYgmB,EAAK/oB,OAAS,EAE5B+oB,EAAK4xB,MAELvhC,GAAOrY,KAAKgoB,EAAMhmB,EAAO,KAEzBmD,KAAK2hD,MACA,EACT,ECdA,SAPA,SAAsBxnD,GACpB,IAAI0oB,EAAO7iB,KAAKm2L,SACZt5L,EAAQw5L,GAAaxzK,EAAM1oB,GAE/B,OAAO0C,EAAQ,OAAIS,EAAYulB,EAAKhmB,GAAO,EAC7C,ECDA,SAJA,SAAsB1C,GACpB,OAAOk8L,GAAar2L,KAAKm2L,SAAUh8L,IAAQ,CAC7C,ECYA,SAbA,SAAsBA,EAAKkB,GACzB,IAAIwnB,EAAO7iB,KAAKm2L,SACZt5L,EAAQw5L,GAAaxzK,EAAM1oB,GAQ/B,OANI0C,EAAQ,KACRmD,KAAK2hD,KACP9+B,EAAKrkB,KAAK,CAACrE,EAAKkB,KAEhBwnB,EAAKhmB,GAAO,GAAKxB,EAEZ2E,IACT,ECVA,SAASs2L,GAAUrzL,GACjB,IAAIpG,GAAS,EACT/C,EAAoB,MAAXmJ,EAAkB,EAAIA,EAAQnJ,OAG3C,IADAkG,KAAKmT,UACItW,EAAQ/C,GAAQ,CACvB,IAAIy+I,EAAQt1I,EAAQpG,GACpBmD,KAAKqH,IAAIkxI,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGA+9C,GAAUh8L,UAAU6Y,MAAQojL,GAC5BD,GAAUh8L,UAAkB,OAAIk8L,GAChCF,GAAUh8L,UAAUqD,IAAM84L,GAC1BH,GAAUh8L,UAAUsE,IAAM83L,GAC1BJ,GAAUh8L,UAAU+M,IAAMsvL,GAE1B,YCjBA,SALA,WACE32L,KAAKm2L,SAAW,IAAIG,GACpBt2L,KAAK2hD,KAAO,CACd,ECKA,SARA,SAAqBxnD,GACnB,IAAI0oB,EAAO7iB,KAAKm2L,SACZh4L,EAAS0kB,EAAa,OAAE1oB,GAG5B,OADA6F,KAAK2hD,KAAO9+B,EAAK8+B,KACVxjD,CACT,ECFA,SAJA,SAAkBhE,GAChB,OAAO6F,KAAKm2L,SAASx4L,IAAIxD,EAC3B,ECEA,SAJA,SAAkBA,GAChB,OAAO6F,KAAKm2L,SAASv3L,IAAIzE,EAC3B,ECmBA,SALA,SAAkBkB,GAChB,IAAI0D,SAAc1D,EAClB,OAAgB,MAATA,IAA0B,UAAR0D,GAA4B,YAARA,EAC/C,ECQA,SAVA,SAAoB1D,GAClB,IAAKe,GAASf,GACZ,OAAO,EAIT,IAAIqM,EAAMsuL,GAAW36L,GACrB,MA5BY,qBA4BLqM,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,CAC/D,EC7BA,SAFiB6P,GAAK,sBCAtB,IAAIq/K,GAAc,WAChB,IAAI/uL,EAAM,SAASxH,KAAKw2L,IAAcA,GAAW/0L,MAAQ+0L,GAAW/0L,KAAKsD,UAAY,IACrF,OAAOyC,EAAO,iBAAmBA,EAAO,EAC1C,CAHkB,GAgBlB,SAJA,SAAkBoQ,GAChB,QAAS2+K,IAAeA,MAAc3+K,CACxC,EChBA,IAGI69K,GAHY71L,SAAS3F,UAGIwC,SAqB7B,SAZA,SAAkBmb,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO69K,GAAaj7L,KAAKod,EAC3B,CAAE,MAAO3X,IAAI,CACb,IACE,OAAQ2X,EAAO,EACjB,CAAE,MAAO3X,IAAI,CACf,CACA,MAAO,EACT,ECdA,IAGIw2L,GAAe,8BAGfjB,GAAY51L,SAAS3F,UACrBg7L,GAAc36L,OAAOL,UAGrBw7L,GAAeD,GAAU/4L,SAGzBlC,GAAiB06L,GAAY16L,eAG7Bm8L,GAAat7D,OAAO,IACtBq6D,GAAaj7L,KAAKD,IAAgBmV,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF,SARA,SAAsB1U,GACpB,SAAKe,GAASf,IAAUg1E,GAASh1E,MAGnBkY,GAAWlY,GAAS07L,GAAaD,IAChCvvL,KAAKyvL,GAAS37L,GAC/B,EChCA,SAJA,SAAkBuF,EAAQzG,GACxB,OAAiB,MAAVyG,OAAiBtD,EAAYsD,EAAOzG,EAC7C,ECMA,SALA,SAAmByG,EAAQzG,GACzB,IAAIkB,EAAQwqC,GAASjlC,EAAQzG,GAC7B,OAAO88L,GAAa57L,GAASA,OAAQiC,CACvC,ECRA,SAFU45L,GAAU3/K,GAAM,OCC1B,SAFmB2/K,GAAUv8L,OAAQ,UCWrC,SALA,WACEqF,KAAKm2L,SAAWgB,GAAeA,GAAa,MAAQ,CAAC,EACrDn3L,KAAK2hD,KAAO,CACd,ECIA,SANA,SAAoBxnD,GAClB,IAAIgE,EAAS6B,KAAKpB,IAAIzE,WAAe6F,KAAKm2L,SAASh8L,GAEnD,OADA6F,KAAK2hD,MAAQxjD,EAAS,EAAI,EACnBA,CACT,ECXA,IAMIvD,GAHcD,OAAOL,UAGQM,eAoBjC,SATA,SAAiBT,GACf,IAAI0oB,EAAO7iB,KAAKm2L,SAChB,GAAIgB,GAAc,CAChB,IAAIh5L,EAAS0kB,EAAK1oB,GAClB,MArBiB,8BAqBVgE,OAA4Bb,EAAYa,CACjD,CACA,OAAOvD,GAAeC,KAAKgoB,EAAM1oB,GAAO0oB,EAAK1oB,QAAOmD,CACtD,ECxBA,IAGI1C,GAHcD,OAAOL,UAGQM,eAgBjC,SALA,SAAiBT,GACf,IAAI0oB,EAAO7iB,KAAKm2L,SAChB,OAAOgB,QAA8B75L,IAAdulB,EAAK1oB,GAAsBS,GAAeC,KAAKgoB,EAAM1oB,EAC9E,ECEA,SAPA,SAAiBA,EAAKkB,GACpB,IAAIwnB,EAAO7iB,KAAKm2L,SAGhB,OAFAn2L,KAAK2hD,MAAQ3hD,KAAKpB,IAAIzE,GAAO,EAAI,EACjC0oB,EAAK1oB,GAAQg9L,SAA0B75L,IAAVjC,EAfV,4BAekDA,EAC9D2E,IACT,ECPA,SAASo3L,GAAKn0L,GACZ,IAAIpG,GAAS,EACT/C,EAAoB,MAAXmJ,EAAkB,EAAIA,EAAQnJ,OAG3C,IADAkG,KAAKmT,UACItW,EAAQ/C,GAAQ,CACvB,IAAIy+I,EAAQt1I,EAAQpG,GACpBmD,KAAKqH,IAAIkxI,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGA6+C,GAAK98L,UAAU6Y,MAAQkkL,GACvBD,GAAK98L,UAAkB,OAAIg9L,GAC3BF,GAAK98L,UAAUqD,IAAM45L,GACrBH,GAAK98L,UAAUsE,IAAM44L,GACrBJ,GAAK98L,UAAU+M,IAAMowL,GAErB,YCXA,SATA,WACEz3L,KAAK2hD,KAAO,EACZ3hD,KAAKm2L,SAAW,CACd,KAAQ,IAAIiB,GACZ,IAAO,IAAKrrF,IAAOuqF,IACnB,OAAU,IAAIc,GAElB,ECJA,SAPA,SAAmB/7L,GACjB,IAAI0D,SAAc1D,EAClB,MAAgB,UAAR0D,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV1D,EACU,OAAVA,CACP,ECKA,SAPA,SAAoBykI,EAAK3lI,GACvB,IAAI0oB,EAAOi9G,EAAIq2D,SACf,OAAOuB,GAAUv9L,GACb0oB,EAAmB,iBAAP1oB,EAAkB,SAAW,QACzC0oB,EAAKi9G,GACX,ECEA,SANA,SAAwB3lI,GACtB,IAAIgE,EAASw5L,GAAW33L,KAAM7F,GAAa,OAAEA,GAE7C,OADA6F,KAAK2hD,MAAQxjD,EAAS,EAAI,EACnBA,CACT,ECAA,SAJA,SAAqBhE,GACnB,OAAOw9L,GAAW33L,KAAM7F,GAAKwD,IAAIxD,EACnC,ECEA,SAJA,SAAqBA,GACnB,OAAOw9L,GAAW33L,KAAM7F,GAAKyE,IAAIzE,EACnC,ECQA,SATA,SAAqBA,EAAKkB,GACxB,IAAIwnB,EAAO80K,GAAW33L,KAAM7F,GACxBwnD,EAAO9+B,EAAK8+B,KAIhB,OAFA9+B,EAAKxb,IAAIlN,EAAKkB,GACd2E,KAAK2hD,MAAQ9+B,EAAK8+B,MAAQA,EAAO,EAAI,EAC9B3hD,IACT,ECNA,SAAS43L,GAAS30L,GAChB,IAAIpG,GAAS,EACT/C,EAAoB,MAAXmJ,EAAkB,EAAIA,EAAQnJ,OAG3C,IADAkG,KAAKmT,UACItW,EAAQ/C,GAAQ,CACvB,IAAIy+I,EAAQt1I,EAAQpG,GACpBmD,KAAKqH,IAAIkxI,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAq/C,GAASt9L,UAAU6Y,MAAQ0kL,GAC3BD,GAASt9L,UAAkB,OAAIw9L,GAC/BF,GAASt9L,UAAUqD,IAAMo6L,GACzBH,GAASt9L,UAAUsE,IAAMo5L,GACzBJ,GAASt9L,UAAU+M,IAAM4wL,GAEzB,YCEA,SAhBA,SAAkB99L,EAAKkB,GACrB,IAAIwnB,EAAO7iB,KAAKm2L,SAChB,GAAItzK,aAAgByzK,GAAW,CAC7B,IAAI4B,EAAQr1K,EAAKszK,SACjB,IAAKpqF,IAAQmsF,EAAMp+L,OAASq+L,IAG1B,OAFAD,EAAM15L,KAAK,CAACrE,EAAKkB,IACjB2E,KAAK2hD,OAAS9+B,EAAK8+B,KACZ3hD,KAET6iB,EAAO7iB,KAAKm2L,SAAW,IAAIyB,GAASM,EACtC,CAGA,OAFAr1K,EAAKxb,IAAIlN,EAAKkB,GACd2E,KAAK2hD,KAAO9+B,EAAK8+B,KACV3hD,IACT,ECjBA,SAASo4L,GAAMn1L,GACb,IAAI4f,EAAO7iB,KAAKm2L,SAAW,IAAIG,GAAUrzL,GACzCjD,KAAK2hD,KAAO9+B,EAAK8+B,IACnB,CAGAy2I,GAAM99L,UAAU6Y,MAAQklL,GACxBD,GAAM99L,UAAkB,OAAIg+L,GAC5BF,GAAM99L,UAAUqD,IAAM46L,GACtBH,GAAM99L,UAAUsE,IAAM45L,GACtBJ,GAAM99L,UAAU+M,IAAMoxL,GAEtB,YCLA,SAZA,SAAmB/hG,EAAOgiG,GAIxB,IAHA,IAAI77L,GAAS,EACT/C,EAAkB,MAAT48F,EAAgB,EAAIA,EAAM58F,SAE9B+C,EAAQ/C,IAC8B,IAAzC4+L,EAAShiG,EAAM75F,GAAQA,EAAO65F,KAIpC,OAAOA,CACT,ECTA,SARsB,WACpB,IACE,IAAIz+E,EAAOi/K,GAAUv8L,OAAQ,kBAE7B,OADAsd,EAAK,CAAC,EAAG,GAAI,CAAC,GACPA,CACT,CAAE,MAAO3X,IAAI,CACf,CANsB,GCsBtB,SAbA,SAAyBM,EAAQzG,EAAKkB,GACzB,aAAPlB,GAAsBgC,GACxBA,GAAeyE,EAAQzG,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASkB,EACT,UAAY,IAGduF,EAAOzG,GAAOkB,CAElB,EClBA,IAGIT,GAHcD,OAAOL,UAGQM,eAoBjC,SARA,SAAqBgG,EAAQzG,EAAKkB,GAChC,IAAIs9L,EAAW/3L,EAAOzG,GAChBS,GAAeC,KAAK+F,EAAQzG,IAAQi8L,GAAGuC,EAAUt9L,UACxCiC,IAAVjC,GAAyBlB,KAAOyG,IACnCg4L,GAAgBh4L,EAAQzG,EAAKkB,EAEjC,ECcA,SA1BA,SAAoBX,EAAQd,EAAOgH,EAAQi4L,GACzC,IAAIC,GAASl4L,EACbA,IAAWA,EAAS,CAAC,GAKrB,IAHA,IAAI/D,GAAS,EACT/C,EAASF,EAAME,SAEV+C,EAAQ/C,GAAQ,CACvB,IAAIK,EAAMP,EAAMiD,GAEZujC,EAAWy4J,EACXA,EAAWj4L,EAAOzG,GAAMO,EAAOP,GAAMA,EAAKyG,EAAQlG,QAClD4C,OAEaA,IAAb8iC,IACFA,EAAW1lC,EAAOP,IAEhB2+L,EACFF,GAAgBh4L,EAAQzG,EAAKimC,GAE7ByyH,GAAYjyJ,EAAQzG,EAAKimC,EAE7B,CACA,OAAOx/B,CACT,EClBA,SAVA,SAAmBuM,EAAGurL,GAIpB,IAHA,IAAI77L,GAAS,EACTsB,EAAS6C,MAAMmM,KAEVtQ,EAAQsQ,GACfhP,EAAOtB,GAAS67L,EAAS77L,GAE3B,OAAOsB,CACT,ECAA,SAJA,SAAyB9C,GACvB,OAAOyc,GAAazc,IAVR,sBAUkB26L,GAAW36L,EAC3C,ECXA,IAAIi6L,GAAc36L,OAAOL,UAGrBM,GAAiB06L,GAAY16L,eAG7BmG,GAAuBu0L,GAAYv0L,qBAyBvC,SALkBg4L,GAAgB,WAAa,OAAOt+L,SAAW,CAA/B,IAAsCs+L,GAAkB,SAAS19L,GACjG,OAAOyc,GAAazc,IAAUT,GAAeC,KAAKQ,EAAO,YACtD0F,GAAqBlG,KAAKQ,EAAO,SACtC,ECRA,SAFc2F,MAAMC,QCNpB,SAJA,WACE,OAAO,CACT,ECXA,IAAI+3L,GAAgC,iBAAXhgM,SAAuBA,UAAYA,QAAQspG,UAAYtpG,QAG5EigM,GAAaD,IAAgC,iBAAVjgM,QAAsBA,SAAWA,OAAOupG,UAAYvpG,OAMvFi9J,GAHgBijC,IAAcA,GAAWjgM,UAAYggM,GAG5BzhL,GAAKy+I,YAAS14J,EAwB3C,UArBqB04J,GAASA,GAAO9D,cAAW50J,IAmBf47L,GClCjC,IAGIC,GAAW,mBAoBf,SAVA,SAAiB99L,EAAOvB,GACtB,IAAIiF,SAAc1D,EAGlB,SAFAvB,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARiF,GACU,UAARA,GAAoBo6L,GAAS5xL,KAAKlM,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQvB,CACjD,ECYA,SALA,SAAkBuB,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,EC3BA,IA2BI+9L,GAAiB,CAAC,EACtBA,GAZiB,yBAYYA,GAXZ,yBAYjBA,GAXc,sBAWYA,GAVX,uBAWfA,GAVe,uBAUYA,GATZ,uBAUfA,GATsB,8BASYA,GARlB,wBAShBA,GARgB,yBAQY,EAC5BA,GAjCc,sBAiCYA,GAhCX,kBAiCfA,GApBqB,wBAoBYA,GAhCnB,oBAiCdA,GApBkB,qBAoBYA,GAhChB,iBAiCdA,GAhCe,kBAgCYA,GA/Bb,qBAgCdA,GA/Ba,gBA+BYA,GA9BT,mBA+BhBA,GA9BgB,mBA8BYA,GA7BZ,mBA8BhBA,GA7Ba,gBA6BYA,GA5BT,mBA6BhBA,GA5BiB,qBA4BY,EAc7B,SALA,SAA0B/9L,GACxB,OAAOyc,GAAazc,IAClBg+L,GAASh+L,EAAMvB,WAAas/L,GAAepD,GAAW36L,GAC1D,EC5CA,SANA,SAAmB4c,GACjB,OAAO,SAAS5c,GACd,OAAO4c,EAAK5c,EACd,CACF,ECRA,IAAI29L,GAAgC,iBAAXhgM,SAAuBA,UAAYA,QAAQspG,UAAYtpG,QAG5EigM,GAAaD,IAAgC,iBAAVjgM,QAAsBA,SAAWA,OAAOupG,UAAYvpG,OAMvFugM,GAHgBL,IAAcA,GAAWjgM,UAAYggM,IAGtB3hL,GAAWiR,QAiB9C,SAdgB,WACd,IAEE,IAAIixK,EAAQN,IAAcA,GAAWhgM,SAAWggM,GAAWhgM,QAAQ,QAAQsgM,MAE3E,OAAIA,GAKGD,IAAeA,GAAYE,SAAWF,GAAYE,QAAQ,OACnE,CAAE,MAAOl5L,IAAI,CACf,CAZgB,GCVhB,IAAIm5L,GAAmBC,IAAYA,GAASroC,aAqB5C,SAFmBooC,GAAmBE,GAAUF,IAAoBG,GChBpE,IAGIh/L,GAHcD,OAAOL,UAGQM,eAqCjC,SA3BA,SAAuBS,EAAOw+L,GAC5B,IAAIC,EAAQ74L,GAAQ5F,GAChB0+L,GAASD,GAASE,GAAY3+L,GAC9B4+L,GAAUH,IAAUC,GAAS7nC,GAAS72J,GACtC6+L,GAAUJ,IAAUC,IAAUE,GAAU5oC,GAAah2J,GACrD8+L,EAAcL,GAASC,GAASE,GAAUC,EAC1C/7L,EAASg8L,EAAcC,GAAU/+L,EAAMvB,OAAQyO,QAAU,GACzDzO,EAASqE,EAAOrE,OAEpB,IAAK,IAAIK,KAAOkB,GACTw+L,IAAaj/L,GAAeC,KAAKQ,EAAOlB,IACvCggM,IAEQ,UAAPhgM,GAEC8/L,IAAkB,UAAP9/L,GAA0B,UAAPA,IAE9B+/L,IAAkB,UAAP//L,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDkgM,GAAQlgM,EAAKL,KAElBqE,EAAOK,KAAKrE,GAGhB,OAAOgE,CACT,EC7CA,IAAIm3L,GAAc36L,OAAOL,UAgBzB,SAPA,SAAqBe,GACnB,IAAI66L,EAAO76L,GAASA,EAAMD,YAG1B,OAAOC,KAFqB,mBAAR66L,GAAsBA,EAAK57L,WAAcg7L,GAG/D,ECVA,SAFiBM,GAAQj7L,OAAOmH,KAAMnH,QCCtC,IAGIC,GAHcD,OAAOL,UAGQM,eAsBjC,SAbA,SAAkBgG,GAChB,IAAK05L,GAAY15L,GACf,OAAO25L,GAAW35L,GAEpB,IAAIzC,EAAS,GACb,IAAK,IAAIhE,KAAOQ,OAAOiG,GACjBhG,GAAeC,KAAK+F,EAAQzG,IAAe,eAAPA,GACtCgE,EAAOK,KAAKrE,GAGhB,OAAOgE,CACT,ECKA,SAJA,SAAqB9C,GACnB,OAAgB,MAATA,GAAiBg+L,GAASh+L,EAAMvB,UAAYyZ,GAAWlY,EAChE,ECMA,SAJA,SAAcuF,GACZ,OAAO45L,GAAY55L,GAAU65L,GAAc75L,GAAU85L,GAAS95L,EAChE,EClBA,SAJA,SAAoBA,EAAQlG,GAC1B,OAAOkG,GAAU+5L,GAAWjgM,EAAQoH,GAAKpH,GAASkG,EACpD,ECKA,SAVA,SAAsBA,GACpB,IAAIzC,EAAS,GACb,GAAc,MAAVyC,EACF,IAAK,IAAIzG,KAAOQ,OAAOiG,GACrBzC,EAAOK,KAAKrE,GAGhB,OAAOgE,CACT,ECZA,IAGIvD,GAHcD,OAAOL,UAGQM,eAwBjC,SAfA,SAAoBgG,GAClB,IAAKxE,GAASwE,GACZ,OAAOg6L,GAAah6L,GAEtB,IAAIi6L,EAAUP,GAAY15L,GACtBzC,EAAS,GAEb,IAAK,IAAIhE,KAAOyG,GACD,eAAPzG,IAAyB0gM,GAAYjgM,GAAeC,KAAK+F,EAAQzG,KACrEgE,EAAOK,KAAKrE,GAGhB,OAAOgE,CACT,ECCA,SAJA,SAAgByC,GACd,OAAO45L,GAAY55L,GAAU65L,GAAc75L,GAAQ,GAAQk6L,GAAWl6L,EACxE,ECbA,SAJA,SAAsBA,EAAQlG,GAC5B,OAAOkG,GAAU+5L,GAAWjgM,EAAQqgM,GAAOrgM,GAASkG,EACtD,ECXA,IAAIo4L,GAAgC,iBAAXhgM,SAAuBA,UAAYA,QAAQspG,UAAYtpG,QAG5EigM,GAAaD,IAAgC,iBAAVjgM,QAAsBA,SAAWA,OAAOupG,UAAYvpG,OAMvFi9J,GAHgBijC,IAAcA,GAAWjgM,UAAYggM,GAG5BzhL,GAAKy+I,YAAS14J,EACvC09L,GAAchlC,GAASA,GAAOglC,iBAAc19L,EAqBhD,SAXA,SAAqBy0E,EAAQkpH,GAC3B,GAAIA,EACF,OAAOlpH,EAAOh1E,QAEhB,IAAIjD,EAASi4E,EAAOj4E,OAChBqE,EAAS68L,GAAcA,GAAYlhM,GAAU,IAAIi4E,EAAO32E,YAAYtB,GAGxE,OADAi4E,EAAO0K,KAAKt+E,GACLA,CACT,ECbA,SAXA,SAAmBzD,EAAQg8F,GACzB,IAAI75F,GAAS,EACT/C,EAASY,EAAOZ,OAGpB,IADA48F,IAAUA,EAAQ11F,MAAMlH,MACf+C,EAAQ/C,GACf48F,EAAM75F,GAASnC,EAAOmC,GAExB,OAAO65F,CACT,ECOA,SAfA,SAAqBA,EAAOwkG,GAM1B,IALA,IAAIr+L,GAAS,EACT/C,EAAkB,MAAT48F,EAAgB,EAAIA,EAAM58F,OACnCqhM,EAAW,EACXh9L,EAAS,KAEJtB,EAAQ/C,GAAQ,CACvB,IAAIuB,EAAQq7F,EAAM75F,GACdq+L,EAAU7/L,EAAOwB,EAAO65F,KAC1Bv4F,EAAOg9L,KAAc9/L,EAEzB,CACA,OAAO8C,CACT,ECAA,SAJA,WACE,MAAO,EACT,EChBA,IAGI4C,GAHcpG,OAAOL,UAGcyG,qBAGnCq6L,GAAmBzgM,OAAOkM,sBAmB9B,SAVkBu0L,GAA+B,SAASx6L,GACxD,OAAc,MAAVA,EACK,IAETA,EAASjG,OAAOiG,GACTy6L,GAAYD,GAAiBx6L,IAAS,SAASw0F,GACpD,OAAOr0F,GAAqBlG,KAAK+F,EAAQw0F,EAC3C,IACF,EARqCkmG,GCJrC,SAJA,SAAqB5gM,EAAQkG,GAC3B,OAAO+5L,GAAWjgM,EAAQ0D,GAAW1D,GAASkG,EAChD,ECMA,SAXA,SAAmB81F,EAAOxzF,GAKxB,IAJA,IAAIrG,GAAS,EACT/C,EAASoJ,EAAOpJ,OAChBknB,EAAS01E,EAAM58F,SAEV+C,EAAQ/C,GACf48F,EAAM11E,EAASnkB,GAASqG,EAAOrG,GAEjC,OAAO65F,CACT,ECOA,SAlBuB/7F,OAAOkM,sBASqB,SAASjG,GAE1D,IADA,IAAIzC,EAAS,GACNyC,GACL26L,GAAUp9L,EAAQC,GAAWwC,IAC7BA,EAASq1L,GAAar1L,GAExB,OAAOzC,CACT,EAPuCm9L,GCAvC,SAJA,SAAuB5gM,EAAQkG,GAC7B,OAAO+5L,GAAWjgM,EAAQ8gM,GAAa9gM,GAASkG,EAClD,ECMA,SALA,SAAwBA,EAAQ66L,EAAUC,GACxC,IAAIv9L,EAASs9L,EAAS76L,GACtB,OAAOK,GAAQL,GAAUzC,EAASo9L,GAAUp9L,EAAQu9L,EAAY96L,GAClE,ECFA,SAJA,SAAoBA,GAClB,OAAO+6L,GAAe/6L,EAAQkB,GAAM1D,GACtC,ECGA,SAJA,SAAsBwC,GACpB,OAAO+6L,GAAe/6L,EAAQm6L,GAAQS,GACxC,ECRA,SAFetE,GAAU3/K,GAAM,YCE/B,SAFc2/K,GAAU3/K,GAAM,WCE9B,SAFU2/K,GAAU3/K,GAAM,OCE1B,SAFc2/K,GAAU3/K,GAAM,WCK9B,IAAIqkL,GAAS,eAETC,GAAa,mBACbC,GAAS,eACTC,GAAa,mBAEbC,GAAc,oBAGdC,GAAqBjF,GAASkF,IAC9BC,GAAgBnF,GAASjrF,IACzBqwF,GAAoBpF,GAAS95E,IAC7Bm/E,GAAgBrF,GAAS36F,IACzBigG,GAAoBtF,GAASlrE,IAS7BywE,GAASvG,IAGRkG,IAAYK,GAAO,IAAIL,GAAS,IAAI5pC,YAAY,MAAQ0pC,IACxDjwF,IAAOwwF,GAAO,IAAIxwF,KAAQ6vF,IAC1B1+E,IAAWq/E,GAAOr/E,GAAQG,YAAcw+E,IACxCx/F,IAAOkgG,GAAO,IAAIlgG,KAAQy/F,IAC1BhwE,IAAWywE,GAAO,IAAIzwE,KAAYiwE,MACrCQ,GAAS,SAASlhM,GAChB,IAAI8C,EAAS63L,GAAW36L,GACpB66L,EA/BQ,mBA+BD/3L,EAAsB9C,EAAMD,iBAAckC,EACjDk/L,EAAatG,EAAOc,GAASd,GAAQ,GAEzC,GAAIsG,EACF,OAAQA,GACN,KAAKP,GAAoB,OAAOD,GAChC,KAAKG,GAAe,OAAOP,GAC3B,KAAKQ,GAAmB,OAAOP,GAC/B,KAAKQ,GAAe,OAAOP,GAC3B,KAAKQ,GAAmB,OAAOP,GAGnC,OAAO59L,CACT,GAGF,YCxDA,IAGIvD,GAHcD,OAAOL,UAGQM,eAqBjC,SAZA,SAAwB87F,GACtB,IAAI58F,EAAS48F,EAAM58F,OACfqE,EAAS,IAAIu4F,EAAMt7F,YAAYtB,GAOnC,OAJIA,GAA6B,iBAAZ48F,EAAM,IAAkB97F,GAAeC,KAAK67F,EAAO,WACtEv4F,EAAOtB,MAAQ65F,EAAM75F,MACrBsB,EAAOunG,MAAQhP,EAAMgP,OAEhBvnG,CACT,EClBA,SAFiBoZ,GAAK6lE,WCYtB,SANA,SAA0B2nF,GACxB,IAAI5mK,EAAS,IAAI4mK,EAAY3pK,YAAY2pK,EAAYnB,YAErD,OADA,IAAIxmF,GAAWj/E,GAAQkJ,IAAI,IAAI+1E,GAAW2nF,IACnC5mK,CACT,ECEA,SALA,SAAuBs+L,EAAUxB,GAC/B,IAAIlpH,EAASkpH,EAASyB,GAAiBD,EAAS1qH,QAAU0qH,EAAS1qH,OACnE,OAAO,IAAI0qH,EAASrhM,YAAY22E,EAAQ0qH,EAASE,WAAYF,EAAS74B,WACxE,ECZA,IAAIg5B,GAAU,OAed,SANA,SAAqBC,GACnB,IAAI1+L,EAAS,IAAI0+L,EAAOzhM,YAAYyhM,EAAOniM,OAAQkiM,GAAQv8L,KAAKw8L,IAEhE,OADA1+L,EAAO0iC,UAAYg8J,EAAOh8J,UACnB1iC,CACT,ECXA,IAAI2+L,GAAct4L,GAASA,GAAOlK,eAAYgD,EAC1Cy/L,GAAgBD,GAAcA,GAAY7zL,aAAU3L,EAaxD,SAJA,SAAqB83F,GACnB,OAAO2nG,GAAgBpiM,OAAOoiM,GAAcliM,KAAKu6F,IAAW,CAAC,CAC/D,ECAA,SALA,SAAyB4nG,EAAY/B,GACnC,IAAIlpH,EAASkpH,EAASyB,GAAiBM,EAAWjrH,QAAUirH,EAAWjrH,OACvE,OAAO,IAAIirH,EAAW5hM,YAAY22E,EAAQirH,EAAWL,WAAYK,EAAWljM,OAC9E,EC+DA,SApCA,SAAwB8G,EAAQ8G,EAAKuzL,GACnC,IAAI/E,EAAOt1L,EAAOxF,YAClB,OAAQsM,GACN,IA3BiB,uBA4Bf,OAAOg1L,GAAiB97L,GAE1B,IAvCU,mBAwCV,IAvCU,gBAwCR,OAAO,IAAIs1L,GAAMt1L,GAEnB,IAjCc,oBAkCZ,OAAOq8L,GAAcr8L,EAAQq6L,GAE/B,IAnCa,wBAmCI,IAlCJ,wBAmCb,IAlCU,qBAkCI,IAjCH,sBAiCkB,IAhClB,sBAiCX,IAhCW,sBAgCI,IA/BG,6BA+BmB,IA9BzB,uBA8ByC,IA7BzC,uBA8BV,OAAOiC,GAAgBt8L,EAAQq6L,GAEjC,IAjDS,eA2DT,IAxDS,eAyDP,OAAO,IAAI/E,EARb,IAnDY,kBAoDZ,IAjDY,kBAkDV,OAAO,IAAIA,EAAKt1L,GAElB,IAtDY,kBAuDV,OAAOu8L,GAAYv8L,GAKrB,IAzDY,kBA0DV,OAAOw8L,GAAYx8L,GAEzB,ECvEA,IAAIy8L,GAAe1iM,OAAOqB,OA0B1B,SAhBkB,WAChB,SAAS4E,IAAU,CACnB,OAAO,SAAS6B,GACd,IAAKrG,GAASqG,GACZ,MAAO,CAAC,EAEV,GAAI46L,GACF,OAAOA,GAAa56L,GAEtB7B,EAAOtG,UAAYmI,EACnB,IAAItE,EAAS,IAAIyC,EAEjB,OADAA,EAAOtG,eAAYgD,EACZa,CACT,CACF,CAdkB,GCIlB,SANA,SAAyByC,GACvB,MAAqC,mBAAtBA,EAAOxF,aAA8Bk/L,GAAY15L,GAE5D,CAAC,EADD08L,GAAWrH,GAAar1L,GAE9B,ECEA,SAJA,SAAmBvF,GACjB,OAAOyc,GAAazc,IAVT,gBAUmBkhM,GAAOlhM,EACvC,ECVA,IAAIkiM,GAAY7D,IAAYA,GAAS8D,MAqBrC,SAFYD,GAAY5D,GAAU4D,IAAaE,GCP/C,SAJA,SAAmBpiM,GACjB,OAAOyc,GAAazc,IAVT,gBAUmBkhM,GAAOlhM,EACvC,ECVA,IAAIqiM,GAAYhE,IAAYA,GAASiE,MAqBrC,SAFYD,GAAY/D,GAAU+D,IAAaE,GCA/C,IAKIC,GAAU,qBAKVC,GAAU,oBAIVC,GAAY,kBAoBZC,GAAgB,CAAC,EACrBA,GAAcH,IAAWG,GA7BV,kBA8BfA,GAfqB,wBAeWA,GAdd,qBAelBA,GA9Bc,oBA8BWA,GA7BX,iBA8BdA,GAfiB,yBAeWA,GAdX,yBAejBA,GAdc,sBAcWA,GAbV,uBAcfA,GAbe,uBAaWA,GA5Bb,gBA6BbA,GA5BgB,mBA4BWA,GAAcD,IACzCC,GA3BgB,mBA2BWA,GA1Bd,gBA2BbA,GA1BgB,mBA0BWA,GAzBX,mBA0BhBA,GAhBe,uBAgBWA,GAfJ,8BAgBtBA,GAfgB,wBAeWA,GAdX,yBAcsC,EACtDA,GArCe,kBAqCWA,GAAcF,IACxCE,GA5BiB,qBA4BW,EA8F5B,SA5EA,SAASC,EAAU5iM,EAAO6iM,EAASrF,EAAY1+L,EAAKyG,EAAQ6sE,GAC1D,IAAItvE,EACA88L,EAnEgB,EAmEPiD,EACTC,EAnEgB,EAmEPD,EACTE,EAnEmB,EAmEVF,EAKb,GAHIrF,IACF16L,EAASyC,EAASi4L,EAAWx9L,EAAOlB,EAAKyG,EAAQ6sE,GAASorH,EAAWx9L,SAExDiC,IAAXa,EACF,OAAOA,EAET,IAAK/B,GAASf,GACZ,OAAOA,EAET,IAAIy+L,EAAQ74L,GAAQ5F,GACpB,GAAIy+L,GAEF,GADA37L,EAASkgM,GAAehjM,IACnB4/L,EACH,OAAOqD,GAAUjjM,EAAO8C,OAErB,CACL,IAAIuJ,EAAM60L,GAAOlhM,GACbkjM,EAAS72L,GAAOo2L,IA7EX,8BA6EsBp2L,EAE/B,GAAIwqJ,GAAS72J,GACX,OAAOmjM,GAAYnjM,EAAO4/L,GAE5B,GAAIvzL,GAAOq2L,IAAar2L,GAAOm2L,IAAYU,IAAW39L,GAEpD,GADAzC,EAAUggM,GAAUI,EAAU,CAAC,EAAIE,GAAgBpjM,IAC9C4/L,EACH,OAAOkD,EACHO,GAAcrjM,EAAOsjM,GAAaxgM,EAAQ9C,IAC1CujM,GAAYvjM,EAAOwjM,GAAW1gM,EAAQ9C,QAEvC,CACL,IAAK2iM,GAAct2L,GACjB,OAAO9G,EAASvF,EAAQ,CAAC,EAE3B8C,EAAS2gM,GAAezjM,EAAOqM,EAAKuzL,EACtC,CACF,CAEAxtH,IAAUA,EAAQ,IAAI2qH,IACtB,IAAI2G,EAAUtxH,EAAM9vE,IAAItC,GACxB,GAAI0jM,EACF,OAAOA,EAETtxH,EAAMpmE,IAAIhM,EAAO8C,GAEbw/L,GAAMtiM,GACRA,EAAMqJ,SAAQ,SAASs6L,GACrB7gM,EAAO6hE,IAAIi+H,EAAUe,EAAUd,EAASrF,EAAYmG,EAAU3jM,EAAOoyE,GACvE,IACS+vH,GAAMniM,IACfA,EAAMqJ,SAAQ,SAASs6L,EAAU7kM,GAC/BgE,EAAOkJ,IAAIlN,EAAK8jM,EAAUe,EAAUd,EAASrF,EAAY1+L,EAAKkB,EAAOoyE,GACvE,IAGF,IAII7zE,EAAQkgM,OAAQx8L,GAJL8gM,EACVD,EAASc,GAAeC,GACxBf,EAASpD,GAASj5L,IAEkBzG,GASzC,OARA8jM,GAAUvlM,GAASyB,GAAO,SAAS2jM,EAAU7kM,GACvCP,IAEFolM,EAAW3jM,EADXlB,EAAM6kM,IAIRnsC,GAAY10J,EAAQhE,EAAK8jM,EAAUe,EAAUd,EAASrF,EAAY1+L,EAAKkB,EAAOoyE,GAChF,IACOtvE,CACT,ECvIA,SAJA,SAAmB9C,GACjB,OAAO4iM,GAAU5iM,EAAO+jM,EAC1B,gECPA,SAlBA,SAAiBC,EAAW5zE,GAgB5B,ECkBA,SAJA,SAAepwH,GACb,OAAO4iM,GAAU5iM,EA7BM,EA8BzB,ECbA,SAXA,SAAkBq7F,EAAOgiG,GAKvB,IAJA,IAAI77L,GAAS,EACT/C,EAAkB,MAAT48F,EAAgB,EAAIA,EAAM58F,OACnCqE,EAAS6C,MAAMlH,KAEV+C,EAAQ/C,GACfqE,EAAOtB,GAAS67L,EAAShiG,EAAM75F,GAAQA,EAAO65F,GAEhD,OAAOv4F,CACT,ECUA,SALA,SAAkB9C,GAChB,MAAuB,iBAATA,GACXyc,GAAazc,IArBF,mBAqBY26L,GAAW36L,EACvC,ECuBA,SAASikM,GAAQrnL,EAAMsnL,GACrB,GAAmB,mBAARtnL,GAAmC,MAAZsnL,GAAuC,mBAAZA,EAC3D,MAAM,IAAIlmM,UAhDQ,uBAkDpB,IAAImmM,EAAW,WACb,IAAI1yL,EAAOrS,UACPN,EAAMolM,EAAWA,EAAS7hM,MAAMsC,KAAM8M,GAAQA,EAAK,GACnD04C,EAAQg6I,EAASh6I,MAErB,GAAIA,EAAM5mD,IAAIzE,GACZ,OAAOqrD,EAAM7nD,IAAIxD,GAEnB,IAAIgE,EAAS8Z,EAAKva,MAAMsC,KAAM8M,GAE9B,OADA0yL,EAASh6I,MAAQA,EAAMn+C,IAAIlN,EAAKgE,IAAWqnD,EACpCrnD,CACT,EAEA,OADAqhM,EAASh6I,MAAQ,IAAK85I,GAAQG,OAAS7H,IAChC4H,CACT,CAGAF,GAAQG,MAAQ7H,GAEhB,YC/CA,SAZA,SAAuB3/K,GACrB,IAAI9Z,EAASmhM,GAAQrnL,GAAM,SAAS9d,GAIlC,OAfmB,MAYfqrD,EAAM7D,MACR6D,EAAMryC,QAEDhZ,CACT,IAEIqrD,EAAQrnD,EAAOqnD,MACnB,OAAOrnD,CACT,ECpBA,IAAIuhM,GAAa,mGAGbC,GAAe,WAoBnB,SAXmBC,IAAc,SAAS97I,GACxC,IAAI3lD,EAAS,GAOb,OAN6B,KAAzB2lD,EAAOr7C,WAAW,IACpBtK,EAAOK,KAAK,IAEdslD,EAAO/zC,QAAQ2vL,IAAY,SAAS3rL,EAAO8iF,EAAQgpG,EAAOC,GACxD3hM,EAAOK,KAAKqhM,EAAQC,EAAU/vL,QAAQ4vL,GAAc,MAAS9oG,GAAU9iF,EACzE,IACO5V,CACT,ICJA,SARA,SAAe9C,GACb,GAAoB,iBAATA,GAAqBsQ,GAAStQ,GACvC,OAAOA,EAET,IAAI8C,EAAU9C,EAAQ,GACtB,MAAkB,KAAV8C,GAAkB,EAAI9C,IAAU,IAAa,KAAO8C,CAC9D,ECZA,IAGI2+L,GAAct4L,GAASA,GAAOlK,eAAYgD,EAC1CyiM,GAAiBjD,GAAcA,GAAYhgM,cAAWQ,EA0B1D,SAhBA,SAAS0iM,EAAa3kM,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI4F,GAAQ5F,GAEV,OAAO4kM,GAAS5kM,EAAO2kM,GAAgB,GAEzC,GAAIr0L,GAAStQ,GACX,OAAO0kM,GAAiBA,GAAellM,KAAKQ,GAAS,GAEvD,IAAI8C,EAAU9C,EAAQ,GACtB,MAAkB,KAAV8C,GAAkB,EAAI9C,IAAU,IAAa,KAAO8C,CAC9D,ECPA,SAJA,SAAkB9C,GAChB,OAAgB,MAATA,EAAgB,GAAK2kM,GAAa3kM,EAC3C,ECOA,SAPA,SAAgBA,GACd,OAAI4F,GAAQ5F,GACH4kM,GAAS5kM,EAAO6kM,IAElBv0L,GAAStQ,GAAS,CAACA,GAASijM,GAAU6B,GAAarjM,GAASzB,IACrE,qlBC1Ba+kM,IAAgB/oD,EAAAA,EAAAA,oBAC3B/5I,GAEF8iM,GAAcvrL,YAAc,gBAEEurL,GAAc5oD,SACd4oD,GAAc3oD,kBAE5B4oD,KACd,IAAMC,GAASh3E,EAAAA,EAAAA,YAA4C82E,IAO3D,OAJIE,GADJ5/C,IAAU,GAKH4/C,CACR,CCdD,IAAaC,GAAe,SAACllM,GAAD,OAC1B2F,MAAMC,QAAQ5F,IAA2B,IAAjBA,EAAMvB,MADJ,EAIfyZ,GAAa,SAACja,GAAD,MACT,oBAARA,CADiB,EAIb8C,GAAW,SAAC9C,GAAD,OACd,OAARA,GAA+B,kBAARA,CADD,EAIXknM,GAAY,SAAClnM,GAAD,OACvBiP,OAAO/H,KAAKsI,MAAMkG,OAAO1V,OAAWA,CADb,EAIZ+2J,GAAW,SAAC/2J,GAAD,MACkB,oBAAxCqB,OAAOL,UAAUwC,SAASjC,KAAKvB,EADT,EAQXmnM,GAAkB,SAAC1nH,GAAD,OACM,IAAnCyxD,EAAAA,SAAe77H,MAAMoqE,EADQ,EAIlB2nH,GAAY,SAACrlM,GAAD,OACvBe,GAASf,IAAUkY,GAAWlY,EAAMiiH,KADb,EAiCzB,SAAgBqjF,GACdrnM,EACAa,EACAsN,EACAoI,QAAA,IAAAA,IAAAA,EAAY,GAGZ,IADA,IAAM+S,EAAOg+K,GAAOzmM,GACbb,GAAOuW,EAAI+S,EAAK9oB,QACrBR,EAAMA,EAAIspB,EAAK/S,MAIjB,OAAIA,IAAM+S,EAAK9oB,QAAWR,OAIXgE,IAARhE,EAAoBmO,EAAMnO,EAHxBmO,CAIV,CA0BD,SAAgBo5L,GAAMvnM,EAAUspB,EAAcvnB,GAM5C,IALA,IAAIiqK,EAAWt9H,GAAM1uC,GACjBwnM,EAAcx7B,EACdzrK,EAAI,EACJknM,EAAYH,GAAOh+K,GAEhB/oB,EAAIknM,EAAUjnM,OAAS,EAAGD,IAAK,CACpC,IAAMmnM,EAAsBD,EAAUlnM,GAClConM,EAAkBN,GAAMrnM,EAAKynM,EAAUhkM,MAAM,EAAGlD,EAAI,IAExD,GAAIonM,IAAe7kM,GAAS6kM,IAAejgM,MAAMC,QAAQggM,IACvDH,EAASA,EAAOE,GAAeh5J,GAAMi5J,OAChC,CACL,IAAMC,EAAmBH,EAAUlnM,EAAI,GACvCinM,EAASA,EAAOE,GACdR,GAAUU,IAAalyL,OAAOkyL,IAAa,EAAI,GAAK,CAAC,CACxD,CACF,CAGD,OAAW,IAANrnM,EAAUP,EAAMwnM,GAAQC,EAAUlnM,MAAQwB,EACtC/B,QAGKgE,IAAVjC,SACKylM,EAAOC,EAAUlnM,IAExBinM,EAAOC,EAAUlnM,IAAMwB,EAKf,IAANxB,QAAqByD,IAAVjC,UACNiqK,EAAIy7B,EAAUlnM,IAGhByrK,EACR,CASD,SAAgB67B,GACdvgM,EACAvF,EACA+lM,EACA95K,QADA,IAAA85K,IAAAA,EAAe,IAAIt1E,cACnB,IAAAxkG,IAAAA,EAAgB,CAAC,GAEjB,IAAK,IAAL3d,EAAA,EAAA2lI,EAAc30I,OAAOmH,KAAKlB,GAA1B+I,EAAA2lI,EAAAx1I,OAAA6P,IAAmC,CAA9B,IAAIhF,EAAC2qI,EAAA3lI,GACFX,EAAMpI,EAAO+D,GACfvI,GAAS4M,GACNo4L,EAAQzjM,IAAIqL,KACfo4L,EAAQ/5L,IAAI2B,GAAK,GAIjBse,EAAS3iB,GAAK3D,MAAMC,QAAQ+H,GAAO,GAAK,CAAC,EACzCm4L,GAAsBn4L,EAAK3N,EAAO+lM,EAAS95K,EAAS3iB,KAGtD2iB,EAAS3iB,GAAKtJ,CAEjB,CAED,OAAOisB,CACR,CC1DD,IAAM+5K,GAAqC,CAAC,EACtCC,GAAuC,CAAC,EAU9C,SAAgBC,GAAAvnG,WACdwnG,iBAAAA,OAAA,IAAAC,GAAmBA,MACnBC,eAAAA,OAAA,IAAAC,GAAiBA,MACjBC,gBAAAA,OAAA,IAAAC,GAAkBA,EAClBC,EAAA9nG,EAAA8nG,mBACAloG,mBAAAA,OAAA,IAAAmoG,GAAqBA,EACrBjtB,EAAA96E,EAAA86E,SACGxwB,EAAAnsD,GAAA6B,EAAA,0GAEGpgG,EAAKm+F,GAAA,CACTypG,iBAAAA,EACAE,eAAAA,EACAE,gBAAAA,EACA9sB,SAAAA,GACGxwB,GAEC09C,GAAgB7oG,EAAAA,EAAAA,QAAav/F,EAAMooM,eACnCC,GAAgB9oG,EAAAA,EAAAA,QAAav/F,EAAMqoM,eAAiBZ,IACpDa,GAAiB/oG,EAAAA,EAAAA,QAAav/F,EAAMsoM,gBAAkBZ,IACtDa,GAAgBhpG,EAAAA,EAAAA,QAAav/F,EAAMuoM,eACnC73E,GAAYnxB,EAAAA,EAAAA,SAAsB,GAClCipG,GAAgBjpG,EAAAA,EAAAA,QAA4B,CAAC,IAYnDH,EAAAA,EAAAA,YAAgB,WAGd,OAFAsxB,EAAU38B,SAAU,EAEb,WACL28B,EAAU38B,SAAU,CACrB,CACF,GAAE,QAEM00G,GAAgB34E,EAAAA,EAAAA,UAAe,GAA/B,GACH44E,GAAWnpG,EAAAA,EAAAA,QAAkC,CACjDj2F,OAAQq/L,GAAU3oM,EAAMooM,eACxBh3C,OAAQu3C,GAAU3oM,EAAMqoM,gBAAkBZ,GAC1CmB,QAASD,GAAU3oM,EAAMsoM,iBAAmBZ,GAC5Ct5K,OAAQu6K,GAAU3oM,EAAMuoM,eACxBM,cAAc,EACdC,cAAc,EACdC,YAAa,IAGTzkH,EAAQokH,EAAS30G,QAEjBu5B,GAAW9tB,EAAAA,EAAAA,cAAkB,SAAC/lF,GAClC,IAAMgiL,EAAOiN,EAAS30G,QAEtB20G,EAAS30G,QAtIb,SACEzP,EACA0kH,GAEA,OAAQA,EAAI7jM,MACV,IAAK,aACH,OAAAg5F,GAAA,GAAY7Z,EAAZ,CAAmBh7E,OAAQ0/L,EAAIz6K,UACjC,IAAK,cACH,OAAA4vE,GAAA,GAAY7Z,EAAZ,CAAmBskH,QAASI,EAAIz6K,UAClC,IAAK,aACH,OAAI06K,KAAQ3kH,EAAM8sE,OAAQ43C,EAAIz6K,SACrB+1D,EAGT6Z,GAAA,GAAY7Z,EAAZ,CAAmB8sE,OAAQ43C,EAAIz6K,UACjC,IAAK,aACH,OAAA4vE,GAAA,GAAY7Z,EAAZ,CAAmBl2D,OAAQ46K,EAAIz6K,UACjC,IAAK,mBACH,OAAA4vE,GAAA,GAAY7Z,EAAZ,CAAmBukH,aAAcG,EAAIz6K,UACvC,IAAK,mBACH,OAAA4vE,GAAA,GAAY7Z,EAAZ,CAAmBwkH,aAAcE,EAAIz6K,UACvC,IAAK,kBACH,OAAA4vE,GAAA,GACK7Z,EADL,CAEEh7E,OAAQ29L,GAAM3iH,EAAMh7E,OAAQ0/L,EAAIz6K,QAAQk+H,MAAOu8C,EAAIz6K,QAAQ9sB,SAE/D,IAAK,oBACH,OAAA08F,GAAA,GACK7Z,EADL,CAEEskH,QAAS3B,GAAM3iH,EAAMskH,QAASI,EAAIz6K,QAAQk+H,MAAOu8C,EAAIz6K,QAAQ9sB,SAEjE,IAAK,kBACH,OAAA08F,GAAA,GACK7Z,EADL,CAEE8sE,OAAQ61C,GAAM3iH,EAAM8sE,OAAQ43C,EAAIz6K,QAAQk+H,MAAOu8C,EAAIz6K,QAAQ9sB,SAE/D,IAAK,aACH,OAAA08F,GAAA,GAAY7Z,EAAU0kH,EAAIz6K,SAC5B,IAAK,mBACH,OAAOy6K,EAAIz6K,QAAQ+1D,GACrB,IAAK,iBACH,OAAA6Z,GAAA,GACK7Z,EADL,CAEEskH,QAASrB,GACPjjH,EAAMh7E,QACN,GAEFu/L,cAAc,EACdE,YAAazkH,EAAMykH,YAAc,IAErC,IAAK,iBAKL,IAAK,iBACH,OAAA5qG,GAAA,GACK7Z,EADL,CAEEukH,cAAc,IAElB,QACE,OAAOvkH,EAEZ,CAuEsB4kH,CAAczN,EAAMhiL,GAGnCgiL,IAASiN,EAAS30G,SAAS00G,GAAa,SAAAxpK,GAAC,OAAIA,EAAI,CAAR,GAC9C,GAAE,IAEGkqK,GAAqB3pG,EAAAA,EAAAA,cACzB,SAACl2F,EAAgBmjJ,GACf,OAAO,IAAInpC,SAAQ,SAACG,EAASigD,GAC3B,IAAM0lC,EAAuBppM,EAAMqpM,SAAiB//L,EAAQmjJ,GACjC,MAAvB28C,EAEF3lF,EAAQgkF,IACCX,GAAUsC,GAClBA,EAAqC1lF,MACpC,SAAA0tC,GACE3tC,EAAQ2tC,GAAUq2C,GACnB,IACD,SAAA6B,GAQE5lC,EAAO4lC,EACR,IAGH7lF,EAAQ2lF,EAEX,GACF,GACD,CAACppM,EAAMqpM,WAMHE,GAAsB/pG,EAAAA,EAAAA,cAC1B,SAACl2F,EAAgBmjJ,GACf,IAAM+8C,EAAmBxpM,EAAMwpM,iBACzB17B,EAASn0J,GAAW6vL,GACtBA,EAAiB/8C,GACjB+8C,EACEz6B,EACJtiB,GAASqhB,EAAO27B,WACZ37B,EAAO27B,WAAWh9C,EAAOnjJ,GAu0BrC,SACEA,EACAwkK,EACA47B,EACAx0H,QADA,IAAAw0H,IAAAA,GAAgB,GAGhB,IAAMC,EAAiCC,GAAyBtgM,GAEhE,OAAOwkK,EAAO47B,EAAO,eAAiB,YAAYC,EAAkB,CAClEE,YAAY,EACZ30H,QAASA,GAAWy0H,GAEvB,CAl1BWG,CAAkBxgM,EAAQwkK,GAChC,OAAO,IAAIxqD,SAAQ,SAACG,EAASigD,GAC3BqL,EAAQrrD,MACN,WACED,EAAQgkF,GACT,IACD,SAACx5K,GAKkB,oBAAbA,EAAI7oB,KACNq+G,EAwyBd,SAAwCsmF,GACtC,IAAI34C,EAA+B,CAAC,EACpC,GAAI24C,EAASvT,MAAO,CAClB,GAA8B,IAA1BuT,EAASvT,MAAMt2L,OACjB,OAAO+mM,GAAM71C,EAAQ24C,EAAS/gL,KAAM+gL,EAASl4E,SAE1C,IAALm4E,EAAgBD,EAASvT,MAAzByT,EAAA7iM,MAAAC,QAAA2iM,GAAAj6L,EAAA,MAAAi6L,EAAAC,EAAAD,EAAAA,EAAAp/L,OAAAoH,cAAgC,KAAA8hJ,EAAA,GAAAm2C,EAAA,IAAAl6L,GAAAi6L,EAAA9pM,OAAA,MAAA4zJ,EAAAk2C,EAAAj6L,IAAA,UAAAA,EAAAi6L,EAAAtiM,QAAA6B,KAAA,MAAAuqJ,EAAA/jJ,EAAAtO,KAAA,KAAvBwsB,EAAuB6lI,EACzBizC,GAAM31C,EAAQnjI,EAAIjF,QACrBooI,EAAS61C,GAAM71C,EAAQnjI,EAAIjF,KAAMiF,EAAI4jG,SAExC,CACF,CACD,OAAOu/B,CACR,CArzBqB84C,CAAgBj8K,IAUxBy1I,EAAOz1I,EAEV,GAEJ,GACF,GACD,CAACjuB,EAAMwpM,mBAGHW,GAAgC3qG,EAAAA,EAAAA,cACpC,SAACitD,EAAehrJ,GACd,OAAO,IAAI6hH,SAAQ,SAAAG,GAAO,OACxBA,EAAQ+kF,EAAcz0G,QAAQ04D,GAAO48C,SAAS5nM,GADtB,GAG3B,GACD,IAGI2oM,GAA2B5qG,EAAAA,EAAAA,cAC/B,SAACl2F,GACC,IAAM+gM,EAAoCtpM,OAAOmH,KAC/CsgM,EAAcz0G,SACdjtC,QAAO,SAAAriD,GAAC,OAAIkV,GAAW6uL,EAAcz0G,QAAQtvF,GAAG4kM,SAAxC,IAGJiB,EACJD,EAAwBnqM,OAAS,EAC7BmqM,EAAwBnkE,KAAI,SAAAzhI,GAAC,OAC3B0lM,EAA8B1lM,EAAGsiM,GAAMz9L,EAAQ7E,GADpB,IAG7B,CAAC6+G,QAAQG,QAAQ,oCAEvB,OAAOH,QAAQwwD,IAAIw2B,GAAkB5mF,MAAK,SAAC6mF,GAAD,OACxCA,EAAgBzxD,QAAO,SAAC2iD,EAAM+O,EAAMvnM,GAClC,MAAa,oCAATunM,GAGAA,IACF/O,EAAOwL,GAAMxL,EAAM4O,EAAwBpnM,GAAQunM,IAH5C/O,CAMV,GAAE,CAAC,EAToC,GAW3C,GACD,CAAC0O,IAIGM,GAAoBjrG,EAAAA,EAAAA,cACxB,SAACl2F,GACC,OAAOg6G,QAAQwwD,IAAI,CACjBs2B,EAAyB9gM,GACzBtJ,EAAMwpM,iBAAmBD,EAAoBjgM,GAAU,CAAC,EACxDtJ,EAAMqpM,SAAWF,EAAmB7/L,GAAU,CAAC,IAC9Co6G,MAAK,SAAAo5B,OAAE4tD,EAAA5tD,EAAA,GAAa6tD,EAAA7tD,EAAA,GAAc8tD,EAAA9tD,EAAA,GAKnC,OAJuBs+C,GAAUtnB,IAC/B,CAAC42B,EAAaC,EAAcC,GAC5B,CAAEtP,WAAAA,IAGL,GACF,GACD,CACEt7L,EAAMqpM,SACNrpM,EAAMwpM,iBACNY,EACAjB,EACAI,IAKEsB,EAA+BxrG,IACnC,SAAC/1F,GAEC,YAFD,IAAAA,IAAAA,EAAiBg7E,EAAMh7E,QACtBgkH,EAAS,CAAEnoH,KAAM,mBAAoBopB,SAAS,IACvCk8K,EAAkBnhM,GAAQo6G,MAAK,SAAAonF,GAKpC,OAJMp6E,EAAU38B,UACdu5B,EAAS,CAAEnoH,KAAM,mBAAoBopB,SAAS,IAC9C++F,EAAS,CAAEnoH,KAAM,aAAcopB,QAASu8K,KAEnCA,CACR,GACF,KAGH1rG,EAAAA,EAAAA,YAAgB,WAEZ4oG,IACsB,IAAtBt3E,EAAU38B,SACVk1G,KAAQb,EAAcr0G,QAAS/zF,EAAMooM,gBAErCyC,EAA6BzC,EAAcr0G,QAE9C,GAAE,CAACi0G,EAAiB6C,IAErB,IAAME,GAAYvrG,EAAAA,EAAAA,cAChB,SAACmzC,GACC,IAAMrpI,EACJqpI,GAAaA,EAAUrpI,OACnBqpI,EAAUrpI,OACV8+L,EAAcr0G,QACdq9D,EACJze,GAAaA,EAAUye,OACnBze,EAAUye,OACVi3C,EAAct0G,QACds0G,EAAct0G,QACd/zF,EAAMqoM,eAAiB,CAAC,EACxBO,EACJj2D,GAAaA,EAAUi2D,QACnBj2D,EAAUi2D,QACVN,EAAev0G,QACfu0G,EAAev0G,QACf/zF,EAAMsoM,gBAAkB,CAAC,EACzBl6K,EACJukH,GAAaA,EAAUvkH,OACnBukH,EAAUvkH,OACVm6K,EAAcx0G,QACdw0G,EAAcx0G,QACd/zF,EAAMuoM,cACZH,EAAcr0G,QAAUzqF,EACxB++L,EAAct0G,QAAUq9D,EACxBk3C,EAAev0G,QAAU60G,EACzBL,EAAcx0G,QAAU3lE,EAExB,IAAM48K,EAAa,WACjB19E,EAAS,CACPnoH,KAAM,aACNopB,QAAS,CACPs6K,eAAgBl2D,KAAeA,EAAUk2D,aACzCz3C,OAAAA,EACAw3C,QAAAA,EACAx6K,OAAAA,EACA9kB,OAAAA,EACAw/L,eAAgBn2D,KAAeA,EAAUm2D,aACzCC,YACIp2D,GACAA,EAAUo2D,aACqB,kBAA1Bp2D,EAAUo2D,YACbp2D,EAAUo2D,YACV,IAGX,EAED,GAAI/oM,EAAM0gG,QAAS,CACjB,IAAMuqG,EAAwBjrM,EAAM0gG,QAClCpc,EAAMh7E,OACN4hM,GAGEpE,GAAUmE,GACXA,EAAsCvnF,KAAKsnF,GAE5CA,GAEH,MACCA,GAEH,GACD,CAAChrM,EAAMqoM,cAAeroM,EAAMuoM,cAAevoM,EAAMsoM,eAAgBtoM,EAAM0gG,WAGzEtB,EAAAA,EAAAA,YAAgB,YAEU,IAAtBsxB,EAAU38B,SACTk1G,KAAQb,EAAcr0G,QAAS/zF,EAAMooM,gBAElCpoG,IACFooG,EAAcr0G,QAAU/zF,EAAMooM,cAC9B2C,IACI/C,GACF6C,EAA6BzC,EAAcr0G,SAIlD,GAAE,CACDiM,EACAhgG,EAAMooM,cACN2C,EACA/C,EACA6C,KAGFzrG,EAAAA,EAAAA,YAAgB,WAEZY,IACsB,IAAtB0wB,EAAU38B,UACTk1G,KAAQZ,EAAct0G,QAAS/zF,EAAMqoM,iBAEtCA,EAAct0G,QAAU/zF,EAAMqoM,eAAiBZ,GAC/Cn6E,EAAS,CACPnoH,KAAM,aACNopB,QAASvuB,EAAMqoM,eAAiBZ,KAGrC,GAAE,CAACznG,EAAoBhgG,EAAMqoM,iBAE9BjpG,EAAAA,EAAAA,YAAgB,WAEZY,IACsB,IAAtB0wB,EAAU38B,UACTk1G,KAAQX,EAAev0G,QAAS/zF,EAAMsoM,kBAEvCA,EAAev0G,QAAU/zF,EAAMsoM,gBAAkBZ,GACjDp6E,EAAS,CACPnoH,KAAM,cACNopB,QAASvuB,EAAMsoM,gBAAkBZ,KAGtC,GAAE,CAAC1nG,EAAoBhgG,EAAMsoM,kBAE9BlpG,EAAAA,EAAAA,YAAgB,WAEZY,IACsB,IAAtB0wB,EAAU38B,UACTk1G,KAAQV,EAAcx0G,QAAS/zF,EAAMuoM,iBAEtCA,EAAcx0G,QAAU/zF,EAAMuoM,cAC9Bj7E,EAAS,CACPnoH,KAAM,aACNopB,QAASvuB,EAAMuoM,gBAGpB,GAAE,CAACvoG,EAAoBhgG,EAAMuoM,cAAevoM,EAAMsoM,iBAEnD,IAAM6C,EAAgB9rG,IAAiB,SAACj6F,GAKtC,GACEojM,EAAcz0G,QAAQ3uF,IACtBuU,GAAW6uL,EAAcz0G,QAAQ3uF,GAAMikM,UACvC,CACA,IAAM5nM,EAAQslM,GAAMziH,EAAMh7E,OAAQlE,GAC5BgmM,EAAe5C,EAAcz0G,QAAQ3uF,GAAMikM,SAAS5nM,GAC1D,OAAIqlM,GAAUsE,IAEZ99E,EAAS,CAAEnoH,KAAM,mBAAoBopB,SAAS,IACvC68K,EACJ1nF,MAAK,SAACzkF,GAAD,OAAYA,CAAZ,IACLykF,MAAK,SAAC9uG,GACL04G,EAAS,CACPnoH,KAAM,kBACNopB,QAAS,CAAEk+H,MAAOrnJ,EAAM3D,MAAOmT,KAEjC04G,EAAS,CAAEnoH,KAAM,mBAAoBopB,SAAS,GAC/C,MAEH++F,EAAS,CACPnoH,KAAM,kBACNopB,QAAS,CACPk+H,MAAOrnJ,EACP3D,MAAO2pM,KAGJ9nF,QAAQG,QAAQ2nF,GAE1B,CAAM,OAAIprM,EAAMwpM,kBACfl8E,EAAS,CAAEnoH,KAAM,mBAAoBopB,SAAS,IACvCg7K,EAAoBjlH,EAAMh7E,OAAQlE,GACtCs+G,MAAK,SAACzkF,GAAD,OAAYA,CAAZ,IACLykF,MAAK,SAAC9uG,GACL04G,EAAS,CACPnoH,KAAM,kBACNopB,QAAS,CAAEk+H,MAAOrnJ,EAAM3D,MAAOslM,GAAMnyL,EAAOxP,MAE9CkoH,EAAS,CAAEnoH,KAAM,mBAAoBopB,SAAS,GAC/C,KAGE+0F,QAAQG,SAChB,IAEK4nF,GAAgB7rG,EAAAA,EAAAA,cAAkB,SAACp6F,EAADsuL,OAAiB2V,EAAA3V,EAAA2V,SACvDb,EAAcz0G,QAAQ3uF,GAAQ,CAC5BikM,SAAAA,EAEH,GAAE,IAEGiC,GAAkB9rG,EAAAA,EAAAA,cAAkB,SAACp6F,UAClCojM,EAAcz0G,QAAQ3uF,EAC9B,GAAE,IAEGmmM,EAAalsG,IACjB,SAACupG,EAAgC4C,GAI/B,OAHAl+E,EAAS,CAAEnoH,KAAM,cAAeopB,QAASq6K,UAEpBllM,IAAnB8nM,EAA+B1D,EAAiB0D,GAE9CX,EAA6BvmH,EAAMh7E,QACnCg6G,QAAQG,SACb,IAGGgoF,GAAYjsG,EAAAA,EAAAA,cAAkB,SAAC4xD,GACnC9jC,EAAS,CAAEnoH,KAAM,aAAcopB,QAAS6iI,GACzC,GAAE,IAEGs6C,EAAYrsG,IAChB,SAAC/1F,EAAsCkiM,GACrC,IAAMG,EAAiBhyL,GAAWrQ,GAAUA,EAAOg7E,EAAMh7E,QAAUA,EAKnE,OAHAgkH,EAAS,CAAEnoH,KAAM,aAAcopB,QAASo9K,UAEnBjoM,IAAnB8nM,EAA+B5D,EAAmB4D,GAEhDX,EAA6Bc,GAC7BroF,QAAQG,SACb,IAGGmoF,GAAgBpsG,EAAAA,EAAAA,cACpB,SAACitD,EAAehrJ,GACd6rH,EAAS,CACPnoH,KAAM,kBACNopB,QAAS,CAAEk+H,MAAAA,EAAOhrJ,MAAAA,IAErB,GACD,IAGIoqM,EAAgBxsG,IACpB,SAACotD,EAAehrJ,EAAY+pM,GAU1B,OATAl+E,EAAS,CACPnoH,KAAM,kBACNopB,QAAS,CACPk+H,MAAAA,EACAhrJ,MAAAA,WAIiBiC,IAAnB8nM,EAA+B5D,EAAmB4D,GAEhDX,EAA6B5D,GAAM3iH,EAAMh7E,OAAQmjJ,EAAOhrJ,IACxD6hH,QAAQG,SACb,IAGGqoF,GAAgBtsG,EAAAA,EAAAA,cACpB,SAACusG,EAAmDC,GAIlD,IAEItqC,EAFAjV,EAAQu/C,EACR58L,EAAM28L,EAIV,IAAKt1C,GAASs1C,GAAmB,CAG1BA,EAAyBz2F,SAC3By2F,EAA4Cz2F,UAE/C,IAAMv1G,EAASgsM,EAAiBhsM,OAC3BgsM,EAA4ChsM,OAC5CgsM,EAA4CrzL,cAG/CvT,EAQEpF,EARFoF,KACAC,EAOErF,EAPFqF,KACAsE,EAME3J,EANF2J,GACAjI,EAKE1B,EALF0B,MACAglG,EAIE1mG,EAJF0mG,QAEAhzF,GAEE1T,EAHF0uL,UAGE1uL,EAFF0T,SACA6iH,EACEv2H,EADFu2H,SAGFm2B,EAAQu/C,IAAwB5mM,GAAcsE,GAQ9C0F,EAAM,eAAezB,KAAKxI,IACpBu8J,EAASlgB,WAAW//I,GAAS0N,MAAMuyJ,GAAU,GAAKA,GACpD,WAAW/zJ,KAAKxI,GA6f5B,SACE0/D,EACA4hC,EACAjZ,GAGA,GAA4B,mBAAjB3oB,EACT,OAAOmjE,QAAQvhC,GAIjB,IAAIwlG,EAAuB,GACvBC,GAAiB,EACjBjpM,GAAS,EAEb,GAAKmE,MAAMC,QAAQw9D,GAOjBonI,EAAuBpnI,EAEvBqnI,GADAjpM,EAAQ4hE,EAAap3C,QAAQ+/D,KACH,OAP1B,IAAKA,GAA0B,QAAbA,GAAoC,SAAbA,EACvC,OAAOw6C,QAAQvhC,GAUnB,GAAIA,GAAWjZ,IAAc0+G,EAC3B,OAAOD,EAAqB9gM,OAAOqiF,GAIrC,IAAK0+G,EACH,OAAOD,EAIT,OAAOA,EACJ9oM,MAAM,EAAGF,GACTkI,OAAO8gM,EAAqB9oM,MAAMF,EAAQ,GAC9C,CAriBWkpM,CAAoBpF,GAAMziH,EAAMh7E,OAAQmjJ,GAAShmD,EAAShlG,GAC1DgS,GAAW6iH,EAofvB,SAA2B7iH,GACzB,OAAOrM,MAAM23F,KAAKtrF,GACfqzC,QAAO,SAAAhkD,GAAE,OAAIA,EAAG2kG,QAAP,IACTy+B,KAAI,SAAApjI,GAAE,OAAIA,EAAGrB,KAAP,GACV,CAvfW2qM,CAAkB34L,GAClBhS,CACL,CAEGgrJ,GAEFo/C,EAAcp/C,EAAOr9I,EAExB,GACD,CAACy8L,EAAevnH,EAAMh7E,SAGlB+iM,EAAehtG,IACnB,SACEitG,GAEA,GAAI71C,GAAS61C,GACX,OAAO,SAAA79K,GAAK,OAAIq9K,EAAcr9K,EAAO69K,EAAzB,EAEZR,EAAcQ,EAEjB,IAGGC,EAAkBltG,IACtB,SAACotD,EAAem8C,EAAyB4C,GAUvC,YAVc,IAAA5C,IAAAA,GAAmB,GACjCt7E,EAAS,CACPnoH,KAAM,oBACNopB,QAAS,CACPk+H,MAAAA,EACAhrJ,MAAOmnM,WAIUllM,IAAnB8nM,EAA+B1D,EAAiB0D,GAE9CX,EAA6BvmH,EAAMh7E,QACnCg6G,QAAQG,SACb,IAGG+oF,GAAchtG,EAAAA,EAAAA,cAClB,SAAC94F,EAAQsiB,GACHtiB,EAAE4uG,SACJ5uG,EAAE4uG,gBAE4B5uG,EAAE3G,OAA1BqF,EAAAqnM,EAAArnM,KAAMsE,EAAA+iM,EAAA/iM,GACR+iJ,GADYggD,EAAAhe,UACJzlK,IAAc5jB,GAAcsE,IAU1C6iM,EAAgB9/C,GAAO,EACxB,GACD,CAAC8/C,IAGGG,EAAartG,IACjB,SAACstG,GACC,GAAIl2C,GAASk2C,GACX,OAAO,SAAAl+K,GAAK,OAAI+9K,EAAY/9K,EAAOk+K,EAAvB,EAEZH,EAAYG,EAEf,IAGGC,GAAiBptG,EAAAA,EAAAA,cACrB,SACEqtG,GAIIlzL,GAAWkzL,GACbv/E,EAAS,CAAEnoH,KAAM,mBAAoBopB,QAASs+K,IAE9Cv/E,EAAS,CAAEnoH,KAAM,mBAAoBopB,QAAS,kBAAMs+K,CAAN,GAEjD,GACD,IAGIC,GAAYttG,EAAAA,EAAAA,cAAkB,SAACpxE,GACnCk/F,EAAS,CAAEnoH,KAAM,aAAcopB,QAASH,GACzC,GAAE,IAEG2+K,GAAgBvtG,EAAAA,EAAAA,cAAkB,SAACqpG,GACvCv7E,EAAS,CAAEnoH,KAAM,mBAAoBopB,QAASs6K,GAC/C,GAAE,IAEGmE,EAAa3tG,IAAiB,WAElC,OADAiuB,EAAS,CAAEnoH,KAAM,mBACV0lM,IAA+BnnF,MACpC,SAAConF,GAQC,IAAMmC,EAAoBnC,aAA0BjxL,MAGpD,IADGozL,GAA4D,IAAvClsM,OAAOmH,KAAK4iM,GAAgB5qM,OAC/B,CAWnB,IAAIgtM,EACJ,IAIE,QAA2BxpM,KAH3BwpM,EAAqBC,KAInB,MAEH,CAAC,MAAOv4L,GACP,MAAMA,CACP,CAED,OAAO0uG,QAAQG,QAAQypF,GACpBxpF,MAAK,SAAAn/G,GAIJ,OAHMmsH,EAAU38B,SACdu5B,EAAS,CAAEnoH,KAAM,mBAEZZ,CACR,IANI,OAOE,SAAA6oM,GACL,GAAM18E,EAAU38B,QAId,MAHAu5B,EAAS,CAAEnoH,KAAM,mBAGXioM,CAET,GACJ,CAAM,GAAM18E,EAAU38B,UAErBu5B,EAAS,CAAEnoH,KAAM,mBAEb8nM,GACF,MAAMnC,CAIX,GAEJ,IAEKuC,EAAehuG,IACnB,SAAC34F,GACKA,GAAKA,EAAE0uG,gBAAkBz7F,GAAWjT,EAAE0uG,iBACxC1uG,EAAE0uG,iBAGA1uG,GAAKA,EAAE0tG,iBAAmBz6F,GAAWjT,EAAE0tG,kBACzC1tG,EAAE0tG,kBAsBJ44F,IAAU,OAAS,SAAApjC,GACjBlzJ,QAAQi2C,KAAR,2DAEEi9G,EAEH,GACF,IAGGshC,EAA2C,CAC/CH,UAAAA,EACAuC,aAAczC,EACdM,cAAAA,EACAM,UAAAA,EACAG,cAAAA,EACAW,gBAAAA,EACAV,cAAAA,EACAiB,UAAAA,EACAC,cAAAA,EACAxB,WAAAA,EACAG,UAAAA,EACAkB,eAAAA,EACAI,WAAAA,GAGIG,EAAgB9tG,IAAiB,WACrC,OAAO67E,EAAS52F,EAAMh7E,OAAQ4hM,EAC/B,IAEKqC,EAAcluG,IAAiB,SAAA34F,GAC/BA,GAAKA,EAAE0uG,gBAAkBz7F,GAAWjT,EAAE0uG,iBACxC1uG,EAAE0uG,iBAGA1uG,GAAKA,EAAE0tG,iBAAmBz6F,GAAWjT,EAAE0tG,kBACzC1tG,EAAE0tG,kBAGJ22F,GACD,IAEKyC,GAAehuG,EAAAA,EAAAA,cACnB,SAACp6F,GACC,MAAO,CACL3D,MAAOslM,GAAMziH,EAAMh7E,OAAQlE,GAC3BwP,MAAOmyL,GAAMziH,EAAM8sE,OAAQhsJ,GAC3BwjM,UAAW7B,GAAMziH,EAAMskH,QAASxjM,GAChC8hG,aAAc6/F,GAAMqB,EAAcr0G,QAAS3uF,GAC3CkjM,iBAAkBvB,GAAMuB,EAAev0G,QAAS3uF,GAChDqoM,aAAc1G,GAAMsB,EAAct0G,QAAS3uF,GAE9C,GACD,CAACk/E,EAAM8sE,OAAQ9sE,EAAMskH,QAAStkH,EAAMh7E,SAGhCokM,GAAkBluG,EAAAA,EAAAA,cACtB,SAACp6F,GACC,MAAO,CACLihG,SAAU,SAAC5kG,EAAY+pM,GAAb,OACRK,EAAczmM,EAAM3D,EAAO+pM,EADnB,EAEVD,WAAY,SAAC9pM,EAAgB+pM,GAAjB,OACVe,EAAgBnnM,EAAM3D,EAAO+pM,EADnB,EAEZmC,SAAU,SAAClsM,GAAD,OAAgBmqM,EAAcxmM,EAAM3D,EAApC,EAEb,GACD,CAACoqM,EAAeU,EAAiBX,IAG7BgC,IAAgBpuG,EAAAA,EAAAA,cACpB,SAACquG,GACC,IAAMC,EAAatrM,GAASqrM,GACtBzoM,EAAO0oM,EACRD,EAAmCzoM,KACpCyoM,EACEE,EAAahH,GAAMziH,EAAMh7E,OAAQlE,GAEjCqnJ,EAA8B,CAClCrnJ,KAAAA,EACA3D,MAAOssM,EACP51B,SAAUk0B,EACV2B,OAAQtB,GAEV,GAAIoB,EAAY,KAEZ3oM,EAIE0oM,EAJF1oM,KACOqoF,EAGLqgH,EAHFpsM,MACIwC,EAEF4pM,EAFFI,GACA33E,EACEu3E,EADFv3E,SAGW,aAATnxH,OACgBzB,IAAd8pF,EACFi/D,EAAMhmD,UAAYsnG,GAElBthD,EAAMhmD,WACJr/F,MAAMC,QAAQ0mM,MAAgBA,EAAWtgL,QAAQ+/D,IAEnDi/D,EAAMhrJ,MAAQ+rF,GAEE,UAATroF,GACTsnJ,EAAMhmD,QAAUsnG,IAAevgH,EAC/Bi/D,EAAMhrJ,MAAQ+rF,GACE,WAAPvpF,GAAmBqyH,IAC5Bm2B,EAAMhrJ,MAAQgrJ,EAAMhrJ,OAAS,GAC7BgrJ,EAAMn2B,UAAW,EAEpB,CACD,OAAOm2B,CACR,GACD,CAACigD,EAAYL,EAAc/nH,EAAMh7E,SAG7B4kM,IAAQ5tG,EAAAA,EAAAA,UACZ,kBAAO2oG,KAAQb,EAAcr0G,QAASzP,EAAMh7E,OAA5C,GACA,CAAC8+L,EAAcr0G,QAASzP,EAAMh7E,SAG1B6kM,IAAU7tG,EAAAA,EAAAA,UACd,iBAC4B,qBAAnB4nG,EACHgG,GACE5pH,EAAM8sE,QAA+C,IAArCrwJ,OAAOmH,KAAKo8E,EAAM8sE,QAAQlxJ,QACvB,IAAnBgoM,GAA4BvuL,GAAWuuL,GACtCA,EAA4DloM,GAC5DkoM,EACH5jH,EAAM8sE,QAA+C,IAArCrwJ,OAAOmH,KAAKo8E,EAAM8sE,QAAQlxJ,MAPhD,GAQA,CAACgoM,EAAgBgG,GAAO5pH,EAAM8sE,OAAQpxJ,IAsCxC,OAnCSm+F,GAAA,GACJ7Z,EADI,CAEP8jH,cAAeA,EAAcr0G,QAC7Bs0G,cAAeA,EAAct0G,QAC7Bu0G,eAAgBA,EAAev0G,QAC/Bw0G,cAAeA,EAAcx0G,QAC7B24G,WAAAA,EACAL,aAAAA,EACAkB,YAAAA,EACAF,aAAAA,EACAtC,UAAAA,EACAU,UAAAA,EACAmB,eAAAA,EACAL,gBAAAA,EACAV,cAAAA,EACAD,cAAAA,EACAkB,UAAAA,EACAC,cAAAA,EACAxB,WAAAA,EACAG,UAAAA,EACAsB,WAAAA,EACAM,aAAczC,EACdM,cAAAA,EACAgD,QAAAA,GACAD,MAAAA,GACA5C,gBAAAA,EACAD,cAAAA,EACAuC,cAAAA,GACAJ,aAAAA,EACAE,gBAAAA,EACA5F,eAAAA,EACAF,iBAAAA,EACAI,gBAAAA,GAIH,CAgGD,SAAgB4B,GACdtgM,GAEA,IAAI2f,EAAqB7hB,MAAMC,QAAQiC,GAAU,GAAK,CAAC,EACvD,IAAK,IAAIyB,KAAKzB,EACZ,GAAIvI,OAAOL,UAAUM,eAAeC,KAAKqI,EAAQyB,GAAI,CACnD,IAAMxK,EAAMoO,OAAO5D,IACgB,IAA/B3D,MAAMC,QAAQiC,EAAO/I,IACvB0oB,EAAK1oB,GAAO+I,EAAO/I,GAAK2lI,KAAI,SAACzkI,GAC3B,OAA6B,IAAzB2F,MAAMC,QAAQ5F,IAAmBk1J,GAAcl1J,GAC1CmoM,GAAyBnoM,GAEf,KAAVA,EAAeA,OAAQiC,CAEjC,IACQizJ,GAAcrtJ,EAAO/I,IAC9B0oB,EAAK1oB,GAAOqpM,GAAyBtgM,EAAO/I,IAE5C0oB,EAAK1oB,GAAuB,KAAhB+I,EAAO/I,GAAc+I,EAAO/I,QAAOmD,CAElD,CAEH,OAAOulB,CACR,CAMD,SAASqyK,GAAWv7L,EAAee,EAAe2S,GAChD,IAAMmN,EAAc7gB,EAAOoD,QAe3B,OAbArC,EAAOgK,SAAQ,SAAepE,EAAQzG,GACpC,GAA8B,qBAAnB2gB,EAAY3gB,GAAoB,CACzC,IACMmuM,GADmC,IAAlB36L,EAAQ26B,OACO36B,EAAQqnL,kBAAkBp0L,GAChEka,EAAY3gB,GAAKmuM,EACbhT,GAAUh0L,MAAMC,QAAQX,GAAK,GAAK,CAAC,EAAGA,EAAG+M,GACzC/M,CACL,MAAU+M,EAAQqnL,kBAAkBp0L,GACnCka,EAAY3gB,GAAKm7L,GAAUr7L,EAAOE,GAAIyG,EAAG+M,IACT,IAAvB1T,EAAO0tB,QAAQ/mB,IACxBka,EAAYhc,KAAK8B,EAEpB,IACMka,CACR,CAyDD,IAAMs+E,GACc,qBAAXv4F,QACoB,qBAApBA,OAAO3C,UAC2B,qBAAlC2C,OAAO3C,SAASE,cACnBi7F,EAAAA,gBACAC,EAAAA,UAEN,SAASC,GAAoD77F,GAC3D,IAAM87F,GAAWC,EAAAA,EAAAA,QAAa/7F,GAO9B,OAJA07F,IAA0B,WACxBI,EAAIvL,QAAUvwF,CACf,KAEMg8F,EAAAA,EAAAA,cACL,mBAAAC,EAAA5+F,UAAAX,OAAIgT,EAAJ,IAAA9L,MAAAq4F,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAIxsF,EAAJwsF,GAAA7+F,UAAA6+F,GAAA,OAAoBJ,EAAIvL,QAAQjwF,WAAM,EAAQoP,EAA9C,GACA,GAEH,EClrCmBgrI,EAAAA,EAAAA,aAClB,SAACl+I,EAAwBs/F,OAGf7lF,EAAoBzZ,EAApByZ,OAAWixI,EAAAnsD,GAASv+F,EAAA,YACtBquM,EAAO,MAAG50L,EAAAA,EAAU,MACYgtL,KAA9B8G,EAAAe,EAAAf,YAAaF,EAAAiB,EAAAjB,aACrB,OACEnpM,EAAAA,EAAAA,eAAA,OAAAi6F,GAAA,CACE+8E,SAAUmyB,EACV/tG,IAAKA,EACLoB,QAAS6sG,EACT9zL,OAAQ40L,GACJ3jD,GAGT,IAGEzvI,YAAc,OCmCnB,IAoBaszL,GAAS,SACpBC,EACAvrM,EACAxB,GAEA,IAAMohF,EAAO4rH,GAAcD,GAE3B,OADA3rH,EAAKvpE,OAAOrW,EAAO,EAAGxB,GACfohF,CACR,EAYK4rH,GAAgB,SAACD,GACrB,GAAKA,EAEE,IAAIpnM,MAAMC,QAAQmnM,GACvB,MAAO,GAAPrjM,OAAWqjM,GAEX,IAAME,EAAW3tM,OAAOmH,KAAKsmM,GAC1BtoE,KAAI,SAAA3lI,GAAG,OAAIid,SAASjd,EAAb,IACPu4I,QAAO,SAAC/pI,EAAKjM,GAAN,OAAcA,EAAKiM,EAAMjM,EAAKiM,CAA9B,GAAoC,GAC9C,OAAO3H,MAAM23F,KAANZ,GAAA,GAAgBqwG,EAAhB,CAA2BtuM,OAAQwuM,EAAW,IACtD,CARC,MAAO,EASV,EAEKC,GAA0B,SAC9BC,EACAC,GAEA,IAAMrrM,EAA2B,oBAAforM,EAA4BA,EAAaC,EAE3D,OAAO,SAAC5lL,GACN,GAAI7hB,MAAMC,QAAQ4hB,IAASzmB,GAASymB,GAAO,CACzC,IAAMmlB,EAAQqgK,GAAcxlL,GAC5B,OAAOzlB,EAAG4qC,EACX,CAID,OAAOnlB,CACR,CACF,EAEK6lL,GAAA,SAAA7qE,GAQJ,SAAA6qE,EAAY9uM,gBACVmkI,EAAAF,EAAAhjI,KAAA,KAAMjB,IAAN,MAsBF+uM,iBAAmB,SACjBvrM,EACAwrM,EACAC,SAMI9qE,EAAKnkI,MAHPoF,EAAAgnI,EAAAhnI,MAKFwnM,EAHYxgE,EAAVs6D,OAAUkG,iBAGG,SAACz9D,GACd,IAAI+/D,EAAeP,GAAwBM,EAAazrM,GACpD2rM,EAAgBR,GAAwBK,EAAcxrM,GAItD8F,EAAS29L,GACX93D,EAAU7lI,OACVlE,EACA5B,EAAGujM,GAAM53D,EAAU7lI,OAAQlE,KAGzBgqM,EAAaH,EACbC,EAAanI,GAAM53D,EAAUiiB,OAAQhsJ,SACrC1B,EACA2rM,EAAeL,EACfG,EAAcpI,GAAM53D,EAAUy5D,QAASxjM,SACvC1B,EASJ,OAPIijM,GAAayI,KACfA,OAAa1rM,GAEXijM,GAAa0I,KACfA,OAAe3rM,GAGjBy6F,GAAA,GACKgxC,EADL,CAEE7lI,OAAAA,EACA8nJ,OAAQ69C,EACJhI,GAAM93D,EAAUiiB,OAAQhsJ,EAAMgqM,GAC9BjgE,EAAUiiB,OACdw3C,QAASoG,EACL/H,GAAM93D,EAAUy5D,QAASxjM,EAAMiqM,GAC/BlgE,EAAUy5D,SAEjB,GACF,IAEDhkM,KAAO,SAACnD,GAAD,OACL0iI,EAAK4qE,kBACH,SAACP,GAAD,SAAArjM,OACKsjM,GAAcD,GADnB,CAEE7F,GAAUlnM,IAFZ,IAIA,GACA,EAPG,IAUP6tM,WAAa,SAAC7tM,GAAD,OAAgB,kBAAM0iI,EAAKv/H,KAAKnD,EAAhB,CAAhB,IAEb8tM,KAAO,SAACC,EAAgBC,GAAjB,OACLtrE,EAAK4qE,kBACH,SAACjyG,GAAD,OA9Jc,SAClB0xG,EACAgB,EACAC,GAEA,IAAM5sH,EAAO4rH,GAAcD,GACrB7qM,EAAIk/E,EAAK2sH,GAGf,OAFA3sH,EAAK2sH,GAAU3sH,EAAK4sH,GACpB5sH,EAAK4sH,GAAU9rM,EACRk/E,CACR,CAoJuB0sH,CAAKzyG,EAAO0yG,EAAQC,EAAtC,IACA,GACA,EAJG,IAOPC,WAAa,SAACF,EAAgBC,GAAjB,OAAoC,kBAC/CtrE,EAAKorE,KAAKC,EAAQC,EAD6B,CAApC,IAGbE,KAAO,SAAC5wG,EAAcx3D,GAAf,OACL48F,EAAK4qE,kBAAiB,SAACjyG,GAAD,OA/KN,SAAKA,EAAYiC,EAAcx3D,GACjD,IAAMs7C,EAAO4rH,GAAc3xG,GACrBr7F,EAAQohF,EAAKkc,GAGnB,OAFAlc,EAAKvpE,OAAOylF,EAAM,GAClBlc,EAAKvpE,OAAOiuB,EAAI,EAAG9lC,GACZohF,CACR,CAyK2C8sH,CAAK7yG,EAAOiC,EAAMx3D,EAApC,IAAyC,GAAM,EADhE,IAGPqoK,WAAa,SAAC7wG,EAAcx3D,GAAf,OAA8B,kBAAM48F,EAAKwrE,KAAK5wG,EAAMx3D,EAAtB,CAA9B,IAEbgnK,OAAS,SAACtrM,EAAexB,GAAhB,OACP0iI,EAAK4qE,kBACH,SAACjyG,GAAD,OAAkByxG,GAAOzxG,EAAO75F,EAAOxB,EAAvC,IACA,SAACq7F,GAAD,OAAkByxG,GAAOzxG,EAAO75F,EAAO,KAAvC,IACA,SAAC65F,GAAD,OAAkByxG,GAAOzxG,EAAO75F,EAAO,KAAvC,GAJK,IAOT4sM,aAAe,SAAC5sM,EAAexB,GAAhB,OAA+B,kBAAM0iI,EAAKoqE,OAAOtrM,EAAOxB,EAAzB,CAA/B,IAEf0U,QAAU,SAAClT,EAAexB,GAAhB,OACR0iI,EAAK4qE,kBACH,SAACjyG,GAAD,OAhKiB,SACrB0xG,EACAvrM,EACAxB,GAEA,IAAMohF,EAAO4rH,GAAcD,GAE3B,OADA3rH,EAAK5/E,GAASxB,EACPohF,CACR,CAwJuB1sE,CAAQ2mF,EAAO75F,EAAOxB,EAAxC,IACA,GACA,EAJM,IAOVquM,cAAgB,SAAC7sM,EAAexB,GAAhB,OAA+B,kBAC7C0iI,EAAKhuH,QAAQlT,EAAOxB,EADyB,CAA/B,IAGhBgjD,QAAU,SAAChjD,GACT,IAAIvB,GAAU,EAiBd,OAhBAikI,EAAK4qE,kBACH,SAACjyG,GACC,IAAM75E,EAAM65E,EAAQ,CAACr7F,GAAJ0J,OAAc2xF,GAAS,CAACr7F,GAIzC,OAFAvB,EAAS+iB,EAAI/iB,OAEN+iB,CACR,IACD,SAAC65E,GACC,OAAOA,EAAQ,CAAC,MAAJ3xF,OAAa2xF,GAAS,CAAC,KACpC,IACD,SAACA,GACC,OAAOA,EAAQ,CAAC,MAAJ3xF,OAAa2xF,GAAS,CAAC,KACpC,IAGI58F,CACR,IAED6vM,cAAgB,SAACtuM,GAAD,OAAgB,kBAAM0iI,EAAK1/E,QAAQhjD,EAAnB,CAAhB,IA6BhBuuM,aAAe,SAAC/sM,GAAD,OAAmB,kBAAMkhI,EAAK6xB,OAAY/yJ,EAAvB,CAAnB,IAqBfilJ,UAAY,kBAAM,kBAAM/jB,EAAKtpF,KAAX,CAAN,EA1LVspF,EAAK6xB,OAAS7xB,EAAK6xB,OAAOhlI,KAAZ82G,GAAA3D,IACdA,EAAKtpF,IAAMspF,EAAKtpF,IAAI7pB,KAAT82G,GAAA3D,KACZ,oCAEDhQ,mBAAA,SACEqc,GAGEpqI,KAAKpG,MAAM4nM,kBACXxhM,KAAKpG,MAAM0mM,OAAOkB,mBACjBqB,KACClC,GAAMv2D,EAAUk2D,OAAOp9L,OAAQknI,EAAUprI,MACzC2hM,GAAM3gM,KAAKpG,MAAM0mM,OAAOp9L,OAAQlD,KAAKpG,MAAMoF,QAG7CgB,KAAKpG,MAAM0mM,OAAO4G,aAAalnM,KAAKpG,MAAM0mM,OAAOp9L,OAEpD,IAyHD0sJ,OAAA,SAAU/yJ,GAER,IAAIsB,EAsBJ,OArBA6B,KAAK2oM,kBAEH,SAACjyG,GACC,IAAMja,EAAOia,EAAQ2xG,GAAc3xG,GAAS,GAQ5C,OAPKv4F,IACHA,EAASs+E,EAAK5/E,IAEZ0W,GAAWkpE,EAAKvpE,SAClBupE,EAAKvpE,OAAOrW,EAAO,GAGd0W,GAAWkpE,EAAKm5D,QACnBn5D,EAAKm5D,OAAM,SAAAl1H,GAAC,YAAUpjB,IAANojB,CAAJ,IACV,GAEF+7D,CACL,IACD,GACA,GAGKt+E,CACR,IAIDs2C,IAAA,WAEE,IAAIt2C,EAcJ,OAbA6B,KAAK2oM,kBAEH,SAACjyG,GACC,IAAMmzG,EAAMnzG,EAAM35F,QAIlB,OAHKoB,IACHA,EAAS0rM,GAAOA,EAAIp1J,KAAOo1J,EAAIp1J,OAE1Bo1J,CACR,IACD,GACA,GAGK1rM,CACR,IAIDqT,OAAA,WACE,IAAMs4L,EAA6B,CACjCtrM,KAAMwB,KAAKxB,KACXi2C,IAAKz0C,KAAKy0C,IACV00J,KAAMnpM,KAAKmpM,KACXI,KAAMvpM,KAAKupM,KACXpB,OAAQnoM,KAAKmoM,OACbp4L,QAAS/P,KAAK+P,QACdsuC,QAASr+C,KAAKq+C,QACduxG,OAAQ5vJ,KAAK4vJ,OACbs5C,WAAYlpM,KAAKkpM,WACjBpnD,UAAW9hJ,KAAK8hJ,UAChBwnD,WAAYtpM,KAAKspM,WACjBE,WAAYxpM,KAAKwpM,WACjBC,aAAczpM,KAAKypM,aACnBC,cAAe1pM,KAAK0pM,cACpBC,cAAe3pM,KAAK2pM,cACpBC,aAAc5pM,KAAK4pM,gBAajB5pM,KAAKpG,MATP+b,EAAAo0L,EAAAp0L,UACAnE,EAAAu4L,EAAAv4L,OACAunE,EAAAgxH,EAAAhxH,SACA/5E,EAAA+qM,EAAA/qM,KAQIpF,EAAKm+F,GAAA,GACN+xG,EADM,CAET7xE,KANK9/B,KAHLmoG,OAGK,iCAOLthM,KAAAA,IAGF,OAAO2W,GACH7X,EAAAA,EAAAA,eAAoB6X,EAAkB/b,GACtC4X,EACCA,EAAe5X,GAChBm/E,EACoB,oBAAbA,EACJA,EAAiBn/E,GACjB6mM,GAAgB1nH,GAEjB,KADAyxD,EAAAA,SAAe2M,KAAKp+D,GAEtB,IACL,IAzPG,CAAqCumD,EAAAA,WAArCopE,GAIG9zL,aAAe,CACpB4sL,kBAAkB,GAuPtB,ICnWIwI,6DApCJ,SAASpuM,GAAQtC,GAAkC,OAAOsC,GAAU,mBAAqB4I,QAAU,iBAAmBA,OAAOoH,SAAW,SAAUtS,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBkL,QAAUlL,EAAI8B,cAAgBoJ,QAAUlL,IAAQkL,OAAOlK,UAAY,gBAAkBhB,CAAK,EAAGsC,GAAQtC,EAAM,CAwCxU,SAAS2wM,KACd,IAAIliI,EAAYttE,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAK,GAChFyvM,EAAYzvM,UAAUX,OAAS,QAAsBwD,IAAjB7C,UAAU,GAAmBA,UAAU,GAAKuvM,GACpF,OAAKE,EACEniI,EAAUhqE,MAAM,KAAK+hI,KAAI,SAAUriI,GACxC,OAAOysM,EAAUzsM,IAAMA,CACzB,IAAGmH,KAAK,KAHemjE,CAIzB,CAsDA,IAAIi0B,GAA8E,YAAjD,qBAAXz7F,OAAyB,YAAc3E,GAAQ2E,UAAyBA,OAAOy7F,SAAW,WAAa,EAMjGzE,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,KAL5D,SAAoB39F,EAAOu8F,EAAUC,GAC1C,KAAMx8F,EAAMu8F,aAAqB6F,IAC/B,OAAO,IAAIvoF,MAAM,iBAAmB0iF,EAAW,kBAAoBC,EAAgB,oEAEvF,EAC+FmB,KAAAA,MAAgB,CAC7G5J,QAAS4J,KAAAA,QADJ,IAGI4yG,GAAc5yG,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,MAAgB,CAC9FgI,SAAUhI,KAAAA,OACV/lF,OAAQ+lF,KAAAA,OACNA,KAAAA,QAAkBA,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAAkBA,KAAAA,MAAgB,CAC3FgI,SAAUhI,KAAAA,OACV/lF,OAAQ+lF,KAAAA,YAwCkC,qBAAXh3F,SAA0BA,OAAO3C,UAAY2C,OAAO3C,SAASE,cA+GvF,IC1QH09F,GAAY,CAAC,YAAa,YAAa,UAAW,YACtD,SAASzD,KAAiS,OAApRA,GAAWp9F,OAAO2J,OAAS3J,OAAO2J,OAAOsmB,OAAS,SAAUjxB,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CAAE,IAAIa,EAASD,UAAUZ,GAAI,IAAK,IAAIM,KAAOO,EAAcC,OAAOL,UAAUM,eAAeC,KAAKH,EAAQP,KAAQR,EAAOQ,GAAOO,EAAOP,GAAU,CAAE,OAAOR,CAAQ,EAAUo+F,GAASr6F,MAAMsC,KAAMvF,UAAY,CAClV,SAASi9F,GAAQ92F,EAAQ+2K,GAAkB,IAAI71K,EAAOnH,OAAOmH,KAAKlB,GAAS,GAAIjG,OAAOkM,sBAAuB,CAAE,IAAIvI,EAAU3D,OAAOkM,sBAAsBjG,GAAS+2K,IAAmBr5K,EAAUA,EAAQoiD,QAAO,SAAUh1C,GAAO,OAAO/Q,OAAO2L,yBAAyB1F,EAAQ8K,GAAK1R,UAAY,KAAK8H,EAAKtD,KAAKd,MAAMoE,EAAMxD,EAAU,CAAE,OAAOwD,CAAM,CAEpV,SAASvI,GAAgBD,EAAKa,EAAKkB,GAAiK,OAApJlB,KAAOb,EAAOqB,OAAOwB,eAAe7C,EAAKa,EAAK,CAAEkB,MAAOA,EAAOrB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBZ,EAAIa,GAAOkB,EAAgB/B,CAAK,CAChN,SAAS0+F,GAAyBt9F,EAAQu9F,GAAY,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAAG,IAAkEP,EAAKN,EAAnEF,EACzF,SAAuCe,EAAQu9F,GAAY,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAAG,IAA2DP,EAAKN,EAA5DF,EAAS,CAAC,EAAOu+F,EAAav9F,OAAOmH,KAAKpH,GAAqB,IAAKb,EAAI,EAAGA,EAAIq+F,EAAWp+F,OAAQD,IAAOM,EAAM+9F,EAAWr+F,GAAQo+F,EAAS5wE,QAAQltB,IAAQ,IAAaR,EAAOQ,GAAOO,EAAOP,IAAQ,OAAOR,CAAQ,CADhNw+F,CAA8Bz9F,EAAQu9F,GAAuB,GAAIt9F,OAAOkM,sBAAuB,CAAE,IAAIuxF,EAAmBz9F,OAAOkM,sBAAsBnM,GAAS,IAAKb,EAAI,EAAGA,EAAIu+F,EAAiBt+F,OAAQD,IAAOM,EAAMi+F,EAAiBv+F,GAAQo+F,EAAS5wE,QAAQltB,IAAQ,GAAkBQ,OAAOL,UAAUyG,qBAAqBlG,KAAKH,EAAQP,KAAgBR,EAAOQ,GAAOO,EAAOP,GAAQ,CAAE,OAAOR,CAAQ,CAM3e,IAAIub,GAAY,CAEdsuE,OAAQ+T,KAAAA,KAER,aAAcA,KAAAA,OAEd64B,QAAS74B,KAAAA,KAET6yG,QAAS7yG,KAAAA,MAAgB,CAAC,UAC1BxvB,UAAWwvB,KAAAA,OACX2yG,UAAW3yG,KAAAA,OACX8yG,SAAU9yG,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,OAAkBA,KAAAA,QAErE,SAAS+yG,GAAY1wM,GACnB,IAAImuE,EAAYnuE,EAAMmuE,UAEpBqiI,GADYxwM,EAAMswM,UACRtwM,EAAMwwM,SAChBC,EAAWzwM,EAAMywM,SACjBh5K,EAAa2mE,GAAyBp+F,EAAO4hG,IAC3C+jD,EAAU0qD,GAAgB3qD,KAAWv3E,EAAW,YAAaqiI,GAAW,aAAarlM,OAAOqlM,KAChG,OAAoB5yG,EAAAA,cAAoB,SAAUO,GAAS,CACzDmB,IAAKmxG,EACLtrM,KAAM,SACNgpE,UAAWw3E,GA/Bf,SAAuB5lJ,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CAAE,IAAIa,EAAS,MAAQD,UAAUZ,GAAKY,UAAUZ,GAAK,CAAC,EAAGA,EAAI,EAAI69F,GAAQ/8F,OAAOD,IAAS,GAAIgK,SAAQ,SAAUvK,GAAOZ,GAAgBI,EAAQQ,EAAKO,EAAOP,GAAO,IAAKQ,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiBC,EAAQgB,OAAOi9F,0BAA0Bl9F,IAAWg9F,GAAQ/8F,OAAOD,IAASgK,SAAQ,SAAUvK,GAAOQ,OAAOwB,eAAexC,EAAQQ,EAAKQ,OAAO2L,yBAAyB5L,EAAQP,GAAO,GAAI,CAAE,OAAOR,CAAQ,CAgCpfknI,CAAc,CACf,aAAc,SACbxvG,IACL,CACAi5K,GAAYp1L,UAAYA,GACxB,YCxCA,IAAIsmF,GAAY,CAAC,SAAU,aAAc,QAAS,YAAa,QAAS,YAAa,QAAS,UAAW,OAAQ,MAAO,YACxH,SAASzD,KAAiS,OAApRA,GAAWp9F,OAAO2J,OAAS3J,OAAO2J,OAAOsmB,OAAS,SAAUjxB,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIY,UAAUX,OAAQD,IAAK,CAAE,IAAIa,EAASD,UAAUZ,GAAI,IAAK,IAAIM,KAAOO,EAAcC,OAAOL,UAAUM,eAAeC,KAAKH,EAAQP,KAAQR,EAAOQ,GAAOO,EAAOP,GAAU,CAAE,OAAOR,CAAQ,EAAUo+F,GAASr6F,MAAMsC,KAAMvF,UAAY,CAClV,SAASu9F,GAAyBt9F,EAAQu9F,GAAY,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAAG,IAAkEP,EAAKN,EAAnEF,EACzF,SAAuCe,EAAQu9F,GAAY,GAAc,MAAVv9F,EAAgB,MAAO,CAAC,EAAG,IAA2DP,EAAKN,EAA5DF,EAAS,CAAC,EAAOu+F,EAAav9F,OAAOmH,KAAKpH,GAAqB,IAAKb,EAAI,EAAGA,EAAIq+F,EAAWp+F,OAAQD,IAAOM,EAAM+9F,EAAWr+F,GAAQo+F,EAAS5wE,QAAQltB,IAAQ,IAAaR,EAAOQ,GAAOO,EAAOP,IAAQ,OAAOR,CAAQ,CADhNw+F,CAA8Bz9F,EAAQu9F,GAAuB,GAAIt9F,OAAOkM,sBAAuB,CAAE,IAAIuxF,EAAmBz9F,OAAOkM,sBAAsBnM,GAAS,IAAKb,EAAI,EAAGA,EAAIu+F,EAAiBt+F,OAAQD,IAAOM,EAAMi+F,EAAiBv+F,GAAQo+F,EAAS5wE,QAAQltB,IAAQ,GAAkBQ,OAAOL,UAAUyG,qBAAqBlG,KAAKH,EAAQP,KAAgBR,EAAOQ,GAAOO,EAAOP,GAAQ,CAAE,OAAOR,CAAQ,CAO3e,IAAIub,GAAY,CAEdsuE,OAAQ+T,KAAAA,KAER,aAAcA,KAAAA,OACdgzG,MAAOhzG,KAAAA,KAEPxe,SAAUwe,KAAAA,KAEVxvB,UAAWwvB,KAAAA,OAEX2yG,UAAW3yG,KAAAA,OAEXvxF,MAAOuxF,KAAAA,KAEPx2E,MAAOw2E,KAAAA,OAEPgK,SAAUhK,KAAAA,KACV8yG,SAAU9yG,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,KAAgBA,KAAAA,SAEjE64B,QAAS74B,KAAAA,KAET2nC,QAAS3nC,KAAAA,KAET51C,KAAM41C,KAAAA,OAEN7vF,IAAKyiM,IAEP,SAASK,GAAO5wM,GACd,IAAIw2H,GAAUh3B,EAAAA,EAAAA,cAAY,SAAU94F,GAClC,IAAI1G,EAAM2nG,SAIV,OAAI3nG,EAAMw2H,QACDx2H,EAAMw2H,QAAQ9vH,QADvB,EAHEA,EAAE0uG,gBAMN,GAAG,CAACp1G,EAAMw2H,QAASx2H,EAAM2nG,WACrB/d,EAAS5pF,EAAM4pF,OACjBpc,EAAYxtE,EAAM,cAClB2wM,EAAQ3wM,EAAM2wM,MACdxiI,EAAYnuE,EAAMmuE,UAClB/hE,EAAQpM,EAAMoM,MACdkkM,EAAYtwM,EAAMswM,UAClBO,EAAe7wM,EAAMmnB,MACrBA,OAAyB,IAAjB0pL,EAA0B,YAAcA,EAChDvrE,EAAUtlI,EAAMslI,QAChBv9E,EAAO/nD,EAAM+nD,KACb+oJ,EAAa9wM,EAAM8N,IACnBijM,OAAqB,IAAfD,EAAwB,SAAWA,EACzCL,EAAWzwM,EAAMywM,SACjBh5K,EAAa2mE,GAAyBp+F,EAAO4hG,IAC/C,GAAIx1F,EACF,OAAoBwxF,EAAAA,cAAoB8yG,GAAaj5K,GAEvD,IAAIu5K,EAAkB,MAAM7lM,OAAOm6H,EAAU,WAAa,GAAI,KAAKn6H,OAAOgc,GACtEw+H,EAAU0qD,GAAgB3qD,KAAWv3E,EAAW,MAAO6iI,IAAiBjpJ,GAAO,OAAO58C,OAAO48C,KAAe4oJ,GAAQ,gBAAyB,CAC/I/mH,OAAQA,EACR+d,SAAU3nG,EAAM2nG,WACd2oG,GAIJ,OAHI74K,EAAWigB,MAAgB,WAARq5J,IACrBA,EAAM,KAEYnzG,EAAAA,cAAoBmzG,EAAK5yG,GAAS,CACpDh5F,KAAc,WAAR4rM,GAAoBt5K,EAAW++F,QAAU,cAAW9yH,GACzD+zB,EAAY,CACb02C,UAAWw3E,EACXrmD,IAAKmxG,EACLj6E,QAASA,EACT,aAAchpD,IAElB,CACAojI,GAAOt1L,UAAYA,GACnB,YCiFA,GAnJkB8kF,IAAe,IAAd,KAAEolC,GAAMplC,EACzB,MAAM,MAAE40E,GAAUG,KACZ87B,EAAqB,YAATzrE,EACZgqB,EAAWR,KACVkiD,EAAcC,IAAmBrhF,EAAAA,EAAAA,WAAS,IAC1CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC+B,EAASu/E,IAActhF,EAAAA,EAAAA,UAAS,IAEjC42E,EAASiB,GAAU,CACvBS,cAAe,CACbvgC,SAAU,GACV1rD,SAAU,IAEZktF,SAAW//L,IACT,MAAM8nJ,EAAS,CAAC,EAUhB,OARK9nJ,EAAOu+J,WACVzW,EAAOyW,SAAW,yBAGfv+J,EAAO6yG,WACVi1C,EAAOj1C,SAAW,yBAGbi1C,CAAM,EAEf8pB,SAAU7Q,UACR2P,GAAW,GACX,IACE,MAAMtsJ,QAAiBsnJ,EAAM1rK,GAE7B,GAAwB,MAApBokB,EAASU,OACXhX,YAAW,KACT4iK,GAAW,GACXxqB,EAAS,aAAa,IAExBwsB,GAAMC,QAAQ,qBACT,CACL,MAAMhzJ,EAAOyE,EAASzE,KACtBmoL,EAAW,iBAADjmM,OAAkB8d,EAAK4oG,UACjCmoD,GAAW,GACXgC,GAAMpnK,MAAM,qBAAsBqU,EAAK4oG,QACzC,CACF,CAAE,MAAOj9G,GACPonK,GAAMpnK,MAAM,mBACZw8L,EAAW,oBACXp3B,GAAW,EACb,KAGJ,OACE3D,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAACs8B,GAAc,KACfh7B,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAChE8xH,EAAY,UAAY,cACpB,IACF,YAEPl8B,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,sBACNk3F,EAAAA,GAAAA,MAAA,QAAM6E,SAAUwrB,EAAO2G,aAAc/oD,OAAO,MAAKnlE,SAAA,EAC/Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACL1D,MAAOilM,EAAOp9L,OAAOu+J,SACrBsQ,SAAUuuB,EAAO2F,aACjBiF,aAAa,MACblsM,KAAK,WACLsE,GAAG,WACH8sK,YAAY,mBAIjBkwB,EAAOkC,QAAQ/gC,UAAY6+B,EAAOt1C,OAAOyW,WACxCkN,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOyW,YAExCwO,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAM+rM,EAAe,OAAS,WAC9BzvM,MAAOilM,EAAOp9L,OAAO6yG,SACrBg8D,SAAUuuB,EAAO2F,aACjBiF,aAAa,MACblsM,KAAK,WACLsE,GAAG,WACH8sK,YAAY,cAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMc,GACNjvG,UAAU,sBACVqoD,QAASA,IAAM26E,GAAiBD,WAIrCxK,EAAOkC,QAAQzsF,UAAYuqF,EAAOt1C,OAAOj1C,WACxC44D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOj1C,YAGxC44D,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,kBAAiBgR,UAC5B41F,EAAAA,GAAAA,KAAA,KACEr9H,KACEu5J,EAAY,yBAA2B,wBACxC9xH,SACF,yBAIH41F,EAAAA,GAAAA,KAAC67B,GAAM,CAAC/kM,MAAO,CAAE8zE,OAAQ,QAAUxR,UAAU,iBAAgBgR,SAAC,cAIhEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,sBAAqBgR,SAAA,EAClC41F,EAAAA,GAAAA,KAAA,QAAM5mG,UAAU,SAAQgR,SAAC,QACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMI,GAAYvuG,UAAU,iBAC7C4mG,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMF,GAAUjuG,UAAU,iBAC3C4mG,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAME,GAASruG,UAAU,uBAG9CkoG,EAAAA,GAAAA,MAAA,KAAGxqK,MAAO,CAAE4wI,UAAW,SAAUt9D,SAAA,CAAC,yBACV,KAEpB41F,EAAAA,GAAAA,KAAA,KACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OACrDpR,KAAMu5J,EAAY,mBAAqB,kBAAkB9xH,SAC1D,uBAMN46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,yBAGN,ECqCP,GAtLqBihB,IAAe,IAAd,KAAEolC,GAAMplC,EAC5B,MAAOmxG,EAAcJ,IAAmBrhF,EAAAA,EAAAA,WAAS,IAC1C0hF,EAAqBC,IAA0B3hF,EAAAA,EAAAA,WAAS,GACzD0/B,EAAWR,IACXiiD,EAAqB,YAATzrE,GACXu0C,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GAEjC42E,EAASiB,GAAU,CACvBS,cAAe,CACbvgC,SAAU,GACV5rD,MAAO,GACPE,SAAU,GACVu1F,gBAAiB,IAEnBrI,SAAW//L,IACT,MAAM8nJ,EAAS,CAAC,EA0BhB,OAxBK9nJ,EAAOu+J,WACVzW,EAAOyW,SAAW,yBAGfv+J,EAAO2yG,MAEA,6BAA6BtuG,KAAKrE,EAAO2yG,SACnDm1C,EAAOn1C,MAAQ,0BAFfm1C,EAAOn1C,MAAQ,qBAKZ3yG,EAAO6yG,SAGT,2DAA2DxuG,KAC1DrE,EAAO6yG,YAGTi1C,EAAOj1C,SAAW,mBANlBi1C,EAAOj1C,SAAW,wBAShB7yG,EAAO6yG,WAAa7yG,EAAOooM,kBAC7BtgD,EAAOsgD,gBAAkB,2BAGpBtgD,CAAM,EAEf8pB,SAAU7Q,UACR2P,GAAW,GACX,IACE,MAAMtsJ,QAAiBi3D,MAAM,qCAADx5E,OACWq6H,GACrC,CACE8e,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAU3H,KAIzB,GAAIokB,EAAS4rG,GACX0gD,GAAW,GACXxqB,EAASyhD,EAAY,gBAAkB,gBACvCj1B,GAAMC,QACJ,mEAEG,CACL,MAAMhzJ,QAAayE,EAASikL,OAC5B33B,GAAW,GACXgC,GAAMpnK,MAAM,wBAADzJ,OAAyB8d,EAAK4oG,SAC3C,CACF,CAAE,MAAOj9G,GACPolK,GAAW,GACXgC,GAAMpnK,MAAM,0CACZ8B,QAAQ9B,MAAMA,EAChB,KAIJ,OACEyhK,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAChE8xH,EAAY,UAAY,cACnB,IAAI,mBAGdl8B,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,2BACNk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAc+sG,SAAUwrB,EAAO2G,aAAaluH,SAAA,EAC1Dk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,UACDuhM,EAAOkH,cAAc,YACzB0D,aAAa,MACb96B,YAAY,gBAGfkwB,EAAOkC,QAAQ/gC,UAAY6+B,EAAOt1C,OAAOyW,WACxCkN,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOyW,eAG1CwO,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMgB,GAAYnvG,UAAU,UAC7C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACDuhM,EAAOkH,cAAc,SACzB0D,aAAa,MACb96B,YAAY,aAGfkwB,EAAOkC,QAAQ3sF,OAASyqF,EAAOt1C,OAAOn1C,QACrC84D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOn1C,YAG1Co6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMosM,EAAe,OAAS,cAC1B7K,EAAOkH,cAAc,YACzB0D,aAAa,MACb96B,YAAY,cAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMi1B,EAAen0B,GAAQF,GAC7B/uG,UAAU,sBACVqoD,QAASA,IAAM26E,GAAiBI,QAGnC7K,EAAOkC,QAAQzsF,UAAYuqF,EAAOt1C,OAAOj1C,WACxC44D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOj1C,eAG1Ck6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,kBAAiB/4F,SAAC,sBACjCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMqsM,EAAsB,OAAS,cACjC9K,EAAOkH,cAAc,mBACzB0D,aAAa,MACb96B,YAAY,sBAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMk1B,EAAsBp0B,GAAQF,GACpC/uG,UAAU,sBACVqoD,QAASA,IAAMi7E,GAAwBD,QAG1C9K,EAAOkC,QAAQ8I,iBACdhL,EAAOt1C,OAAOsgD,kBACZ38B,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOsgD,sBAG5C38B,EAAAA,GAAAA,KAAC67B,GAAM,CAAC/kM,MAAO,CAAE8zE,OAAQ,QAAUxR,UAAU,kBAAiBgR,SAAC,iBAIjEk3F,EAAAA,GAAAA,MAAA,KAAGxqK,MAAO,CAAE4wI,UAAW,SAAUt9D,SAAA,CAAC,2BACP,KACzB41F,EAAAA,GAAAA,KAAA,KACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OACrDpR,KAAMu5J,EAAY,gBAAkB,eAAe9xH,SACpD,gBAKJ46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,wBAGN,EChGP,GAxF2ByyH,KACzB,MACMX,EADWpiD,IACU3/H,SAASs2E,SAAS,YACtCu0E,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACjC0/B,EAAWR,KACV/yC,EAAO41F,IAAY/hF,EAAAA,EAAAA,UAAS,IAkCnC,OACEumD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,yBACJ41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,2DACNk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAagR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,WAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACEoD,SAAWzxK,IACTmrM,EAASnrM,EAAE3G,OAAO0B,MAAM,EAE1B0D,KAAK,OACLmsM,aAAa,MACblsM,KAAK,WACLsE,GAAG,WACH8sK,YAAY,iBAIlBzB,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,QACjBxR,UAAU,kBACVqoD,QAxDO6zC,UACb2P,GAAW,GAEX,IACE,MAAMtsJ,QAAiBi3D,MAAM,6CAADx5E,OACmB8wG,GAC7C,CACEqoC,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAUgrG,KAIzB,GAAIvuF,EAAS4rG,GACX0gD,GAAW,GACXgC,GAAMC,QACJ,4DAEFzsB,EAASyhD,EAAY,gBAAkB,oBAClC,CACL,MAAMhoL,QAAayE,EAASikL,OAC5B33B,GAAW,GACXgC,GAAMpnK,MAAM,qBAADzJ,OAAsB8d,EAAK4oG,SACxC,CACF,CAAE,MAAOj9G,GACPolK,GAAW,GACXgC,GAAMpnK,MAAM,uCACZ8B,QAAQ9B,MAAMA,EAChB,GA0BsBuqE,SACjB,wBAIH41F,EAAAA,GAAAA,KAAA,KAAGlpK,MAAO,CAAE4wI,UAAW,SAAUt9D,UAE7B41F,EAAAA,GAAAA,KAAA,KACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OACrDpR,KAAMu5J,EAAY,gBAAkB,eAAe9xH,SACpD,oBAKJ46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,yBAGH,ECo7BH,SAAS2yH,GAAU9xM,GACxB,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,MAAM,QAAU,aAAa,MAAQ,CAAC,CAAC,IAAM,IAAI,KAAO,CAAC,EAAE,MAAQ,IAAI,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,yYAAxIA,CAAkhB11K,EAC3hB,CCqxhBO,SAAS+xM,GAAW/xM,GACzB,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,cAAc,KAAO,gBAAgB,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,udAA/GA,CAAukB11K,EAChlB,CCrxjBA,MAuJA,GAvJgBgyM,KACd,MAAM,OAAE98B,GAAWC,MACb,YAAEb,GAAgBa,KACxBz+J,QAAQ45F,IAAIgkE,EAAYG,UACxB,MAAM,SAAEjlB,GAAaR,IACfhgI,EAAW6/H,KACVqnB,EAAaC,IAAkBrmD,EAAAA,EAAAA,WAAS,GAEzCmzB,EAAYj6H,GACTgG,EAASE,WAAalG,EAEzBipL,EAAgC,cAAzB39B,EAAYG,SAA2B,QAAU,SAOxDy9B,EAAe,CACnBC,OACE97B,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,MACEloG,UAAS,YAAAhjE,OAAc83I,EAAS,oBAAsB,SAAW,IAAK9jE,SAAA,EAEtE41F,EAAAA,GAAAA,KAACyC,GAAY,CAACzvH,KAAM,GAAIomB,UAAU,UAClC4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,mBAAkBynC,SAAC,mBAE7Bk3F,EAAAA,GAAAA,MAAA,MACEloG,UAAS,YAAAhjE,OACP83I,EAAS,wBAA0B,SAAW,IAC7C9jE,SAAA,EAEH41F,EAAAA,GAAAA,KAACwC,GAAY,CAACxvH,KAAM,GAAIomB,UAAU,UAClC4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,uBAAsBynC,SAAC,6BAEjCk3F,EAAAA,GAAAA,MAAA,MACEloG,UAAS,YAAAhjE,OAAc83I,EAAS,oBAAsB,SAAW,IAAK9jE,SAAA,EAEtE41F,EAAAA,GAAAA,KAACwC,GAAY,CAACxvH,KAAM,GAAIomB,UAAU,UAClC4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,mBAAkBynC,SAAC,yBAE7Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAS,YAAAhjE,OAAc83I,EAAS,iBAAmB,SAAW,IAAK9jE,SAAA,EACrE41F,EAAAA,GAAAA,KAACg9B,GAAS,CAAChqJ,KAAM,GAAIomB,UAAU,UAC/B4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,gBAAeynC,SAAC,iBAE1Bk3F,EAAAA,GAAAA,MAAA,MACEloG,UAAS,YAAAhjE,OAAc83I,EAAS,mBAAqB,SAAW,IAAK9jE,SAAA,EAErE41F,EAAAA,GAAAA,KAACsC,GAAmB,CAACtvH,KAAM,GAAIomB,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,kBAAiBynC,SAAC,kBAE5Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAS,YAAAhjE,OAAc83I,EAAS,gBAAkB,SAAW,IAAK9jE,SAAA,EACpE41F,EAAAA,GAAAA,KAAC+8B,GAAQ,CAAC/pJ,KAAM,GAAIomB,UAAU,UAC9B4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,eAAcynC,SAAC,sBAI7BizH,SACEr9B,EAAAA,GAAAA,KAAA2F,GAAAA,SAAA,CAAAv7F,UACEk3F,EAAAA,GAAAA,MAAA,MACEloG,UAAS,YAAAhjE,OACP83I,EAAS,sBAAwB,SAAW,IAC3C9jE,SAAA,EAEH41F,EAAAA,GAAAA,KAACoE,GAAa,CAACpxH,KAAM,GAAIomB,UAAU,UACnC4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,qBAAoBynC,SAAC,oBAKnCkzH,WACEt9B,EAAAA,GAAAA,KAAA2F,GAAAA,SAAA,CAAAv7F,UACEk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAS,YAAAhjE,OAAc83I,EAAS,cAAgB,SAAW,IAAK9jE,SAAA,EAClE41F,EAAAA,GAAAA,KAACkB,GAAQ,CAACluH,KAAM,GAAIomB,UAAU,UAC9B4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,qBAAoBynC,SAAC,4BAS/BmzH,EAAeA,KACHtuM,SAAS8qI,cAAc,kBAC/B81C,UAAU2tB,OAAO,UACzBp8B,GAAgBD,EAAY,EAE9B,OACEG,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,SAAO5mG,UAAU,gBAAegR,UAC9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,iBAAgBgR,UAC7B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBAEN41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CACLovK,OAAQ,UACR9zJ,MAAO,QACPwhC,SAAU,OACVuwI,OAAQ,kBACR5kD,QAAS,WACTk+D,aAAc,OAEhBh8E,QAAS87E,EAAanzH,SACvB,OAGD41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,cAAagR,UAC1Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,MACEloG,UAAS,YAAAhjE,OAAc83I,EAAS,cAAgB,SAAW,IAAK9jE,SAAA,EAEhE41F,EAAAA,GAAAA,KAACqE,GAAS,CAACrxH,KAAM,GAAIomB,UAAU,UAC/B4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,aAAYynC,SAAC,aAEvBk3F,EAAAA,GAAAA,MAAA,MACEloG,UAAS,YAAAhjE,OAAc83I,EAAS,YAAc,SAAW,IAAK9jE,SAAA,EAE9D41F,EAAAA,GAAAA,KAACsE,GAAW,CAACtxH,KAAM,GAAIomB,UAAU,UACjC4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,WAAUynC,SAAC,eAEpB+yH,EAAa59B,EAAYG,WAC1B4B,EAAAA,GAAAA,MAAA,MACEloG,UAAS,YAAAhjE,OAAc83I,EAAS,aAAe,SAAW,IAAK9jE,SAAA,EAE/D41F,EAAAA,GAAAA,KAACuE,GAAa,CAACvxH,KAAM,GAAIomB,UAAU,UACnC4mG,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,YAAWynC,SAAC,sBAI1Bk3F,EAAAA,GAAAA,MAAA,KACE3+H,KAAI,GAAAvsC,OAAK8mM,EAAI,WACbz7E,QAxHWmgD,KACnBzB,IACAx+J,QAAQ45F,IAAI2hG,GACZziD,EAAS,GAADrkJ,OAAI8mM,EAAI,UAAS,EAsHjB9jI,UAAU,gBAAegR,SAAA,EAEzB41F,EAAAA,GAAAA,KAACiB,GAAQ,CAACjuH,KAAM,GAAIomB,UAAU,SAAS,iBAM5C+nG,IACCnB,EAAAA,GAAAA,KAAA,OAAKv+C,QAAS87E,EAAcnkI,UAAU,qBAAoBgR,UACxD41F,EAAAA,GAAAA,KAACuE,GAAa,CAACvxH,KAAM,GAAIomB,UAAU,aAGtC,6ECzHP,GAxCkBmP,IAChB,MAAMkyE,EAAWR,IASjB,OACEqnB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,WAAUgR,SAAA,EACvB41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,SAC3B7B,EAAKm1H,WACJ19B,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKuxE,EAAKm1H,UAAWl8B,IAAI,UAE9BxB,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK2mM,GAAWn8B,IAAI,YAG7BF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,oBACH41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAK7P,SACVsnG,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,mBAAkBgR,SAAE7B,EAAK1P,eACtCyoG,EAAAA,GAAAA,MAAA,OACExqK,MAAO,CACLC,QAAS,OACT6mM,IAAK,MACLC,WAAY,SACZnjL,MAAO,eAET+mG,QA5Beq8E,KACrB,MAAMC,EAAiBx1H,EAAK7P,MAAMt3D,QAAQ,OAAQ,KAClDq5I,EAAS,gBAADrkJ,OAAiB2nM,GAAkB,CACzCxuH,MAAO,CACLyuH,KAAMz1H,IAER,EAuBInP,UAAU,mBAAkBgR,SAAA,CAC7B,cACW41F,EAAAA,GAAAA,KAACwE,GAAqB,YAGhC,EC8hNH,SAASy5B,GAAchzM,GAC5B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,YAAY,YAAc,IAAI,OAAS,eAAe,KAAO,OAAO,cAAgB,QAAQ,eAAiB,SAAS,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,OAAS,OAAO,EAAI,gBAAgB,KAAO,SAAS,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,4BAA4B,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,2EAA2E,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,aAAa,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,iCAA5cA,CAA8e11K,EACvf,CCpwMO,SAASizM,GAAUjzM,GACxB,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,aAAa,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,KAAO,OAAO,EAAI,kBAAkB,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,oFAAjJA,CAAsO11K,EAC/O,oFCpQA,GA/DwBogG,IAAwD,IAAvD,SAAE8yG,EAAQ,MAAEC,EAAK,SAAEC,EAAQ,SAAEC,EAAQ,SAAEC,GAAUlzG,EAqBxE,OACEi2E,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,qBAAoBgR,SAAA,CAChC+zH,GACCA,EAAShtE,KAAI,CAACqtE,EAAStwM,KACrBozK,EAAAA,GAAAA,MAAA,OAAiBloG,UAAU,mBAAkBgR,SAAA,EAC3C41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAsB,oBAAjBwnM,EAAQpuM,KAA6BquM,GAAUD,EAAQhqL,IAC5DgtJ,IAAI,aAENF,EAAAA,GAAAA,MAAA,UACE7/C,QAASA,IAAM88E,EAASD,EAAUpwM,GAClCkrE,UAAU,gBAAegR,SAAA,EAEzB41F,EAAAA,GAAAA,KAACk+B,GAAQ,CAAClrJ,KAAM,KAAM,cAThB9kD,KAcbkwM,GACCA,EAAMjtE,KAAI,CAACqtE,EAAStwM,KAClBozK,EAAAA,GAAAA,MAAA,OAGEloG,UAAU,WAAUgR,SAAA,EAEpB41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAKwnM,EAAQE,SAAS7oD,SAAS,QAAU4oD,4yOACzCj9B,IAAI,aAENxB,EAAAA,GAAAA,KAAA,UACEv+C,QAASA,IAAM48E,EAASG,EAAQ7pM,GAAI2pM,GACpCluM,KAAK,SACLgpE,UAAU,cAAagR,UAEvB41F,EAAAA,GAAAA,KAACk+B,GAAQ,CAAClrJ,KAAM,SAZb9kD,OAgBP,ECXV,GAjDqBm9F,IAQd,IARe,MACpB3yB,EAAK,SACL4lI,EAAQ,SACRH,EAAQ,MACRC,EAAK,SACLh7B,EAAQ,SACRi7B,EAAQ,SACRE,GACDlzG,EAWC,OACEi2E,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK1R,KACLsnG,EAAAA,GAAAA,KAAC2+B,GAAe,CACdR,SAAUA,EACVC,MAAOA,EACPC,SAAUA,EACVC,SAAUA,EACVC,SAAUA,KAEZj9B,EAAAA,GAAAA,MAAA,OACEloG,UAAU,kBACVwlI,OAtBcjtM,IAClBA,EAAE0uG,iBACF,MAAMw+F,EAAQxsM,MAAM23F,KAAKr4F,EAAEgxG,aAAak8F,OACxCz7B,EAAS,KAAMk7B,EAAUO,EAAM,EAoB3BC,WAjBkBntM,IACtBA,EAAE0uG,gBAAgB,EAgBaj2B,SAAA,EAE3B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAI2pM,EACJ/8E,UAAQ,EACR6hD,SAAWzxK,GAAMyxK,EAASzxK,EAAG2sM,MAE/Bh9B,EAAAA,GAAAA,MAAA,SAAO6B,QAASm7B,EAASl0H,SAAA,EACvB41F,EAAAA,GAAAA,KAACi+B,GAAY,CAACjrJ,KAAM,MACpBgtH,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,8CAGJ,EC9CJu6F,GAAgB/F,GAAMvxK,OAAO,CACjCyjK,QAAS,KAKX6T,GAAchmK,SAASqrJ,QAAQ0B,OAAsB,cAAC,UAAAt1J,OAAaqpK,GAAQzwK,IAAI,UAC/E,YCqSA,GAxSiB+vM,IACf,MAAOC,EAAUC,IAAelkF,EAAAA,EAAAA,UAAS,IAClC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvCokF,OAAQJ,EAAUA,UAClB73F,MAAO,GACPk4F,UAAW,GACXC,SAAU,GACVC,YAAa,GACbC,OAAQ,GACRC,YAAa,GACbC,WAAY,GACZC,UAAW,GACXC,UAAW,OAGPrI,EAAeA,CAAC3lM,EAAGiuM,KACvB,MAAM,MAAElzM,GAAUiF,EAAE3G,OACpBk0M,EAAY,IACPr4C,EACH,CAAC+4C,GAAYlzM,GACb,GAcGmzM,EAAeC,IAAoB/kF,EAAAA,EAAAA,UAAS,OAC5CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GA6GvC,OAzCA1wB,EAAAA,EAAAA,YAAU,KACoBirE,WAC1B,IACE,MAAMyqC,QAAoBp7B,GAAc31K,IAAI,6BAADoH,OACZ2oM,EAAUA,YAEzCp9L,QAAQ45F,IAAI,8BAA+BwkG,GAC3CtgC,GAAQ/mK,IAAI,gBAAiBqnM,EAAY7rL,KAAK8rL,UAAW,CAAEv/C,QAAS,EAAI,KACxE,MAAMw/C,EAAY,IAAIh3L,KAAK82L,EAAY7rL,KAAKgsL,aAE5ChB,EAAY,CACVE,UAAWW,EAAY7rL,KAAKizJ,UAC5Bk4B,SAAUU,EAAY7rL,KAAKkzJ,SAC3Bk4B,YAAaS,EAAY7rL,KAAKisL,YAC9BZ,OAAQQ,EAAY7rL,KAAKksL,OACzBZ,YAAaS,EAAU74C,cAAch4J,MAAM,KAAK,GAChDqwM,WAAYM,EAAY7rL,KAAKmsL,WAC7BX,UAAWK,EAAY7rL,KAAK8rL,UAC5B94F,MAAO64F,EAAY7rL,KAAKgzF,QAE1B44F,EAAiBC,EAAY7rL,KAAK8rL,WAElC/6B,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAIwjG,EAAUA,WACtBp9L,QAAQ45F,IAAI,mBACZ55F,QAAQ45F,IAAI17F,GACZolK,GAAW,GACmB,MAA1BplK,EAAM8Y,SAASU,QACjB1X,QAAQ45F,IAAI,4BACZ0jG,EAAY,KAEZt9L,QAAQ45F,IAAI,gBACZ0jG,EAAY,GAEhB,GAGFqB,EAAqB,GACpB,CAACvB,KAGFz9B,EAAAA,GAAAA,MAAA,QAAMI,MAAM,iBAAgBt3F,SAAA,EAC1Bk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,gBACVtiE,MAAO,CACLC,QAAS,OACTwpM,cAAe,SACfC,eAAgB,SAChB3C,WAAY,UACZzzH,SAAA,EAEFk3F,EAAAA,GAAAA,MAAA,MAAIxqK,MAAO,CAAE2pM,UAAW,SAAU1sJ,WAAY,MAAO3hC,MAAO,QAASg4D,SAAA,CAClE,IAAI,6BAGP41F,EAAAA,GAAAA,KAAA,KAAGlpK,MAAO,CAAE8zE,OAAQ,mBAAoBR,SAAC,0BACzCk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,eACVtiE,MAAO,CACLoZ,SAAU,WACVwK,MAAO,QACPtY,OAAQ,QACR+hL,OAAQ,kBACRptL,QAAS,OACTypM,eAAgB,SAChB3C,WAAY,UACZzzH,SAAA,CAEDy1H,GACC7/B,EAAAA,GAAAA,KAAA,OACEhpK,IAAK6oM,EACLr+B,IAAI,WACJ1qK,MAAO,CACL8qI,SAAU,OACV8+D,UAAW,OACXC,UAAW,QACXlD,aAAa,UAIjBz9B,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMiB,GACN1xK,MAAO,CAAE88C,SAAU,OAAQxhC,MAAO,WAGtC4tJ,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLwwM,OAAO,UACPx9B,SAzKgBzxK,IACxButM,EAAY,IACPr4C,EACH84C,UAAWhuM,EAAE3G,OAAO6zM,MAAM,KAE5B,MAAMgC,EAAOlvM,EAAE3G,OAAO6zM,MAAM,GAC5B,GAAIgC,EAAM,CACR,MAAMC,EAAWrsL,IAAIC,gBAAgBmsL,GACrCf,EAAiBgB,EACnB,GAiKQhqM,MAAO,CACLoZ,SAAU,WACVhO,IAAK,EACLiO,KAAM,EACNuK,MAAO,QACPtY,OAAQ,QACR6/C,QAAS,EACTikH,OAAQ,iBAIdlG,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,gBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,+BACZ/0K,MAAOm6J,EAASu4C,UAChBh8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,mBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,eACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,8BACZ/0K,MAAOm6J,EAASw4C,SAChBj8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,qBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,WACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,0BACZ/0K,MAAOm6J,EAAS3/C,MAChBk8D,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,eAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,kBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,wCACZ/0K,MAAOm6J,EAASy4C,YAChBl8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,wBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,SAAQ/4F,SAAC,YACxBk3F,EAAAA,GAAAA,MAAA,UACE3sK,GAAG,SACHjI,MAAOm6J,EAAS04C,OAChBn8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,UAAUy4E,SAAA,EAE3C41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,OAAM09E,SAAC,UACrB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,SAAQ09E,SAAC,YACvB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,QAAO09E,SAAC,iBAG1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,SACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgpE,UAAU,aACV1sE,MAAOm6J,EAAS24C,YAChBp8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,wBAIvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,oBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,+BACZ/0K,MAAOm6J,EAAS44C,WAChBr8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,sBAKvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAtP1B6zC,UACb3jK,EAAE0uG,iBACF,MAAMipB,EAAO,IAAIm6B,SAajB,GAZAn6B,EAAKhsG,OAAO,SAAUyhL,EAAUA,WAChCz1E,EAAKhsG,OAAO,QAASupI,EAAS3/C,OAC9BoiB,EAAKhsG,OAAO,YAAaupI,EAASu4C,WAClC91E,EAAKhsG,OAAO,WAAYupI,EAASw4C,UACjC/1E,EAAKhsG,OAAO,cAAeupI,EAASy4C,aACpCh2E,EAAKhsG,OAAO,SAAUupI,EAAS04C,QAC/Bj2E,EAAKhsG,OAAO,cAAeupI,EAAS24C,aACpCl2E,EAAKhsG,OAAO,aAAcupI,EAAS44C,YACnCn2E,EAAKhsG,OAAO,YAAaupI,EAAS64C,WAClCp2E,EAAKhsG,OAAO,YAAaupI,EAAS84C,WAClCh+L,QAAQ45F,IAAIyjG,GAEK,IAAbA,EAAgB,CAClB/5B,GAAW,GACXtjK,QAAQ45F,IAAI,YACZ,UACQopE,GAAczE,KAAK,6BAA8B52C,EAAM,CAC3D0gC,QAAS,CACP,eAAgB,yBAGpBid,GAAMC,QAAQ,6BACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI,gBAAiB17F,EAAMi9G,SACnCmoD,GAAW,GACXgC,GAAMpnK,MAAM,mBACd,CACF,MACE,IACEolK,GAAW,GA2Bf,SAAuB37C,GACrB,IAAK,MAAO99H,EAAKkB,KAAU48H,EAAKh1H,UAC9BqN,QAAQ45F,IAAI,GAADnlG,OAAI5K,EAAG,MAAA4K,OAAK1J,GAE3B,CA9BIq0M,CAAcz3E,GAWa,aATDq7C,GAAcq8B,IAAI,6BAAD5qM,OACZ2oM,EAAUA,WACvCz1E,EACA,CACE0gC,QAAS,CACP,eAAgB,0BAIN3wI,QACd4rJ,GAAW,GAGXgC,GAAMC,QAAQ,+BAEdjC,GAAW,GAGXgC,GAAMpnK,MAAM,qBAEhB,CAAE,MAAOA,GACP8B,QAAQ45F,IAAI,gBAAiB17F,EAAMi9G,QACrC,CAMF,EAsLuD1yC,SAAC,qBAIrD46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAGF,gEC3SX,SAAS,GAAQvpE,GAGf,OAAO,GAAU,mBAAqBhL,QAAU,iBAAmBA,OAAOoH,SAAW,SAAU4D,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBhL,QAAUgL,EAAEpU,cAAgBoJ,QAAUgL,IAAMhL,OAAOlK,UAAY,gBAAkBkV,CACpH,EAAG,GAAQA,EACb,CCNA,SAASogM,GAAc1iM,GACrB,IAAIrT,ECFN,SAAqBqT,EAAGwC,GACtB,GAAI,UAAY,GAAQxC,KAAOA,EAAG,OAAOA,EACzC,IAAI5M,EAAI4M,EAAE1I,OAAO2B,aACjB,QAAI,IAAW7F,EAAG,CAChB,IAAIzG,EAAIyG,EAAEzF,KAAKqS,EAAGwC,GAAK,WACvB,GAAI,UAAY,GAAQ7V,GAAI,OAAOA,EACnC,MAAM,IAAIR,UAAU,+CACtB,CACA,OAAQ,WAAaqW,EAAInH,OAASyG,QAAQ9B,EAC5C,CDPU/G,CAAY+G,EAAG,UACvB,MAAO,UAAY,GAAQrT,GAAKA,EAAIA,EAAI,EAC1C,CEJA,SAAS,GAAgByG,EAAGoP,EAAGxC,GAC7B,OAAQwC,EAAIkgM,GAAclgM,MAAOpP,EAAI3F,OAAOwB,eAAemE,EAAGoP,EAAG,CAC/DrU,MAAO6R,EACPlT,YAAY,EACZC,cAAc,EACdC,UAAU,IACPoG,EAAEoP,GAAKxC,EAAG5M,CACjB,CCPA,SAAS,GAAQA,EAAGoP,GAClB,IAAIxC,EAAIvS,OAAOmH,KAAKxB,GACpB,GAAI3F,OAAOkM,sBAAuB,CAChC,IAAI2I,EAAI7U,OAAOkM,sBAAsBvG,GACrCoP,IAAMF,EAAIA,EAAEkxC,QAAO,SAAUhxC,GAC3B,OAAO/U,OAAO2L,yBAAyBhG,EAAGoP,GAAG1V,UAC/C,KAAKkT,EAAE1O,KAAKd,MAAMwP,EAAGsC,EACvB,CACA,OAAOtC,CACT,CACA,SAAS,GAAe5M,GACtB,IAAK,IAAIoP,EAAI,EAAGA,EAAIjV,UAAUX,OAAQ4V,IAAK,CACzC,IAAIxC,EAAI,MAAQzS,UAAUiV,GAAKjV,UAAUiV,GAAK,CAAC,EAC/CA,EAAI,EAAI,GAAQ/U,OAAOuS,IAAI,GAAIxI,SAAQ,SAAUgL,GAC/C,GAAepP,EAAGoP,EAAGxC,EAAEwC,GACzB,IAAK/U,OAAOi9F,0BAA4Bj9F,OAAOjB,iBAAiB4G,EAAG3F,OAAOi9F,0BAA0B1qF,IAAM,GAAQvS,OAAOuS,IAAIxI,SAAQ,SAAUgL,GAC7I/U,OAAOwB,eAAemE,EAAGoP,EAAG/U,OAAO2L,yBAAyB4G,EAAGwC,GACjE,GACF,CACA,OAAOpP,CACT,CCrBA,SAAS,GAAkBoP,EAAGnS,IAC3B,MAAQA,GAAKA,EAAImS,EAAE5V,UAAYyD,EAAImS,EAAE5V,QACtC,IAAK,IAAIwG,EAAI,EAAG6M,EAAInM,MAAMzD,GAAI+C,EAAI/C,EAAG+C,IAAK6M,EAAE7M,GAAKoP,EAAEpP,GACnD,OAAO6M,CACT,CCHA,SAAS,GAA4BuC,EAAGnS,GACtC,GAAImS,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAO,GAAiBA,EAAGnS,GACrD,IAAI2P,EAAI,CAAC,EAAEpQ,SAASjC,KAAK6U,GAAG3S,MAAM,GAAI,GACtC,MAAO,WAAamQ,GAAKwC,EAAEtU,cAAgB8R,EAAIwC,EAAEtU,YAAY4D,MAAO,QAAUkO,GAAK,QAAUA,EAAIlM,MAAM23F,KAAKjpF,GAAK,cAAgBxC,GAAK,2CAA2C3F,KAAK2F,GAAK,GAAiBwC,EAAGnS,QAAK,CACtN,CACF,CCHA,SAAS,GAAemS,EAAGpP,GACzB,OCLF,SAAyBoP,GACvB,GAAI1O,MAAMC,QAAQyO,GAAI,OAAOA,CAC/B,CDGS,CAAeA,IELxB,SAA+BA,EAAGlH,GAChC,IAAI0E,EAAI,MAAQwC,EAAI,KAAO,oBAAsBlL,QAAUkL,EAAElL,OAAOoH,WAAa8D,EAAE,cACnF,GAAI,MAAQxC,EAAG,CACb,IAAI5M,EACF6M,EACAtT,EACA+V,EACArS,EAAI,GACJc,GAAI,EACJmR,GAAI,EACN,IACE,GAAI3V,GAAKqT,EAAIA,EAAErS,KAAK6U,IAAIpO,KAAM,IAAMkH,EAAG,CACrC,GAAI7N,OAAOuS,KAAOA,EAAG,OACrB7O,GAAI,CACN,MAAO,OAASA,GAAKiC,EAAIzG,EAAEgB,KAAKqS,IAAI/J,QAAU5F,EAAEiB,KAAK8B,EAAEjF,OAAQkC,EAAEzD,SAAW0O,GAAInK,GAAI,GACtF,CAAE,MAAOqR,GACPF,GAAI,EAAIrC,EAAIuC,CACd,CAAE,QACA,IACE,IAAKrR,GAAK,MAAQ6O,EAAU,SAAM0C,EAAI1C,EAAU,SAAKvS,OAAOiV,KAAOA,GAAI,MACzE,CAAE,QACA,GAAIJ,EAAG,MAAMrC,CACf,CACF,CACA,OAAO5P,CACT,CACF,CFrB8B,CAAqBmS,EAAGpP,IAAM,GAA2BoP,EAAGpP,IGL1F,WACE,MAAM,IAAIjH,UAAU,4IACtB,CHGgG,EAChG,CILA,SAAS,GAAyBiH,EAAG4M,GACnC,GAAI,MAAQ5M,EAAG,MAAO,CAAC,EACvB,IAAIkP,EACFE,EACA7V,ECLJ,SAAuC6V,EAAGpP,GACxC,GAAI,MAAQoP,EAAG,MAAO,CAAC,EACvB,IAAIxC,EAAI,CAAC,EACT,IAAK,IAAIC,KAAKuC,EAAG,GAAI,CAAC,EAAE9U,eAAeC,KAAK6U,EAAGvC,GAAI,CACjD,GAAI7M,EAAE+mB,QAAQla,IAAM,EAAG,SACvBD,EAAEC,GAAKuC,EAAEvC,EACX,CACA,OAAOD,CACT,CDHQ,CAA6B5M,EAAG4M,GACtC,GAAIvS,OAAOkM,sBAAuB,CAChC,IAAIsG,EAAIxS,OAAOkM,sBAAsBvG,GACrC,IAAKoP,EAAI,EAAGA,EAAIvC,EAAErT,OAAQ4V,IAAKF,EAAIrC,EAAEuC,GAAIxC,EAAEma,QAAQ7X,IAAM,GAAK,CAAC,EAAEzO,qBAAqBlG,KAAKyF,EAAGkP,KAAO3V,EAAE2V,GAAKlP,EAAEkP,GAChH,CACA,OAAO3V,CACT,CENA,IAAI2hG,GAAY,CAAC,oBAAqB,oBAAqB,eAAgB,aAAc,aAAc,WAAY,gBAAiB,cAAe,aAAc,SCLjK,SAAS,KACP,OAAO,GAAW7gG,OAAO2J,OAAS3J,OAAO2J,OAAOsmB,OAAS,SAAUzd,GACjE,IAAK,IAAI7M,EAAI,EAAGA,EAAI7F,UAAUX,OAAQwG,IAAK,CACzC,IAAI4M,EAAIzS,UAAU6F,GAClB,IAAK,IAAIoP,KAAKxC,GAAG,CAAG,GAAEtS,eAAeC,KAAKqS,EAAGwC,KAAOvC,EAAEuC,GAAKxC,EAAEwC,GAC/D,CACA,OAAOvC,CACT,EAAG,GAASzP,MAAM,KAAMjD,UAC1B,CCPA,SAAS,GAAkB6F,EAAGoP,GAC5B,IAAK,IAAIxC,EAAI,EAAGA,EAAIwC,EAAE5V,OAAQoT,IAAK,CACjC,IAAIsC,EAAIE,EAAExC,GACVsC,EAAExV,WAAawV,EAAExV,aAAc,EAAIwV,EAAEvV,cAAe,EAAI,UAAWuV,IAAMA,EAAEtV,UAAW,GAAKS,OAAOwB,eAAemE,EAAGsvM,GAAcpgM,EAAErV,KAAMqV,EAC5I,CACF,CCNA,SAAS,GAAgBtC,EAAG5M,GAC1B,OAAO,GAAkB3F,OAAO2M,eAAiB3M,OAAO2M,eAAesjB,OAAS,SAAU1d,EAAG5M,GAC3F,OAAO4M,EAAE5R,UAAYgF,EAAG4M,CAC1B,EAAG,GAAgBA,EAAG5M,EACxB,CCJA,SAASkhI,GAAgBt0H,GACvB,OAAOs0H,GAAkB7mI,OAAO2M,eAAiB3M,OAAOgH,eAAeipB,OAAS,SAAU1d,GACxF,OAAOA,EAAE5R,WAAaX,OAAOgH,eAAeuL,EAC9C,EAAGs0H,GAAgBt0H,EACrB,CCJA,SAASo0H,KACP,IACE,IAAIp0H,GAAK00H,QAAQtnI,UAAU2O,QAAQpO,KAAKqkG,QAAQC,UAAUyiC,QAAS,IAAI,WAAa,IACtF,CAAE,MAAO10H,GAAI,CACb,OAAQo0H,GAA4B,WAClC,QAASp0H,CACX,IACF,CCLA,SAASy0H,GAA2Bz0H,EAAG5M,GACrC,GAAIA,IAAM,UAAY,GAAQA,IAAM,mBAAqBA,GAAI,OAAOA,EACpE,QAAI,IAAWA,EAAG,MAAM,IAAIjH,UAAU,4DACtC,OCLF,SAAgCiH,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAI7E,eAAe,6DAC3C,OAAO6E,CACT,CDES,CAAsB4M,EAC/B,CEFA,SAAS,GAAmBwC,GAC1B,OCJF,SAA4BA,GAC1B,GAAI1O,MAAMC,QAAQyO,GAAI,OAAO,GAAiBA,EAChD,CDES,CAAkBA,IEL3B,SAA0BA,GACxB,GAAI,oBAAsBlL,QAAU,MAAQkL,EAAElL,OAAOoH,WAAa,MAAQ8D,EAAE,cAAe,OAAO1O,MAAM23F,KAAKjpF,EAC/G,CFGiC,CAAgBA,IAAM,GAA2BA,IGLlF,WACE,MAAM,IAAIrW,UAAU,uIACtB,CHGwF,EACxF,CI+CA,IAAIw2M,GAA0B,WAE5B,SAASA,EAAWxiM,GAClB,IAAI0wH,EAAQ/9H,KAEZA,KAAK8vM,WAAa,SAAUpoM,GAC1B,IAAIqoM,EAIAA,EAFsB,IAAtBhyE,EAAMiyE,KAAKl2M,OACTikI,EAAMkyE,eACClyE,EAAMkyE,eAAer4F,YACrBmmB,EAAMmyE,QACNnyE,EAAM1tG,UAAU6xE,WAEhB67B,EAAMgyE,OAGRhyE,EAAMiyE,KAAKjyE,EAAMiyE,KAAKl2M,OAAS,GAAG89G,YAG7CmmB,EAAM1tG,UAAUg6C,aAAa3iE,EAAKqoM,GAElChyE,EAAMiyE,KAAKxxM,KAAKkJ,EAClB,EAEA1H,KAAKmwM,cAA8B7yM,IAAnB+P,EAAQ+iM,QAA+D/iM,EAAQ+iM,OAC/FpwM,KAAKgwM,KAAO,GACZhwM,KAAKqwM,IAAM,EACXrwM,KAAKswM,MAAQjjM,EAAQijM,MAErBtwM,KAAK7F,IAAMkT,EAAQlT,IACnB6F,KAAKqwB,UAAYhjB,EAAQgjB,UACzBrwB,KAAKkwM,QAAU7iM,EAAQ6iM,QACvBlwM,KAAKiwM,eAAiB5iM,EAAQ4iM,eAC9BjwM,KAAK+vM,OAAS,IAChB,CAEA,IAAIQ,EAASV,EAAWv1M,UA4DxB,OA1DAi2M,EAAOj2E,QAAU,SAAiBpnD,GAChCA,EAAMxuE,QAAQ1E,KAAK8vM,WACrB,EAEAS,EAAOpI,OAAS,SAAgBlzH,GAI1Bj1E,KAAKqwM,KAAOrwM,KAAKmwM,SAAW,KAAQ,KAAO,GAC7CnwM,KAAK8vM,WA7DX,SAA4BziM,GAC1B,IAAI3F,EAAM9J,SAASE,cAAc,SASjC,OARA4J,EAAIyvB,aAAa,eAAgB9pB,EAAQlT,UAEnBmD,IAAlB+P,EAAQijM,OACV5oM,EAAIyvB,aAAa,QAAS9pB,EAAQijM,OAGpC5oM,EAAIwkB,YAAYtuB,SAAS2yH,eAAe,KACxC7oH,EAAIyvB,aAAa,SAAU,IACpBzvB,CACT,CAkDsB01D,CAAmBp9D,OAGrC,IAAI0H,EAAM1H,KAAKgwM,KAAKhwM,KAAKgwM,KAAKl2M,OAAS,GAcvC,GAAIkG,KAAKmwM,SAAU,CACjB,IAAIK,EAhGV,SAAqB9oM,GACnB,GAAIA,EAAI8oM,MAEN,OAAO9oM,EAAI8oM,MAMb,IAAK,IAAI32M,EAAI,EAAGA,EAAI+D,SAAS6yM,YAAY32M,OAAQD,IAC/C,GAAI+D,SAAS6yM,YAAY52M,GAAG62M,YAAchpM,EAExC,OAAO9J,SAAS6yM,YAAY52M,EAGlC,CAiFkB82M,CAAYjpM,GAExB,IAGE8oM,EAAMI,WAAW37H,EAAMu7H,EAAMK,SAAS/2M,OACxC,CAAE,MAAOwG,IACHgoB,CAGN,CACF,MACE5gB,EAAIwkB,YAAYtuB,SAAS2yH,eAAet7C,IAG1Cj1E,KAAKqwM,KACP,EAEAE,EAAO92L,MAAQ,WAEbzZ,KAAKgwM,KAAKtrM,SAAQ,SAAUgD,GAC1B,OAAOA,EAAI06C,YAAc16C,EAAI06C,WAAW2E,YAAYr/C,EACtD,IACA1H,KAAKgwM,KAAO,GACZhwM,KAAKqwM,IAAM,CAKb,EAEOR,CACT,CAlG8B,GCjDnBpgM,GAAMjP,KAAKiP,IAMXkpF,GAAOpwF,OAAOugE,aAMdxkE,GAAS3J,OAAO2J,OAepB,SAAS0oB,GAAM3xB,GACrB,OAAOA,EAAM2xB,MACd,CAiBO,SAASjd,GAAS1U,EAAOsqJ,EAASmrD,GACxC,OAAOz1M,EAAM0U,QAAQ41I,EAASmrD,EAC/B,CAOO,SAASC,GAAS11M,EAAO46G,GAC/B,OAAO56G,EAAMgsB,QAAQ4uF,EACtB,CAOO,SAAS+6F,GAAQ31M,EAAOwB,GAC9B,OAAiC,EAA1BxB,EAAMoN,WAAW5L,EACzB,CAQO,SAASm0B,GAAQ31B,EAAOosL,EAAO5yJ,GACrC,OAAOx5B,EAAM0B,MAAM0qL,EAAO5yJ,EAC3B,CAMO,SAASo8K,GAAQ51M,GACvB,OAAOA,EAAMvB,MACd,CAMO,SAASo3M,GAAQ71M,GACvB,OAAOA,EAAMvB,MACd,CAOO,SAASmyB,GAAQ5wB,EAAOq7F,GAC9B,OAAOA,EAAMl4F,KAAKnD,GAAQA,CAC3B,CCvGO,IAAIwxB,GAAO,EACPskL,GAAS,EACTr3M,GAAS,EACT+kB,GAAW,EACXuyL,GAAY,EACZC,GAAa,GAWjB,SAAS/uJ,GAAMjnD,EAAOkc,EAAMyrC,EAAQjkD,EAAMnF,EAAOm/E,EAAUj/E,GACjE,MAAO,CAACuB,MAAOA,EAAOkc,KAAMA,EAAMyrC,OAAQA,EAAQjkD,KAAMA,EAAMnF,MAAOA,EAAOm/E,SAAUA,EAAUlsD,KAAMA,GAAMskL,OAAQA,GAAQr3M,OAAQA,EAAQy+F,OAAQ,GACrJ,CAOO,SAAS9b,GAAMllE,EAAM3d,GAC3B,OAAO0K,GAAOg+C,GAAK,GAAI,KAAM,KAAM,GAAI,KAAM,KAAM,GAAI/qC,EAAM,CAACzd,QAASyd,EAAKzd,QAASF,EACtF,CAYO,SAASy7L,KAMf,OALA+b,GAAYvyL,GAAW,EAAImyL,GAAOK,KAAcxyL,IAAY,EAExDsyL,KAAwB,KAAdC,KACbD,GAAS,EAAGtkL,MAENukL,EACR,CAKO,SAAS9vM,KAMf,OALA8vM,GAAYvyL,GAAW/kB,GAASk3M,GAAOK,GAAYxyL,MAAc,EAE7DsyL,KAAwB,KAAdC,KACbD,GAAS,EAAGtkL,MAENukL,EACR,CAKO,SAASE,KACf,OAAON,GAAOK,GAAYxyL,GAC3B,CAKO,SAAS0yL,KACf,OAAO1yL,EACR,CAOO,SAAS9hB,GAAO0qL,EAAO5yJ,GAC7B,OAAO7D,GAAOqgL,GAAY5pB,EAAO5yJ,EAClC,CAMO,SAASygI,GAAOv2J,GACtB,OAAQA,GAEP,KAAK,EAAG,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GACtC,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,IAE3D,KAAK,GAAI,KAAK,IAAK,KAAK,IACvB,OAAO,EAER,KAAK,GACJ,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAC/B,OAAO,EAER,KAAK,GAAI,KAAK,GACb,OAAO,EAGT,OAAO,CACR,CAMO,SAASyyM,GAAOn2M,GACtB,OAAOwxB,GAAOskL,GAAS,EAAGr3M,GAASm3M,GAAOI,GAAah2M,GAAQwjB,GAAW,EAAG,EAC9E,CAMO,SAAS4yL,GAASp2M,GACxB,OAAOg2M,GAAa,GAAIh2M,CACzB,CAMO,SAASq2M,GAAS3yM,GACxB,OAAOiuB,GAAKjwB,GAAM8hB,GAAW,EAAGk1I,GAAmB,KAATh1J,EAAcA,EAAO,EAAa,KAATA,EAAcA,EAAO,EAAIA,IAC7F,CAcO,SAAS4yM,GAAY5yM,GAC3B,MAAOqyM,GAAYE,OACdF,GAAY,IACf9vM,KAIF,OAAOg0J,GAAMv2J,GAAQ,GAAKu2J,GAAM87C,IAAa,EAAI,GAAK,GACvD,CAwBO,SAASQ,GAAU/0M,EAAO8R,GAChC,OAASA,GAASrN,QAEb8vM,GAAY,IAAMA,GAAY,KAAQA,GAAY,IAAMA,GAAY,IAAQA,GAAY,IAAMA,GAAY,MAG/G,OAAOr0M,GAAMF,EAAO00M,MAAW5iM,EAAQ,GAAe,IAAV2iM,MAA0B,IAAVhwM,MAC7D,CAMO,SAASyyJ,GAAWh1J,GAC1B,KAAOuC,aACE8vM,IAEP,KAAKryM,EACJ,OAAO8f,GAER,KAAK,GAAI,KAAK,GACA,KAAT9f,GAAwB,KAATA,GAClBg1J,GAAUq9C,IACX,MAED,KAAK,GACS,KAATryM,GACHg1J,GAAUh1J,GACX,MAED,KAAK,GACJuC,KAIH,OAAOud,EACR,CAOO,SAASgzL,GAAW9yM,EAAMlC,GAChC,KAAOyE,MAEFvC,EAAOqyM,KAAc,KAGhBryM,EAAOqyM,KAAc,IAAsB,KAAXE,QAG1C,MAAO,KAAOv0M,GAAMF,EAAOgiB,GAAW,GAAK,IAAM85E,GAAc,KAAT55F,EAAcA,EAAOuC,KAC5E,CAMO,SAASwwM,GAAYj1M,GAC3B,MAAQy4J,GAAMg8C,OACbhwM,KAED,OAAOvE,GAAMF,EAAOgiB,GACrB,CCrPO,IAAIkzL,GAAK,OACLC,GAAM,QACNC,GAAS,WAETC,GAAU,OACVC,GAAU,OACVC,GAAc,OAUdC,GAAY,aCRhB,SAASx7C,GAAW99E,EAAUrxD,GAIpC,IAHA,IAAIs5J,EAAS,GACTlnL,EAASo3M,GAAOn4H,GAEXl/E,EAAI,EAAGA,EAAIC,EAAQD,IAC3BmnL,GAAUt5J,EAASqxD,EAASl/E,GAAIA,EAAGk/E,EAAUrxD,IAAa,GAE3D,OAAOs5J,CACR,CASO,SAASn2K,GAAW+T,EAAS/hB,EAAOk8E,EAAUrxD,GACpD,OAAQ9I,EAAQ7f,MACf,IDPiB,SCOL,GAAI6f,EAAQm6D,SAASj/E,OAAQ,MACzC,IDlBkB,UCkBL,KAAKs4M,GAAa,OAAOxzL,EAAQ25E,OAAS35E,EAAQ25E,QAAU35E,EAAQvjB,MACjF,KAAK62M,GAAS,MAAO,GACrB,KAAKG,GAAW,OAAOzzL,EAAQ25E,OAAS35E,EAAQvjB,MAAQ,IAAMw7J,GAAUj4I,EAAQm6D,SAAUrxD,GAAY,IACtG,KAAKyqL,GAASvzL,EAAQvjB,MAAQujB,EAAQhlB,MAAMgL,KAAK,KAGlD,OAAOqsM,GAAOl4H,EAAW89E,GAAUj4I,EAAQm6D,SAAUrxD,IAAa9I,EAAQ25E,OAAS35E,EAAQvjB,MAAQ,IAAM09E,EAAW,IAAM,EAC3H,CC3BO,SAASu5H,GAASj3M,GACxB,OAAOo2M,GAAQ7sL,GAAM,GAAI,KAAM,KAAM,KAAM,CAAC,IAAKvpB,EAAQm2M,GAAMn2M,GAAQ,EAAG,CAAC,GAAIA,GAChF,CAcO,SAASupB,GAAOvpB,EAAOkc,EAAMyrC,EAAQiyB,EAAMs9H,EAAOC,EAAUC,EAAQh6K,EAAQi6K,GAiBlF,IAhBA,IAAI71M,EAAQ,EACRmkB,EAAS,EACTlnB,EAAS24M,EACTE,EAAS,EACTjxH,EAAW,EACXkxH,EAAW,EACX5gK,EAAW,EACX6gK,EAAW,EACXC,EAAY,EACZ1B,EAAY,EACZryM,EAAO,GACPnF,EAAQ24M,EACRx5H,EAAWy5H,EACXO,EAAY99H,EACZo8H,EAAatyM,EAEV8zM,UACED,EAAWxB,EAAWA,EAAY9vM,MAEzC,KAAK,GACJ,GAAgB,KAAZsxM,GAAqD,IAAlC5B,GAAOK,EAAYv3M,EAAS,GAAU,EACkB,GAA1Ei3M,GAAQM,GAActhM,GAAQ2hM,GAAQN,GAAY,IAAK,OAAQ,SAClE0B,GAAa,GACd,KACD,CAED,KAAK,GAAI,KAAK,GAAI,KAAK,GACtBzB,GAAcK,GAAQN,GACtB,MAED,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GAC9BC,GAAcM,GAAWiB,GACzB,MAED,KAAK,GACJvB,GAAcO,GAASL,KAAU,EAAG,GACpC,SAED,KAAK,GACJ,OAAQD,MACP,KAAK,GAAI,KAAK,GACbrlL,GAAOk8J,GAAQ0pB,GAAUvwM,KAAQiwM,MAAUh6L,EAAMyrC,GAAS0vJ,GAC1D,MACD,QACCrB,GAAc,IAEhB,MAED,KAAK,IAAMr/J,EACVvZ,EAAO57B,KAAWo0M,GAAOI,GAAcyB,EAExC,KAAK,IAAM9gK,EAAU,KAAK,GAAI,KAAK,EAClC,OAAQo/J,GAEP,KAAK,EAAG,KAAK,IAAKyB,EAAW,EAE7B,KAAK,GAAK7xL,GAA0B,GAAd8xL,IAAiBzB,EAAathM,GAAQshM,EAAY,MAAO,KAC1E3vH,EAAW,GAAMuvH,GAAOI,GAAcv3M,GACzCmyB,GAAOy1D,EAAW,GAAKsxH,GAAY3B,EAAa,IAAKp8H,EAAMjyB,EAAQlpD,EAAS,GAAKk5M,GAAYjjM,GAAQshM,EAAY,IAAK,IAAM,IAAKp8H,EAAMjyB,EAAQlpD,EAAS,GAAI44M,GAC7J,MAED,KAAK,GAAIrB,GAAc,IAEvB,QAGC,GAFAplL,GAAO8mL,EAAYE,GAAQ5B,EAAY95L,EAAMyrC,EAAQnmD,EAAOmkB,EAAQuxL,EAAO95K,EAAQ15B,EAAMnF,EAAQ,GAAIm/E,EAAW,GAAIj/E,GAAS04M,GAE3G,MAAdpB,EACH,GAAe,IAAXpwL,EACH4D,GAAMysL,EAAY95L,EAAMw7L,EAAWA,EAAWn5M,EAAO44M,EAAU14M,EAAQ2+B,EAAQsgD,QAE/E,OAAmB,KAAX45H,GAA2C,MAA1B3B,GAAOK,EAAY,GAAa,IAAMsB,GAE9D,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAClC/tL,GAAMvpB,EAAO03M,EAAWA,EAAW99H,GAAQhpD,GAAOgnL,GAAQ53M,EAAO03M,EAAWA,EAAW,EAAG,EAAGR,EAAO95K,EAAQ15B,EAAMwzM,EAAO34M,EAAQ,GAAIE,GAASi/E,GAAWw5H,EAAOx5H,EAAUj/E,EAAQ2+B,EAAQw8C,EAAOr7E,EAAQm/E,GACzM,MACD,QACCn0D,GAAMysL,EAAY0B,EAAWA,EAAWA,EAAW,CAAC,IAAKh6H,EAAU,EAAGtgD,EAAQsgD,IAIpFl8E,EAAQmkB,EAAS0gE,EAAW,EAAG1vC,EAAW8gK,EAAY,EAAG/zM,EAAOsyM,EAAa,GAAIv3M,EAAS24M,EAC1F,MAED,KAAK,GACJ34M,EAAS,EAAIm3M,GAAOI,GAAa3vH,EAAWkxH,EAC7C,QACC,GAAI5gK,EAAW,EACd,GAAiB,KAAbo/J,IACDp/J,OACE,GAAiB,KAAbo/J,GAAkC,GAAdp/J,KAA6B,KAAVqjJ,KAC/C,SAEF,OAAQgc,GAAc14G,GAAKy4G,GAAYA,EAAYp/J,GAElD,KAAK,GACJ8gK,EAAY9xL,EAAS,EAAI,GAAKqwL,GAAc,MAAO,GACnD,MAED,KAAK,GACJ54K,EAAO57B,MAAYo0M,GAAOI,GAAc,GAAKyB,EAAWA,EAAY,EACpE,MAED,KAAK,GAEW,KAAXxB,OACHD,GAAcK,GAAQpwM,OAEvBqxM,EAASrB,KAAQtwL,EAASlnB,EAASm3M,GAAOlyM,EAAOsyM,GAAcS,GAAWP,OAAWH,IACrF,MAED,KAAK,GACa,KAAbwB,GAAyC,GAAtB3B,GAAOI,KAC7Br/J,EAAW,IAIjB,OAAOwgK,CACR,CAgBO,SAASS,GAAS53M,EAAOkc,EAAMyrC,EAAQnmD,EAAOmkB,EAAQuxL,EAAO95K,EAAQ15B,EAAMnF,EAAOm/E,EAAUj/E,GAKlG,IAJA,IAAI+0K,EAAO7tJ,EAAS,EAChBi0D,EAAkB,IAAXj0D,EAAeuxL,EAAQ,CAAC,IAC/B5wJ,EAAOuvJ,GAAOj8H,GAETp7E,EAAI,EAAGmL,EAAI,EAAGL,EAAI,EAAG9K,EAAIgD,IAAShD,EAC1C,IAAK,IAAIg/B,EAAI,EAAG2I,EAAIxQ,GAAO31B,EAAOwzK,EAAO,EAAGA,EAAOp/J,GAAIzK,EAAIyzB,EAAO5+B,KAAMg2C,EAAIx0C,EAAOw9B,EAAI8oB,IAAQ9oB,GAC1FgX,EAAI7iB,GAAKhoB,EAAI,EAAIiwE,EAAKp8C,GAAK,IAAM2I,EAAIzxB,GAAQyxB,EAAG,OAAQyzC,EAAKp8C,QAChEj/B,EAAM+K,KAAOkrC,GAEhB,OAAOyS,GAAKjnD,EAAOkc,EAAMyrC,EAAmB,IAAXhiC,EAAemxL,GAAUpzM,EAAMnF,EAAOm/E,EAAUj/E,EAClF,CAQO,SAASquL,GAAS9sL,EAAOkc,EAAMyrC,GACrC,OAAOV,GAAKjnD,EAAOkc,EAAMyrC,EAAQkvJ,GAASv5G,GH/InCy4G,IG+IiDpgL,GAAO31B,EAAO,GAAI,GAAI,EAC/E,CASO,SAAS23M,GAAa33M,EAAOkc,EAAMyrC,EAAQlpD,GACjD,OAAOwoD,GAAKjnD,EAAOkc,EAAMyrC,EAAQovJ,GAAaphL,GAAO31B,EAAO,EAAGvB,GAASk3B,GAAO31B,EAAOvB,EAAS,GAAI,GAAIA,EACxG,CCzLA,IAAIo5M,GAA8B,SAAqCzrB,EAAOhvJ,EAAQ57B,GAIpF,IAHA,IAAI+1M,EAAW,EACXxB,EAAY,EAGdwB,EAAWxB,EACXA,EAAYE,KAEK,KAAbsB,GAAiC,KAAdxB,IACrB34K,EAAO57B,GAAS,IAGdy4J,GAAM87C,IAIV9vM,KAGF,OAAOvE,GAAM0qL,EAAO5oK,GACtB,EA6CIs0L,GAAW,SAAkB93M,EAAOo9B,GACtC,OAAOg5K,GA5CK,SAAiBn2C,EAAQ7iI,GAErC,IAAI57B,GAAS,EACTu0M,EAAY,GAEhB,GACE,OAAQ97C,GAAM87C,IACZ,KAAK,EAEe,KAAdA,GAA+B,KAAXE,OAKtB74K,EAAO57B,GAAS,GAGlBy+J,EAAOz+J,IAAUq2M,GAA4Br0L,GAAW,EAAG4Z,EAAQ57B,GACnE,MAEF,KAAK,EACHy+J,EAAOz+J,IAAU60M,GAAQN,GACzB,MAEF,KAAK,EAEH,GAAkB,KAAdA,EAAkB,CAEpB91C,IAASz+J,GAAoB,KAAXy0M,KAAgB,MAAQ,GAC1C74K,EAAO57B,GAASy+J,EAAOz+J,GAAO/C,OAC9B,KACF,CAIF,QACEwhK,EAAOz+J,IAAU87F,GAAKy4G,UAEnBA,EAAY9vM,MAErB,OAAOg6J,CACT,CAGiB83C,CAAQ5B,GAAMn2M,GAAQo9B,GACvC,EAGI46K,GAA+B,IAAIvnF,QACnCwnF,GAAS,SAAgB10L,GAC3B,GAAqB,SAAjBA,EAAQ7f,MAAoB6f,EAAQokC,UAExCpkC,EAAQ9kB,OAAS,GAFjB,CAUA,IAJA,IAAIuB,EAAQujB,EAAQvjB,MAChB2nD,EAASpkC,EAAQokC,OACjBuwJ,EAAiB30L,EAAQuyL,SAAWnuJ,EAAOmuJ,QAAUvyL,EAAQiO,OAASm2B,EAAOn2B,KAE1D,SAAhBm2B,EAAOjkD,MAEZ,KADAikD,EAASA,EAAOA,QACH,OAIf,IAA6B,IAAzBpkC,EAAQhlB,MAAME,QAAwC,KAAxBuB,EAAMoN,WAAW,IAE/C4qM,GAAc11M,IAAIqlD,MAMlBuwJ,EAAJ,CAIAF,GAAchsM,IAAIuX,GAAS,GAK3B,IAJA,IAAI6Z,EAAS,GACT85K,EAAQY,GAAS93M,EAAOo9B,GACxB+6K,EAAcxwJ,EAAOppD,MAEhBC,EAAI,EAAG8K,EAAI,EAAG9K,EAAI04M,EAAMz4M,OAAQD,IACvC,IAAK,IAAImL,EAAI,EAAGA,EAAIwuM,EAAY15M,OAAQkL,IAAKL,IAC3Cia,EAAQhlB,MAAM+K,GAAK8zB,EAAO5+B,GAAK04M,EAAM14M,GAAGkW,QAAQ,OAAQyjM,EAAYxuM,IAAMwuM,EAAYxuM,GAAK,IAAMutM,EAAM14M,EAT3G,CAtBA,CAkCF,EACI45M,GAAc,SAAqB70L,GACrC,GAAqB,SAAjBA,EAAQ7f,KAAiB,CAC3B,IAAI1D,EAAQujB,EAAQvjB,MAGI,MAAxBA,EAAMoN,WAAW,IACO,KAAxBpN,EAAMoN,WAAW,KAEfmW,EAAgB,OAAI,GACpBA,EAAQvjB,MAAQ,GAEpB,CACF,EAgHA,SAAS4S,GAAO5S,EAAOvB,GACrB,OL1NK,SAAeuB,EAAOvB,GAC5B,OAA0B,GAAnBk3M,GAAO31M,EAAO,MAAiBvB,GAAU,EAAKk3M,GAAO31M,EAAO,KAAO,EAAK21M,GAAO31M,EAAO,KAAO,EAAK21M,GAAO31M,EAAO,KAAO,EAAK21M,GAAO31M,EAAO,GAAK,CACvJ,CKwNU4lJ,CAAK5lJ,EAAOvB,IAElB,KAAK,KACH,OAAOm4M,GAAS,SAAW52M,EAAQA,EAGrC,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO42M,GAAS52M,EAAQA,EAG1B,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO42M,GAAS52M,EAAQ22M,GAAM32M,EAAQ02M,GAAK12M,EAAQA,EAGrD,KAAK,KACL,KAAK,KACH,OAAO42M,GAAS52M,EAAQ02M,GAAK12M,EAAQA,EAGvC,KAAK,KACH,OAAO42M,GAAS52M,EAAQ02M,GAAK,QAAU12M,EAAQA,EAGjD,KAAK,KACH,OAAO42M,GAAS52M,EAAQ0U,GAAQ1U,EAAO,iBAAkB42M,GAAS,WAAaF,GAAK,aAAe12M,EAGrG,KAAK,KACH,OAAO42M,GAAS52M,EAAQ02M,GAAK,aAAehiM,GAAQ1U,EAAO,cAAe,IAAMA,EAGlF,KAAK,KACH,OAAO42M,GAAS52M,EAAQ02M,GAAK,iBAAmBhiM,GAAQ1U,EAAO,4BAA6B,IAAMA,EAGpG,KAAK,KACH,OAAO42M,GAAS52M,EAAQ02M,GAAKhiM,GAAQ1U,EAAO,SAAU,YAAcA,EAGtE,KAAK,KACH,OAAO42M,GAAS52M,EAAQ02M,GAAKhiM,GAAQ1U,EAAO,QAAS,kBAAoBA,EAG3E,KAAK,KACH,OAAO42M,GAAS,OAASliM,GAAQ1U,EAAO,QAAS,IAAM42M,GAAS52M,EAAQ02M,GAAKhiM,GAAQ1U,EAAO,OAAQ,YAAcA,EAGpH,KAAK,KACH,OAAO42M,GAASliM,GAAQ1U,EAAO,qBAAsB,KAAO42M,GAAS,MAAQ52M,EAG/E,KAAK,KACH,OAAO0U,GAAQA,GAAQA,GAAQ1U,EAAO,eAAgB42M,GAAS,MAAO,cAAeA,GAAS,MAAO52M,EAAO,IAAMA,EAGpH,KAAK,KACL,KAAK,KACH,OAAO0U,GAAQ1U,EAAO,oBAAqB42M,aAG7C,KAAK,KACH,OAAOliM,GAAQA,GAAQ1U,EAAO,oBAAqB42M,GAAS,cAAgBF,GAAK,gBAAiB,aAAc,WAAaE,GAAS52M,EAAQA,EAGhJ,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO0U,GAAQ1U,EAAO,kBAAmB42M,GAAS,QAAU52M,EAG9D,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEH,GAAI41M,GAAO51M,GAAS,EAAIvB,EAAS,EAAG,OAAQk3M,GAAO31M,EAAOvB,EAAS,IAEjE,KAAK,IAEH,GAAkC,KAA9Bk3M,GAAO31M,EAAOvB,EAAS,GAAW,MAGxC,KAAK,IACH,OAAOiW,GAAQ1U,EAAO,mBAAoB,KAAO42M,GAAP,UAAiCD,IAAoC,KAA7BhB,GAAO31M,EAAOvB,EAAS,GAAY,KAAO,UAAYuB,EAG1I,KAAK,IACH,OAAQ01M,GAAQ11M,EAAO,WAAa4S,GAAO8B,GAAQ1U,EAAO,UAAW,kBAAmBvB,GAAUuB,EAAQA,EAE9G,MAGF,KAAK,KAEH,GAAkC,MAA9B21M,GAAO31M,EAAOvB,EAAS,GAAY,MAGzC,KAAK,KACH,OAAQk3M,GAAO31M,EAAO41M,GAAO51M,GAAS,IAAM01M,GAAQ11M,EAAO,eAAiB,MAE1E,KAAK,IACH,OAAO0U,GAAQ1U,EAAO,IAAK,IAAM42M,IAAU52M,EAG7C,KAAK,IACH,OAAO0U,GAAQ1U,EAAO,wBAAyB,KAAO42M,IAAgC,KAAtBjB,GAAO31M,EAAO,IAAa,UAAY,IAAxD,UAA+E42M,GAA/E,SAAwGF,GAAK,WAAa12M,EAG7K,MAGF,KAAK,KACH,OAAQ21M,GAAO31M,EAAOvB,EAAS,KAE7B,KAAK,IACH,OAAOm4M,GAAS52M,EAAQ02M,GAAKhiM,GAAQ1U,EAAO,qBAAsB,MAAQA,EAG5E,KAAK,IACH,OAAO42M,GAAS52M,EAAQ02M,GAAKhiM,GAAQ1U,EAAO,qBAAsB,SAAWA,EAG/E,KAAK,GACH,OAAO42M,GAAS52M,EAAQ02M,GAAKhiM,GAAQ1U,EAAO,qBAAsB,MAAQA,EAG9E,OAAO42M,GAAS52M,EAAQ02M,GAAK12M,EAAQA,EAGzC,OAAOA,CACT,CAEA,IAqCIq4M,GAAuB,CArCZ,SAAkB90L,EAAS/hB,EAAOk8E,EAAUrxD,GACzD,GAAI9I,EAAQ9kB,QAAU,IAAQ8kB,EAAgB,OAAG,OAAQA,EAAQ7f,MAC/D,KAAKqzM,GACHxzL,EAAgB,OAAI3Q,GAAO2Q,EAAQvjB,MAAOujB,EAAQ9kB,QAClD,MAEF,KAAKu4M,GACH,OAAOx7C,GAAU,CAACp6E,GAAK79D,EAAS,CAC9BvjB,MAAO0U,GAAQ6O,EAAQvjB,MAAO,IAAK,IAAM42M,OACtCvqL,GAEP,KAAKyqL,GACH,GAAIvzL,EAAQ9kB,OAAQ,OLzTnB,SAAkB48F,EAAOhvE,GAC/B,OAAOgvE,EAAMopC,IAAIp4G,GAAU9iB,KAAK,GACjC,CKuTiC+uM,CAAQ/0L,EAAQhlB,OAAO,SAAUyB,GAC1D,OLlYD,SAAgBA,EAAOsqJ,GAC7B,OAAQtqJ,EAAQsqJ,EAAQtlJ,KAAKhF,IAAUA,EAAM,GAAKA,CACnD,CKgYgB0Y,CAAM1Y,EAAO,0BAEnB,IAAK,aACL,IAAK,cACH,OAAOw7J,GAAU,CAACp6E,GAAK79D,EAAS,CAC9BhlB,MAAO,CAACmW,GAAQ1U,EAAO,cAAe,gBACnCqsB,GAGP,IAAK,gBACH,OAAOmvI,GAAU,CAACp6E,GAAK79D,EAAS,CAC9BhlB,MAAO,CAACmW,GAAQ1U,EAAO,aAAc,IAAM42M,GAAS,eAClDx1H,GAAK79D,EAAS,CAChBhlB,MAAO,CAACmW,GAAQ1U,EAAO,aAAc,eACnCohF,GAAK79D,EAAS,CAChBhlB,MAAO,CAACmW,GAAQ1U,EAAO,aAAc02M,GAAK,gBACvCrqL,GAGT,MAAO,EACT,IAEN,GAIIksL,GAAc,SAAqBvmM,GACrC,IAAIlT,EAAMkT,EAAQlT,IAMlB,GAAY,QAARA,EAAe,CACjB,IAAI05M,EAAYj2M,SAASsoD,iBAAiB,qCAK1CllD,MAAM1G,UAAUoK,QAAQ7J,KAAKg5M,GAAW,SAAUvxJ,IASL,IAFhBA,EAAK06H,aAAa,gBAEpB31J,QAAQ,OAGjCzpB,SAASggK,KAAK1xI,YAAYo2B,GAC1BA,EAAKnrB,aAAa,SAAU,IAC9B,GACF,CAEA,IAAI28K,EAAgBzmM,EAAQymM,eAAiBJ,GAS7C,IACIrjL,EAkBA0jL,EAnBAC,EAAW,CAAC,EAEZC,EAAiB,GAGnB5jL,EAAYhjB,EAAQgjB,WAAazyB,SAASggK,KAC1C58J,MAAM1G,UAAUoK,QAAQ7J,KAExB+C,SAASsoD,iBAAiB,wBAA2B/rD,EAAM,QAAS,SAAUmoD,GAG5E,IAFA,IAAI4xJ,EAAS5xJ,EAAK06H,aAAa,gBAAgBj/K,MAAM,KAE5ClE,EAAI,EAAGA,EAAIq6M,EAAOp6M,OAAQD,IACjCm6M,EAASE,EAAOr6M,KAAM,EAGxBo6M,EAAez1M,KAAK8jD,EACtB,IAiBA,IAAI6xJ,ECjfmBzsL,EDkfnB0sL,EAAoB,CAACvpM,IClfF6c,ED4fT,SAAUutD,GACtBk/H,EAAahM,OAAOlzH,EACtB,EC7fI,SAAUr2D,GACXA,EAAQrH,OACRqH,EAAUA,EAAQ25E,SACrB7wE,EAAS9I,EACZ,ID0fOy1L,EChhBD,SAAqB//L,GAC3B,IAAIxa,EAASo3M,GAAO58L,GAEpB,OAAO,SAAUsK,EAAS/hB,EAAOk8E,EAAUrxD,GAG1C,IAFA,IAAIs5J,EAAS,GAEJnnL,EAAI,EAAGA,EAAIC,EAAQD,IAC3BmnL,GAAU1sK,EAAWza,GAAG+kB,EAAS/hB,EAAOk8E,EAAUrxD,IAAa,GAEhE,OAAOs5J,CACR,CACD,CDqgBqBszB,CA1BM,CAAChB,GAAQG,IA0Be1uM,OAAO+uM,EAAeM,IAMrEL,EAAU,SAAgBQ,EAAUC,EAAYhE,EAAOiE,GACrDN,EAAe3D,EALJ,SAAgBvzJ,GACpB45G,GAAUy7C,GAAQr1J,GAASo3J,EACpC,CAaEK,CAAOH,EAAWA,EAAW,IAAMC,EAAWv3J,OAAS,IAAMu3J,EAAWv3J,QAEpEw3J,IACFjvJ,EAAMwuJ,SAASQ,EAAWx1M,OAAQ,EAEtC,EAGF,IAAIwmD,EAAQ,CACVrrD,IAAKA,EACLq2M,MAAO,IAAIX,GAAW,CACpB11M,IAAKA,EACLk2B,UAAWA,EACXigL,MAAOjjM,EAAQijM,MACfF,OAAQ/iM,EAAQ+iM,OAChBF,QAAS7iM,EAAQ6iM,QACjBD,eAAgB5iM,EAAQ4iM,iBAE1BK,MAAOjjM,EAAQijM,MACf0D,SAAUA,EACVW,WAAY,CAAC,EACbxM,OAAQ4L,GAGV,OADAvuJ,EAAMgrJ,MAAMl2E,QAAQ25E,GACbzuJ,CACT,EExjBA,IAAIovJ,GAAiB,SAAwBpvJ,EAAOgvJ,EAAYK,GAC9D,IAAI9sI,EAAYviB,EAAMrrD,IAAM,IAAMq6M,EAAWx1M,MAO5B,IAAhB61M,QAIwDv3M,IAAhCkoD,EAAMmvJ,WAAW5sI,KACxCviB,EAAMmvJ,WAAW5sI,GAAaysI,EAAWv3J,OAE7C,EC3BA,IAAI63J,GAAe,CACjBryG,wBAAyB,EACzBC,YAAa,EACbC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTtmD,KAAM,EACNumD,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXE,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjB+wG,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBxyJ,WAAY,EACZk2B,WAAY,EACZhoB,QAAS,EACTszC,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACN4wG,gBAAiB,EAEjB3wG,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfnsB,YAAa,GC/Cf,SAAS2mH,GAAQliM,GACf,IAAIooD,EAAQ7qD,OAAOqB,OAAO,MAC1B,OAAO,SAAUkF,GAEf,YADmB5D,IAAfkoD,EAAMtkD,KAAoBskD,EAAMtkD,GAAO9D,EAAG8D,IACvCskD,EAAMtkD,EACf,CACF,CCFA,IAEIk0M,GAAiB,aACjBC,GAAiB,8BAEjBC,GAAmB,SAA0B5zH,GAC/C,OAAkC,KAA3BA,EAASj5E,WAAW,EAC7B,EAEI8sM,GAAqB,SAA4Bl6M,GACnD,OAAgB,MAATA,GAAkC,mBAAVA,CACjC,EAEIm6M,GAAkClW,IAAQ,SAAU3gB,GACtD,OAAO22B,GAAiB32B,GAAaA,EAAYA,EAAU5uK,QAAQqlM,GAAgB,OAAOh4J,aAC5F,IAEIq4J,GAAoB,SAA2Bt7M,EAAKkB,GACtD,OAAQlB,GACN,IAAK,YACL,IAAK,gBAED,GAAqB,kBAAVkB,EACT,OAAOA,EAAM0U,QAAQslM,IAAgB,SAAUthM,EAAO+1B,EAAIuE,GAMxD,OALAwmI,GAAS,CACP71K,KAAM8qC,EACNmT,OAAQ5O,EACR/sC,KAAMuzK,IAED/qI,CACT,IAKR,OAAsB,IAAlB4rK,GAASv7M,IAAem7M,GAAiBn7M,IAAyB,kBAAVkB,GAAgC,IAAVA,EAI3EA,EAHEA,EAAQ,IAInB,EAgCA,SAASs6M,GAAoBC,EAAajB,EAAYkB,GACpD,GAAqB,MAAjBA,EACF,MAAO,GAGT,QAAuCv4M,IAAnCu4M,EAAcC,iBAKhB,OAAOD,EAGT,cAAeA,GACb,IAAK,UAED,MAAO,GAGX,IAAK,SAED,GAA2B,IAAvBA,EAAc5sL,KAMhB,OALA4rJ,GAAS,CACP71K,KAAM62M,EAAc72M,KACpBi+C,OAAQ44J,EAAc54J,OACtB37C,KAAMuzK,IAEDghC,EAAc72M,KAGvB,QAA6B1B,IAAzBu4M,EAAc54J,OAAsB,CACtC,IAAI37C,EAAOu0M,EAAcv0M,KAEzB,QAAahE,IAATgE,EAGF,UAAgBhE,IAATgE,GACLuzK,GAAS,CACP71K,KAAMsC,EAAKtC,KACXi+C,OAAQ37C,EAAK27C,OACb37C,KAAMuzK,IAERvzK,EAAOA,EAAKA,KAUhB,OANau0M,EAAc54J,OAAS,GAOtC,CAEA,OA2CR,SAAgC24J,EAAajB,EAAYr7M,GACvD,IAAIwqD,EAAS,GAEb,GAAI9iD,MAAMC,QAAQ3H,GAChB,IAAK,IAAIO,EAAI,EAAGA,EAAIP,EAAIQ,OAAQD,IAC9BiqD,GAAU6xJ,GAAoBC,EAAajB,EAAYr7M,EAAIO,IAAM,SAGnE,IAAK,IAAIy/F,KAAQhgG,EAAK,CACpB,IAAI+B,EAAQ/B,EAAIggG,GAEhB,GAAqB,kBAAVj+F,EACS,MAAds5M,QAA4Cr3M,IAAtBq3M,EAAWt5M,GACnCyoD,GAAUw1C,EAAO,IAAMq7G,EAAWt5M,GAAS,IAClCk6M,GAAmBl6M,KAC5ByoD,GAAU0xJ,GAAiBl8G,GAAQ,IAAMm8G,GAAkBn8G,EAAMj+F,GAAS,UAO5E,IAAI2F,MAAMC,QAAQ5F,IAA8B,kBAAbA,EAAM,IAAkC,MAAds5M,QAA+Cr3M,IAAzBq3M,EAAWt5M,EAAM,IAM7F,CACL,IAAI06M,EAAeJ,GAAoBC,EAAajB,EAAYt5M,GAEhE,OAAQi+F,GACN,IAAK,YACL,IAAK,gBAEDx1C,GAAU0xJ,GAAiBl8G,GAAQ,IAAMy8G,EAAe,IACxD,MAGJ,QAMIjyJ,GAAUw1C,EAAO,IAAMy8G,EAAe,IAG9C,MAzBE,IAAK,IAAIpsM,EAAK,EAAGA,EAAKtO,EAAMvB,OAAQ6P,IAC9B4rM,GAAmBl6M,EAAMsO,MAC3Bm6C,GAAU0xJ,GAAiBl8G,GAAQ,IAAMm8G,GAAkBn8G,EAAMj+F,EAAMsO,IAAO,IAyBxF,CAGF,OAAOm6C,CACT,CAjGekyJ,CAAuBJ,EAAajB,EAAYkB,GAG3D,IAAK,WAED,QAAoBv4M,IAAhBs4M,EAA2B,CAC7B,IAAIK,EAAiBphC,GACjB12K,EAAS03M,EAAcD,GAE3B,OADA/gC,GAASohC,EACFN,GAAoBC,EAAajB,EAAYx2M,EACtD,EAyBN,GAAkB,MAAdw2M,EACF,OAAOkB,EAGT,IAAIK,EAASvB,EAAWkB,GACxB,YAAkBv4M,IAAX44M,EAAuBA,EAASL,CACzC,CA0DA,IASIhhC,GATAshC,GAAe,iCAUnB,IAAIC,GAAkB,SAAyBtpM,EAAM6nM,EAAYiB,GAC/D,GAAoB,IAAhB9oM,EAAKhT,QAAmC,kBAAZgT,EAAK,IAA+B,OAAZA,EAAK,SAAkCxP,IAAnBwP,EAAK,GAAGmwC,OAClF,OAAOnwC,EAAK,GAGd,IAAIupM,GAAa,EACbp5J,EAAS,GACb43H,QAASv3K,EACT,IAAIg5M,EAAUxpM,EAAK,GAEJ,MAAXwpM,QAAmCh5M,IAAhBg5M,EAAQC,KAC7BF,GAAa,EACbp5J,GAAU04J,GAAoBC,EAAajB,EAAY2B,IAMvDr5J,GAAUq5J,EAAQ,GAIpB,IAAK,IAAIz8M,EAAI,EAAGA,EAAIiT,EAAKhT,OAAQD,IAC/BojD,GAAU04J,GAAoBC,EAAajB,EAAY7nM,EAAKjT,IAExDw8M,IAKFp5J,GAAUq5J,EAAQz8M,IActBs8M,GAAat1K,UAAY,EAIzB,IAHA,IACI9sB,EADAyiM,EAAiB,GAG0B,QAAvCziM,EAAQoiM,GAAa91M,KAAK48C,KAChCu5J,GAAkB,IAClBziM,EAAM,GAGR,IAAI/U,EClSN,SAAiB64B,GAYf,IANA,IAEIlzB,EAFAgL,EAAI,EAGJ9V,EAAI,EACJ6gB,EAAMmd,EAAI/9B,OAEP4gB,GAAO,IAAK7gB,EAAG6gB,GAAO,EAE3B/V,EAEe,YAAV,OAHLA,EAAwB,IAApBkzB,EAAIpvB,WAAW5O,IAAmC,IAAtBg+B,EAAIpvB,aAAa5O,KAAc,GAA2B,IAAtBg+B,EAAIpvB,aAAa5O,KAAc,IAA4B,IAAtBg+B,EAAIpvB,aAAa5O,KAAc,MAG9F,OAAZ8K,IAAM,KAAgB,IAIpDgL,EAEe,YAAV,OALLhL,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJgL,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQ+K,GACN,KAAK,EACH/K,IAA8B,IAAxBkoB,EAAIpvB,WAAW5O,EAAI,KAAc,GAEzC,KAAK,EACH8V,IAA8B,IAAxBkoB,EAAIpvB,WAAW5O,EAAI,KAAc,EAEzC,KAAK,EAEH8V,EAEe,YAAV,OAHLA,GAAyB,IAApBkoB,EAAIpvB,WAAW5O,MAGsB,OAAZ8V,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAG7S,SAAS,GACzC,CDiPa25M,CAAWx5J,GAAUu5J,EAehC,MAAO,CACLx3M,KAAMA,EACNi+C,OAAQA,EACR37C,KAAMuzK,GAEV,EEnTIrrD,KAAqBhyB,EAA+B,oBAAIA,EAA+B,mBACvFk/G,GAA2CltF,IAL5B,SAAsBxtH,GACvC,OAAOA,GACT,ECOIqjJ,IDHuC71B,IAAsBhyB,EAAAA,gBCGpD,CAAC,EAAE58F,gBAEZ+7M,GAAqCn/G,EAAAA,cAMlB,qBAAhBo/G,YAA6ChD,GAAY,CAC9Dz5M,IAAK,QACF,MAMew8M,GAAoBn/D,SAAxC,IAKIq/D,GAAmB,SAA0B5+L,GAE/C,OAAoB6/H,EAAAA,EAAAA,aAAW,SAAUl+I,EAAOs/F,GAE9C,IAAI1zC,GAAQ8jE,EAAAA,EAAAA,YAAWqtF,IACvB,OAAO1+L,EAAKre,EAAO4rD,EAAO0zC,EAC5B,GACF,EA0BA,IAAI49G,GAA8Bt/G,EAAAA,cAAoB,CAAC,GA6DvD,IA2CIu/G,GAAe,qCA2BfC,GAAY,SAAmBh9G,GACjC,IAAIx0C,EAAQw0C,EAAKx0C,MACbgvJ,EAAax6G,EAAKw6G,WAClBK,EAAc76G,EAAK66G,YAMvB,OALAD,GAAepvJ,EAAOgvJ,EAAYK,GAClC6B,IAAyC,WACvC,ON9Ke,SAAsBlxJ,EAAOgvJ,EAAYK,GAC1DD,GAAepvJ,EAAOgvJ,EAAYK,GAClC,IAAI9sI,EAAYviB,EAAMrrD,IAAM,IAAMq6M,EAAWx1M,KAE7C,QAAwC1B,IAApCkoD,EAAMwuJ,SAASQ,EAAWx1M,MAAqB,CACjD,IAAI2uF,EAAU6mH,EAEd,GACEhvJ,EAAM2iJ,OAAOqM,IAAe7mH,EAAU,IAAM5lB,EAAY,GAAI4lB,EAASnoC,EAAMgrJ,OAAO,GAElF7iH,EAAUA,EAAQrsF,gBACChE,IAAZqwF,EACX,CACF,CMiKWspH,CAAazxJ,EAAOgvJ,EAAYK,EACzC,IAEO,IACT,EAEIqC,GAAyBL,IAAiB,SAAUj9M,EAAO4rD,EAAO0zC,GACpE,IAAIi+G,EAAUv9M,EAAMklL,IAIG,kBAAZq4B,QAAsD75M,IAA9BkoD,EAAMmvJ,WAAWwC,KAClDA,EAAU3xJ,EAAMmvJ,WAAWwC,IAG7B,IAAIC,EAAmBx9M,EAAMm9M,IACzBM,EAAmB,CAACF,GACpBpvI,EAAY,GAEe,kBAApBnuE,EAAMmuE,UACfA,EN7NJ,SAA6B4sI,EAAY0C,EAAkB/3D,GACzD,IAAIg4D,EAAe,GAQnB,OAPAh4D,EAAWvhJ,MAAM,KAAK2G,SAAQ,SAAUqjE,QACRzqE,IAA1Bq3M,EAAW5sI,GACbsvI,EAAiB74M,KAAKm2M,EAAW5sI,GAAa,KAE9CuvI,GAAgBvvI,EAAY,GAEhC,IACOuvI,CACT,CMmNgBC,CAAoB/xJ,EAAMmvJ,WAAY0C,EAAkBz9M,EAAMmuE,WAC9C,MAAnBnuE,EAAMmuE,YACfA,EAAYnuE,EAAMmuE,UAAY,KAGhC,IAAIysI,EAAa4B,GAAgBiB,OAAkB/5M,EAAWk6F,EAAAA,WAAiBs/G,KAU/E/uI,GAAaviB,EAAMrrD,IAAM,IAAMq6M,EAAWx1M,KAC1C,IAAI0xI,EAAW,CAAC,EAEhB,IAAK,IAAIv2I,KAAOP,EACVylJ,GAAOxkJ,KAAKjB,EAAOO,IAAgB,QAARA,GAAiBA,IAAQ48M,KACtDrmE,EAASv2I,GAAOP,EAAMO,IAM1B,OAFAu2I,EAASx3C,IAAMA,EACfw3C,EAAS3oE,UAAYA,EACDyvB,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBw/G,GAAW,CACxGxxJ,MAAOA,EACPgvJ,WAAYA,EACZK,YAAyC,kBAArBuC,IACL5/G,EAAAA,cAAoB4/G,EAAkB1mE,GACzD,IAMA,IAAI8mE,GAAYN,GCnHZrgE,GAAM,SAAa93I,EAAMnF,GAC3B,IAAIkT,EAAOrS,UAEX,GAAa,MAATb,IAAkBylJ,GAAOxkJ,KAAKjB,EAAO,OAEvC,OAAO49F,EAAAA,cAAoB95F,WAAMJ,EAAWwP,GAG9C,IAAI2qM,EAAa3qM,EAAKhT,OAClB49M,EAAwB,IAAI12M,MAAMy2M,GACtCC,EAAsB,GAAKR,GAC3BQ,EAAsB,GDgBC,SAA4B34M,EAAMnF,GAMzD,IAAI82I,EAAW,CAAC,EAEhB,IAAK,IAAIv2I,KAAOP,EACVylJ,GAAOxkJ,KAAKjB,EAAOO,KACrBu2I,EAASv2I,GAAOP,EAAMO,IAY1B,OARAu2I,EAASqmE,IAAgBh4M,EAQlB2xI,CACT,CCvC6BinE,CAAmB54M,EAAMnF,GAEpD,IAAK,IAAIC,EAAI,EAAGA,EAAI49M,EAAY59M,IAC9B69M,EAAsB79M,GAAKiT,EAAKjT,GAIlC,OAAO29F,EAAAA,cAAoB95F,MAAM,KAAMg6M,EACzC,EAgHA,SAAS54B,KACP,IAAK,IAAIzlF,EAAO5+F,UAAUX,OAAQgT,EAAO,IAAI9L,MAAMq4F,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExsF,EAAKwsF,GAAQ7+F,UAAU6+F,GAGzB,OAAO88G,GAAgBtpM,EACzB,CCpRA,MAGMlE,GAAMpI,KAAKoI,IACXD,GAAMnI,KAAKmI,IACX+V,GAAQle,KAAKke,MACb5V,GAAQtI,KAAKsI,MACb8uM,GAAel3L,IAAK,CACxBmY,EAAGnY,EACH8gB,EAAG9gB,IAwGL,SAASm3L,GAAiBjpJ,GACxB,MAAM,EACJ/1B,EAAC,EACD2I,EAAC,MACDnY,EAAK,OACLtY,GACE69C,EACJ,MAAO,CACLvlC,QACAtY,SACAF,IAAK2wB,EACL1iB,KAAM+Z,EACN6jB,MAAO7jB,EAAIxP,EACX23B,OAAQxf,EAAIzwB,EACZ8nB,IACA2I,IAEJ,CCvIA,SAASs2K,GAAYx1J,GACnB,OAAI62G,GAAO72G,IACDA,EAAKw9C,UAAY,IAAI1iD,cAKxB,WACT,CACA,SAAS26J,GAAUz1J,GACjB,IAAI01J,EACJ,OAAgB,MAAR11J,GAA8D,OAA7C01J,EAAsB11J,EAAK6+C,oBAAyB,EAAS62G,EAAoBv/F,cAAgBl4G,MAC5H,CACA,SAAS03M,GAAmB31J,GAC1B,IAAI03C,EACJ,OAA0F,OAAlFA,GAAQm/D,GAAO72G,GAAQA,EAAK6+C,cAAgB7+C,EAAK1kD,WAAa2C,OAAO3C,eAAoB,EAASo8F,EAAKn5F,eACjH,CACA,SAASs4J,GAAO99J,GACd,OAAOA,aAAiBuvL,MAAQvvL,aAAiB08M,GAAU18M,GAAOuvL,IACpE,CACA,SAASnuD,GAAUphI,GACjB,OAAOA,aAAiB2gG,SAAW3gG,aAAiB08M,GAAU18M,GAAO2gG,OACvE,CACA,SAASk8G,GAAc78M,GACrB,OAAOA,aAAiBu7M,aAAev7M,aAAiB08M,GAAU18M,GAAOu7M,WAC3E,CACA,SAASuB,GAAa98M,GAEpB,MAA0B,qBAAf+8M,aAGJ/8M,aAAiB+8M,YAAc/8M,aAAiB08M,GAAU18M,GAAO+8M,WAC1E,CACA,SAASC,GAAkBz5L,GACzB,MAAM,SACJ08D,EAAQ,UACRg9H,EAAS,UACTC,EAAS,QACT7yM,GACEg2I,GAAiB98H,GACrB,MAAO,kCAAkCrX,KAAK+zE,EAAWi9H,EAAYD,KAAe,CAAC,SAAU,YAAYl5G,SAAS15F,EACtH,CAqBA,SAAS8yM,KACP,QAAmB,qBAARC,MAAwBA,IAAIC,WAChCD,IAAIC,SAAS,0BAA2B,OACjD,CACA,SAASC,GAAsBr2J,GAC7B,MAAO,CAAC,OAAQ,OAAQ,aAAa88C,SAAS04G,GAAYx1J,GAC5D,CACA,SAASo5F,GAAiB98H,GACxB,OAAOm5L,GAAUn5L,GAAS88H,iBAAiB98H,EAC7C,CAaA,SAASg6L,GAAct2J,GACrB,GAA0B,SAAtBw1J,GAAYx1J,GACd,OAAOA,EAET,MAAMnkD,EAENmkD,EAAKu2J,cAELv2J,EAAKF,YAEL+1J,GAAa71J,IAASA,EAAK28G,MAE3Bg5C,GAAmB31J,GACnB,OAAO61J,GAAah6M,GAAUA,EAAO8gK,KAAO9gK,CAC9C,CACA,SAAS26M,GAA2Bx2J,GAClC,MAAMF,EAAaw2J,GAAct2J,GACjC,OAAIq2J,GAAsBv2J,GACjBE,EAAK6+C,cAAgB7+C,EAAK6+C,cAAc/pE,KAAOkrB,EAAKlrB,KAEzD8gL,GAAc91J,IAAei2J,GAAkBj2J,GAC1CA,EAEF02J,GAA2B12J,EACpC,CACA,SAAS22J,GAAqBz2J,EAAMiD,EAAMyzJ,GACxC,IAAIC,OACS,IAAT1zJ,IACFA,EAAO,SAEe,IAApByzJ,IACFA,GAAkB,GAEpB,MAAME,EAAqBJ,GAA2Bx2J,GAChD62J,EAASD,KAAuE,OAA9CD,EAAuB32J,EAAK6+C,oBAAyB,EAAS83G,EAAqB7hL,MACrHgiL,EAAMrB,GAAUmB,GACtB,OAAIC,EACK5zJ,EAAKxgD,OAAOq0M,EAAKA,EAAIC,gBAAkB,GAAIhB,GAAkBa,GAAsBA,EAAqB,GAAIE,EAAIE,cAAgBN,EAAkBD,GAAqBK,EAAIE,cAAgB,IAE7L/zJ,EAAKxgD,OAAOm0M,EAAoBH,GAAqBG,EAAoB,GAAIF,GACtF,CCvHA,SAASO,GAAiB36L,GACxB,MAAMkgK,EAAMpjC,GAAiB98H,GAG7B,IAAIyK,EAAQ+xH,WAAW0jC,EAAIz1J,QAAU,EACjCtY,EAASqqI,WAAW0jC,EAAI/tK,SAAW,EACvC,MAAMyoM,EAAYtB,GAAct5L,GAC1BgkC,EAAc42J,EAAY56L,EAAQgkC,YAAcv5B,EAChDssD,EAAe6jI,EAAY56L,EAAQ+2D,aAAe5kE,EAClD0oM,EAAiB/6L,GAAM2K,KAAWu5B,GAAelkC,GAAM3N,KAAY4kE,EAKzE,OAJI8jI,IACFpwL,EAAQu5B,EACR7xC,EAAS4kE,GAEJ,CACLtsD,QACAtY,SACA2oM,EAAGD,EAEP,CAEA,SAASE,GAAc/6L,GACrB,OAAQ69G,GAAU79G,GAAoCA,EAAzBA,EAAQg7L,cACvC,CAEA,SAASC,GAASj7L,GAChB,MAAMk7L,EAAaH,GAAc/6L,GACjC,IAAKs5L,GAAc4B,GACjB,OAAOlC,GAAa,GAEtB,MAAMhpJ,EAAOkrJ,EAAWlpM,yBAClB,MACJyY,EAAK,OACLtY,EAAM,EACN2oM,GACEH,GAAiBO,GACrB,IAAIjhL,GAAK6gL,EAAIh7L,GAAMkwC,EAAKvlC,OAASulC,EAAKvlC,OAASA,EAC3CmY,GAAKk4K,EAAIh7L,GAAMkwC,EAAK79C,QAAU69C,EAAK79C,QAAUA,EAUjD,OANK8nB,GAAM7pB,OAAOmlJ,SAASt7H,KACzBA,EAAI,GAED2I,GAAMxyB,OAAOmlJ,SAAS3yH,KACzBA,EAAI,GAEC,CACL3I,IACA2I,IAEJ,CAEA,MAAMu4K,GAAyBnC,GAAa,GAC5C,SAASoC,GAAiBp7L,GACxB,MAAMw6L,EAAMrB,GAAUn5L,GACtB,OAAK45L,MAAeY,EAAIC,eAGjB,CACLxgL,EAAGugL,EAAIC,eAAevjE,WACtBt0G,EAAG43K,EAAIC,eAAexjE,WAJfkkE,EAMX,CAWA,SAASnpM,GAAsBgO,EAASq7L,EAAcC,EAAiBC,QAChD,IAAjBF,IACFA,GAAe,QAEO,IAApBC,IACFA,GAAkB,GAEpB,MAAME,EAAax7L,EAAQhO,wBACrBkpM,EAAaH,GAAc/6L,GACjC,IAAImuB,EAAQ6qK,GAAa,GACrBqC,IACEE,EACE19E,GAAU09E,KACZptK,EAAQ8sK,GAASM,IAGnBptK,EAAQ8sK,GAASj7L,IAGrB,MAAMy7L,EA7BR,SAAgCz7L,EAAS07L,EAASC,GAIhD,YAHgB,IAAZD,IACFA,GAAU,MAEPC,GAAwBD,GAAWC,IAAyBxC,GAAUn5L,KAGpE07L,CACT,CAqBwBE,CAAuBV,EAAYI,EAAiBC,GAAgBH,GAAiBF,GAAclC,GAAa,GACtI,IAAI/+K,GAAKuhL,EAAWt7L,KAAOu7L,EAAcxhL,GAAKkU,EAAMlU,EAChD2I,GAAK44K,EAAWvpM,IAAMwpM,EAAc74K,GAAKuL,EAAMvL,EAC/CnY,EAAQ+wL,EAAW/wL,MAAQ0jB,EAAMlU,EACjC9nB,EAASqpM,EAAWrpM,OAASg8B,EAAMvL,EACvC,GAAIs4K,EAAY,CACd,MAAMV,EAAMrB,GAAU+B,GAChBW,EAAYN,GAAgB19E,GAAU09E,GAAgBpC,GAAUoC,GAAgBA,EACtF,IAAIO,EAAatB,EACbuB,EAAgBD,EAAWpB,aAC/B,KAAOqB,GAAiBR,GAAgBM,IAAcC,GAAY,CAChE,MAAME,EAAcf,GAASc,GACvBE,EAAaF,EAAc/pM,wBAC3BkuK,EAAMpjC,GAAiBi/D,GACvB77L,EAAO+7L,EAAW/7L,MAAQ67L,EAAcG,WAAa1/D,WAAW0jC,EAAIi8B,cAAgBH,EAAY/hL,EAChGhoB,EAAMgqM,EAAWhqM,KAAO8pM,EAAcK,UAAY5/D,WAAW0jC,EAAIm8B,aAAeL,EAAYp5K,EAClG3I,GAAK+hL,EAAY/hL,EACjB2I,GAAKo5K,EAAYp5K,EACjBnY,GAASuxL,EAAY/hL,EACrB9nB,GAAU6pM,EAAYp5K,EACtB3I,GAAK/Z,EACL0iB,GAAK3wB,EACL6pM,EAAa3C,GAAU4C,GACvBA,EAAgBD,EAAWpB,YAC7B,CACF,CACA,OAAOzB,GAAiB,CACtBxuL,QACAtY,SACA8nB,IACA2I,KAEJ,CA8ZA,SAAS05K,GAAWnI,EAAWoI,EAAU9rM,EAAQhC,QAC/B,IAAZA,IACFA,EAAU,CAAC,GAEb,MAAM,eACJ+tM,GAAiB,EAAI,eACrBC,GAAiB,EAAI,cACrBC,EAA0C,oBAAnBr9D,eAA6B,YACpDs9D,EAA8C,oBAAzBC,qBAAmC,eACxDC,GAAiB,GACfpuM,EACEquM,EAAc/B,GAAc5G,GAC5B4I,EAAYP,GAAkBC,EAAiB,IAAKK,EAAc3C,GAAqB2C,GAAe,MAAQ3C,GAAqBoC,IAAa,GACtJQ,EAAUj3M,SAAQk3M,IAChBR,GAAkBQ,EAAS/vL,iBAAiB,SAAUxc,EAAQ,CAC5DmsG,SAAS,IAEX6/F,GAAkBO,EAAS/vL,iBAAiB,SAAUxc,EAAO,IAE/D,MAAMwsM,EAAYH,GAAeH,EAvGnC,SAAqB38L,EAASk9L,GAC5B,IACIC,EADAC,EAAK,KAET,MAAMzkM,EAAO0gM,GAAmBr5L,GAChC,SAASq9L,IACP,IAAIC,EACJ1iM,aAAauiM,GACC,OAAbG,EAAMF,IAAeE,EAAI/xE,aAC1B6xE,EAAK,IACP,CAgEA,OA/DA,SAASziE,EAAQ4iE,EAAM/5I,QACR,IAAT+5I,IACFA,GAAO,QAES,IAAd/5I,IACFA,EAAY,GAEd65I,IACA,MAAM,KACJn9L,EAAI,IACJjO,EAAG,MACHwY,EAAK,OACLtY,GACE6N,EAAQhO,wBAIZ,GAHKurM,GACHL,KAEGzyL,IAAUtY,EACb,OAEF,MAKM1D,EAAU,CACd+uM,YANetzM,GAAM+H,GAIQ,OAHZ/H,GAAMyO,EAAKikI,aAAe18H,EAAOuK,IAGC,OAFjCvgB,GAAMyO,EAAKkkI,cAAgB5qI,EAAME,IAEuB,OAD1DjI,GAAMgW,GACyE,KAG/FsjD,UAAWz5D,GAAI,EAAGC,GAAI,EAAGw5D,KAAe,GAE1C,IAAIi6I,GAAgB,EACpB,SAASC,EAAcr5M,GACrB,MAAMs5M,EAAQt5M,EAAQ,GAAGu5M,kBACzB,GAAID,IAAUn6I,EAAW,CACvB,IAAKi6I,EACH,OAAO9iE,IAEJgjE,EAOHhjE,GAAQ,EAAOgjE,GAJfR,EAAY/qM,YAAW,KACrBuoI,GAAQ,EAAO,KAAK,GACnB,IAIP,CACA8iE,GAAgB,CAClB,CAIA,IACEL,EAAK,IAAIR,qBAAqBc,EAAe,IACxCjvM,EAEHkK,KAAMA,EAAK4pF,eAEf,CAAE,MAAO7gG,IACP07M,EAAK,IAAIR,qBAAqBc,EAAejvM,EAC/C,CACA2uM,EAAGryE,QAAQ/qH,EACb,CACA26H,EAAQ,GACD0iE,CACT,CA6BiDQ,CAAYf,EAAarsM,GAAU,KAClF,IAsBI61B,EAtBAw3K,GAAkB,EAClBC,EAAiB,KACjBrB,IACFqB,EAAiB,IAAI1+D,gBAAejkD,IAClC,IAAK4iH,GAAc5iH,EACf4iH,GAAcA,EAAWjjN,SAAW+hN,GAAeiB,IAGrDA,EAAe7+D,UAAUq9D,GACzB7pM,qBAAqBorM,GACrBA,EAAiBttM,uBAAsB,KACrC,IAAIytM,EACkC,OAArCA,EAAkBF,IAA2BE,EAAgBlzE,QAAQwxE,EAAS,KAGnF9rM,GAAQ,IAENqsM,IAAgBD,GAClBkB,EAAehzE,QAAQ+xE,GAEzBiB,EAAehzE,QAAQwxE,IAGzB,IAAI2B,EAAcrB,EAAiB7qM,GAAsBmiM,GAAa,KAatE,OAZI0I,GAGJ,SAASsB,IACP,MAAMC,EAAcpsM,GAAsBmiM,IACtC+J,GAAgBE,EAAYnkL,IAAMikL,EAAYjkL,GAAKmkL,EAAYx7K,IAAMs7K,EAAYt7K,GAAKw7K,EAAY3zL,QAAUyzL,EAAYzzL,OAAS2zL,EAAYjsM,SAAW+rM,EAAY/rM,QACtK1B,IAEFytM,EAAcE,EACd93K,EAAU91B,sBAAsB2tM,EAClC,CATEA,GAUF1tM,IACO,KACL,IAAI4tM,EACJtB,EAAUj3M,SAAQk3M,IAChBR,GAAkBQ,EAASlvL,oBAAoB,SAAUrd,GACzDgsM,GAAkBO,EAASlvL,oBAAoB,SAAUrd,EAAO,IAErD,MAAbwsM,GAAqBA,IACkB,OAAtCoB,EAAmBN,IAA2BM,EAAiB9yE,aAChEwyE,EAAiB,KACblB,GACFnqM,qBAAqB4zB,EACvB,CAEJ,CCjmBA,SAFa6zD,EAAAA,otJCFmBz4F,GAAG4M,qwCL2RnB,WACd,IAAIgwM,EAAap+B,GAAIphL,WAAM,EAAQjD,WAC/BuE,EAAO,aAAek+M,EAAWl+M,KAErC,MAAO,CACLA,KAAMA,EACNi+C,OAAQ,cAAgBj+C,EAAO,IAAMk+M,EAAWjgK,OAAS,IACzDh0B,KAAM,EACNnsB,SAAU,WACR,MAAO,QAAUkD,KAAKhB,KAAO,IAAMgB,KAAKi9C,OAAS,OACnD,EAEJ,OKvSgC38C,kEACvB4M,KAAMA,GAAI5M,GAAEvD,MAAM,OAAKpC,OAAO68B,OAAO78B,OAAOjB,iBAAiB4G,GAAG,CACrEi2M,IAAK,CACHl7M,MAAOV,OAAO68B,OAAOtqB,6xMCHvBiwM,GAAYnuM,OAAOjG,OACnB,SAAkB1N,GACd,MAAwB,kBAAVA,GAAsBA,IAAUA,CAClD,EAUJ,SAAS+hN,GAAeC,EAAWC,GAC/B,GAAID,EAAUvjN,SAAWwjN,EAAWxjN,OAChC,OAAO,EAEX,IAAK,IAAID,EAAI,EAAGA,EAAIwjN,EAAUvjN,OAAQD,IAClC,GAdSg9B,EAcIwmL,EAAUxjN,GAdPmqD,EAcWs5J,EAAWzjN,KAbtCg9B,IAAUmtB,GAGVm5J,GAAUtmL,IAAUsmL,GAAUn5J,IAW1B,OAAO,EAfnB,IAAiBntB,EAAOmtB,EAkBpB,OAAO,CACX,4/UAEA,SAAoBu5J,EAAU1a,QACV,IAAZA,IAAsBA,EAAUua,IACpC,IAAI53J,EAAQ,KACZ,SAASg6I,IAEL,IADA,IAAIge,EAAU,GACL7zM,EAAK,EAAGA,EAAKlP,UAAUX,OAAQ6P,IACpC6zM,EAAQ7zM,GAAMlP,UAAUkP,GAE5B,GAAI67C,GAASA,EAAMptC,WAAapY,MAAQ6iM,EAAQ2a,EAASh4J,EAAMrtC,UAC3D,OAAOqtC,EAAMi4J,WAEjB,IAAIA,EAAaF,EAAS7/M,MAAMsC,KAAMw9M,GAMtC,OALAh4J,EAAQ,CACJi4J,WAAYA,EACZtlM,SAAUqlM,EACVplM,SAAUpY,MAEPy9M,CACX,CAIA,OAHAje,EAASrsL,MAAQ,WACbqyC,EAAQ,IACZ,EACOg6I,CACX,ukaC/CA,SAAmBtyL,EAAG5M,GACpB,GAAI,mBAAqBA,GAAK,OAASA,EAAG,MAAM,IAAIjH,UAAU,sDAC9D6T,EAAE5S,UAAYK,OAAOqB,OAAOsE,GAAKA,EAAEhG,UAAW,CAC5Cc,YAAa,CACXC,MAAO6R,EACPhT,UAAU,EACVD,cAAc,KAEdU,OAAOwB,eAAe+Q,EAAG,YAAa,CACxChT,UAAU,IACRoG,GAAK,GAAe4M,EAAG5M,EAC7B,aCTA,SAAsB4M,GACpB,IAAIwC,EAAI,KACR,OAAO,WACL,IAAIpP,EACFkP,EAAI,GAAetC,GACrB,GAAIwC,EAAG,CACL,IAAIpH,EAAI,GAAetI,MAAM5E,YAC7BkF,EAAI4+F,QAAQC,UAAU3vF,EAAG/U,UAAW6N,EACtC,MAAOhI,EAAIkP,EAAE9R,MAAMsC,KAAMvF,WACzB,OAAO,GAA0BuF,KAAMM,EACzC,CACF,4BCdA,SAAyB/C,EAAG4P,GAC1B,KAAM5P,aAAa4P,GAAI,MAAM,IAAI9T,UAAU,oCAC7C,2wQlCKA,SAAsBiH,EAAGoP,EAAGxC,GACnBwC,GAAK,GAAkBpP,EAAEhG,UAAWoV,GAAIxC,GAAK,GAAkB5M,EAAG4M,GAAIvS,OAAOwB,eAAemE,EAAG,YAAa,CACjHpG,UAAU,GAEd,u2cmCeA,IAAIwjN,IAAkC5lE,EAAAA,EAAAA,aAAW,SAAUl+I,EAAOs/F,GAChE,IAAIykH,ErCrBN,SAAyB3jH,GACvB,IAAI4jH,EAAwB5jH,EAAK6jH,kBAC/BA,OAA8C,IAA1BD,EAAmC,GAAKA,EAC5DE,EAAwB9jH,EAAK+jH,kBAC7BA,OAA8C,IAA1BD,GAA2CA,EAC/DE,EAAoBhkH,EAAK0G,aACzBA,OAAqC,IAAtBs9G,EAA+B,KAAOA,EACrDC,EAAkBjkH,EAAKkkH,WACvBC,EAAkBnkH,EAAKokH,WACvBC,EAAgBrkH,EAAK+3E,SACrBusC,EAAqBtkH,EAAKukH,cAC1BC,EAAmBxkH,EAAKykH,YACxBC,EAAkB1kH,EAAK2kH,WACvBC,EAAa5kH,EAAK3+F,MAClBwjN,EAAkB7mH,GAAyBgC,EAAMwB,IAEjDsjH,EAAazmH,IADCqxB,EAAAA,EAAAA,eAA6BpsH,IAApB2gN,EAAgCA,EAAkBJ,GAClC,GACvCkB,EAAkBD,EAAW,GAC7BE,EAAqBF,EAAW,GAEhCG,EAAa5mH,IADEqxB,EAAAA,EAAAA,eAA6BpsH,IAApB6gN,EAAgCA,EAAkBJ,GAClC,GACxCmB,EAAkBD,EAAW,GAC7BE,EAAqBF,EAAW,GAEhCG,EAAa/mH,IADEqxB,EAAAA,EAAAA,eAAwBpsH,IAAfshN,EAA2BA,EAAal+G,GACxB,GACxC2+G,EAAaD,EAAW,GACxBE,EAAgBF,EAAW,GACzBrtC,GAAW34E,EAAAA,EAAAA,cAAY,SAAU/9F,EAAOkkN,GACb,oBAAlBlB,GACTA,EAAchjN,EAAOkkN,GAEvBD,EAAcjkN,EAChB,GAAG,CAACgjN,IACAE,GAAgBnlH,EAAAA,EAAAA,cAAY,SAAU/9F,EAAOkkN,GAC/C,IAAIn/K,EAC8B,oBAAvBk+K,IACTl+K,EAAWk+K,EAAmBjjN,EAAOkkN,IAEvCP,OAAgC1hN,IAAb8iC,EAAyBA,EAAW/kC,EACzD,GAAG,CAACijN,IACAK,GAAavlH,EAAAA,EAAAA,cAAY,WACI,oBAApBslH,GACTA,IAEFS,GAAmB,EACrB,GAAG,CAACT,IACAD,GAAcrlH,EAAAA,EAAAA,cAAY,WACI,oBAArBolH,GACTA,IAEFW,GAAmB,EACrB,GAAG,CAACX,IACAN,OAAiC5gN,IAApB2gN,EAAgCA,EAAkBc,EAC/DX,OAAiC9gN,IAApB6gN,EAAgCA,EAAkBe,EAC/D7jN,OAAuBiC,IAAfshN,EAA2BA,EAAaS,EACpD,OAAOx+E,GAAcA,GAAc,CAAC,EAAGg+E,GAAkB,CAAC,EAAG,CAC3DX,WAAYA,EACZE,WAAYA,EACZrsC,SAAUA,EACVwsC,cAAeA,EACfE,YAAaA,EACbE,WAAYA,EACZtjN,MAAOA,GAEX,CqC3CwBmkN,CAAgB5lN,GACtC,OAAoB49F,EAAAA,cAAoBioH,GAAQ1nH,GAAS,CACvDmB,IAAKA,GACJykH,GACL,IACI+B,GAAuBhC,GCwK3B,SAlMA,SAAiBhQ,GACf,MAAMiS,EAAYpgF,OAAcW,WACzByzC,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvCokF,OAAQJ,EAAUA,UAClBhuE,QAAS,GACTkgF,WAAY,GACZC,KAAM,GACNC,SAAU,GACVC,QAAS,MAEJC,EAAcC,IAAmBv2F,EAAAA,EAAAA,UAAS,IACjD1wB,EAAAA,EAAAA,YAAU,KACUirE,WAChB,IACE2P,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,sBAADoH,OAChB2oM,EAAUA,YAElCp9L,QAAQ45F,IAAI5iF,GACZumL,EAAY,CACVnuE,QAASp4G,EAASzE,KAAK68G,QACvBkgF,WAAYt4L,EAASzE,KAAK+8L,WAC1BC,KAAMv4L,EAASzE,KAAKg9L,KACpB3hI,MAAO52D,EAASzE,KAAKq7D,MACrB6hI,QAASz4L,EAASzE,KAAKk9L,UAEzBnsC,GAAW,GACXqsC,EAAgB,EAClB,CAAE,MAAOzxM,GACPolK,GAAW,GAEPplK,EAAM8Y,UAAsC,MAA1B9Y,EAAM8Y,SAASU,OACnCi4L,EAAgB,GAEhBA,EAAgB,EAEpB,GAGFC,EAAW,GACV,CAACxS,EAAUA,YACd,MAAMzH,EAAeA,CAACvgG,EAAO6oG,KAC3B,MAAMnuK,EAAWslE,EAAM/rG,OAAS+rG,EAAM/rG,OAAO0B,MAAQqqG,EAAMi6B,MAC3DkuE,EAAY,IACPr4C,EACH,CAAC+4C,GAAYnuK,GACb,EAGE6mK,EAAehjC,UACnB3jK,EAAE0uG,iBAEF,IACE4kE,GAAW,GACX,MAAM/wJ,EAAO,CACXyrJ,OAAQo/B,EAAUA,UAClBhuE,QAAS81B,EAAS91B,QAClBkgF,WAAYpqD,EAASoqD,WACrBC,KAAMrqD,EAASqqD,KACf3hI,MAAOs3E,EAASt3E,MAChB6hI,QAASvqD,EAASuqD,SAGpB,GAAqB,IAAjBC,EACF1vM,QAAQ45F,IAAI,uBACN3rB,MAAM,qBAAsB,CAChC2/D,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAGlBvhI,KAAMzsB,KAAKE,UAAUgY,KAEvB+yJ,GAAMC,QAAQ,6BACdvlK,QAAQ45F,IAAI,iBACZ0pE,GAAW,OACN,CACL,MAAMtsJ,QAAiBi3D,MAAM,sBAADx5E,OACJ2oM,EAAUA,WAChC,CACExvD,OAAQ,MACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAUgY,KAIzBvS,QAAQ45F,IAAI,YAAa5iF,GACrBA,EAAS4rG,IACX0iD,GAAMC,QAAQ,6BACdjC,GAAW,KAEXgC,GAAMpnK,MAAM,oBACZolK,GAAW,GAEf,CACF,CAAE,MAAOplK,GACPolK,GAAW,GACXgC,GAAMpnK,MAAM,oBACZ8B,QAAQ9B,MAAM,SAAUA,EAC1B,GAEF,OACEyhK,EAAAA,GAAAA,MAAA,QAAM6E,SAAUmyB,EAAaluH,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIxqK,MAAO,CAAE2pM,UAAW,SAAU1sJ,WAAY,MAAO3hC,MAAO,QAASg4D,SAAA,CAClE,IAAI,4BAGP41F,EAAAA,GAAAA,KAACs8B,GAAc,KACfh7B,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,UAAS/4F,SAAC,aACzB41F,EAAAA,GAAAA,KAAC8wC,GAAM,CACLn8M,GAAG,UACHtE,KAAK,UACLqO,QAASsyM,EACTvvC,YAAY,mBACZ/0K,MACEm6J,EAAS91B,QACL,CAAEC,MAAO61B,EAAS91B,QAASrkI,MAAOm6J,EAAS91B,SAC3C,KAENqyC,SAAWouC,GAAmBla,EAAaka,EAAgB,WAC3DC,gBAAgB,sBAGlBnwC,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,qBAC1B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,WACHtE,KAAK,WACLoxK,YAAY,iBACZ/0K,MAAOm6J,EAASt3E,MAChB6zF,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,aAAY/4F,SAAC,iBAC5B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,aACHtE,KAAK,aACLoxK,YAAY,mBACZ/0K,MAAOm6J,EAASoqD,WAChB7tC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,oBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAM/4F,SAAC,UACtB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,OACHtE,KAAK,OACLoxK,YAAY,OACZ/0K,MAAOm6J,EAASqqD,KAChB9tC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,iBAIvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UAEzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,UAAS/4F,SAAC,cACzB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,UACHtE,KAAK,UACLoxK,YAAY,WACZ/0K,MAAOm6J,EAASuqD,QAChBhuC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,mBAKvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAAS62E,EAAaluH,SAAC,qBAI3D46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAKb,EC4EA,SA/QA,SAAuB20H,GACrB,MAAO/5B,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvC4kD,OAAQo/B,EAAUA,UAClB2S,gBAAiB,GACjBC,cAAe,EACfC,aAAc,EACdC,aAAc,EACdC,eAAgB,EAChBC,aAAc,EACdC,SAAU,MASLX,EAAcC,IAAmBv2F,EAAAA,EAAAA,UAAS,IAEjD1wB,EAAAA,EAAAA,YAAU,KAiCJ00G,EAAUA,WAhCIzpC,WAChB,IACE2P,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,4BAADoH,OACV2oM,EAAUA,YAExCG,EAAYvmL,EAASzE,MACrB,MAAM+9L,EAAY,IAAIhpM,KAAK0P,EAASzE,KAAK89L,UACzC9S,EAAY,CACVwS,gBAAiB/4L,EAASzE,KAAKw9L,gBAC/BC,cAAeh5L,EAASzE,KAAKy9L,cAC7BC,aAAcj5L,EAASzE,KAAK09L,aAC5BC,aAAcl5L,EAASzE,KAAK29L,aAC5BG,SAAUC,EAAU7qD,cAAch4J,MAAM,KAAK,GAC7C0iN,eAAgBn5L,EAASzE,KAAK49L,eAC9BC,aAAcp5L,EAASzE,KAAK69L,eAE9B9sC,GAAW,GACXtjK,QAAQ45F,IAAI,oBACZ+1G,EAAgB,EAClB,CAAE,MAAOzxM,GACPolK,GAAW,GACPplK,EAAM8Y,UAAsC,MAA1B9Y,EAAM8Y,SAASU,QACnC1X,QAAQ45F,IAAI,kBAAmB17F,EAAM8Y,SAASzE,MAC9Co9L,EAAgB,KAEhB3vM,QAAQ9B,MAAM,uBAAwBA,EAAMi9G,SAC5Cw0F,EAAgB,GAEpB,GAIAC,EACF,GACC,CAACxS,EAAUA,YAEd,MAAMzH,EAAeA,CAACvgG,EAAO6oG,KAC3B,IAAInuK,EACJ,GACgB,kBAAdmuK,GACc,iBAAdA,GACc,iBAAdA,GACc,mBAAdA,GACc,iBAAdA,EACA,CACA,IAAIsS,EACJ,OAAQrrD,EAAS6qD,iBACf,IAAK,QACHQ,EAAW,GACX,MACF,IAAK,QACHA,EAAW,EACX,MACF,IAAK,UACHA,EAAW,GACX,MACF,IAAK,WACHA,EAAW,IACX,MACF,QACEA,EAAW,EAGfzgL,EAAWhpB,SAASsuF,EAAM/rG,OAAO0B,OAC7B+kC,EAAWygL,IACbzgL,EAAWygL,EAEf,MACEzgL,EAAWslE,EAAM/rG,OAAS+rG,EAAM/rG,OAAO0B,MAAQqqG,EAAMi6B,MAGvDkuE,EAAY,IACPr4C,EACH,CAAC+4C,GAAYnuK,GACb,EAEE6mK,EAAehjC,UACnB3jK,EAAE0uG,iBACF,MAAMipB,EAAO,IAAIm6B,SAUjB,GATAn6B,EAAKhsG,OAAO,SAAUyhL,EAAUA,WAChCz1E,EAAKhsG,OAAO,kBAAmBupI,EAAS6qD,iBACxCpoF,EAAKhsG,OAAO,gBAAiBupI,EAAS8qD,eACtCroF,EAAKhsG,OAAO,eAAgBupI,EAAS+qD,cACrCtoF,EAAKhsG,OAAO,eAAgBupI,EAASgrD,cACrCvoF,EAAKhsG,OAAO,iBAAkBupI,EAASirD,gBACvCxoF,EAAKhsG,OAAO,eAAgBupI,EAASirD,gBACrCxoF,EAAKhsG,OAAO,WAAYupI,EAASmrD,UAEZ,IAAjBX,EAAoB,CACtBpsC,GAAW,GACXtjK,QAAQ45F,IAAI,sBACZ55F,QAAQ45F,IAAI+tB,GAEZ,IACE,MAAM3wG,QAAiBgsJ,GAAczE,KAAK,2BAExC52C,EACA,CACE0gC,QAAS,CACP,eAAgB,sBAItBroJ,QAAQ45F,IAAI,qBACZ55F,QAAQ45F,IAAI5iF,GACZsuJ,GAAMC,QAAQ,6BACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,SAAUA,GACxBonK,GAAMpnK,MAAM,oBACZolK,GAAW,EACb,CACF,MACE,IACEA,GAAW,GAEX,MAAMtsJ,QAAiBgsJ,GAAcq8B,IAAI,4BAAD5qM,OACV2oM,EAAUA,WACtCz1E,EACA,CACE0gC,QAAS,CACP,eAAgB,sBAItBroJ,QAAQ45F,IAAI,oBACZ55F,QAAQ45F,IAAI5iF,GACZsuJ,GAAMC,QAAQ,6BACdjC,GAAW,EACb,CAAE,MAAOplK,GACPolK,GAAW,GACXgC,GAAMpnK,MAAM,oBACZ8B,QAAQ45F,IAAI17F,EACd,CACF,EAGF,OACEyhK,EAAAA,GAAAA,MAAA,QAAM6E,SAAUmyB,EAAaluH,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIxqK,MAAO,CAAE2pM,UAAW,SAAU1sJ,WAAY,MAAO3hC,MAAO,QAASg4D,SAAA,CAClE,IAAI,2BAGPk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAO/pG,UAAU,eAAcgR,SAAC,8BAG/C41F,EAAAA,GAAAA,KAAA,UACE5vK,KAAK,OACLgpE,UAAU,8BACVqoG,YAAY,mBACZ/0K,MAAOm6J,EAAS6qD,gBAChBtuC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAAmBA,EAAE3G,OAAO0B,OAAO09E,SApKtD,CACtB,oBACA,QACA,QACA,UACA,YAiKyB+mD,KAAI,CAACghF,EAAMjkN,KAC1B8xK,EAAAA,GAAAA,KAAA,UAAoBtzK,MAAOylN,EAAMv/G,SAAS,GAAExoB,SACzC+nI,GADUjkN,WAMnBozK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAO/pG,UAAU,cAAagR,SAAC,oBAG9C41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,SACLgpE,UAAU,aACV1sE,MAAOm6J,EAAS8qD,cAChBvuC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,0BAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAO/pG,UAAU,cAAagR,SAAC,mBAG9C41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,SACLgpE,UAAU,aACV1sE,MAAOm6J,EAAS+qD,aAChBxuC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,sBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAO/pG,UAAU,cAAagR,SAAC,mBAG9C41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,SACLgpE,UAAU,aACV1sE,MAAOm6J,EAASgrD,aAChBzuC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,yBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAO/pG,UAAU,cAAagR,SAAC,qBAG9C41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,SACLgpE,UAAU,aACV1sE,MAAOm6J,EAASirD,eAChB1uC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,wBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAO/pG,UAAU,cAAagR,SAAC,mBAG9C41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,SACLgpE,UAAU,aACV1sE,MAAOm6J,EAASkrD,aAChB3uC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,yBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAO/pG,UAAU,cAAagR,SAAC,eAG9C41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgpE,UAAU,aACV1sE,MAAOm6J,EAASmrD,SAChB5uC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAGrCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAAS62E,EAAaluH,SAAC,qBAI3D46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAKb,EClGA,SA1KA,SAAkB20H,GAChB,MAAOl4C,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvC4kD,OAAQo/B,EAAUA,UAClBqT,SAAU,GACV9uC,SAAU,MAGLjnB,EAAQq6C,IAAa37E,EAAAA,EAAAA,UAAS,CACnCq3F,SAAU,GACV9uC,SAAU,MAGL0B,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChCs2F,EAAcC,IAAmBv2F,EAAAA,EAAAA,UAAS,GAE3Cu8E,EAAeA,CAAC3lM,EAAGiuM,KACvB,MAAM,MAAElzM,GAAUiF,EAAE3G,OACpB,IAAIqnN,EAAc,IAAKxrD,EAAU,CAAC+4C,GAAYlzM,GAC1C4lN,EAAY,IAAKj2D,GAGrB,GAAkB,aAAdujD,EACFyS,EAAY/uC,SAAW,GACvBgvC,EAAUF,SAAW1lN,EAAQ,GAAK,8BAC7B,GAAkB,aAAdkzM,EACT,GAA6B,UAAzByS,EAAYD,SACVh4M,MAAM1N,IAAUA,EAAQ,GAAKA,EAAQ,IACvC4lN,EAAUhvC,SAAW,gDAErBgvC,EAAUhvC,SAAW,QAElB,GAA6B,SAAzB+uC,EAAYD,SAAqB,CACtB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MAC7B3hH,SAAS/jG,GAGxB4lN,EAAUhvC,SAAW,GAFrBgvC,EAAUhvC,SAAW,6CAIzB,KAAoC,QAAzB+uC,EAAYD,WACjBh4M,MAAM1N,IAAUA,EAAQ,GAAKA,EAAQ,EACvC4lN,EAAUhvC,SAAW,8CAErBgvC,EAAUhvC,SAAW,IAK3B47B,EAAYmT,GACZ3b,EAAU4b,EAAU,EAqEtB,OAlEAjoH,EAAAA,EAAAA,YAAU,KACR46E,GAAW,GACO3P,WAChB,IACE,MAAM38I,QAAiBgsJ,GAAc31K,IAAI,kBAADoH,OACpB2oM,EAAUA,YAE9BG,EAAYvmL,EAASzE,MACrBgrL,EAAY,CACVv/B,OAAQo/B,EAAUA,UAClBqT,SAAUz5L,EAASzE,KAAKk+L,SACxB9uC,SAAU3qJ,EAASzE,KAAKovJ,WAE1B2B,GAAW,GACXqsC,EAAgB,EAClB,CAAE,MAAOzxM,GACHA,EAAM8Y,UAAsC,MAA1B9Y,EAAM8Y,SAASU,OACnCi4L,EAAgB,GAEhBA,EAAgB,GAElBrsC,GAAW,EACb,GAEFssC,EAAW,GACV,CAACxS,EAAUA,aA0CZz9B,EAAAA,GAAAA,MAAA,QAAM6E,SAxCa7Q,UACnB3jK,EAAE0uG,iBACF,MAAMipB,EAAO,IAAIm6B,SACjBn6B,EAAKhsG,OAAO,SAAUyhL,EAAUA,WAChCz1E,EAAKhsG,OAAO,WAAYupI,EAASurD,UACjC9oF,EAAKhsG,OAAO,WAAYupI,EAASyc,UAEjC2B,GAAW,GAEX,IACE,GAAqB,IAAjBosC,EAAoB,CACtB,MAAMkB,QAAqB5tC,GAAczE,KAAK,iBAAkB52C,EAAM,CACpE0gC,QAAS,CACP,eAAgB,sBAGpBid,GAAMC,QAAQ,6BACdvlK,QAAQ45F,IAAIg3G,EACd,KAAO,CACL,MAAMC,QAAoB7tC,GAAcq8B,IAAI,kBAAD5qM,OACvB2oM,EAAUA,WAC5Bz1E,EACA,CACE0gC,QAAS,CACP,eAAgB,sBAItBid,GAAMC,QAAQ,6BACdvlK,QAAQ45F,IAAIi3G,EACd,CACF,CAAE,MAAO3yM,GACP8B,QAAQ45F,IAAI17F,EAAMi9G,SAClBmqD,GAAMpnK,MAAM,mBACd,CAAC,QACColK,GAAW,EACb,GAI6B76F,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAE2pM,UAAW,SAAU1sJ,WAAY,MAAO3hC,MAAO,QAASg4D,SAAC,qBAItEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAetiE,MAAO,CAAE27M,aAAc,QAASroI,SAAA,EAC5D41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,eAC1Bk3F,EAAAA,GAAAA,MAAA,UACE3sK,GAAG,WACHjI,MAAOm6J,EAASurD,SAChBhvC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,YAAYy4E,SAAA,EAE7C41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,GAAE09E,SAAC,sBACjB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,QAAO09E,SAAC,WACtB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,OAAM09E,SAAC,UACrB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,MAAK09E,SAAC,WAErBiyE,EAAO+1D,WAAYpyC,EAAAA,GAAAA,KAAA,KAAGlpK,MAAO,CAAEsb,MAAO,OAAQg4D,SAAEiyE,EAAO+1D,eAG1D9wC,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,eAC1B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,WACH8sK,YAAY,8BACZ/0K,MAAOm6J,EAASyc,SAChBF,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,cAElC0qJ,EAAOinB,WAAYtD,EAAAA,GAAAA,KAAA,KAAGlpK,MAAO,CAAEsb,MAAO,OAAQg4D,SAAEiyE,EAAOinB,eAG1DtD,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UACE5mG,UAAU,iBACVw5B,WAAYypD,EAAO+1D,YAAc/1D,EAAOinB,SACxClzK,KAAK,SAAQg6E,SACd,qBAKF46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAKb,ECwzCO,SAASsoI,GAAeznN,GAC7B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,iBAAiB,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,8DAA8D,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,gEAAnLA,CAAoP11K,EAC7P,CC9qCA,SAjTA,SAA8B8zM,GAC5B,MAAO/5B,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GAEjCi2F,EAAYpgF,OAAcW,UAE1BohF,EAAS,CACb,kBACA,cACA,UACA,mBACA,mBACA,iBACA,mBACA,oBACA,oBAGK9rD,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,KAClC63F,EAAWC,IAAgB93F,EAAAA,EAAAA,WAAS,GACrC+3F,EAAaA,KACjB5T,GAAa6T,GAAiB,IACzBA,EACH,CACEC,UAAW,EACXrzC,OAAQo/B,EAAUA,UAClBkU,WAAY,GACZhC,WAAY,GACZlgF,QAAS,GACTogF,SAAU,GACVC,QAAS,GACT8B,SAAU,GACVC,WAAY,EACZC,aAAc,MAEhB,EA+BE9b,EAAeA,CAACppM,EAAO0xM,EAAWlzM,KACtC,MAAM2mN,EAAkB,IAAIxsD,GAC5BwsD,EAAgBnlN,GAAS,IACpBmlN,EAAgBnlN,GACnB,CAAC0xM,GAAYlzM,GAEfwyM,EAAYmU,EAAgB,GAG9BhpH,EAAAA,EAAAA,YAAU,KAmBJuoH,GAlBct9C,WAChB,IACE2P,GAAW,GACX,MAAM86B,QAAoBp7B,GAAc31K,IAAI,sEAADoH,OAC6B2oM,EAAUA,YAElFG,EAAYa,EAAY7rL,MACxBvS,QAAQ45F,IAAIwkG,EAAY7rL,MACxBvS,QAAQ45F,IAAI,oCACZ0pE,GAAW,EACb,CAAE,MAAOplK,GACPolK,GAAW,GACXtjK,QAAQ45F,IAAI,4BAEd,CACAs3G,GAAa,EAAM,EAInBtB,EACF,GACC,CAACqB,IAEJ,MAAMta,EAAehjC,UACnB3jK,EAAE0uG,iBACF1+F,QAAQ45F,IAAI,wBAEZ,IACE0pE,GAAW,GACX,MAAMjG,EAAWnY,EAAS11B,KAAImkC,UAC5B,MAAMg+C,EAAiB,IAAI7vD,SAC3B,IAAK,MAAMj4J,KAAO89H,EAChBgqF,EAAeh2L,OAAO9xB,EAAK89H,EAAK99H,IAGlC,MAAMgnN,QAAoB7tC,GAAcq8B,IAAI,kCAAD5qM,OACPkzH,EAAK0pF,WACvCM,EACA,CACEtpD,QAAS,CACP,eAAgB,sBAKtBroJ,QAAQ45F,IAAIi3G,EAAY,UAGpBjkG,QAAQwwD,IAAIC,GAClBiI,GAAMC,QAAQ,6BACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI,qBAAsB17F,EAAMi9G,SACxCn7G,QAAQ45F,IAAI17F,EAAM8Y,UAClBsuJ,GAAMpnK,MAAM,oBACZolK,GAAW,EACb,CACA4tC,GAAa,EAAK,EAGpB,OACEvxC,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAE2pM,UAAW,SAAUruL,MAAO,OAAQ2hC,WAAY,OAAQq2B,SAAC,oCAGrEy8E,EAAS11B,KAAI,CAAC7H,EAAMp7H,KACnBozK,EAAAA,GAAAA,MAAA,QAAkB6E,SAAUmyB,EAAaluH,SAAA,CAC5B,IAAVl8E,IACCozK,EAAAA,GAAAA,MAAA,MACExqK,MAAO,CAAEsb,MAAO,OAAQquL,UAAW,SAAU1sJ,WAAY,OAAQq2B,SAAA,CAClE,oBACmBl8E,EAAQ,MAG9B8xK,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAE4wI,UAAW,WAExB45B,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAG/pG,UAAU,aAAYgR,SAAC,iBAGzC41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,cACZ/0K,MAAO48H,EAAK2pF,WACZ7vC,SAAWzxK,GACT2lM,EAAappM,EAAO,aAAcyD,EAAE3G,OAAO0B,aAIjD40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAG/pG,UAAU,aAAYgR,SAAC,iBAGzC41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,cACZ/0K,MAAO48H,EAAK2nF,WACZ7tC,SAAWzxK,GACT2lM,EAAappM,EAAO,aAAcyD,EAAE3G,OAAO0B,gBAMnD40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAE/4F,SAAC,aAClB41F,EAAAA,GAAAA,KAAC8wC,GAAM,CACLn8M,GAAG,UACHtE,KAAK,UACLqO,QAASsyM,EACTvvC,YAAY,mBACZ/0K,MAAOskN,EAAUzqC,MAAMz3K,GAAMA,EAAEpC,QAAU48H,EAAKyH,UAC9CqyC,SAAWouC,GACTla,EAAappM,EAAO,UAAWsjN,EAAe9kN,OAEhD+kN,gBAAgB,sBAGpBnwC,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAG/pG,UAAU,aAAYgR,SAAC,oBAGzC41F,EAAAA,GAAAA,KAAA,UACErrK,GAAG,UACHtE,KAAK,UACL+oE,UAAU,cACVqoG,YAAY,wBACZ/0K,MAAO48H,EAAK8pF,aACZhwC,SAAWzxK,GACT2lM,EAAappM,EAAO,eAAgByD,EAAE3G,OAAO0B,OAC9C09E,SAEAuoI,EAAOxhF,KAAI,CAACzpE,EAAOx5D,KAClB8xK,EAAAA,GAAAA,KAAA,UAAoBtzK,MAAOg7D,EAAOkrC,SAAS,GAAExoB,SAC1C1iB,GADUx5D,cAOrBozK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAE/4F,SAAC,cAClB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,WACZ/0K,MAAO48H,EAAK6nF,SACZ/tC,SAAWzxK,GACT2lM,EAAappM,EAAO,WAAYyD,EAAE3G,OAAO0B,aAI/C40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAE/4F,SAAC,cAClB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,WACZ/0K,MAAO48H,EAAK8nF,QACZhuC,SAAWzxK,GAAM2lM,EAAappM,EAAO,UAAWyD,EAAE3G,OAAO0B,gBAI/D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAE/4F,SAAC,eAClB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,OACZ/0K,MAAO48H,EAAK4pF,SACZ9vC,SAAWzxK,GACT2lM,EAAappM,EAAO,WAAYyD,EAAE3G,OAAO0B,aAI/C40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAE/4F,SAAC,iBAClB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,SACLqxK,YAAY,cACZ/0K,MAAO48H,EAAK6pF,WACZ/vC,SAAWzxK,GACT2lM,EAAappM,EAAO,aAAcyD,EAAE3G,OAAO0B,gBAMnD40K,EAAAA,GAAAA,MAAA,OACEloG,UAAU,YACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB3C,WAAY,WACZn2D,UAAW,QACXt9D,SAAA,CAEDl8E,IAAU24J,EAAS17J,OAAS,IAC3Bm2K,EAAAA,GAAAA,MAAA,UAAQloG,UAAU,iBAAiBqoD,QAASqxF,EAAW1oI,SAAA,EACrD41F,EAAAA,GAAAA,KAAC0yC,GAAa,CAAC1/J,KAAM,GAAIomB,UAAU,SAAS,yBAIrC,IAAVlrE,IACC8xK,EAAAA,GAAAA,KAAA,UACE5mG,UAAU,mBACVqoD,QAASA,IArPJ6zC,WACjB2P,GAAW,GACX,MAAMsuC,EAAc1sD,EAAS34J,GAE7B,GAAIqlN,GAAeA,EAAYP,UAC7B,IACE/tC,GAAW,GACX,MAAMuuC,QAAuB7uC,GAAclnE,OAAO,kCAADrnG,OACbm9M,EAAYP,YAEhDrxM,QAAQ45F,IAAIi4G,GACZ,MAAMC,EAAe,IAAI5sD,GACzB4sD,EAAalvM,OAAOrW,EAAO,GAC3BgxM,EAAYuU,GACZxuC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI17F,GACZonK,GAAMpnK,MAAM,oBACZolK,GAAW,EACb,KACK,CACL,MAAMwuC,EAAe,IAAI5sD,GACzB4sD,EAAalvM,OAAOrW,EAAO,GAC3BgxM,EAAYuU,EACd,CACAZ,GAAa,EAAK,EA4NSa,CAAWxlN,GAAOk8E,SAClC,gBA9IIl8E,KAqJZ82K,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,qBAGP41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAAS62E,EAAaluH,SAAC,uBAMlE,EChJA,SAnKA,SAA6B20H,GAC3B,MAAOl4C,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvC4kD,OAAQo/B,EAAUA,UAClB4U,YAAa,GACbC,aAAc,GACdC,gBAAiB,GACjB3sG,MAAO,KAGHowF,EAAeA,CAAC3lM,EAAGiuM,KACvB,MAAM,MAAElzM,GAAUiF,EAAE3G,OACpBk0M,EAAY,IACPr4C,EACH,CAAC+4C,GAAYlzM,GACb,GAEGs4K,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAEhC+4F,EAAcxC,IAAmBv2F,EAAAA,EAAAA,UAAS,IAEjD1wB,EAAAA,EAAAA,YAAU,KACUirE,WAChB3zJ,QAAQ45F,IAAI,cACZ0pE,GAAW,GAEX,IACE,MAAM86B,QAAoBp7B,GAAc31K,IAAI,+BAADoH,OACV2oM,EAAUA,YAE3CG,EAAYa,EAAY7rL,MACxBgrL,EAAY,CACVyU,YAAa5T,EAAY7rL,KAAKy/L,YAC9BC,aAAc7T,EAAY7rL,KAAK0/L,aAC/BC,gBAAiB9T,EAAY7rL,KAAK2/L,gBAClC3sG,MAAO64F,EAAY7rL,KAAKgzF,QAE1BoqG,EAAgB,GAChBrsC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI17F,EAAMi9G,SACdj9G,EAAM8Y,UAAsC,MAA1B9Y,EAAM8Y,SAASU,QACnCi4L,EAAgB,GAChB3vM,QAAQ45F,IAAI,SAEZ+1G,EAAgB,GAElBrsC,GAAW,EACb,GAGFssC,EAAW,GACV,CAACxS,EAAUA,YAEd,MAAMzG,EAAehjC,UACnB3jK,EAAE0uG,iBACF,MAAMipB,EAAO,IAAIm6B,SAMjB,GALAn6B,EAAKhsG,OAAO,SAAUyhL,EAAUA,WAChCz1E,EAAKhsG,OAAO,cAAeupI,EAAS8sD,aACpCrqF,EAAKhsG,OAAO,eAAgBupI,EAAS+sD,cACrCtqF,EAAKhsG,OAAO,kBAAmBupI,EAASgtD,iBACxCvqF,EAAKhsG,OAAO,QAASupI,EAAS3/C,OACT,IAAjB4sG,EAAoB,CACtB7uC,GAAW,GACXtjK,QAAQ45F,IAAI,8BACZ,UACQopE,GAAczE,KAAK,8BAA+B52C,EAAM,CAC5D0gC,QAAS,CACP,eAAgB,sBAGpBid,GAAMC,QAAQ,6BACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI17F,GACZonK,GAAMpnK,MAAM,oBACZolK,GAAW,EACb,CACF,KAAO,CACLA,GAAW,GACXtjK,QAAQ45F,IAAI,iCACZ,IACE,MAAMi3G,QAAoB7tC,GAAcq8B,IAAI,+BAAD5qM,OACV2oM,EAAUA,WACzCz1E,EACA,CACE0gC,QAAS,CACP,eAAgB,sBAItBroJ,QAAQ45F,IAAI,eAAgBi3G,GACD,MAAvBA,EAAYn5L,QACd4tJ,GAAMC,QAAQ,6BACdvlK,QAAQ45F,IAAI,yBAEZ55F,QAAQ45F,IAAI,oBACZ0rE,GAAMpnK,MAAM,qBAEdolK,GAAW,EACb,CAAE,MAAOplK,GACPonK,GAAMpnK,MAAM,oBACZ8B,QAAQ45F,IAAI,gBAAiB17F,EAAMi9G,SACnCmoD,GAAW,EACb,CACF,GAGF,OACE3D,EAAAA,GAAAA,MAAA,QAAM6E,SAAUmyB,EAAaluH,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAEi9C,WAAY,MAAO0sJ,UAAW,SAAUruL,MAAO,QAASg4D,SAAC,0CAGtEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAM/4F,SAAC,kBACtB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACL1D,MAAOm6J,EAAS8sD,YAChBvwC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,qBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAM/4F,SAAC,kBACtB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACL1D,MAAOm6J,EAAS+sD,aAChBxwC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,yBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAM/4F,SAAC,sBACtB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACL1D,MAAOm6J,EAASgtD,gBAChBzwC,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,yBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,OAAM/4F,SAAC,WACtB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACL1D,MAAOm6J,EAAS3/C,MAChBk8D,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAIvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAAS62E,EAAaluH,SAAC,qBAI3D46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAKb,ECqIA,GAlSmB20H,IACjB,MAAM,YAAEx/B,GAAgBa,MACjB2zC,EAAcC,IAAmBj5F,EAAAA,EAAAA,UAAS,CAAC,IAC3CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC6pD,EAAWC,IAAgB9pD,EAAAA,EAAAA,WAAS,IACpCk5F,EAAYC,IAAiBn5F,EAAAA,EAAAA,UAAS,CAAEpmH,GAAI,KAAM2pM,SAAU,QAC5DvuC,EAAUokD,IAAep5F,EAAAA,EAAAA,UAAS,IAElC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvC4kD,OAAQo/B,EAAUA,UAClBqV,aAAc,GACdC,eAAgB,GAChBC,oBAAqB,GACrBC,uBAAwB,GACxBC,WAAY,GACZC,WAAY,GACZC,oBAAqB,KAGjBC,EAActpH,IAAmB,IAAlB,SAAE0kE,GAAU1kE,EAC/B,OACEi2E,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,qBAAoBgR,SAAA,EACjC41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,eAAcgR,UAC3B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,WAAWtiE,MAAO,CAAE4jB,MAAM,GAADtkB,OAAK25J,EAAQ,WAEvDuR,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,CAAE2lF,EAAS,SACrC,GAGV1lE,EAAAA,EAAAA,YAAU,KACeirE,WACrB,IACE,MAAM,KAAEphJ,SAAeywJ,GAAc31K,IAAI,wBAADoH,OACd2oM,EAAUA,YAEpCiV,EAAgB9/L,EAClB,CAAE,MAAOrU,GACP8B,QAAQ45F,IAAI17F,GACZm0M,EAAgB,CAAC,EACnB,GAEFY,EAAgB,GACf,CAAC7V,EAAUA,UAAW/5B,IAEzB,MAAM6vC,EAAeA,CAAClgN,EAAI2pM,KACxBz5B,GAAa,GACbqvC,EAAc,CAAEv/M,KAAI2pM,YAAW,EAgC3BrD,EAAeA,CAACtmM,EAAIzG,KACxBgxM,GAAa6T,IACX,MAAM+B,EAAW/B,EAAap+M,GAAIo9C,QAAO,CAAClzB,EAAG3zB,IAAMA,IAAMgD,IACzD,MAAO,IAAK6kN,EAAc,CAACp+M,GAAKmgN,EAAU,IAG5Cd,GAAiBe,IACf,MAAMC,EAAcD,EAAapgN,GAAIo9C,QAAO,CAAClzB,EAAG3zB,IAAMA,IAAMgD,IAC5D,MAAO,IAAK6mN,EAAc,CAACpgN,GAAKqgN,EAAa,GAC7C,EAGEC,EAAmB,SAACtjN,EAAGgD,GAC3B,MAAMugN,GAD8BppN,UAAAX,OAAA,QAAAwD,IAAA7C,UAAA,GAAAA,UAAA,GAAG,OACRuG,MAAM23F,KAAKr4F,EAAE3G,OAAO6zM,OAEnDK,GAAa6T,IAAY,IACpBA,EACH,CAACp+M,GAAKo+M,EAAap+M,GAAIyB,OAAO8+M,OAGhClB,GAAiBe,IAAY,IACxBA,EACH,CAACpgN,IAAMogN,EAAapgN,IAAO,IAAIyB,OAC7B8+M,EAAc/jF,KAAK0vE,IAAI,CACrBxwM,KAAMwwM,EAAKxwM,KACXD,KAAMywM,EAAKzwM,KACXokB,IAAKC,IAAIC,gBAAgBmsL,WAIjC,EAmDMsU,EAAoB,CACxB,CACEz8I,MAAO,oCACP4lI,SAAU,eACVH,SAAU4V,EAAaK,aACvBhW,MAAO2V,EAAaqB,cAEtB,CACE18I,MAAO,2CACP4lI,SAAU,sBACVH,SAAU4V,EAAaW,oBACvBtW,MAAO2V,EAAasB,qBAEtB,CACE38I,MAAO,oCACP4lI,SAAU,iBACVH,SAAU4V,EAAaM,eACvBjW,MAAO2V,EAAauB,gBAEtB,CACE58I,MAAO,YACP4lI,SAAU,aACVH,SAAU4V,EAAaU,WACvBrW,MAAO2V,EAAawB,YAEtB,CACE78I,MAAO,wCACP4lI,SAAU,sBACVH,SAAU4V,EAAaO,oBACvBlW,MAAO2V,EAAayB,qBAEtB,CACE98I,MAAO,uCACP4lI,SAAU,yBACVH,SAAU4V,EAAaQ,uBACvBnW,MAAO2V,EAAa0B,oBAEtB,CACE/8I,MAAO,iCACP4lI,SAAU,aACVH,SAAU4V,EAAaS,WACvBpW,MAAO2V,EAAa2B,YAIxB,OACEp0C,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,WAASloG,UAAU,kBAAiBgR,SAAA,EAClCk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,eACW,KACb41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,oBAEnDk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,oBAAmBgR,SAAA,EACjC41F,EAAAA,GAAAA,KAAA,OACElpK,MAAO,CACLC,QAAS,OACT6mM,IAAK,QACLr+D,QAAS,WACT7kH,MAAO,OACP8lL,eAAgB,YAElBpnI,UAAU,mBAAkBgR,UAK5B41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAnH1B6zC,UACjB3jK,EAAE0uG,iBACF4kE,GAAW,GACXkvC,EAAY,GACZ,MAAMwB,EAAU,IAAIlyD,SAEpBkyD,EAAQr4L,OAAO,SAAUyhL,EAAUA,WAEnC/yM,OAAOmH,KAAK0zJ,GAAU9wJ,SAASvK,IACzB6G,MAAMC,QAAQu0J,EAASr7J,IACzBq7J,EAASr7J,GAAKuK,SAAS8qM,IACrB8U,EAAQr4L,OAAO9xB,EAAKq1M,EAAK,IAElBh6C,EAASr7J,IAClBmqN,EAAQr4L,OAAO9xB,EAAKq7J,EAASr7J,GAC/B,IAGF,UACQm5K,GAAcixC,MAAM,uBAAwBD,EAAS,CACzD3jD,iBAAmB6jD,IACjB,MAAM,OAAE3+J,EAAM,MAAE04G,GAAUimD,EAC1B,IAAInlL,EAAU7+B,KAAKsI,MAAgB,IAAT+8C,EAAgB04G,GAC1CjuJ,QAAQ45F,IAAI,WAADnlG,OACE8gD,EAAM,aAAA9gD,OAAYw5J,EAAK,gBAAAx5J,OAAes6B,EAAO,MAE1D/uB,QAAQ45F,IAAI,SACZ44G,EAAYzjL,GACZ/uB,QAAQ45F,IAAIu6G,cAAc,IAG9B7wC,GAAW,GACXgC,GAAMC,QAAQ,kCACdg4B,EAAY,CACVv/B,OAAQo/B,EAAUA,UAClBqV,aAAc,GACdC,eAAgB,GAChBC,oBAAqB,GACrBC,uBAAwB,GACxBC,WAAY,GACZC,WAAY,GACZC,oBAAqB,IAEzB,CAAE,MAAO70M,GACP8B,QAAQ9B,MAAM,uBAAwBA,GACtColK,GAAW,GACXgC,GAAMpnK,MAAM,6CACd,GAoE+DuqE,SAAC,WAIzD+qI,EAAkBhkF,KAAI,CAACj9G,EAAMhmB,KAC5B8xK,EAAAA,GAAAA,KAAC+1C,GAAY,CAEXr9I,MAAOxkD,EAAKwkD,MACZ4lI,SAAUpqL,EAAKoqL,SACfH,SAAUjqL,EAAKiqL,SACfC,MAAOlqL,EAAKkqL,MACZh7B,SAAU6xC,EACV5W,SAAUwW,EACVtW,SAAUtD,GAPL/sM,WAkBZ82K,IACChF,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,kBAAiBgR,UAC9B41F,EAAAA,GAAAA,KAAC20C,EAAW,CAAC5kD,SAAUA,MAG1B6U,IACC5E,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,kBAAiBgR,UAC9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CAAEovK,OAAQ,UAAWtyH,SAAU,QACtCwlB,UAAU,QACVqoD,QAASA,IAAMojD,GAAa,GAAOz6F,SACpC,UAGDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,2CACHk3F,EAAAA,GAAAA,MAAA,OAAKxqK,MAAO,CAAEC,QAAS,OAAQ6mM,IAAK,QAASxzH,SAAA,EAC3C41F,EAAAA,GAAAA,KAAA,UACE5vK,KAAK,SACLgpE,UAAU,gBACVqoD,QA7NMu0F,KACpB,MAAM,GAAErhN,EAAE,SAAE2pM,GAAa2V,EACzBhvC,GAAW,GACX,MAAMgxC,EAAU,CACd7B,aAAc,WACdC,eAAgB,aAChBC,oBAAqB,iBACrBC,uBAAwB,YACxBC,WAAY,QACZC,WAAY,SACZC,oBAAqB,mBACrBpW,GAEF35B,GACGlnE,OAAO,wBAADrnG,OAAyBzB,EAAE,KAAAyB,OAAI6/M,IACrCtnG,MAAK,KACJs2D,GAAW,GACXgC,GAAMC,QAAQ,gCAAgC,IAE/Ct4D,OAAO/uG,IACN8B,QAAQ9B,MAAM,2BAA4BA,GAC1ConK,GAAMpnK,MAAM,4CAA4C,IAG5DglK,GAAa,GACbqvC,EAAc,CAAEv/M,GAAI,KAAM2pM,SAAU,MAAO,EAoMNl0H,SACxB,SAGD41F,EAAAA,GAAAA,KAAA,UACE5vK,KAAK,SACLgpE,UAAU,iBACVqoD,QAASA,IAAMojD,GAAa,GAAOz6F,SACpC,wBAQV,ECpKP,GAxHoB8rI,IAClB,MAAOrhI,EAAQshI,IAAap7F,EAAAA,EAAAA,UAAS,wBA8B/Bq7F,EAAY,CAChBxrI,OAAQ,SACRs7F,OAAQ,WAGV,OAEI5E,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,cAActiE,MAfjB,CACfC,QAAS,OACTypM,eAAgB,gBAChB6V,cAAe,OACf92E,QAAS,GAWuCn1D,SAAA,EAC1Ck3F,EAAAA,GAAAA,MAAA,OACEloG,UACa,yBAAXyb,EAAoC,SAAW,gBAChDzK,SAAA,EAED41F,EAAAA,GAAAA,KAAA,MACElpK,MAAOs/M,EACP30F,QAASA,IAAM00F,EAAU,wBAAwB/rI,SAClD,cAGD41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAsB,YAAXyb,EAAuB,SAAW,gBAAgBzK,SAAA,EAChE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,WAAW/rI,SAAC,aAG3D41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OACEloG,UAAsB,mBAAXyb,EAA8B,SAAW,gBAAgBzK,SAAA,EAEpE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,kBAAkB/rI,SAAC,cAGlE41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAsB,cAAXyb,EAAyB,SAAW,gBAAgBzK,SAAA,EAClE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,aAAa/rI,SAAC,SAG7D41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OACEloG,UACa,yBAAXyb,EAAoC,SAAW,gBAChDzK,SAAA,EAED41F,EAAAA,GAAAA,KAAA,MACElpK,MAAOs/M,EACP30F,QAASA,IAAM00F,EAAU,wBAAwB/rI,SAClD,cAGD41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OACEloG,UACa,wBAAXyb,EAAmC,SAAW,gBAC/CzK,SAAA,EAED41F,EAAAA,GAAAA,KAAA,MACElpK,MAAOs/M,EACP30F,QAASA,IAAM00F,EAAU,uBAAuB/rI,SACjD,aAGD41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OACEloG,UACa,cAAXyb,EAAyB,SAAW,gBACrCzK,SAAA,EAED41F,EAAAA,GAAAA,KAAA,MACElpK,MAAOs/M,EACP30F,QAASA,IAAM00F,EAAU,aAAa/rI,SACvC,eAGD41F,EAAAA,GAAAA,KAAA,gBAGJA,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,cAAagR,SA9GZksI,MACpB,OAAQzhI,GACN,IAAK,uBACH,OAAOmrF,EAAAA,GAAAA,KAACu2C,GAAO,CAACxX,UAAWmX,EAAIM,aACjC,IAAK,UACH,OAAOx2C,EAAAA,GAAAA,KAACy2C,GAAO,CAAC1X,UAAWmX,EAAIM,aACjC,IAAK,iBACH,OAAOx2C,EAAAA,GAAAA,KAAC02C,GAAa,CAAC3X,UAAWmX,EAAIM,aACvC,IAAK,YACH,OAAOx2C,EAAAA,GAAAA,KAAC22C,GAAQ,CAAC5X,UAAWmX,EAAIM,aAClC,IAAK,uBACH,OAAOx2C,EAAAA,GAAAA,KAAC42C,GAAoB,CAAC7X,UAAWmX,EAAIM,aAC9C,IAAK,sBACH,OAAOx2C,EAAAA,GAAAA,KAAC62C,GAAmB,CAAC9X,UAAWmX,EAAIM,aAC3C,IAAK,YACH,OAAOx2C,EAAAA,GAAAA,KAAC82C,GAAS,CAAC/X,UAAWmX,EAAIM,aACrC,QACE,OAAO,KACX,EA4FkCF,OAC1B,ECgOZ,GArVmBJ,IACGz2C,GAAQzwK,IAAI,UAAhC,MACO6wM,EAAeC,IAAoB/kF,EAAAA,EAAAA,UAAS,OAC5CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChCikF,EAAUC,IAAelkF,EAAAA,EAAAA,UAAS,IAClC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvC4kD,OAAQu2C,EAAIa,aACZC,YAAa,GACbC,QAAS,GACTC,oBAAqB,GACrBC,QAAS,GACTC,UAAW,GACXC,aAAc,GACdC,SAAU,GACVC,YAAa,GACbC,YAAa,GACbC,QAAS,GACTC,UAAW,GACX1X,UAAW,GACX2X,UAAW,OAGbh2M,QAAQ45F,IAAIsrD,EAAS8Y,QAErB,MAAM23B,EAAeA,CAACvgG,EAAO6oG,KAC3B,MAAMnuK,EAAWslE,EAAM/rG,OAAS+rG,EAAM/rG,OAAO0B,MAAQqqG,EAAMi6B,MAC3DkuE,EAAY,IACPr4C,EACH,CAAC+4C,GAAYnuK,GACb,GAcJ44D,EAAAA,EAAAA,YAAU,KACoBirE,WAC1B,IACE,MAAMyqC,QAAoBp7B,GAAc31K,IAAI,sBAADoH,OACnB8/M,EAAIa,eAE5Bp1M,QAAQ45F,IAAI,4BAA6BwkG,GACzCb,EAAY,CACV8X,YAAajX,EAAY7rL,KAAK8iM,YAC9BC,QAASlX,EAAY7rL,KAAK+iM,QAC1BC,oBAAqBnX,EAAY7rL,KAAKgjM,oBACtCC,QAASpX,EAAY7rL,KAAKijM,QAC1BC,UAAWrX,EAAY7rL,KAAKkjM,UAC5BC,aAActX,EAAY7rL,KAAKmjM,aAC/BC,SAAUvX,EAAY7rL,KAAKojM,SAC3BC,YAAaxX,EAAY7rL,KAAKqjM,YAC9BC,YAAazX,EAAY7rL,KAAKsjM,YAC9BC,QAAS1X,EAAY7rL,KAAKujM,QAC1BC,UAAW3X,EAAY7rL,KAAKwjM,UAC5B1X,UAAWD,EAAY7rL,KAAK8rL,YAE9BF,EAAiBC,EAAY7rL,KAAK8rL,WAClC/6B,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI,iBACZ55F,QAAQ45F,IAAI17F,GACZolK,GAAW,GACmB,MAA1BplK,EAAM8Y,SAASU,QACjB1X,QAAQ45F,IAAI,qBACZ0jG,EAAY,KAEZt9L,QAAQ45F,IAAI,gBACZ0jG,EAAY,GAEhB,GAEFqB,EAAqB,GACpB,CAAC4V,EAAIa,eA2DR,OACEz1C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAACs8B,GAAc,KACft8B,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAEi9C,WAAY,MAAO0sJ,UAAW,SAAUruL,MAAO,QAASg4D,SAAC,0BAGtE41F,EAAAA,GAAAA,KAAA,OACE5mG,UAAU,gBACVtiE,MAAO,CACLC,QAAS,OACTwpM,cAAe,SACfC,eAAgB,SAChB3C,WAAY,UACZzzH,UAEFk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,eACVtiE,MAAO,CACLoZ,SAAU,WACVwK,MAAO,QACPtY,OAAQ,QACR+hL,OAAQ,kBACRptL,QAAS,OACTypM,eAAgB,SAChB3C,WAAY,UACZzzH,SAAA,CAEDy1H,GACC7/B,EAAAA,GAAAA,KAAA,OACEhpK,IAAK6oM,EACLr+B,IAAI,WACJ1qK,MAAO,CACL8qI,SAAU,OACV8+D,UAAW,OACXC,UAAW,QACXlD,aAAc,UAIlBz9B,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMiB,GACN1xK,MAAO,CAAE88C,SAAU,OAAQxhC,MAAO,WAGtC4tJ,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLwwM,OAAO,UACPx9B,SA3JgBzxK,IACxButM,EAAY,IACPr4C,EACH8wD,UAAWhmN,EAAE3G,OAAO6zM,MAAM,KAE5B,MAAMgC,EAAOlvM,EAAE3G,OAAO6zM,MAAM,GAC5B,GAAIgC,EAAM,CACR,MAAMC,EAAWrsL,IAAIC,gBAAgBmsL,GACrCf,EAAiBgB,EACnB,GAmJQhqM,MAAO,CACLoZ,SAAU,WACVhO,IAAK,EACLiO,KAAM,EACNuK,MAAO,QACPtY,OAAQ,QACR6/C,QAAS,EACTikH,OAAQ,mBAMhB5E,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,kBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,eACZ2B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,eACjCjF,MAAOm6J,EAASmwD,kBAIpB11C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,aACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,WACjC8vK,YAAY,UACZ/0K,MAAOm6J,EAASowD,iBAKtB31C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,2BACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,uBACjC8vK,YAAY,yBACZ/0K,MAAOm6J,EAASqwD,0BAGpB51C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,oBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,aACjC8vK,YAAY,gBACZ/0K,MAAOm6J,EAASuwD,mBAItB91C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,cACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,WACjC8vK,YAAY,WACZ/0K,MAAOm6J,EAASswD,cAIpB71C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,mBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,gBACjC8vK,YAAY,gBACZ/0K,MAAOm6J,EAASwwD,sBAItB/1C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,eACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,YACjC8vK,YAAY,YACZ/0K,MAAOm6J,EAASywD,eAGpBh2C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,kBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,eACjC8vK,YAAY,eACZ/0K,MAAOm6J,EAAS0wD,qBAItBj2C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,aACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,WACjC8vK,YAAY,eACZ/0K,MAAOm6J,EAAS4wD,cAIpBn2C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,kBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,eACjC8vK,YAAY,eACZ/0K,MAAOm6J,EAAS2wD,qBAItBx3C,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,gBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgzK,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,aACjC8vK,YAAY,aACZ/0K,MAAOm6J,EAAS6wD,kBAItBp2C,EAAAA,GAAAA,MAAA,OACEloG,UAAU,YACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB3C,WAAY,WACZn2D,UAAW,OACX+1D,aAAc,OACdgV,aAAc,QACdroI,SAAA,EAEF41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,mBAAkBgR,SAAC,aACrC41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAtP1B6zC,UACb3jK,EAAE0uG,iBACF,MAAMipB,EAAO,IAAIm6B,SAgBjB,GAfAn6B,EAAKhsG,OAAO,SAAU44L,EAAIa,cAC1BztF,EAAKhsG,OAAO,cAAeupI,EAASmwD,aACpC1tF,EAAKhsG,OAAO,UAAWupI,EAASowD,SAChC3tF,EAAKhsG,OAAO,sBAAuBupI,EAASqwD,qBAC5C5tF,EAAKhsG,OAAO,UAAWupI,EAASswD,SAChC7tF,EAAKhsG,OAAO,YAAaupI,EAASuwD,WAClC9tF,EAAKhsG,OAAO,eAAgBupI,EAASwwD,cACrC/tF,EAAKhsG,OAAO,WAAYupI,EAASywD,UACjChuF,EAAKhsG,OAAO,cAAeupI,EAAS0wD,aACpCjuF,EAAKhsG,OAAO,cAAeupI,EAAS2wD,aACpCluF,EAAKhsG,OAAO,UAAWupI,EAAS4wD,SAChCnuF,EAAKhsG,OAAO,YAAaupI,EAAS6wD,WAClCpuF,EAAKhsG,OAAO,YAAaupI,EAASm5C,WAClC12E,EAAKhsG,OAAO,YAAaupI,EAAS8wD,WAEjB,IAAb3Y,EAAgB,CAClB/5B,GAAW,GACXtjK,QAAQ45F,IAAI,gCACZ,UACQopE,GAAczE,KAAK,oBAAqB52C,EAAM,CAClD0gC,QAAS,CACP,eAAgB,yBAGpBib,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI,gBAAiB17F,EAAMi9G,SACnCmoD,GAAW,EACb,CACF,MACE,IACEA,GAAW,GACX,MAAMutC,QAAoB7tC,GAAcq8B,IAAI,qBAAD5qM,OACpB8/M,EAAIa,cACzBztF,EACA,CACE0gC,QAAS,CACP,eAAgB,yBAIK,MAAvBwoD,EAAYn5L,QACd4rJ,GAAW,GACXgC,GAAMC,QAAQ,kBAEdvlK,QAAQ45F,IAAI,UACZ55F,QAAQ45F,IAAIi3G,EAAYn5L,QACxB4rJ,GAAW,GACXgC,GAAMpnK,MAAM,oBAEhB,CAAE,MAAOA,GACP8B,QAAQ45F,IAAI,yBAA0B17F,EAAMi9G,QAC9C,CACF,EA8LuD1yC,SAAC,oBAIrD46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAGH,EC2DV,GAzYwBwtI,IACtB,MAAM5G,EAAYpgF,OAAcW,WACzBytE,EAAUC,IAAelkF,EAAAA,EAAAA,UAAS,GACnC88F,EAAgBp4C,GAAQzwK,IAAI,UAClC2S,QAAQ45F,IAAIs8G,GAEZ,MAAOhxD,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvCokF,OAAQyY,EAAaA,aACrBE,KAAM,GACNC,KAAM,GACNC,cAAe,GACfC,MAAO,GACPC,QAAS,GACTC,MAAO,GACPC,SAAU,GACVC,UAAW,GACXC,SAAU,GACVC,QAAS,GACTC,SAAU,GACVC,WAAY,GACZC,UAAW,KACXC,gBAAiB,GACjBC,aAAc,GACdC,YAAa,OAGTvhB,EAAeA,CAACvgG,EAAO6oG,KAC3B,MAAMnuK,EAAWslE,EAAM/rG,OAAS+rG,EAAM/rG,OAAO0B,MAAQqqG,EAAMi6B,MAC3DkuE,EAAY,IACPr4C,EACH,CAAC+4C,GAAYnuK,GACb,EAGEwjL,EAAmBA,CAACtjN,EAAGvB,KAC3B,MAAMywM,EAAOlvM,EAAE3G,OAAO6zM,MAAM,GAC5B,GAAKgC,EAEL,GAAa,YAATzwM,EAAoB,CACtB8uM,EAAY,IACPr4C,EACHgyD,YAAahY,IAEf,MAAMC,EAAWrsL,IAAIC,gBAAgBmsL,GACrCiY,EAAwBhY,EAC1B,MAAO,GAAa,UAAT1wM,EAAkB,CAC3B8uM,EAAY,IACPr4C,EACH6xD,UAAW7X,IAEb,MAAMC,EAAWrsL,IAAIC,gBAAgBmsL,GACrCkY,EAAsBjY,EACxB,IAGKkY,EAAsBF,IAA2B/9F,EAAAA,EAAAA,UAAS,OAC1Dk+F,EAAoBF,IAAyBh+F,EAAAA,EAAAA,UAAS,OACtDiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GAwHvC,OA5CA1wB,EAAAA,EAAAA,YAAU,KACoBirE,WAC1B,IACE,MAAMyqC,QAAoBp7B,GAAc31K,IAAI,mBAADoH,OACtBwhN,EAAaA,eAElCj2M,QAAQ45F,IAAI,iCAAkCwkG,GAC9C,MAAMmZ,EAAkB,IAAIjwM,KAAK82L,EAAY7rL,KAAKglM,iBAClDha,EAAY,CACV4Y,KAAM/X,EAAY7rL,KAAK7jB,KACvB0nN,KAAMhY,EAAY7rL,KAAK9jB,KACvB4nN,cAAejY,EAAY7rL,KAAKilM,cAChClB,MAAOlY,EAAY7rL,KAAKklM,MACxBlB,QAASnY,EAAY7rL,KAAK68G,QAC1BonF,MAAOpY,EAAY7rL,KAAKq7D,MACxBopI,gBAAiBO,EAAgB9xD,cAAch4J,MAAM,KAAK,GAC1DgpN,SAAUrY,EAAY7rL,KAAKmlM,SAC3BhB,UAAWtY,EAAY7rL,KAAKolM,UAC5BhB,SAAUvY,EAAY7rL,KAAKqlM,SAC3BhB,QAASxY,EAAY7rL,KAAKslM,QAC1BhB,SAAUzY,EAAY7rL,KAAKulM,SAC3Bb,aAAc7Y,EAAY7rL,KAAK0kM,aAC/B1xG,MAAO64F,EAAY7rL,KAAKgzF,QAE1B4xG,EAAwB/Y,EAAY7rL,KAAKgwJ,cACzC60C,EAAsBhZ,EAAY7rL,KAAKwlM,YAEvCz0C,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI,mBACZ55F,QAAQ45F,IAAI17F,GACZolK,GAAW,GACmB,MAA1BplK,EAAM8Y,SAASU,QACjB1X,QAAQ45F,IAAI,4BACZ0jG,EAAY,KAEZt9L,QAAQ45F,IAAI,gBACZ0jG,EAAY,GAEhB,GAGFqB,EAAqB,GACpB,CAACsX,EAAaA,gBAEf53C,EAAAA,GAAAA,KAAA,OAAA51F,UACEk3F,EAAAA,GAAAA,MAAA,QAAMI,MAAM,iBAAgBt3F,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAE2pM,UAAW,SAAU1sJ,WAAY,MAAO3hC,MAAO,QAASg4D,SAAC,4BAGtEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,CAC/B4uI,GACCh5C,EAAAA,GAAAA,KAAA,OACEhpK,IAAKgiN,EACLx3C,IAAI,WACJ1qK,MAAO,CACL8qI,SAAU,OACV8+D,UAAW,OACXC,UAAW,QACXhrG,OAAQ,MACR8nG,aAAc,UAIlBz9B,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMiB,GACN1xK,MAAO,CAAE88C,SAAU,OAAQxhC,MAAO,WAGtC4tJ,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLwwM,OAAO,UACPx9B,SAAWzxK,GAAMsjN,EAAiBtjN,EAAG,WACrCmF,MAAO,CACLoZ,SAAU,WACVhO,IAAK,EACLiO,KAAM,EACNuK,MAAO,OACPtY,OAAQ,OACR6/C,QAAS,EACTikH,OAAQ,UACRvwE,OAAQ,aAIdqqE,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,cAAagR,UAC1Bk3F,EAAAA,GAAAA,MAAA,OAAAl3F,SAAA,CACG6uI,GACCj5C,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKiiN,EAAoBz3C,IAAI,cAElCxB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMiB,GACN1xK,MAAO,CAAE88C,SAAU,OAAQxhC,MAAO,WAGtC4tJ,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLwwM,OAAO,UACPx9B,SAAWzxK,GAAMsjN,EAAiBtjN,EAAG,SACrCmF,MAAO,CACLoZ,SAAU,WACVhO,IAAK,EACLiO,KAAM,EACNuK,MAAO,OACPtY,OAAQ,OACR6/C,QAAS,EACTikH,OAAQ,UACRvwE,OAAQ,eAMhB2rE,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,UACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,+BACZ/0K,MAAOm6J,EAASixD,KAChB10C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,cAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,UACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,+BACZ/0K,MAAOm6J,EAASkxD,KAChB30C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,iBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,oBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,8BACZ/0K,MAAOm6J,EAASmxD,cAChB50C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,uBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,WACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,wBACZ/0K,MAAOm6J,EAASoxD,MAChB70C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAE/4F,SAAC,aAClB41F,EAAAA,GAAAA,KAAC8wC,GAAM,CACLn8M,GAAG,UACHtE,KAAK,UACLqO,QAASsyM,EACTvvC,YAAY,mBACZ/0K,MACEm6J,EAASqxD,QACL,CAAElnF,MAAO61B,EAASqxD,QAASxrN,MAAOm6J,EAASqxD,SAC3C,KAEN90C,SAAWouC,GACTla,EAAaka,EAAgB,WAE/BC,gBAAgB,sBAGpBnwC,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,WACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,mBACZ/0K,MAAOm6J,EAASsxD,MAChB/0C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAKvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,cACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,6BACZ/0K,MAAOm6J,EAASuxD,SAChBh1C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,eACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,8BACZ/0K,MAAOm6J,EAASwxD,UAChBj1C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,sBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,cACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,6BACZ/0K,MAAOm6J,EAASyxD,SAChBl1C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,aACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,4BACZ/0K,MAAOm6J,EAAS0xD,QAChBn1C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,oBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,cACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,6BACZ/0K,MAAOm6J,EAAS2xD,SAChBp1C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,kBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,sBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgpE,UAAU,aACV1sE,MAAOm6J,EAAS8xD,gBAChBv1C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,4BAIvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAhU5B6zC,UACb3jK,EAAE0uG,iBACF,MAAMipB,EAAO,IAAIm6B,SAoBjB,GAnBAn6B,EAAKhsG,OAAO,SAAUs6L,EAAaA,cACnCtuF,EAAKhsG,OAAO,OAAQupI,EAASixD,MAC7BxuF,EAAKhsG,OAAO,OAAQupI,EAASkxD,MAC7BzuF,EAAKhsG,OAAO,gBAAiBupI,EAASmxD,eACtC1uF,EAAKhsG,OAAO,QAASupI,EAASoxD,OAC9B3uF,EAAKhsG,OAAO,UAAWupI,EAASqxD,SAChC5uF,EAAKhsG,OAAO,QAASupI,EAASsxD,OAC9B7uF,EAAKhsG,OAAO,WAAYupI,EAASuxD,UACjC9uF,EAAKhsG,OAAO,eAAgBupI,EAAS+xD,cACrCtvF,EAAKhsG,OAAO,cAAeupI,EAASgyD,aACpCvvF,EAAKhsG,OAAO,YAAaupI,EAASwxD,WAClC/uF,EAAKhsG,OAAO,WAAYupI,EAASyxD,UACjChvF,EAAKhsG,OAAO,UAAWupI,EAAS0xD,SAChCjvF,EAAKhsG,OAAO,WAAYupI,EAAS2xD,UACjClvF,EAAKhsG,OAAO,aAAcupI,EAAS4xD,YACnCnvF,EAAKhsG,OAAO,YAAaupI,EAAS6xD,WAClCpvF,EAAKhsG,OAAO,kBAAmBupI,EAAS8xD,iBACxCh3M,QAAQ45F,IAAIyjG,GAEK,IAAbA,EAAgB,CAClB/5B,GAAW,GACXtjK,QAAQ45F,IAAI,YACZ,UACQopE,GAAczE,KAAK,mBAAoB52C,EAAM,CACjD0gC,QAAS,CACP,eAAgB,yBAGpBib,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI,gBAAiB17F,EAAMi9G,SACnCmoD,GAAW,EACb,CACF,MACE,IACEA,GAAW,GA8Bf,SAAuB37C,GACrB,IAAK,MAAO99H,EAAKkB,KAAU48H,EAAKh1H,UAC9BqN,QAAQ45F,IAAI,GAADnlG,OAAI5K,EAAG,MAAA4K,OAAK1J,GAE3B,CAjCIq0M,CAAcz3E,GACd3nH,QAAQ45F,IAAI,cAEZ,MAAMi3G,QAAoB7tC,GAAcq8B,IAAI,mBAAD5qM,OACtBwhN,EAAaA,cAChCtuF,EACA,CACE0gC,QAAS,CACP,eAAgB,yBAIK,MAAvBwoD,EAAYn5L,QACd4rJ,GAAW,GACXtjK,QAAQ45F,IAAIi3G,GAGZvrC,GAAMC,QAAQ,mBAEdjC,GAAW,GACXtjK,QAAQ45F,IAAIi3G,EAAYn5L,QAGxB4tJ,GAAMpnK,MAAM,qBAEhB,CAAE,MAAOA,GACP8B,QAAQ45F,IAAI,gBAAiB17F,EAAMi9G,QACrC,CAMF,EAwPyD1yC,SAAC,qBAIrD46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,wBAIL,ECnJV,GApP2BwtI,IACLn4C,GAAQzwK,IAAI,UAAhC,MACO4jN,EAAWC,IAAgB93F,EAAAA,EAAAA,WAAS,IAEpC4+F,EAAYC,IAAiB7+F,EAAAA,EAAAA,UAAS,IACvC+3F,EAAaA,KACjB8G,GAAeC,GAAmB,IAC7BA,EACH,CACE7G,UAAW,EACXrzC,OAAQi4C,EAAaA,aACrBxnN,KAAM,GACNsmG,KAAM,GACNrmG,KAAM,GACNy1K,MAAM,EACNE,QAAQ,EACRD,QAAQ,KAEV,GAGGf,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAEvC1wB,EAAAA,EAAAA,YAAU,KAeRwoH,GAAa,GACTD,GAfct9C,WAChB2P,GAAW,GACX,IACE,MAAM86B,QAAoBp7B,GAAc31K,IAAI,iCAADoH,OACRwhN,EAAaA,eAEhDgC,EAAc7Z,EAAY7rL,MAC1BvS,QAAQ45F,IAAIwkG,EAAY7rL,MACxB+wJ,GAAW,EACb,CAAE,MAAOplK,GACPolK,GAAW,GACXtjK,QAAQ45F,IAAI,oBAAqB17F,EAAMi9G,QACzC,GAIAy0F,EACF,GACC,CAACqB,EAAYgF,EAAaA,eAE7B,MA0CMtgB,EAAeA,CAACppM,EAAO0xM,EAAWlzM,KACtC,MAAMotN,EAAoB,IAAIH,GAC9BG,EAAkB5rN,GAAS,IACtB4rN,EAAkB5rN,GACrB,CAAC0xM,GAAYlzM,GAEfktN,EAAcE,EAAkB,EAwClC,OACEx4C,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAACs8B,GAAc,IACdqd,EAAWxoF,KAAI,CAAC7H,EAAMp7H,KACrBozK,EAAAA,GAAAA,MAAA,QAAkBloG,UAAU,iBAAgBgR,SAAA,EAC1Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,UACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,OACZ/0K,MAAO48H,EAAKl5H,KACZgzK,SAAWzxK,GAAM2lM,EAAappM,EAAO,OAAQyD,EAAE3G,OAAO0B,aAI1D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,UACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,OACZ/0K,MAAO48H,EAAKj5H,KACZ+yK,SAAWzxK,GAAM2lM,EAAappM,EAAO,OAAQyD,EAAE3G,OAAO0B,gBAI5DszK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,UACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,OACZ/0K,MAAO48H,EAAK5yB,KACZ0sE,SAAWzxK,GAAM2lM,EAAappM,EAAO,OAAQyD,EAAE3G,OAAO0B,eAK5D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACLshG,QAAS43B,EAAKw8C,KACd1C,SAAWzxK,GAAM2lM,EAAappM,EAAO,OAAQyD,EAAE3G,OAAO0mG,YAExD4vE,EAAAA,GAAAA,MAAA,SAAAl3F,SAAA,CAAQ,KAAK,cAGfk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACLshG,QAAS43B,EAAK08C,OACd5C,SAAWzxK,GACT2lM,EAAappM,EAAO,SAAUyD,EAAE3G,OAAO0mG,YAG3C4vE,EAAAA,GAAAA,MAAA,SAAAl3F,SAAA,CAAQ,KAAK,gBAGfk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACLshG,QAAS43B,EAAKy8C,OACd3C,SAAWzxK,GACT2lM,EAAappM,EAAO,SAAUyD,EAAE3G,OAAO0mG,YAG3C4vE,EAAAA,GAAAA,MAAA,SAAAl3F,SAAA,CAAQ,KAAK,mBAIjBk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,YACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB3C,WAAY,WACZn2D,UAAW,QACXt9D,SAAA,CAEDl8E,IAAUyrN,EAAWxuN,OAAS,IAC7Bm2K,EAAAA,GAAAA,MAAA,UAAQloG,UAAU,iBAAiBqoD,QAASqxF,EAAW1oI,SAAA,EACrD41F,EAAAA,GAAAA,KAAC0yC,GAAa,CAAC1/J,KAAM,GAAIomB,UAAU,SAAS,kBAIrC,IAAVlrE,IACC8xK,EAAAA,GAAAA,KAAA,UACE5mG,UAAU,mBACVqoD,QAAU/nG,GA9HL47I,OAAOpnK,EAAOwrB,KAC3BA,GACFA,EAAM2mF,iBAER4kE,GAAW,GAEX,MAAMsuC,EAAcoG,EAAWzrN,GAG/B,GAAIqlN,GAAeA,EAAYP,UAAW,CACxC/tC,GAAW,GACX,IACE,MAAMtsJ,QAAiBgsJ,GAAclnE,OAAO,sBAADrnG,OACnBm9M,EAAYP,YAGpCrxM,QAAQ45F,IAAI5iF,EAASzE,MAErB,MAAMu/L,EAAe,IAAIkG,GACzBlG,EAAalvM,OAAOrW,EAAO,GAC3B0rN,EAAcnG,GAEdxsC,GAAMC,QAAQ,6BACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,gBAAiBA,GAC/BonK,GAAMpnK,MAAM,yBACZolK,GAAW,EACb,CACF,KAAO,CACL,MAAMwuC,EAAe,IAAIkG,GACzBlG,EAAalvM,OAAOrW,EAAO,GAC3B0rN,EAAcnG,GACdxuC,GAAW,EACb,CACA4tC,GAAa,EAAK,EA2Fca,CAAWxlN,EAAOwrB,GAAO0wD,SAC9C,cAKJ46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBA9FEl8E,MAmGb8xK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAhMpB6zC,UACnB3jK,EAAE0uG,iBACF4kE,GAAW,GAEX,IACEtjK,QAAQ45F,IAAI,oBAAqBo+G,GACjC,MAAM36C,EAAW26C,EAAWxoF,KAAImkC,UAC9B,MAAMg+C,EAAiB,CACrBN,UAAW1pF,EAAK0pF,UAChBrzC,OAAQr2C,EAAKq2C,OACbvvK,KAAMk5H,EAAKl5H,KACXsmG,KAAM4yB,EAAK5yB,KACXrmG,KAAMi5H,EAAKj5H,KACXy1K,KAAMx8C,EAAKw8C,KACXE,OAAQ18C,EAAK08C,OACbD,OAAQz8C,EAAKy8C,QAGfpkK,QAAQ45F,IAAI,oBAAqB+3G,GAEjC,MAAM36L,QAAiBgsJ,GAAcq8B,IAAI,sBAAD5qM,OAChBkzH,EAAK0pF,WAC3BM,EACA,CACEtpD,QAAS,CACP,eAAgB,sBAItBroJ,QAAQ45F,IAAI5iF,EAASzE,KAAK,UAGtBq6F,QAAQwwD,IAAIC,GAClBiI,GAAMC,QAAQ,6BACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,SAAUA,GACxBonK,GAAMpnK,MAAM,mBACd,CACAgzM,GAAa,EAAK,EAyJ2CzoI,SAAC,uBAI3D,ECtBP,GA5N2BwtI,IACzB,MAAO5yC,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACvCp5G,QAAQ45F,IAAIq8G,EAAaA,cACzB,MAAOhF,EAAWC,IAAgB93F,EAAAA,EAAAA,WAAS,IACpC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,IACnC+3F,EAAaA,KACjB5T,GAAa6T,GAAiB,IACzBA,EACH,CACEC,UAAW,EACXrzC,OAAQi4C,EAAaA,aACrBvnN,KAAM,GACNm2K,OAAQ,EACRC,aAAc,EACdC,YAAa,EACb9W,MAAO,KAET,GAGJvlE,EAAAA,EAAAA,YAAU,KACR46E,GAAW,GAaX4tC,GAAa,GACb5tC,GAAW,GACP2tC,GAdct9C,WAChB,IACE,MAAMyqC,QAAoBp7B,GAAc31K,IAAI,kCAADoH,OACPwhN,EAAaA,eAEjDj2M,QAAQ45F,IAAIwkG,GACZb,EAAYa,EAAY7rL,KAC1B,CAAE,MAAOrU,GACP8B,QAAQ45F,IAAI17F,GACZ8B,QAAQ45F,IAAI,qBACd,GAKAg2G,EACF,GACC,CAACqB,IAEJ,MAuCMtb,EAAeA,CAACppM,EAAO0xM,EAAWlzM,KACtC,MAAM2mN,EAAkB,IAAIxsD,GAC5BwsD,EAAgBnlN,GAAS,IACpBmlN,EAAgBnlN,GACnB,CAAC0xM,GAAYlzM,GAEfwyM,EAAYmU,EAAgB,EAsC9B,OACE/xC,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAACs8B,GAAc,IACdz1C,EAAS11B,KAAI,CAAC7H,EAAMp7H,KACnBozK,EAAAA,GAAAA,MAAA,QAAkB58J,OAAO,GAAG00D,UAAU,iBAAgBgR,SAAA,EACpDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,UACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,8BACZ/0K,MAAO48H,EAAKj5H,KACZ+yK,SAAWzxK,GAAM2lM,EAAappM,EAAO,OAAQyD,EAAE3G,OAAO0B,aAI1D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAE/4F,SAAC,YAClB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,UACZ/0K,MAAO48H,EAAKk9C,OACZpD,SAAWzxK,GAAM2lM,EAAappM,EAAO,SAAUyD,EAAE3G,OAAO0B,gBAI9D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAG/pG,UAAU,aAAYgR,SAAC,kBAGzC41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,eACZ/0K,MAAO48H,EAAKm9C,aACZrD,SAAWzxK,GACT2lM,EAAappM,EAAO,eAAgByD,EAAE3G,OAAO0B,aAKnD40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,GAAG/pG,UAAU,aAAYgR,SAAC,iBAGzC41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,cACZ/0K,MAAO48H,EAAKo9C,YACZtD,SAAWzxK,GACT2lM,EAAappM,EAAO,cAAeyD,EAAE3G,OAAO0B,gBAKpD40K,EAAAA,GAAAA,MAAA,OACEloG,UAAU,YACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB3C,WAAY,WACZn2D,UAAW,QACXt9D,SAAA,CAEDl8E,IAAU24J,EAAS17J,OAAS,IAC3Bm2K,EAAAA,GAAAA,MAAA,UAAQloG,UAAU,iBAAiBqoD,QAASqxF,EAAW1oI,SAAA,EACrD41F,EAAAA,GAAAA,KAAC0yC,GAAa,CAAC1/J,KAAM,GAAIomB,UAAU,SAAS,kBAIrC,IAAVlrE,IACC8xK,EAAAA,GAAAA,KAAA,UACE5mG,UAAU,mBACVqoD,QAAU/nG,GA5GL47I,OAAOpnK,EAAOwrB,KAC3BA,GACFA,EAAM2mF,iBAER4kE,GAAW,GACX,MAAMsuC,EAAc1sD,EAAS34J,GAE7B,GAAIqlN,GAAeA,EAAYP,UAC7B,IACE/tC,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAclnE,OAAO,sBAADrnG,OACnBm9M,EAAYP,YAGpCrxM,QAAQ45F,IAAI5iF,EAASzE,MAErB,MAAMu/L,EAAe,IAAI5sD,GACzB4sD,EAAalvM,OAAOrW,EAAO,GAC3BgxM,EAAYuU,GACZxsC,GAAMC,QAAQ,gBACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,gBAAiBA,GAC/BonK,GAAMpnK,MAAM,yBACZolK,GAAW,EACb,KACK,CACL,MAAMwuC,EAAe,IAAI5sD,GACzB4sD,EAAalvM,OAAOrW,EAAO,GAC3BgxM,EAAYuU,EACd,CACAxuC,GAAW,GACX4tC,GAAa,EAAK,EA4Eca,CAAWxlN,EAAOwrB,GAAO0wD,SAC9C,cAKJ46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBA9EEl8E,MAmFb8xK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QA3KpB6zC,UACnB3jK,EAAE0uG,iBACF4kE,GAAW,GACX,IACEtjK,QAAQ45F,IAAI,oBAAqBsrD,GACjC,MAAMmY,EAAWnY,EAAS11B,KAAImkC,UAC5B,MAAMg+C,EAAiB,CACrBN,UAAW1pF,EAAK0pF,UAChBrzC,OAAQr2C,EAAKq2C,OACbtvK,KAAMi5H,EAAKj5H,KACXm2K,OAAQl9C,EAAKk9C,OACbC,aAAcn9C,EAAKm9C,aACnBC,YAAap9C,EAAKo9C,YAClB9W,MAAOtmC,EAAKsmC,OAGdjuJ,QAAQ45F,IAAI,oBAAqB+3G,GAEjC,MAAM36L,QAAiBgsJ,GAAcq8B,IAAI,sBAAD5qM,OAChBkzH,EAAK0pF,WAC3BM,EACA,CACEtpD,QAAS,CACP,eAAgB,sBAItBroJ,QAAQ45F,IAAI5iF,EAASzE,MACrB+wJ,GAAW,EAAM,UAGb12D,QAAQwwD,IAAIC,GAClBiI,GAAMC,QAAQ,eAChB,CAAE,MAAOrnK,GACP8B,QAAQ9B,MAAM,SAAUA,EAC1B,CACAgzM,GAAa,EAAK,EAuI2CzoI,SAAC,uBAI3D,ECxEP,GAhJ0BwtI,IACxB,MAAO5yC,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAEhC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvC4kD,OAAQi4C,EAAaA,aACrB/+I,YAAa,GACbkhJ,UAAW,MAGN1I,EAAcC,IAAmBv2F,EAAAA,EAAAA,UAAS,IAEjD1wB,EAAAA,EAAAA,YAAU,KACUirE,WAChB2P,GAAW,GACX,IACE,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,qBAADoH,OACjBwhN,EAAaA,eAEpCj2M,QAAQ45F,IAAI5iF,GACZumL,EAAY,CACVrmI,YAAalgD,EAASzE,KAAK2kD,YAC3BkhJ,UAAWphM,EAASzE,KAAK6lM,YAE3BzI,EAAgB,GAChBrsC,GAAW,EACb,CAAE,MAAOplK,GACHA,EAAM8Y,UAAsC,MAA1B9Y,EAAM8Y,SAASU,QAEnC1X,QAAQ45F,IAAI,YACZ+1G,EAAgB,KAGhB3vM,QAAQ45F,IAAI,sBACZ+1G,EAAgB,IAElBrsC,GAAW,EACb,GAEFssC,EAAW,GACV,CAACqG,EAAaA,eAEjB,MAAMtgB,EAAeA,CAAC3lM,EAAGiuM,KACvB,MAAM,MAAElzM,GAAUiF,EAAE3G,OACpBk0M,EAAY,IACPr4C,EACH,CAAC+4C,GAAYlzM,GACb,EAyDJ,OACEszK,EAAAA,GAAAA,KAAA2F,GAAAA,SAAA,CAAAv7F,UACEk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,iBAAgBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,iBACP41F,EAAAA,GAAAA,KAAA,YACElpK,MAAO,CAAEutB,OAAQ,OAAQjiB,OAAQ,OAAQm9H,QAAS,QAClDkiC,YAAY,cACZ/0K,MAAOm6J,EAAShuF,YAChBuqG,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,uBAIvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,eACP41F,EAAAA,GAAAA,KAAA,YACElpK,MAAO,CAAEutB,OAAQ,OAAQjiB,OAAQ,OAAQm9H,QAAS,QAClDkiC,YAAY,MACZ/0K,MAAOm6J,EAASkzD,UAChB32C,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,qBAIvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAhFtB6zC,UACnB3jK,EAAE0uG,iBACF,MAAMizG,EAAiB,IAAI7vD,SAM3B,GALA6vD,EAAeh2L,OAAO,SAAUs6L,EAAaA,cAC7CtE,EAAeh2L,OAAO,cAAeupI,EAAShuF,aAC9Cy6I,EAAeh2L,OAAO,YAAaupI,EAASkzD,WAE5Cp4M,QAAQ45F,IAAI+3G,GACS,IAAjBjC,EAoBJ,IACEpsC,GAAW,GACXtjK,QAAQ45F,IAAI,gBACZ55F,QAAQ45F,IAAI+3G,GACZ,MAAM36L,QAAiBgsJ,GAAcq8B,IAAI,qBAAD5qM,OACjBwhN,EAAaA,cAClCtE,EACA,CACEtpD,QAAS,CACP,eAAgB,sBAItBroJ,QAAQ45F,IAAI,YAAa5iF,EAASU,QACV,MAApBV,EAASU,OACX4tJ,GAAMC,QAAQ,8BAEdD,GAAMpnK,MAAM,4CAEdolK,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,SAAUA,GACxBolK,GAAW,EACb,KA3CA,CAEEtjK,QAAQ45F,IAAI,iBACZ0pE,GAAW,GACX,IACEtjK,QAAQ45F,IAAI+3G,SACN3uC,GAAczE,KAAK,oBAAqBozC,EAAgB,CAC5DtpD,QAAS,CACP,eAAgB,sBAGpBib,GAAW,GACXgC,GAAMC,QAAQ,6BAChB,CAAE,MAAOrnK,GACP8B,QAAQ45F,IAAI,iBAAkB17F,EAAMi9G,SACpCmoD,GAAW,GACXgC,GAAMpnK,MAAM,wBACd,CAEF,CAwBA,EA6B+DuqE,SAAC,qBAI3D46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,wBAIR,ECyLP,GArUgCwtI,IAC9B,MAAO5yC,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,KAClC63F,EAAWC,IAAgB93F,EAAAA,EAAAA,WAAS,GAErC+3F,EAAaA,KACjB5T,GAAa6T,GAAiB,IACzBA,EACH,CACEC,UAAW,EACXrzC,OAAQi4C,EAAaA,aACrBvnN,KAAM,GACN2pN,UAAW,GACXC,IAAK,GACLC,MAAO,GACPC,MAAO,GACPC,QAAS,GACTC,SAAU,MAEZ,EAEE1H,EAAS,CACb,kBACA,cACA,UACA,mBACA,mBACA,iBACA,mBACA,oBACA,oBAGFtoH,EAAAA,EAAAA,YAAU,KAkBRwoH,GAAa,GACTD,GAlBct9C,WAChB2P,GAAW,GACX,IACEA,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,4CAADoH,OACMwhN,EAAaA,eAE3Dj2M,QAAQ45F,IAAI5iF,GAEZumL,EAAYvmL,EAASzE,MACrBvS,QAAQ45F,IAAI,UAAW5iF,EAASzE,MAChC+wJ,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI,SACZ0pE,GAAW,EACb,GAIAssC,EACF,GACC,CAACqB,EAAWgF,EAAaA,eAE5B,MA4DMtgB,EAAeA,CAACppM,EAAO0xM,EAAWlzM,KACtC,MAAM2mN,EAAkB,IAAIxsD,GAC5BwsD,EAAgBnlN,GAAS,IACpBmlN,EAAgBnlN,GACnB,CAAC0xM,GAAYlzM,GAEfwyM,EAAYmU,EAAgB,EAsC9B,OACE/xC,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,CACGy8E,EAAS11B,KAAI,CAAC7H,EAAMp7H,KACnBozK,EAAAA,GAAAA,MAAA,QAAkB58J,OAAO,GAAG00D,UAAU,iBAAgBgR,SAAA,EACpDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,UACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgpE,UAAU,aACVqoG,YAAY,8BACZ/0K,MAAO48H,EAAKj5H,KACZ+yK,SAAWzxK,GAAM2lM,EAAappM,EAAO,OAAQyD,EAAE3G,OAAO0B,aAI1D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,eACP41F,EAAAA,GAAAA,KAAA,UACE5vK,KAAK,OACLgpE,UAAU,aACVqoG,YAAY,YACZ/0K,MAAO48H,EAAK0wF,UACZ52C,SAAWzxK,GACT2lM,EAAappM,EAAO,YAAayD,EAAE3G,OAAO0B,OAC3C09E,SAEAuoI,EAAOxhF,KAAI,CAACzpE,EAAOx5D,KAClB8xK,EAAAA,GAAAA,KAAA,UAAoBtzK,MAAOg7D,EAAOkrC,SAAS,GAAExoB,SAC1C1iB,GADUx5D,cAOrBozK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,SACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,MACZ/0K,MAAO48H,EAAK2wF,IACZ72C,SAAWzxK,IACT,MAAMjF,EAAQiF,EAAE3G,OAAO0B,MACvB,GAAc,KAAVA,EAEF,YADA4qM,EAAappM,EAAO,MAAO,IAG7B,MAAMosN,EAAa7tE,WAAW//I,IAE3B0N,MAAMkgN,IACPA,GAAc,GACdA,GAAc,GAEdhjB,EAAappM,EAAO,MAAOxB,EAC7B,QAIN40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,WACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,QACZ/0K,MAAO48H,EAAK4wF,MACZ92C,SAAWzxK,GACT2lM,EACEppM,EACA,QACA2D,KAAKoI,IAAI,GAAIpI,KAAKmI,IAAI,EAAGyyI,WAAW96I,EAAE3G,OAAO0B,QAAU,cAMjE40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,WACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,QACZ/0K,MAAO48H,EAAK6wF,MACZ/2C,SAAWzxK,GACT2lM,EACEppM,EACA,QACA2D,KAAKoI,IAAI,EAAGpI,KAAKmI,IAAI,EAAGyyI,WAAW96I,EAAE3G,OAAO0B,QAAU,WAK9D40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,aACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,UACZ/0K,MAAO48H,EAAK8wF,QACZh3C,SAAWzxK,GACT2lM,EACEppM,EACA,UACA2D,KAAKoI,IAAI,GAAIpI,KAAKmI,IAAI,EAAGyyI,WAAW96I,EAAE3G,OAAO0B,QAAU,cAMjE40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,cACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,WACZ/0K,MAAO48H,EAAK+wF,SACZj3C,SAAWzxK,GACT2lM,EACEppM,EACA,WACA2D,KAAKoI,IAAI,IAAKpI,KAAKmI,IAAI,EAAGyyI,WAAW96I,EAAE3G,OAAO0B,QAAU,WAMhE40K,EAAAA,GAAAA,MAAA,OACEloG,UAAU,YACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB3C,WAAY,WACZn2D,UAAW,QACXt9D,SAAA,CAEDl8E,IAAU24J,EAAS17J,OAAS,IAC3Bm2K,EAAAA,GAAAA,MAAA,UAAQloG,UAAU,iBAAiBqoD,QAASqxF,EAAW1oI,SAAA,EACrD41F,EAAAA,GAAAA,KAAC0yC,GAAa,CAAC1/J,KAAM,GAAIomB,UAAU,SAAS,kBAIrC,IAAVlrE,IACC8xK,EAAAA,GAAAA,KAAA,UACE5mG,UAAU,mBACVqoD,QAAU/nG,GAhLL47I,OAAOpnK,EAAOwrB,KAC3BA,GACFA,EAAM2mF,iBAER,MAAMkzG,EAAc1sD,EAAS34J,GAG7B,GAAIqlN,GAAeA,EAAYP,UAAW,CACxC/tC,GAAW,GACX,IACE,MAAMtsJ,QAAiBgsJ,GAAclnE,OAAO,2BAADrnG,OACdm9M,EAAYP,YAGzCrxM,QAAQ45F,IAAI5iF,EAASzE,MAErB,MAAMu/L,EAAe,IAAI5sD,GACzB4sD,EAAalvM,OAAOrW,EAAO,GAC3BgxM,EAAYuU,GAEZxsC,GAAMC,QAAQ,gBACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,gBAAiBA,GAC/BonK,GAAMpnK,MAAM,yBACZolK,GAAW,EACb,CACF,KAAO,CACLA,GAAW,GACX,MAAMwuC,EAAe,IAAI5sD,GACzB4sD,EAAalvM,OAAOrW,EAAO,GAC3BgxM,EAAYuU,EACd,CACAZ,GAAa,EAAK,EA+Ica,CAAWxlN,EAAOwrB,GAAO0wD,SAC9C,cAKJ46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAnJEl8E,MAwJb8xK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QApQpB6zC,UACnB3jK,EAAE0uG,iBAEF,IAAK,MAAMipB,KAAQu9B,EAEjB,GADAllJ,QAAQ45F,IAAI,SAET+tB,EAAKj5H,OACLi5H,EAAK0wF,YACL1wF,EAAK2wF,MACL3wF,EAAK4wF,QACL5wF,EAAK6wF,QACL7wF,EAAK8wF,UACL9wF,EAAK+wF,SAGN,YADApzC,GAAMrvH,KAAK,8BAIfqtH,GAAW,GAEX,IACEtjK,QAAQ45F,IAAI,oBAAqBsrD,GACjC,MAAMmY,EAAWnY,EAAS11B,KAAImkC,UAC5B,MAAMg+C,EAAiB,CACrBN,UAAW1pF,EAAK0pF,UAChBrzC,OAAQr2C,EAAKq2C,OACbtvK,KAAMi5H,EAAKj5H,KACX2pN,UAAW1wF,EAAK0wF,UAChBC,IAAK3wF,EAAK2wF,IACVC,MAAO5wF,EAAK4wF,MACZC,MAAO7wF,EAAK6wF,MACZC,QAAS9wF,EAAK8wF,QACdC,SAAU/wF,EAAK+wF,UAGjB14M,QAAQ45F,IAAI,oBAAqB+3G,GAEjC,MAAM36L,QAAiBgsJ,GAAcq8B,IAAI,2BAAD5qM,OACXkzH,EAAK0pF,WAChCM,EACA,CACEtpD,QAAS,CACP,eAAgB,sBAItBroJ,QAAQ45F,IAAI5iF,EAASzE,KAAK,UAGtBq6F,QAAQwwD,IAAIC,GAClBiI,GAAMC,QAAQ,gBACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,SAAUA,GACxBonK,GAAMpnK,MAAM,qBACZolK,GAAW,EACb,CACA4tC,GAAa,EAAK,EA2M2CzoI,SAAC,uBAI3D,ECnKP,GA7J2BwtI,IACzB,MAAO5yC,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC8rC,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvC4kD,OAAQi4C,EAAaA,aACrB5E,UAAW,EACXtV,UAAW,GACXia,UAAW,MAGNp7L,EAAQg+L,IAAax/F,EAAAA,EAAAA,UAAS,KAcrC1wB,EAAAA,EAAAA,YAAU,KACUirE,WAChB3zJ,QAAQ45F,IAAI,oBACZ55F,QAAQ45F,IAAIsrD,EAAS8wD,WAErB,IACE1yC,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,kCAADoH,OACJwhN,EAAaA,eAOjD,GALA1Y,GAAa6T,IAAY,IAAAyH,EAAA,MAAM,IAC1BzH,EACHrV,WAA2B,QAAhB8c,EAAA7hM,EAASzE,KAAK,UAAE,IAAAsmM,OAAA,EAAhBA,EAAkB9b,WAAY,GACzCiZ,UAAW,GACZ,IACGh/L,EAASzE,KAAM,CACjB,MAAMumM,EAAa9hM,EAASzE,KAAKi9G,KAAK5oD,IAAI,CACxCyqI,UAAWzqI,EAAKyqI,UAChBtU,SAAUn2H,EAAKm2H,aAEjB6b,EAAUE,EACZ,CACAx1C,GAAW,GAEXtjK,QAAQ45F,IAAIsrD,GACZllJ,QAAQ45F,IAAIh/E,GAEZ5a,QAAQ45F,IAAI,SAAU5iF,EAASzE,KAAK,GAAGwqL,SACzC,CAAE,MAAO/lL,GACPssJ,GAAW,GACXtjK,QAAQ45F,IAAI5iF,EACd,GAEF44L,EAAW,GACV,CAACqG,EAAaA,eAsDjB,OACE53C,EAAAA,GAAAA,KAAA2F,GAAAA,SAAA,CAAAv7F,UACEk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,iBAAiB+sG,SAtDhB7Q,UACnB3jK,EAAE0uG,iBACF4kE,GAAW,GACX,MAAM37C,EAAO,IAAIm6B,SACjBn6B,EAAKhsG,OAAO,YAAaupI,EAASmsD,WAClC1pF,EAAKhsG,OAAO,SAAUupI,EAAS8Y,QAC/B9Y,EAAS8wD,UAAU5hN,SAAS8qM,IAC1Bv3E,EAAKhsG,OAAO,YAAaujL,EAAK,IAGhC,IACEl/L,QAAQ45F,IAAI+tB,GACZ,MAAMipF,QAAqB5tC,GAAczE,KAAK,qBAG5C52C,GAGF29C,GAAMC,QAAQ,yBACdqzC,GAAWG,GAAe,IAAIA,EAAYnI,EAAar+L,QACvDvS,QAAQ45F,IAAIg3G,GACZrT,EAAY,CACVv/B,OAAQi4C,EAAaA,aACrB5E,UAAW,EACXtV,UAAW,GACXia,UAAW,KAEb1yC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI17F,GACZonK,GAAMpnK,MAAM,wBACd,CACAolK,GAAW,EAAM,EAsByC76F,SAAA,EACtD41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzB41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,eAAcgR,UAC3B41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLwwM,OAAO,UACPr/E,UAAQ,EACR6hD,SA7GqBzxK,IAC/B,MAAMujN,EAAgB7iN,MAAM23F,KAAKr4F,EAAE3G,OAAO6zM,OAE1CK,GAAa6T,IAAY,IACpBA,EACH4E,UAAW,IAAI5E,EAAa4E,aAAczC,OAI5CvjN,EAAE3G,OAAO0B,MAAQ,EAAE,SAyGfszK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,kBAAiBgR,SACX,IAAlB7tD,EAAOpxB,QACN60K,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,qBAEH7tD,EAAO40G,KAAI9lC,IAAA,IAAC,UAAE2nH,EAAS,SAAEtU,GAAUrzG,EAAA,OACjCi2E,EAAAA,GAAAA,MAAA,OAAqBloG,UAAU,gBAAegR,SAAA,EAC5C41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK0nM,EAAUl9B,IAAG,gBAAAprK,OAAkB48M,MACzChzC,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMwB,GACN3vG,UAAU,cACVqoD,QAASA,IA1CJ6zC,WACnB2P,GAAW,GACX,IACEtjK,QAAQ45F,IAAI5mG,SACNgwK,GAAclnE,OAAO,sBAADrnG,OAAuBzB,IACjD4lN,GAAWG,GACTA,EAAW3oK,QAAQqrF,GAAUA,EAAM41E,YAAcr+M,MAGnDsyK,GAAMC,QAAQ,wBACdjC,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI17F,GACZonK,GAAMpnK,MAAM,iBACZolK,GAAW,EACb,GA2B6B4vC,CAAa7B,OALtBA,EAOJ,OAIZhzC,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,YAAWgR,UACxB41F,EAAAA,GAAAA,KAAA,UAAQ5vK,KAAK,SAASgpE,UAAU,iBAAgBgR,SAAC,qBAIlD46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,wBAIR,ECrEP,GAlF6B8rI,IAC3B,MAAOrhI,EAAQshI,IAAap7F,EAAAA,EAAAA,UAAS,QAS/Bq7F,EAAY,CAChBxrI,OAAQ,SACRs7F,OAAQ,WAqBV,OACE5E,EAAAA,GAAAA,MAAA,OAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,mBAAmBtiE,MAAO,CAAE4jB,MAAO,QAAS0vD,UACzDk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,cAActiE,MAjCjB,CACfC,QAAS,OACTypM,eAAgB,gBAChB6V,cAAe,OACf92E,QAAS,GA6BuCn1D,SAAA,EAC1Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAsB,SAAXyb,EAAoB,SAAW,gBAAgBzK,SAAA,EAC7D41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,QAAQ/rI,SAAC,UAGxD41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAsB,YAAXyb,EAAuB,SAAW,gBAAgBzK,SAAA,EAChE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,WAAW/rI,SAAC,aAG3D41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAsB,YAAXyb,EAAuB,SAAW,gBAAgBzK,SAAA,EAChE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,WAAW/rI,SAAC,aAG3D41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAsB,YAAXyb,EAAuB,SAAW,gBAAgBzK,SAAA,EAChE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,WAAW/rI,SAAC,aAG3D41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAsB,WAAXyb,EAAsB,SAAW,gBAAgBzK,SAAA,EAC/D41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,UAAU/rI,SAAC,YAG1D41F,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OACEloG,UAAsB,iBAAXyb,EAA4B,SAAW,gBAAgBzK,SAAA,EAElE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAOs/M,EAAW30F,QAASA,IAAM00F,EAAU,gBAAgB/rI,SAAC,kBAGhE41F,EAAAA,GAAAA,KAAA,kBAINA,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,cAAagR,SA/DVksI,MACpB,OAAQzhI,GACN,IAAK,OACH,OAAOmrF,EAAAA,GAAAA,KAAC26C,GAAc,CAAC/C,aAAc1B,EAAI0E,gBAC3C,IAAK,UACH,OAAO56C,EAAAA,GAAAA,KAAC66C,GAAiB,CAACjD,aAAc1B,EAAI0E,gBAC9C,IAAK,UACH,OAAO56C,EAAAA,GAAAA,KAAC86C,GAAiB,CAAClD,aAAc1B,EAAI0E,gBAC9C,IAAK,UACH,OAAO56C,EAAAA,GAAAA,KAAC+6C,GAAiB,CAACnD,aAAc1B,EAAI0E,gBAC9C,IAAK,SACH,OAAO56C,EAAAA,GAAAA,KAACg7C,GAAgB,CAACpD,aAAc1B,EAAI0E,gBAC7C,IAAK,eACH,OAAO56C,EAAAA,GAAAA,KAACi7C,GAAsB,CAACrD,aAAc1B,EAAI0E,gBACnD,QACE,OAAO,KACX,EA+CgCtE,OAC1B,ECxDV,GA3BuB4E,KAEnBl7C,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,8BAA6BgR,UAC9Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,UAASgR,SAAA,EACtBk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,uBACiB41F,EAAAA,GAAAA,KAAA,SAAM,mBAE3BsB,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,qBACe41F,EAAAA,GAAAA,KAAA,SAAM,uCAGzBA,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,WAAWy2B,UAAU,iBAAgBgR,SAAC,8CAG9Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,eAAey2B,UAAU,qBAAoBgR,SAAC,sBAGtD41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,uBAAuBy2B,UAAU,qBAAoBgR,SAAC,uCC6DxE,GAxE0B+wI,KACxB,MAAOC,EAAcC,IAAmBtgG,EAAAA,EAAAA,UAAS,CAC/C,CACEriD,MAAO,aACP/b,QAAQ,2UAGRslH,OAAQ,eACRvvE,UAAU,EACV60E,KAAMkB,IAER,CACE/vG,MAAO,WACP/b,QAAQ,sVAGRslH,OAAQ,WACRvvE,UAAU,EACV60E,KAAMuB,IAER,CACEpwG,MAAO,WACP/b,QAAQ,2UAGRslH,OAAQ,uBACRvvE,UAAU,EACV60E,KAAMqB,MAoBJ0yC,EAAQF,EAAajqF,KAAI,CAACoqF,EAAMrtN,KACpC8xK,EAAAA,GAAAA,KAACw7C,GAAsB,CAErB9iJ,MAAO6iJ,EAAK7iJ,MACZ/b,QAAS4+J,EAAK5+J,QACdslH,OAAQs5C,EAAKt5C,OACbvvE,SAAU6oH,EAAK7oH,SACf4kC,aAAcA,IAvBQppI,KACxB,MAAMutN,EAAWL,EAAajqF,KAAI,CAACoqF,EAAMnpE,KAAG,IACvCmpE,EACH7oH,SAAU0/C,IAAQlkJ,MAEpBmtN,EAAgBI,EAAS,EAkBHC,CAAiBxtN,GACrCspI,aAAcA,IAhBQtpI,KACxB,MAAMutN,EAAWL,EAAajqF,KAAI,CAACoqF,EAAMnpE,KAAG,IACvCmpE,EACH7oH,UAAU,MAEZ2oH,EAAgBI,EAAS,EAWHE,GAAwBvxI,UAE5C41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMg0C,EAAKh0C,KAAMv0H,KAAK,KAAK5gC,MAAM,aAR7ClkB,KAYT,OACEozK,EAAAA,GAAAA,MAAA,WAASloG,UAAU,wCAAuCgR,SAAA,EACxDk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,sBACkB,KACpB41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,mBAEnD41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEkxI,MAChB,mCC5Ed,MA2BA,GA3BiC58M,IAC/B,MAAOk9M,EAAgBC,IAAqB9gG,EAAAA,EAAAA,WAAS,IAC9C+gG,EAAaC,IAAkBhhG,EAAAA,EAAAA,WAAS,GACzCxwB,GAAMC,EAAAA,EAAAA,UAqBZ,OAnBAH,EAAAA,EAAAA,YAAU,KACR,MAAM+gD,EAAW,IAAIyhE,sBAAqBxhH,IAAc,IAAZu+C,GAAMv+C,EAC5Cu+C,EAAMgyE,iBAAmBE,IAC3BD,GAAkB,GAClBE,GAAe,GACjB,GACCr9M,GAMH,OAJI6rF,EAAIvL,SACNosD,EAASpQ,QAAQzwC,EAAIvL,SAGhB,KACDuL,EAAIvL,SACNosD,EAAS+D,UAAU5kD,EAAIvL,QACzB,CACD,GACA,CAACuL,EAAK7rF,EAASo9M,IAEX,CAACvxH,EAAKqxH,EAAgBE,EAAY,ECsC3C,GApDqBE,KACnB,MAAMC,EAAc,CAClB,CACE10C,KAAMoB,GACN3oK,MAAO,EACP04D,MAAO,qBAET,CACE6uG,KAAMsB,GACN7oK,MAAO,IACP04D,MAAO,qBAET,CACE6uG,KAAMmB,GACN1oK,MAAO,GACP04D,MAAO,gBAET,CACE6uG,KAAMW,GACNloK,MAAO,GACP04D,MAAO,gBAGJ6xB,EAAKuxH,GAAeI,GAAwB,CACjDzoJ,UAAW,KAGP0oJ,EAAaF,EAAY9qF,KAAI,CAACoqF,EAAMrtN,KAEtCozK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,YAAWgR,SAAA,EACxB41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMg0C,EAAKh0C,KAAMv0H,KAAK,KAAK5gC,MAAM,aAClDkvJ,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,MAAA51F,SACG0xI,GACC97C,EAAAA,GAAAA,KAAC9zE,GAAAA,GAAO,CAAC5pF,MAAO,EAAG4jB,IAAKq1L,EAAKv7M,MAAOlB,SAAU,EAAGS,OAAQ,MAEzD,OAGJygK,EAAAA,GAAAA,KAAA,KAAA51F,SAAImxI,EAAK7iJ,aAVmBxqE,KAgBpC,OACE8xK,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,iBAAiBmxB,IAAKA,EAAIngB,UAC3C41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,wBAAuBgR,SAAE+xI,KAChC,EC9Bd,GA3BqBC,KAEjBp8C,EAAAA,GAAAA,KAAA,WAASrrK,GAAG,QAAQykE,UAAU,wBAAuBgR,UACnDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,0BAAyBgR,SAAA,EACtCk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,oBAAmBgR,SAAA,CAAC,gDACY41F,EAAAA,GAAAA,KAAA,SAAM,oBAEpDsB,EAAAA,GAAAA,MAAA,KAAGloG,UAAU,uBAAsBgR,SAAA,CAAC,mFAGlC41F,EAAAA,GAAAA,KAAA,SAAM,4EAGRA,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,oBAAmBgR,UAChC41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAI,yGACJwqK,IAAI,uFAGRxB,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,WAAWy2B,UAAU,mBAAkBgR,SAAC,mBCDxD,GAlBgBiyI,KAEZr8C,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,mBAAkBgR,UACnCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,4BAA2BgR,SAAA,EACxCk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,yCACmC41F,EAAAA,GAAAA,KAAA,SAAM,6BAE7CsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,wBAAuBgR,SAAA,EACpC41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,qBAAoBynC,SAAC,oBAC7B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,mBAAmBy2B,UAAU,mBAAkBgR,SAAC,iCCqIlE,GA7IsBkyI,KAwHlBt8C,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,kBAAiBgR,UAClCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,2BAA0BgR,SAAA,EACvCk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,cAAagR,SAAA,CAAC,+CAE1B41F,EAAAA,GAAAA,KAAA,SAAM,mBAERsB,EAAAA,GAAAA,MAAA,KAAGloG,UAAU,iBAAgBgR,SAAA,CAAC,wEAE5B41F,EAAAA,GAAAA,KAAA,SAAM,6CAGRA,EAAAA,GAAAA,KAACu8C,GAAQ,CAACpsK,MAlIA,CACd,CACEx7C,GAAI,EACJyoI,MACE,4IACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,+HACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,0JACF1kE,MAAO,WAGT,CACE/jE,GAAI,EACJyoI,MACE,4IACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,+HACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,0JACF1kE,MAAO,WAGT,CACE/jE,GAAI,EACJyoI,MACE,4IACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,+HACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,0JACF1kE,MAAO,eA4EL4oG,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,uBAAsBgR,SAAA,EACnC41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,cAAagR,SAAC,8BAC5B41F,EAAAA,GAAAA,KAACw8C,GAAY,CAACrsK,MA1ED,CACnB,CACEx7C,GAAI,EACJyoI,MACE,oFACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,4EACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,oLACF1kE,MAAO,WAGT,CACE/jE,GAAI,EACJyoI,MACE,oFACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,4EACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,oLACF1kE,MAAO,WAGT,CACE/jE,GAAI,EACJyoI,MACE,oFACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,4EACF1kE,MAAO,WAET,CACE/jE,GAAI,EACJyoI,MACE,oLACF1kE,MAAO,sBCtEb,GA1CyB2yB,IAAiB,IAAhB,OAAEhyE,GAAQgyE,EAClC,MAAMoxH,EAAW,IAAIxzM,KAAKoQ,EAAO6/L,iBACjC,OACEl5C,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,GAAEgR,UACnBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,+BAA8BgR,SAAA,EAC3Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,OAAKhpK,y6OAAUwqK,IAAI,gBACnBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,OAAMgR,UACjB41F,EAAAA,GAAAA,KAAC9zE,GAAAA,GAAO,CACN5pF,MAAO,EACP4jB,IAAK7M,EAAO8/L,cACZr6M,SAAU,EACVS,OAAQ,SAGZygK,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,aAAYgR,SAAC,oBAG9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,OAAKhpK,qwCAAUwqK,IAAI,gBACnBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,CACzB/wD,EAAO6/L,iBACNl5C,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,OAAMgR,SAAEqyI,EAASr1D,cAAch4J,MAAM,KAAK,MAEvD4wK,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,OAAMgR,SAAC,SAEtB41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,aAAYgR,SAAC,uBAG9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,OAAKhpK,6pNAAUwqK,IAAI,gBACnBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,OAAMgR,SAAC,eACpB41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,aAAYgR,SAAC,0BAIxB,ECiFd,GAzHsBihB,IAAqB,IAApB,WAAE44E,GAAY54E,EACnC,MAAOqxH,EAAWC,IAAgB5hG,EAAAA,EAAAA,UAAS,UACpCiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC6hG,EAASC,IAAc9hG,EAAAA,EAAAA,UAAS,KAMvC1wB,EAAAA,EAAAA,YAAU,KACUirE,WAChB2P,GAAW,GACX,IACE,GAAkB,UAAdy3C,EAAuB,OAC3B,MACMI,SADiBn4C,GAAc31K,IAAI,QAADoH,OAASsmN,EAAS,aAC1BxoM,KAAK69B,QAClC79B,GAASA,EAAKyrJ,SAAWsE,EAAWtE,SAEvCk9C,EAAWC,GACX73C,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,uBAAwBA,GACtColK,GAAW,EACb,GAEFssC,EAAW,GACV,CAACmL,EAAWz4C,EAAWtE,SAE1B,MAAMo9C,EAAc,CAClB9E,OACE32C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1Bk3F,EAAAA,GAAAA,MAAA,MAAIxqK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAA,CAAC,SACtC65F,EAAW5zK,SAEpB2vK,EAAAA,GAAAA,KAAA,KAAGlpK,MAAO,CAAE2pM,UAAW,UAAWruL,MAAO,OAAQ2hC,WAAY,OAAQq2B,SAClE65F,EAAWm1C,WAIlB4D,SACE17C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,YACH46F,GACChF,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,eAEHk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,CACZ,IAAnBwyI,EAAQzxN,SAAgB60K,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,+BAC3BwyI,EAAQzrF,KAAI,CAAC5oD,EAAMr6E,KAClB8xK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,eAAcgR,UAC3B41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAKuxE,EAAKm1H,UACVl8B,IAAI,UACJpoG,UAAU,mBAJqBlrE,WAY7C+uN,SACE37C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,WACK41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,eAEzD46F,GACChF,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,eAEH41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,oBAAmBgR,UAChC41F,EAAAA,GAAAA,KAACk9C,GAAU,CAAC/sK,MAAOysK,SAK3BO,SACE77C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,YACH46F,GACChF,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,eAEH41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,oBAAmBgR,UAChC41F,EAAAA,GAAAA,KAACo9C,GAAW,CAACjtK,MAAOysK,SAK5BS,cACE/7C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,cAAagR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBACH46F,GACChF,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,eAEH41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,oBAAmBgR,UAChC41F,EAAAA,GAAAA,KAACo9C,GAAW,CAACjtK,MAAOysK,EAASU,OAAO,UAO9C,OACEh8C,EAAAA,GAAAA,MAAA,WAASloG,UAAU,yBAAwBgR,SAAA,EACzC41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzB41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,kBAAiBgR,SAC5Bp+E,OAAOmH,KAAK4pN,GAAa5rF,KAAKosF,IAC7Bv9C,EAAAA,GAAAA,KAAA,MACE5mG,UAAS,OAAAhjE,OAASsmN,IAAca,EAAU,SAAW,IAAKnzI,UAG1D41F,EAAAA,GAAAA,KAAA,QAAMv+C,QAASA,KAvGzBk7F,EAuG+CY,EAAS,EAAAnzI,SAAEmzI,KAF3CA,UAObv9C,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,oCAAmCgR,SAC/C2yI,EAAYL,OAEP,ECxGd,GAhBsBrxH,IAAqB,IAApB,WAAE44E,GAAY54E,EACnC,MAAM,UAAEiuH,EAAS,SAAEkE,EAAQ,KAAEntN,GAAS4zK,EACtC,OACEjE,EAAAA,GAAAA,KAAA,WAASlpK,MAAO,CAAE4jB,MAAO,OAAQwtD,gBAAiB,WAAYkC,UAC5D41F,EAAAA,GAAAA,KAAA,UACEhpK,IAAG,6EAAAZ,OAA+EkjN,EAAS,OAAAljN,OAAMonN,EAAQ,iGAAApnN,OAAgGonN,EAAQ,UAAApnN,OAASkjN,EAAS,oDACnOxiN,MAAO,CAAEqtL,OAAQ,EAAGzpK,MAAO,OAAQtY,OAAQ,QAASslI,UAAW,QAC/D+1E,gBAAgB,GAChBz4C,QAAQ,OACR04C,eAAe,6BACfhlJ,MAAO,cAAgBroE,KAEjB,0ECqDd,GA7D0Bg7F,IAAgB,IAAf,MAAEsyH,GAAOtyH,EAClC,MAAOuyH,EAAqBC,IAA0B9iG,EAAAA,EAAAA,UAAS,IACzD0/B,EAAWR,KAEjB5vD,EAAAA,EAAAA,YAAU,KACyBirE,WAC/B,IACE,MAAM38I,QAAiBgsJ,GAAc31K,IAAI,gCAADoH,OACNunN,IAElCE,EAAuBllM,EAASzE,MAChCvS,QAAQ45F,IAAIqiH,EACd,CAAE,MAAO/9M,GACP8B,QAAQ9B,MAAM,uBAAwBA,EACxC,GAEFi+M,EAA0B,GACzB,CAACH,IAaJ,OACE39C,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,+BAA8BgR,SAC9CwzI,EAAoBzyN,OAAS,IAC5Bm2K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,2BAA0BgR,SAAA,CAAC,UAC/B,KACR41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,qBAEnD41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,uBAAsBgR,SAClCwzI,EAAoBzsF,KAAK8yC,IACxB3C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,wBAAuBgR,SAAA,CACnC65F,EAAWy1C,YACV15C,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKitK,EAAWy1C,WAAYl4C,IAAKyC,EAAW5zK,QAEjD2vK,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK+mN,GAAUv8C,IAAKyC,EAAW5zK,QAEtC2vK,EAAAA,GAAAA,KAAA,OACE5mG,UAAU,iCACVqoD,QAASA,IA7BMwiD,KAC7B,MAAMF,EAA0B,OAAVE,QAAU,IAAVA,GAAAA,EAAYD,KAC9BC,EAAWD,KACXC,EAAW5zK,KAAK+Q,QAAQ,OAAQ,KACpCq5I,EAAS,sBAADrkJ,OAAuB2tK,GAAiB,CAC9Cx0F,MAAO,CACL00F,WAAYA,KAGhBryK,OAAOosN,SAAS,CAAE97M,IAAK,EAAG+7M,SAAU,UAAW,EAoBlBn6C,CAAsBG,GAAY75F,UAEjD41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK65F,EAAW5zK,WAVwB4zK,EAAWtE,gBAiBvD,0ECzBd,GAjCyBu+C,KAErBl+C,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,YAAWgR,UAC5Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,uCAAsCgR,SAAA,EACnDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,aAAYgR,SAAA,CAAC,OACpB,KACL41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,sBAAuBg4D,SAAC,uBAG7C,KAAK,4BAGR41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,gBAAegR,SAAC,0GAI7Bk3F,EAAAA,GAAAA,MAAA,KAAG3+H,KAAK,qBAAqBy2B,UAAU,qBAAoBgR,SAAA,CAAC,sBACxC41F,EAAAA,GAAAA,KAACwE,GAAqB,WAG5CxE,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5B41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAK0iN,GACLl4C,IAAI,oBACJpoG,UAAU,mCCHtB,GAxByB+kJ,KAErBn+C,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,aAAYgR,UAC7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,6BAA4BgR,SAAA,EACzCk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,gBAAegR,SAAA,CAAC,sBAE5B41F,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,wDAInDk3F,EAAAA,GAAAA,MAAA,KAAGloG,UAAU,mBAAkBgR,SAAA,CAAC,iBACjB41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,eAAc,SAAK41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,YAAW,iGAInD41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,mGCkBvB,GA/BwBglJ,KAEpBp+C,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,YAAWgR,UAC5Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,uCAAsCgR,SAAA,EACnDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,aAAYgR,SAAA,CAAC,WAChB,KACT41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,sBAAuBg4D,SAAC,mBAC7C,KAAK,oBAGR41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,gBAAegR,SAAC,6FAI7Bk3F,EAAAA,GAAAA,MAAA,KAAG3+H,KAAK,kBAAkBy2B,UAAU,qBAAoBgR,SAAA,CAAC,kBACzC41F,EAAAA,GAAAA,KAACwE,GAAqB,WAGxCxE,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5B41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAK0iN,GACLl4C,IAAI,oBACJpoG,UAAU,mCCkNtB,GA9NmCilJ,KACjC,MAAOC,EAAUC,IAAexjG,EAAAA,EAAAA,WAAS,GACnC0/B,EAAWR,KACV+qB,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GAEjC42E,EAASiB,GAAU,CACvBS,cAAe,CACb1+L,GAAI,EACJ6pN,cAAe,GACft3G,MAAO,GACPysG,YAAa,GACb8K,cAAe,GACf3hG,QAAS,IAEXw3E,SAAW//L,IACT,MAAM8nJ,EAAS,CAAC,EAyBhB,OAvBK9nJ,EAAO2yG,QACVm1C,EAAOn1C,MAAQ,sBAGZ3yG,EAAO2yG,MAEA,6BAA6BtuG,KAAKrE,EAAO2yG,SACnDm1C,EAAOn1C,MAAQ,0BAFfm1C,EAAOn1C,MAAQ,qBAKZ3yG,EAAOo/M,cACVt3D,EAAOs3D,YAAc,6BAElBp/M,EAAOiqN,gBACVniE,EAAOmiE,cAAgB,+BAEpBjqN,EAAOkqN,gBACVpiE,EAAOoiE,cAAgB,+BAEpBlqN,EAAOuoH,UACVu/B,EAAOv/B,QAAU,4BAGZu/B,CAAM,EAEf8pB,SAAU7Q,UACR2P,GAAW,GACX,IACE,MAAMtsJ,QAAiBgsJ,GAAczE,KAAK,8BAEtC3rK,EACA,CACIy1J,QAAS,CACL,eAAgB,sBAM5BroJ,QAAQ45F,IAAIhnG,GAEU,MAAlBokB,EAASU,QACX4rJ,GAAW,GACXgC,GAAMC,QACJ,8BAEFzsB,EAAS,OAGTwqB,GAAW,GACXgC,GAAMpnK,MAAM,4BACZ8B,QAAQ45F,IAAI5iF,GAEhB,CAAE,MAAO9Y,GACPolK,GAAW,GACXgC,GAAMpnK,MAAM,qCACZ8B,QAAQ9B,MAAMA,EAChB,KAIE6+M,EAAaA,KACjBH,GAAaD,EAAS,EAGxB,OACEh9C,EAAAA,GAAAA,MAAA,WAASloG,UAAU,YAAWgR,SAAA,EAC5Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,uCAAsCgR,SAAA,EACnDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,aAAYgR,SAAA,CAAC,SAClB,KACP41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,sBAAuBg4D,SAAC,uBAEhD41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,gBAAegR,SAAC,qGAI7Bk3F,EAAAA,GAAAA,MAAA,UAAQloG,UAAU,qBAAqBqoD,QAASi9F,EAAWt0I,SAAA,CAAC,mBAC3C41F,EAAAA,GAAAA,KAACwE,GAAqB,WAGzCxE,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5B41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAK0iN,GACLl4C,IAAI,oBACJpoG,UAAU,iCAIfklJ,IACCt+C,EAAAA,GAAAA,KAAA,OAAK5mG,UAAS,GAAAhjE,OAAKkoN,EAAW,cAAgB,IAAKl0I,UACjDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,0BAA2BtiE,MAAO,CAAC4jB,MAAM,QAAQ0vD,SAAA,EAC9Dk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAC9D,cAEO,IAAI,cAGd41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,uBACNk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAc+sG,SAAUwrB,EAAO2G,aAAaluH,SAAA,EAC1Dk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAiBtiE,MAAO,CAAC4jB,MAAM,QAAQ0vD,SAAA,EACpD41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,gBAAe/4F,SAAC,oBAC/Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAmBtiE,MAAO,CAAC4jB,MAAM,QAAQ0vD,SAAA,EACtD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,UACDuhM,EAAOkH,cAAc,iBACzB0D,aAAa,MACb96B,YAAY,sBAGfkwB,EAAOkC,QAAQ2qB,eACd7sB,EAAOt1C,OAAOmiE,gBACZx+C,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOmiE,oBAG5Cl9C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMgB,GAAYnvG,UAAU,UAC7C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACDuhM,EAAOkH,cAAc,SACzB0D,aAAa,MACb96B,YAAY,aAGfkwB,EAAOkC,QAAQ3sF,OAASyqF,EAAOt1C,OAAOn1C,QACrC84D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOn1C,YAG1Co6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,cAAa/4F,SAAC,kBAC7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,UACDuhM,EAAOkH,cAAc,eACzB0D,aAAa,MACb96B,YAAY,oBAGfkwB,EAAOkC,QAAQ8f,aAAehiB,EAAOt1C,OAAOs3D,cAC3C3zC,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOs3D,kBAG1CryC,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,gBAAe/4F,SAAC,oBAC/Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMe,GAASlvG,UAAU,UAC1C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,UACDuhM,EAAOkH,cAAc,iBACzB0D,aAAa,MACb96B,YAAY,sBAGfkwB,EAAOkC,QAAQ4qB,eACd9sB,EAAOt1C,OAAOoiE,gBACZz+C,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOoiE,oBAG5Cn9C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAgBtiE,MAAO,CAACsL,OAAO,QAAQgoE,SAAA,EACpD41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,UAAS/4F,SAAC,aACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAACsL,OAAO,QAAQgoE,SAAA,EACtD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMO,GAAW1uG,UAAU,UAC5C4mG,EAAAA,GAAAA,KAAA,YACArrK,GAAG,UACDmC,MAAO,CAAEutB,OAAQ,OAAQksG,QAAS,OAAQ4zD,OAAQ,OAAS/hL,OAAO,QAClEhS,KAAK,UACDuhM,EAAOkH,cAAc,WACzB0D,aAAa,MACb96B,YAAY,0BAGfkwB,EAAOkC,QAAQ/2E,SAAW60E,EAAOt1C,OAAOv/B,UACvCkjD,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOv/B,cAG1CkjD,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,QACjB62C,QAASi9F,EACTtlJ,UAAU,oBAAmBgR,SAC9B,YAGD41F,EAAAA,GAAAA,KAAC67B,GAAM,CAAC/kM,MAAO,CAAE8zE,OAAQ,QAAUxR,UAAU,kBAAiBgR,SAAC,mBAOtE46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,oBAGC,EC/Jd,GAxE8Bn/E,IAC5B,MAAO+5K,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACjC4jG,EAAgB1zN,EAAMurN,YACrBtiM,EAAOsO,IAAWu4F,EAAAA,EAAAA,WAAS,IAC3B6jG,EAAaC,IAAkB9jG,EAAAA,EAAAA,UAAS,IAqB/C,OApBA1wB,EAAAA,EAAAA,YAAU,KACUirE,WAChB3zJ,QAAQ45F,IAAIojH,GAEZ,IACE15C,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,mCAADoH,OACHuoN,IAErCE,EAAelmM,EAASzE,MACxBsO,GAAQ,GACR7gB,QAAQ45F,IAAI5iF,GACZhX,QAAQ45F,IAAIqjH,EACd,CAAE,MAAO/+M,GACP8B,QAAQ45F,IAAI17F,GACZ2iB,GAAQ,EACV,GAEF+uL,EAAW,GACV,KAEDjwC,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,CACCl2D,IACCotJ,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAEi9C,WAAY,MAAO3hC,MAAO,OAAQs1H,UAAW,QAASt9D,SAAC,0BAGpEk3F,EAAAA,GAAAA,MAAA,SAAOloG,UAAU,YAAWgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,SAAA51F,UACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,wBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,UACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,qBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,sBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,gBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,eACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,oBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBAGR41F,EAAAA,GAAAA,KAAA,SAAA51F,SACGw0I,EAAYztF,KAAI,CAACk0C,EAASn3K,KACzBozK,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQy5C,kBACb9+C,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQj1K,QACb4vK,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQqB,eACb1G,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQoB,gBACbzG,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQmB,UACbxG,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQzV,SACboQ,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQ2B,iBACbhH,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQhsJ,WARNnrB,cAebgmB,IACAotJ,EAAAA,GAAAA,MAAA,OAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAC2pM,UAAU,SAAWruL,MAAM,QAAQg4D,SAAC,qBAChD41F,EAAAA,GAAAA,KAAA,0BAGH,EC6KP,GA5O4B++C,KAC1B,MAAMC,EAAev/C,GAAQzwK,IAAI,UAC3BuwK,EAAca,MACbvZ,EAAUq4C,IAAenkF,EAAAA,EAAAA,UAAS,CACvCokF,OAAQ6f,EACR93G,MAAO,GACPk4F,UAAW,GACXC,SAAU,GACVC,YAAa,GACbC,OAAQ,GACRC,YAAa,GACbC,WAAY,GACZC,UAAW,GACXC,UAAW,OAGPrI,EAAeA,CAAC3lM,EAAGiuM,KACvB,MAAM,MAAElzM,GAAUiF,EAAE3G,OACpBk0M,EAAY,IACPr4C,EACH,CAAC+4C,GAAYlzM,GACb,GAcGmzM,EAAeC,IAAoB/kF,EAAAA,EAAAA,UAAS,OAC5CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GAuCvC,OACEumD,EAAAA,GAAAA,MAAA,QAAMI,MAAM,iBAAiB5qK,MAAO,CAAE4jB,MAAO,QAAS0vD,SAAA,EACpDk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,gBACVtiE,MAAO,CACLC,QAAS,OACTwpM,cAAe,SACfC,eAAgB,SAChB3C,WAAY,UACZzzH,SAAA,EAEFk3F,EAAAA,GAAAA,MAAA,MAAIxqK,MAAO,CAAE2pM,UAAW,SAAU1sJ,WAAY,MAAO3hC,MAAO,QAASg4D,SAAA,CAClE,IAAI,kCAGP41F,EAAAA,GAAAA,KAAA,KAAGlpK,MAAO,CAAE8zE,OAAQ,mBAAoBR,SAAC,0BACzCk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,eACVtiE,MAAO,CACLoZ,SAAU,WACVwK,MAAO,QACPtY,OAAQ,QACR+hL,OAAQ,kBACRptL,QAAS,OACTypM,eAAgB,SAChB3C,WAAY,UACZzzH,SAAA,CAEDy1H,GACC7/B,EAAAA,GAAAA,KAAA,OACEhpK,IAAK6oM,EACLr+B,IAAI,WACJ1qK,MAAO,CACL8qI,SAAU,OACV8+D,UAAW,OACXC,UAAW,YAIf3gC,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMiB,GACN1xK,MAAO,CAAE88C,SAAU,OAAQxhC,MAAO,WAGtC4tJ,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLwwM,OAAO,UACPx9B,SAlGgBzxK,IACxButM,EAAY,IACPr4C,EACH84C,UAAWhuM,EAAE3G,OAAO6zM,MAAM,KAE5B,MAAMgC,EAAOlvM,EAAE3G,OAAO6zM,MAAM,GAC5B,GAAIgC,EAAM,CACR,MAAMC,EAAWrsL,IAAIC,gBAAgBmsL,GACrCf,EAAiBgB,EACnB,GA0FQhqM,MAAO,CACLoZ,SAAU,WACVhO,IAAK,EACLiO,KAAM,EACNuK,MAAO,QACPtY,OAAQ,QACR6/C,QAAS,EACTikH,OAAQ,iBAIdlG,EAAAA,GAAAA,KAAA,aAEFsB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,gBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,+BACZ/0K,MAAOm6J,EAASu4C,UAChBh8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,mBAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,eACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,8BACZ/0K,MAAOm6J,EAASw4C,SAChBj8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,qBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,WACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,0BACZ/0K,MAAOm6J,EAAS3/C,MAChBk8D,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,eAGrC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,kBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,wCACZ/0K,MAAOm6J,EAASy4C,YAChBl8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,wBAIvC2vK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,SAAQ/4F,SAAC,YACxBk3F,EAAAA,GAAAA,MAAA,UACE3sK,GAAG,SACHjI,MAAOm6J,EAAS04C,OAChBn8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,UAAUy4E,SAAA,EAE3C41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,OAAM09E,SAAC,UACrB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,SAAQ09E,SAAC,YACvB41F,EAAAA,GAAAA,KAAA,UAAQtzK,MAAM,QAAO09E,SAAC,iBAG1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,SACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLgpE,UAAU,aACV1sE,MAAOm6J,EAAS24C,YAChBp8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,wBAIvCquK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,SAAA51F,SAAO,oBACP41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,+BACZ/0K,MAAOm6J,EAAS44C,WAChBr8B,SAAWzxK,GAAM2lM,EAAa3lM,EAAG,sBAKvC2vK,EAAAA,GAAAA,MAAA,OACEloG,UAAU,YACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB3C,WAAY,WACZn2D,UAAW,OACX+1D,aAAc,QACdrzH,SAAA,EAEF41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,mBAAkBgR,SAAC,WACrC41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAzL1B6zC,UACb3jK,EAAE0uG,iBACF,MAAMipB,EAAO,IAAIm6B,SAYjB,GAXAn6B,EAAKhsG,OAAO,SAAU,IACtBgsG,EAAKhsG,OAAO,QAASupI,EAAS3/C,OAC9BoiB,EAAKhsG,OAAO,YAAaupI,EAASu4C,WAClC91E,EAAKhsG,OAAO,WAAYupI,EAASw4C,UACjC/1E,EAAKhsG,OAAO,cAAeupI,EAASy4C,aACpCh2E,EAAKhsG,OAAO,SAAUupI,EAAS04C,QAC/Bj2E,EAAKhsG,OAAO,cAAeupI,EAAS24C,aACpCl2E,EAAKhsG,OAAO,aAAcupI,EAAS44C,YACnCn2E,EAAKhsG,OAAO,YAAaupI,EAAS64C,WAClCp2E,EAAKhsG,OAAO,YAAaupI,EAAS84C,WAE9BpgC,EAAa,CACf0F,GAAW,GACXtjK,QAAQ45F,IAAI,YACZ55F,QAAQ45F,IAAIyjH,GACZr9M,QAAQ45F,IAAI+tB,GACZ,UACQq7C,GAAczE,KAAK,oDAAD9pK,OAC8B4oN,GACpD11F,EACA,CACE0gC,QAAS,CACP,eAAgB,yBAItBid,GAAMC,QAAQ,8BACdjC,GAAW,EACb,CAAE,MAAOplK,GACPonK,GAAMpnK,MAAM,yBACZ8B,QAAQ45F,IAAI,gBAAiB17F,EAAMi9G,SACnCmoD,GAAW,EACb,CACF,GAqJuD76F,SAAC,mBAIrD46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAGF,ECtKX,GAtEoBihB,IAAsB,IAArB,YAAE4zH,GAAa5zH,EAClC,MACMszH,EADcv+C,KACcb,YAAYI,QAEvCi/C,EAAaC,IAAkB9jG,EAAAA,EAAAA,UAAS,IAmB/C,OAjBA1wB,EAAAA,EAAAA,YAAU,KACcirE,WACpB3zJ,QAAQ45F,IAAIojH,GACZ,IACE,MAAM5e,QAAoBp7B,GAAc31K,IAAI,2CAADoH,OACEuoN,IAE7CE,EAAe9e,EAAY7rL,MAC3BvS,QAAQ45F,IAAIwkG,EAAY7rL,KAC1B,CAAE,MAAOrU,GACP8B,QAAQ45F,IAAI,yBACZ55F,QAAQ45F,IAAI17F,EACd,GAEFq/M,EAAe,GACd,CAACP,KAGFr9C,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAEi9C,WAAY,MAAO3hC,MAAO,OAAQs1H,UAAW,QAASt9D,SAAC,qBAGpEk3F,EAAAA,GAAAA,MAAA,SAAOloG,UAAU,YAAWgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,SAAA51F,UACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,WACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,qBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,WACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBAGR41F,EAAAA,GAAAA,KAAA,SAAA51F,SACGw0I,EAAYztF,KAAI,CAACk0C,EAASn3K,KACzBozK,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAKquK,EAAQy7B,SACbhqM,MAAO,CAAEsL,OAAQ,QAASsY,MAAO,SACjC8mJ,IAAI,eAGRxB,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQ85C,YACbn/C,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQ86B,eACb7+B,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,WAAUgR,SAAA,EACtB41F,EAAAA,GAAAA,KAAA,QAAM5mG,UAAU,UAASgR,SAAC,YAE1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAAA,QAAMv+C,QAASA,IAAMw9F,EAAY55C,EAAQC,WAAW,QAAQl7F,SAAC,UAG7D41F,EAAAA,GAAAA,KAAA,QAAMv+C,QAASA,IAAMw9F,EAAY55C,EAAQC,WAAW,QAAQl7F,SAAC,UAG7D41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,mBApBHl8E,YA2BX,ECpCV,GA3BoBkxN,KAClB,MAAM7/C,EAAca,MACb3kF,EAAM4jI,IAAWtkG,EAAAA,EAAAA,UAAS,QAC3B4jG,EAAgBp/C,EAAYA,YAAYI,QACvC2/C,EAAQC,IAAaxkG,EAAAA,EAAAA,UAAS,IAUrC,OACEumD,EAAAA,GAAAA,MAAA,OAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAASA,IAAM49F,EAAQ,OAAOj1I,SAAC,gBAGxD,SAATqR,IAAmBukF,EAAAA,GAAAA,KAACw/C,GAAW,CAACP,YAdb3pD,MAAOgQ,EAAYl1K,KAEvCivN,EADW,SAATjvN,EACM,OAEA,QAEVmvN,EAAUj6C,EAAW,IAST,QAAT7pF,IAAkBukF,EAAAA,GAAAA,KAAC++C,GAAmB,CAACU,YAAad,IAC3C,SAATljI,IAAmBukF,EAAAA,GAAAA,KAAC0/C,GAAU,CAAClJ,WAAY8I,IAClC,SAAT7jI,IAAmBukF,EAAAA,GAAAA,KAAC2/C,GAAoB,CAACnJ,WAAY8I,MAClD,ECuDV,GAnF2BM,KACzB,MAAOhB,EAAaC,IAAkB9jG,EAAAA,EAAAA,UAAS,IACzC4jG,EAAgBl/C,GAAQzwK,IAAI,WAC3Bg2K,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC7mG,EAAMsO,IAAWu4F,EAAAA,EAAAA,WAAS,GAsBjC,OArBA1wB,EAAAA,EAAAA,YAAU,KACUirE,WAChB3zJ,QAAQ45F,IAAIojH,GACZ,IACE15C,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,qCAADoH,OACDuoN,IAEvCE,EAAelmM,EAASzE,MACxBsO,GAAQ,GACRyiJ,GAAW,GACXtjK,QAAQ45F,IAAI5iF,GACZhX,QAAQ45F,IAAIqjH,EACd,CAAE,MAAO/+M,GACP8B,QAAQ45F,IAAI17F,GACZ2iB,GAAQ,GACRyiJ,GAAW,EACb,GAEFssC,EAAW,GACV,KAEDjwC,EAAAA,GAAAA,MAAA,OAAAl3F,SAAA,CACGl2D,IACCotJ,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAEi9C,WAAY,MAAO3hC,MAAO,OAAQs1H,UAAW,QAASt9D,SAAC,sBAGpEk3F,EAAAA,GAAAA,MAAA,SAAOloG,UAAU,YAAWgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,SAAA51F,UACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,kBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,qBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,UACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,qBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,sBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,gBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,eACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,oBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBAGR41F,EAAAA,GAAAA,KAAA,SAAA51F,SACGw0I,EAAYztF,KAAI,CAACk0C,EAASn3K,KACzBozK,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQw6C,eACb7/C,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQ0B,kBACb/G,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQj1K,QACb4vK,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQqB,eACb1G,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQoB,gBACbzG,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQmB,UACbxG,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQzV,SACboQ,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQ2B,iBACbhH,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQhsJ,WATNnrB,cAgBjBgmB,IACAotJ,EAAAA,GAAAA,MAAA,OAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAE2pM,UAAW,SAAUruL,MAAO,QAASg4D,SAAC,qBAGnD41F,EAAAA,GAAAA,KAAA,wBAGHgF,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,sBAGH,ECKV,GA9EkB01I,KAChB,MAAM,YAAEvgD,GAAgBa,MACjB4E,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChCglG,EAAUC,IAAejlG,EAAAA,EAAAA,UAAS,IAClCklG,EAAUC,IAAenlG,EAAAA,EAAAA,UAAS,IAClColG,EAAWC,IAAgBrlG,EAAAA,EAAAA,UAAS,IACpCslG,EAAYC,IAAiBvlG,EAAAA,EAAAA,UAAS,IACvCwlG,EAAuC,UAAzBhhD,EAAYG,SAC1B8gD,EAASjhD,EAAYG,SAuB3B,OArBAr1E,EAAAA,EAAAA,YAAU,KAiBR46E,GAAW,GAhBe3P,WACxB,IACE2P,GAAW,GACX,MAAMo7C,QAAmB17C,GAAc31K,IAAI,kCAG3CsxN,EAAcD,EAAWnsM,MACzBvS,QAAQ45F,IAAI8kH,EAAWnsM,MACvB+wJ,GAAW,GACXm7C,EAAaC,EAAWnsM,KAAK,GAAGusM,WAChCT,EAAYK,EAAWnsM,KAAK,GAAGusM,WAC/BP,EAAYG,EAAWnsM,KAAK,GAAGusM,UACjC,CAAE,MAAO5gN,GACP8B,QAAQ45F,IAAI17F,EACd,GAIF6gN,EAAmB,GAClB,CAACH,KAEFj/C,EAAAA,GAAAA,MAAA,WAASloG,UAAU,eAAcgR,SAAA,EAC/Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,CAAC,WACnB,KACR41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAChEm1F,EAAYG,eAGjBM,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,yEAGS,YAAXo2I,IACCxgD,EAAAA,GAAAA,KAAC2/C,GAAoB,CAACnJ,WAAY/2C,GAAQzwK,IAAI,YAEpC,cAAXwxN,IAA0BxgD,EAAAA,GAAAA,KAACo/C,GAAW,IAE3B,eAAXoB,IAA2BxgD,EAAAA,GAAAA,KAAC4/C,GAAkB,IAE9CW,IACCvgD,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,iBAAgBgR,SAC5B46F,GACChF,EAAAA,GAAAA,KAAA,OAAA51F,SAAK,iBAELk3F,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAAC2gD,GAAa,CACZ1+C,OAAQ,mBACRvpG,MAAO,eACP14D,MAAO+/M,IACN,KACH//C,EAAAA,GAAAA,KAAC2gD,GAAa,CACZ1+C,OAAQ,gBACRvpG,MAAO,WACP14D,MAAOigN,IACN,KACHjgD,EAAAA,GAAAA,KAAC2gD,GAAa,CACZ1+C,OAAQ,kBACRvpG,MAAO,aACP14D,MAAOmgN,WAMT,ECyCd,GAnHiBS,KACf,MAAOpkB,EAAcJ,IAAmBrhF,EAAAA,EAAAA,WAAS,IAC1C0hF,EAAqBC,IAA0B3hF,EAAAA,EAAAA,WAAS,GAEzD9gG,EAAW6/H,IACX+mE,EAAc,IAAI/3D,gBAAgB7uI,EAASqtF,QAC3Cq/C,EAAQk6D,EAAY7xN,IAAI,SACxBk4G,EAAQ25G,EAAY7xN,IAAI,UAEvBg2K,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACjC0/B,EAAWR,KACV6mE,EAAcC,IAAmBhmG,EAAAA,EAAAA,UAAS,CAC/C3T,SAAU,GACVu1F,gBAAiB,GACjBz1F,MAAOA,GAAS,GAChBy/C,MAAOA,GAAS,KAEZq6D,EAAwBrvN,IAC5B,MAAM,KAAEtB,EAAI,MAAE3D,GAAUiF,EAAE3G,OAC1B+1N,EAAgB,IACXD,EACH,CAACzwN,GAAO3D,GACR,EAoCJ,OACE40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,yBACJ41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,2DACNk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAagR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,eAAc/4F,SAAC,kBAC9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMosM,EAAe,OAAS,WAC9BnsM,KAAK,WACL3D,MAAOo0N,EAAa15G,SACpBg8D,SAAU49C,EACVv/C,YAAY,kBAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMi1B,EAAen0B,GAAQF,GAC7B/uG,UAAU,sBACVqoD,QAASA,IAAM26E,GAAiBI,YAItCx8B,EAAAA,GAAAA,KAACs8B,GAAc,KACfh7B,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,eAAc/4F,SAAC,sBAC9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMqsM,EAAsB,OAAS,WACrCpsM,KAAK,kBACL3D,MAAOo0N,EAAankB,gBACpBv5B,SAAU49C,EACVv/C,YAAY,sBAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMk1B,EAAsBp0B,GAAQF,GACpC/uG,UAAU,sBACVqoD,QAASA,IAAMi7E,GAAwBD,YAI7Cz8B,EAAAA,GAAAA,KAAC67B,GAAM,CAAC/kM,MAAO,CAAE8zE,OAAQ,QAAUxR,UAAU,kBAAkBqoD,QA3EhD6zC,UACnB3jK,EAAE0uG,iBAEF,IACE4kE,GAAW,GACXtjK,QAAQ45F,IAAI,YACZ,MAAM5iF,QAAiBi3D,MAAM,4CAADx5E,OACkBuwJ,EAAK,WAAAvwJ,OAAU8wG,GAC3D,CACEqoC,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAU4kN,KAKzB,GAFA77C,GAAW,GAEPtsJ,EAAS4rG,GACX0iD,GAAMC,QAAQ,8BAEd7kK,YAAW,KACTo4I,EAAS,IAAI,GACZ,SACE,OACc9hI,EAASikL,OAE5B31B,GAAMpnK,MAAM,wBACd,CACF,CAAE,MAAOA,GACPonK,GAAMpnK,MAAM,2CACd,GA4CyFuqE,SAAC,aAKvF46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,8BAGH,EC/FV,GAjBsB62I,KACpB,MAAM,YAAE1hD,GAAgBa,KAClB88B,EAAO39B,EAAYG,SACzB/9J,QAAQ45F,IAAI2hG,GACZ,MAAMgkB,EAAazhD,GAAQzwK,IAAI,UACzBmyN,EAAe1hD,GAAQzwK,IAAI,UAC3BoyN,EAAgB3hD,GAAQzwK,IAAI,UAElC2S,QAAQ45F,IAAIgkE,GACZ,MAAM8hD,EAAgB,CACpBhkB,SAASr9B,EAAAA,GAAAA,KAAC0/C,GAAU,CAAClJ,WAAY0K,IACjC5jB,WAAWt9B,EAAAA,GAAAA,KAACshD,GAAS,CAACvK,aAAcoK,IACpCI,YAAYvhD,EAAAA,GAAAA,KAACwhD,GAAmB,CAAC5G,cAAewG,KAElD,OAAOphD,EAAAA,GAAAA,KAAA2F,GAAAA,SAAA,CAAAv7F,SAAGi3I,EAAcnkB,IAAS,ECInC,GAdoBukB,KAEhBngD,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAAC+B,GAAa,KACd/B,EAAAA,GAAAA,KAACk7C,GAAc,KACfl7C,EAAAA,GAAAA,KAACm7C,GAAiB,KAClBn7C,EAAAA,GAAAA,KAACg8C,GAAY,KACbh8C,EAAAA,GAAAA,KAACo8C,GAAY,KACbp8C,EAAAA,GAAAA,KAACq8C,GAAO,KACRr8C,EAAAA,GAAAA,KAACs8C,GAAa,OC4OpB,GA3PqBoF,KACnB,MAAO7+C,EAAU8+C,IAAe5mG,EAAAA,EAAAA,WAAS,IAClCiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChCkoD,EAAYC,IAAiBnoD,EAAAA,EAAAA,UAAS,CAC3C1qH,KAAM,GACN0gI,QAAS,GACTsyC,eAAgB,GAChB9zF,MAAO,GACP+zF,SAAU,GACVC,cAAe,GACfC,YAAa,GACbC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,aAAc,GACdC,YAAa,MAER+9C,EAAYC,IAAiB9mG,EAAAA,EAAAA,UAAS,CAC3C+mG,YAAa,EACbC,SAAU,KAELC,EAASC,IAAclnG,EAAAA,EAAAA,UAAS,CACrC7mG,KAAM,MAGRm2E,EAAAA,EAAAA,YAAU,KACR46E,GAAW,GACO3P,WAChB,IACE,MAAM38I,QAAiBgsJ,GAAc31K,IAAI,mCAADoH,OACHwrN,EAAWE,aAAW1rN,OACvDwrN,EAAWG,SAAQ,aAAA3rN,OAAgBwrN,EAAWG,UAAa,KAG/DE,EAAWtpM,EAASzE,MACpB+wJ,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,uBAAwBA,GACtColK,GAAW,EACb,GAGFssC,EAAW,GACV,CAACqQ,EAAWE,YAAaF,EAAWG,WAkHvC,SAASG,EAAW9xN,GAClB60K,GAAW,GACX48C,GAAeM,IACb,MAAMC,EACK,SAAThyN,EACI+xN,EAAeL,YAAc,EAC7BK,EAAeL,YAAc,EAInC,OADA78C,GAAW,GACJ,IACFk9C,EACHL,YAAaM,EACd,GAEL,CAEA,OACEpiD,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,wBAAuBgR,UACxCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzBk3F,EAAAA,GAAAA,MAAA,MACExqK,MAAO,CAAE2pM,UAAW,SAAUlhE,QAAS,SAAU3rF,SAAU,UAAWw2B,SAAA,CACvE,uCACsC,KACrC41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,qBAGnDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzB41F,EAAAA,GAAAA,KAACkB,GAAQ,CAACluH,KAAM,GAAIomB,UAAU,iBAC9B4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLqxK,YAAY,wDACZroG,UAAU,eACV8mE,UAAYvuI,IACI,UAAVA,EAAEnG,KA9GG8pK,WACnB,IACE,IAAI+sD,EAAc1wN,EAAE3G,OAAO0B,MAE3B,GADAu4K,GAAW,GACgB,KAAvBo9C,EAAYhkM,OAAe,CAC7B,MAAM1F,QAAiBgsJ,GAAc31K,IAAI,mCAADoH,OACHwrN,EAAWE,aAAW1rN,OACvDwrN,EAAWG,SAAQ,aAAA3rN,OAAgBwrN,EAAWG,UAAa,KAG/DE,EAAWtpM,EAASzE,MACpB+wJ,GAAW,EACb,KAAO,CACL,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,oBAADoH,OAClBisN,IAEtB,IACE,MAAMC,QAAkB39C,GAAc31K,IAAI,mBAADoH,OACpBuiB,EAASzE,KAAK,KAEnC+tM,EAAW,CAAE/tM,KAAM,CAACouM,EAAUpuM,QAC9B+wJ,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ45F,IAAI17F,EACd,CACF,CACF,CAAE,MAAOA,GACP8B,QAAQ45F,IAAI17F,GACZolK,GAAW,EACb,GAkFYs9C,CAAa5wN,EACf,QAKNquK,EAAAA,GAAAA,KAACwiD,GAAgB,CACf3/C,SAAUA,EACVC,aA3JaA,KACnB6+C,GAAa9+C,EAAS,EA2JhBE,kBAzJkBzN,UACxB2P,GAAW,GACX,IACE,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,mCAADoH,OACHwrN,EAAWE,aAAW1rN,OACvDwrN,EAAWG,SAAQ,aAAA3rN,OAAgBwrN,EAAWG,UAAa,KAG/DE,EAAWtpM,EAASzE,MACpB+wJ,GAAW,EACb,CAAE,MAAOplK,GACPolK,GAAW,GACXtjK,QAAQ9B,MAAM,uBAAwBA,EACxC,CAEAqjK,EAAc,CACZ7yK,KAAM,GACN0gI,QAAS,GACTsyC,eAAgB,GAChB9zF,MAAO,GACP+zF,SAAU,GACVC,cAAe,GACfC,YAAa,GACbC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,aAAc,GACdC,YAAa,KAGf89C,GAAY,EAAM,EA4HZ3+C,kBAzFkB1N,UACxB2P,GAAW,GACX,IACE,MAAM47C,EAAc,IAAI/3D,gBAAgB,CACtCz4J,KAAM4yK,EAAW5yK,KACjB6nN,QAASj1C,EAAWlyC,QACpB0xF,eAAgBx/C,EAAWI,eAC3B80C,MAAOl1C,EAAW1zF,MAClBonI,SAAU1zC,EAAWK,SACrBo/C,gBAAiBz/C,EAAWM,cAC5Bo/C,aAAc1/C,EAAWO,YACzBo/C,KAAM3/C,EAAWQ,YACjBo/C,OAAQ5/C,EAAWS,cACnBo/C,OAAQ7/C,EAAWU,cACnBo/C,YAAa9/C,EAAWY,YACxBm/C,MAAO//C,EAAWW,eAGdjrJ,QAAiBgsJ,GAAc31K,IAAI,eAADoH,OACvByqN,EAAY1yN,aAE7B,GAAwB,MAApBwqB,EAASU,OAAgB,CACdV,EAASzE,KAEtB,IACE,MAAMouM,QAAkB39C,GAAc31K,IAAI,mBAADoH,OACpBuiB,EAASzE,KAAK,KAEnC+tM,EAAW,CAAE/tM,KAAM,CAACouM,EAAUpuM,QAC9B+wJ,GAAW,EACb,CAAE,MAAOg+C,GACPthN,QAAQ45F,IAAI,UACZ0pE,GAAW,EACb,CACF,MACEtjK,QAAQ9B,MAAM,kCAADzJ,OAAmCuiB,EAASU,SACzD4rJ,GAAW,EAEf,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,0BAA2BA,EAAMi9G,SAC/CmoD,GAAW,EACb,CACA08C,GAAY,EAAM,EAgDZ1+C,WAAYA,EACZC,cAAeA,IAEhB8B,GACChF,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,oBAAmBgR,UAChC41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,oBAGLk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,kBAAiBgR,SAC7B43I,EAAQ9tM,KAAKi9G,KAAI,CAAC+xF,EAAKh1N,KACtB8xK,EAAAA,GAAAA,KAAA,OAAA51F,UACE41F,EAAAA,GAAAA,KAACmjD,GAAc,CAAC56I,KAAM26I,KADdh1N,QAWdozK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,aAAYgR,SAAA,EACzB41F,EAAAA,GAAAA,KAAA,UACEv+C,QAASA,IAAMygG,EAAW,YAC1BtvH,SAAkC,IAAxBovH,EAAQF,YAAkB13I,SACrC,cAGD41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAA,QAAAh0E,OAAe4rN,EAAQF,YAAW,QAAA1rN,OAAO4rN,EAAQoB,eAEjDpjD,EAAAA,GAAAA,KAAA,UACEv+C,QAASA,IAAMygG,EAAW,QAC1BtvH,SACEovH,EAAQF,cAAgBE,EAAQoB,aAC/BpB,EAAQoB,WACVh5I,SACF,mBAOD,EC9Id,GAnG0B+wI,KACxB,MAAMlhM,EAAW6/H,IACXupE,EAAyBppM,EAASs1D,MACpCt1D,EAASs1D,MAAM00F,WACf,CAAC,GACEA,EAAYq/C,IAAiBvoG,EAAAA,EAAAA,UAASsoG,IACtCr+C,EAASC,IAAclqD,EAAAA,EAAAA,WAAUsoG,EAAuBn/C,eAE/D75E,EAAAA,EAAAA,YAAU,KACH45E,EAAWC,cACdq/C,EAAgBt/C,EAAWtE,OAC7B,GACC,CAACsE,EAAWtE,SAEf,MAAM4jD,EAAkBjuD,UACtB,IACE,MAAM38I,QAAiBgsJ,GAAc31K,IAAI,mBAADoH,OAAoBupK,IAC5D2jD,EAAc3qM,EAASzE,MACvB+wJ,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,uBAAwBA,GACtColK,GAAW,EACb,GAYF,OATA56E,EAAAA,EAAAA,YAAU,KACJpwE,EAASs1D,OAASt1D,EAASs1D,MAAM00F,aACnCq/C,EAAcrpM,EAASs1D,MAAM00F,YACxBhqJ,EAASs1D,MAAM00F,WAAWC,cAC7Bq/C,EAAgBtpM,EAASs1D,MAAM00F,WAAWtE,QAE9C,GACC,CAAC1lJ,EAASs1D,QAETy1F,GAEAhF,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,kBAAiBgR,UAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,uBAMnBkoG,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,wBAAuBgR,UACpC41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,mCAAkCgR,UAC/Ck3F,EAAAA,GAAAA,MAAA,MACExqK,MAAO,CAAEC,QAAS,OAAQyoI,UAAW,OAAQ50D,OAAQ,YAAaR,SAAA,EAElE41F,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,oBAAmBynC,SAAC,kBAE9B41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,eACd4mG,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,QAAM5mG,UAAU,WAAUgR,SAAE65F,EAAW5zK,iBAK/CixK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,iBAAgBgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,WAAUgR,SACtB65F,EAAWy1C,YACV15C,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKitK,EAAWy1C,WAAYl4C,IAAI,WAErCxB,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK+mN,GAAUv8C,IAAI,kBAG5BxB,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,kBAAiBgR,SAC7B65F,EAAWC,cACVlE,EAAAA,GAAAA,KAAA,OACEhpK,IAAKitK,EAAWC,aAChB9qG,UAAU,kBACVooG,IAAI,qBAGNxB,EAAAA,GAAAA,KAAA,OACEhpK,IAAK+mN,GACL3kJ,UAAU,kBACVooG,IAAI,0BAaZxB,EAAAA,GAAAA,KAACwjD,GAAgB,CAACnqM,OAAQ4qJ,KAC1BjE,EAAAA,GAAAA,KAACyjD,GAAa,CAACx/C,WAAYA,KAC3BjE,EAAAA,GAAAA,KAAC0jD,GAAa,CAACz/C,WAAYA,KAC3BjE,EAAAA,GAAAA,KAAC2jD,GAAiB,CAAChG,MAAO15C,EAAWtE,WACpC,EC/FP,GAToBikD,KAEhBtiD,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAACk+C,GAAgB,KACjBl+C,EAAAA,GAAAA,KAACm+C,GAAgB,OCIvB,GAR+B0F,KAE3B7jD,EAAAA,GAAAA,KAAA2F,GAAAA,SAAA,CAAAv7F,UACE41F,EAAAA,GAAAA,KAACo+C,GAAe,MCKtB,GARwB0F,KAEpB9jD,EAAAA,GAAAA,KAAA2F,GAAAA,SAAA,CAAAv7F,UACE41F,EAAAA,GAAAA,KAACq+C,GAA0B,MCmJjC,GAnJoB0F,KAClB,MAAO/+C,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACjC42E,EAASiB,GAAU,CACvBS,cAAe,CACblsB,UAAW,GACXC,SAAU,GACVlgE,MAAO,GACPu3G,cAAe,GACf3hG,QAAS,IAEXw3E,SAAW//L,IAGJA,EAAO4yK,YACVF,GAAMnU,SAAW,sBAGdv+J,EAAO2yG,MAEA,6BAA6BtuG,KAAKrE,EAAO2yG,SACnD+/D,GAAM//D,MAAQ,0BAFd+/D,GAAM//D,MAAQ,qBAKX3yG,EAAOuoH,UACVmqD,GAAM7/D,SAAW,wBAbJ,CAAC,GAkBlB++D,SAAU7Q,UACR,IACE2P,GAAW,GAEa,aADDN,GAAczE,KAAK,qBAAsB3rK,IACnD8kB,SACX4rJ,GAAW,GACXgC,GAAMC,QAAQ,6BAElB,CAAE,MAAOrnK,GACPolK,GAAW,GACXgC,GAAMpnK,MACJ,kEAEF8B,QAAQ9B,MAAM,yCAA0CA,EAC1D,KAIJ,OACEyhK,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,WAAS5mG,UAAU,kBAAiBgR,UAClCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,+BAA8BgR,SAAA,EAC3Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,CAAC,wDAE3B,KACA41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAC9D,wBAIH41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,gOAOLk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,CAAC,gBACd,KACb41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAC9D,6BAIHk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,eAAe+sG,SAAUwrB,EAAO2G,aAAaluH,SAAA,EAC3D41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,YAAW/4F,SAAC,gBAC3B41F,EAAAA,GAAAA,KAAA,SACErrK,GAAG,YACHtE,KAAK,YACLD,KAAK,OACLqxK,YAAY,aACZ3rB,UAAQ,EACRstB,SAAUuuB,EAAO2F,aACjB5qM,MAAOilM,EAAOp9L,OAAO4yK,aAEvBnH,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,eAC1B41F,EAAAA,GAAAA,KAAA,SACErrK,GAAG,WACHtE,KAAK,WACLD,KAAK,OACLqxK,YAAY,YACZ2B,SAAUuuB,EAAO2F,aACjB5qM,MAAOilM,EAAOp9L,OAAO6yK,YAEvBpH,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvB41F,EAAAA,GAAAA,KAAA,SACErrK,GAAG,QACHtE,KAAK,QACLD,KAAK,QACLqxK,YAAY,QACZ3rB,UAAQ,EACRstB,SAAUuuB,EAAO2F,aACjB5qM,MAAOilM,EAAOp9L,OAAO2yG,SAEvB84D,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,gBAAe/4F,SAAC,WAC/B41F,EAAAA,GAAAA,KAAA,SACErrK,GAAG,gBACHtE,KAAK,gBACLD,KAAK,OACLqxK,YAAY,iBACZ2B,SAAUuuB,EAAO2F,aACjB5qM,MAAOilM,EAAOp9L,OAAOkqN,iBAEvBz+C,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,UAAS/4F,SAAC,aACzB41F,EAAAA,GAAAA,KAAA,YACErrK,GAAG,UACHtE,KAAK,UACL8lI,KAAM,EACNsrC,YAAY,UACZ3rB,UAAQ,EACRstB,SAAUuuB,EAAO2F,aACjB5qM,MAAOilM,EAAOp9L,OAAOuoH,WAEvBkjD,EAAAA,GAAAA,KAAA,SACE5mG,UAAU,iBACVhpE,KAAK,SACL1D,MAAM,sBAMfs4K,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,UACE41F,EAAAA,GAAAA,KAAA,UAAA51F,SAAQ,6BAIb,ECTP,GApImBihB,IAAe,IAAd,KAAEolC,GAAMplC,EAC1B,MAAM,MAAE40E,GAAUG,KACZ3lB,EAAWR,KACVkiD,EAAcC,IAAmBrhF,EAAAA,EAAAA,WAAS,IAC1CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC+B,EAASu/E,IAActhF,EAAAA,EAAAA,UAAS,IAEjC42E,EAASiB,GAAU,CACvBS,cAAe,CACbvgC,SAAU,GACV1rD,SAAU,IAEZktF,SAAW//L,IACT,MAAM8nJ,EAAS,CAAC,EAUhB,OARK9nJ,EAAOu+J,WACVzW,EAAOyW,SAAW,yBAGfv+J,EAAO6yG,WACVi1C,EAAOj1C,SAAW,yBAGbi1C,CAAM,EAEf8pB,SAAU7Q,UACR,GAAa,UAAT7kC,EAAJ,CAGAw0C,GAAW,GACX,IACE,MAAMtsJ,QAAiBsnJ,EAAM1rK,GAE7B,GAAwB,MAApBokB,EAASU,OACXhX,YAAW,KACT4iK,GAAW,GACXxqB,EAAS,aAAa,GACrB,SACE,CACL,MAAMvmI,EAAOyE,EAASzE,KACtBmoL,EAAW,iBAADjmM,OAAkB8d,EAAK4oG,UACjCmoD,GAAW,EACb,CACF,CAAE,MAAOplK,GACPw8L,EAAW,oBACXp3B,GAAW,EACb,CAlBA,CAkBA,IAGJ,OACE3D,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAAC,UAE7D,IACF,YAEP41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,sBACNk3F,EAAAA,GAAAA,MAAA,QAAM6E,SAAUwrB,EAAO2G,aAAc/oD,OAAO,MAAKnlE,SAAA,EAC/Ck3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACL1D,MAAOilM,EAAOp9L,OAAOu+J,SACrBsQ,SAAUuuB,EAAO2F,aACjBiF,aAAa,MACblsM,KAAK,WACLsE,GAAG,WACH8sK,YAAY,mBAIjBkwB,EAAOkC,QAAQ/gC,UAAY6+B,EAAOt1C,OAAOyW,WACxCkN,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOyW,YAExCwO,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAM+rM,EAAe,OAAS,WAC9BzvM,MAAOilM,EAAOp9L,OAAO6yG,SACrBg8D,SAAUuuB,EAAO2F,aACjBiF,aAAa,MACblsM,KAAK,WACLsE,GAAG,WACH8sK,YAAY,cAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMc,GACNjvG,UAAU,sBACVqoD,QAASA,IAAM26E,GAAiBD,WAIrCxK,EAAOkC,QAAQzsF,UAAYuqF,EAAOt1C,OAAOj1C,WACxC44D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOj1C,YAGxC44D,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,kBAAiBgR,UAC5B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,yBAAwBynC,SAAC,yBAEnC41F,EAAAA,GAAAA,KAAC67B,GAAM,CAAC/kM,MAAO,CAAE8zE,OAAQ,QAAUxR,UAAU,iBAAgBgR,SAAC,cAKhEk3F,EAAAA,GAAAA,MAAA,KAAGxqK,MAAO,CAAE4wI,UAAW,SAAUt9D,SAAA,CAAC,yBACV,KAEpB41F,EAAAA,GAAAA,KAAA,KACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OACrDpR,KAAK,kBAAiBynC,SACvB,uBAMN46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,yBAGN,EC2DP,GArLsBihB,IAAe,IAAd,KAAEolC,GAAMplC,EAC7B,MAAOmxG,EAAcJ,IAAmBrhF,EAAAA,EAAAA,WAAS,IAC1C0hF,EAAqBC,IAA0B3hF,EAAAA,EAAAA,WAAS,GACzD0/B,EAAWR,KACV+qB,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GAEjC42E,EAASiB,GAAU,CACvBS,cAAe,CACbvgC,SAAU,GACV5rD,MAAO,GACPE,SAAU,GACVu1F,gBAAiB,IAEnBrI,SAAW//L,IACT,MAAM8nJ,EAAS,CAAC,EA0BhB,OAxBK9nJ,EAAOu+J,WACVzW,EAAOyW,SAAW,yBAGfv+J,EAAO2yG,MAEA,6BAA6BtuG,KAAKrE,EAAO2yG,SACnDm1C,EAAOn1C,MAAQ,0BAFfm1C,EAAOn1C,MAAQ,qBAKZ3yG,EAAO6yG,SAGT,2DAA2DxuG,KAC1DrE,EAAO6yG,YAGTi1C,EAAOj1C,SAAW,mBANlBi1C,EAAOj1C,SAAW,wBAShB7yG,EAAO6yG,WAAa7yG,EAAOooM,kBAC7BtgD,EAAOsgD,gBAAkB,2BAGpBtgD,CAAM,EAEf8pB,SAAU7Q,UACR2P,GAAW,GACX,IACE,MAAMtsJ,QAAiBi3D,MAAM,0CAE3B,CACE2/D,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAU3H,KAIzB,GAAIokB,EAAS4rG,GACX0gD,GAAW,GACXgC,GAAMC,QACJ,+DAEFzsB,EAAS,oBACJ,CACL,MAAMvmI,QAAayE,EAASikL,OAC5B33B,GAAW,GACXgC,GAAMpnK,MAAM,wBAADzJ,OAAyB8d,EAAK4oG,SAC3C,CACF,CAAE,MAAOj9G,GACPolK,GAAW,GACXgC,GAAMpnK,MAAM,0CACZ8B,QAAQ9B,MAAMA,EAChB,KAIJ,OACEyhK,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAAC,UAE5D,IAAI,mBAGd41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,2BACNk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAc+sG,SAAUwrB,EAAO2G,aAAaluH,SAAA,EAC1Dk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,UACDuhM,EAAOkH,cAAc,YACzB0D,aAAa,MACb96B,YAAY,gBAGfkwB,EAAOkC,QAAQ/gC,UAAY6+B,EAAOt1C,OAAOyW,WACxCkN,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOyW,eAG1CwO,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMgB,GAAYnvG,UAAU,UAC7C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACDuhM,EAAOkH,cAAc,SACzB0D,aAAa,MACb96B,YAAY,aAGfkwB,EAAOkC,QAAQ3sF,OAASyqF,EAAOt1C,OAAOn1C,QACrC84D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOn1C,YAG1Co6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMosM,EAAe,OAAS,cAC1B7K,EAAOkH,cAAc,YACzB0D,aAAa,MACb96B,YAAY,cAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMi1B,EAAen0B,GAAQF,GAC7B/uG,UAAU,sBACVqoD,QAASA,IAAM26E,GAAiBI,QAGnC7K,EAAOkC,QAAQzsF,UAAYuqF,EAAOt1C,OAAOj1C,WACxC44D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOj1C,eAG1Ck6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,kBAAiB/4F,SAAC,sBACjCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMqsM,EAAsB,OAAS,cACjC9K,EAAOkH,cAAc,mBACzB0D,aAAa,MACb96B,YAAY,sBAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMk1B,EAAsBp0B,GAAQF,GACpC/uG,UAAU,sBACVqoD,QAASA,IAAMi7E,GAAwBD,QAG1C9K,EAAOkC,QAAQ8I,iBACdhL,EAAOt1C,OAAOsgD,kBACZ38B,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOsgD,sBAG5C38B,EAAAA,GAAAA,KAAC67B,GAAM,CAAC/kM,MAAO,CAAE8zE,OAAQ,QAAUxR,UAAU,kBAAiBgR,SAAC,iBAIjEk3F,EAAAA,GAAAA,MAAA,KAAGxqK,MAAO,CAAE4wI,UAAW,SAAUt9D,SAAA,CAAC,2BACP,KACzB41F,EAAAA,GAAAA,KAAA,KACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OACrDpR,KAAK,eAAcynC,SACpB,gBAKJ46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,wBAGN,ECvIP,GAnDoBo1I,KAClB,MAAM,YAAEjgD,GAAgBa,MACjB4jD,EAAUC,IAAelpG,EAAAA,EAAAA,UAAS,KAClCiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACjCwlG,EAAuC,UAAzBhhD,EAAYG,SAoChC,OAlCAr1E,EAAAA,EAAAA,YAAU,KACWirE,WACjB,IACE2P,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,yCACnCm2K,QAAyB52D,QAAQwwD,IACrCpmJ,EAASzE,KAAKi9G,KAAImkC,UAChB,IACE,MAAM8P,QAAoBT,GAAc31K,IAAI,6BAADoH,OACZivK,EAAQC,aAEvC,MAAO,IAAKD,KAAYD,EAAYlxJ,KACtC,CAAE,MAAOrU,GAKP,OAJA8B,QAAQ9B,MAAM,mCAADzJ,OACwBivK,EAAQC,WAAU,KACrDzlK,GAEKwlK,CACT,MAIJ4+C,EAAY9+C,GACZF,GAAW,GACXtjK,QAAQ45F,IAAI,yBAA0B4pE,EACxC,CAAE,MAAOtlK,GACP8B,QAAQ9B,MAAM,uBAAwBA,EACxC,CACAolK,GAAW,EAAM,EAGnBM,EAAY,GACX,CAACg7C,KAGFj/C,EAAAA,GAAAA,MAAA,WAASloG,UAAU,eAAcgR,SAAA,EAC/Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,YAAc,IAC1D,UAEN46F,GAAUhF,EAAAA,GAAAA,KAAA,OAAA51F,SAAK,iBAAoB41F,EAAAA,GAAAA,KAACkkD,GAAS,CAAC/zK,MAAO6zK,EAAUvzF,KAAK,cAC7D,ECOd,GAtDsB0zF,KACpB,MAAM,YAAE5kD,GAAgBa,MACjB3vC,EAAO2zF,IAAUrpG,EAAAA,EAAAA,UAAS,cAC1BiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChCspG,EAAWC,IAAgBvpG,EAAAA,EAAAA,UAAS,IACrCwlG,EAAuC,UAAzBhhD,EAAYG,SAsChC,OArCAr1E,EAAAA,EAAAA,YAAU,KACWirE,WACjB,IACE2P,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,2CAGnCu1N,QAA2Bh2G,QAAQwwD,IACvCpmJ,EAASzE,KAAKi9G,KAAImkC,UAChB,IACE,MAAM8P,QAAoBT,GAAc31K,IAAI,6BAADoH,OACZivK,EAAQC,aAEvC,MAAO,IAAKD,KAAYD,EAAYlxJ,KACtC,CAAE,MAAOrU,GAKP,OAJA8B,QAAQ9B,MAAM,qCAADzJ,OAC0BivK,EAAQC,WAAU,KACvDzlK,GAEKwlK,CACT,MAIJi/C,EAAaC,GACbt/C,GAAW,GACXtjK,QAAQ45F,IAAI,yBAA0BgpH,GACtC5iN,QAAQ45F,IAAI8oH,EACd,CAAE,MAAOxkN,GACP8B,QAAQ9B,MAAM,uBAAwBA,EACxC,CACAolK,GAAW,EAAM,EAGnBM,EAAY,GACX,CAACg7C,KAGFj/C,EAAAA,GAAAA,MAAA,WAASloG,UAAU,eAAcgR,SAAA,EAC/Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,cAAgB,IAC5D,UAEN46F,GAAUhF,EAAAA,GAAAA,KAAA,OAAA51F,SAAK,iBAAoB41F,EAAAA,GAAAA,KAACkkD,GAAS,CAAC/zK,MAAOk0K,EAAW5zF,KAAO,gBAChE,EC6Md,GAnPuB+zF,KACrB,MAAM,YAAEjlD,GAAgBa,MACjBqkD,EAAcC,IAAmB3pG,EAAAA,EAAAA,UAAS,KAC1CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACjCwlG,EAAuC,UAAzBhhD,EAAYG,UACzB4+C,EAAUC,IAAexjG,EAAAA,EAAAA,WAAS,IAClCyhF,EAAcJ,IAAmBrhF,EAAAA,EAAAA,WAAS,IAC1C0hF,EAAqBC,IAA0B3hF,EAAAA,EAAAA,WAAS,GAEzD2jG,GADWzkE,IACEykE,KACjBH,GAAaD,EAAS,GAElB3sB,EAASiB,GAAU,CACvBS,cAAe,CACbvgC,SAAU,GACV5rD,MAAO,GACPE,SAAU,GACVu1F,gBAAiB,IAEnBrI,SAAW//L,IACT,MAAM8nJ,EAAS,CAAC,EA0BhB,OAxBK9nJ,EAAOu+J,WACVzW,EAAOyW,SAAW,yBAGfv+J,EAAO2yG,MAEA,6BAA6BtuG,KAAKrE,EAAO2yG,SACnDm1C,EAAOn1C,MAAQ,0BAFfm1C,EAAOn1C,MAAQ,qBAKZ3yG,EAAO6yG,SAGT,2DAA2DxuG,KAC1DrE,EAAO6yG,YAGTi1C,EAAOj1C,SAAW,mBANlBi1C,EAAOj1C,SAAW,wBAShB7yG,EAAO6yG,WAAa7yG,EAAOooM,kBAC7BtgD,EAAOsgD,gBAAkB,2BAGpBtgD,CAAM,EAEf8pB,SAAU7Q,MAAO/gK,EAAM82F,KAAqB,IAAnB,UAAE2qG,GAAW3qG,EACpC45E,GAAW,GACX,IACE,MAAMtsJ,QAAiBi3D,MAAM,8CAE3B,CACE2/D,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAU3H,KAazB,GAVAoN,QAAQ45F,IAAI,2BAEZy6F,EAAU,CACRzhM,OAAQ,CACNu+J,SAAU,GACV5rD,MAAO,GACPE,SAAU,GACVu1F,gBAAiB,MAGjBhkL,EAAS4rG,GACX0gD,GAAW,GACXgC,GAAMC,QACJ,+DAEFq3C,GAAY,OACP,CACL,MAAMrqM,QAAayE,EAASikL,OAC5B33B,GAAW,GACXgC,GAAMpnK,MAAM,wBAADzJ,OAAyB8d,EAAK4oG,UACzCyhG,GAAY,EACd,CACF,CAAE,MAAO1+M,GACPolK,GAAW,GACXgC,GAAMpnK,MAAM,0CACZ8B,QAAQ9B,MAAMA,GACd0+M,GAAY,EACd,KAsBJ,OAnBAl0H,EAAAA,EAAAA,YAAU,KAcR46E,GAAW,GAbe3P,WACxB,IACE2P,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,2CAGzC01N,EAAgB/rM,EAASzE,MACzB+wJ,GAAW,GACXtjK,QAAQ45F,IAAI5iF,EAASzE,KACvB,CAAE,MAAOrU,GACP8B,QAAQ45F,IAAI17F,EACd,GAIF6gN,EAAmB,GAClB,CAACH,KAGFj/C,EAAAA,GAAAA,MAAA,WAASloG,UAAU,eAAcgR,SAAA,EAC/Bk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,gBACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB3C,WAAY,YACZzzH,SAAA,EAEFk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,eAAiB,IAC7D,WAEP41F,EAAAA,GAAAA,KAAA,UAAQ5mG,UAAU,iBAAiBqoD,QAASi9F,EAAWt0I,SAAC,sBAIzD46F,GAAUhF,EAAAA,GAAAA,KAAA,OAAA51F,SAAK,iBAAoB41F,EAAAA,GAAAA,KAACkkD,GAAS,CAAC/zK,MAAOs0K,EAAch0F,KAAK,eACxE6tF,IACCt+C,EAAAA,GAAAA,KAAA,OAAK5mG,UAAS,GAAAhjE,OAAKkoN,EAAW,cAAgB,IAAKl0I,UACjDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,0BAAyBgR,SAAA,EACtCk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAC9D,cAEO,IAAI,mBAGdk3F,EAAAA,GAAAA,MAAA,QAAAl3F,SAAA,CAAM,WACK,KACTk3F,EAAAA,GAAAA,MAAA,QACExqK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAAA,CAC9D,aACY,OACL,IAAI,cAGdk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAc+sG,SAAUwrB,EAAO2G,aAAaluH,SAAA,EAC1Dk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,UACDuhM,EAAOkH,cAAc,YACzB0D,aAAa,MACb96B,YAAY,gBAGfkwB,EAAOkC,QAAQ/gC,UAAY6+B,EAAOt1C,OAAOyW,WACxCkN,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOyW,eAG1CwO,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMgB,GAAYnvG,UAAU,UAC7C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACDuhM,EAAOkH,cAAc,SACzB0D,aAAa,MACb96B,YAAY,aAGfkwB,EAAOkC,QAAQ3sF,OAASyqF,EAAOt1C,OAAOn1C,QACrC84D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOn1C,YAG1Co6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMosM,EAAe,OAAS,cAC1B7K,EAAOkH,cAAc,YACzB0D,aAAa,MACb96B,YAAY,cAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMi1B,EAAen0B,GAAQF,GAC7B/uG,UAAU,sBACVqoD,QAASA,IAAM26E,GAAiBI,QAGnC7K,EAAOkC,QAAQzsF,UAAYuqF,EAAOt1C,OAAOj1C,WACxC44D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOj1C,eAG1Ck6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,kBAAiB/4F,SAAC,sBACjCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMqsM,EAAsB,OAAS,cACjC9K,EAAOkH,cAAc,mBACzB0D,aAAa,MACb96B,YAAY,sBAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMk1B,EAAsBp0B,GAAQF,GACpC/uG,UAAU,sBACVqoD,QAASA,IAAMi7E,GAAwBD,QAG1C9K,EAAOkC,QAAQ8I,iBACdhL,EAAOt1C,OAAOsgD,kBACZ38B,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOsgD,sBAG5C38B,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,QACjB62C,QAASi9F,EACTtlJ,UAAU,oBAAmBgR,SAC9B,YAGD41F,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,QACjBxR,UAAU,kBACV+sG,SAAUwrB,EAAO2G,aAAaluH,SAC/B,uBAOD,ECrEd,GAhLuBu6I,KACrB,MAAOzwM,EAAMsO,IAAWu4F,EAAAA,EAAAA,WAAS,IAC1B6pG,EAAWC,IAAgB9pG,EAAAA,EAAAA,UAAS,KACpC+pG,EAAaC,IAAkBhqG,EAAAA,EAAAA,UAAS,KACxCiqG,EAAwBC,IAA6BlqG,EAAAA,EAAAA,UAAS,OAC9DujG,EAAUC,IAAexjG,EAAAA,EAAAA,WAAS,IAEzC1wB,EAAAA,EAAAA,YAAU,KACUirE,WAChB,IACE,MAAM38I,QAAiBgsJ,GAAc31K,IAAI,qBACzC+1N,EAAepsM,EAASzE,MACxBsO,GAAQ,GACR7gB,QAAQ45F,IAAI5iF,GACZksM,EAAalsM,EAASzE,MACtBvS,QAAQ45F,IAAIupH,EACd,CAAE,MAAOjlN,GACP8B,QAAQ45F,IAAI17F,GACZ2iB,GAAQ,EACV,GAEF+uL,EAAW,GACV,IACH,MAAMmN,EAAcr5C,IAClBk5C,GAAaD,GACb2G,EAA0B5/C,GAC1B1jK,QAAQ45F,IAAIypH,EAAuB,EAErC,OACE1jD,EAAAA,GAAAA,MAAA,WAASloG,UAAU,eAAcgR,SAAA,EAC/Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,eAAiB,IAC7D,kBAENl2D,IACC8rJ,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5Bk3F,EAAAA,GAAAA,MAAA,SAAOloG,UAAU,YAAWgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,SAAA51F,UACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,QACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,UACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,oBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBAGR41F,EAAAA,GAAAA,KAAA,SAAA51F,SACG06I,EAAY3zF,KAAI,CAACk0C,EAASn3K,KACzBozK,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQ1wK,MACbqrK,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQ8B,aACbnH,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQo5C,iBACbz+C,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,UACE5mG,UAAU,iBACVqoD,QAASA,IAAMi9F,EAAWr5C,GAASj7F,SACpC,kBARIl8E,YAkBlBowN,IACCt+C,EAAAA,GAAAA,KAAA,OACE5mG,UAAS,GAAAhjE,OAAKkoN,EAAW,cAAgB,IACzC78F,QAASA,IAAMi9F,IACf5nN,MAAO,CAAEoZ,SAAU,SAAUk6D,UAE7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,0BAAyBgR,SAAA,EACtCk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAC9D,YAEO,IAAI,cAGdk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAagR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,gBACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB5C,IAAK,QACLxzH,SAAA,EAEFk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,YAAW/4F,SAAC,gBAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACEtzK,MAAOs4N,EAAuB79C,UAC9Bo1B,aAAa,MACb96B,YAAY,aACZyjD,UAAQ,WAId5jD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,eAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACEtzK,MAAOs4N,EAAuB59C,SAC9Bm1B,aAAa,MACb96B,YAAY,YACZyjD,UAAQ,cAKhB5jD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMgB,GAAYnvG,UAAU,UAC7C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,QACL1D,MAAOs4N,EAAuB99G,MAC9Bq1F,aAAa,MACb96B,YAAY,QACZyjD,UAAQ,WAId5jD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,gBAAe/4F,SAAC,oBAC/Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMe,GAASlvG,UAAU,UAC1C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACL1D,MAAOs4N,EAAuBrR,YAC9BpX,aAAa,MACb96B,YAAY,iBACZyjD,UAAQ,WAId5jD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,UAAS/4F,SAAC,aACzBk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,kBACVtiE,MAAO,CAAEsL,OAAQ,QAASsY,MAAO,QAAS0vD,SAAA,EAE1C41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMO,GAAW1uG,UAAU,UAC5C4mG,EAAAA,GAAAA,KAAA,YACElpK,MAAO,CACLutB,OAAQ,OACRksG,QAAS,OACT4zD,OAAQ,OACRzpK,MAAO,OACPkvL,UAAW,UAEbl9M,MAAOs4N,EAAuBloG,QAC9By/E,aAAa,MACb2oB,UAAQ,WAIdllD,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,QACjB62C,QAASi9F,EACTtlJ,UAAU,mBAAkBgR,SAC7B,oBAOD,ECYd,GAnL+BihB,IAAkB,IAAjB,QAAE85H,GAAS95H,EACzC,MAAOizH,EAAUC,IAAexjG,EAAAA,EAAAA,WAAS,IAClCyhF,EAAcJ,IAAmBrhF,EAAAA,EAAAA,WAAS,IAC1C0hF,EAAqBC,IAA0B3hF,EAAAA,EAAAA,WAAS,GACzD0/B,EAAWR,KACV+qB,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GAEjC42E,EAASiB,GAAU,CACvBS,cAAe,CACbvgC,SAAU,GACV5rD,MAAO,GACPE,SAAU,GACVu1F,gBAAiB,IAEnBrI,SAAW//L,IACT,MAAM8nJ,EAAS,CAAC,EA0BhB,OAxBK9nJ,EAAOu+J,WACVzW,EAAOyW,SAAW,yBAGfv+J,EAAO2yG,MAEA,6BAA6BtuG,KAAKrE,EAAO2yG,SACnDm1C,EAAOn1C,MAAQ,0BAFfm1C,EAAOn1C,MAAQ,qBAKZ3yG,EAAO6yG,SAGT,2DAA2DxuG,KAC1DrE,EAAO6yG,YAGTi1C,EAAOj1C,SAAW,mBANlBi1C,EAAOj1C,SAAW,wBAShB7yG,EAAO6yG,WAAa7yG,EAAOooM,kBAC7BtgD,EAAOsgD,gBAAkB,2BAGpBtgD,CAAM,EAEf8pB,SAAU7Q,UACR2P,GAAW,GACX,IACE,MAAMtsJ,QAAiBi3D,MAAM,+CAE3B,CACE2/D,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAU3H,KAIzB,GAAIokB,EAAS4rG,GACX0gD,GAAW,GACXgC,GAAMC,QACJ,+DAEFzsB,EAAS,wBACJ,CACL,MAAMvmI,QAAayE,EAASikL,OAC5B33B,GAAW,GACXgC,GAAMpnK,MAAM,wBAADzJ,OAAyB8d,EAAK4oG,SAC3C,CACF,CAAE,MAAOj9G,GACPolK,GAAW,GACXgC,GAAMpnK,MAAM,0CACZ8B,QAAQ9B,MAAMA,EAChB,KASJ,OACEmgK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,cAAagR,UAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,0BAAyBgR,SAAA,EACtCk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAAC,cAE5D,IAAI,mBAGd41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,2BACNk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAc+sG,SAAUwrB,EAAO2G,aAAaluH,SAAA,EAC1Dk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,UACDuhM,EAAOkH,cAAc,YACzB0D,aAAa,MACb96B,YAAY,gBAGfkwB,EAAOkC,QAAQ/gC,UAAY6+B,EAAOt1C,OAAOyW,WACxCkN,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOyW,eAG1CwO,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMgB,GAAYnvG,UAAU,UAC7C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,WACDuhM,EAAOkH,cAAc,SACzB0D,aAAa,MACb96B,YAAY,aAGfkwB,EAAOkC,QAAQ3sF,OAASyqF,EAAOt1C,OAAOn1C,QACrC84D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOn1C,YAG1Co6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,cAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMosM,EAAe,OAAS,cAC1B7K,EAAOkH,cAAc,YACzB0D,aAAa,MACb96B,YAAY,cAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMi1B,EAAen0B,GAAQF,GAC7B/uG,UAAU,sBACVqoD,QAASA,IAAM26E,GAAiBI,QAGnC7K,EAAOkC,QAAQzsF,UAAYuqF,EAAOt1C,OAAOj1C,WACxC44D,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOj1C,eAG1Ck6D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,kBAAiB/4F,SAAC,sBACjCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMqsM,EAAsB,OAAS,cACjC9K,EAAOkH,cAAc,mBACzB0D,aAAa,MACb96B,YAAY,sBAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMk1B,EAAsBp0B,GAAQF,GACpC/uG,UAAU,sBACVqoD,QAASA,IAAMi7E,GAAwBD,QAG1C9K,EAAOkC,QAAQ8I,iBACdhL,EAAOt1C,OAAOsgD,kBACZ38B,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,QAAOgR,SAAEunH,EAAOt1C,OAAOsgD,sBAG5C38B,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,QACjB62C,QAAS0jG,EACT/rJ,UAAU,oBAAmBgR,SAC9B,YAGD41F,EAAAA,GAAAA,KAAC67B,GAAM,CAAC/kM,MAAO,CAAE8zE,OAAQ,QAAUxR,UAAU,kBAAiBgR,SAAC,oBAK/D,ECoBV,GAvM0Bg7I,KACxB,MAAOlxM,EAAMsO,IAAWu4F,EAAAA,EAAAA,WAAS,IAC1BsqG,EAAWR,IAAgB9pG,EAAAA,EAAAA,UAAS,KACpCujG,EAAUC,IAAexjG,EAAAA,EAAAA,WAAS,IAClCuqG,EAAcC,IAAmBxqG,EAAAA,EAAAA,WAAS,IAC1CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC+pG,EAAaC,IAAkBhqG,EAAAA,EAAAA,UAAS,KACxCiqG,EAAwBC,IAA6BlqG,EAAAA,EAAAA,UAAS,MAC/D2jG,EAAcr5C,IAClBk5C,GAAaD,GACb2G,EAA0B5/C,GAC1B1jK,QAAQ45F,IAAIypH,EAAuB,EA4BrC,OAnBA36H,EAAAA,EAAAA,YAAU,KACUirE,WAChB,IACE2P,GAAW,GACX,MAAMtsJ,QAAiBgsJ,GAAc31K,IAAI,8BACzC+1N,EAAepsM,EAASzE,MACxBsO,GAAQ,GACRyiJ,GAAW,GACXtjK,QAAQ45F,IAAI5iF,GACZksM,EAAalsM,EAASzE,MACtBvS,QAAQ45F,IAAIupH,EACd,CAAE,MAAOjlN,GACP8B,QAAQ45F,IAAI17F,GACZ2iB,GAAQ,GACRyiJ,GAAW,EACb,GAEFssC,EAAW,GACV,KAEDjwC,EAAAA,GAAAA,MAAA,WAASloG,UAAU,eAAcgR,SAAA,EAC/Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,eAAiB,IAC7D,kBAENl2D,IACC8rJ,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5Bk3F,EAAAA,GAAAA,MAAA,SAAOloG,UAAU,YAAWgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,SAAA51F,UACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,QACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,oBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,kBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,oBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBAGR41F,EAAAA,GAAAA,KAAA,SAAA51F,SACG06I,EAAY3zF,KAAI,CAACk0C,EAASn3K,KACzBozK,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQ1wK,MACbqrK,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQm5C,iBACbx+C,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQsuC,eACb3zC,EAAAA,GAAAA,KAAA,MAAA51F,SAAKi7F,EAAQo5C,iBACbz+C,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,UACE5mG,UAAU,iBACVqoD,QAASA,IAAMi9F,EAAWr5C,GAASj7F,SACpC,kBATIl8E,YAmBlBowN,IACCt+C,EAAAA,GAAAA,KAAA,OACE5mG,UAAS,GAAAhjE,OAAKkoN,EAAW,cAAgB,IACzC78F,QAASA,IAAMi9F,IACf5nN,MAAO,CAAEoZ,SAAU,SAAUk6D,UAE7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,0BAAyBgR,SAAA,EACtCk3F,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,eAAcgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,QACElpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAC9D,cAEO,IAAI,mBAId41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,wBAAyB2hC,WAAY,OAAQq2B,SAAC,wBAGpEk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAagR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,WAAU/4F,SAAC,oBAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACL1D,MAAOs4N,EAAuBxG,cAC9BjiB,aAAa,MACb96B,YAAY,WACZyjD,UAAQ,WAId5jD,EAAAA,GAAAA,MAAA,OACEloG,UAAU,gBACVtiE,MAAO,CACLC,QAAS,OACTypM,eAAgB,gBAChB5C,IAAK,QACLxzH,SAAA,EAEFk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,cAAa/4F,SAAC,kBAC7Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMa,GAAQhvG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACEtzK,MAAOs4N,EAAuBrR,YAC9BpX,aAAa,MACb2oB,UAAQ,WAId5jD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,gBAAe/4F,SAAC,oBAC/Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMe,GAASlvG,UAAU,UAC1C4mG,EAAAA,GAAAA,KAAA,SACEtzK,MAAOs4N,EAAuBvG,cAC9BliB,aAAa,MACb2oB,UAAQ,cAKhB5jD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,QAAO/4F,SAAC,WACvBk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAkBtiE,MAAO,CAAEsL,OAAQ,QAASgoE,SAAA,EACzD41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMgB,GAAYnvG,UAAU,UAC7C4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,QACL1D,MAAOs4N,EAAuB99G,MAC9Bq1F,aAAa,MACb96B,YAAY,QACZyjD,UAAQ,WAId5jD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,UAAS/4F,SAAC,aACzBk3F,EAAAA,GAAAA,MAAA,OACEloG,UAAU,kBACVtiE,MAAO,CAAEsL,OAAQ,QAASsY,MAAO,QAAS0vD,SAAA,EAE1C41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMO,GAAW1uG,UAAU,UAC5C4mG,EAAAA,GAAAA,KAAA,YACElpK,MAAO,CACLutB,OAAQ,OACRksG,QAAS,OACT4zD,OAAQ,OACRzpK,MAAO,OACPkvL,UAAW,UAEbl9M,MAAOs4N,EAAuBloG,QAC9By/E,aAAa,MACb2oB,UAAQ,WAIdllD,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,QACjB62C,QAASi9F,EACTtlJ,UAAU,mBAAkBgR,SAC7B,WAGD41F,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,uBACjB62C,QA5Ka+jG,KACzBjH,GAAY,GACZgH,GAAgB,EAAK,EA2KTnsJ,UAAU,mBAAkBgR,SAC7B,gCAORk7I,IAAgBtlD,EAAAA,GAAAA,KAACylD,GAAsB,CAACN,QAjLnBO,KACxBH,GAAgB,EAAM,MAiLZ,ECopCP,SAASI,GAAY16N,GAC1B,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,mKAAzFA,CAA6P11K,EACtQ,CC0zBO,SAAS26N,GAAkB36N,GAChC,OAAO01K,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,YAAY,KAAO,OAAO,OAAS,eAAe,YAAc,IAAI,cAAgB,QAAQ,eAAiB,SAAS,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,kEAAkE,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,wDAA5RA,CAAqV11K,EAC9V,CCnpEA,MAyIA,GAzIiB46N,KACf,MAAO7gD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,IAChC6mG,EAAYC,IAAiB9mG,EAAAA,EAAAA,UAAS,CAC3C+mG,YAAa,EACbC,SAAU,KAEL+D,EAAUC,IAAehrG,EAAAA,EAAAA,UAAS,IAuCzC,OAtCA1wB,EAAAA,EAAAA,YAAU,KACR46E,GAAW,GACO3P,WAChB,IACE,MAAM38I,QAAiBgsJ,GAAc31K,IAAI,qBAMzC+2N,EAAYptM,EAASzE,MACrBvS,QAAQ45F,IAAI5iF,EAASzE,MACrB+wJ,GAAW,EACb,CAAE,MAAOplK,GACP8B,QAAQ9B,MAAM,uBAAwBA,GACtColK,GAAW,EACb,GAGFssC,EAAW,GACV,CAACqQ,EAAWE,YAAaF,EAAWG,YAmBrCzgD,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,cACHk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,QACE41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,gBAGzDk3F,EAAAA,GAAAA,MAAA,WAASloG,UAAU,0BAAyBgR,SAAA,EAC1C41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,SAC3B46F,GACChF,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,eAEH07I,EAAS30F,KAAK5oD,IAASy3F,EAAAA,GAAAA,KAACgmD,GAAQ,IAAmBz9I,GAAbA,EAAK5zE,SAsB/C2sK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,qBAAoBgR,SAAA,EACjCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,yBAAwBgR,SAAA,EACrCk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,YAAc,IAC1D,YAEPk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK2mM,GAAWn8B,IAAI,kBACzBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,oBACH41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,sBAGRk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK2mM,GAAWn8B,IAAI,kBACzBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,oBACH41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,4BAKZk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,SACK,KACP41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,cAEnDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACkC,GAAU,CAAClvH,KAAM,QAEpBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACmC,GAAiB,CAACnvH,KAAM,QAE3BgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAAC2lD,GAAU,CAAC3yK,KAAM,QAEpBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACqC,GAAS,CAACrvH,KAAM,QAEnBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACoC,GAAU,CAACpvH,KAAM,oBAM5BgtH,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,0BAAyBgR,UACtC41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5B41F,EAAAA,GAAAA,KAAC4lD,GAAgB,CAAC5yK,KAAM,WAG3B,ECnBP,GAnHmBizK,KACjB,MAAMhsM,EAAW6/H,KACX,KAAEkkD,GAAS/jL,EAASs1D,MAE1B,OADA5tE,QAAQ45F,IAAIyiG,IAEV18B,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,OAAKlpK,MAAO,CAAEoxE,gBAAiB,WAAYkC,UACzCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,6BACH41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK4zH,EAAKtlI,cAGd4oG,EAAAA,GAAAA,MAAA,WAASloG,UAAU,0BAAyBgR,SAAA,EAC1C41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,WAAUgR,SAAA,EACvB41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,SAC3B4zH,EAAKN,WACJ19B,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKgnM,EAAKN,UAAWl8B,IAAI,UAE9BxB,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK2mM,GAAWn8B,IAAI,YAG7BxB,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,kBAAiBgR,UAC9B41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,mBAAkBgR,SAAE4zH,EAAKnlI,sBAI5CyoG,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,qBAAoBgR,SAAA,EACjCk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,yBAAwBgR,SAAA,EACrC41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,YACJ41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,eAAcgR,UAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK2mM,GAAWn8B,IAAI,kBACzBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,kBACJ41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,YACH41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,eAAcgR,UAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACkC,GAAU,CAAClvH,KAAM,QAEpBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACmC,GAAiB,CAACnvH,KAAM,QAE3BgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAAC2lD,GAAU,CAAC3yK,KAAM,QAEpBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACqC,GAAS,CAACrvH,KAAM,QAEnBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACoC,GAAU,CAACpvH,KAAM,wBAQhCsuH,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,yBAAwBgR,SAAA,EACrCk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,YAAc,IAC1D,YAEPk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK2mM,GAAWn8B,IAAI,kBACzBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,oBACH41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,sBAGRk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK2mM,GAAWn8B,IAAI,kBACzBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,oBACH41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,4BAKZk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,SACK,KACP41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,cAEnDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACkC,GAAU,CAAClvH,KAAM,QAEpBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACmC,GAAiB,CAACnvH,KAAM,QAE3BgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAAC2lD,GAAU,CAAC3yK,KAAM,QAEpBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACqC,GAAS,CAACrvH,KAAM,QAEnBgtH,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,cAAagR,UACjC41F,EAAAA,GAAAA,KAACoC,GAAU,CAACpvH,KAAM,oBAM5BgtH,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,0BAAyBgR,UACtC41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,UAC5B41F,EAAAA,GAAAA,KAAC4lD,GAAgB,CAAC5yK,KAAM,WAG3B,ECiCP,GAvJmBkzK,KACjB,MAAOxtJ,EAAOytJ,IAAYprG,EAAAA,EAAAA,UAAS,KAC5BliD,EAAautJ,IAAkBrrG,EAAAA,EAAAA,UAAS,KACxCqiB,EAAOipF,IAAYtrG,EAAAA,EAAAA,UAAS,OAC5BurG,EAAcC,IAAmBxrG,EAAAA,EAAAA,UAAS,KAC1CiqD,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GA2DvC,OACEumD,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,wBAAuBgR,SAAA,EACpCk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,cACU,KACZ41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,SAAW,IACvD,WAEPk3F,EAAAA,GAAAA,MAAA,QAAM6E,SAjES7Q,UAEnB,GADA3jK,EAAE0uG,kBACG3nC,EACH,OAAOuuG,GAAMpnK,MAAM,qBAErB,IAAKg5D,EACH,OAAOouG,GAAMpnK,MAAM,2BAErB,IAAKu9H,IAAUkpF,EACb,OAAOr/C,GAAMpnK,MAAM,6BAErB,MAAM2mN,EAAU,CACd9tJ,QACAG,cACA6kI,UAAW4oB,GAEb,IACErhD,GAAW,GACX,MAAMtsJ,QAAiBi3D,MAAM,kBAAmB,CAC9C2/D,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAUsqN,KAGvB,GADA7kN,QAAQ45F,IAAI5iF,GACRA,EAAS4rG,GACX0gD,GAAW,GACXgC,GAAMC,QAAQ,6BAEdi/C,EAAS,IACTC,EAAe,IACfC,EAAS,MACTE,EAAgB,QACX,CACL,MAAMryM,QAAayE,EAASikL,OAC5B31B,GAAMpnK,MAAM,UAADzJ,OAAW8d,EAAK4oG,SAC7B,CACF,CAAE,MAAOj9G,GACP8B,QAAQ9B,MAAMA,GACdolK,GAAW,GACXgC,GAAMpnK,MAAM,uCACd,GAuBkCu5D,UAAU,YAAWgR,SAAA,EACjD41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzB41F,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,QACHjI,MAAOgsE,EACP+oG,YAAa,0BACb2B,SAAWzxK,GAAMw0N,EAASx0N,EAAE3G,OAAO0B,OACnCopJ,UAAQ,OAGZkqB,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzB41F,EAAAA,GAAAA,KAAA,YACErrK,GAAG,cACHjI,MAAOmsE,EACP4oG,YAAY,+BACZglD,KAAM,GACNtwF,KAAM,GACNitC,SAAWzxK,GAAMy0N,EAAez0N,EAAE3G,OAAO0B,OACzCopJ,UAAQ,OAGZkqB,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,SACxBk8I,GACChlD,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAI,mBACe,KACjB41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,cAGnDk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,OACEv+C,QAASA,KACP4kG,EAAS,MACTE,EAAgB,GAAG,EAErBntJ,UAAU,eAAcgR,UAExB41F,EAAAA,GAAAA,KAACk+B,GAAQ,OAEXl+B,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKsvN,EAAc9kD,IAAI,oBAIhCF,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,SAAOloG,UAAU,+BAA+B+pG,QAAQ,QAAO/4F,SAAA,EAC7D41F,EAAAA,GAAAA,KAACuC,GAAO,CAACvvH,KAAM,KAAM,mBAGvBgtH,EAAAA,GAAAA,KAAA,SACE5vK,KAAK,OACLuE,GAAG,QACHisM,OAAO,UACPx9B,SAzEWzxK,IACzB,MAAMkvM,EAAOlvM,EAAE3G,OAAO6zM,MAAM,GAC5B,GAAIgC,EAAM,CACR,MAAM6lB,EAAS,IAAIC,WACnBD,EAAOjzD,UAAY,KACjB4yD,EAASxlB,GACT0lB,EAAgBG,EAAOl3N,OAAO,EAEhCk3N,EAAOE,cAAc/lB,EACvB,WAqEM7gC,EAAAA,GAAAA,KAAA,UACE5vK,KAAK,SACL0G,MAAO,CAAE4jB,MAAO,eAChB0+C,UAAU,iBAAgBgR,SAC3B,sBAKJ46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,UACE41F,EAAAA,GAAAA,KAAA,UAAA51F,SAAQ,4BAIb,EC1IP,GAbey8I,KAEXvlD,EAAAA,GAAAA,MAAA,OAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAEsb,MAAO,OAAQquL,UAAW,SAAU1sJ,WAAY,OAAQq2B,SAAC,gBAGtE41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,aAAYgR,SAAC,qDC0EhC,GA5EgB08I,KAEZxlD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,UAASgR,SAAA,EACtB41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,iBACZtiE,MAAO,CACL4wI,UAAW,QACXt9D,SACH,gBAGD41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,aAAYgR,SAAC,gIAI1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMS,GACP5uG,UAAU,uBAEX4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,WACH41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,6BACH41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,4CAELk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMe,GACPlvG,UAAU,uBAEX4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,WACH41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,gBACH41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,kDAELk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMe,GACPlvG,UAAU,uBAEX4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,WACH41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,gBACH41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,qDAGP41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,cAAagR,SAAC,kRAM3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC7B41F,EAAAA,GAAAA,KAACilB,GAAe,CACV1d,KAAMI,GACPvuG,UAAU,uBAEV4mG,EAAAA,GAAAA,KAACilB,GAAe,CACf1d,KAAMG,GACPtuG,UAAU,uBAEV4mG,EAAAA,GAAAA,KAACilB,GAAe,CACf1d,KAAMM,GACPzuG,UAAU,uBAEV4mG,EAAAA,GAAAA,KAACilB,GAAe,CACf1d,KAAMK,GACPxuG,UAAU,uBAEV4mG,EAAAA,GAAAA,KAACilB,GAAe,CACf1d,KAAMC,GACPpuG,UAAU,4BC5DrB,GAZc2tJ,KAEVzlD,EAAAA,GAAAA,MAAA,OAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,iBAAgBgR,SAAC,0BAC/B41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,aAAYgR,SAAC,kFCIhC,GARmB48I,KAEfhnD,EAAAA,GAAAA,KAAA,OAAA51F,UACE41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,iBAAgBgR,SAAC,kBCKrC,GARe68I,KAEXjnD,EAAAA,GAAAA,KAAA,OAAA51F,UACE41F,EAAAA,GAAAA,KAAA,MAAI5mG,UAAU,iBAAgBgR,SAAC,qBC0GrC,GAxGmBn/E,IACjB,MAAO62N,EAAaoF,IAAkBnsG,EAAAA,EAAAA,UAAS,IACxCt/B,EAAM4jI,IAAWtkG,EAAAA,EAAAA,UAAS,KAC1BukG,EAAQC,IAAaxkG,EAAAA,EAAAA,UAAS,MAI/BosG,EAHe,EAGGrF,EAClBsF,EAAmBD,EAJJ,EAKfE,EAAep8N,EAAMklD,MAAM/hD,MAAMg5N,EAAkBD,GACzDxlN,QAAQ45F,IAAItwG,GACZ,MAAMm4N,EAAavxN,KAAKqI,KAAKjP,EAAMklD,MAAMhlD,OAPpB,GAcfm8N,EAAahyD,UAEf+pD,EAAQ,QACR19M,QAAQ45F,IAAI+pE,GACdi6C,EAAUj6C,EAAW,EAWvB,OACEhE,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,CACkB,YAAfn/E,EAAMwlI,MAA+B,SAATh1C,IAC3BukF,EAAAA,GAAAA,KAAC0/C,GAAU,CAAClJ,WAAY8I,IAEV,cAAfr0N,EAAMwlI,MAAiC,SAATh1C,IAC7BukF,EAAAA,GAAAA,KAACshD,GAAS,CAACvK,aAAcuI,IAEX,eAAfr0N,EAAMwlI,MAAkC,SAATh1C,IAC9BukF,EAAAA,GAAAA,KAACwhD,GAAmB,CAAC5G,cAAe0E,IAE5B,SAAT7jI,IAAmBukF,EAAAA,GAAAA,KAACw/C,GAAW,CAACP,YAAaqI,IAEpC,KAAT7rI,IACCukF,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,gBAAegR,SACJ,IAAvBn/E,EAAMklD,MAAMhlD,QACX60K,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,wBAEHk3F,EAAAA,GAAAA,MAAAqE,GAAAA,SAAA,CAAAv7F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,SAAOloG,UAAU,YAAWgR,SAAA,EAC1B41F,EAAAA,GAAAA,KAAA,SAAA51F,UACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,UACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,YACY,cAAfn/E,EAAMwlI,OAAwBuvC,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,mBAGvC41F,EAAAA,GAAAA,KAAA,SAAA51F,SACGi9I,EAAal2F,KAAI,CAAC5oD,EAAMr6E,KACvBozK,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAKq3F,YACV0B,EAAAA,GAAAA,MAAA,MAAIloG,UAAU,WAAUgR,SAAA,EACtB41F,EAAAA,GAAAA,KAAA,QAAM5mG,UAAU,UAASgR,SAAC,YAC1Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,mBAAkBgR,SAAA,EAC/B41F,EAAAA,GAAAA,KAAA,QAAMv+C,QAASA,IAtDnB69F,KAClBD,EAAQ,QACRE,EAAUD,GACV39M,QAAQ45F,IAAI,uBAAwB+jH,EAAO,EAmDAiI,CAAWh/I,EAAK5zE,IAAIy1E,SAAC,UAC1C41F,EAAAA,GAAAA,KAAA,QAAMv+C,QAASA,KAAmBl5C,EAAK5zE,QA1C7DgN,QAAQ45F,IAAI,WA0CqDnxB,SAAC,iBAGhC,cAAfn/E,EAAMwlI,OACLuvC,EAAAA,GAAAA,KAAA,MAAA51F,UACE41F,EAAAA,GAAAA,KAAA,UACE5mG,UAAU,iBACVqoD,QAASA,IAAM6lG,EAAW/+I,EAAK5zE,IAAIy1E,SACpC,sBAdEl8E,WAuBf8xK,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,SACxB,IAAI/3E,MAAM+wN,IAAajyF,KAAI,CAACtyG,EAAG2oM,KAC9BxnD,EAAAA,GAAAA,KAAA,UAEEv+C,QAASA,KA3DzBylG,EA2DgDM,EAAY,EAAG,EAC/CpuJ,UAAW0oJ,IAAgB0F,EAAY,EAAI,SAAW,GAAGp9I,SAExDo9I,EAAY,GAJRA,cAYlB,ECpFP,GArBsBn8H,IAA+B,IAA9B,MAAE3yB,EAAK,MAAE14D,EAAK,OAAEiiK,GAAQ52E,EAC7C,OACEi2E,EAAAA,GAAAA,MAAA,OACEloG,UAAU,OACVqoD,QAASA,KACP7vH,OAAOqoB,SAAS0oB,KAAOs/H,CAAM,EAC7B73F,SAAA,EAEF41F,EAAAA,GAAAA,KAAA,MACElpK,MAAO,CACLsb,MAAO,wBACPwhC,SAAU,QACVw2B,SAEDpqE,KAEHggK,EAAAA,GAAAA,KAAA,MAAA51F,SAAK1R,MACD,EC8CV,GA9DoB2yB,IAAuB,IAAtB,MAAEl7C,EAAK,MAAEmtK,GAAOjyH,EACnC,OACEi2E,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,CACV,IAAjBj6B,EAAMhlD,SAAgB60K,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,4BACzBj6B,EAAMghF,KAAI,CAAC5oD,EAAMr6E,KAChBozK,EAAAA,GAAAA,MAAA,OAAiBloG,UAAU,uBAAsBgR,SAAA,EAC/C41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAKl4E,QACV2vK,EAAAA,GAAAA,KAAA,SAAO5mG,UAAU,YAAWgR,SACzBkzI,GACCh8C,EAAAA,GAAAA,MAAA,SAAAl3F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,uBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAKyxI,gBAEZ14C,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAK0xI,UAEZ34C,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,mBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAK4xI,YAEZ74C,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,mBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAK2xI,YAEZ54C,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,qBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAK6xI,cAEZ94C,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,eACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAK8xI,kBAId/4C,EAAAA,GAAAA,MAAA,SAAAl3F,SAAA,EACEk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,YACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAKi+F,aAEZlF,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,kBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAKk+F,mBAEZnF,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,iBACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAKm+F,kBAEZpF,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,EACE41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,WACJ41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAK7B,EAAKqnF,kBA9CV1hK,OAqDR,EC3CV,SAbA,WACE,MACM0qD,EAAsC,MAD3BkhG,IACc3/H,SAE/B,OACEmnJ,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAACynD,GAAM,CAAC7uK,cAAeA,KACvBonH,EAAAA,GAAAA,KAACrhB,GAAM,KACPqhB,EAAAA,GAAAA,KAAC2C,GAAM,MAGb,4uzBCqFA,GAvFmB+kD,KACjB,MAAMztM,EAAW6/H,IACX6tE,EAAU1tM,EAASE,SAASs2E,SAAS,SACrCyrG,EAAYjiL,EAASE,SAASs2E,SAAS,UAgB7C,OACE6wE,EAAAA,GAAAA,MAAA,WACEloG,UAAS,yBAAAhjE,OAA2BuxN,EAAU,GAAK,kBAAmBv9I,SAAA,EAEtEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,qBAAoBgR,SAAA,EACjC41F,EAAAA,GAAAA,KAAA,KACE5mG,UAAS,GAAAhjE,OAAKuxN,EAAU,qBAAuB,oBAC/ChlL,KAAK,IAAGynC,SACT,SAGAu9I,GACCrmD,EAAAA,GAAAA,MAAA,KACEloG,UAAU,mBACVz2B,KAAMu5J,EAAY,eAAiB,gBAAgB9xH,SAAA,CACpD,YACW8xH,EAAY,YAAc,cAGtC56B,EAAAA,GAAAA,MAAA,KACEloG,UAAU,qBACVz2B,KAAMu5J,EAAY,kBAAoB,mBAAmB9xH,SAAA,CAC1D,eACc8xH,EAAY,YAAc,iBAI7C56B,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzB41F,EAAAA,GAAAA,KAAA,OACEhpK,IA5CJ2wN,EACIzrB,EACO0rB,GAEAC,GAGP3rB,EACO4rB,GAEAC,GAmCPvmD,IAAI,mBACJpoG,UAAU,cAGdkoG,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,uBAAsBgR,SAAA,EACnC41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,eAAcgR,UAClC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKuqK,GAAMC,IAAI,oBAEtBF,EAAAA,GAAAA,MAAA,KAAAl3F,SAAA,CACC8xH,EAAS,uDAA4D,mEAAkE,KAEtIl8B,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,iBAAmB,IAC/D,iBAKXk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzB41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKgxN,GAAMxmD,IAAI,iBAEtBxB,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,wBAAuBgR,UACpC41F,EAAAA,GAAAA,KAACrhB,GAAM,OAET2iB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKixN,GAAKzmD,IAAI,eACnBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKkxN,GAAO1mD,IAAI,WACrBxB,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKmxN,GAAQ3mD,IAAI,YACtBxB,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKoxN,GAAM5mD,IAAI,oBAIlB,EC/Ed,GAbuB6mD,KAEnB/mD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAACynD,GAAM,KACPnmD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,4BAA2BgR,SAAA,EACxC41F,EAAAA,GAAAA,KAACi9B,GAAO,KACRj9B,EAAAA,GAAAA,KAACrhB,GAAM,QAETqhB,EAAAA,GAAAA,KAAC2C,GAAM,iFC+Db,GAhEwB2lD,KACtB,MACMX,EADW7tE,IACQ3/H,SAASs2E,SAAS,SAC3C,OACE6wE,EAAAA,GAAAA,MAAA,WACEloG,UAAS,yBAAAhjE,OAA2BuxN,EAAU,GAAK,kBAAmBv9I,SAAA,EAEtEk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,qBAAoBgR,SAAA,EACjC41F,EAAAA,GAAAA,KAAA,KACE5mG,UAAS,GAAAhjE,OAAKuxN,EAAU,qBAAuB,oBAC/ChlL,KAAK,IAAGynC,SACT,SAGAu9I,GACC3nD,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,mBAAmBz2B,KAAK,gBAAeynC,SAAC,sBAIrD41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,qBAAqBz2B,KAAK,mBAAkBynC,SAAC,4BAK9Dk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzB41F,EAAAA,GAAAA,KAAA,OACEhpK,IAAK2wN,EAAUC,GAAkBE,GACjCtmD,IAAI,mBACJpoG,UAAU,cAGdkoG,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,uBAAsBgR,SAAA,EACnC41F,EAAAA,GAAAA,KAAA,KAAGr9H,KAAK,IAAIy2B,UAAU,eAAcgR,UAClC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKuqK,GAAMC,IAAI,oBAEtBF,EAAAA,GAAAA,MAAA,KAAAl3F,SAAA,CAAG,sDACkD,KACnD41F,EAAAA,GAAAA,KAAA,QAAMlpK,MAAO,CAAEsb,MAAO,yBAA0Bg4D,SAAC,iBAAmB,IAC/D,iBAKXk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,aAAYgR,UACzB41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKgxN,GAAMxmD,IAAI,iBAEtBxB,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,wBAAuBgR,UACpC41F,EAAAA,GAAAA,KAACrhB,GAAM,OAET2iB,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKixN,GAAKzmD,IAAI,eACnBF,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,oBAAmBgR,SAAA,EAChC41F,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKkxN,GAAO1mD,IAAI,WACrBxB,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKmxN,GAAQ3mD,IAAI,YACtBxB,EAAAA,GAAAA,KAAA,OAAKhpK,IAAKoxN,GAAM5mD,IAAI,oBAIlB,ECoDd,GApH0B+mD,KACxB,MAAO/rB,EAAcJ,IAAmBrhF,EAAAA,EAAAA,WAAS,IAC1C0hF,EAAqBC,IAA0B3hF,EAAAA,EAAAA,WAAS,GAEzD9gG,EAAW6/H,IACX+mE,EAAc,IAAI/3D,gBAAgB7uI,EAASqtF,QAC3Cq/C,EAAQk6D,EAAY7xN,IAAI,SACxBk4G,EAAQ25G,EAAY7xN,IAAI,UAEvBg2K,EAASC,IAAclqD,EAAAA,EAAAA,WAAS,GACjC0/B,EAAWR,KACV6mE,EAAcC,IAAmBhmG,EAAAA,EAAAA,UAAS,CAC/C3T,SAAU,GACVu1F,gBAAiB,GACjBz1F,MAAOA,GAAS,GAChBy/C,MAAOA,GAAS,KAEZq6D,EAAwBrvN,IAC5B,MAAM,KAAEtB,EAAI,MAAE3D,GAAUiF,EAAE3G,OAC1B+1N,EAAgB,IACXD,EACH,CAACzwN,GAAO3D,GACR,EAiCJ,OACE40K,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,eAAcgR,SAAA,EAC3B41F,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,yBACJ41F,EAAAA,GAAAA,KAAA,QAAA51F,SAAM,2DACNk3F,EAAAA,GAAAA,MAAA,QAAMloG,UAAU,cAAagR,SAAA,EAC3Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,eAAc/4F,SAAC,kBAC9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMosM,EAAe,OAAS,WAC9BnsM,KAAK,WACL3D,MAAOo0N,EAAa15G,SACpBg8D,SAAU49C,EACVv/C,YAAY,kBAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMi1B,EAAen0B,GAAQF,GAC7B/uG,UAAU,sBACVqoD,QAASA,IAAM26E,GAAiBI,YAItCx8B,EAAAA,GAAAA,KAACs8B,GAAc,KACfh7B,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,gBAAegR,SAAA,EAC5B41F,EAAAA,GAAAA,KAAA,SAAOmD,QAAQ,eAAc/4F,SAAC,sBAC9Bk3F,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAACilB,GAAe,CAAC1d,KAAMU,GAAQ7uG,UAAU,UACzC4mG,EAAAA,GAAAA,KAAA,SACE5vK,KAAMqsM,EAAsB,OAAS,WACrCpsM,KAAK,kBACL3D,MAAOo0N,EAAankB,gBACpBv5B,SAAU49C,EACVv/C,YAAY,sBAEdzB,EAAAA,GAAAA,KAACilB,GAAe,CACd1d,KAAMk1B,EAAsBp0B,GAAQF,GACpC/uG,UAAU,sBACVqoD,QAASA,IAAMi7E,GAAwBD,YAI7Cz8B,EAAAA,GAAAA,KAAC67B,GAAM,CACL/kM,MAAO,CAAE8zE,OAAQ,QACjBxR,UAAU,kBACVqoD,QA3Ea6zC,UACnB3jK,EAAE0uG,iBAEF,IACE4kE,GAAW,GACXtjK,QAAQ45F,IAAI,YACZ,MAAM5iF,QAAiBi3D,MAAM,4CAADx5E,OACkBuwJ,EAAK,WAAAvwJ,OAAU8wG,GAC3D,CACEqoC,OAAQ,OACRya,QAAS,CACP,eAAgB,oBAElBvhI,KAAMzsB,KAAKE,UAAU4kN,KAGzB77C,GAAW,GAEPtsJ,EAAS4rG,IACXliH,YAAW,KACTo4I,EAAS,IAAI,IAEfwsB,GAAMC,QAAQ,+BAEdD,GAAMpnK,MAAM,wBAEhB,CAAE,MAAOA,GACPonK,GAAMpnK,MAAM,2CACd,GA+C4BuqE,SACvB,aAKF46F,IACC1D,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,kBAAiBgR,SAAA,EAC9B41F,EAAAA,GAAAA,KAAA,OAAK5mG,UAAU,qBACf4mG,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,8BAGH,mCCtHV,MAgBE,GAhBgBo+I,KAWZxoD,EAAAA,GAAAA,KAAA,OAAA51F,UACE41F,EAAAA,GAAAA,KAAC/wC,GAAAA,EAAM,CAACvwH,QAXW,CACrB6hB,MAAM,EACND,UAAU,EACVzJ,cAAe,CAAC,GAAK,qBAAqB,IAAM,EAAE,EAAI,KAAK,EAAI,KAAK,KAAO,CAAC,EAAI,wBAAwB,OAAS,CAAC,CAAC,GAAK,EAAE,GAAK,gBAAgB,GAAK,EAAE,GAAK,GAAG,GAAK,IAAI,GAAK,GAAG,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,OAAO,OAAO,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,OAAO,OAAO,KAAK,EAAI,SAAS,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,GAAG,GAAG,KAAK,EAAI,SAAS,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,OAAO,OAAO,KAAK,EAAI,OAAO,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,GAAG,GAAG,KAAK,EAAI,SAAS,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,OAAO,OAAO,KAAK,EAAI,SAAS,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,GAAG,GAAG,KAAK,EAAI,SAAS,CAAC,EAAI,CAAC,EAAE,EAAE,KAAK,EAAI,MAAM,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,GAAI,EAAM,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,EAAE,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,MAAM,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,+BAA+B,GAAK,WAAW,GAAK,EAAE,GAAK,EAAE,GAAK,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAG,IAAI,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,GAAK,OAAO,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,eAAe,GAAK,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,GAAG,EAAI,KAAK,CAAC,EAAI,CAAC,KAAK,EAAI,MAAM,GAAK,GAAG,EAAI,IAAI,IAAM,GAAG,CAAC,GAAK,EAAE,GAAK,iBAAiB,GAAK,EAAE,GAAK,GAAG,GAAK,IAAI,GAAK,GAAG,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAE,EAAE,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,IAAI,IAAI,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,QAAQ,QAAQ,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,IAAK,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,GAAG,GAAG,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,OAAO,OAAO,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,GAAG,GAAG,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAE,EAAE,KAAK,EAAI,MAAM,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,YAAY,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,8BAA8B,GAAK,iBAAiB,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,OAAO,IAAM,GAAG,CAAC,GAAK,EAAE,GAAK,gBAAgB,GAAK,EAAE,GAAK,EAAE,GAAK,IAAI,GAAK,EAAE,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAE,EAAE,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,IAAI,IAAI,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,GAAG,GAAG,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,IAAI,IAAI,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,IAAK,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,GAAG,GAAG,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,OAAO,OAAO,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,GAAG,GAAG,KAAK,EAAI,KAAK,CAAC,EAAI,CAAC,EAAE,EAAE,KAAK,EAAI,MAAM,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,YAAY,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,8BAA8B,GAAK,iBAAiB,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,OAAO,IAAM,GAAG,CAAC,GAAK,EAAE,GAAK,aAAa,GAAK,EAAE,GAAK,EAAE,GAAK,IAAI,GAAK,EAAE,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,IAAI,IAAI,KAAK,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,IAAI,IAAI,KAAK,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,IAAI,IAAI,KAAK,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,IAAI,IAAI,KAAK,EAAI,IAAI,CAAC,EAAI,CAAC,EAAE,EAAE,KAAK,EAAI,MAAM,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,KAAK,GAAK,GAAG,EAAI,KAAK,EAAI,KAAK,MAAQ,SAAS,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,GAAG,EAAI,GAAG,CAAC,EAAI,CAAC,OAAO,EAAI,MAAM,GAAK,GAAG,IAAM,IAAI,EAAI,QAAQ,GAAK,GAAG,GAAK,IAAI,GAAK,EAAE,OAAS,CAAC,CAAC,GAAK,GAAG,GAAK,SAAS,OAAS,CAAC,CAAC,GAAK,EAAE,GAAK,gBAAgB,GAAK,EAAE,GAAK,EAAE,GAAK,IAAI,GAAK,GAAG,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,GAAG,EAAI,IAAI,CAAC,EAAI,CAAC,KAAK,EAAI,KAAK,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,IAAK,CAAC,IAAI,OAAO,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,KAAM,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,KAAM,EAAI,CAAC,EAAE,KAAK,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,IAAK,SAAS,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,EAAE,KAAK,KAAK,EAAE,IAAI,OAAO,EAAE,MAAM,MAAO,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,OAAO,IAAM,GAAG,CAAC,GAAK,EAAE,GAAK,gBAAgB,GAAK,EAAE,GAAK,EAAE,GAAK,GAAG,GAAK,EAAE,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,IAAK,CAAC,IAAI,OAAO,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,KAAM,KAAM,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,KAAM,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,KAAM,EAAI,CAAC,EAAE,KAAK,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,IAAK,SAAS,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,KAAM,KAAM,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,CAAC,EAAE,KAAK,KAAK,EAAE,IAAI,OAAO,EAAE,MAAM,MAAO,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,KAAM,KAAM,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,KAAM,KAAM,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,OAAO,IAAM,GAAG,CAAC,GAAK,EAAE,GAAK,gBAAgB,GAAK,EAAE,GAAK,EAAE,GAAK,IAAI,GAAK,GAAG,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,EAAI,KAAM,EAAI,MAAO,EAAI,CAAC,GAAG,EAAI,IAAI,CAAC,EAAI,CAAC,KAAK,EAAI,KAAK,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,SAAS,EAAE,GAAG,QAAQ,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,GAAG,QAAQ,EAAI,IAAI,CAAC,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,EAAI,KAAK,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,OAAO,IAAM,GAAG,CAAC,GAAK,EAAE,GAAK,gBAAgB,GAAK,EAAE,GAAK,EAAE,GAAK,GAAG,GAAK,GAAG,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,KAAM,KAAM,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,KAAM,KAAM,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,KAAM,KAAM,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,SAAS,EAAE,GAAG,QAAQ,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,GAAG,QAAQ,EAAI,IAAI,CAAC,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,EAAI,KAAK,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,KAAM,KAAM,MAAO,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,OAAO,IAAM,GAAG,CAAC,GAAK,EAAE,GAAK,gBAAgB,GAAK,EAAE,GAAK,EAAE,GAAK,IAAI,GAAK,EAAE,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,GAAG,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,QAAQ,OAAO,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,KAAK,IAAI,GAAG,EAAI,GAAG,GAAK,CAAC,GAAG,IAAI,GAAG,GAAK,CAAC,EAAE,IAAI,IAAI,CAAC,EAAI,CAAC,IAAI,IAAI,GAAG,EAAI,KAAK,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,cAAc,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,2BAA2B,GAAK,mBAAmB,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAG,KAAK,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,OAAO,IAAM,GAAG,CAAC,GAAK,EAAE,GAAK,gBAAgB,GAAK,EAAE,GAAK,EAAE,GAAK,GAAG,GAAK,EAAE,IAAK,EAAM,IAAM,EAAE,GAAK,EAAE,SAAU,EAAM,GAAK,EAAE,GAAK,CAAC,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,IAAI,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,IAAI,GAAK,CAAC,EAAI,EAAE,EAAI,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,KAAK,GAAK,GAAG,OAAS,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,MAAM,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,oBAAoB,GAAK,UAAU,GAAK,EAAE,IAAM,EAAE,GAAK,EAAE,GAAK,CAAC,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,4BAA4B,GAAK,SAAS,GAAK,EAAE,EAAI,EAAE,GAAK,CAAC,EAAI,EAAE,EAAI,CAAC,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,SAAS,EAAE,GAAG,QAAQ,EAAI,IAAI,CAAC,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,EAAI,KAAM,EAAI,GAAG,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,GAAG,QAAQ,EAAI,IAAI,CAAC,EAAI,CAAC,CAAC,GAAI,EAAK,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAI,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,EAAI,KAAK,GAAK,IAAI,CAAC,GAAK,KAAK,GAAK,EAAE,IAAK,EAAM,GAAK,6BAA6B,GAAK,SAAS,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,MAAO,MAAO,OAAQ,GAAK,GAAG,EAAI,EAAE,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,IAAI,CAAC,GAAK,KAAK,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,IAAI,KAAK,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,CAAC,EAAE,GAAG,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,GAAK,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAAG,EAAI,CAAC,EAAI,EAAE,EAAI,IAAI,GAAK,OAAO,IAAM,OAC7oqBgL,iBAAkB,CAChBm3C,oBAAqB,aCoE7B,GAjEqByvJ,KACnB,MAAMxuM,EAAW6/H,IACX+mE,EAAc,IAAI/3D,gBAAgB7uI,EAASqtF,QAC3Cq/C,EAAQk6D,EAAY7xN,IAAI,SACxBk4G,EAAQ25G,EAAY7xN,IAAI,SACxByrJ,EAAWR,KA8BjB5vD,EAAAA,EAAAA,YAAU,KA5BKirE,WACb3jK,EAAE0uG,iBACF,IACE,MAAM1nF,QAAiBi3D,MAAM,0CAADx5E,OACgBuwJ,EAAK,WAAAvwJ,OAAU8wG,GACzD,CACEqoC,OAAQ,OACRya,QAAS,CACP,eAAgB,sBAKtB,GAAIrxI,EAAS4rG,GACX0iD,GAAMC,QAAQ,4BAEd7kK,YAAW,KACTo4I,EAAS,IAAI,GACZ,SACE,CACL,MAAMvmI,QAAayE,EAASikL,OAE5B31B,GAAMpnK,MAAM,wBAADzJ,OAAyB8d,EAAK4oG,SAC3C,CACF,CAAE,MAAOj9G,GACPonK,GAAMpnK,MAAM,4BACd,GAGA6oN,EAAQ,GACP,IACH,MAAMC,EAAczhH,EAAM93G,MAAM,KAAK,GACrC,OACEkyK,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,YAAWgR,SAAA,EACxB41F,EAAAA,GAAAA,KAACs8B,GAAc,KACft8B,EAAAA,GAAAA,KAAA,OAAKhpK,IAAK4xN,GAAMpnD,IAAI,OAAOpoG,UAAU,QAAStiE,MAAO,CAAEi7C,OAAQ,sBAC/DiuH,EAAAA,GAAAA,KAAA,OAAKlpK,MAAO,CAAE4jB,MAAO,QAAUitH,WAAW,QAAQv9D,UAClD41F,EAAAA,GAAAA,KAACwoD,GAAS,OAGVlnD,EAAAA,GAAAA,MAAA,OAAKloG,UAAU,UAASgR,SAAA,EACtBk3F,EAAAA,GAAAA,MAAA,MAAAl3F,SAAA,CAAK,OAAKu+I,MACZ3oD,EAAAA,GAAAA,KAAA,MAAIlpK,MAAO,CAAC88C,SAAS,SAAWG,WAAW,MAAMu4J,WAAW,QAAQliI,SAAC,6BACrE41F,EAAAA,GAAAA,KAAA,KAAA51F,SAAG,gDACF41F,EAAAA,GAAAA,KAAA,KAAG5mG,UAAU,OAAMgR,SAAC,4CAErB41F,EAAAA,GAAAA,KAAC67B,GAAM,CACLl5J,KAAK,IACL7rC,MAAO,CAAGsb,MAAO,QAASwhC,SAAU,QAAS+zF,WAAW,QACxDvuE,UAAU,iBAAgBgR,SAAC,YAKzB,ECoDV,GAnFYy+I,KACV,MAAM,WAAE/oD,GAAeM,KAEjB0oD,EAAez9H,IAAmB,IAAlB,SAAEjhB,GAAUihB,EAChC,OAAOy0E,EAAa11F,GAAW41F,EAAAA,GAAAA,KAACzhB,GAAQ,CAAC/rH,GAAG,iBAAkB,EAEhE,OACEwtI,EAAAA,GAAAA,KAAChgB,GAAa,CAAA51E,UACZk3F,EAAAA,GAAAA,MAAChiB,GAAM,CAAAl1E,SAAA,EACLk3F,EAAAA,GAAAA,MAACziB,GAAK,CAAC5qI,KAAK,IAAIhE,SAAS+vJ,EAAAA,GAAAA,KAAC+oD,GAAM,IAAI3+I,SAAA,EAClC41F,EAAAA,GAAAA,KAACnhB,GAAK,CAAC3wJ,OAAK,EAAC+hB,SAAS+vJ,EAAAA,GAAAA,KAACyhD,GAAW,OAClCzhD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,qBAAqBhE,SAAS+vJ,EAAAA,GAAAA,KAAC0hD,GAAY,OACvD1hD,EAAAA,GAAAA,KAACnhB,GAAK,CACJ5qI,KAAK,2BACLhE,SAAS+vJ,EAAAA,GAAAA,KAACm7C,GAAiB,OAE7Bn7C,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,WAAWhE,SAAS+vJ,EAAAA,GAAAA,KAAC4jD,GAAW,OAC5C5jD,EAAAA,GAAAA,KAACnhB,GAAK,CACJ5qI,KAAK,uBACLhE,SAAS+vJ,EAAAA,GAAAA,KAAC6jD,GAAsB,OAElC7jD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,eAAehE,SAAS+vJ,EAAAA,GAAAA,KAAC8jD,GAAe,OACpD9jD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,OAAOhE,SAAS+vJ,EAAAA,GAAAA,KAAC6lD,GAAQ,OACrC7lD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,oBAAoBhE,SAAS+vJ,EAAAA,GAAAA,KAACimD,GAAU,OACpDjmD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,WAAWhE,SAAS+vJ,EAAAA,GAAAA,KAAC+jD,GAAW,OAC5C/jD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,SAAShE,SAAS+vJ,EAAAA,GAAAA,KAAC6mD,GAAM,OACrC7mD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,UAAUhE,SAAS+vJ,EAAAA,GAAAA,KAAC8mD,GAAO,OACvC9mD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,mBAAmBhE,SAAS+vJ,EAAAA,GAAAA,KAAC+mD,GAAK,OAC9C/mD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,aAAahE,SAAS+vJ,EAAAA,GAAAA,KAACgnD,GAAU,OAC7ChnD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,iBAAiBhE,SAAS+vJ,EAAAA,GAAAA,KAACinD,GAAM,UAE/C3lD,EAAAA,GAAAA,MAACziB,GAAK,CAAC5qI,KAAK,WAAWhE,SAAS+vJ,EAAAA,GAAAA,KAAC0nD,GAAU,CAACr3N,KAAK,UAAW+5E,SAAA,EAC1D41F,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,QAAQhE,SAAS+vJ,EAAAA,GAAAA,KAACgpD,GAAS,CAACv4F,KAAK,eAC7CuvC,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,WAAWhE,SAAS+vJ,EAAAA,GAAAA,KAACipD,GAAY,CAACx4F,KAAK,eACnDuvC,EAAAA,GAAAA,KAACnhB,GAAK,CACJ5qI,KAAK,kBACLhE,SAAS+vJ,EAAAA,GAAAA,KAAC68B,GAAkB,CAACpsE,KAAK,kBAGtC6wC,EAAAA,GAAAA,MAACziB,GAAK,CAAC5qI,KAAK,UAAUhE,SAAS+vJ,EAAAA,GAAAA,KAAC0nD,GAAU,CAACr3N,KAAK,aAAc+5E,SAAA,EAC5D41F,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,QAAQhE,SAAS+vJ,EAAAA,GAAAA,KAACgpD,GAAS,CAACv4F,KAAK,iBAC7CuvC,EAAAA,GAAAA,KAACnhB,GAAK,CACJ5qI,KAAK,kBACLhE,SAAS+vJ,EAAAA,GAAAA,KAAC68B,GAAkB,CAACpsE,KAAK,iBAEpCuvC,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,WAAWhE,SAAS+vJ,EAAAA,GAAAA,KAACipD,GAAY,CAACx4F,KAAK,oBAErD6wC,EAAAA,GAAAA,MAACziB,GAAK,CACJ5qI,KAAK,IACLhE,SACE+vJ,EAAAA,GAAAA,KAAC8oD,EAAY,CAAA1+I,UACX41F,EAAAA,GAAAA,KAACqoD,GAAc,MAElBj+I,SAAA,EAED41F,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,YAAYhE,SAAS+vJ,EAAAA,GAAAA,KAAC8/C,GAAS,OAE3C9/C,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,UAAUhE,SAAS+vJ,EAAAA,GAAAA,KAACihD,GAAa,OAC7CjhD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,WAAWhE,SAAS+vJ,EAAAA,GAAAA,KAAC4gD,GAAQ,OACzC5gD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,UAAUhE,SAAS+vJ,EAAAA,GAAAA,KAACy2C,GAAO,OACvCz2C,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,iBAAiBhE,SAAS+vJ,EAAAA,GAAAA,KAAC02C,GAAa,OACpD12C,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,YAAYhE,SAAS+vJ,EAAAA,GAAAA,KAAC82C,GAAS,OAC3C92C,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,eAAehE,SAAS+vJ,EAAAA,GAAAA,KAACw/C,GAAW,OAChDx/C,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,iBAAiBhE,SAAS+vJ,EAAAA,GAAAA,KAACmkD,GAAa,OACpDnkD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,kBAAkBhE,SAAS+vJ,EAAAA,GAAAA,KAACwkD,GAAc,OACtDxkD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,sBAAsBhE,SAAS+vJ,EAAAA,GAAAA,KAAColD,GAAiB,OAC7DplD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,kBAAkBhE,SAAS+vJ,EAAAA,GAAAA,KAAC2kD,GAAc,OACtD3kD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,cAAchE,SAAS+vJ,EAAAA,GAAAA,KAACkmD,GAAU,UAEhDlmD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,aAAahE,SAAS+vJ,EAAAA,GAAAA,KAACkpD,GAAa,OAChDlpD,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,iBAAiBhE,SAAS+vJ,EAAAA,GAAAA,KAACyoD,GAAY,OAEnDnnD,EAAAA,GAAAA,MAACziB,GAAK,CAAC5qI,KAAK,UAAUhE,SAAS+vJ,EAAAA,GAAAA,KAACsoD,GAAe,IAAIl+I,SAAA,EACjD41F,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,QAAQ/lB,OAAK,EAAC+hB,SAAS+vJ,EAAAA,GAAAA,KAACmpD,GAAU,CAAC14F,KAAK,aACpDuvC,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,WAAWhE,SAAS+vJ,EAAAA,GAAAA,KAACopD,GAAa,CAAC34F,KAAK,gBAGtDuvC,EAAAA,GAAAA,KAACnhB,GAAK,CAAC5qI,KAAK,IAAIhE,SAAS+vJ,EAAAA,GAAAA,KAAA,MAAA51F,SAAI,oBAEjB,EChHP21E,EAAAA,WAAoB9wJ,SAASyS,eAAe,SACpDmB,QACHm9J,EAAAA,GAAAA,KAACn3E,EAAAA,WAAgB,CAAAze,UACfk3F,EAAAA,GAAAA,MAAChC,GAAY,CAAAl1F,SAAA,EACX41F,EAAAA,GAAAA,KAAC6oD,GAAG,KACJ7oD,EAAAA,GAAAA,KAACs8B,GAAc","sources":["../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/countup.js/dist/countUp.min.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-countup/build/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-lottie/dist/index.js","../node_modules/react-select-country-list/country-list.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/assets/images/sidebar_btn.svg","components/assets/images/close_cross.svg","../node_modules/js-cookie/dist/js.cookie.mjs","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","contexts/Auth/AuthContext.js","../node_modules/react-icons/lib/esm/iconsManifest.js","../node_modules/react-icons/lib/esm/iconContext.js","../node_modules/react-icons/lib/esm/iconBase.js","../node_modules/react-icons/ci/index.esm.js","components/Navbar/Navbar.jsx","components/VideoParallax/VideoParallax.jsx","components/Carousel/Carousel.jsx","components/Carousel/WideCarousel.jsx","components/Cards/UniverisityDetailsCard.jsx","../node_modules/react-icons/fa/index.esm.js","components/Footer/Footer.jsx","../node_modules/react-icons/io5/index.esm.js","components/Filters/UniversityFilter.jsx","components/Cards/UniversityCard.jsx","../node_modules/react-icons/io/index.esm.js","../node_modules/react-icons/gi/index.esm.js","../node_modules/react-icons/bs/index.esm.js","api/axios.jsx","../node_modules/react-toastify/node_modules/clsx/dist/clsx.m.js","components/Cards/CourseCard.jsx","../node_modules/@fortawesome/free-brands-svg-icons/index.mjs","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/utils.ts","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/reactstrap/esm/utils.js","../node_modules/reactstrap/esm/CloseButton.js","../node_modules/reactstrap/esm/Button.js","components/Forms/LoginForm.jsx","components/Forms/RegisterForm.jsx","components/Forms/ForgetPasswordForm.jsx","../node_modules/react-icons/tfi/index.esm.js","../node_modules/react-icons/pi/index.esm.js","components/Sidebar/Sidebar.jsx","components/Cards/BlogCard.jsx","../node_modules/react-icons/tb/index.esm.js","../node_modules/react-icons/md/index.esm.js","components/Documents/DocumentPreview.jsx","components/Cards/DocumentCard.jsx","components/axios.jsx","sections/LoggedInPages/Profile/Profile.jsx","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-select/dist/react-select.esm.js","sections/LoggedInPages/Address/Address.jsx","sections/LoggedInPages/Dashboard/LanguageScore/LanguageScore.jsx","sections/LoggedInPages/GPAScore/GPAScore.jsx","../node_modules/react-icons/ai/index.esm.js","sections/LoggedInPages/Academic_Information/Academic_Information.jsx","sections/LoggedInPages/Contact_Information/Contact_Information.jsx","sections/LoggedInPages/Documents/Documents.jsx","sections/ProfileBar.jsx","sections/LoggedInPages/Councelor/CouncelorDashboard.jsx","sections/UniversityDetailsPage/UniversityDashboard/UniversityCore.jsx","sections/UniversityDetailsPage/UniversityDashboard/UniversityCourses.jsx","sections/UniversityDetailsPage/UniversityDashboard/UniversityFinance.jsx","sections/UniversityDetailsPage/UniversityDashboard/UniversityGlance.jsx","sections/UniversityDetailsPage/UniversityDashboard/UniversityRequirements.jsx","sections/UniversityDetailsPage/UniversityDashboard/UniversityGallery.jsx","sections/UniversityDetailsPage/UniversityDashboard/UniversityDashboard.jsx","sections/LandingPage/Welcome/WelcomeSection.jsx","sections/LandingPage/UniversityDetails/UniversityDetails.jsx","hooks/useIntersectionObserver.js","sections/LandingPage/Statistics/StatsCounter.jsx","sections/LandingPage/VideoSection/VideoSection.jsx","sections/LandingPage/Explore/Explore.jsx","sections/LandingPage/ReviewSection/ReviewSection.jsx","sections/UniversityDetailsPage/UniversityStatus/UniversityStatus.jsx","sections/UniversityDetailsPage/UniversityContentTab/UniversityTab.jsx","sections/UniversityDetailsPage/UniversityMap/UniversityMap.jsx","sections/UniversityDetailsPage/SimilarUniversity/SimilarUniversity.jsx","sections/StudentPage/SearchNavigation/SearchNavigation.jsx","sections/StudentPage/AboutRightTrails/AboutRightTrails.jsx","sections/RecruitmentPartnerPage/JoinRightTrails/JoinRightTrails.jsx","sections/InstitutionPage/JoinRightTrails/JoinRightTrailsInstitution.jsx","sections/LoggedInPages/Dashboard/StudentDashboardList.jsx","sections/LoggedInPages/Settings/CouncelorAddStudent.jsx","sections/LoggedInPages/Settings/StudentList.jsx","sections/LoggedInPages/AddStudents.jsx","sections/UniversityDetailsPage/UniversityDashboard/StudentListApplied.jsx","sections/LoggedInPages/Dashboard/Dashboard.jsx","sections/LoggedInPages/Settings/Settings.jsx","sections/LoggedInPages/ProfileWraper.jsx","pages/Home/LandingPage.jsx","pages/Universities/Universities.jsx","pages/UniversityDetails/UniversityDetails.jsx","pages/Student/StudentPage.jsx","pages/RecruitmentPartner/RecruitmentPartnerPage.jsx","pages/Institution/InstitutionPage.jsx","pages/InqueryPage/InqueryPage.jsx","pages/AdminPanel/Authentication/Login/AdminLogin.jsx","pages/AdminPanel/Authentication/Register/AdminRegister.jsx","pages/AdminPanel/Info/StudentList/StudentList.jsx","pages/AdminPanel/Info/CounselorList/CounselorList.jsx","pages/AdminPanel/Info/UniversityList/UniversityList.jsx","pages/AdminPanel/Info/GeneralInquiry.jsx","pages/AdminPanel/Info/UniversityList/UniversityRegistration.jsx","pages/AdminPanel/Info/UniversityEnquiry/UniversityEnquiry.jsx","../node_modules/react-icons/fa6/index.esm.js","../node_modules/react-icons/lu/index.esm.js","pages/Blogs/BlogPage.jsx","pages/Blogs/BlogDetail.jsx","pages/Blogs/BlogCRUD/CreateBlog.jsx","pages/Career/Career.jsx","pages/Contact/Contact.jsx","pages/Terms_Conditions/Terms.jsx","pages/Disclaimer/Disclaimer.jsx","pages/Privacy-Policy/Privac.jsx","components/Tables/ListTable.jsx","components/Cards/DashBoardCard.jsx","components/Cards/FinanceCard.jsx","layouts/Layout.jsx","layouts/AuthLayout.jsx","layouts/LoggedInLayout.jsx","layouts/AdminLayout/AdminAuthLayout.jsx","components/Forms/ResetPasswordForm.jsx","pages/Confirmation/Animation.jsx","pages/Confirmation/Confirmation.jsx","App.js","index.js"],"sourcesContent":["module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","var t=function(){return t=Object.assign||function(t){for(var i,n=1,s=arguments.length;na.endVal;a.frameVal=n?a.endVal:a.frameVal,a.frameVal=Number(a.frameVal.toFixed(a.options.decimalPlaces)),a.printValue(a.frameVal),i1?a.options.decimal+r[1]:\"\",a.options.useGrouping){e=\"\";for(var l=3,h=0,u=0,p=n.length;uwindow.scrollY&&t.paused?(t.paused=!1,setTimeout((function(){return t.start()}),t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):(window.scrollY>a||s>i)&&!t.paused&&t.reset()}},i.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var n=this.countDown?1:-1;this.endVal=t+n*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;null!==this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},i.prototype.start=function(t){this.error||(this.options.onStartCallback&&this.options.onStartCallback(),t&&(this.options.onCompleteCallback=t),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},i.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},i.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},i.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,null==this.finalEndVal&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},i.prototype.printValue=function(t){var i;if(this.el){var n=this.formattingFn(t);if(null===(i=this.options.plugin)||void 0===i?void 0:i.render)this.options.plugin.render(this.el,n);else if(\"INPUT\"===this.el.tagName)this.el.value=n;else\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=n:this.el.innerHTML=n}},i.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},i.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \".concat(t),null)},i.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},i}();export{i as CountUp};\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\nvar countup_js = require('countup.js');\n\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : String(i);\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/**\n * Silence SSR Warnings.\n * Borrowed from Formik v2.1.1, Licensed MIT.\n *\n * https://github.com/formium/formik/blob/9316a864478f8fcd4fa99a0735b1d37afdf507dc/LICENSE\n */\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Create a stable reference to a callback which is updated after each render is committed.\n * Typed version borrowed from Formik v2.2.1. Licensed MIT.\n *\n * https://github.com/formium/formik/blob/9316a864478f8fcd4fa99a0735b1d37afdf507dc/LICENSE\n */\nfunction useEventCallback(fn) {\n var ref = React.useRef(fn);\n\n // we copy a ref to the callback scoped to the current state/props on each render\n useIsomorphicLayoutEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current.apply(void 0, args);\n }, []);\n}\n\nvar createCountUpInstance = function createCountUpInstance(el, props) {\n var decimal = props.decimal,\n decimals = props.decimals,\n duration = props.duration,\n easingFn = props.easingFn,\n end = props.end,\n formattingFn = props.formattingFn,\n numerals = props.numerals,\n prefix = props.prefix,\n separator = props.separator,\n start = props.start,\n suffix = props.suffix,\n useEasing = props.useEasing,\n useGrouping = props.useGrouping,\n useIndianSeparators = props.useIndianSeparators,\n enableScrollSpy = props.enableScrollSpy,\n scrollSpyDelay = props.scrollSpyDelay,\n scrollSpyOnce = props.scrollSpyOnce,\n plugin = props.plugin;\n return new countup_js.CountUp(el, end, {\n startVal: start,\n duration: duration,\n decimal: decimal,\n decimalPlaces: decimals,\n easingFn: easingFn,\n formattingFn: formattingFn,\n numerals: numerals,\n separator: separator,\n prefix: prefix,\n suffix: suffix,\n plugin: plugin,\n useEasing: useEasing,\n useIndianSeparators: useIndianSeparators,\n useGrouping: useGrouping,\n enableScrollSpy: enableScrollSpy,\n scrollSpyDelay: scrollSpyDelay,\n scrollSpyOnce: scrollSpyOnce\n });\n};\n\nvar _excluded$1 = [\"ref\", \"startOnMount\", \"enableReinitialize\", \"delay\", \"onEnd\", \"onStart\", \"onPauseResume\", \"onReset\", \"onUpdate\"];\nvar DEFAULTS = {\n decimal: '.',\n separator: ',',\n delay: null,\n prefix: '',\n suffix: '',\n duration: 2,\n start: 0,\n decimals: 0,\n startOnMount: true,\n enableReinitialize: true,\n useEasing: true,\n useGrouping: true,\n useIndianSeparators: false\n};\nvar useCountUp = function useCountUp(props) {\n var filteredProps = Object.fromEntries(Object.entries(props).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n value = _ref2[1];\n return value !== undefined;\n }));\n var _useMemo = React.useMemo(function () {\n return _objectSpread2(_objectSpread2({}, DEFAULTS), filteredProps);\n }, [props]),\n ref = _useMemo.ref,\n startOnMount = _useMemo.startOnMount,\n enableReinitialize = _useMemo.enableReinitialize,\n delay = _useMemo.delay,\n onEnd = _useMemo.onEnd,\n onStart = _useMemo.onStart,\n onPauseResume = _useMemo.onPauseResume,\n onReset = _useMemo.onReset,\n onUpdate = _useMemo.onUpdate,\n instanceProps = _objectWithoutProperties(_useMemo, _excluded$1);\n var countUpRef = React.useRef();\n var timerRef = React.useRef();\n var isInitializedRef = React.useRef(false);\n var createInstance = useEventCallback(function () {\n return createCountUpInstance(typeof ref === 'string' ? ref : ref.current, instanceProps);\n });\n var getCountUp = useEventCallback(function (recreate) {\n var countUp = countUpRef.current;\n if (countUp && !recreate) {\n return countUp;\n }\n var newCountUp = createInstance();\n countUpRef.current = newCountUp;\n return newCountUp;\n });\n var start = useEventCallback(function () {\n var run = function run() {\n return getCountUp(true).start(function () {\n onEnd === null || onEnd === void 0 || onEnd({\n pauseResume: pauseResume,\n reset: reset,\n start: restart,\n update: update\n });\n });\n };\n if (delay && delay > 0) {\n timerRef.current = setTimeout(run, delay * 1000);\n } else {\n run();\n }\n onStart === null || onStart === void 0 || onStart({\n pauseResume: pauseResume,\n reset: reset,\n update: update\n });\n });\n var pauseResume = useEventCallback(function () {\n getCountUp().pauseResume();\n onPauseResume === null || onPauseResume === void 0 || onPauseResume({\n reset: reset,\n start: restart,\n update: update\n });\n });\n var reset = useEventCallback(function () {\n // Quick fix for https://github.com/glennreyes/react-countup/issues/736 - should be investigated\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (getCountUp().el) {\n timerRef.current && clearTimeout(timerRef.current);\n getCountUp().reset();\n onReset === null || onReset === void 0 || onReset({\n pauseResume: pauseResume,\n start: restart,\n update: update\n });\n }\n });\n var update = useEventCallback(function (newEnd) {\n getCountUp().update(newEnd);\n onUpdate === null || onUpdate === void 0 || onUpdate({\n pauseResume: pauseResume,\n reset: reset,\n start: restart\n });\n });\n var restart = useEventCallback(function () {\n reset();\n start();\n });\n var maybeInitialize = useEventCallback(function (shouldReset) {\n if (startOnMount) {\n if (shouldReset) {\n reset();\n }\n start();\n }\n });\n React.useEffect(function () {\n if (!isInitializedRef.current) {\n isInitializedRef.current = true;\n maybeInitialize();\n } else if (enableReinitialize) {\n maybeInitialize(true);\n }\n }, [enableReinitialize, isInitializedRef, maybeInitialize, delay, props.start, props.suffix, props.prefix, props.duration, props.separator, props.decimals, props.decimal, props.formattingFn]);\n React.useEffect(function () {\n return function () {\n reset();\n };\n }, [reset]);\n return {\n start: restart,\n pauseResume: pauseResume,\n reset: reset,\n update: update,\n getCountUp: getCountUp\n };\n};\n\nvar _excluded = [\"className\", \"redraw\", \"containerProps\", \"children\", \"style\"];\nvar CountUp = function CountUp(props) {\n var className = props.className,\n redraw = props.redraw,\n containerProps = props.containerProps,\n children = props.children,\n style = props.style,\n useCountUpProps = _objectWithoutProperties(props, _excluded);\n var containerRef = React.useRef(null);\n var isInitializedRef = React.useRef(false);\n var _useCountUp = useCountUp(_objectSpread2(_objectSpread2({}, useCountUpProps), {}, {\n ref: containerRef,\n startOnMount: typeof children !== 'function' || props.delay === 0,\n // component manually restarts\n enableReinitialize: false\n })),\n start = _useCountUp.start,\n reset = _useCountUp.reset,\n updateCountUp = _useCountUp.update,\n pauseResume = _useCountUp.pauseResume,\n getCountUp = _useCountUp.getCountUp;\n var restart = useEventCallback(function () {\n start();\n });\n var update = useEventCallback(function (end) {\n if (!props.preserveValue) {\n reset();\n }\n updateCountUp(end);\n });\n var initializeOnMount = useEventCallback(function () {\n if (typeof props.children === 'function') {\n // Warn when user didn't use containerRef at all\n if (!(containerRef.current instanceof Element)) {\n console.error(\"Couldn't find attached element to hook the CountUp instance into! Try to attach \\\"containerRef\\\" from the render prop to a an Element, eg. .\");\n return;\n }\n }\n\n // unlike the hook, the CountUp component initializes on mount\n getCountUp();\n });\n React.useEffect(function () {\n initializeOnMount();\n }, [initializeOnMount]);\n React.useEffect(function () {\n if (isInitializedRef.current) {\n update(props.end);\n }\n }, [props.end, update]);\n var redrawDependencies = redraw && props;\n\n // if props.redraw, call this effect on every props change\n React.useEffect(function () {\n if (redraw && isInitializedRef.current) {\n restart();\n }\n }, [restart, redraw, redrawDependencies]);\n\n // if not props.redraw, call this effect only when certain props are changed\n React.useEffect(function () {\n if (!redraw && isInitializedRef.current) {\n restart();\n }\n }, [restart, redraw, props.start, props.suffix, props.prefix, props.duration, props.separator, props.decimals, props.decimal, props.className, props.formattingFn]);\n React.useEffect(function () {\n isInitializedRef.current = true;\n }, []);\n if (typeof children === 'function') {\n // TypeScript forces functional components to return JSX.Element | null.\n return children({\n countUpRef: containerRef,\n start: start,\n reset: reset,\n update: updateCountUp,\n pauseResume: pauseResume,\n getCountUp: getCountUp\n });\n }\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: className,\n ref: containerRef,\n style: style\n }, containerProps), typeof props.start !== 'undefined' ? getCountUp().formattingFn(props.start) : '');\n};\n\nexports.default = CountUp;\nexports.useCountUp = useCountUp;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 {\n this.labelMap[country.label.toLowerCase()] = country.value\n this.valueMap[country.value.toLowerCase()] = country.label\n })\n }\n\n getValue(label) {\n return this.labelMap[label.toLowerCase()]\n }\n\n getLabel(value) {\n return this.valueMap[value.toLowerCase()]\n }\n\n getLabels() {\n return this.data.map(country => country.label)\n }\n\n getValues() {\n return this.data.map(country => country.value)\n }\n\n getLabelList() {\n return this.labelMap\n }\n\n getValueList() {\n return this.valueMap\n }\n\n getData() {\n return this.data\n }\n\n setLabel(value, label) {\n this.data.forEach(country => {\n if (country.value === value) {\n country.label = label\n this.valueMap[country.value.toLowerCase()] = country.label\n }\n })\n\n return this\n }\n\n setEmpty(label) {\n this.data.unshift({\n value: '',\n label: label,\n })\n this.valueMap[''] = label\n this.labelMap[label] = ''\n\n return this\n }\n\n native() {\n this.nativeData = require('./data-native.json')\n this.nativeData.forEach(country => {\n this.labelMap[country.label.toLowerCase()] = country.value\n this.valueMap[country.value.toLowerCase()] = country.label\n })\n\n return this\n }\n}\n\nconst countryList = () => {\n if (!(this instanceof CountryList)) return new CountryList()\n}\n\nmodule.exports = countryList\n","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar PrevArrow = exports.PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\nvar NextArrow = exports.NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true,\n asNavFor: null\n};\nvar _default = exports[\"default\"] = defaultProps;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nvar Dots = exports.Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _slider = _interopRequireDefault(require(\"./slider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar _default = exports[\"default\"] = _slider[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = exports[\"default\"] = initialState;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nvar _track = require(\"./track\");\nvar _dots = require(\"./dots\");\nvar _arrows = require(\"./arrows\");\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar InnerSlider = exports.InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\" || isNaN(prevProps[key])) {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _innerSlider = require(\"./inner-slider\");\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\nvar Slider = exports[\"default\"] = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n settings.unslick = true;\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, (0, _innerSliderUtils.filterSettings)(settings)), newChildren);\n }\n }]);\n return Slider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec)) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nvar Track = exports.Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.extractObject = void 0;\nexports.filterSettings = filterSettings;\nexports.validSettings = exports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _defaultProps = _interopRequireDefault(require(\"../default-props\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nvar safePreventDefault = exports.safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nvar validSettings = exports.validSettings = Object.keys(_defaultProps[\"default\"]);\nfunction filterSettings(settings) {\n return validSettings.reduce(function (acc, settingName) {\n if (settings.hasOwnProperty(settingName)) {\n acc[settingName] = settings[settingName];\n }\n return acc;\n }, {});\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\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// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.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__.p = \"/\";","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: Record | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a