{"version":3,"file":"js/app.340fb9b6.js","mappings":"kJACE,QAEM,aADJ,QAAe,I,gBCDnB,MAAMA,EAAS,CAAC,EAKVC,GAA2B,OAAgBD,EAAQ,CAAC,CAAC,SAASE,KAEpE,QCNO,SAASC,EAAcC,GACH,qBAAdA,EAAGC,OACZD,EAAGC,SAEHD,EAAGE,YAAYC,YAAYH,EAE/B,CAGO,SAASI,EAAgBC,EAAWC,EAAOC,EAAiBC,EAAQ,CAAC,GAC1E,MAAMC,GAAQ,IAAAC,GAAEL,EAAWC,EAAOE,GAC5BG,EAAYC,SAASC,cAAc,OAKzC,OAJAF,EAAUG,UAAUC,IAAI,iBACxBR,EAAgBS,YAAYL,IAC5B,QAAOF,EAAOE,GAEPF,EAAMJ,SACf,CAEO,SAASY,IACd,MAAyB,qBAAXC,MAChB,CAEO,MAAMC,EAAmBF,IAAcC,OAAOE,YAAcC,O,uCCVtDC,MAAM,W,0CAdf,QA2Ba,MA3BAC,KAAM,EAAAC,YAAU,C,kBAC3B,IAyBM,E,SAzBN,OAyBM,OAzBDC,SAAS,IACTH,OAAK,SAAC,uBAAsB,gBACF,EAAAI,cAEzB,YAAW,EAAAC,SACZ,aAAW,UACVC,OAAK,gBAAI,EAAAC,U,EAGb,OAGE,OAHGP,MAAM,gBACL,QAAK,8BAAU,EAAAQ,QAAA,EAAAA,UAAA,IAAM,cACrBF,OAAK,QAAE,EAAAG,U,SAEb,OAWM,MAXN,EAWM,EAVJ,QAAqB,oBACrB,QAOO,uBAPP,IAOO,G,WANL,SAKE,QAJK,EAAAC,QAAM,CACVC,MAAO,EAAAA,MACPC,MAAO,EAAAA,MACPC,OAAQ,EAAAA,Q,wCAGb,QAAoB,qB,aApBX,EAAAR,e,iBCLnB,OACIS,UACMC,KAAKC,cACP1B,SAAS2B,iBAAiB,UAAWF,KAAKG,QAE9C,EACAC,QAAS,CACPD,QAAQE,GAEN,IAAKL,KAAKV,SAAU,OAEpB,GAEEe,EAAMC,SAAWN,KAAKO,KAEtBP,KAAKO,IAAIC,SAASH,EAAMC,QACxB,OAGF,IAAIG,EAAST,KAAK1B,UAAY0B,KAAK1B,UAAa0B,KAAKX,WAAa,KAAOW,KAAKO,IAAIG,eAIhFV,KAAKX,YAGJoB,GAAUA,EAAOD,SAASH,EAAMC,WAEjCD,EAAMM,iBACNX,KAAKO,IAAIK,QAEb,GAEFC,gBACEtC,SAASuC,oBAAoB,UAAWd,KAAKG,QAC/C,G,2YCjCE,G,0CADF,QAeM,OAfDY,QAAQ,YAAYC,MAAM,6BAA8BnB,MAAO,EAAAA,MAAQC,OAAQ,EAAAA,OAASmB,OAAQ,EAAArB,O,OAqBvG,OAAe,QAAgB,CAC7BV,KAAM,UACNjB,MAAO,CACL2B,MAAO,CACLsB,KAAMC,OACNC,QAAS,QAEXtB,OAAQ,CACNoB,KAAMG,OACND,QAAS,IAEXvB,MAAO,CACLqB,KAAMG,OACND,QAAS,OC9BjB,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,Q,ihCCLM,G,0CADF,QA+BM,OA/BDL,QAAQ,aAAaC,MAAM,6BAA8BM,KAAM,EAAA1B,MAAQC,MAAO,EAAAA,MAAQC,OAAQ,EAAAA,Q,OAqCrG,OAAe,QAAgB,CAC7BZ,KAAM,OACNjB,MAAO,CACL2B,MAAO,CACLsB,KAAMC,OACNC,QAAS,QAEXtB,OAAQ,CACNoB,KAAMG,OACND,QAAS,KAEXvB,MAAO,CACLqB,KAAMG,OACND,QAAS,OC9CjB,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,Q,u7BCLM,G,0CADF,QAyBM,OAzBDJ,MAAM,6BAA6BD,QAAQ,YAAajB,OAAQ,EAAAA,OAASD,MAAO,EAAAA,MAAQyB,KAAM,EAAA1B,O,OA+BrG,OAAe,QAAgB,CAC7BV,KAAM,OACNjB,MAAO,CACL2B,MAAO,CACLsB,KAAMC,OACNC,QAAS,QAEXtB,OAAQ,CACNoB,KAAMG,OACND,QAAS,IAEXvB,MAAO,CACLqB,KAAMG,OACND,QAAS,OCxCjB,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,QCHA,GACEG,QAAO,EACPC,KAAI,EACJC,KAAI,GR8BJ,GAAe,QAAgB,CAC7BvC,KAAM,aACNwC,OAAQ,CAACC,GACT1D,MAAO,CACL2D,OAAQC,QACRC,aAAcD,QACdvD,UAAW,CAACU,OAAQ+C,SAAUjD,GAC9BO,WAAY,CACV6B,KAAMW,QACNT,SAAS,GAEXnB,aAAc,CACZiB,KAAMW,QACNT,SAAS,GAEXY,WAAYH,QACZ1C,WAAY,CACV+B,KAAMC,OACNC,QAAS,QAKXa,UAAWJ,QAKXK,SAAU,CACRhB,KAAMa,SACNX,QAAS,QAGXxB,MAAOuB,OACPgB,gBAAiBhB,OACjBiB,QAASf,OACTxB,MAAOwB,OACPvB,OAAQuB,OACR7B,OAAQ6B,OACR1B,OAAQ,CACNuB,KAAMC,OACNC,QAAS,SAGbiB,WAAY,EACZC,MAAO,CAAC,OAAQ,iBAChBC,OACE,MAAO,CAELjD,SAAUU,KAAK4B,OAEnB,EACA7B,UACExB,SAAS2B,iBAAiB,QAASF,KAAKwC,SAC1C,EACApC,QAAS,CAKPX,SACOO,KAAKiC,WAAcjC,KAAKV,WAC7BU,KAAKyC,OACLzC,KAAKkC,SAASQ,MAAM,KAAMC,WAC5B,EAIAF,OACEzC,KAAK4C,MAAM,QACX5C,KAAK4C,MAAM,iBAAiB,GAExB5C,KAAK8B,eACP9B,KAAKV,UAAW,EAGhBuD,YAAW,KACT,MAAMpC,EAAST,KAAKO,IAAIG,eAExB,QAAO,KAAMD,GACb/C,EAAc+C,EAAM,GACnB,KAEP,EACAqC,gBACM9C,KAAKX,YAAcW,KAAKgC,YAC1BzD,SAASwE,KAAKtE,UAAUC,IAAI,WAEhC,EACAsE,eACMhD,KAAKX,YAAcW,KAAKgC,YAC1BzD,SAASwE,KAAKtE,UAAUb,OAAO,WAEnC,EAIA4E,SAASnC,GAEe,KAAlBA,EAAM4C,SAAgBjD,KAAKP,QACjC,GAEFyD,MAAO,CACLtB,OAAOuB,GACLnD,KAAKV,SAAW6D,CAClB,EACA7D,SAAS6D,GACHA,EACFnD,KAAK8C,gBAEL9C,KAAKgD,cAET,GAEFI,SAAU,CACR1D,UACE,MAAO,CACL2D,WAAYrD,KAAKmC,gBACjBC,QAASpC,KAAKoC,QAElB,GAEFvB,gBACEtC,SAASuC,oBAAoB,QAASd,KAAKwC,SAC7C,IS5JJ,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,QCJO,SAASc,EAAWC,EAAc,CAAC,EAAGC,EAAc,CAAC,GAE1D,MAAO,CACLC,KAAKxF,EAAQsF,EAAapF,EAAQqF,GAChC,MAAME,EAAa,CACjB5B,cAAc,EACdE,YAAY,EACZ3C,YAAY,EACZuC,QAAQ,GAGJ+B,EAAY,IAAIJ,KAAgBtF,KAAUyF,GAChD,IAAIpF,EAAYqF,EAAUrF,UAErBqF,EAAUrF,YACbA,EAAYC,SAASwE,KACrBY,EAAUtE,YAAa,GAGzB,MAAMuE,EAAc,IAAIJ,KAAgBrF,GAClC0F,EAAW9F,EAAgB,EAAkB4F,EAAWrF,EAAWsF,GAEzE,MAAO,CACLnB,KAAMoB,EAASC,IAAIrB,KAEvB,EAEJ,CC1BA,MAAMsB,EAAgB,CAACC,EAAK/F,EAAQ,CAAC,EAAGE,EAAQ,CAAC,KAC/C,MAAM0F,EAAWP,EAAWrF,EAAOE,GACnC6F,EAAIC,OAAOC,iBAAiBC,SAAWN,EACvCG,EAAII,QAAQ,WAAYP,EAAQ,EAGlC,Q,oBCTO5E,MAAM,Q,GAMJA,MAAM,W,qgIANb,QAqHM,MArHN,EAqHM,EApHJ,QAAa,IACb,QAAY,IACZ,QAAgB,IAChB,QAAU,GACU,EAAAoF,MAAQ,EAAAC,KAAO,K,WAAnC,QAA+F,G,MAAvDC,UAAW,EAAAA,UAAY,gBAAe,EAAAC,e,0DAC9E,OA6GM,MA7GN,EA6GM,CA5GJ,GA2GA,QAAe,M,UChHT,OAEM,OAFDjF,MAAA,4CAA2C,EAC5C,OAA0G,OAArGkF,IAAI,mBAAmBlF,MAAA,yDAA6DmF,IAAI,e,aAExEzF,MAAM,S,UAKJM,MAAA,iB,kHAVnC,QAoBU,GApBDA,MAAA,0FAAsF,CAChFoF,OAAK,SACZ,IAEM,CAFN,EAGU,EAAa,gB,WAAvB,QACuG,KADvG,GAAuC,aACnC,QAAG,EAAAC,uBAAyB,IAAI,EAAAA,uBAAuBC,WAAW,IAAK,gBAAkB,IAAxB,K,kBAG9DC,KAAG,SACV,IAAyE,CAA7D,EAAa,gB,WAAzB,QAAyE,OAAzE,GAA+C,UAAM,QAAG,EAAAC,SAAO,K,yBAC/D,QACuD,GAD/CC,KAAK,aAAa/F,MAAM,gCAAiC,QAAO,EAAAgG,SACvC,aAAW,W,wBAAtB,e,WAAlB,O,SACJ,QACuD,GAD/CD,KAAK,cAAc/F,MAAM,gCAAiC,QAAO,EAAAiG,YACxC,aAAW,W,wBAAtB,e,WAAlB,O,SACJ,QACiD,GADzCF,KAAK,wBAAwB/F,MAAM,gCAAiC,QAAO,EAAAkG,SACrD,aAAW,Q,wBAAnB,Y,WAAlB,O,SACJ,QACyD,GADjDH,KAAK,kBAAkB/F,MAAM,gCAAgCM,MAAA,wBAA6B,QAAO,EAAA6F,OACvE,aAAW,Y,wBAAvB,gB,WAAlB,S,MAMhB,QACIlG,KAAM,YACNkB,QAAS,CACLiF,mBACIrF,KAAKsF,QAAQC,KAAK,YACtB,EACAC,uBACIxF,KAAKsF,QAAQC,KAAK,gBACtB,EACAH,SACQpF,KAAKyF,OAAOC,QAAQC,gBAAgBC,IACpC5F,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,+BAA+B/F,KAAKyF,OAAOC,QAAQC,eAAeC,MAExF5F,KAAKyF,OAAOO,SAAS,UACrBhG,KAAKsF,QAAQC,KAAK,UAClBU,aAAaC,WAAW,gBAC5B,EACAjB,WACIjF,KAAKsF,QAAQC,KAAK,YACtB,EACAL,cACIlF,KAAKsF,QAAQC,KAAK,WACtB,EACAJ,WACInF,KAAKsF,QAAQC,KAAK,SACtB,GAEJnC,SAAU,CACN2B,UACI,OAAO/E,KAAKyF,OAAOC,QAAQS,YAAYC,SAC3C,EACAC,qBACI,MAAuC,YAAhCrG,KAAKyF,OAAOC,QAAQY,QAC/B,EACAC,gBACI,OAAOvG,KAAKyF,OAAOC,QAAQc,UAC/B,EACA5B,yBACI,OAAQ5E,KAAKyF,OAAOC,QAAsB,eAAI1F,KAAKyF,OAAOC,QAAQC,eAAec,aAAe,YACpG,IC1DR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,iECYSxH,MAAM,Y,YAKH,OAAsD,KAAnDA,MAAM,eAAeM,MAAA,wB,uBAIxB,OAAsD,KAAnDN,MAAM,eAAeM,MAAA,wB,uBAIxB,OAA4D,OAAvDkF,IAAI,cAAcxF,MAAM,cAAcyF,IAAI,a,uBAK3C,OAAoB,UAAhB,eAAW,K,YAKnB,OAA0E,OAArED,IAAI,sBAAsBxF,MAAM,cAAcyF,IAAI,mB,uBAIvD,OAAwD,KAArDzF,MAAM,iBAAiBM,MAAA,wB,uBAI1B,OAA2D,KAAxDN,MAAM,oBAAoBM,MAAA,wB,uBAQ7B,OAAoE,OAA/DkF,IAAI,qBAAqBxF,MAAM,cAAcyF,IAAI,c,uBAItD,OAAoD,KAAjDzF,MAAM,aAAaM,MAAA,wB,uBAGtB,OAA4D,KAAzDN,MAAM,qBAAqBM,MAAA,wB,iMA9CtC,OAgDM,MAhDN,GAgDM,E,qBA/CF,QAES,GAF2B,QAAO,EAAA8F,iBAAkBpG,MAAM,UAAU,aAAW,gB,mBACpF,IAAkD,EAAlD,OAAkD,KAA9CA,OAAK,QAAE,EAAAyH,SAASnH,MAAA,wB,oCADL,mB,qBAGnB,QAES,GAF2B,QAAO,EAAAiG,qBAAsBvG,MAAM,UAAW0H,UAAW,EAAAC,kBAAmB,aAAW,gB,mBACvH,IAAsD,CAAtD,M,oCADe,mB,qBAGnB,QAGS,GAHDC,MAAM,sBAAuB,QAAO,EAAAC,oBACxC7H,MAAM,UAAW0H,UAAW,EAAAC,kBAAmB,aAAW,uB,mBAC1D,IAAsD,CAAtD,M,oCAFwE,0B,qBAI5E,QAGS,GAHDC,MAAM,YAAa,QAAO,EAAAE,kBAA2C9H,MAAM,UAC9E0H,UAAW,EAAAC,kBAAmB,aAAW,a,mBAC1C,IAA4D,CAA5D,M,oCAF4D,gBAIhE,QAKU,GALOhF,OAAQ,EAAAoF,U,iCAAA,EAAS,aAAG,aAAY,EAAA/E,UAAY,YAAW,EAAAgF,cAAgB,eAAc,EAAAC,SACjGpH,OAAQ,EAAAA,OAASD,MAAO,EAAAA,MAAQD,MAAO,EAAAA,MAAQD,OAAQ,EAAAA,OAAS,mBAAkB,EAAAwH,U,eAC1D,EAAO,Q,MAArB,U,aACP,IAAoB,CAApB,Y,wIAGR,QAGS,GAHA,SAAK,QAAU,EAAAC,oBAAmB,aAAgCnI,MAAM,UAC5E0H,UAAW,EAAAC,kBAAmB,aAAW,mB,mBAC1C,IAA0E,CAA1E,M,oCAFoD,sB,qBAIxD,QAGS,GAHDC,MAAM,mBAAoB,QAAO,EAAAQ,iBAAiDpI,MAAM,UAC3F0H,UAAW,EAAAC,mBAAqB,EAAAU,wBAAyB,aAAW,oB,mBACrE,IAAwD,CAAxD,M,oCAFkE,uB,qBAItE,QAGS,GAHA,QAAO,EAAAC,mBAA6CtI,MAAM,UAC9D0H,UAAW,EAAAC,mBAAqB,EAAAU,wBAAyB,aAAW,c,mBACrE,IAA2D,CAA3D,M,oCAF2C,iB,qBAQ/C,QAGS,GAHA,QAAO,EAAAE,yBAAmDvI,MAAM,UACpE0H,UAAW,EAAAC,mBAAqB,EAAAU,wBAAyB,aAAW,c,mBACrE,IAAoE,CAApE,M,oCAFiD,iB,qBAIrD,QAGS,GAHA,QAAK,eAAE,EAAAG,cAAgB,EAAAC,iBAAmB,EAAAC,kBAAkBC,IACjE3I,MAAM,UAAW0H,UAAW,EAAAC,mBAAqB,EAAAU,wBAAyB,aAAW,U,mBACrF,IAAoD,CAApD,M,0BAFqF,YAIG,EAAAO,iB,qCAA5F,QAES,G,MAFA,QAAO,EAAAC,sBAAoD7I,MAAM,Y,mBACtE,IAA4D,CAA5D,M,yBAD8C,EAAA8I,uBAItD,QAA6B,IAC7B,QAKS,GALDC,OAAO,WAAmBC,QAAS,EAAAC,c,kCAAA,EAAa,iBAAGC,OAAO,G,CAEnDC,QAAM,SACb,IAA4D,EAA5D,QAA4D,GAAnDvB,MAAO,EAAAwB,aAAe,QAAO,EAAAC,SAAUC,UAAA,I,iDAFpD,IAAmB,E,iBAAhB,EAAAC,eAAgB,IACnB,M,6nBCpBJ,GAAQ,KASZ,IAAIC,GAEAC,GACAC,GACAC,GAGAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA9DJ,GAAMC,KACJ,YACA,0MAGF,QAAS,IA0DT,IAOIC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GAEAC,GACAC,GAGAC,GACAC,GACAC,GACAC,GAkBAC,GACAC,GAKAC,GAWAC,GAgBAC,GACAC,GACAC,GACAC,GA/FAC,GAAgB,EAChBC,GAAsB,GACtBC,GAAwB,GACxBC,GAAmB,GACnBC,GAAsB,GACtBC,GAAyB,GACzBC,GAAqB,GA2BrBC,GAAsB,GAGtBC,IAAgC,EAQhCC,GAAQ,CAEZ,EACIC,IAAkB,EAClBC,IAAuB,EACvBC,IAA0B,EAC1BC,IAAoC,EACpCC,IAAoC,EACpCC,IAAqB,EACrBC,IAAwB,EACxBC,IAA2B,EAC3BC,IAAqB,EACrBC,IAAqB,EAKrBC,GAA0B,EAC1BC,GAA2B,GAC3BC,GAAqB,GAGrBC,GAAqB,GACrBC,GAA+B,GAC/BC,GAAsC,GACtCC,GAAmB,GACnBC,GAAqB,GACrBC,GAAsB,GACtBC,GAAwB,GACxBC,GAAe,IAIfC,GAA4B,GAC5BC,GAA+B,GAC/BC,GAAqC,GACrCC,GAAgC,GAChCC,GAA2B,GAE3BC,GAA0B,GAC1BC,GAAuC,GACvCC,GAA8B,GAC9BC,GAAwB,GAGxBC,IAAU,EAQVC,GAAe,IACfC,GAAsB,CAAC,EAEvBC,GAAmB,KACnBC,GAAmB,KAGvB,MAAMC,GAAqB,IAAIC,GAAA,GAAM,CACnCC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPC,MAAO,IAETuR,OAAQ,IAEVC,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,uBACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OAGRC,GAAgC,IAAIX,GAAA,GAAM,CAC9CC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPC,MAAO,IAETuR,OAAQ,IAEVC,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,uBACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OAIRE,GAAmB,IAAIZ,GAAA,GAAM,CACjCC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPC,MAAO,IAETuR,OAAQ,IAEVC,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,QACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OAkBRG,IAfoB,IAAIb,GAAA,GAAM,CAClCC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPC,MAAO,IAETuR,OAAQ,IAEVC,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,QACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,YAGiB,IAAIT,GAAA,GAAM,CACxCC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,yBACPC,MAAO,IAETuR,OAAQ,IAEVC,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,QACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,aAITK,GAAmB,IAAId,GAAA,GAAM,CACjCC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,yBACPC,MAAO,IAETuR,OAAQ,IAEV9P,KAAM,IAAIkQ,GAAA,EAAK,CACb5R,MAAO,6BAETyR,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,2BACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,mBAAoBC,MAAO,IACvD4R,UAAW,QACXC,SAAU,OAGRK,GAAwB,IAAIf,GAAA,GAAM,CACtC1P,KAAM,IAAIkQ,GAAA,EAAK,CACb5R,MAAO,4BAGTqR,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,0BACPC,MAAO,IAETuR,OAAQ,MAGNY,GAA0B,IAAIhB,GAAA,GAAM,CACxCC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPC,MAAO,KAETuR,OAAQ,IAEVC,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,uBACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OAGRO,GAAwB,IAAIjB,GAAA,GAAM,CACtCC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPC,MAAO,KAETuR,OAAQ,IAEVC,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,QACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OAGRQ,GAAc,IAAIlB,GAAA,GAAM,CAC5B/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPuS,SAAU,CAAC,GAAI,IACftS,MAAO,MAGLuS,GAAsB,IAAIpB,GAAA,GAAM,CACpC/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPuS,SAAU,CAAC,GAAI,IACftS,MAAO,MAGLwS,GAAY,IAAIrB,GAAA,GAAM,CAC1B1P,KAAM,IAAIkQ,GAAA,EAAK,CACb5R,MAAO,6BAETqB,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPC,MAAO,MAGLyS,GAAqB,IAAItB,GAAA,GAAM,CACnCK,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,UACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OAGRa,GAAW,IAAIvB,GAAA,GAAM,CACzBC,MAAO,IAAIuB,GAAA,EAAa,CACtBlR,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,QACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4S,OAAQ,EACRrB,OAAQ,GACRsB,SAAUC,KAAKC,GAAK,EACpBC,MAAO,IAETxB,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,QACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OAGRoB,GAAY,IAAI9B,GAAA,GAAM,CAC1B1P,KAAM,IAAIkQ,GAAA,EAAK,CACb5R,MAAO,+BAGLmT,GAAgB,IAAI/B,GAAA,GAAM,CAC9BC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,uBACPC,MAAO,IAETuR,OAAQ,IAEVC,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,yBACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OAiBRsB,GAAwC,SAAUC,GAOtD,OANIA,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrEnC,GAAmBqC,UAAUC,QAAQJ,EAAQC,IAAI,YAEjDnC,GAAmBqC,UAAUC,QAAQ,IAGhCtC,EACT,EAmBMuC,GAA2C,SAAUL,GAezD,OAdIA,EAAQC,IAAI,YACVD,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrEtB,GAAiBwB,UAAUC,QAAQJ,EAAQC,IAAI,WAAa,MAAQD,EAAQC,IAAI,YAAYK,UAAUC,YAEtG5B,GAAiBwB,UAAUC,QAAQJ,EAAQC,IAAI,YAAYK,UAAUC,YAGnEP,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrEtB,GAAiBwB,UAAUC,QAAQJ,EAAQC,IAAI,YAE/CtB,GAAiBwB,UAAUC,QAAQ,IAIhCzB,EACT,EACM6B,GAAyC,SAAUR,GAevD,OAdIA,EAAQC,IAAI,eACVD,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrEtB,GAAiBwB,UAAUC,QAAQJ,EAAQC,IAAI,WAAa,MAAQD,EAAQC,IAAI,eAAeK,UAAUC,YAEzG5B,GAAiBwB,UAAUC,QAAQJ,EAAQC,IAAI,eAAeK,UAAUC,YAGtEP,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrEtB,GAAiBwB,UAAUC,QAAQJ,EAAQC,IAAI,YAE/CtB,GAAiBwB,UAAUC,QAAQ,IAIhCzB,EACT,EACM8B,GAAmC,SAAUT,GAWjD,OATEA,EAAQC,IAAI,WAIZH,GAAcK,UAAUC,QAAQJ,EAAQC,IAAI,YAE5CH,GAAcK,UAAUC,QAAQ,IAG3BN,EACT,EACMY,GAAgC,SAAUV,GAW9C,OATEA,EAAQC,IAAI,WAIZpB,GAAiBsB,UAAUC,QAAQJ,EAAQC,IAAI,YAE/CpB,GAAiBsB,UAAUC,QAAQ,IAG9BvB,EACT,EACM8B,GAAuD,SAAUX,GAQrE,OANIA,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrEvB,GAA8ByB,UAAUC,QAAQJ,EAAQC,IAAI,YAE5DvB,GAA8ByB,UAAUC,QAAQ,IAG3C1B,EACT,EACMkC,GAA8C,SAAUZ,GAiB5D,OAfIA,EAAQC,IAAI,aACdjB,GAAsBmB,UAAUC,QAAQJ,EAAQC,IAAI,eAAeK,UAAUC,YACzEP,EAAQC,IAAI,WACdjB,GAAsBmB,UAAUC,QAAQJ,EAAQC,IAAI,WAAa,MAAQD,EAAQC,IAAI,eAAeK,UAAUC,YAE9GvB,GAAsBmB,UAAUC,QAAQJ,EAAQC,IAAI,eAAeK,UAAUC,aAG3EP,EAAQC,IAAI,WACdjB,GAAsBmB,UAAUC,QAAQJ,EAAQC,IAAI,YAEpDjB,GAAsBmB,UAAUC,QAAQ,IAIrCpB,EACT,EACM6B,GAA6C,SAAUb,GAQ3D,OANIA,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrElB,GAAwBoB,UAAUC,QAAQJ,EAAQC,IAAI,YAEtDlB,GAAwBoB,UAAUC,QAAQ,IAGrCrB,EACT,EACM+B,GAAgD,SAAUd,GAgB9D,OAdIA,EAAQC,IAAI,YACVD,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrEjB,GAAsBmB,UAAUC,QAAQJ,EAAQC,IAAI,WAAa,MAAQD,EAAQC,IAAI,YAAYK,UAAUC,YAE3GvB,GAAsBmB,UAAUC,QAAQJ,EAAQC,IAAI,YAAYK,UAAUC,YAGxEP,EAAQC,IAAI,YAAc5E,GAAoB6E,SAASF,EAAQC,IAAI,OACrEjB,GAAsBmB,UAAUC,QAAQJ,EAAQC,IAAI,YAEpDjB,GAAsBmB,UAAUC,QAAQ,IAIrCpB,EACT,EACM+B,GAAyB,SAAUf,GACvC,IAAIgB,EAAuBhB,EAAQC,IAAI,iBACnCgB,EAAkBjB,EAAQC,IAAI,eAC9BiB,EAAiBlB,EAAQC,IAAI,YACjC,OAAID,EAAQC,IAAI,cAAgBD,EAAQC,IAAI,eACtCP,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMF,GAEzCL,GAA4CZ,GAE5Ca,GAA2Cb,GAGhDN,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMD,GAEzCJ,GAA8Cd,GAE9Ca,GAA2Cb,EAGxD,EA64CA,SAASoB,KACPzL,GAAU0L,QACVxL,GAAWwL,QACXtL,GAAWsL,QACXpL,GAAWoL,QACXjL,GAAciL,QACdlL,GAAWkL,QACXnL,GAAWmL,QACXrL,GAAWqL,QACX7L,GAAI8L,kBAAkB/I,IACtB4D,IAAqB,CACvB,CAEA,SAASoF,KACPlL,GAAWgL,QACX/K,GAAY+K,OACd,CAGA,SAASG,KACP,IAAIC,EAAYC,GAAgB,wBAC5BD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,8BACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,gBACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,iBACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,gBACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,kBACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,mBACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,eACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,qBACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,uBACxBD,IACFA,EAAUE,QAAQ3M,SAAU,GAE9ByM,EAAYC,GAAgB,oBACxBD,IACFA,EAAUE,QAAQ3M,SAAU,EAEhC,CAGA,SAAS4M,GAAkBC,EAAY9E,GAErClH,GAAWwL,QAGXtL,GAAWsL,QAGXpL,GAAWoL,QAEX,IAAIS,EAAcD,EAEdE,EAAYD,EAAYE,QAC5BD,EAAUE,MAAMH,EAAYI,SAC5BjM,GAAWkM,WAAWJ,GAEtBK,QAAQC,IAAI,8BAA+BtF,GAC3C,IAAIuF,EAAeC,GAAiBT,EAAa/E,GACjDhH,GAAWoM,WAAWG,GAGtB,IAAIE,EAAQ,EACRC,EAAeC,GAAgBZ,GACnCM,QAAQC,IAAII,GACZA,EAAaE,IAAI,QAAS,QAAUH,EAAMjC,YAC1C1K,GAAWsM,WAAWM,GACtBX,EAAYa,IAAI,KAAMH,GAItBI,GAAyBd,EAAYe,eAErCC,GAA2CR,EAC7C,CAGA,SAASS,GAAuBlB,EAAY9E,EAAciG,EAAQC,GAIhE,IAAInB,EAAcD,EAClBO,QAAQC,IAAI,8BAA+BtF,GAC3C,IAAIuF,EAAeC,GAAiBT,EAAa/E,GACjDuF,EAAaL,MAAMe,GACnBV,EAAaK,IAAI,eAAgBM,GACjC3M,GAAY6L,WAAWG,EACzB,CAEA,SAASY,GAAwBC,GAC/B,IAAIC,EAAgB,GAEpBhB,QAAQC,IAAI,eACZD,QAAQC,IAAIc,EAAYE,QACpBF,EAAYE,OAAS,GACvBD,EAAc9Q,KAAK,0EAErB,IAAIgR,EAAWH,EAAY,GAU3B,MARyC,YAArCG,EAAST,cAAcU,WACzBH,EAAc9Q,KAAK,2FAOd8Q,CACT,CA8JA,SAASI,GAA2BL,GAClC,IAAIrB,EACA2B,EAAkB,GAClBC,EAAqB,GACrBC,EAAuB,GAE3B,GAAIR,EAAYE,OAAS,EAAG,CAE1BI,EAAgBnR,KAAK,GACrBoR,EAAmBpR,KAAK,GAExB,IAAIsR,GAAe,EAEnB,OAAQA,EAAc,CACpB,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAgBJ,OAAQQ,IAAK,CAC/C,IAAIC,EAAeL,EAAgBI,GACnC/B,EAAcqB,EAAYW,GAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAIZ,EAAYE,OAAQU,IACtC,IAAIL,EAAmBxD,SAAS6D,GAAhC,CAGA,IAAIC,EAAcb,EAAYY,GAC1BE,GAAYnC,EAAakC,KACtBP,EAAgBvD,SAAS6D,KAC5BN,EAAgBnR,KAAKyR,GACrBL,EAAmBpR,KAAKyR,IAL5B,CASJ,CAEAJ,EAAqBrR,KAAKmR,GAC1B,IAAIS,GAAe,EACnB,IAAK,IAAIL,EAAI,EAAGA,EAAIV,EAAYE,OAAQQ,IACtC,IAAKH,EAAmBxD,SAAS2D,GAAI,CACnCK,GAAe,EACfT,EAAkB,GAClBA,EAAgBnR,KAAKuR,GACrBH,EAAmBpR,KAAKuR,GACxB,KACF,CAGFD,EAAeM,CACjB,CACF,CAEA,OAAOP,CACT,CAGA,SAASQ,GAAkBhB,EAAapG,GAWtC,IAAI+E,EATJjM,GAAWwL,QAGXtL,GAAWsL,QAGXpL,GAAWoL,QAIX,IAEIsC,EAAuB,GAE3B,GAAIR,EAAYE,OAAS,EAAG,CAwC1BM,EAAuBH,GAA2BL,GAClDf,QAAQC,IAAI,wBACZD,QAAQC,IAAIsB,GAGZ,IAAIS,EAAgB,GAEpB,IAAK,IAAIP,EAAI,EAAGA,EAAIF,EAAqBN,OAAQQ,IAAK,CACpD,IAAIQ,EAAqBV,EAAqBE,GAE9C,IAAK,IAAIE,EAAI,EAAGA,EAAIM,EAAmBhB,OAAQU,IAAK,CAClD,IAAID,EAAeO,EAAmBN,GAEpCjC,EADQ,IAANiC,EACYZ,EAAYW,GAEZQ,GAASxC,EAAaqB,EAAYW,GAEpD,CACAM,EAAc9R,KAAKwP,EACrB,CAGA,GAAIsC,EAAcf,OAAS,EAAG,CAC5BjB,QAAQC,IAAI,wBACZD,QAAQC,IAAI+B,EAAcf,QAC1BjH,IAAqB,EACrB,IAAK,IAAIyH,EAAI,EAAGA,EAAIO,EAAcf,OAAQQ,IACxCzB,QAAQC,IAAI,KACZD,QAAQC,IAAIwB,GAEV/B,EADQ,IAAN+B,EACYO,EAAcP,GAEdS,GAASxC,EAAasC,EAAcP,GAkBxD,MACEzH,IAAqB,CAwBzB,MACE0F,EAAcqB,EAAY,GAG5B,IAAIpB,EAAYD,EAAYE,QAC5BD,EAAUE,MAAMH,EAAYI,SAC5BjM,GAAWkM,WAAWJ,GACHW,GAAgBZ,GAAnC,IAEIyC,EAAYtO,GAAWuO,cAC3B,IAAK,IAAIX,EAAI,EAAGA,EAAIU,EAAUlB,OAAQQ,IAAK,CACzC,IAAIY,EAAQF,EAAUV,GAGtB,GAFAzB,QAAQC,IAAI,4CACZD,QAAQC,IAAIoC,EAAM5B,cAAcU,WACM,iBAAlCkB,EAAM5B,cAAcU,UAA8B,CACpDnH,IAAqB,EACrB,KACF,CACF,CAEAgG,QAAQC,IAAI,8BAA+BtF,GAC3C,IAAIuF,EAAeC,GAAiBT,EAAa/E,EAAcoG,EAAYE,QAAUM,EAAqBN,QAC1GtN,GAAWoM,WAAWG,GAEtB,IAAIoC,GAAmC,EACvC,GAAItI,GAAoB,CACtBmI,EAAYxO,GAAWyO,cACvB,IAAK,IAAIX,EAAI,EAAGA,EAAIU,EAAUlB,OAAQQ,IAAK,CACrCY,EAAQF,EAAUV,GACtB,GAAqC,WAAjCY,EAAM5B,cAAcU,UAAwB,CAC9CmB,GAAmC,EACnC,KACF,CACF,CACF,CACA,IAAIC,EAAcrC,EAClB,GAAIoC,EAAkC,CACpC,IAAIE,EAAc,GAClBA,EAAYtS,KAAKgQ,EAAaO,cAAcgC,kBAC5CF,EAAc,IAAI,KAAQ,CACxBG,SAAU,IAAIC,GAAA,EAAaH,KAE7B7O,GAAWsL,QACXtL,GAAWoM,WAAWwC,EACxB,CACAJ,EAAYxO,GAAWyO,cACvB,IAAK,IAAIX,EAAI,EAAGA,EAAIU,EAAUlB,OAAQQ,IAAK,CACrCY,EAAQF,EAAUV,GACtBzB,QAAQC,IAAI,4CACZD,QAAQC,IAAIoC,EAAM5B,cAAcU,UAClC,CAKA,IAAK,IAAIM,EAAI,EAAGA,EAAIV,EAAYE,OAAQQ,IAAK,CAE3C,IAAImB,EAAkB7B,EAAYU,GAC9BoB,EAAOD,EAAgB/E,IAAI,MAC3BuC,EAAQyC,EACRC,EAAmBxC,GAAgBsC,GACvCE,EAAiBvC,IAAI,QAAS,QAAUH,EAAMjC,YAC9C1K,GAAWsM,WAAW+C,EAExB,CAcAtC,GAAyBd,EAAYe,eAErCC,GAA2C6B,EAC7C,CAEA,SAASQ,GAAahC,EAAapG,GAIjC,IAAI+E,EAFJ/L,GAAWsL,QAGX,IAEIsC,EAAuB,GAE3B,GAAIR,EAAYE,OAAS,EAAG,CAC1BM,EAAuBH,GAA2BL,GAClDf,QAAQC,IAAI,wBACZD,QAAQC,IAAIsB,GAGZ,IAAIS,EAAgB,GAEpB,IAAK,IAAIP,EAAI,EAAGA,EAAIF,EAAqBN,OAAQQ,IAAK,CACpD,IAAIQ,EAAqBV,EAAqBE,GAE9C,IAAK,IAAIE,EAAI,EAAGA,EAAIM,EAAmBhB,OAAQU,IAAK,CAClD,IAAID,EAAeO,EAAmBN,GAEpCjC,EADQ,IAANiC,EACYZ,EAAYW,GAEZQ,GAASxC,EAAaqB,EAAYW,GAEpD,CACAM,EAAc9R,KAAKwP,EACrB,CAGA,GAAIsC,EAAcf,OAAS,EAAG,CAC5BjB,QAAQC,IAAI,wBACZD,QAAQC,IAAI+B,EAAcf,QAC1BjH,IAAqB,EACrB,IAAK,IAAIyH,EAAI,EAAGA,EAAIO,EAAcf,OAAQQ,IACxCzB,QAAQC,IAAI,KACZD,QAAQC,IAAIwB,GAEV/B,EADQ,IAAN+B,EACYO,EAAcP,GAEdS,GAASxC,EAAasC,EAAcP,GAGxD,MACEzH,IAAqB,CAIzB,MACE0F,EAAcqB,EAAYE,OAASF,EAAY,GAAKA,EAEtDf,QAAQC,IAAI,8BAA+BtF,GAC3C,IAAIuF,EAAeC,GAAiBT,EAAa/E,GACjDhH,GAAWoM,WAAWG,GAEtB,IAAIoC,GAAmC,EACvC,GAAItI,GAAoB,CACtB,IAAImI,EAAYxO,GAAWyO,cAC3B,IAAK,IAAIX,EAAI,EAAGA,EAAIU,EAAUlB,OAAQQ,IAAK,CACzC,IAAIY,EAAQF,EAAUV,GACtB,GAAqC,WAAjCY,EAAM5B,cAAcU,UAAwB,CAC9CmB,GAAmC,EACnC,KACF,CACF,CACF,CACA,IAAIC,EAAcrC,EAClB,GAAIoC,EAAkC,CACpC,IAAIE,EAAc,GAClBA,EAAYtS,KAAKgQ,EAAaO,cAAcgC,kBAC5CF,EAAc,IAAI,KAAQ,CACxBG,SAAU,IAAIC,GAAA,EAAaH,KAE7B7O,GAAWsL,QACXtL,GAAWoM,WAAWwC,EACxB,CACA7B,GAA2CR,EAC7C,CAqCA,SAASM,GAAyBwC,GAChChD,QAAQC,IAAI,mCAEZ,MAAMgD,GAAsB,IAAI,MAAMC,gBAAgB,CACpDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,sBACfC,aAAc,mBACdC,QAAQ,SAAiB,WAAYP,EAAU,eAEjD,IAAIQ,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkBV,GAC/BtQ,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,QAE/CC,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,EACNM,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GAGdnM,GAAe,GACf,MAAMoM,GAAmB,IAAI,MAAUC,aAAaF,GACpD,GAAIC,EAAiBnD,OAAS,EAAG,CAC/B,IAAIqD,EAAgB,GACpB,IAAK,IAAI7C,EAAI,EAAGA,EAAI2C,EAAiBnD,OAAQQ,IAAK,CAChD,IAAI8C,EAAkBH,EAAiB3C,GACnC+C,EAAeD,EAAgB1G,IAAI,YACvCyG,EAAcpU,KAAKsU,EACrB,CACAxM,GAAesM,EAAcG,KAAK,IACpC,CAGF,GACJ,CAGA,SAASC,GAAUC,GAEjB,IAAI7R,EAAQ5J,SAAS0b,eAAe,WACpC9R,EAAM5I,MAAM2a,QAAU,QACtB/R,EAAM5I,MAAMK,MAAQ,QACpB,IAAIua,EAAY5b,SAAS0b,eAAe,eACxCE,EAAUC,UAAYJ,EAGtB,IAAIK,EAAO9b,SAAS+b,uBAAuB,cAAc,GAEzDD,EAAKE,QAAU,WACbpS,EAAM5I,MAAM2a,QAAU,MACxB,EAEArb,OAAO0b,QAAU,SAAUla,GACrBA,EAAMC,QAAU6H,IAClBA,EAAM5I,MAAM2a,QAAU,OAE1B,CACF,CA0BA,SAASnE,GAA2CyE,GAClD,IAAIC,EAAaD,EAAW1E,cAC5B,MAAM4E,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YACXC,aAAc,CAAC,kCACfC,aAAc,mBACdC,QAAQ,SAAiB,WAAY6B,EAAY,eAEnD,IAAI5B,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GAGd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMmB,GAA0B,IAAI,MAAUjB,aAAaF,GAC3D,IAAI9E,EAAYC,GAAgB,uBAGhC,GAFAD,EAAUkG,YAAYtG,QAEiB,IAAnCqG,EAAwBrE,OAuB1B,OAFAyD,GAAU,uGAEH,EACF,CAGL,IAAIc,EAAqB,GACzB,IAAK,IAAI/D,EAAI,EAAGA,EAAI6D,EAAwBrE,OAAQQ,IAAK,CACvD,IAAIgE,EAAmBH,EAAwB7D,GAC3CiE,EAAOD,EAAiB5H,IAAI,cAC3B2H,EAAmB1H,SAAS4H,IAC/BF,EAAmBtV,KAAKwV,EAE5B,CAEA,IAAIC,EAAe,IACfC,EAAqBzF,GAAiBgF,EAAYQ,GAClDE,EAAqBD,EAAmBnF,cAK5C,MAAMqF,GAAuB,IAAI,MAAM5C,gBAAgB,CACrDC,QAAS,YACTC,UAAW,YACXC,aAAc,CAAC,kCACfC,aAAc,mBACdC,QAAQ,SAAiB,WAAYsC,EAAoB,eAE3D,IAAIrC,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkBmC,GA+CnC,OA7CAhC,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GAGd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAM4B,GAA4B,IAAI,MAAU1B,aAAaF,GAC7D,IAAI6B,EAAkB,GAClBC,EAAyB,GAE7B,IAAK,IAAIxE,EAAI,EAAGA,EAAIsE,EAA0B9E,OAAQQ,IAAK,CACzD,IAAIgE,EAAmBM,EAA0BtE,GAC7CiE,EAAOD,EAAiB5H,IAAI,cAC5BqI,EAAST,EAAiB5H,IAAI,OAC7B2H,EAAmB1H,SAAS4H,IAEF,gBAAzBQ,EAAOC,gBAEJF,EAAuBnI,SAAS4H,KAEnCO,EAAuB/V,KAAKwV,GAC5BM,EAAgB9V,KAAKuV,IAI7B,CAIA,GADApG,EAAYC,GAAgB,uBACxB0G,EAAgB/E,OAAS,EAAG,CAC9B,IAAK,IAAIQ,EAAI,EAAGA,EAAIuE,EAAgB/E,OAAQQ,IAAK,CAC/C,IAAI2E,EAAkBJ,EAAgBvE,GACtCpC,EAAUkG,YAAYxF,WAAWqG,EACnC,CAEA1B,GACE,yLAEJ,CACF,KAEK,CACT,CACF,GACJ,CA4PA,SAAS2B,KACP,IAAIC,EAEJ,MAAMjB,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,SACfC,aAAc,mBACdC,QAAQ,SAAc,YAAahL,MAErC,IAAIiL,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMoC,GAAe,IAAI,MAAUlC,aAAaF,GAChD,IAAIqC,EAAqB,GACzB,GAAID,EAAatF,OAAS,EAAG,CAC3B,IAAK,IAAIQ,EAAI,EAAGA,EAAI8E,EAAatF,OAAQQ,IACvC,IAAK,IAAIE,EAAI,EAAGA,EAAI4E,EAAatF,OAAQU,IACvC2E,EAAWC,EAAa5E,GACpB2E,EAASzI,IAAI,QAAU4D,EAAI,GAC7B+E,EAAmBtW,KAAKoW,GAK9B,IAAIG,GAAiB,EACjBC,GAAqB,EACzB,MAAOA,EAAoB,CACzBA,GAAqB,EACrB,IAAK,IAAIjF,EAAI,EAAGA,EAAI7N,GAAWwO,cAAcnB,OAAQQ,IAAK,CACxD,IAAIkF,EAAW/S,GAAWwO,cAAcX,GACpCmF,EAAYD,EAAS9I,IAAI,QAC7B,IAAKgE,GAAY8E,EAAUH,EAAmBI,EAAY,IAAK,CAC7DF,GAAqB,EACrBD,GAAiB,EACjB7S,GAAWiT,cAAcF,GACzB,KACF,CACF,CACF,CACIF,IACFzG,QAAQC,IAAI,8CACZ7M,GAAI0T,eAAe3Q,IAEvB,MACE6J,QAAQC,IAAI,uDACZrM,GAAWqL,OAEf,GACJ,CAwDA,SAAS8H,KAGPnT,GAAWqL,QAGX,IAAI+H,EACF3T,GACA,8JACAkF,GAAiB4F,WACjB,yCACFvJ,GAAmB,IAAI,KAAa,CAClCqS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOH,EAAmB,oBAC5B,IAEF,IAAI3H,EAAYC,GAAgB,eAChCD,EAAU+H,UAAUxS,IACpByK,EAAUE,QAAQ3M,SAAU,EAC5BgC,GAAiByS,UAEjBC,GAAmB/O,GAAkB,EAAG,KAC1C,CAEA,SAAS+O,GAAmBC,EAAWzZ,EAAO0Z,GAC5C,IAAIC,EAAU,IAAIC,GAAoBH,EAAWzZ,GAC7C6Z,EAAUrU,GAAc,4BAC5BwQ,MAAM6D,EAAS,CACb5D,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAGlBtW,KAAMka,KAAKC,UAAUJ,KAEpBxD,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnE,QAAQC,IAAI,mCAAqCnS,EAAMqQ,YACvD6B,QAAQC,IAAInS,GACR0Z,GACFA,GAEJ,GACJ,CAQA,SAASQ,GAAgBT,EAAWC,GAClC,IAAIS,EAAS3U,GAAc,6BAA+BiU,EAAUpJ,WACpE2F,MAAMmE,EAAQ,CACZlE,OAAQ,QAEPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,GACZG,GAAeX,EAAU,IAE1BtD,MAAK,SAAUE,GACd,IAAIgE,EAAeP,KAAKQ,MAAMjE,GAE9BqD,EAASW,EAAcZ,EAEzB,GACJ,CAQA,SAASW,GAAeX,EAAWC,GACjC,IAAIS,EAAS3U,GAAc,4BAA8BiU,EAAUpJ,WAEnE2F,MAAMmE,EAAQ,CACZlE,OAAQ,QAEPE,MAAK,SAAUC,GACd,OAAOA,EAASlI,MAClB,IACC8L,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUoE,GACd,IAAIC,EAASD,EAAOE,MAAM,KAAK,GAC3BC,EAAWF,EAAOC,MAAM,KAAKhF,QAAQhT,GAAc,KAAPA,IAChD0I,GAAsBuP,EAASpV,KAAK7C,GAAOvE,OAAOuE,IAOpD,GACJ,CAWA,SAASkY,GAAmCC,GAC1C1I,QAAQC,IAAI,8BAA+ByI,GAC3C1I,QAAQC,IAAI,wBACZD,QAAQC,IAAIrM,GAAWwO,eACvB,IAAIuG,EAAe/U,GAAWgV,eAAeF,GACzCG,EAAWF,EAAalI,cAC5B,OAAOoI,CACT,CA2IA,SAASC,GAAmB1I,GAC1B,IAAI2I,EAAa,GACjB,IAAK,IAAItH,EAAI,EAAGA,EAAI3J,GAAWmJ,OAAQQ,IAAK,CAC1C,IAAIuH,EAAQlR,GAAW2J,GAAGlR,GAC1B,GAAIyY,IAAU5I,EAAO,CACnB2I,EAAajR,GAAW2J,GAAG5X,KAC3B,KACF,CACF,CACA,OAAOkf,CACT,CACA,SAASE,GAAuB7I,GAC9B,IAAI8I,EAAS,GACb,IAAK,IAAIzH,EAAI,EAAGA,EAAI3J,GAAWmJ,OAAQQ,IAAK,CAC1C,IAAIuH,EAAQlR,GAAW2J,GAAGlR,GAC1B,GAAIyY,IAAU5I,EAAO,CACnB8I,EAASpR,GAAW2J,GAAG0H,gBACvB,KACF,CACF,CACA,OAAOD,CACT,CA4DA,SAASE,KAGP,IAAIjE,EACAkE,EAAW,GAEbA,EADErP,GACS,WAEA,UAGb,MAAMqL,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAIXC,aAAc,CAACgG,GACf/F,aAAc,mBACdC,QAAQ,SAAc,YAAahL,MAErC,IAAIiL,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMmF,GAAiB,IAAI,MAAUjF,aAAaF,GAClD,GAAImF,EAAerI,OAAS,EAAG,CAC7B7H,GAAsB,GACtB+L,EAAamE,EAAe,GAC5B,IAAIC,GAAY,EAEhB,IAAK,IAAI9H,EAAI,EAAGA,EAAI5G,GAA6BoG,OAAQQ,IAAK,CAC5D,IAAI+H,EAAW3O,GAA6B4G,GAC5C,GAAII,GAAYsD,EAAYqE,GAAW,CACrCD,GAAY,EACZ,IAAIE,EAASD,EAAS/I,cAClBiJ,EAAcD,EAAOE,cACrBC,EAAa/O,GAA6B4G,GAAG5D,IAAI,cACjDgM,EAAYhP,GAA6B4G,GAAG5D,IAAI,aAChDiM,EAAgE,MAApDjP,GAA6B4G,GAAG5D,IAAI,aAAuB,GAAKhD,GAA6B4G,GAAG5D,IAAI,aAChHkM,EAASlP,GAA6B4G,GAAG5D,IAAI,OAC7CmM,EAC+C,MAAjDnP,GAA6B4G,GAAG5D,IAAI,UAChChD,GAA6B4G,GAAG5D,IAAI,aAAehD,GAA6B4G,GAAG5D,IAAI,aACvFhD,GAA6B4G,GAAG5D,IAAI,UAE1C,IAAK,IAAI8D,EAAI,EAAGA,EAAI+H,EAAYzI,OAAQU,IAAK,CAC3C,IAAIsI,EAAWP,EAAY/H,GAC3B,IAAI6H,EAAW,IAAI,KAAQ,CACzBU,KAAMD,IAERT,EAASjJ,IAAI,YAAahI,IAC1BiR,EAASjJ,IAAI,aAAcqJ,GAC3BJ,EAASjJ,IAAI,gBAAiBsJ,GAC9BL,EAASjJ,IAAI,YAAauJ,GAC1BN,EAASjJ,IAAI,OAAQwJ,GACrBP,EAASjJ,IAAI,SAAUyJ,GAEvBR,EAASjJ,IAAI,cAAc,IAAI4J,MAAOC,eAEtChR,GAAoBlJ,KAAKsZ,EAE3B,CACF,CACF,CAEA,GAAKD,EAEE,CAGL,IAAIc,EAAO,SACPC,EAAqB,YACrBC,EAAY,qBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQE,GACzD,MAREA,IASJ,CACF,GACJ,CAEA,SAASA,KACPC,GAA4BnS,IAE5B/D,GAAqB6S,UACrBsD,KAGAvX,GAAIwX,YAAYhU,IAChBxD,GAAIwX,YAAY/T,IAGhBzD,GAAIyX,SAAS9T,IACbrC,GAAsB2S,UAEtByD,IAAkB,EACpB,CAEA,SAASH,KACP,IAAInB,EACJ,IAAK,IAAI/H,EAAI,EAAGA,EAAI5G,GAA6BoG,OAAQQ,IACvD+H,EAAW3O,GAA6B4G,GACxC+H,EAASuB,cAASC,GAEpBnQ,GAA+B,EACjC,CAwCA,SAASoQ,KACPjL,QAAQC,IAAI,oCACZD,QAAQC,IAAI,sBAAuB3H,IACnC,IAAI3F,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,qCAAuCiF,GAAmB,gBAAkBD,GAC1GwL,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdgH,IACF,GACJ,CACA,SAASA,KACPnL,QAAQC,IAAI,oCACZ,IAAItN,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,mCAAqCiF,GAAmB,gBAAkBD,GACxGwL,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdiH,IACF,GACJ,CAEA,SAASA,KACPpL,QAAQC,IAAI,qCACZzL,GAAqB6S,UACrBsD,KACAjW,GAAsB2S,UACtB1S,GAA4B0S,UAG5BjU,GAAIwX,YAAY/T,IAGhBzD,GAAIyX,SAAS9T,IAEb+T,IAAkB,EACpB,CAiEA,SAASO,KACP7W,GAAqB6S,UACrBsD,KACAlX,GAAWwL,QAEX6L,IAAkB,EACpB,CAsHA,SAASQ,KACP/Q,GAAmB,GACnBC,GAAqB,GACrBrG,GAAY8K,QAEZ,IAAIsM,EAAgBjM,GAAgB,8BACpCiM,EAAchM,QAAQ3M,SAAU,EAChC,IAAIyM,EAAYC,GAAgB,aAChCD,EAAUE,QAAQ3M,SAAU,EAE5BkY,IAAkB,GAClB9K,QAAQC,IAAI,iCACd,CA4EA,SAASuL,GAAyBhE,GAChCrT,GAAY8K,QACZ,IAAIsM,EAAgBjM,GAAgB,8BACpCiM,EAAchG,YAAY8B,UAC1ByD,IAAkB,GAClB9K,QAAQC,IAAI,oCACRuH,GACFA,GAEJ,CAwEA,SAASiE,KACPzL,QAAQC,IAAI,qCACZ0K,KACAhW,GAA4B0S,UAE5ByD,IAAkB,EACpB,CA2HA,SAASY,KACPjR,GAAsB,GACtBC,GAAwB,GACxBvG,GAAY8K,QACZ,IAAI0M,EAAmBrM,GAAgB,oBACvCqM,EAAiBpM,QAAQ3M,SAAU,EAEnCkY,IAAkB,GAClB9K,QAAQC,IAAI,4BACd,CAgQA,SAAS2L,GAAYzD,EAAc0D,GACjC7L,QAAQC,IAAI,gBACZD,QAAQC,IAAIkI,GACS,IAAjBA,GACF2D,GAAgBD,EAAW,KAE/B,CAEA,SAASE,GAAkBC,GAezBzW,GAAwB0J,QACxB5J,GAAsB4J,QACtBzJ,GAAyByJ,QACzB3J,GAAuB2J,QAIvB,IAAIgN,EAAc3Y,GAAc,yBAA2B0Y,EAAc7N,WAEzE2F,MAAMmI,EAAa,CACjBlI,OAAQ,QAGPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnE,QAAQC,IAAI,cAAekE,GAG3B,IAAI+H,EACF7Y,GACA,mOACA2Y,EAAc7N,WACd,2BACAgG,EAAKM,OACL,IACFzE,QAAQC,IAAI,uBAAwBiM,GACpC3W,GAA0B,IAAI,KAAa,CACzC0R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO+E,EAAuB,oBAChC,IAEF,IAAIC,EACF9Y,GACA,oOACA2Y,EAAc7N,WACd,2BACAgG,EAAKM,OACL,IACFzE,QAAQC,IAAI,wBAAyBkM,GACrC3W,GAA2B,IAAI,KAAa,CAC1CyR,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgF,EAAwB,oBACjC,IAEF,IASIC,EATAC,EAAWnjB,SAAS0b,eAAe,yBACnC0H,EAAYpjB,SAAS0b,eAAe,0BACpCyH,IACFA,EAASniB,MAAM2a,QAAU,QAEvByH,IACFA,EAAUpiB,MAAM2a,QAAU,QAK1BuH,EADEpS,GACWxE,GAEAD,GAGf,IAAIgX,EAAsB,GAE1BH,EAAWI,GAAG,mBAAmB,SAAUC,GACzC,IAAK,IAAI9K,EAAI,EAAGA,EAAItC,EAAUkG,YAAYnD,cAAcnB,OAAQU,IAAK,CACnE,IAAIU,EAAQhD,EAAUkG,YAAYnD,cAAcT,GAChD4K,EAAoBrc,KAAKmS,EAAMxE,IAAI,aACrC,CAKAzD,GAAqBmS,EAIrB,IAAIG,EACFrZ,GACA,8JACAkZ,EAAoB9H,OACpB,IACFpP,GAAwB,IAAI,KAAa,CACvC4R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOuF,EAAsB,oBAC/B,IAEF,IAAIC,EAASrN,GAAgB,wBAC7BqN,EAAOvF,UAAU/R,IACjBsX,EAAOpN,QAAQ3M,SAAU,EACzB,IAAIga,EACFvZ,GACA,+JACAkZ,EAAoB9H,OACpB,IACFnP,GAAyB,IAAI,KAAa,CACxC2R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOyF,EAAuB,oBAChC,IAEF,IAIIC,EAJAF,EAASrN,GAAgB,yBAC7BqN,EAAOvF,UAAU9R,IACjBqX,EAAOpN,QAAQ3M,SAAU,EAIvBia,EADE7S,GACe1E,GAEAD,GAInBwX,EAAeL,GAAG,mBAAmB,SAAUC,GAG7C,GAFApT,IAAgC,EAE5BkT,EAAoBtL,OAAS,EAAG,CAClC,IAAIoL,EAAWnjB,SAAS0b,eAAe,yBACnC0H,EAAYpjB,SAAS0b,eAAe,0BACpCyH,IACFA,EAASniB,MAAM2a,QAAU,UAEvByH,IACFA,EAAUpiB,MAAM2a,QAAU,SAE9B,CAIA,IAAIiI,EAAWxZ,GAAc,yBAA2B0Y,EAAc7N,WAEtE2F,MAAMgJ,EAAU,CACd/I,OAAQ,QAGPE,MAAK,SAAUC,GACd,OAAOA,EAASlI,MAClB,IACC8L,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAU8I,GACd,IAAIC,EAAiBD,EAASxE,MAAM,KAKhC0E,EACF3Z,GAAc,2BAA6BiZ,EAAoB9H,OAAS,IAAMuI,EAAe,GAAK,IAAMA,EAAe,GAEzHlJ,MAAMmJ,EAAgB,CACpBlJ,OAAQ,QAGPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUiF,GAKd7O,GAA+B6O,EAG/B,IAAIgE,EAA2B,GAC/B,IAAK,IAAIT,EAAI,EAAGA,EAAIF,EAAoBtL,OAAQwL,IAAK,CACnD,IAAIU,EAAgBZ,EAAoBE,GACpCW,EAAyBC,GAC3BF,EACA,IAAIhD,KAAK6C,EAAe,IACxB,IAAI7C,KAAK6C,EAAe,IACxB9D,GAEEoE,EAAeF,EAAuB3I,OAC1CyI,EAA2BA,EAA2BC,EAAgB,IAAMG,EAAe,GAG7F,CACAJ,EAA2BA,EAAyBK,MAAM,GAAI,GAE9DvN,QAAQC,IAAI,2BAA4BiN,GAGxC,IAAID,EAAiB3Z,GAAc,6CAA+C4Z,EAElFpJ,MAAMmJ,EAAgB,CACpBlJ,OAAQ,QAGPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUiF,GACdlJ,QAAQC,IAAI,wBACZD,QAAQC,IAAIiJ,GAGZ5O,GAAsC4O,CACxC,GACJ,GACJ,GACJ,GACF,IAEA,IAAI7J,EAAYC,GAAgB,0BAChCD,EAAU+H,UAAU7R,IACpB8J,EAAUE,QAAQ3M,SAAU,EACxByM,EAAYC,GAAgB,2BAChCD,EAAU+H,UAAU5R,IACpB6J,EAAUE,QAAQ3M,SAAU,CAC9B,GAwCJ,CAsBA,SAAS4a,GAAoB3B,EAAWrE,GAOtC,MAAMiG,GAAoB,IAAI,MAAMvK,gBAAgB,CAClDC,QAAS,YACTC,UAAW,YAGXC,aAAc,CAAC,UAAW,YAE1BC,aAAc,mBACdC,QAAQ,SAAc,YAAasI,KAErC,IAAIrI,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB8J,GACnC3J,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMmF,GAAiB,IAAI,MAAUjF,aAAaF,GAC9CmF,EAAerI,OAAS,GAC1B7N,GAAIsa,UAAUC,IAAIrE,EAAe,GAAG7I,cAAcmN,YAAa,CAC7DpG,SAAU,WACRxH,QAAQC,IAAI,UACRuH,GACFA,GAEJ,GAGN,GACJ,CA2DA,SAASsE,GAAgBD,EAAWrE,GAGlC,IAAIqG,EAEJ,MAAMxI,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,oBACfC,aAAc,mBACdC,QAAQ,SAAc,YAAasI,KAErC,IAAIrI,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAM2J,GAAmB,IAAI,MAAUzJ,aAAaF,GACpD,GAAI2J,EAAiB7M,OAAS,EAAG,CAC/BnG,GAAqC,GACrC,IAAK,IAAI2G,EAAI,EAAGA,EAAIqM,EAAiB7M,OAAQQ,IAC3CoM,EAAaC,EAAiBrM,GAC9B3G,GAAmC5K,KAAK2d,GAE1C7N,QAAQC,IAAI,sCAAwCnF,GAAmCmG,OAAO9C,WAAa,gBAC3G4P,GAAgBlC,EAAWrE,EAC7B,CACF,GACJ,CAGA,SAASuG,GAAgBxG,EAAWC,GAIlC,IAAIwG,EAEJ,MAAM3I,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,cACfC,aAAc,mBACdC,QAAQ,SAAc,YAAagE,KAErC,IAAI/D,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAM8J,GAAc,IAAI,MAAU5J,aAAaF,GAC/C,GAAI8J,EAAYhN,OAAS,EAAG,CAC1BlG,GAAgC,GAChC,IAAK,IAAI0G,EAAI,EAAGA,EAAIwM,EAAYhN,OAAQQ,IACtCuM,EAAUC,EAAYxM,GACtB1G,GAA8B7K,KAAK8d,GAErChO,QAAQC,IAAI,kCAAoClF,GAA8BkG,OAAO9C,WAAa,gBAGlG6B,QAAQC,IAAI,iBACZD,QAAQC,IAAIzH,IAEZ0V,GAAgB3G,EAAWC,EAC7B,MACE2G,MAAM,mEAEV,GACJ,CAGA,SAASD,GAAgB3G,EAAWC,GAGlC,IAAIlB,EADJ1L,GAA4B,GAG5B,MAAMyK,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,SACfC,aAAc,mBACdC,QAAQ,SAAc,YAAagE,KAErC,IAAI/D,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMoC,GAAe,IAAI,MAAUlC,aAAaF,GAChD,GAAIoC,EAAatF,OAAS,EAAG,CAE3B,IAAK,IAAIQ,EAAI,EAAGA,EAAI8E,EAAatF,OAAQQ,IACvC6E,EAAWC,EAAa9E,GACxB7G,GAA0B1K,KAAKoW,GAEjCtG,QAAQC,IAAI,mCAAqCrF,GAA0BqG,OAAO9C,WAAa,gBAE/FiQ,GAAgB7G,EAAWC,EAC7B,CACF,GACJ,CAGA,SAAS4G,GAAgB7G,EAAWC,GAElCxM,GAA2B,GAG3B,IAAIqT,EAAU/a,GAAc,gBAAkBiU,EAAUpJ,WAExD2F,MAAMuK,EAAS,CACbtK,OAAQ,QAGPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnJ,GAA2BmJ,EAE3BmK,GAAgB/G,EAAWC,EAC7B,GACJ,CAGA,SAAS8G,GAAgB/G,EAAWC,GAClC,GAAIpN,GAAmB6G,OAAS,EAAG,CAEjC,IAAIsN,EAAmBnU,GAAmBqK,OAGtCwD,EAAS3U,GAAc,6CAA+Cib,EAC1EzK,MAAMmE,EAAQ,CACZlE,OAAQ,QAGPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnE,QAAQC,IAAI,0BAGZuO,GAAgBjH,EAAWpD,EAAMqD,EACnC,GACJ,MACEgH,GAAgBjH,EAAW,KAAMC,EAErC,CAEA,SAASiH,GAAqBrO,GAC5B,IAAIsO,EAAO9T,GAA0B2I,QAAQoL,GAAMA,EAAE9Q,IAAI,QAAUuC,IACnE,OAAIsO,EAAKzN,OAAS,EACTyN,EAAK,GAEL,IAEX,CACA,SAASE,GAA6BxO,GACpC,IAAIyO,EAAcJ,GAAqBrO,GACvC,GAAIyO,EAAa,CACf,IAAIC,EAAYC,GAA4B3O,GAK5C,OAHiB,MAAb0O,IACFA,EAAYxO,GAAgBuO,IAEvBC,CACT,CACE,OAAO,IAEX,CAUA,SAASE,GAAiC5O,GACxC,IAAIyO,EAAcJ,GAAqBrO,GACvC,OAAIyO,EACKI,GAAYJ,GAEZ,IAEX,CACA,SAASK,GAA+B9O,GACtC,IAAIyO,EAAcJ,GAAqBrO,GACvC,OAAIyO,EACKM,GAAUN,GAEV,IAEX,CAMA,SAASO,GAAsBC,GAC7B,IAAIC,EAAY,EAChB,IAAK,IAAI7N,EAAI,EAAGA,EAAI4N,EAAYpO,OAAQQ,IAAK,CAC3C,IAAI8N,EAAajS,KAAKkS,IAAI,GAAIH,EAAY5N,GAAK,IAC/C6N,GAAwBC,CAC1B,CACA,IAAIE,EAAQ,GAAKnS,KAAKoS,MAAMJ,GAE5B,OAAOG,CACT,CAkCA,SAASE,GAAmBC,GAC1B,IAAIC,EAAID,EAAY,GAChBE,EAAIF,EAAY,GAIpB,OAHAC,EAAsB,YAAjBD,EAAY,GAAoB,IACrCE,EAAIxS,KAAK2C,IAAI3C,KAAKyS,KAAM,GAAKH,EAAY,IAAMtS,KAAKC,GAAM,OAASD,KAAKC,GAAK,KAC7EuS,EAAS,YAAJA,EAAmB,IACjB,CAACD,EAAGC,EACb,CAEA,SAASE,GAAmBC,GAC1B,IAAIJ,EAAII,EAAI,GACRH,EAAIG,EAAI,GAIZ,OAHAJ,EAAS,IAAJA,EAAW,YAChBC,EAAS,IAAJA,EAAW,YAChBA,EAAwD,IAAnDxS,KAAK4S,KAAK5S,KAAKkS,IAAIlS,KAAK6S,EAAGL,GAAKxS,KAAKC,GAAK,OAAgBD,KAAKC,GAAK,GAClE,CAACsS,EAAGC,EACb,CAEA,SAASM,GAAgBC,EAAaC,GACpC,IAAI,cAAEC,EAAa,SAAEC,GAAaC,GAAiBJ,EAAaC,GAE5DI,EAA2B,CAACH,EAAc9N,iBAAkB6N,EAAa7P,cAAcgC,kBAEvFkO,EAAuB,IAAI,KAAWD,GACtCE,GAAmB,SAAUD,GACjC,MAAO,CACLJ,cAAeA,EACfK,iBAAkBA,EAClBJ,SAAUA,EAEd,CAGA,SAASC,GAAiBJ,EAAaC,GAErC,IAAIO,EAAcpC,GAAqB4B,GACnCG,EAAWK,EAAYhT,IAAI,mBAC/B,GAAI2S,GACe,MAAbA,EAAkB,CACpBlV,GAAe,IACf,IAAIwV,EAAelC,GAA6ByB,GAChD3X,GAAmBoY,EACnBnY,GAAoBqW,GAAiCqB,GACrDzX,GAAoBsW,GAA+BmB,GAGnD,IAAIU,EAAwB,EAC5B,GAAIlP,GAAYgP,EAAaC,GAAe,CAC1C,IAAIE,EAAiB,EACrB,GAAIH,EAAYpQ,cAAcgC,iBAAiBxB,OAAS,EACtD,IAAK,IAAIQ,EAAI,EAAGA,EAAIoP,EAAYpQ,cAAcgC,iBAAiBxB,OAAQQ,IAAK,CAC1E,IAAIwP,EAAWJ,EAAYpQ,cAAcgC,iBAAiBhB,GACtDuP,EAAiBC,EAAShQ,SAC5B+P,EAAiBC,EAAShQ,OAC1B8P,EAAwBtP,EAE5B,CAEJ,CAEA,IAAIyP,EAAML,EAAYpQ,cAAcgC,iBAEhC0O,EAAO,OAAaD,GACpBE,EAAM,OAAmBD,GAEzBE,EAAW,IAAI,KACjBR,EAAYpQ,cAAcgC,iBAAiBsO,GAE3C,MAEEO,EAAe,IAAI,KAAQ,CAC7B5O,SAAU2O,IAERE,EAAM,IAAI,KAAWL,GACrBM,EAAMJ,EAAI1O,SAASkN,YAOnB6B,GANM,IAAI,KAAQD,GAEZ,IAAI,KAAQ,CACpB9O,SAAU6O,IAGAjB,EAAa7P,cAAcgC,kBAEnCiP,EAAU,IAAI,KAEdC,EAAeD,EAAQE,mBAAmBN,GAC1CO,EAAgB,OAAaF,GAE7BG,GADM,IAAI,KAAQD,GACFP,EAAa7Q,cAAcgC,kBAG/CqP,EAAgB,GAAGC,OAAO1kB,MAAM,GAAIykB,GAE1B,IAAI,KAAQD,GAAtB,IAEIG,EAAQV,EAAa7Q,cAAcwR,UAAU,YAAa,aAO1DC,EAASF,EAAMvP,iBAEf0P,EAAYnC,GAAmByB,GAE/BW,EAAO,OAAgBF,GACvBG,EAAK,OAAWF,GAEhBG,EAAU,OAAwBF,EAAMC,GAExCE,EAAYD,EAAQ5P,SAASkN,YAC7B4C,EAAY7C,GAAmB4C,GAE/BE,EAAW,CAAChB,EAAOe,GACnBE,EAAoB,IAAI,KAAWD,GAEnCE,EAAwBD,EAAkBjQ,iBAC1CmQ,EAAiBD,EAAsBA,EAAsB1R,OAAS,GACtE4R,EAAyBF,EAAsBA,EAAsB1R,OAAS,GAC9E6R,EAAY,IAAI,KAAQ,IAAI,KAAMF,IAClCG,EAAoB,IAAI,KAAQ,IAAI,KAAMF,IAC1CG,EAAcF,EAAUrS,cAAcgC,iBAEtCwQ,GADAD,EAAc,GAAGjB,OAAO1kB,MAAM,GAAI2lB,GACZD,EAAkBtS,cAAcgC,kBAItDyQ,GAHAD,EAAsB,GAAGlB,OAAO1kB,MAAM,GAAI4lB,GAC5BrL,KAAKC,UAAUmL,GACPpL,KAAKC,UAAUoL,GACvBjD,GAAmBgD,IACjCG,EAAsBnD,GAAmBiD,GACzCG,EAAM,OAAWF,GACjBG,EAAM,OAAWF,GAEjBG,EAAoB,OAAaD,EAAKD,GAEtCG,EAAqB,CAAEC,MAAO,cAC9BC,EAAoB,GACpBC,EAAmB,OAAiBL,EAAKI,EAAmBH,EAAmBC,GAE/EI,EAAqBD,EAAiBhR,SAASkN,YAE/CgE,EAAqBjE,GAAmBgE,GAExCE,EAAY,CAACD,EAAoBnC,GASjCqC,EAAQ,OAAgB,CAACF,EAAoBnC,IAE7CsC,EAAM,OAAmBD,EAAOjC,GAEpC,GAAIkC,EAAIC,SAAS/S,OAAS,EAAG,CAK3B,IAAIgT,EAAY,IAAI,KAAMzB,GACtBjC,EAAgB0D,EAGpB,OAFAxb,GAAmBwb,EAEZ,CACL1D,cAAeA,EACfC,SAAUA,EAEd,CACE,IAYI0D,EAZAC,EAASJ,EAAIC,SAAS,GAAGtR,SAASkN,YAClCwE,GAASL,EAAIC,SAAS,GAAGtR,SAASkN,YAIlCyE,IADA5B,EAAW,CAAC0B,EAAQC,IACT,IAAI,KAAW3B,IAK1B6B,IAJe,IAAI,KAAQ,CAC7B5R,SAAU2R,KAEOA,GAASE,YACb,IAGfL,EAAe,IAAI,KAAMG,GAASG,gBAAgBF,KAIlD,IAAIG,GAAMP,EAAazR,iBAiCnBiS,GAAc,CAACD,GAAKjC,GAEpBmC,GAAc,GACdC,GAAuB,IAAI,KAAWF,IAC1CnE,EAAgB,IAAI,KAAMqE,GAAqBJ,gBAAgBG,KAG3DV,EAAY,IAAI,KAAMzB,GAK1B,OAFA/Z,GAAmBwb,EAEZ,CACL1D,cAAeA,EACfC,SAAUA,EAGhB,CAGEM,EAAelC,GAA6ByB,GAOhD,GANA3X,GAAmBoY,EACnBnY,GAAoBqW,GAAiCqB,GACrDzX,GAAoBsW,GAA+BmB,GAI/CxO,GAAYgP,EAAaC,GAAe,CACtCC,EAAwB,EACxBC,EAAiB,EACrB,GAAIH,EAAYpQ,cAAcgC,iBAAiBxB,OAAS,EACtD,IAAK,IAAIQ,EAAI,EAAGA,EAAIoP,EAAYpQ,cAAcgC,iBAAiBxB,OAAQQ,IAAK,CACtEwP,EAAWJ,EAAYpQ,cAAcgC,iBAAiBhB,GACtDuP,EAAiBC,EAAShQ,SAC5B+P,EAAiBC,EAAShQ,OAC1B8P,EAAwBtP,EAE5B,CAGE4P,EAAW,IAAI,KAAWR,EAAYpQ,cAAcgC,iBAAiBsO,GAAwB,MAC7FO,EAAe,IAAI,KAAQ,CAC7B5O,SAAU2O,IAGRoB,EAAW,CAAC3B,EAAarQ,cAAcgC,iBAAkB6N,EAAa7P,cAAcgC,kBALxF,IAMIoS,GAAe,IAAI,KAAWpC,GAC9BqC,GAAmB,IAAI,KAAQ,CACjCpS,SAAUmS,KAIRE,IAFkBF,GAAaN,YAEXS,GAAmBF,GAAkBxD,EAAchB,IAEvE2E,IADApB,EAAY,CAAC/C,EAAarQ,cAAcgC,iBAAkBsS,GAAkBtU,cAAcgC,kBAC/D,IAAI,KAAWoR,IAC1CS,GAAW,GACf/D,EAAgB,IAAI,KAAM0E,GAAyBT,gBAAgBF,KACnE7b,GAAmBsc,GAGnB,IAAIG,GAAgB,CAACH,GAAkBtU,cAAcgC,iBAAkB8N,EAAc9N,kBACjF0S,GAAY,IAAI,KAAWD,IAE3BE,GAAuBD,GAAUZ,YACrC,GAAIa,GAAuB,GAAI,CAE7B,IAAIC,EAAa,GAAKJ,GAAyBV,YAC/CD,GAAW,EAAIe,EACf9E,EAAgB,IAAI,KAAM0E,GAAyBT,gBAAgBF,IACrE,CAEA,MAAO,CACL/D,cAAeA,EACfC,SAAUA,EAEd,CAEE,IAGI8E,GAHAC,GAAmBC,GAAgB3E,EAAYpQ,cAAeqQ,EAAarQ,eAC3EgV,GAAaF,GAAiBG,qBAC9BC,GAAYJ,GAAiBK,oBAgBjC,OAbEN,IADE,SAAWG,GAAY,MAAO,SAAW3E,EAAarQ,cAAcgC,iBAAkB,GAC7DkT,GAEAF,GAE7BlF,EAAgB,IAAI,KAAM+E,IAG1B7c,GAAmB,IAAI,KAAQ,CAC7BiK,SAAU6N,IAKL,CACLA,cAAeA,EACfC,SAAUA,EAGhB,CAGA,SAASqF,GAAoBC,EAAQC,EAAMC,EAAQC,GACjD,OAAQH,EAASG,GAAQC,GAAUJ,EAAQG,MAAWF,EAAOC,GAAUE,GAAUH,EAAMC,GACzF,CAEA,SAASE,GAAUC,EAAIC,GACrB,OAAOD,EAAGE,gBAAkBD,EAAGC,eAAiBF,EAAGG,aAAeF,EAAGE,YAAcH,EAAGI,YAAcH,EAAGG,SACzG,CAEA,SAASlJ,GAAyCxB,EAAW2K,EAAWC,EAASC,GAC/E,IAAIC,EAA0B,GAG1BC,EAA+B,IAAIzM,KAAKqM,EAAUH,cAAeG,EAAUF,WAAYE,EAAUD,WAErG,MAAOK,GAAgCH,EAAS,CAE9C,IAAII,EAAoB,GACxB,IAAK,IAAIpV,EAAI,EAAGA,EAAIiV,EAAkBzV,OAAQQ,IAAK,CACjD,IAAIqV,EAAcJ,EAAkBjV,GAEpC,GAAIqV,EAAYvP,YAAcsE,EAA9B,CAGA,IAAIkL,EAAgB,IAAI5M,KAAK2M,EAAYxnB,OACrC0nB,EAAc,IAAI7M,KAAK2M,EAAYrnB,KACnCwnB,EAAaH,EAAYpI,KACzBwI,EAASC,SAASL,EAAYvmB,IAC9B6mB,EAAkB,GAElBvB,GAAoBe,EAA8BA,EAA8BG,EAAeC,KACjGI,EAAkBH,EAAW9Y,WAAa,IAAM+Y,EAAO/Y,WACvD0Y,EAAkB3mB,KAAKknB,GATzB,CAWF,CACA,IAAIC,EAAqB,GACrBR,EAAkB5V,OAAS,EAC7BoW,EAAqBR,EAAkBpS,KAAK,KACN,IAA7BoS,EAAkB5V,SAC3BoW,EAAqBR,EAAkB,IAEzCQ,EAAqB,IAAMA,EAAqB,IAE3CV,EAAwB7Y,SAASuZ,IAA8C,OAAvBA,GAAsD,gBAAvBA,GAC1FV,EAAwBzmB,KAAKmnB,GAG/B,IAAIC,EAAoB,IAAInN,KAC1ByM,EAA6BP,cAC7BO,EAA6BN,WAC7BM,EAA6BL,WAG/BK,EAA+B,IAAIzM,KAAKmN,EAAkBC,QAAQD,EAAkBf,UAAY,GAClG,CAEA,OAAOI,CACT,CAGA,SAASnI,GAAgBjH,EAAWiQ,EAAchQ,GAMhDxH,QAAQC,IAAIhH,IACZ+G,QAAQC,IAAI,yBAMZ,IAAIZ,EAAYC,GAAgB,aAChCD,EAAUE,QAAQ3M,SAAU,EAC5ByM,EAAUkG,YAAYtG,QAItB,IAAIwY,EAAc,IAAI,IAAIC,IAAI3c,GAA8B3H,KAAKub,GAAM,GAAGA,EAAE9Q,IAAI,WAAW8Q,EAAE9Q,IAAI,gBAC7F8Z,EAAe,IAAIxN,KAAK1T,GAAWmhB,kBACnCC,EAAa,IAAI1N,KAAK1T,GAAWqhB,gBAKrC,IAAInB,EAA0B,GAC1BoB,EAAuC,GACvCnB,EAA+Be,EAC/BL,EAAoB,IAAInN,KAC1ByM,EAA6BP,cAC7BO,EAA6BN,WAC7BM,EAA6BL,WAE/B,MAAOK,GAAgCiB,EAAY,CAEjD,IAAIhB,EAAoB,GACxB7b,GAAyBgd,SAASlB,IAC5BjB,GAAoBe,EAA8BA,EAA8B,IAAIzM,KAAK2M,EAAYxnB,OAAQ,IAAI6a,KAAK2M,EAAYrnB,OACpIonB,EAAkB3mB,KAAK,GAAG4mB,EAAYpI,QAAQoI,EAAYvmB,KAC5D,IAGF,IAAI0nB,EAA2B,GAC/B7d,GAAmB4d,SAASE,IAC1B7d,GACGkJ,QAAQ4U,GAAMA,EAAE5Q,WAAa2Q,IAC7BF,SAASI,IAENvC,GAAoBe,EAA8BA,EAA8B,IAAIzM,KAAKiO,EAAY9oB,OAAQ,IAAI6a,KAAKiO,EAAY3oB,OAElIwoB,EAAyB/nB,KAAK,GAAGgoB,KAAaE,EAAY1J,QAAQ0J,EAAY7nB,KAChF,GACA,IAEF6J,GAAmB6G,OAAS,GAC9BgX,EAAyB/nB,QAAQ2mB,GAKnC,IAAIQ,EAAqBR,EAAkBpS,KAAK,KAC3CkS,EAAwB7Y,SAASuZ,IAA8C,KAAvBA,GAC3DV,EAAwBzmB,KAAKmnB,GAG/B,IAAIgB,EAA6BJ,EAAyBxT,KAAK,KAE1DsT,EAAqCja,SAASua,IAA8D,KAA/BA,GAChFN,EAAqC7nB,KAAKmoB,GAG5Cf,EAAoB,IAAInN,KACtByM,EAA6BP,cAC7BO,EAA6BN,WAC7BM,EAA6BL,WAG/BK,EAA+B,IAAIzM,KAAKmN,EAAkBC,QAAQD,EAAkBf,UAAY,GAClG,CAGA,IAAI+B,EAA+B,GAC/BC,EAA4C,GAEhD5B,EAAwBqB,SAASQ,IAC/B,IAAIC,EAAWD,EAAqBjQ,MAAM,KACtCmQ,EAAiBD,EAASlV,QAAQoV,GAAkF,KAA3ElK,GAAqB0I,SAASwB,EAAGpQ,MAAM,KAAK,KAAK1K,IAAI,qBAC9F+a,EAAiBH,EAASlV,QAAQoV,GAAkF,KAA3ElK,GAAqB0I,SAASwB,EAAGpQ,MAAM,KAAK,KAAK1K,IAAI,qBAElG+a,EAAeZ,SAASW,IACtBL,EAA6BpoB,KAAK,IAAIwoB,EAAgBC,GAAIlU,KAAK,KAAK,IAEzC,GAAzBmU,EAAe3X,QACjBqX,EAA6BpoB,KAAKwoB,EAAejU,KAAK,KACxD,IAKFkS,EAA0B2B,EAA6B/U,QAAQsV,GAAMA,EAAE/a,SAAS,OAEhFia,EAAqCC,SAASQ,IAC5C,IAAIC,EAAWD,EAAqBjQ,MAAM,KACtCmQ,EAAiBD,EAASlV,QAAQoV,GAAkF,KAA3ElK,GAAqB0I,SAASwB,EAAGpQ,MAAM,KAAK,KAAK1K,IAAI,qBAC9F+a,EAAiBH,EAASlV,QAAQoV,GAAkF,KAA3ElK,GAAqB0I,SAASwB,EAAGpQ,MAAM,KAAK,KAAK1K,IAAI,qBAClG+a,EAAeZ,SAASW,IACtBJ,EAA0CroB,KAAK,IAAIwoB,EAAgBC,GAAIlU,KAAK,KAAK,IAEtD,GAAzBmU,EAAe3X,QACjBsX,EAA0CroB,KAAKwoB,EAAejU,KAAK,KACrE,IAKFsT,EAAuCQ,EAA0ChV,QAAQsV,GAAMA,EAAE/a,SAAS,OAG1G,IAAIgb,EAAuC,GACvCC,EAAwC,GACxCC,EAA+B,GAG/BC,EAA6B,GAC7BC,EAA8B,GAC9BC,EAAmC,GACnCC,EAAoC,GACpCC,EAAqC,GAGrCC,EAA8B,GAClCtZ,QAAQC,IAAI,eACZD,QAAQC,IAAIwX,GAEZA,EAAYO,SAASuB,IACnB,IAAIC,EAAoC,GACpCC,EAAoC,GAEpCC,GAAqB,EAErBC,EAAgB,GAChBC,EAAoB,GACpBC,EAAsB,GAE1B9e,GACGwI,QAAQoL,GAAM,GAAGA,EAAE9Q,IAAI,WAAW8Q,EAAE9Q,IAAI,aAAe0b,IACvDvB,SAAStY,IACR,IAAIoa,EAA6D,MAArCpa,EAAY7B,IAAI,kBAA4B,GAAK6B,EAAY7B,IAAI,kBAAkBkc,OAC1GH,EAAkB9b,SAASgc,IAAmD,IAAzBA,GACxDF,EAAkB1pB,KAAK4pB,GAGzB,IAAIE,EAAoBta,EAAY7B,IAAI,cACpCmc,EAAkB7T,cAAcrI,SAAS,SAC3C4b,GAAqB,EAErBI,EAAwB,GAAGA,KAAyBpa,EAAYua,IAAI1R,MAAM,KAAK,MAG5EoR,EAAc7b,SAASgc,IAAmD,IAAzBA,GACpDH,EAAczpB,KAAK4pB,EACrB,IAEAH,EAAc1Y,OAAS,GAAkC,IAA7B2Y,EAAkB3Y,SAChD0Y,EAAczpB,KAAK,IACnB0pB,EAAkB1pB,KAAK,KAEzB2pB,EAAoB3pB,KAAKypB,GACzBE,EAAoB3pB,KAAK0pB,GAIzB,IAAIM,EAAsB,IAAIC,GAAeZ,EAAmBM,EAAqBH,GACrFJ,EAA4BppB,KAAKgqB,GAIjC,IAAIE,EAA6B,GAC7BC,EAA8B,GAE9BC,EAA0B,GAK9B,IAAK,IAAI3Y,EAAI,EAAGA,EAAIgY,EAAc1Y,OAAQU,IAAK,CAC7C,IAAI4Y,EAAeZ,EAAchY,GAE7B6Y,EAAyB,EACzBC,EAAyB,EACzBC,EAAgC,GAChCC,EAAiC,GACjCC,EAA6B,GAE7BC,EAA0C,GAC1CC,EAA0C,GAE9C,IAAK,IAAIC,EAAI,EAAGA,EAAIhgB,GAA8BkG,OAAQ8Z,IAAK,CAC7D,IAAIrb,EAAc3E,GAA8BggB,GAC5CC,EAActb,EAAY7B,IAAI,QAC9Bod,EAAgB9D,SAASzX,EAAY7B,IAAI,WACzC4a,EAAWuC,EAAY7c,WAAa,IAAM8c,EAAc9c,WAE5D,GAAIob,IAAsBd,EACxB,SAGF,IAAIqB,EAA6D,MAArCpa,EAAY7B,IAAI,kBAA4B,GAAK6B,EAAY7B,IAAI,kBAAkBkc,OAC/G,GAAIQ,EAAazc,SAAS,KAAM,CAE9B,IAAIod,EAAiBxb,EAAYua,IAAI1R,MAAM,KAAK,GAC5C4S,EAAqCrB,EAAwB,IAAMoB,EAAe/c,WACtF,GAAIoc,IAAiBY,EAKnB,SAJA,GAAIzb,EAAY7B,IAAI,cAAcsI,cAAcrI,SAAS,YACvD,QAKN,KAAO,CAEL,GAAIyc,IAAiBT,GAAmD,KAA1BA,EAK5C,SAJA,GAAIpa,EAAY7B,IAAI,cAAcsI,cAAcrI,SAAS,OACvD,QAKN,CACA,IAAIsd,EAAgB,IAAIjR,KAAKkR,GAAwB3b,EAAY7B,IAAI,YACjEyd,EAAc,IAAInR,KAAKkR,GAAwB3b,EAAY7B,IAAI,UAC/D0d,EAAY7b,EAAY7B,IAAI,SAC5B2d,EAAc9b,EAAY7B,IAAI,aAC9B4d,EAAkD,MAAjC/b,EAAY7B,IAAI,cAAwB,GAAK6B,EAAY7B,IAAI,cAC9E6d,EAAoD,MAA/Bhc,EAAY7B,IAAI,YAAsB,GAAK6B,EAAY7B,IAAI,YAChF8d,EAAiBD,EACjBE,EAAoB,GACxB,GAAIF,EAAmBG,cAAcC,QAAQ,QAAU,EAAG,CACxD,IAAIC,EAAcL,EAAmBnT,MAAM,OAC3CqT,EAAoBG,EAAY,GAChCJ,EAAiBI,EAAY,EAC/B,CAEA,IAAIC,EAAgBtc,EAAY7B,IAAI,eAEhCoe,EAAMvc,EAAY7B,IAAI,OACtBqe,EAAMxc,EAAY7B,IAAI,OAEtBse,EAAwC,MAA9Bzc,EAAY7B,IAAI,WAAqB,EAAI6B,EAAY7B,IAAI,WAGlE8d,GAA6C,KAA3BA,GAAgB5B,SACrC4B,EAAiBH,EACjBI,EAAoBH,EACpBU,EAAUD,GAGZ,MAAME,EAAQ1c,EAAY7B,IAAI,WAAY,EAE1C,IAAIwe,EAAkD,MAAnC3c,EAAY7B,IAAI,gBAA0B,EAAI6B,EAAY7B,IAAI,gBAC7Eye,EAA8C,MAAjC5c,EAAY7B,IAAI,cAAwB,EAAI6B,EAAY7B,IAAI,cACzE0e,EAA4C,MAAhC7c,EAAY7B,IAAI,aAAuB,EAAI6B,EAAY7B,IAAI,aACvE2e,EAAkD,MAAtC9c,EAAY7B,IAAI,mBAA6B,EAAI6B,EAAY7B,IAAI,mBAC7E4e,EAAoD,MAAvC/c,EAAY7B,IAAI,oBAA8B,GAAK6B,EAAY7B,IAAI,oBAChF6e,GAAa,GACbC,GAAS,EACTA,GAASH,IACXE,GAAaD,EACbE,GAASH,GAEPG,GAASJ,IACXG,GAAa,iBACbC,GAASJ,GAEPI,GAASL,IACXI,GAAa,UACbC,GAASL,GAEPK,GAASN,IACXK,GAAa,YACbC,GAASN,GASX,IAAIO,GAA2B,GAAKtf,KAAKoS,MAAMsM,EAAgB,KAC3Da,IAAmBX,GAAO,EAAIC,EAAUD,GAAOU,GAC/CE,GACFX,GAAW,IAAMC,EAAQF,EAAMU,IAA4BV,GAAO,EAAIC,EAAU7e,KAAKyf,IAAIb,EAAKC,IAAYS,GAC5GE,GAAkBA,IAAmB,EAAI,EAAIA,GAC7C,IAAIE,GAAuBF,GACvBG,GAAsBJ,GACtBZ,EAAM,IAERgB,GAAsBJ,GAAkB,GAAKvf,KAAKoS,MAAMuM,GACxDe,GAAuBF,IAAmBA,GAAkB,GAAKxf,KAAKoS,MAAMuM,GAAO,IAErFe,GAAuBA,IAAwB,EAAI,EAAIA,GACvD,IAAIE,GAAiB5f,KAAKyf,IAAIV,EAAcC,EAAYC,GACpDY,GAAeH,GAAuBE,GAC1CC,GAAeA,IAAgB,EAAI,EAAIA,GACvCzC,EAA8BxqB,KAAK+sB,IACnCtC,EAA+BzqB,KAAKitB,IACpCvC,EAA2B1qB,KAAKwP,GAKhC,IAAI0d,GAAgB,IAAIC,GACtB,EACA9V,GACA,EACAyT,EACAC,EACAV,EACAa,EACAE,EACAC,EACAC,EACAC,EACAS,EACAF,EACAY,GACAX,EACAgB,GACA,GACA,EACA,EACA,EACA,GAEEK,GAAgB,IAAID,GACtB,EACA9V,GACA,EACAyT,EACAC,EACAV,EACAa,EACAE,EACAC,EACAI,EACAC,EACAO,EACAH,EACAY,GACAX,EACAe,GACAN,GACAQ,GACAC,GACA,EACA,GAGFtC,EAAwC3qB,KAAKktB,IAC7CtC,EAAwC5qB,KAAKotB,GAC/C,CASA9C,EAAyBpL,GAAsBsL,GAC/CD,EAAyBrL,GAAsBuL,GAC/C,IAAK,IAAII,EAAI,EAAGA,EAAIF,EAAwC5Z,OAAQ8Z,IAAK,CACvE,IAAIwC,GAAU1C,EAAwCE,GAClDyC,GAAU1C,EAAwCC,GACtDwC,GAAQE,SAAWjD,EACnBgD,GAAQC,SAAWhD,EAEnBjB,EAAkCtpB,KAAKqtB,IACvC9D,EAAkCvpB,KAAKstB,GACzC,CAEApD,EAA2BlqB,KAAKsqB,GAChCH,EAA4BnqB,KAAKuqB,GACjCH,EAAwBpqB,KAAK0qB,EAC/B,CAEA,GAA4B,GAAxBjB,EAAc1Y,OAAa,CACzBsZ,EAAe,GAEfC,EAAyB,EACzBC,EAAyB,EACzBC,EAAgC,GAChCC,EAAiC,GACjCC,EAA6B,GAE7BC,EAA0C,GAC1CC,EAA0C,GAE9C,IAAK,IAAIC,EAAI,EAAGA,EAAIhgB,GAA8BkG,OAAQ8Z,IAAK,CACzDrb,EAAc3E,GAA8BggB,GAC5CC,EAActb,EAAY7B,IAAI,QAC9Bod,EAAgB9D,SAASzX,EAAY7B,IAAI,WACzC4a,EAAWuC,EAAY7c,WAAa,IAAM8c,EAAc9c,WAE5D,GAAIob,IAAsBd,EAA1B,CAIIqB,EAA6D,MAArCpa,EAAY7B,IAAI,kBAA4B,GAAK6B,EAAY7B,IAAI,kBAAkBkc,OAC/G,GAAIQ,IAAiBT,GAAmD,KAA1BA,EAA8B,CACtEsB,EAAgB,IAAIjR,KAAKkR,GAAwB3b,EAAY7B,IAAI,YACjEyd,EAAc,IAAInR,KAAKkR,GAAwB3b,EAAY7B,IAAI,UAC/D0d,EAAY7b,EAAY7B,IAAI,SAC5B2d,EAAc9b,EAAY7B,IAAI,aAC9B4d,EAAkD,MAAjC/b,EAAY7B,IAAI,cAAwB,GAAK6B,EAAY7B,IAAI,cAC9E6d,EAAoD,MAA/Bhc,EAAY7B,IAAI,YAAsB,GAAK6B,EAAY7B,IAAI,YAChF8d,EAAiBD,EACjBE,EAAoB,GACxB,GAAIF,EAAmBG,cAAcC,QAAQ,QAAU,EAAG,CACpDC,EAAcL,EAAmBnT,MAAM,OAC3CqT,EAAoBG,EAAY,GAChCJ,EAAiBI,EAAY,EAC/B,CAEIC,EAAgBtc,EAAY7B,IAAI,eAEhCoe,EAAMvc,EAAY7B,IAAI,OACtBqe,EAAMxc,EAAY7B,IAAI,OAEtBse,EAAwC,MAA9Bzc,EAAY7B,IAAI,WAAqB,EAAI6B,EAAY7B,IAAI,WAElE8d,GAA6C,KAA3BA,GAAgB5B,SACrC4B,EAAiBH,EACjBI,EAAoBH,EACpBU,EAAUD,GAGZ,MAAME,EAAQ1c,EAAY7B,IAAI,WAAY,EAEtCwe,EAAkD,MAAnC3c,EAAY7B,IAAI,gBAA0B,EAAI6B,EAAY7B,IAAI,gBAC7Eye,EAA8C,MAAjC5c,EAAY7B,IAAI,cAAwB,EAAI6B,EAAY7B,IAAI,cACzE0e,EAA4C,MAAhC7c,EAAY7B,IAAI,aAAuB,EAAI6B,EAAY7B,IAAI,aACvE2e,EAAkD,MAAtC9c,EAAY7B,IAAI,mBAA6B,EAAI6B,EAAY7B,IAAI,mBAC7E4e,EAAoD,MAAvC/c,EAAY7B,IAAI,oBAA8B,GAAK6B,EAAY7B,IAAI,oBAChF6e,GAAa,GACbC,GAAS,EACTA,GAASH,IACXE,GAAaD,EACbE,GAASH,GAEPG,GAASJ,IACXG,GAAa,iBACbC,GAASJ,GAEPI,GAASL,IACXI,GAAa,UACbC,GAASL,GAEPK,GAASN,IACXK,GAAa,YACbC,GAASN,GAEPO,GAA2B,GAAKtf,KAAKoS,MAAMsM,EAAgB,KAC3Da,IAAmBX,GAAO,EAAIC,EAAUD,GAAOU,GAC/CE,GACFX,GAAW,IAAMC,EAAQF,EAAMU,IAA4BV,GAAO,EAAIC,EAAU7e,KAAKyf,IAAIb,EAAKC,IAAYS,GAC5GE,GAAkBA,IAAmB,EAAI,EAAIA,GACzCE,GAAuBF,GACvBG,GAAsBJ,GACtBZ,EAAM,IAERgB,GAAsBJ,GAAkB,GAAKvf,KAAKoS,MAAMuM,GACxDe,GAAuBF,IAAmBA,GAAkB,GAAKxf,KAAKoS,MAAMuM,GAAO,IAErFe,GAAuBA,IAAwB,EAAI,EAAIA,GACnDE,GAAiB5f,KAAKyf,IAAIV,EAAcC,EAAYC,EAAWC,GAC/DW,GAAeH,GAAuBE,GAC1CC,GAAeA,IAAgB,EAAI,EAAIA,GACvCzC,EAA8BxqB,KAAK+sB,IACnCtC,EAA+BzqB,KAAKitB,IACpCvC,EAA2B1qB,KAAKwP,GAG5B0d,GAAgB,IAAIC,GACtB,EACA9V,GACA,EACAyT,EACAC,EACAnB,EACAsB,EACAE,EACAC,EACAC,EACAC,EACAS,EACAF,EACAY,GACAX,EACAgB,GACA,GACA,EACA,EACA,EACA,GAEEK,GAAgB,IAAID,GACtB,EACA9V,GACA,EACAyT,EACAC,EACAnB,EACAsB,EACAE,EACAC,EACAI,EACAC,EACAO,EACAH,EACAY,GACAX,EACAe,GACAN,GACAQ,GACAC,GACA,EACA,GAEFtC,EAAwC3qB,KAAKktB,IAC7CtC,EAAwC5qB,KAAKotB,GAC/C,CA7HA,CA8HF,CAKA9C,EAAyBpL,GAAsBsL,GAC/CD,EAAyBrL,GAAsBuL,GAC/C,IAAK,IAAII,EAAI,EAAGA,EAAIF,EAAwC5Z,OAAQ8Z,IAAK,CACnEwC,GAAU1C,EAAwCE,GAClDyC,GAAU1C,EAAwCC,GACtDwC,GAAQE,SAAWjD,EACnBgD,GAAQC,SAAWhD,EAEnBjB,EAAkCtpB,KAAKqtB,IACvC9D,EAAkCvpB,KAAKstB,GACzC,CAEApD,EAA2BlqB,KAAKsqB,GAChCH,EAA4BnqB,KAAKuqB,GACjCH,EAAwBpqB,KAAK0qB,EAC/B,CAEA,IAAI8C,GAAgC,GAChCC,GAAiC,GACjCC,GAA+B,EAC/BC,GAAgC,EAChCC,GAA0B,GAC1BC,GAAgC,GAChCC,GAAiC,GACjCC,GAA2B,GAE/B,GAAIvE,EACF,IAAK,IAAI/X,EAAI,EAAGA,EAAIgY,EAAc1Y,OAAQU,IAAK,CAC7C,IAAIuc,GAAsBvE,EAAchY,GACpCwc,GAAmC/D,EAA2BzY,GAC9Dyc,GAAoC/D,EAA4B1Y,GAChE0c,GAA8B/D,EAAwB3Y,GAEtD2c,GAAe,IAAInE,GAAe+D,GAAqBC,GAAkC,MACzFI,GAAgB,IAAIpE,GAAe+D,GAAqBE,GAAmC,MAC3FI,GAAa,IAAIrE,GAAe+D,GAAqBG,GAA6B,MAEtFN,GAA8B7tB,KAAKouB,IACnCN,GAA+B9tB,KAAKquB,IACpCN,GAAyB/tB,KAAKsuB,GAChC,MAEA,IAAK,IAAI7c,EAAI,EAAGA,EAAIgY,EAAc1Y,OAAQU,IAAK,CACzCwc,GAAmC/D,EAA2BzY,GAC9Dyc,GAAoC/D,EAA4B1Y,GAChE0c,GAA8B/D,EAAwB3Y,GAEtDic,GAA+BO,KACjCP,GAA+BO,GAC/BT,GAAgC/D,EAAchY,GAC9Cmc,GAA0BO,IAExBR,GAAgCO,KAClCP,GAAgCO,GAChCT,GAAiChE,EAAchY,GAC/Cmc,GAA0BO,GAE9B,CAK2B,IAAzB1E,EAAc1Y,SAChB2c,GAA+BxD,EAA2B,GAC1DsD,GAAgC,GAChCG,GAAgCxD,EAA4B,GAC5DsD,GAAiC,GACjCG,GAA0BxD,EAAwB,IAGhDZ,GACFT,EAA2B/oB,KAAK6tB,IAChC5E,EAAiCjpB,KAAK,KACtCgpB,EAA4BhpB,KAAK8tB,IACjC5E,EAAkClpB,KAAK,KACvCmpB,EAAmCnpB,KAAK+tB,MAExChF,EAA2B/oB,KAAK0tB,IAChCzE,EAAiCjpB,KAAKwtB,IACtCxE,EAA4BhpB,KAAK2tB,IACjCzE,EAAkClpB,KAAKytB,IACvCtE,EAAmCnpB,KAAK4tB,KAG1C,IAAK,IAAInc,EAAI,EAAGA,EAAI6X,EAAkCvY,OAAQU,IAAK,CAC7D4b,GAAU/D,EAAkC7X,GAC5C6b,GAAU/D,EAAkC9X,GAC3C+X,IACH6D,GAAQkB,WAAab,GACrBJ,GAAQiB,WAAaZ,IAEvB/E,EAAqC5oB,KAAKqtB,IAC1CxE,EAAsC7oB,KAAKstB,IAC3CxE,EAA6B9oB,KAAKqtB,IAClCvE,EAA6B9oB,KAAKstB,GACpC,KAMF,IAAIkB,EAAoC,GACpCC,EAAqC,GACrCC,EAA4B,GAChCxjB,GAAwB,GACxBjB,GAAqB,GACrBoB,GAAsB,CAAC,EAOvB,IAAIsjB,EAAU,IAAI,IAAInH,IAAID,EAAYrkB,KAAK0rB,GAAM3H,SAAS2H,EAAEvW,MAAM,KAAK,QAIvEzN,GAAmCkd,SAAS1H,IAC1CuO,EAAQ7G,SAAS+G,IACf,IAAIlO,EAAcpC,GAAqBsQ,GACvC,GAAIld,GAAYyO,EAAcO,GAG5B,OAFoB,OACpBP,EAAa0O,QAAS,GAGxB1O,EAAa0O,QAAS,CAAK,GAC3B,IAGJlkB,GACGyI,QAAQoL,IAAmB,IAAbA,EAAEqQ,SAChBhH,SAAS1H,IACR,IAAI2O,EAAiB3O,EAAazS,IAAI,MACtCghB,EAAQ7G,SAAS+G,IACf,GAAIxjB,GAAoB0jB,GACtB,GAAK1jB,GAAoB0jB,GAAgBF,GAGvC,IAAIxO,EAAgBhV,GAAoB0jB,GAAgBF,GAAkBxO,cACtEK,EAAmBrV,GAAoB0jB,GAAgBF,GAAkBnO,iBACzEJ,EAAWjV,GAAoB0jB,GAAgBF,GAAkBvO,cAJrE,IAAI,cAAED,EAAa,iBAAEK,EAAgB,SAAEJ,GAAaJ,GAAgB2O,EAAkBzO,QAOxF,IAAI,cAAEC,EAAa,iBAAEK,EAAgB,SAAEJ,GAAaJ,GAAgB2O,EAAkBzO,GAQnF/U,GAAoB0jB,KACvB1jB,GAAoB0jB,GAAkB,CACpCrV,WAAY0G,EAAazS,IAAI,cAC7BqhB,QAAS5O,EAAazS,IAAI,WAAayS,EAAazS,IAAI,WAAa,GACrEshB,aAAc7O,EAAazS,IAAI,aAAeyS,EAAazS,IAAI,aAAe,KAGlFtC,GAAoB0jB,GAAgBF,GAAoB,CACtDxO,cAAeA,EACfK,iBAAkBA,EAClBJ,SAAUA,GAEPjV,GAAoB0jB,GAAgBG,iBAA+B,KAAZ5O,IAC1DjV,GAAoB0jB,GAAgBG,gBAAkBxO,EACtDrV,GAAoB0jB,GAAgBI,YAAcN,GAEhDxjB,GAAoB0jB,GAAgBG,gBAAkBxO,GAAgC,KAAZJ,IAC5EjV,GAAoB0jB,GAAgBG,gBAAkBxO,EACtDrV,GAAoB0jB,GAAgBI,YAAcN,EACpD,GACA,IAON,IAAIO,EAAsC,GACtCC,EAAuC,GACvCC,EAA2C,GAC3CC,EAAyC,GACzCC,EAA0C,GAC1CC,EAA6C,GAC7CC,EAA6C,GAC7CC,EAA2C,GAC3CC,EAA2C,GAE/ChlB,GACGyI,QAAQoL,IAAmB,IAAbA,EAAEqQ,SAChBhH,SAAS1H,IAGRgP,EAAsC,GACtCC,EAAuC,GACvCC,EAA2C,GAC3CC,EAAyC,GACzCC,EAA0C,GAC1CC,EAA6C,GAC7CC,EAA6C,GAC7CC,EAA2C,GAC3CC,EAA2C,GAC3C,IAAIC,EAAwB,EACxBC,EAAoB1P,EAAazS,IAAI,cACrCe,EAAuB0R,EAAazS,IAAI,iBAAmByS,EAAazS,IAAI,iBAAmB,GAC/FoiB,EAA4B3P,EAAazS,IAAI,sBAAwByS,EAAazS,IAAI,sBAAwB,KAC9GqiB,EAAyB5P,EAAazS,IAAI,UAE1CsiB,EAAiB7P,EAAazS,IAAI,WAAayS,EAAazS,IAAI,WAAa,GAC7EuiB,EAAsB9P,EAAazS,IAAI,aAAeyS,EAAazS,IAAI,aAAe,GACtFohB,EAAiB3O,EAAazS,IAAI,MAClCwiB,EAA6B/iB,KAAKgjB,MAAMJ,EAAyBH,GAErE,GAAIE,EAA2B,CAC7B,IAAIM,EAAmBN,EAA0B1X,MAAM,KAEvDgY,EAAiBvI,SAASwI,IACxB,IAAIC,EAAaD,EAAcjY,MAAM,MACjCmY,EAAaC,WAAWF,EAAW,IACnCG,EAAYH,EAAW,GAAGlY,MAAM,KAAK,GACrCsY,EAAaJ,EAAW,GAAGlY,MAAM,KAAK,GAAGA,MAAM,OAC/CuY,EAAiB,IAAI3W,KAAK0W,EAAW,IACrCE,EAAe,IAAI5W,KAAK0W,EAAW,IACvCvB,EAAoCpvB,KAAK0wB,GACzCrB,EAAqCrvB,KAAKwwB,GAC1ClB,EAAyCtvB,KAAK4wB,GAC9CrB,EAAuCvvB,KAAK6wB,GAC5CrB,EAAwCxvB,KAAKswB,EAAc,GAE/D,CAEA,IAAIQ,EAAe,IAAI7G,GAAe6F,EAAmBE,EAAwB,MACjF/lB,GAAmBjK,KAAK8wB,GAExB,IAAIC,EAA2B,CAAC,EAC5BC,EAA4B,CAAC,EAE7BC,EAA6C,GAC7CC,EAA8C,GAE9CC,EAAa,GACjB,IAAK,IAAI1f,EAAI,EAAGA,EAAI8V,EAAYxW,OAAQU,IAAK,CAC3C,IAAI4X,EAAoB9B,EAAY9V,GAChCod,EAAmB5H,SAASoC,EAAkBhR,MAAM,KAAK,IAGzDgI,GAFgB4G,SAASoC,EAAkBhR,MAAM,KAAK,IAEtChN,GAAoB0jB,GAAgBF,GAAkBxO,eACtEK,EAAmBrV,GAAoB0jB,GAAgBF,GAAkBnO,iBAUzE0Q,GANF/Q,EAAc9N,iBAMiB,IAAI,KAAW8N,EAAc9N,iBAAkBhK,KAI5E8oB,IAHyB,SAAUD,GAGf,CAEtB7oB,GACA6X,EAAa7P,cAAcgC,mBAEzB+e,EAAwB,IAAI,KAAWD,GAmBvCE,IAlBoB,SAAUD,GAkBV,IAAI,KAAQ,CAClC9e,SAAU6N,EACV1E,UAAWtE,EACXqC,WAAYoW,EACZ0B,WAAYnI,EACZ2F,QAASiB,EACTwB,SAAU/Q,EACVgR,OAAQ,WACRzY,gBAAiBsF,GAAqBsQ,GAAkBlhB,IAAI,sBAyD9D,GApDAzC,GAAsBlL,KAAKuxB,GAqDzBlmB,GAAoB0jB,GAAgBI,aAAeN,GACc,KAAjEtQ,GAAqBsQ,GAAkBlhB,IAAI,mBAF7C,CAQA,IAAIgkB,EAAiCvI,EAA4B3X,GAC7DmgB,EAAwCD,EAA+BD,OAE3E,GAAIE,EAAuC,CACzC,IAAI/D,EAAgC9E,EAA2BtX,GAC3Dqc,EAAiC9E,EAA4BvX,GAC7Dsc,EAA2B5E,EAAmC1X,GAE9Dic,EAA+B,EAE/BC,EAAgC,EAGhCkE,EAA0B,GAC1BC,GAA0B,GAE1BC,GAAgB,KAChBC,GAAgB,KAEhBC,GAAuB,GACvBC,GAAuB,GAEvBC,GAAoBR,EAA+BS,KAAK,GAC5D,IAAK,IAAIvH,EAAI,EAAGA,EAAIsH,GAAkBphB,OAAQ8Z,IAAK,CACjD,IAAIwH,GAAsBF,GAAkBtH,GAExCyH,GAAuB,GACvBC,GAAuB,GAEvBC,GAAiB,GACjBC,GAAiB,GAKrB,IAAK,IAAIC,EAAI,EAAGA,EAAI7E,EAA8B9c,OAAQ2hB,IAAK,CAC7D,IAAItE,GAAeP,EAA8B6E,GAC7CrE,GAAgBP,EAA+B4E,GAC/CpE,GAAaP,EAAyB2E,GACtC1E,GAAsBI,GAAauE,IACnCC,GAAoCxE,GAAagE,KACjDS,GAAqCxE,GAAc+D,KACnDU,GAA6BxE,GAAW8D,KAC5C,GAAIpE,GAAoBpgB,SAASykB,IAAsB,CACrD,IAAIU,GAA0B,EAC9B,GAAI/E,GAAoBpgB,SAAS,KAAM,CAErC,IAAIolB,GAAchF,GAAoB3V,MAAM,KAAK,GAC7C4a,GAAgB,KACpB,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,GAA2B/hB,OAAQmiB,IAAK,CAC1D,IAAIC,GAAaL,GAA2BI,GAC5C,GAAIC,GAAWpJ,IAAInc,SAASolB,IAAc,CACxCC,GAAgBE,GAChB,KACF,CACF,CAGA,IAAIC,GAAaH,GAAc1iB,cAC3B8iB,GAAwB,CAACD,GAAW7gB,iBAAkB6N,EAAa7P,cAAcgC,kBACjF+gB,GAAoB,IAAI,KAAWD,IAEnCE,GAAgBD,GAAkBjP,YAEtC0O,GAA0BQ,EAG5B,MACER,GAA0BrS,EAI5B,IAAI8S,GAAmB,EACnBC,GAAgBrmB,KAAKkS,IAAIlS,KAAKkS,IAAIyT,GAAyB,GAAK3lB,KAAKkS,IAAIkU,GAAkB,GAAI,IAC/FE,IAA4B,GAAK,GAAKtmB,KAAKoS,MAAMiU,IAAiB,GAClEE,GAAmB,EAEnBC,GACFhB,GAAoCc,GAA2BC,GAAmB,EAC9Ef,GAAoCc,GAA2BC,GAC/D,EACFE,GACFhB,GAAqCa,GAA2BC,GAAmB,EAC/Ed,GAAqCa,GAA2BC,GAChE,EAGNrB,GAAqBtyB,KAAK4zB,IAC1BrB,GAAqBvyB,KAAK6zB,IAK1B9B,GAAgB,IAAI+B,GAClB,EACAzc,GACA,EACAyY,EACAI,EACAnB,EACAkB,EACA5G,EACA2E,GACA4E,GACAG,GACAW,GACAC,GACAC,GACA,EACA,EACAllB,EACA,GACA,EACA,EACAyhB,GAEF6B,GAAgB,IAAI8B,GAClB,EACAzc,GACA,EACAyY,EACAI,EACAnB,EACAkB,EACA5G,EACA2E,GACA6E,GACAE,GACAW,GACAC,GACAE,GACA,EACA,EACAnlB,EACA,GACA,EACA,EACAyhB,GAIFqC,GAAexyB,KAAK+xB,IACpBU,GAAezyB,KAAKgyB,GACtB,CACF,CAEA,IAAI+B,GAA6B7U,GAAsBoT,IACnD0B,GAA6B9U,GAAsBqT,IACvDV,EAAwB7xB,KAAK+zB,IAC7BjC,GAAwB9xB,KAAKg0B,IAK7B,IAAK,IAAItB,EAAI,EAAGA,EAAIF,GAAezhB,OAAQ2hB,IAAK,CAC9C,IAAIuB,GAA2BzB,GAAeE,GAC1CwB,GAA2BzB,GAAeC,GAC9CuB,GAAyBE,SAAWJ,GACpCG,GAAyBC,SAAWH,GAEpC/B,GAAqBjyB,KAAKi0B,IAC1B/B,GAAqBlyB,KAAKk0B,GAC5B,CACF,CAGA,IAAK,IAAIrJ,EAAI,EAAGA,EAAIsH,GAAkBphB,OAAQ8Z,IAAK,CACjD,IAAIoD,GAAmC4D,EAAwBhH,GAC3DqD,GAAoC4D,GAAwBjH,GAE5D6C,EAA+BO,KACjCP,EAA+BO,GACCkE,GAAkBtH,IAEhD8C,EAAgCO,KAClCP,EAAgCO,GACCiE,GAAkBtH,GAEvD,CAEAkG,EAAyB1H,GAAqBqE,EAC9CsD,EAA0B3H,GAAqBsE,EAG/C,IAAK,IAAI9C,EAAI,EAAGA,EAAIoH,GAAqBlhB,OAAQ8Z,IAAK,CAChDoJ,GAA2BhC,GAAqBpH,GAChDqJ,GAA2BhC,GAAqBrH,GACpDoJ,GAAyBG,IAAM1G,EAC/BwG,GAAyBE,IAAMzG,EAE/BsD,EAA2CjxB,KAAKi0B,IAChD/C,EAA4ClxB,KAAKk0B,GACnD,CAGA,IAAIG,GAAkB,IAAIC,GAAsB,EAAGjL,EAAmBqE,GACtEyD,EAAWnxB,KAAKq0B,IAChBA,GAAkB,IAAIC,GAAsB,EAAGjL,EAAmBsE,GAClEwD,EAAWnxB,KAAKq0B,GAClB,KAAO,CACL,IAAIE,GAAa,kBAEb9C,GAAW,EACX8C,GAAWte,cAAc2V,QAAQ,aAAe,IAElD6F,GAAW/Q,GAST8S,GAAmB,EACnBC,GAAgBrmB,KAAKkS,IAAIlS,KAAKkS,IAAImS,GAAU,GAAKrkB,KAAKkS,IAAIkU,GAAkB,GAAI,IAChFE,IAA4B,GAAK,GAAKtmB,KAAKoS,MAAMiU,IAAiB,GAClEE,GAAmB,EAHvB,IAMIa,GAAqBzL,EAA2BtX,GAChDgjB,GAAsBzL,EAA4BvX,GAClDmiB,GACFY,GAAqBd,GAA2BC,GAAmB,EAC/Da,GAAqBd,GAA2BC,GAChD,EACFE,GACFY,GAAsBf,GAA2BC,GAAmB,EAChEc,GAAsBf,GAA2BC,GACjD,EAEN5C,EAAyB1H,GAAqBuK,GAC9C5C,EAA0B3H,GAAqBwK,GAG3C9B,GAAgB,IAAI+B,GACtB,EACAzc,GACA,EACAyY,EACAI,EACAnB,EACAkB,EACA5G,EACA,GACAmL,GACA/C,GACAiC,GACAC,GACA,EACA,EACAC,GACAllB,EACA,GACA,EACA,EACAyhB,GAEE6B,GAAgB,IAAI8B,GACtB,EACAzc,GACA,EACAyY,EACAI,EACAnB,EACAkB,EACA5G,EACA,GACAoL,GACAhD,GACAiC,GACAC,GACA,EACA,EACAE,GACAnlB,EACA,GACA,EACA,EACAyhB,GAEFc,EAA2CjxB,KAAK+xB,IAChDb,EAA4ClxB,KAAKgyB,IAG7CqC,GAAkB,IAAIC,GAAsB,EAAGjL,EAAmBuK,IACtEzC,EAAWnxB,KAAKq0B,IAChBA,GAAkB,IAAIC,GAAsB,EAAGjL,EAAmBwK,IAClE1C,EAAWnxB,KAAKq0B,GAClB,CApSA,CAqSF,CAGA,IAAIK,GAAmC,GACnCC,GAAoC,GAIxC,GAAIzqB,GAAmB6G,OAAS,EAQ9B,IAAK,IAAIU,EAAI,EAAGA,EAAIoW,EAAqC9W,OAAQU,IAAK,CACpE,IAGImjB,GAA0B/M,EAAqCpW,GAQ/DojB,GAAwBD,GAAwBvc,MAAM,KAG1D,IACEwc,GAAsBC,MAAMrM,IAC1B,IAAIoG,EAAmB5H,SAASwB,EAAGpQ,MAAM,KAAK,IAC9C,OACEhN,GAAoB0jB,GAAgBI,aAAeN,GACc,KAAjEtQ,GAAqBsQ,GAAkBlhB,IAAI,kBAC5C,IANL,CAYA,IAAIonB,GAAmC,GACnCC,GAAoC,GACpCC,GAA0C,GAC1CC,GAA6C,GACjD,IAAK,IAAIxC,EAAI,EAAGA,EAAImC,GAAsB9jB,OAAQ2hB,IAAK,CACrD,IAAIyC,GAAkBN,GAAsBnC,GAQxC0C,GAAgC,EAChCC,GAAiC,EACjCC,IAAgB,EAGpB,GAAIH,GAAgBvnB,SAAS,KAAM,EAEZ,EACrB,IAAI2nB,GAAqBJ,GAAgB9c,MAAM,KAC3C2P,GAAYf,SAASsO,GAAmB,IACxCC,GAAcD,GAAmB,GAMrC,IAAK,IAAIE,EAAI,EAAGA,EAAIrrB,GAAoC2G,OAAQ0kB,IAAK,CACnE,IAAIC,GAAetrB,GAAoCqrB,GAqCvD,GAdEC,GAAare,YAAc2Q,IAC3B0N,GAAaC,qBAAuBH,IACpCE,GAAahc,aAAeoW,IACC,IAA7B4F,GAAaE,YAEbR,GAAgCM,GAAatB,IAE7CsB,GAAare,YAAc2Q,IAC3B0N,GAAaC,qBAAuBH,IACpCE,GAAahc,aAAeoW,IACC,IAA7B4F,GAAaE,cAEbP,GAAiCK,GAAatB,KAE5CgB,GAAgC,GAAKC,GAAiC,EAAG,CAC3EH,GAA2Cl1B,KAAKm1B,IAChDG,IAAgB,GACD,EACf,KACF,CACF,CAUF,MAEEA,IAAgB,EAChBJ,GAA2Cl1B,KAAKm1B,IAYhDC,GAAgCrE,EAAyBoE,IACzDE,GAAiCrE,EAA0BmE,IAOzDG,KACFP,GAAiC/0B,KAAKo1B,IACtCJ,GAAkCh1B,KAAKq1B,IAE3C,CAMAJ,GAA0CC,GAA2C3gB,KAAK,KAE1F,IAAIshB,GAA8B3W,GAAsB6V,IACpDe,GAA+B5W,GAAsB8V,IAEzDN,GAAiC10B,KAAK61B,IACtClB,GAAkC30B,KAAK81B,IAKnC/D,GAAgB,IAAI+B,GACtB,EACAzc,GACA,EACAyY,EACAI,EACAnB,EACAkB,EACAgF,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACAY,GACAnnB,EACA,GACA,EACA,EACAyhB,GAEE6B,GAAgB,IAAI8B,GACtB,EACAzc,GACA,EACAyY,EACAI,EACAnB,EACAkB,EACAgF,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACAa,GACApnB,EACA,GACA,EACA,EACAyhB,GAEFc,EAA2CjxB,KAAK+xB,IAChDb,EAA4ClxB,KAAKgyB,IAI7CqC,GAAkB,IAAIC,GAAsB,EAAGW,GAAyCY,IAC5F1E,EAAWnxB,KAAKq0B,IAEhBA,GAAkB,IAAIC,GAAsB,EAAGW,GAAyCa,IACxF3E,EAAWnxB,KAAKq0B,GAxLhB,CAyLF,MAKA,IAAK,IAAI5iB,EAAI,EAAGA,EAAIgV,EAAwB1V,OAAQU,IAAK,CACnDmjB,GAA0BnO,EAAwBhV,GAClDojB,GAAwBD,GAAwBvc,MAAM,KACtD0c,GAAmC,GACnCC,GAAoC,GAGxC,GACEH,GAAsBC,MAAMrM,IAC1B,IAAIoG,EAAmB5H,SAASwB,EAAGpQ,MAAM,KAAK,IAC9C,OACEhN,GAAoB0jB,GAAgBI,aAAeN,GACc,KAAjEtQ,GAAqBsQ,GAAkBlhB,IAAI,kBAC5C,IAGC5E,GAAoB7F,KAAK7C,GAAOA,EAAG4N,aAAYL,SAASmhB,EAAe9gB,aACzE6B,QAAQC,IAAI,mBAVhB,CAeA,IAAK,IAAI2iB,EAAI,EAAGA,EAAImC,GAAsB9jB,OAAQ2hB,IAAK,CACjD8C,GAAcX,GAAsBnC,GAQpC0C,GAAgCrE,EAAyByE,IACzDH,GAAiCrE,EAA0BwE,IAE/DT,GAAiC/0B,KAAKo1B,IACtCJ,GAAkCh1B,KAAKq1B,GACzC,CAEIQ,GAA8B3W,GAAsB6V,IACpDe,GAA+B5W,GAAsB8V,IAEzDN,GAAiC10B,KAAK61B,IACtClB,GAAkC30B,KAAK81B,IAGnC/D,GAAgB,IAAI+B,GACtB,EACAzc,GACA,EACAyY,EACAI,EACAnB,EACAkB,EACA2E,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACAiB,GACAnnB,EACA,GACA,EACA,EACAyhB,GAEE6B,GAAgB,IAAI8B,GACtB,EACAzc,GACA,EACAyY,EACAI,EACAnB,EACAkB,EACA2E,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACAkB,GACApnB,EACA,GACA,EACA,EACAyhB,GAEFc,EAA2CjxB,KAAK+xB,IAChDb,EAA4ClxB,KAAKgyB,IAG7CqC,GAAkB,IAAIC,GAAsB,EAAGM,GAAyBiB,IAC5E1E,EAAWnxB,KAAKq0B,IAChBA,GAAkB,IAAIC,GAAsB,EAAGM,GAAyBkB,IACxE3E,EAAWnxB,KAAKq0B,GA9EhB,CA+EF,CAIF,IAAIzlB,GAAiB,EAEjBD,GAAkB,EAEtBlV,OAAOs8B,KAAKhF,GAA0BjJ,SAAS6K,IAC7C,IAAIqD,EAASjF,EAAyB4B,GAClC/jB,GAAiBonB,IACnBpnB,GAAiBonB,EACUrD,EAC7B,IAEF,IAAK,IAAIlhB,EAAI,EAAGA,EAAIijB,GAAiC3jB,OAAQU,IAAK,CAChE,IAAIukB,GAAStB,GAAiCjjB,GAC1C7C,GAAiBonB,KACnBpnB,GAAiBonB,GACUvP,EAAwBhV,GAEvD,CAEAhY,OAAOs8B,KAAK/E,GAA2BlJ,SAAS6K,IAC9C,IAAIqD,EAAShF,EAA0B2B,GACnChkB,GAAkBqnB,IACpBrnB,GAAkBqnB,EACUrD,EAC9B,IAGF,IAAK,IAAIlhB,EAAI,EAAGA,EAAIkjB,GAAkC5jB,OAAQU,IAAK,CAC7DukB,GAASrB,GAAkCljB,GAC3C9C,GAAkBqnB,KACpBrnB,GAAkBqnB,GACUvP,EAAwBhV,GAExD,CAGA,IAAIwkB,GAAoB,IACpBC,GAAkB,IACtB,IAAK,IAAIzkB,EAAI,EAAGA,EAAI4d,EAAqCte,OAAQU,IAAK,CACpD2d,EAAoC3d,GAApD,IACI+e,GAAanB,EAAqC5d,GAGlD6e,IAFiBhB,EAAyC7d,GAC3C8d,EAAuC9d,GACtC+d,EAAwC/d,IAI5Dge,EAA2CzvB,KAAKswB,IAC5C2F,GAAoBzF,KACtBd,EAA6CY,GAC7C2F,GAAoBzF,IAKtBb,EAAyC3vB,KAAKswB,IAC1C4F,GAAkB1F,KACpBZ,EAA2CU,GAC3C4F,GAAkB1F,GAGtB,CAGA,IAAK,IAAI/e,EAAI,EAAGA,EAAIwf,EAA2ClgB,OAAQU,IAAK,CACtEsgB,GAAgBd,EAA2Cxf,GAC/DsgB,GAAcoE,kBAAoBvnB,GAClCmjB,GAAcqE,yBAA2B3G,EAA2Clb,KAAK,KACzFwd,GAAcsE,4BAA8B3G,EAE5ClB,EAAkCxuB,KAAK+xB,IACvCrD,EAA0B1uB,KAAK+xB,GACjC,CAEA,IAAK,IAAItgB,EAAI,EAAGA,EAAIyf,EAA4CngB,OAAQU,IAAK,CACvEugB,GAAgBd,EAA4Czf,GAChEugB,GAAcmE,kBAAoBxnB,GAClCqjB,GAAcoE,yBAA2BzG,EAAyCpb,KAAK,KACvFyd,GAAcqE,4BAA8BzG,EAC5CoC,GAAcsE,+BAAiClW,EAAazS,IAAI,wBAA0ByS,EAAazS,IAAI,wBAA0B,EAErI8gB,EAAmCzuB,KAAKgyB,IACxCtD,EAA0B1uB,KAAKgyB,GACjC,CAwDA5R,EAAa/P,IAAI,WAAYzB,IAC7BwR,EAAa/P,IAAI,cAAe1B,IAChCyR,EAAa/P,IAAI,aAAcqH,KAAKC,UAAUwZ,IAQ9C,IAAIoF,IAAe,EAwCnB,GAvCI5nB,GAAkB,GAAKA,KAAoBC,KAC7C2nB,IAAe,GAWbA,GACEnpB,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMF,KAEhDyR,EAAavF,SAAS3M,IAGtBsoB,GACE/H,EACA/f,EACAyhB,EACAH,EACAH,IAGFzP,EAAavF,SAASpN,IAIpBL,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMD,IAEhDwR,EAAavF,SAAS9M,IAGtBqS,EAAavF,SAASpN,IAItB1E,GAAoBgI,OAAS,EAAG,CAClC,IAAI0lB,IAAoB,EACpBC,IAAa,EACjB,IAAK,IAAIjlB,EAAI,EAAGA,EAAI1I,GAAoBgI,OAAQU,IAAK,CACnD,IAAIklB,GAAW5tB,GAAoB0I,GAanC,GAViB,KAAbklB,KACFD,IAAa,GASXzP,SAAS8H,KAAoB9H,SAAS0P,IAAW,CACnDF,IAAoB,EACpB,KACF,CACF,CACKA,IAAsBC,IAEzBtW,EAAavF,SAASvO,GAE1B,CAYA6C,EAAUkG,YAAYxF,WAAWuQ,EAAa,IA4nBlD5Z,GAA6BkoB,EAG7B5e,QAAQC,IAAIxJ,IACRA,KACFA,GAAWqwB,qBAAuBlI,EAClC5e,QAAQC,IAAI,qDACZD,QAAQC,IAAIxJ,GAAWqwB,uBAEzBC,GAA4Bxf,EAAWyR,EAA8B4F,EAA2BpX,GAGhGwf,GAAmB5rB,IAEnB4E,QAAQC,IAAI,mBAGZlG,IAAqB,CACvB,CAqDA,SAAS2sB,GACP/H,EACA/f,EACAyhB,EACAH,EACA+G,GAEAjnB,QAAQC,IAAI,mCAGZ,IAAIinB,EAAsB,GACtBC,EAAuB,GACvBC,EAAc,GACdC,EAAgB,GAChBC,EAAqB,EAKzB,IAAK,IAAI7lB,EAAI,EAAGA,EAAIkd,EAAmC1d,OAAQQ,IAAK,CAClE,IAAI8lB,EAAuB5I,EAAmCld,GAE1Due,EAAoBuH,EAAqB3d,WACzC4d,EAAqBD,EAAqBzB,YAC1C2B,EAA4BF,EAAqB1B,mBAErD,IAA2B,IAAvB2B,GAA+BxH,IAAsB/lB,GACvD,GAAIwtB,EAA0B3pB,SAAS,KAAM,CAC3C,IAAI4pB,EAAe,IAAIvN,GAAesN,EAA2B,KAAM,MACvEP,EAAoBh3B,KAAKw3B,EAC3B,MACE,GAAIxtB,GAAyB4D,SAAS2pB,GAA4B,CAC5DC,EAAe,IAAIvN,GAAesN,EAA2B,KAAM,MACvEN,EAAqBj3B,KAAKw3B,GAC1B,IAAIC,EAAaJ,EAAqB9I,WAClCmJ,EAAqBL,EAAqB5F,SAC9C2F,EAAqBC,EAAqB5F,SAE1C,IAAIkG,EAAe,EACfC,EAAgBD,EAAeZ,EACnC,MAAOa,GAAiB5H,EAAwB,CAC9C,IAAIwD,EAAmBoE,EACnBnE,EAAgBrmB,KAAKkS,IAAIlS,KAAKkS,IAAIoY,EAAoB,GAAKtqB,KAAKkS,IAAIkU,EAAkB,GAAI,IAC1FE,GAA4B,GAAK,GAAKtmB,KAAKoS,MAAMiU,GAAiB,GAClEE,EAAmB,EACnBE,EACF4D,EAAa/D,EAA2BC,EAAmB,EAAI8D,EAAa/D,EAA2BC,EAAmB,EAExHkE,EAAqB,IAAI5N,GAAesN,EAA2BI,EAAc9D,GACrFqD,EAAYl3B,KAAK63B,GAEjBF,GAA8B,EAC9BC,EAAgBD,EAAeZ,CACjC,CACF,KAAO,CACL,IAAIe,EAAaT,EAAqBjD,IAClC2D,EAAqB,IAAI9N,GAAesN,EAA2B,KAAMO,GAC7EX,EAAcn3B,KAAK+3B,EACrB,CAGN,CASIJ,EAAe,EACfC,EAAgBD,EAAeZ,EADnC,IAEIiB,GAAa,EACjB,MAAOJ,GAAiB5H,EAAwB,CAC9C,IAAIiI,EAAgB,GAGpB,IAAK,IAAI1mB,EAAI,EAAGA,EAAI0lB,EAAqBlmB,OAAQQ,IAAK,CACpD,IAAI2mB,EAAcjB,EAAqB1lB,GACnC2V,EAAkBgR,EAAYvF,IAElC,IAAK,IAAIlhB,EAAI,EAAGA,EAAIylB,EAAYnmB,OAAQU,IAAK,CAC3C,IAAI0mB,EAAiBjB,EAAYzlB,GACjC,GAAI0mB,EAAexF,MAAQzL,GAAmBiR,EAAe/F,OAASuF,EAAc,CAClF,IAAIS,EAAe,IAAInO,GAAe/C,EAAiB,KAAMiR,EAAezG,QAC5EuG,EAAcj4B,KAAKo4B,EACrB,CACF,CACF,CAGA,IAAK,IAAI7mB,EAAI,EAAGA,EAAI4lB,EAAcpmB,OAAQQ,IAAK,CACzC6mB,EAAe,IAAInO,GAAekN,EAAc5lB,GAAGohB,IAAK,KAAMwE,EAAc5lB,GAAGmgB,QACnFuG,EAAcj4B,KAAKo4B,EACrB,CAGA,IAAIC,EAAgB,GACpB,IAAK,IAAI9mB,EAAI,EAAGA,EAAIylB,EAAoBjmB,OAAQQ,IAAK,CACnD,IAAI+mB,EAAqBtB,EAAoBzlB,GACzCgnB,EAAeD,EAAmB3F,IAAIta,MAAM,KAEhD,IAAK,IAAI5G,EAAI,EAAGA,EAAI8mB,EAAaxnB,OAAQU,IAAK,CACxCyV,EAAkBqR,EAAa9mB,GAEnC,IAAK,IAAIoZ,EAAI,EAAGA,EAAIoN,EAAclnB,OAAQ8Z,IAAK,CAC7C,IAAI2N,EAAeP,EAAcpN,GACjC,GAAI2N,EAAa7F,MAAQzL,EAAiB,CACxC,IAAIuR,EAASD,EAAa9G,OAC1B2G,EAAcr4B,KAAKy4B,GACnB,KACF,CACF,CACF,CAEA,IAAIC,EAAkBxZ,GAAsBmZ,GACxCD,EAAe,IAAInO,GAAeqO,EAAoB,KAAMI,GAChET,EAAcj4B,KAAKo4B,EACrB,CAGA,IAAIO,EAAS,EACb,IAAK,IAAIpnB,EAAI,EAAGA,EAAI0mB,EAAclnB,OAAQQ,IAAK,CAC7C,IAAIqnB,EAAgBX,EAAc1mB,GAC9BsnB,EAAOD,EAAclH,OACrBiH,EAASE,IACXF,EAASE,EAEb,CAGA,GAAIF,GAAUjqB,EAAsB,CAClCspB,GAAa,EACb,KACF,CAEAL,GAA8B,EAC9BC,EAAgBD,EAAeZ,CACjC,CACKiB,IACHL,EAAexH,EACfyH,EAAgBD,EAAeZ,GAIjC,IAAI+B,EAAqB,EACrBC,EAA6B,EAC7BC,EAAY,EACZC,EAAarB,EAAgBkB,EAAsB1B,EAAqB2B,EACxEE,EAAYD,IACdC,EAAYD,GAId,IAAK,IAAIznB,EAAI,EAAGA,EAAIkd,EAAmC1d,OAAQQ,IAAK,CAC9D8lB,EAAuB5I,EAAmCld,GAE1Due,EAAoBuH,EAAqB3d,WACzC4d,EAAqBD,EAAqBzB,aACnB,IAAvB0B,GAA+BxH,IAAsB/lB,KAErDstB,EAAqB6B,aADnBlB,EACkCL,EAAe,EAEfA,EAEtCN,EAAqB8B,cAAgBF,EACrC5B,EAAqB+B,WAAajJ,EAElCrgB,QAAQC,IAAI,qCACZD,QAAQC,IAAIsnB,EAAqB6B,cACjCppB,QAAQC,IAAI,sCACZD,QAAQC,IAAIsnB,EAAqB8B,eACjCrpB,QAAQC,IAAI,mCACZD,QAAQC,IAAIsnB,EAAqB+B,YAErC,CACF,CAEA,SAASvC,GAA4Bxf,EAAWgiB,EAA4BC,EAAyBhiB,GACnG,IAAI0D,EAAY5X,GAAc,0CAA4CiU,EAAUpJ,WACpF2F,MAAMoH,EAAW,CACfnH,OAAQ,WAGPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnE,QAAQC,IAAI,wDAEZiL,EAAY5X,GAAc,uCAAyCiU,EAAUpJ,WAC7E2F,MAAMoH,EAAW,CACfnH,OAAQ,WAGPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnE,QAAQC,IAAI,qDAEZwpB,GAA6BliB,EAAWgiB,EAA4BC,EAAyBhiB,EAC/F,GACJ,GACJ,CAEA,SAASiiB,GAA6BliB,EAAWgiB,EAA4BC,EAAyBhiB,GACpGxH,QAAQC,IAAI,gCAIZ9E,GAA8BouB,EAC9BvpB,QAAQC,IAAI,8BACZD,QAAQC,IAAIspB,GACZvpB,QAAQC,IAAI2H,KAAKC,UAAU0hB,IAC3B,IAAI5hB,EAAUrU,GAAc,+BAI5BwQ,MAAM6D,EAAS,CACb5D,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAGlBtW,KAAMka,KAAKC,UAAU0hB,KAEpBtlB,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnE,QAAQC,IAAI,iCACZypB,GAA6BniB,EAAWiiB,EAAyBhiB,GAGjExH,QAAQC,IAAI,sCAGd,GACJ,CACA,SAASypB,GAA6BniB,EAAWiiB,EAAyBhiB,GACxExH,QAAQC,IAAI,gCAOZ9E,GAA8BquB,EAC3BjmB,QAAQsV,GAAMA,EAAEyL,MAChB/gB,QAAQsV,GAAM5f,GAAoB7F,KAAK7C,GAAOA,EAAG4N,aAAYL,SAAS+a,EAAE8Q,WAAWxrB,cAEtFhD,GAA8BA,GAA4B/H,KAAKylB,GACjC,IAAxBA,EAAEwN,kBACG,IACFxN,EACHwN,kBAAmBxN,EAAE2N,gCAEuB,IAArC3N,EAAE2N,+BACJ,IACF3N,EACH2N,+BAAgC3N,EAAEwN,mBAExBxN,IAEhB7Y,QAAQC,IAAIupB,EAAwBjmB,QAAQsV,IAAOA,EAAEiN,eACrD,IAAIne,EAAUrU,GAAc,4BAI5BwQ,MAAM6D,EAAS,CACb5D,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAGlBtW,KAAMka,KAAKC,UAAU1M,MAEpB8I,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnE,QAAQC,IAAI,uCACZqH,GAAmBC,EAAW,EAAGC,GACjC7Q,GAAsB,EACtBqJ,QAAQC,IAAI,qBAEd,GACJ,CAmFA,SAASukB,GAAsBsB,EAAa8D,EAAUC,GACpDl/B,KAAKm7B,YAAcA,EACnBn7B,KAAKi/B,SAAWA,EAChBj/B,KAAKk/B,SAAWA,CAClB,CAiCA,SAASxM,GACP9sB,EACAsb,EACAia,EACAgE,EACA5S,EACA6S,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlO,EACAmO,EACAC,EACArO,EACAsO,EACAC,EACAC,EACAC,EACAjN,EACAgB,GAEA9zB,KAAK4F,GAAKA,EACV5F,KAAKkhB,UAAYA,EACjBlhB,KAAKm7B,YAAcA,EACnBn7B,KAAKm/B,OAASA,EACdn/B,KAAKusB,OAASA,EACdvsB,KAAKo/B,eAAiBA,EACtBp/B,KAAK6rB,UAAYwT,EACjBr/B,KAAK8rB,QAAUwT,EACft/B,KAAKu/B,MAAQA,EACbv/B,KAAKw/B,QAAUA,EACfx/B,KAAKy/B,OAASA,EACdz/B,KAAKuxB,IAAMA,EACXvxB,KAAK0/B,YAAcA,EACnB1/B,KAAK2/B,eAAiBA,EACtB3/B,KAAKsxB,IAAMA,EACXtxB,KAAK4/B,SAAWA,EAChB5/B,KAAK6/B,kBAAoBA,EACzB7/B,KAAK8/B,iBAAmBA,EACxB9/B,KAAK+/B,aAAeA,EACpB//B,KAAK8yB,SAAWA,EAChB9yB,KAAK8zB,WAAaA,CACpB,CAEA,SAASuF,GACPzzB,EACAsb,EACAia,EACAlc,EACA+gB,EACAhB,EACAzK,EACA2G,EACA+E,EACAnM,EACAkD,EACAkJ,EACAC,EACAC,EACA1G,EACAC,EACA0G,EACAC,EACA5E,EACAG,EACA0E,GAEAvgC,KAAK4F,GAAKA,EACV5F,KAAKkhB,UAAYA,EACjBlhB,KAAKm7B,YAAcA,EACnBn7B,KAAKif,WAAaA,EAClBjf,KAAKwgC,aAAeR,EACpBhgC,KAAKg/B,WAAaA,EAClBh/B,KAAKu0B,QAAUA,EACfv0B,KAAKk7B,mBAAqBA,EAC1Bl7B,KAAKigC,UAAYA,EACjBjgC,KAAK8zB,WAAaA,EAClB9zB,KAAKg3B,SAAWA,EAChBh3B,KAAKkgC,aAAeA,EACpBlgC,KAAKmgC,WAAaA,EAClBngC,KAAKogC,IAAMA,EACXpgC,KAAK05B,SAAWA,EAChB15B,KAAK25B,IAAMA,EACX35B,KAAKqgC,cAAgBA,EACrBrgC,KAAKygC,kBAAoBH,EACzBtgC,KAAKy+B,cAAgB,EACrBz+B,KAAK0+B,eAAiB,EACtB1+B,KAAK2+B,WAAa4B,EAClBvgC,KAAK07B,kBAAoBA,EACzB17B,KAAK67B,+BAAiCA,EACtC77B,KAAK27B,yBAA2B,GAChC37B,KAAK47B,4BAA8B,EACrC,CAEA,SAAS7e,GAAoBH,EAAWY,GACtCxd,KAAK4F,GAAKgX,EACV5c,KAAK0gC,aAAeljB,CACtB,CAEA,SAASmjB,GAAmB/jB,EAAWgkB,GACrC5gC,KAAK4F,GAAKgX,EACV5c,KAAK6gC,YAAcD,CACrB,CAEA,SAASpR,GAAe0I,EAAKP,EAAMV,GACjCj3B,KAAKk4B,IAAMA,EACXl4B,KAAK23B,KAAOA,EACZ33B,KAAKi3B,OAASA,CAChB,CA0KA,SAAS6J,GAAwBC,GAE/B,IAAIrsB,EAAYC,GAAgB,aACjBD,EAAUkG,YAAYnD,cA0CrC,GAxCI/L,IACFjD,GAAI8L,kBAAkB7I,IAEpBE,IACFnD,GAAI8L,kBAAkB3I,IA+BxByJ,QAAQC,IAAI,8BACZD,QAAQC,IAAIxJ,IACZuJ,QAAQC,IAAIxJ,GAAWmhB,kBACvB5X,QAAQC,IAAIxJ,GAAWqhB,gBAEnB7e,GAAoBgI,OAAS,EAAG,CAClC,IAAI0qB,EAActsB,EAAUkG,YAAYnD,cACxCpC,QAAQC,IAAI,eACZD,QAAQC,IAAI0rB,GAEZA,EAAY3T,SAASrJ,IACf1V,GAAoB7F,KAAK7C,GAAO4mB,SAAS5mB,KAAKuN,SAAS6Q,EAAE9Q,IAAI,SACe,GAA1E/E,GAAoByK,QAAQqoB,GAAOA,EAAG/tB,IAAI,OAAS8Q,EAAE9Q,IAAI,QAAOoD,QAClEnI,GAAoB5I,KAAKye,GACzBA,EAAE5D,SAASzM,KAEXqQ,EAAE5D,SAASzM,IAEf,GAEJ,CAGA/H,GAAU,IAAIs1B,GAAA,EAAQ,CACpBC,UAAW,QAEb14B,GAAI0T,eAAevQ,IAEnB,IAAIw1B,EAAW,IAAI,IAAIrU,IAAI5e,GAAoB1F,KAAKub,GAAMA,EAAE9Q,IAAI,eAEhE,IAAK,IAAI+kB,EAAI,EAAGA,EAAI9pB,GAAoBmI,OAAQ2hB,IAAK,CACnD,IAAIljB,EAAc5G,GAAoB8pB,GAElCzC,GADgBzgB,EAAY7B,IAAI,MACf6B,EAAY7B,IAAI,YAGjCoiB,GAFsBvgB,EAAY7B,IAAI,aACf6B,EAAY7B,IAAI,iBACX6B,EAAY7B,IAAI,uBAKhD,GAHIoiB,GACsBA,EAA0B1X,MAAM,MAErD4X,GAAqC,KAAnBA,GAAyB4L,EAASxoB,QAAQ6f,GAAMA,GAAKjD,IAAgBlf,OAAS,EAAG,CACtG,IAAIb,EAAQwiB,EACZ,MAAOmJ,EAASjuB,SAAS,IAAIsC,EAAQ,KACnCA,IAEF2rB,EAAS77B,KAAK,IAAIkQ,EAAQ,KAC1BJ,QAAQC,IAAI,UAAW,IAAIG,EAAQ,KACnCV,EAAYa,IAAI,UAAW,IAAIH,EAAQ,KACvCV,EAAYqL,SAASzM,GACvB,CACF,CACA/H,GAAQiW,GAAG,YAAY,WACrBxM,QAAQC,IAAI,WACd,IACA1J,GAAQiW,GAAG,UAAU,WACnB,MAAMrF,EAAS5Q,GAAQkK,cAAcmN,YAC/Boe,EAAc3sB,EACjBkG,YACA0mB,oBAAoB9kB,GACpB5D,QAAQ3F,GAAYA,EAAQ6C,cAAcyrB,iBAAiB/kB,KAQxD9J,EAAWjK,GAAIsa,UAAUye,cACzBC,EAAU/uB,GAAYC,KAAKC,GAAK,KAAO,EAU7C,GAHAyC,QAAQC,IAAI,iBACZD,QAAQC,IAAIpH,IAERuzB,EAAS,CACX,MAAMC,EAAS,CAAC,EAAG,GACb3pB,EAAWnM,GAAQkK,cAAcb,QACvC8C,EAAS4pB,QAAQjvB,EAAUgvB,GAC3B,MAAMllB,EAASzE,EAASkL,YACxBoe,EAAYhU,SAAQ,SAAUpa,GAC5B,MAAM8E,EAAW9E,EAAQ6C,cAAcb,QAEvC,GADA8C,EAAS4pB,QAAQjvB,EAAUgvB,GACvB3pB,EAASwpB,iBAAiB/kB,GAC5B,GAAsB,IAAlBtO,GACFC,GAAoB5I,KAAK0N,QAEzB,IAAK,IAAI6D,EAAI,EAAGA,EAAI3I,GAAoBmI,OAAQQ,IAAK,CACnD,IAAI8qB,EAAUzzB,GAAoB2I,GAC9B8qB,GAAW3uB,IACboC,QAAQC,IAAI,UAAW,MACvBrC,EAAQ2C,IAAI,UAAW,MACvBgsB,EAAQhsB,IAAI,UAAW,MACvB3C,EAAQmN,SAASpM,IACjB4tB,EAAQxhB,SAASpM,IACjB5F,GAAsB7I,KAAK0N,GAC3B7E,GAAsB7I,KAAKq8B,GAC3BzzB,GAAoB0zB,OAAO/qB,EAAG,GAC9BA,IAEJ,CAGN,GACF,MACE,GAAsB,IAAlB5I,GACFmzB,EACGzoB,QAAQoL,IAAO7V,GAAoB1F,KAAKub,GAAMA,EAAE9Q,IAAI,QAAOC,SAAS6Q,EAAE9Q,IAAI,SAC1Ema,SAASrJ,IACR7V,GAAoB5I,KAAKye,GACzBA,EAAE5D,SAASzM,GAA8B,SAS7C,IAAK,IAAImD,EAAI,EAAGA,EAAI3I,GAAoBmI,OAAQQ,IAAK,CACnD,IAAIgrB,EAAkB3zB,GAAoB2I,GAC1C,IAAK,IAAIE,EAAI,EAAGA,EAAIqqB,EAAY/qB,OAAQU,IAAK,CAC3C,IAAI+qB,EAAcV,EAAYrqB,GAC9B,GAAI8qB,EAAgB5uB,IAAI,OAAS6uB,EAAY7uB,IAAI,MAAO,CACtDmC,QAAQC,IAAI,UAAW,MACvBysB,EAAYnsB,IAAI,UAAW,MAC3BksB,EAAgBlsB,IAAI,UAAW,MAC/BmsB,EAAY3hB,SAASpM,IACrB8tB,EAAgB1hB,SAASpM,IACzB5F,GAAsB7I,KAAKw8B,GAC3B3zB,GAAsB7I,KAAKu8B,GAC3B3zB,GAAoB0zB,OAAO/qB,EAAG,GAC9BA,IACA,KACF,CACF,CACF,CAIJzB,QAAQC,IAAI,uBACZD,QAAQC,IAAInH,IAQZ,IAAIizB,EAAWjzB,GAAoB1F,KAAKub,GAAMA,EAAE9Q,IAAI,aAEpD,IAAK,IAAI+kB,EAAI,EAAGA,EAAI9pB,GAAoBmI,OAAQ2hB,IAAK,CACnD,IAAIljB,EAAc5G,GAAoB8pB,GAElCzC,GADgBzgB,EAAY7B,IAAI,MACf6B,EAAY7B,IAAI,YAGjCoiB,GAFsBvgB,EAAY7B,IAAI,aACf6B,EAAY7B,IAAI,iBACX6B,EAAY7B,IAAI,uBAKhD,GAHIoiB,GACsBA,EAA0B1X,MAAM,MAErD4X,GAAqC,KAAnBA,GAAyB4L,EAASxoB,QAAQ6f,GAAMA,GAAKjD,IAAgBlf,OAAS,EAAG,CACtG,IAAIb,EAAQwiB,EACZ,MAAOmJ,EAASjuB,SAAS,IAAIsC,EAAQ,KACnCA,IAEF2rB,EAAS77B,KAAK,IAAIkQ,EAAQ,KAC1BJ,QAAQC,IAAI,UAAW,IAAIG,EAAQ,KACnCV,EAAYa,IAAI,UAAW,IAAIH,EAAQ,KACvCV,EAAYqL,SAASzM,GACvB,CACF,CACIotB,GACFA,GAEJ,GACF,CAsNA,SAASiB,GAAkBplB,EAAWzZ,EAAO0Z,GAC3C,IAAIC,EAAU,IAAI6jB,GAAmB/jB,EAAWzZ,GAC5C6Z,EAAUrU,GAAc,2BAE5BwQ,MAAM6D,EAAS,CACb5D,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAGlBtW,KAAMka,KAAKC,UAAUJ,KAEpBxD,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdnE,QAAQC,IAAI,kCAAoCnS,EAAMqQ,YAClDqJ,GACFA,GAEJ,GACJ,CAEA,SAASolB,GAAyBplB,GAChCxH,QAAQC,IAAI,mCACZD,QAAQC,IAAI,yBACZD,QAAQC,IAAIlH,IAEZK,GAAsB,GACtB,IAAK,IAAIqI,EAAI,EAAGA,EAAI1I,GAAsBkI,OAAQQ,IAAK,CACrD,IAAIY,EAAQtJ,GAAsB0I,GAElCrI,GAAoBlJ,KAAKmS,EAC3B,CACmC,IAA/BjJ,GAAoB6H,QACtBuG,IAGF,IAAI6C,EAAO,SACPC,EAAqB,+BACrBC,EAAY,mBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQ/C,EACzD,CAEA,SAASqlB,GAAuBrlB,GAC9BxH,QAAQC,IAAI,iCACZD,QAAQC,IAAI,uBACZD,QAAQC,IAAInH,IAEZM,GAAsB,GACtB,IAAK,IAAIqI,EAAI,EAAGA,EAAI3I,GAAoBmI,OAAQQ,IAAK,CACnD,IAAIY,EAAQvJ,GAAoB2I,GAEhCrI,GAAoBlJ,KAAKmS,EAC3B,CACA,GAAmC,IAA/BjJ,GAAoB6H,OAAxB,CAIA,IAAIoJ,EAAO,SACPC,EAAqB,+BACrBC,EAAY,mBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQ/C,EALvD,CAMF,CAEA,SAAS6T,GAAwByR,GAC/B,IAAIC,EAAQ,IAAI5iB,KAAK2iB,GAErB,OAAOE,GAAcD,EACvB,CAQA,SAASC,GAAcD,GACrB,IAAIE,GAASF,EAAMzW,WAAa,GAAGnY,WAAW+uB,SAAS,EAAG,KACtDC,EAAMJ,EAAMxW,UAAUpY,WAAW+uB,SAAS,EAAG,KAC7CE,EAAOL,EAAM1W,cACjB,MAAO,CAAC+W,EAAMH,EAAOE,GAAK1oB,KAAK,IACjC,CAEA,SAAS4oB,GAAuB9lB,GAG9B,IAAIjB,EAEJ,MAAMjB,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,SACfC,aAAc,mBACdC,QAAQ,SAAc,YAAagE,KAErC,IAAI/D,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMoC,GAAe,IAAI,MAAUlC,aAAaF,GAChD,GAAIoC,EAAatF,OAAS,EACxB,IAAK,IAAIQ,EAAI,EAAGA,EAAI8E,EAAatF,OAAQQ,IAAK,CAC5C6E,EAAWC,EAAa9E,GACxB,IAAI6rB,EAAWhnB,EAASzI,IAAI,MACxB0vB,EAAUjnB,EAASzI,IAAI,QAGvBwC,EAAe0O,GAA4Bue,GAC3B,MAAhBjtB,IACFA,EAAeC,GAAgBgG,IAEjC,IAAIknB,EAAoB,IAAI,KAAMntB,EAAaI,cAAcgC,kBACzDgrB,EAAwB,IAAI,KAAQ,CACtC/qB,SAAU8qB,IAEZC,EAAsBltB,IAAI,QAASgtB,EAAQpvB,YAC3C1K,GAAWsM,WAAW0tB,EACxB,CAEJ,GACJ,CAEA,SAAS3iB,GAAiB1K,GASxB,OARA5G,IAAuB,EACvBC,IAA0B,EAC1BC,IAAoC,EACpCC,IAAoC,EACpCC,IAAqB,EACrBC,IAAwB,EACxBC,IAA2B,EAEnBsG,GACN,KAAK,EACH5G,IAAuB,EACvB,MACF,KAAK,EACHC,IAA0B,EAC1B,MACF,KAAK,EACHC,IAAoC,EACpC,MACF,KAAK,EACHC,IAAoC,EACpC,MACF,KAAK,EACHC,IAAqB,EACrB,MACF,KAAK,EACHC,IAAwB,EACxB,MACF,KAAK,EACHC,IAA2B,EAC3B,MACF,SAEJ,CAEA,SAASktB,GAAmB0G,GAO1B,IAAIC,EALJ3tB,QAAQC,IAAI,4BACZD,QAAQC,IAAI,qBACZD,QAAQC,IAAIytB,GACZt0B,GAAsB,GAGtB,IAAK,IAAIqI,EAAI,EAAGA,EAAIisB,EAAkBzsB,OAAQQ,IAC5CksB,EAAeD,EAAkBjsB,GACjCrI,GAAoBlJ,KAAKy9B,GAE3B,IAAItjB,EAAO,SACPC,EAAqB,YACrBC,EAAY,iBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQ,KACzD,CAEA,SAASqjB,GAAyBrmB,GAChCvH,QAAQC,IAAI,mCACZ,IAAItN,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,6BAA+BiU,EAAUpJ,WACvE2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACd0pB,GAA0BtmB,EAC5B,GACJ,CACA,SAASumB,GAAmBvmB,EAAWC,GACrCvO,GAAsB,GACtB,IAAItG,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,wBAA0BiU,EAAUpJ,WAClE2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdxR,EAAS,IAAIiR,QACbjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,yBAA2BiU,EAAUpJ,WACnE2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACd4pB,GAAoBxmB,EAAWC,EACjC,GACJ,GACJ,CAEA,SAASqmB,GAA0BtmB,GACjCvH,QAAQC,IAAI,oCACZ7G,GAAsB,GAEtB,IACI40B,EACJ,IAAK,IAAIvsB,EAAI,EAAGA,EAAIxN,GAAWmO,cAAcnB,OAAQQ,IACnDusB,EAAW/5B,GAAWmO,cAAcX,GACpCusB,EAASztB,IAAI,YAAagH,GAC1BnO,GAAoBlJ,KAAK89B,GAE3B,IAAI3jB,EAAO,SACPC,EAAqB,YACrBC,EAAY,aAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQ0jB,GAIzD,CAEA,SAASF,GAAoBxmB,EAAWC,GACtCpO,GAAsB,GACtBZ,GAA2B,KAE3BwH,QAAQC,IAAI,4BACZD,QAAQC,IAAIpM,GAAWuO,eACvB,IACI4rB,EACJ,IAAK,IAAIvsB,EAAI,EAAGA,EAAI5N,GAAWuO,cAAcnB,OAAQQ,IACnDusB,EAAWn6B,GAAWuO,cAAcX,GACpCzB,QAAQC,IAAI,oCACZD,QAAQC,IAAI+tB,EAASvtB,cAAcU,WACnC6sB,EAASztB,IAAI,YAAagH,GAC1B/O,GAA2Bw1B,EAC3B50B,GAAoBlJ,KAAK89B,GACzBhuB,QAAQC,IAAI+tB,GAGd,IAAI3jB,EAAO,SACPC,EAAqB,YACrBC,EAAY,GAEdA,EADEvQ,GACU,SAEA,QAEdwQ,GAAUH,EAAMC,EAAoBC,EAAW,QAAQ,WACrD2jB,GAAoB1mB,EACtB,GAIF,CAEA,SAASymB,KACPjuB,QAAQC,IAAI,oCACZ,IAAIkuB,EACF96B,GACA,8JACAkF,GAAiB4F,WACnB6B,QAAQC,IAAI,mBAAqBkuB,EAAa,sBAC9Cr5B,GAAgB,IAAI,KAAa,CAC/BmS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgnB,EAAa,oBACtB,IAEF,IAAI9uB,EAAYC,GAAgB,qBAChCD,EAAU+H,UAAUtS,IACpBuK,EAAUE,QAAQ3M,SAAU,EAE5Bw7B,GAA0B71B,GAC5B,CAEA,SAAS21B,GAAoB1mB,GAE3B,IAAI2mB,EACF96B,GACA,yJACAkF,GAAiB4F,WACnB6B,QAAQC,IAAI,mBAAqBkuB,EAAa,sBAC9Cr5B,GAAgB,IAAI,KAAa,CAC/BmS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgnB,EAAa,oBACtB,IAEF,IAAI9uB,EAAYC,GAAgB,gBAChCD,EAAU+H,UAAUtS,IACpBuK,EAAUE,QAAQ3M,SAAU,EAC5BoN,QAAQC,IAAI,+BACZD,QAAQC,IAAInL,GAAcsN,eAC1B,IAAIisB,EACFh7B,GACA,0JACAkF,GAAiB4F,WACnB6B,QAAQC,IAAI,mBAAqBouB,EAAc,sBAC/Ct5B,GAAiB,IAAI,KAAa,CAChCkS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOknB,EAAc,oBACvB,IAEEhvB,EAAYC,GAAgB,iBAChCD,EAAU+H,UAAUrS,IACpBsK,EAAUE,QAAQ3M,SAAU,EAC5BoN,QAAQC,IAAI,gCACZD,QAAQC,IAAIlL,GAAeqN,eAE3BksB,GAAqB/1B,GAAkBiP,EACzC,CAEA,SAAS4mB,GAA0B7mB,GACjCvH,QAAQC,IAAI,oCACZ,IAAItN,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,oCAAsCiU,EAAUpJ,WAC9E2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdoqB,GAA2BhnB,EAC7B,GACJ,CAEA,SAAS+mB,GAAqB/mB,EAAWC,GACvC,IAAI7U,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,0BAA4BiU,EAAUpJ,WACpE2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdxR,EAAS,IAAIiR,QACbjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,2BAA6BiU,EAAUpJ,WACrE2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdqqB,GAAsBjnB,EAAWC,EACnC,GACJ,GACJ,CAEA,SAAS+mB,GAA2BhnB,GAClCvH,QAAQC,IAAI,qCACZ7G,GAAsB,GAEtB,IACIq1B,EACJxzB,GAA0B,GAC1B,IAAK,IAAIwG,EAAI,EAAGA,EAAIvN,GAAYkO,cAAcnB,OAAQQ,IACpDgtB,EAAUv6B,GAAYkO,cAAcX,GACpCgtB,EAAQluB,IAAI,YAAagH,GACzBnO,GAAoBlJ,KAAKu+B,GACzBxzB,GAAwB/K,KAAKu+B,GAE/B,IAAIpkB,EAAO,SACPC,EAAqB,YACrBC,EAAY,eAEhBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQmkB,IAEvDz6B,GAAWgL,QACX/K,GAAY+K,OACd,CAEA,SAASuvB,GAAsBjnB,EAAWC,GACxCpO,GAAsB,GAEtB,IACIq1B,EACJ,IAAK,IAAIhtB,EAAI,EAAGA,EAAI9N,GAAWyO,cAAcnB,OAAQQ,IACnDgtB,EAAU96B,GAAWyO,cAAcX,GACnCgtB,EAAQluB,IAAI,YAAagH,GACzBnO,GAAoBlJ,KAAKu+B,GAE3B,IAAIpkB,EAAO,SACPC,EAAqB,YACrBC,EAAY,GAEdA,EADEvQ,GACU,WAEA,UAIdwQ,GAAUH,EAAMC,EAAoBC,EAAW,QAAQ,WACrDokB,GAAsBnnB,EACxB,GAIF,CAEA,SAASknB,KACP1uB,QAAQC,IAAI,qCACZ,IAAI2uB,EACFv7B,GACA,gKACAkF,GAAiB4F,WACnB6B,QAAQC,IAAI,mBAAqB2uB,EAAe,sBAChDx5B,GAAuB,IAAI,KAAa,CACtC6R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOynB,EAAe,oBACxB,IAEF,IAAIvvB,EAAYC,GAAgB,uBAChCD,EAAU+H,UAAUhS,IACpBiK,EAAUE,QAAQ3M,SAAU,EAE5Bi8B,GAAqCt2B,GAAkB0C,GACzD,CAEA,SAAS0zB,GAAsBnnB,GAE7B,IAAIonB,EACFv7B,GACA,2JACAkF,GAAiB4F,WACnB6B,QAAQC,IAAI,mBAAqB2uB,EAAe,sBAChD35B,GAAkB,IAAI,KAAa,CACjCgS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOynB,EAAe,oBACxB,IAEF,IAAIvvB,EAAYC,GAAgB,kBAChCD,EAAU+H,UAAUnS,IAChBuB,KACF6I,EAAUE,QAAQ3M,SAAU,GAE9B,IAAIk8B,EACFz7B,GACA,4JACAkF,GAAiB4F,WACnB6B,QAAQC,IAAI,mBAAqB6uB,EAAgB,sBACjD55B,GAAmB,IAAI,KAAa,CAClC+R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO2nB,EAAgB,oBACzB,IAEFzvB,EAAYC,GAAgB,mBAC5BD,EAAU+H,UAAUlS,IAChBsB,KACF6I,EAAUE,QAAQ3M,SAAU,GAG9Bm8B,GAAoBx2B,GAAkBiP,EACxC,CAEA,SAASqnB,GAAqCtnB,EAAWynB,GAIvD,IAAIC,EACA9pB,EAJJnF,QAAQC,IAAI,+CAMZ,MAAMoF,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,sBACfC,aAAc,mBACdC,QAAQ,SAAc,YAAagE,KAErC,IAAI/D,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMmB,GAA0B,IAAI,MAAUjB,aAAaF,GAC3D,GAAImB,EAAwBrE,OAAS,EAAG,CACtC7H,GAAsB,GACtB8B,GAAuC,GACvC,IAAK,IAAIuG,EAAI,EAAGA,EAAI6D,EAAwBrE,OAAQQ,IAAK,CACvDwtB,EAAe3pB,EAAwB7D,GACvC,IAAIytB,EAAeD,EAAapxB,IAAI,iBAGpC,IAAK,IAAI8D,EAAI,EAAGA,EAAIqtB,EAAgB/tB,OAAQU,IAE1C,GADAwD,EAAa6pB,EAAgBrtB,GACzBE,GAAYotB,EAAc9pB,GAAa,CACzC,IAAIgqB,EAAYhqB,EAAWtH,IAAI,gBAC3BuxB,EAAe,EACD,sBAAdD,EACFC,EAAe,EACQ,aAAdD,IACTC,EAAe,GAGjBF,GAA8BE,CAChC,CAGFH,EAAa1uB,IAAI,sBAAuB2uB,GAExC91B,GAAoBlJ,KAAK++B,GACzB/zB,GAAqChL,KAAK++B,EAI5C,CAEA,IAAI5kB,EAAO,SACPC,EAAqB,+BACrBC,EAAY,qBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQ8kB,GACzD,CACF,GACJ,CACA,SAASA,KAIP,IAAIC,EAHJtvB,QAAQC,IAAI,8CAIZ,MAAMoF,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,oBACfC,aAAc,mBACdC,QAAQ,SAAc,YAAahL,MAErC,IAAIiL,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMorB,GAAoB,IAAI,MAAUlrB,aAAaF,GACrD,GAAIorB,EAAkBtuB,OAAS,EAAG,CAIhC7H,GAAsB,GACtB,IAAK,IAAIqI,EAAI,EAAGA,EAAI8tB,EAAkBtuB,OAAQQ,IAAK,CACjD6tB,EAAYC,EAAkB9tB,GAC9B,IAAI+tB,EAAkBF,EAAUzxB,IAAI,cAEpC,IAAK,IAAI8D,EAAI,EAAGA,EAAIzG,GAAqC+F,OAAQU,IAAK,CACpE,IAAI8tB,EAA0Bv0B,GAAqCyG,GAC/D+tB,EAAmBD,EAAwB5xB,IAAI,uBACnD,GAAI2xB,IAAoBC,EAAwB5xB,IAAI,cAAe,CACjEyxB,EAAU/uB,IAAI,gBAAiBmvB,GAC/B,KACF,CACF,CAEAt2B,GAAoBlJ,KAAKo/B,EAI3B,CAEA,IAAIjlB,EAAO,SACPC,EAAqB,+BACrBC,EAAY,mBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQ,MAEvD4D,MAAM,SACR,CACF,GACJ,CAEA,SAAS4gB,GAAoBxnB,EAAWC,GACtC,IAAI7U,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,wBAA0BiU,EAAUpJ,WAClE2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdwrB,GAAqBpoB,EAAWC,EAClC,GACJ,CACA,SAASmoB,GAAqBpoB,EAAWC,GACvCpO,GAAsB,GAEtB,IACIkN,EADAlG,EAAQ,EAEZJ,QAAQC,IAAI,gCACZD,QAAQC,IAAI1M,GAAU6O,eACtB,IAAK,IAAIX,EAAI,EAAGA,EAAIlO,GAAU6O,cAAcnB,OAAQQ,IAAK,CACvD6E,EAAW/S,GAAU6O,cAAcX,GACnC6E,EAAS/F,IAAI,YAAagH,GACC,OAAvBjB,EAASzI,IAAI,OACfyI,EAAS/F,IAAI,KAAMH,EAAQ,GAE7BA,EAAQkG,EAASzI,IAAI,MACrBmC,QAAQC,IAAI,aAAcG,GAC1B,IAAIwvB,EAAW9mB,GAAmB1I,GAClCkG,EAAS/F,IAAI,OAAQqvB,GACrB,IAAIC,EAAW5mB,GAAuB7I,GACtCkG,EAAS/F,IAAI,kBAAmBsvB,GAChCz2B,GAAoBlJ,KAAKoW,GACzBtG,QAAQC,IAAI,aACZD,QAAQC,IAAIqG,EACd,CACA,IAAI+D,EAAO,SACPC,EAAqB,YACrBC,EAAY,QAChBC,GAAUH,EAAMC,EAAoBC,EAAW,QAAQ,WACrDulB,GAAqBtoB,EACvB,GAaF,CACA,SAASsoB,GAAqBtoB,GAE5B,IAAIuoB,EACF18B,GACA,yJACAkF,GAAiB4F,WACnB6B,QAAQC,IAAI,mBAAqB8vB,EAAa,sBAC9Cl7B,GAAgB,IAAI,KAAa,CAC/BoS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO4oB,EAAa,oBACtB,IAEF,IAAI1wB,EAAYC,GAAgB,gBAChCD,EAAU+H,UAAUvS,IAChB2B,KACF6I,EAAUE,QAAQ3M,SAAU,GAI9Bo9B,GAA0Bz3B,GAAkBiP,EAC9C,CAEA,SAASwoB,GAA0BzoB,EAAWC,GAC5C,IAAI7U,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,6BAA+BiU,EAAUpJ,WACvE2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACd8rB,GAA2B1oB,EAAWC,EACxC,GACJ,CAEA,SAASyoB,GAA2B1oB,EAAWC,GAC7CpO,GAAsB,GAEtB,IACIkN,EACA4pB,EAFA9vB,EAAQ,EAGZJ,QAAQC,IAAI,gCACZD,QAAQC,IAAI1M,GAAU6O,eACtB,IAAK,IAAIX,EAAI,EAAGA,EAAIlO,GAAU6O,cAAcnB,OAAQQ,IAAK,CACvD6E,EAAW/S,GAAU6O,cAAcX,GACnCyuB,EAAmB5vB,GAAgBgG,GACnC4pB,EAAiB3vB,IAAI,YAAagH,GAC9BnH,EAAQkG,EAASzI,IAAI,MACzBmC,QAAQC,IAAI,aAAcG,GAC1B8vB,EAAiB3vB,IAAI,SAAUH,EAAMjC,YACrC,IAAIyxB,EAAW9mB,GAAmB1I,GAGlC8vB,EAAiB3vB,IAAI,WAAYqvB,GACjC,IAAIC,EAAW5mB,GAAuB7I,GACtC8vB,EAAiB3vB,IAAI,kBAAmBsvB,GAKxCz2B,GAAoBlJ,KAAKggC,EAC3B,CACA,IAAI7lB,EAAO,SACPC,EAAqB,YACrBC,EAAY,aAChBC,GAAUH,EAAMC,EAAoBC,EAAW,QAAQ,WACrD4lB,GAA2B3oB,EAC7B,GACF,CAEA,SAAS2oB,GAA2B3oB,GAElC,IAAI4oB,EACF/8B,GACA,8JACAkF,GAAiB4F,WACnB6B,QAAQC,IAAI,mBAAqBmwB,EAAe,sBAChDp7B,GAAoB,IAAI,KAAa,CACnCiS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOipB,EAAe,oBACxB,IAEF,IAAI/wB,EAAYC,GAAgB,oBAChCD,EAAU+H,UAAUpS,IAChBwB,KACFjD,GAAU0L,QACVI,EAAUE,QAAQ3M,SAAU,GAG1B4U,GACFA,IAGF6oB,GAA+B93B,GAEjC,CAEA,SAAS+3B,GAAmBC,GAC1Bn9B,GAAIo9B,YAAYxY,SAASyY,IACnBA,GAASA,EAAM5yB,IAAI,WAAa0yB,GAClCn9B,GAAIwX,YAAY6lB,EAClB,GAEJ,CAEA,SAASjmB,GAAUkmB,EAAUpmB,EAAoBC,EAAWomB,EAAmBC,GAC7E74B,GAA2B,GAE3B,IAAK,IAAI0J,EAAI,EAAGA,EAAIrI,GAAoB6H,OAAQQ,IAAK,CACnD,IAAI7D,EAAUxE,GAAoBqI,GAO9BovB,EAAWjzB,EAAQkzB,uBAChBD,EAASE,UAGhB,IAAInxB,EAAQhC,EAAQgC,QACpBA,EAAMC,MAAMjC,EAAQkC,SACpB/H,GAAyB7H,KAAK0N,EAIhC,CACAoC,QAAQC,IAAI,4BACZD,QAAQC,IAAIlI,IAEI,UAAZ24B,GACFM,GAAe,eAAgBj5B,GAA0BuS,EAAoBC,EAAWomB,EAAmBC,GAE7F,UAAZF,GACFM,GAAe,eAAgBj5B,GAA0BuS,EAAoBC,EAAWomB,EAAmBC,GAE7F,UAAZF,GACFM,GAAe,eAAgBj5B,GAA0BuS,EAAoBC,EAAWomB,EAAmBC,EAE/G,CAEA,SAASI,GAAeC,EAAMjd,EAAU1J,EAAoBC,EAAWomB,EAAmBC,GACxF,IAEIM,EAFAC,EAAY,IAAI,KAGhBC,EAAY,IAAIC,GAAA,EAAI,CACtBjuB,UAAWkH,EACXgnB,YAAa/mB,EAEbgnB,QAAS,aACTpuB,QAAS,cAEX,OAAQ8tB,GACN,IAAK,SACHC,EAAOC,EAAUK,iBAAiB,CAACxd,GAAW,KAAM,KAAMod,GAC1D,MACF,IAAK,eACHF,EAAOC,EAAUK,iBAAiBxd,EAAU,KAAM,KAAMod,GACxD,MACF,IAAK,SACHF,EAAOC,EAAUK,iBAAiB,KAAM,CAACxd,GAAW,KAAMod,GAC1D,MACF,IAAK,eACHF,EAAOC,EAAUK,iBAAiB,KAAMxd,EAAU,KAAMod,GACxD,MACF,IAAK,SACHF,EAAOC,EAAUK,iBAAiB,KAAM,KAAM,CAACxd,GAAWod,GAC1D,MACF,IAAK,eACHF,EAAOC,EAAUK,iBAAiB,KAAM,KAAMxd,EAAUod,GACxD,MAEJ,IAAI5tB,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkButB,GAKnCxtB,EAAUA,EAAQ6E,MAAM,aAAa9D,KAAKksB,EAAoB,KACjD,iBAATM,IACFvtB,EAAUA,EAAQ6E,MAAM,YAAY9D,KAAKksB,IAG3C3wB,QAAQC,IAAI,WACZD,QAAQC,IAAIyD,GAWZ,IAAI6tB,EAAU,IAAIE,eAClBF,EAAQG,KAAK,OAAQr+B,GAAa,kBAClCk+B,EAAQI,mBAAqB,WACD,GAAtBJ,EAAQK,aACV5xB,QAAQC,IAAI,YACZD,QAAQC,IAAIsxB,EAAQM,aAChBjB,GACFA,IAQN,EAEAW,EAAQO,iBAAiB,eAAgB,YACzCP,EAAQQ,KAAKruB,GAEb1D,QAAQC,IAAI,iCACd,CAEA,SAAS+xB,GAAyBC,GAChCjyB,QAAQC,IAAI,uBAAwBgyB,GACpC,IAAItpB,EAAe/U,GAAWgV,eAAeqpB,GAC7CjyB,QAAQC,IAAI0I,GACZ/U,GAAWiT,cAAc8B,EAC3B,CAEA,SAASupB,GAAYC,EAAkBC,GACrC,MAAMC,EAAS,IAAI,KACnBA,EAAOC,OAAO,KAAO,KAAYC,GAAA,EAAY,MAASC,GAAA,EAAYC,GAAA,EAAiB9vB,GAAA,GAGnF,IAAI+vB,EAAcL,EAAOM,KAAKR,EAAiB1xB,eAC3CmyB,EAAaP,EAAOM,KAAKP,EAAoB3xB,eAG7CoyB,EAAQ,WAAYH,EAAYI,kBAAmBF,GACnDG,EAAc,IAAIC,GAAA,EACtBD,EAAY1pC,IAAIwpC,GAGhB,IAAII,EAAWF,EAAYppB,cAC3B,OAAOspB,CACT,CAEA,SAASpxB,GAAYqxB,EAAWC,GAC9B,IAAIzhB,EAAU,IAAI,KACdC,EAAeD,EAAQE,mBAAmBshB,GAC1CrhB,EAAgB,OAAaF,GAC7ByhB,EAAe1hB,EAAQE,mBAAmBuhB,GAC1CrhB,EAAgB,OAAashB,GACjC,OAAO,OAAuBvhB,EAAeC,EAC/C,CAmBA,SAASuhB,GAA+BlB,EAAkBmB,GACxD,IAAI5hB,EAAU,IAAI,KACdC,EAAeD,EAAQE,mBAAmBugB,GAC1CtgB,EAAgB,OAAaF,GAC7B4hB,EAAW,OAAkB1hB,GAC7BuhB,EAAe1hB,EAAQE,mBAAmB0hB,GAC1CxhB,EAAgB,OAAashB,GACjC,OAAO,OAAqBthB,EAAeyhB,EAC7C,CAEA,SAAStkB,GAAYkjB,GACnB,IAAIzgB,EAAU,IAAI,KACdC,EAAeD,EAAQE,mBAAmBugB,GAC1CtgB,EAAgB,OAAaF,GAC7B4hB,EAAW,OAAc1hB,GAC7B,OAAOH,EAAQ8hB,YAAYD,EAC7B,CAEA,SAASpkB,GAAUgjB,GACjB,IAAIzgB,EAAU,IAAI,KACdC,EAAeD,EAAQE,mBAAmBugB,GAC1CtgB,EAAgB,OAAaF,GAC7B4hB,EAAW,OAAY1hB,GAC3B,OAAOH,EAAQ8hB,YAAYD,EAC7B,CAEA,SAASjzB,GAAgB6xB,GACvB,IAAIzgB,EAAU,IAAI,KACdC,EAAeD,EAAQE,mBAAmBugB,GAC1CtgB,EAAgB,OAAaF,GAC7B4hB,EAAW,OAAkB1hB,GACjC,OAAOH,EAAQ8hB,YAAYD,EAC7B,CAEA,SAASxkB,GAA4B0kB,GACnC,IAAIC,EAAiBp0B,GAAgB,oBAsBjCq0B,EAAoBD,EAAenuB,YAAYnD,cACnD,IAAK,IAAIX,EAAI,EAAGA,EAAIkyB,EAAkB1yB,OAAQQ,IAAK,CACjD,IAAImyB,EAAYD,EAAkBlyB,GAC9BoyB,EAAYD,EAAU/1B,IAAI,UAC9B,GAAI41B,EAAOt1B,aAAe01B,EAGxB,OAAOD,CAEX,CACA,OAAO,IACT,CAEA,SAAS5e,GAAmB8e,EAAeC,EAAezjB,GACxD,IAAIoB,EAAU,IAAI,KACdC,EAAeD,EAAQE,mBAAmBkiB,GAC1CjiB,EAAgB,OAAaF,GAC7ByhB,EAAe1hB,EAAQE,mBAAmBmiB,GAC1CjiB,EAAgB,OAAashB,GAC7BY,EAAY,OAAmBniB,EAAeC,GAE9CmiB,EAAsBviB,EAAQE,mBAAmBtB,GACjD4jB,EAAmB,OAAaD,GAEpC,GAAID,EAAUhgB,SAAS/S,OAAS,EAAG,CACjC,IACIkzB,EADAC,EAAO,UAEX,IAAK,IAAI3yB,EAAI,EAAGA,EAAIuyB,EAAUhgB,SAAS/S,OAAQQ,IAAK,CAClD,IAAI4yB,EAAWL,EAAUhgB,SAASvS,GAC9B6yB,EAAe,OAAaD,GAC5BE,EAAc,OAAcL,EAAkBI,GAC9CF,EAAOG,IACTH,EAAOG,EACPJ,EAAoBE,EAExB,CACA,OAAO3iB,EAAQ8hB,YAAYW,EAC7B,CACE,OAAO,IAEX,CACA,SAASjyB,GAASsyB,EAAmBlB,GAKnC,IAAI5hB,EAAU,IAAI,KACdC,EAAeD,EAAQE,mBAAmB4iB,GAE1CpB,EAAe1hB,EAAQE,mBAAmB0hB,GAO1CT,EAAQ,OAAWlhB,EAAcyhB,GACrC,OAAO1hB,EAAQ8hB,YAAYX,EAC7B,CAEA,SAAS1yB,GAAiB+yB,EAAWuB,EAAaC,GAQhD,MAAMrC,EAAS,IAAI,KAKnB,GAJAA,EAAOC,OAAO,KAAO,KAAYC,GAAA,EAAY,MAASC,GAAA,EAAYC,GAAA,EAAiB9vB,GAAA,GAI/E3I,KAA6C,IAAvB06B,EAA8B,CACtD10B,QAAQC,IAAI,0BACZD,QAAQC,IAAIizB,EAAUzyB,cAAcU,WACpCnB,QAAQC,IAAIizB,GACZ,IAAIyB,EAAc,GACdC,EAAa,GACjB,IAAK,IAAInzB,EAAI,EAAGA,EAAIyxB,EAAUzyB,cAAckJ,cAAc1I,OAAQQ,IAAK,CACrE,IAAIozB,EAAc3B,EAAUzyB,cAAckJ,cAAclI,GACpDqzB,EAAWzC,EAAOM,KAAKkC,GACvBE,EAAW,cAAkBD,EAAUL,GACvCrB,EAAef,EAAO2C,MAAMD,GAC5BE,EAAO,IAAI,KAAQ,CACrBvyB,SAAU,IAAI,MAAQ0wB,EAAa3wB,oBAErCmyB,EAAW1kC,KAAK+kC,GAChBN,EAAYzkC,KAAKkjC,EAAa3wB,iBAChC,CAGA,IAAIyyB,EAAgB9zB,GAA2BwzB,GAC3CO,EAAiB,GACrB,IAAK,IAAI1zB,EAAI,EAAGA,EAAIyzB,EAAcj0B,OAAQQ,IAAK,CAC7C,IAAI2zB,EAAWF,EAAczzB,GAE7B,GAAI2zB,EAASn0B,OAAS,EAAG,CACvB,IAAIvB,EACJ,IAAK,IAAIiC,EAAI,EAAGA,EAAIyzB,EAASn0B,OAAQU,IAAK,CACxC,IAAI0zB,EAAcD,EAASzzB,GAEzBjC,EADQ,IAANiC,EACYizB,EAAWS,GAEXnzB,GAASxC,EAAak1B,EAAWS,GAEnD,CACAF,EAAejlC,KAAKwP,EAAYe,cAAcgC,iBAChD,KAAO,CACL,IAAI6yB,EAAWF,EAAS,GACpBG,EAAeZ,EAAYW,GAC/BH,EAAejlC,KAAKqlC,EACtB,CACF,CAEA,OAAIL,EAAcj0B,OAAS,GAAKjH,GACvB,IAAI,KAAQ,CACjB0I,SAAU,IAAIC,GAAA,EAAawyB,KAGtB,IAAI,KAAQ,CACjBzyB,SAAU,IAAI,MAAQyyB,EAAe,KAG3C,CACML,EAAWzC,EAAOM,KAAKO,EAAUzyB,eACjCs0B,EAAW,cAAkBD,EAAUL,GACvCrB,EAAef,EAAO2C,MAAMD,GAChC,OAAO,IAAI,KAAQ,CACjBryB,SAAU,IAAI,MAAQ0wB,EAAa3wB,mBAGzC,CAEA,SAAS+yB,GAAYtC,GACnB,MAAMb,EAAS,IAAI,KACnBA,EAAOC,OAAO,KAAO,KAAYC,GAAA,EAAY,MAASC,GAAA,EAAYC,GAAA,EAAiB9vB,GAAA,GACnF,IAAImyB,EAAWzC,EAAOM,KAAKO,EAAUzyB,eACrC,OAAO,aAAkBq0B,EAC3B,CAiBA,SAASzE,GAA+B9oB,EAAWC,GAkEjD,IAAI7U,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,qCAAuCiU,EAAUpJ,WAC/E2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdsxB,GAAgCjuB,EAClC,GAaJ,CAEA,SAASiuB,GAAgCjuB,GACvCxH,QAAQC,IAAI,0CAIZ,IACImF,EACJ,IAAK,IAAI3D,EAAI,EAAGA,EAAI9N,GAAWyO,cAAcnB,OAAQQ,IACnD2D,EAAazR,GAAWyO,cAAcX,GAAGhB,cAK3C,MAAM4E,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,kCACfC,aAAc,mBAGdC,QAAQ,SAAiB,WAAY6B,EAAY,eAEnD,IAAI5B,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GAGd,OAFAlE,QAAQC,IAAI,4CACZD,QAAQC,IAAIiE,GACLA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMmB,GAA0B,IAAI,MAAUjB,aAAaF,GAC3D,GAAImB,EAAwBrE,OAAS,EAAG,CAKtC,IAAI+sB,EAJAx3B,IACF7C,GAAWsL,QAIb,IAAK,IAAIwC,EAAI,EAAGA,EAAI5N,GAAWuO,cAAcnB,OAAQQ,IACnDusB,EAAWn6B,GAAWuO,cAAcX,GAKtCrI,GAAsB,GAEtB,IAAK,IAAIqI,EAAI,EAAGA,EAAI6D,EAAwBrE,OAAQQ,IAClD,IAAII,GAAYyD,EAAwB7D,GAAIusB,GAA5C,CAIA,IAAIvkB,EAASnE,EAAwB7D,GAAGhB,cACpCiJ,EAAcD,EAAOE,cACrBC,EAAatE,EAAwB7D,GAAG5D,IAAI,cAC5C63B,EAAYpwB,EAAwB7D,GAAG5D,IAAI,aAC3CiM,EAA2D,MAA/CxE,EAAwB7D,GAAG5D,IAAI,aAAuB,GAAKyH,EAAwB7D,GAAG5D,IAAI,aACtGkM,EAASzE,EAAwB7D,GAAG5D,IAAI,OACxCmM,EAC0C,MAA5C1E,EAAwB7D,GAAG5D,IAAI,UAC3ByH,EAAwB7D,GAAG5D,IAAI,aAAeyH,EAAwB7D,GAAG5D,IAAI,aAC7EyH,EAAwB7D,GAAG5D,IAAI,UAErC,IAAK,IAAI8D,EAAI,EAAGA,EAAI+H,EAAYzI,OAAQU,IAAK,CAC3C,IAAIsI,EAAWP,EAAY/H,GAC3B,IAAI6H,EAAW,IAAI,KAAQ,CACzBU,KAAMD,IAERT,EAASjJ,IAAI,YAAahI,IAC1BiR,EAASjJ,IAAI,aAAcqJ,GAC3BJ,EAASjJ,IAAI,gBAAiBm1B,GAC9BlsB,EAASjJ,IAAI,YAAauJ,GAC1BN,EAASjJ,IAAI,OAAQwJ,GAErBP,EAASjJ,IAAI,cAAc,IAAI4J,MAAOC,eACtCZ,EAASjJ,IAAI,SAAUyJ,GACvB5Q,GAAoBlJ,KAAKsZ,EAC3B,CA3BA,CA6BEhT,IACF3C,GAAWoL,QAGb,IAAIoL,EAAO,SACPC,EAAqB,YACrBC,EAAY,qBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,QAAQ,WACrDorB,GAAgCnuB,EAClC,GACF,CACF,GACJ,CAEA,SAASmuB,GAAgCnuB,GACvCxH,QAAQC,IAAI,0CAEZ,IAAI21B,EACFviC,GACA,sKACAkF,GAAiB4F,WACnBzJ,GAAwB,IAAI,KAAa,CACvCuS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOyuB,EAA2B,oBACpC,IAEF,IAAIv2B,EAAYC,GAAgB,wBAChCD,EAAU+H,UAAU1S,IACpB2K,EAAUE,QAAQ3M,SAAU,EAC5B8B,GAAsB2S,UAEtBqD,GAA4BnS,GAAkBiP,EAChD,CAEA,SAASkD,GAA4BnD,EAAWC,GAC9CxH,QAAQC,IAAI,uCACZ,IAAItN,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,mCAAqCiU,EAAUpJ,WAC7E2F,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACd0xB,GAA6BtuB,EAAWC,EAC1C,GACJ,CAEA,SAASquB,GAA6BtuB,EAAWC,GAG/C,IAAIwmB,EA6BAiB,EA5BJ,GAHAjvB,QAAQC,IAAI,wCAGRjG,GAAoB,CACtBgG,QAAQC,IAAI,gCACZD,QAAQC,IAAIlL,GAAeqN,eAC3B,IAAK,IAAIX,EAAI,EAAGA,EAAI1M,GAAeqN,cAAcnB,OAAQQ,IAEvD,GADAusB,EAAWj5B,GAAeqN,cAAcX,GACpCusB,EAASnwB,IAAI,eAAiB0J,EAChC,KAGN,KAAO,CACLvH,QAAQC,IAAI,+BACZD,QAAQC,IAAInL,GAAcsN,eAC1B,IAAK,IAAIX,EAAI,EAAGA,EAAI3M,GAAcsN,cAAcnB,OAAQQ,IAEtD,GADAusB,EAAWl5B,GAAcsN,cAAcX,GACnCusB,EAASnwB,IAAI,eAAiB0J,EAChC,KAGN,CAEA,IAAK/Q,GAAmB,CACtB,IAAI6I,EAAYC,GAAgB,gBAChCD,EAAUE,QAAQ3M,SAAU,EACxByM,EAAYC,GAAgB,iBAChCD,EAAUE,QAAQ3M,SAAU,CAC9B,CAKA,MAAMyS,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,sBACfC,aAAc,mBACdC,QAAQ,SAAc,YAAagE,KAErC,IAAI/D,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMmB,GAA0B,IAAI,MAAUjB,aAAaF,GAC3D,GAAImB,EAAwBrE,OAAS,EAAG,CACtC7H,GAAsB,GACtB,IAAK,IAAIqI,EAAI,EAAGA,EAAI6D,EAAwBrE,OAAQQ,IAAK,CACvDwtB,EAAe3pB,EAAwB7D,GACvC,IAAImI,EAAatE,EAAwB7D,GAAG5D,IAAI,cAC5Ci4B,EAAaxwB,EAAwB7D,GAAG5D,IAAI,UAE5Ck4B,EAAgB,EAElBA,EADEzwB,EAAwB7D,GAAG5D,IAAI,uBACjByH,EAAwB7D,GAAG5D,IAAI,uBAE/ByH,EAAwB7D,GAAG5D,IAAI,iBAEjD,IAAIstB,EAAe7lB,EAAwB7D,GAAG5D,IAAI,aAG9C0X,EAAmBC,GAAgBwY,EAASvtB,cAAewuB,EAAaxuB,eAGxEu1B,EAAazgB,EAAiBhB,YAC9BD,EAAW,EAAI,EAAI0hB,EACnBC,EAAe,IAAI,KAAM1gB,EAAiBf,gBAAgBF,IAO1Dgb,EAAY,IAAI,KAAQ,CAC1B5sB,SAAUuzB,IAEZ3G,EAAUzvB,MAAM4B,GAChB6tB,EAAU/uB,IAAI,KAAMkB,GACpB6tB,EAAU/uB,IAAI,YAAagH,GAC3B+nB,EAAU/uB,IAAI,aAAcqJ,GAC5B0lB,EAAU/uB,IAAI,SAAUu1B,GACxBxG,EAAU/uB,IAAI,gBAAiBw1B,GAC/BzG,EAAU/uB,IAAI,YAAa4qB,GAC3B/xB,GAAoBlJ,KAAKo/B,EAI3B,CAEA,IAAIjlB,EAAO,SACPC,EAAqB,YACrBC,EAAY,mBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,QAAQ,WACrD2rB,GAA6B1uB,EAC/B,GACF,CACF,GACJ,CAEA,SAAS0uB,GAA6B1uB,GACpCxH,QAAQC,IAAI,uCAEZ,IAAIk2B,EACF9iC,GACA,oKACAkF,GAAiB4F,WACnBxJ,GAA8B,IAAI,KAAa,CAC7CsS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgvB,EAAyB,oBAClC,IAEF,IAAI92B,EAAYC,GAAgB,8BAChCD,EAAU+H,UAAUzS,IACpB0K,EAAUE,QAAQ3M,SAAU,EAC5B+B,GAA4B0S,UAE5BC,GAAmB/O,GAAkB,EAAG,MACxC6B,GAAqB,GACrB2R,GAAkBxT,IACdiP,GACFA,GAEJ,CA2DA,SAASgO,GAAgB4gB,EAAOC,GAC9B,IAAIntB,EACAotB,EAAaC,IAsBjB,OApBCH,EAAMI,cAAgBJ,EAAMI,cAAc,GAAKJ,GAAO3zB,iBAAiBuV,SAAQ,SAAUpI,GACxF,IAAI6mB,EAAUJ,EAAMK,gBAAgB9mB,GAChC+mB,EAAcr5B,KAAKkS,IAAIinB,EAAQ,GAAK7mB,EAAY,GAAI,GAAKtS,KAAKkS,IAAIinB,EAAQ,GAAK7mB,EAAY,GAAI,GAC/F+mB,EAAcL,IAChBA,EAAaK,EACbztB,EAAS,CAAC0G,EAAa6mB,GAG3B,KAECJ,EAAMG,cAAgBH,EAAMG,cAAc,GAAKH,GAAO5zB,iBAAiBuV,SAAQ,SAAUpI,GACxF,IAAI6mB,EAAUL,EAAMM,gBAAgB9mB,GAChC+mB,EAAcr5B,KAAKkS,IAAIinB,EAAQ,GAAK7mB,EAAY,GAAI,GAAKtS,KAAKkS,IAAIinB,EAAQ,GAAK7mB,EAAY,GAAI,GAC/F+mB,EAAcL,IAChBA,EAAaK,EACbztB,EAAS,CAACutB,EAAS7mB,GAGvB,IAEO,IAAI,KAAW1G,EACxB,CAEA,SAAS5J,GAAgBs3B,GACvB,IAAIC,EAMJ,OALAzjC,GAAIo9B,YAAYxY,SAAQ,SAAUyY,QACNzlB,GAAtBylB,EAAM5yB,IAAI,UAAyB4yB,EAAM5yB,IAAI,WAAa+4B,IAC5DC,EAAcpG,EAElB,IACOoG,CACT,CAEA,SAASC,GAAoBC,GAC3BvjC,GAAWyL,OACb,CAyCA,SAAS+3B,GAAoCnrB,EAAW+kB,GACtD,IACIvnB,EAAW,GAEbA,EADErP,GACS,SAEA,QAGb,MAAMqL,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAIXC,aAAc,CAACgG,GACf/F,aAAc,mBACdC,QAAQ,SAAc,YAAasI,KAErC,IAAIrI,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAM8yB,GAAe,IAAI,MAAU5yB,aAAaF,GAChD,GAAI8yB,EAAah2B,OAAS,EAAG,CAC3BzI,GAA2B,KAC3B,IAAK,IAAIiJ,EAAI,EAAGA,EAAIw1B,EAAah2B,OAAQQ,IACvCjJ,GAA2By+B,EAAax1B,GAGtCmvB,GACFA,GAEJ,CACF,GACJ,CAEA,SAASsG,GAAyBtN,GAChC,IAAIuN,EAAavN,EACdrhB,MAAM,KACNnV,KAAKulB,GAAOxO,KAAK/B,MAAM3R,GAAW2gC,MAAM7zB,QAAQ4U,GAAMA,EAAEzJ,KAAKvQ,YAAcwa,EAAGpQ,MAAM,KAAK,IAAM4P,EAAE5nB,IAAMooB,EAAGpQ,MAAM,KAAK,KAAI,GAAGjZ,SAC/H,OAAO,IAAI6a,KAAK7M,KAAKyf,IAAIoa,GAC3B,CAEA,SAASE,GAAuBzN,GAC9B,IAAI0N,EAAW1N,EACZrhB,MAAM,KACNnV,KAAKulB,GAAOxO,KAAK/B,MAAM3R,GAAW2gC,MAAM7zB,QAAQ4U,GAAMA,EAAEzJ,KAAKvQ,YAAcwa,EAAGpQ,MAAM,KAAK,IAAM4P,EAAE5nB,IAAMooB,EAAGpQ,MAAM,KAAK,KAAI,GAAG9Y,OAC/H,OAAO,IAAI0a,KAAK7M,KAAKi6B,IAAID,GAC3B,CA3qUAh+B,GAAMk+B,OAAS,SAAUC,GACvBpkC,GAAaokC,EAAOC,QAAQ,QAAS,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,QAAS,IAC/EpkC,GAAcD,GACTA,GAAWyK,SAAS,WACvBzK,IAA0B,SAM5BE,GAAY,IAAI,KAChB,IAAIokC,EAAS,IAAIC,GAAA,EAAY,CAC3BC,MAAO,YACPC,OAAQvkC,GACRrJ,MAAO8S,KAQTxJ,GAAa,IAAI,KACjB,IAAIukC,EAAU,IAAIH,GAAA,EAAY,CAC5BC,MAAO,kBACPC,OAAQtkC,KAKNwkC,GAHoCxkC,GAAWgZ,GAAG,aAAcsqB,IAGnC,SAAUl5B,GAUzC,OARIA,EAAQC,IAAI,SACdZ,GAAmBc,UAAUC,QAAQJ,EAAQC,IAAI,UAGjDZ,GAAmBc,UAAUC,QAAQ,IAIhCf,EACT,GACAxJ,GAAa,IAAI,KACjBC,GAAU,IAAIkkC,GAAA,EAAY,CACxBC,MAAO,wBACPC,OAAQrkC,GACRvJ,MAAO8tC,IAETtkC,GAAQukC,YAAW,GAGnBtkC,GAAa,IAAI,KACjB,IAAIukC,EAAU,IAAIN,GAAA,EAAY,CAC5BC,MAAO,kBACPC,OAAQnkC,GACRzJ,MAAO2S,KAILs7B,EAAuB,SAAUv6B,GAEnC,GAAIA,EAAQC,IAAI,cAAe,CAC7B,GAAyC,KAArCD,EAAQC,IAAI,cAAckc,OAC5B,GAAInc,EAAQC,IAAI,aAAc,CAC5B,IAAIhU,EAAO+T,EAAQC,IAAI,aACvBX,GAASa,UAAUC,QAAQnU,EAC7B,MACEqT,GAASa,UAAUC,QAAQ,IAG/B,IAAIo6B,EAAQx6B,EAAQC,IAAI,cACxBX,GAASa,UAAUC,QAAQo6B,EAC7B,MAAO,GAAIx6B,EAAQC,IAAI,aAAc,CAC/BhU,EAAO+T,EAAQC,IAAI,aACvB,GAAID,EAAQC,IAAI,cAAe,CACzBu6B,EAAQx6B,EAAQC,IAAI,cACxBhU,EAAOuuC,EAAQ,IAAMvuC,CACvB,CACAqT,GAASa,UAAUC,QAAQnU,EAE7B,MACEqT,GAASa,UAAUC,QAAQ,IAI7B,OAAOd,EACT,EACAtJ,GAAa,IAAI,KACjB,IAAIykC,EAAU,IAAIT,GAAA,EAAY,CAC5BC,MAAO,sBACPC,OAAQlkC,GACR1J,MAAOiuC,IAE+BvkC,GAAW4Y,GAAG,aAAcnG,IAGpExS,GAAa,IAAI,KACjB,IAAIykC,EAAU,IAAIV,GAAA,EAAY,CAC5BC,MAAO,YACPC,OAAQjkC,GACR3J,MAAOuT,KAIT3J,GAAa,IAAI,KACjB,IAAIykC,EAAU,IAAIX,GAAA,EAAY,CAC5BC,MAAO,gBACPC,OAAQhkC,GACR5J,MAAOwS,KAGT3I,GAAa,IAAI,KACjB,IAAIykC,EAAU,IAAIZ,GAAA,EAAY,CAC5BC,MAAO,gBACPC,OAAQ/jC,GACR7J,MAAOwT,KAGL+6B,EAAY,IAAI98B,GAAA,GAAM,CACxBC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,mBACPC,MAAO,IAETuR,OAAQ,IAEVnQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,QACPC,MAAO,IAETyB,KAAM,IAAIkQ,GAAA,EAAK,CAEb5R,MAAO,YAGXyJ,GAAgB,IAAI,KACpB,IAAI0kC,EAAa,IAAId,GAAA,EAAY,CAC/BC,MAAO,YACPC,OAAQ9jC,GACR9J,MAAOuuC,IAITxkC,GAAa,IAAI,KACjB,IAAI0kC,EAAU,IAAIf,GAAA,EAAY,CAC5BC,MAAO,iBACPC,OAAQ7jC,GACR/J,MAAO8S,KAIT9I,GAAc,IAAI,KAClB,IAAI0kC,EAAW,IAAIhB,GAAA,EAAY,CAC7BC,MAAO,uBACPC,OAAQ5jC,GACRhK,MAAO2S,KAIT1I,GAAc,IAAI,KAClB,IAAI0kC,EAAW,IAAIjB,GAAA,EAAY,CAC7BC,MAAO,sBACPC,OAAQ3jC,GACRjK,MAAOwT,KAILo7B,EAAoB,IAAIn9B,GAAA,GAAM,CAChC/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,yBACPuS,SAAU,CAAC,EAAG,GACdtS,MAAO,MAGX4J,GAAc,IAAI,KAClB,IAAI2kC,EAAW,IAAInB,GAAA,EAAY,CAC7BC,MAAO,qBACPC,OAAQ1jC,GACRlK,MAAO4uC,IAILE,EAAmB,IAAIr9B,GAAA,GAAM,CAC/B/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,sBACPC,MAAO,IAETyB,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,+BAE1B8J,GAAc,IAAI,KAClB,IAAI4kC,EAAW,IAAIrB,GAAA,EAAY,CAC7BC,MAAO,sBACPC,OAAQzjC,GACRnK,MAAO8uC,IAILE,EAAgB,IAAIv9B,GAAA,GAAM,CAC5BC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,uBACPC,MAAO,IAETuR,OAAQ,IAEVnQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,SACPC,MAAO,IAETyB,KAAM,IAAIkQ,GAAA,EAAK,CAEb5R,MAAO,aAGP4uC,EAAc,SAAUv7B,GAC1B,IAAI1T,EAAQ,IAAIyR,GAAA,GAAM,CACpBC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,mBACPC,MAAO,IAETuR,OAAQ,IAEVnQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,QACPC,MAAO,IAETyB,KAAM,IAAIkQ,GAAA,EAAK,CAEb5R,MAAO,UAETyR,KAAM,IAAIC,GAAA,EAAK,CACbC,KAAM,oBACNjQ,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,UACxBqB,OAAQ,IAAIkQ,GAAA,EAAO,CAAEvR,MAAO,QAASC,MAAO,IAC5C4R,UAAW,QACXC,SAAU,OASd,OANIuB,EAAQC,IAAI,YACd3T,EAAM6T,UAAUC,QAAQJ,EAAQC,IAAI,aAEpC3T,EAAM6T,UAAUC,QAAQ,IAGnB9T,CACT,EACAoK,GAAc,IAAI,KAClB,IAAI8kC,EAAW,IAAIxB,GAAA,EAAY,CAC7BC,MAAO,gBACPC,OAAQxjC,GACRpK,MAAOgvC,IAiBLG,EAAgB,IAAI19B,GAAA,GAAM,CAC5B/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,sBACPuS,SAAU,CAAC,GAAI,IACftS,MAAO,MAGP8uC,EACFjmC,GACA,gJACFoB,GAAoB,IAAI,KAAa,CACnCwS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOmyB,EAAc,2BAA6BnyB,EAAO1C,KAAK,KAAO,YACvE,EACA80B,SAAU,QAEZziC,GAAmB,IAAI8gC,GAAA,EAAY,CACjCC,MAAO,mBACPC,OAAQrjC,GACRvK,MAAOmvC,IAGT,IAAIG,EAAmB,IAAI79B,GAAA,GAAM,CAC/B/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,mBACPC,MAAO,IAETyB,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,+BAItBkvC,EACFpmC,GACA,wJAEFkB,GAAuB,IAAI,KAAa,CACtC0S,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOsyB,EAAU,2BAA6BtyB,EAAO1C,KAAK,KAAO,YACnE,EACA80B,SAAU,QAEZ3iC,GAAsB,IAAIghC,GAAA,EAAY,CACpCC,MAAO,uBACPC,OAAQvjC,GACRrK,MAAOsvC,IAGT,IAAIE,EAAmB,IAAI/9B,GAAA,GAAM,CAC/B/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,uBACPC,MAAO,IAETyB,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,+BAGtBovC,EACFtmC,GACA,4JACFmB,GAAuB,IAAI,KAAa,CACtCyS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOwyB,EAAgB,2BAA6BxyB,EAAO1C,KAAK,KAAO,YACzE,EACA80B,SAAU,QAEZ1iC,GAAsB,IAAI+gC,GAAA,EAAY,CACpCC,MAAO,mBACPC,OAAQtjC,GACRtK,MAAOwvC,IAGT,IAAIE,EAAqB,IAAIj+B,GAAA,GAAM,CACjC/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,qBACPC,MAAO,IAETyB,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,+BAEtBsvC,EAAqB,IAAIl+B,GAAA,GAAM,CACjC/P,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,sBACPC,MAAO,IAETyB,KAAM,IAAIkQ,GAAA,EAAK,CAAE5R,MAAO,+BAEtBuvC,EAA4B,SAAUl8B,GAExC,OAAIA,EAAQC,IAAI,SACqB,kBAA/BD,EAAQC,IAAI,QAAQkc,OACf6f,EAKFC,CAEX,EACIE,EACF1mC,GACA,gJACFqB,GAAwB,IAAI,KAAa,CACvCuS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO4yB,EAAiB,2BAA6B5yB,EAAO1C,KAAK,KAAO,YAC1E,EACA80B,SAAU,QAEZxiC,GAAuB,IAAI6gC,GAAA,EAAY,CACrCC,MAAO,uBACPC,OAAQpjC,GACRxK,MAAO4vC,EACPlnC,SAAS,IAGX,IAAIonC,EAAqB,IAAIr+B,GAAA,GAAM,CACjCC,MAAO,IAAIC,GAAA,EAAO,CAChBjQ,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,uBACPC,MAAO,IAETuR,OAAQ,MAGRk+B,EACF5mC,GACA,8IACFsB,GAA8B,IAAI,KAAa,CAC7CsS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO8yB,EAAmB,2BAA6B9yB,EAAO1C,KAAK,KAAO,YAC5E,EACA80B,SAAU,QAEZviC,GAA6B,IAAI4gC,GAAA,EAAY,CAC3CC,MAAO,6BACPC,OAAQnjC,GACRzK,MAAO8vC,EACPpnC,SAAS,IAGX,IAAIu7B,EACF96B,GAAa,mIACfyB,GAAgB,IAAI,KAAa,CAC/BmS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgnB,EAAa,2BAA6BhnB,EAAO1C,KAAK,KAAO,YACtE,EACA80B,SAAU,QAEZpiC,GAAe,IAAIygC,GAAA,EAAY,CAC7BC,MAAO,eACPC,OAAQhjC,GACR5K,MAAOuT,GACP7K,SAAS,IAEX,IAAIy7B,EACFh7B,GAAa,oIACf0B,GAAiB,IAAI,KAAa,CAChCkS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOknB,EAAc,2BAA6BlnB,EAAO1C,KAAK,KAAO,YACvE,EACA80B,SAAU,QAEZniC,GAAgB,IAAIwgC,GAAA,EAAY,CAC9BC,MAAO,gBACPC,OAAQ/iC,GACR7K,MAAOuT,GACP7K,SAAS,IAGX,IAAIsnC,EAAoB,IAAIv+B,GAAA,GAAM,CAChC1P,KAAM,IAAIkQ,GAAA,EAAK,CACb5R,MAAO,6BAETqB,OAAQ,IAAIkQ,GAAA,EAAO,CACjBvR,MAAO,uBACPC,MAAO,MAGP2vC,EACF9mC,GAAa,mIACfgC,GAAwB,IAAI,KAAa,CACvC4R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgzB,EAAqB,2BAA6BhzB,EAAO1C,KAAK,KAAO,YAC9E,EACA80B,SAAU,QAEZ7hC,GAAuB,IAAIkgC,GAAA,EAAY,CACrCC,MAAO,uBACPC,OAAQziC,GACRnL,MAAOgwC,EACPtnC,SAAS,IAEX,IAAIwnC,EACF/mC,GAAa,oIACfiC,GAAyB,IAAI,KAAa,CACxC2R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOizB,EAAsB,2BAA6BjzB,EAAO1C,KAAK,KAAO,YAC/E,EACA80B,SAAU,QAEZ5hC,GAAwB,IAAIigC,GAAA,EAAY,CACtCC,MAAO,wBACPC,OAAQxiC,GACRpL,MAAOgwC,EACPtnC,SAAS,IAGX,IAAIynC,EACFhnC,GACA,wIACF8B,GAAqB,IAAI,KAAa,CACpC8R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOkzB,EAAkB,2BAA6BlzB,EAAO1C,KAAK,KAAO,YAC3E,EACA80B,SAAU,QAEZ/hC,GAAoB,IAAIogC,GAAA,EAAY,CAClCC,MAAO,oBACPC,OAAQ3iC,GACRjL,MAAO8S,GACPpK,SAAS,IAGX,IAAIm9B,EACF18B,GAAa,mIACfwB,GAAgB,IAAI,KAAa,CAC/BoS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO4oB,EAAa,2BAA6B5oB,EAAO1C,KAAK,KAAO,YACtE,EACA80B,SAAU,QAEZtiC,GAAe,IAAI2gC,GAAA,EAAY,CAC7BC,MAAO,eACPC,OAAQjjC,GACR3K,MAAO8S,GACPpK,SAAS,IAGX,IAAI0nC,EACFjnC,GACA,wIACF2B,GAAoB,IAAI,KAAa,CACnCiS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOmzB,EAAiB,2BAA6BnzB,EAAO1C,KAAK,KAAO,YAC1E,EACA80B,SAAU,QAEZriC,GAAmB,IAAI0gC,GAAA,EAAY,CACjCC,MAAO,mBACPC,OAAQ9iC,GACR9K,MAAOivC,EACPvmC,SAAS,IAGX,IAAIg8B,EACFv7B,GAAa,qIACf4B,GAAkB,IAAI,KAAa,CACjCgS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOynB,EAAe,2BAA6BznB,EAAO1C,KAAK,KAAO,YACxE,EACA80B,SAAU,QAEZliC,GAAiB,IAAIugC,GAAA,EAAY,CAC/BC,MAAO,iBACPC,OAAQ7iC,GACR/K,MAAO2S,GACPjK,SAAS,IAEX,IAAIk8B,EACFz7B,GACA,sIACF6B,GAAmB,IAAI,KAAa,CAClC+R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO2nB,EAAgB,2BAA6B3nB,EAAO1C,KAAK,KAAO,YACzE,EACA80B,SAAU,QAEZjiC,GAAkB,IAAIsgC,GAAA,EAAY,CAChCC,MAAO,kBACPC,OAAQ5iC,GACRhL,MAAO2S,GACPjK,SAAS,IAGX,IAAIsZ,EACF7Y,GAAa,qIACfkC,GAA0B,IAAI,KAAa,CACzC0R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO+E,EAAuB,2BAA6B/E,EAAO1C,KAAK,KAAO,YAChF,EACA80B,SAAU,QAEZ3hC,GAAyB,IAAIggC,GAAA,EAAY,CACvCC,MAAO,yBACPC,OAAQviC,GACRrL,MAAO6S,GACPnK,SAAS,IAEX,IAAIuZ,EACF9Y,GACA,sIACFmC,GAA2B,IAAI,KAAa,CAC1CyR,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgF,EAAwB,2BAA6BhF,EAAO1C,KAAK,KAAO,YACjF,EACA80B,SAAU,QAEZ1hC,GAA0B,IAAI+/B,GAAA,EAAY,CACxCC,MAAO,0BACPC,OAAQtiC,GACRtL,MAAO6S,GACPnK,SAAS,IAGX,IAAI2nC,EACFlnC,GACA,0IACF+B,GAAuB,IAAI,KAAa,CACtC6R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOozB,EAAoB,2BAA6BpzB,EAAO1C,KAAK,KAAO,YAC7E,EACA80B,SAAU,QAEZ9hC,GAAsB,IAAImgC,GAAA,EAAY,CACpCC,MAAO,sBACPC,OAAQ1iC,GACRlL,MAAO2S,GACPjK,SAAS,IAGX,IAAI4nC,EACFnnC,GACA,wIACFuB,GAAmB,IAAI,KAAa,CAClCqS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOqzB,EAAY,2BAA6BrzB,EAAO1C,KAAK,KAAO,YACrE,EACA80B,SAAU,QAEZhiC,GAAc,IAAIqgC,GAAA,EAAY,CAC5BC,MAAO,cACPC,OAAQljC,GACR1K,MAAOiuC,EACPvlC,SAAS,IAQX,IAAI6nC,EAAS,IAAIC,GAAA,EAAU,CACzB5C,OAAQ,IAAI6C,GAAA,EAAI,CACdzzB,IAAK,gFACL0zB,YAAa,gBAGbC,EAAW,IAAIH,GAAA,EAAU,CAC3B5C,OAAQ,IAAI6C,GAAA,EAAI,CACdzzB,IAAK,oFACL0zB,YAAa,gBAIjB3iC,GAAwB/O,SAAS0b,eAAe,SAChD1M,GAAsBhP,SAAS0b,eAAe,iBAC9CzM,GAAqBjP,SAAS0b,eAAe,gBAE7CxM,GAAe,IAAI0iC,GAAA,EAAQ,CACzBC,QAAS9iC,GAMT+iC,WAAW,IAGb7iC,GAAmB+M,QAAU,WAG3B,OAFA9M,GAAa6iC,iBAAYjwB,GACzB7S,GAAmB+iC,QACZ,CACT,EAEA,MAAMC,EAAkB,IAAIL,GAAA,EAAQ,CAClCC,QAAS7xC,SAAS0b,eAAe,YAGnCu2B,EAAgB3uB,GAAG,mBAAmB,SAAU4uB,GAC9CzwC,KAAK0wC,UAAU,CAAC,GAAI,IACtB,IAEAnyC,SAAS0b,eAAe,gBAAgBG,UAAY,GAGpD3R,GAAM,IAAI,KAAM,CACdkoC,UAAU,WAAkBC,OAAO,CACjC,IAAIC,GAAA,EAAU,CACZhoB,MAAO,aAGXvoB,OAAQ,eACRwwC,OAAQ,CACNhB,EACAI,EACA9jC,GACAc,GACAD,GACAH,GACAH,GACAD,GACAJ,GACAU,GACAD,GACAF,GACAJ,GACAD,GACAH,GACAO,GACA0hC,EACAG,EACAL,EACAH,EACAV,EACAS,EACAL,EACAX,EACAI,EACArkC,GACA2kC,EACAE,EACAM,EACAL,EACAthC,GACAwhC,GAGFgD,SAAU,CAACtjC,GAAc+iC,GACzBQ,KAAM,IAAIC,GAAA,GAAK,CAEbC,WAAY,YAGZC,OAAQ,CAAC,aAAc,aAEvBC,KAAM,OASV,IAiBIC,EAjBA3vB,EAAWnjB,SAAS0b,eAAe,yBAEvCyH,EAASniB,MAAM2a,QAAU,OAGzBpP,IAAa,SAAOkiC,GACpBjiC,IAAc,SAAOqiC,GACrBpiC,IAAc,SAAOjC,IACrBkC,IAAc,SAAOsiC,GACrBriC,IAAc,SAAOwiC,GACrBviC,IAAc,SAAOwiC,GACrBviC,IAAc,SAAOwiC,GACrBviC,IAAwB,SAAOY,IAC/BX,IAAwB,SAAOY,IAC/BX,IAAyB,SAAOa,IAIhC3D,GAAI6oC,kBAAkBjkB,SAAQ,SAAUkkB,GAClCA,aAAuBC,GAAA,IACzBH,EAAeE,EAEnB,IAEIF,GACF5oC,GAAI8L,kBAAkB88B,GAoJxB5oC,GAAIoZ,GAAG,eAAe,SAAUuqB,GAC9B/2B,QAAQC,IAAI,uBAAwBzG,IACpCwG,QAAQC,IAAI,0BAA2BxG,IACvCuG,QAAQC,IAAI,oCAAqCvG,IACjD,MAAM0iC,EAAoBrF,EAAEsF,WAE5B,GADA/nC,GAAY2K,QACRzF,GAAsB,CACxB,IAAI8iC,GAAkB,EAOtB,GANAlpC,GAAImpC,sBAAsBxF,EAAEyF,OAAO,SAAU5+B,GACvCA,EAAQqc,IAAI6B,QAAQ,mCAAqC,IAC3DwgB,GAAkB,EAEtB,IAEIA,EACF,OAGFlpC,GAAImpC,sBAAsBxF,EAAEyF,OAAO,SAAU5+B,GAE3C,GAAIA,EAAQqc,IAAI6B,QAAQ,+BAAiC,EAAG,CAC1D,IAAI2gB,EAAW5hC,GAA6BihB,QAAQle,GAChD6+B,EAAW,GACb5hC,GAA6B3K,KAAK0N,GAClCA,EAAQmN,SAASrO,MAEjBsD,QAAQC,IAAI,iBACZD,QAAQC,IAAIw8B,GACZ5hC,GAA6B2xB,OAAOiQ,EAAU,GAC9C7+B,EAAQmN,cAASC,GAErB,CACF,IACAhL,QAAQC,IAAIpF,GACd,MAAWpB,GACTrG,GAAImpC,sBAAsBxF,EAAEyF,OAAO,SAAU5+B,GAG3C,GAFAoC,QAAQC,IAAI,cAAerC,EAAQqc,KAE/Brc,EAAQqc,IAAI6B,QAAQ,mCAAqC,EAAG,CAC9D,IAAI2gB,EAAW5hC,GAA6BihB,QAAQle,GAChD6+B,EAAW,GACb5hC,GAA6B3K,KAAK0N,GAClCA,EAAQmN,SAASrO,MAEjBsD,QAAQC,IAAI,iBACZD,QAAQC,IAAIw8B,GACZ5hC,GAA6B2xB,OAAOiQ,EAAU,GAC9C7+B,EAAQmN,cAASC,GAErB,CACF,IACStR,GACTtG,GAAImpC,sBAAsBxF,EAAEyF,OAAO,SAAU5+B,GAC3C,GAAIA,EAAQqc,IAAI6B,QAAQ,uBAAyB,EAAG,CAClD,IAAI2gB,EAAW5hC,GAA6BihB,QAAQle,GAChD6+B,EAAW,GACb5hC,GAA6B3K,KAAK0N,GAClCA,EAAQmN,SAASrO,MAEjBsD,QAAQC,IAAI,iBACZD,QAAQC,IAAIw8B,GACZ5hC,GAA6B2xB,OAAOiQ,EAAU,GAC9C7+B,EAAQmN,cAASC,GAErB,CACF,IACSnR,GACTzG,GAAImpC,sBAAsBxF,EAAEyF,OAAO,SAAU5+B,GAG3C,GAFAoC,QAAQC,IAAI,UAAWrC,GAEnBA,EAAQqc,IAAI6B,QAAQ,qBAAuB,EAAG,CAChD,IAAI2gB,EAAW5hC,GAA6BihB,QAAQle,GAChD6+B,EAAW,GACb5hC,GAA6B3K,KAAK0N,GAClCA,EAAQmN,SAASrO,MAEjBsD,QAAQC,IAAI,iBACZD,QAAQC,IAAIw8B,GACZ5hC,GAA6B2xB,OAAOiQ,EAAU,GAC9C7+B,EAAQmN,cAASC,GAErB,CACF,IACSjR,GAET3G,GAAImpC,sBAAsBxF,EAAEyF,OAAO,SAAU5+B,GAG3C,GAA+B,kBAApBA,EAAQkC,cAEZ,GAAIlC,EAAQkC,QAAQgc,QAAQ,qBAAuB,GAAwB,OAAnBle,EAAQ8+B,SAErE18B,QAAQC,IAAI,WACZD,QAAQC,IAAIrC,GAERA,EAAQC,IAAI,aAAa,CAE3B,IAAI+L,EAAahM,EAAQC,IAAI,cAC7BmC,QAAQC,IAAI,uBAAwB2J,GACpC,IAAI+yB,EAAW/+B,EAAQC,IAAI,WAC3BmC,QAAQC,IAAI,YACZD,QAAQC,IAAI08B,GACPA,IACHA,EAAW,IAEb,IAAIC,EAAch/B,EAAQC,IAAI,iBAC1Bg/B,EAAUj/B,EAAQC,IAAI,aACtBi/B,EAASl/B,EAAQC,IAAI,YACrBk/B,EAAYn/B,EAAQC,IAAI,eACxBm/B,EAAqBp/B,EAAQC,IAAI,cACjCo/B,EAAWr/B,EAAQC,IAAI,sBAAwBD,EAAQC,IAAI,sBAAwB,mBACnFq/B,EAAgBt/B,EAAQC,IAAI,wBAA0BD,EAAQC,IAAI,wBAA0BD,EAAQC,IAAI,eAKxGs/B,GAJAF,EAAWr/B,EAAQC,IAAI,sBAAwBD,EAAQC,IAAI,sBAAwB,mBACnFq/B,EAAgBt/B,EAAQC,IAAI,wBAA0BD,EAAQC,IAAI,wBAA0BD,EAAQC,IAAI,eACxGo/B,EAAWr/B,EAAQC,IAAI,sBAAwBD,EAAQC,IAAI,sBAAwB,mBACnFq/B,EAAgBt/B,EAAQC,IAAI,wBAA0BD,EAAQC,IAAI,wBAA0BD,EAAQC,IAAI,eAC5F+J,KAAKQ,MAAM40B,IACvBI,EAAiB,GACjBC,GAAW,EACXC,EAAYR,EACZC,EAAY,GAAKA,IAAcD,IACjCQ,EAAYP,GAEVz/B,KAAKyB,MAAMu+B,IAAchgC,KAAKyB,MAAM69B,GACtCQ,EAAiB,0BAEjBA,EAAiB,wBACjBC,GAAW,GAIb,IAAIE,EAAyBr0C,SAAS0b,eAAe,oBACjD44B,EAAsBt0C,SAAS0b,eAAe,iBAC9C64B,EAA0Bv0C,SAAS0b,eAAe,qBAClD84B,EAAwBx0C,SAAS0b,eAAe,mBAEhD+4B,GADuBz0C,SAAS0b,eAAe,kBACxB1b,SAAS0b,eAAe,wBAC/Cg5B,EAAsB10C,SAAS0b,eAAe,sBAC9Ci5B,EAAuB30C,SAAS0b,eAAe,kBAC/Ck5B,EAA4B50C,SAAS0b,eAAe,uBACpDm5B,EAA0B70C,SAAS0b,eAAe,mBAClDo5B,EAA6B90C,SAAS0b,eAAe,mBACrDq5B,EAAyB/0C,SAAS0b,eAAe,oBACjDq5B,EAAyB/0C,SAAS0b,eAAe,oBAGrD,MAAOm5B,EAAwBG,gBAC7BH,EAAwBt1C,YAAYs1C,EAAwBI,WAI9D,IAAIC,EAAMl1C,SAASC,cAAc,MAC7Bk1C,EAAMn1C,SAASC,cAAc,MACjCk1C,EAAIC,aAAa,UAAW,KAC5BD,EAAIt5B,UAAY,YAChBq5B,EAAI90C,YAAY+0C,GAChBN,EAAwBz0C,YAAY80C,GAGpC,IAAIG,EAAMr1C,SAASC,cAAc,MAC7Bq1C,EAAMt1C,SAASC,cAAc,MAC7Bs1C,EAAMv1C,SAASC,cAAc,MAGjCq1C,EAAIz5B,UAAY,YAChB05B,EAAI15B,UAAY,YAGhBw5B,EAAIj1C,YAAYk1C,GAChBD,EAAIj1C,YAAYm1C,GAEhBV,EAAwBz0C,YAAYi1C,GAKpCpB,EAAYA,EAAU55B,QAAQm7B,GAAMA,EAAE7U,WACtC,IAAK,IAAIpoB,EAAI,EAAGA,EAAI07B,EAAUl8B,OAAQQ,IAAK,CACzC,IAAIk9B,EAAUxB,EAAU17B,GAExB,GAA2B,GAAvBk9B,EAAQ7Y,YAAZ,CAIA,IAAI8D,EAAW+U,EAAQ/U,SACnBgV,EAASD,EAAQ9U,SAAS3rB,QAAQ,GAWlC2gC,EAAM31C,SAASC,cAAc,MAC7B21C,EAAM51C,SAASC,cAAc,MACjC21C,EAAI50C,MAAM60C,SAAW,OACrB,IAAIC,EAAM91C,SAASC,cAAc,MAIjC21C,EAAI/5B,UAAY6kB,EAChBoV,EAAIj6B,UAAY65B,EAEZthC,KAAKyB,MAAM4/B,EAAQ9U,WAAavsB,KAAKyB,MAAM69B,GAC7CoC,EAAI90C,MAAMK,MAAQ,QAElBy0C,EAAI90C,MAAMK,MAAQ,MAEpBs0C,EAAIv1C,YAAYw1C,GAChBD,EAAIv1C,YAAY01C,GAEhBjB,EAAwBz0C,YAAYu1C,EAhCpC,CAkDF,CAGA,IAAII,EAAM/1C,SAASC,cAAc,MAC7B+1C,EAAMh2C,SAASC,cAAc,MACjC+1C,EAAIZ,aAAa,UAAW,KAC5BY,EAAIn6B,UAAY,eAChBk6B,EAAI31C,YAAY41C,GAChBnB,EAAwBz0C,YAAY21C,GAGpC,IAAIE,EAAMj2C,SAASC,cAAc,MAC7Bi2C,EAAMl2C,SAASC,cAAc,MAC7B+1C,EAAMh2C,SAASC,cAAc,MACjCi2C,EAAIr6B,UAAY,YAChBm6B,EAAIn6B,UAAY,YAChBo6B,EAAI71C,YAAY81C,GAChBD,EAAI71C,YAAY41C,GAChBnB,EAAwBz0C,YAAY61C,GAGpC,IAAK,IAAI19B,EAAI,EAAGA,EAAI07B,EAAUl8B,OAAQQ,IAAK,CACrCk9B,EAAUxB,EAAU17B,GAExB,GAA2B,GAAvBk9B,EAAQ7Y,YAAZ,CAII8D,EAAW+U,EAAQ/U,SACnBgV,EAASD,EAAQ9U,SAAS3rB,QAAQ,GADtC,IAGImhC,EAAMn2C,SAASC,cAAc,MAC7Bm2C,EAAMp2C,SAASC,cAAc,MACjCm2C,EAAIp1C,MAAM60C,SAAW,OACrB,IAAIQ,EAAMr2C,SAASC,cAAc,MACjCm2C,EAAIv6B,UAAY6kB,EAChB2V,EAAIx6B,UAAY65B,EACZthC,KAAKyB,MAAM4/B,EAAQ9U,WAAavsB,KAAKyB,MAAM69B,GAC7C2C,EAAIr1C,MAAMK,MAAQ,QAElBg1C,EAAIr1C,MAAMK,MAAQ,MAEpB80C,EAAI/1C,YAAYg2C,GAChBD,EAAI/1C,YAAYi2C,GAChBxB,EAAwBz0C,YAAY+1C,EAlBpC,CAmBF,CAEA9B,EAAuBx4B,UAAYq4B,EAEjCG,EAAuBrzC,MAAMK,MAD3B8yC,EACmC,MAEA,QAEvCG,EAAoBz4B,UAAY43B,EAChCc,EAAwB14B,UAAY+3B,EAAO5+B,QAAQ,GACnDw/B,EAAsB34B,UAAYg4B,EAAU7+B,QAAQ,GAEpDy/B,EAAqB54B,UAAY63B,EACjCiB,EAAqB94B,UAAYk4B,EAASvF,QAAQ,IAAK,MACvDoG,EAA0B/4B,UAAYm4B,EAAch/B,QAAQ,GAC5D2/B,EAAqB94B,UAAYk4B,EAASvF,QAAQ,IAAK,MACvDoG,EAA0B/4B,UAAYm4B,EAAch/B,QAAQ,GAC5D0/B,EAAoB74B,UAAY83B,EAGhCzkC,GAAa6iC,YAAYmB,GAGzB4B,EAA2B94B,QAAU,WAEnCjL,GAA0B2P,EAE1BpgB,OAAOg2C,SAASC,KAAO,GAAGj2C,OAAOg2C,SAASE,uBAG5C,EAGAzB,EAAuB/4B,QAAU,WAE/B1b,OAAOg2C,SAASC,KAAO,GAAGj2C,OAAOg2C,SAASE,6BAA6B9hC,EAAQC,IAAI,OACrF,EACAmC,QAAQC,IAAI,wBAAyB7E,IACrC4E,QAAQC,IACN,wBACA7E,GAAsBmI,QAAQkJ,GAAMA,EAAE5O,IAAI,gBAAkB+L,KAG9DxO,GAAsBmI,QAAQkJ,GAAMA,EAAE5O,IAAI,gBAAkB+L,IAAYoO,SAASrJ,GAAMra,GAAYyL,WAAW4O,IAChH,CAEJ,IAGAvb,GAAImpC,sBAAsBxF,EAAEyF,OAAO,SAAU5+B,GAC3CoC,QAAQC,IAAI,cAAerC,EAAQqc,IACrC,GAEJ,IAEA7mB,GAAIoZ,GAAG,eAAe,SAAUuqB,GAC9B,GAAI17B,GAAS,CACX,MAAM+gC,EAAoBrF,EAAEsF,WAC5B,GAAID,EAAkBn7B,OAAS,EAAG,CAChCk6B,EAAgBF,YAAYmB,GAC5B,IAAIuD,GAAS,SAAUvD,EAAmB,YAAa,aACvDlzC,SAAS0b,eAAe,YAAYG,UAAYzH,KAAKyB,MAAkB,IAAZ4gC,EAAO,IAAa,IAC/Ez2C,SAAS0b,eAAe,WAAWG,UAAYzH,KAAKyB,MAAkB,IAAZ4gC,EAAO,IAAa,GAChF,CACF,MACExE,EAAgBF,iBAAYjwB,EAEhC,GACF,EAIA1R,GAAMsmC,2BAA6B,WACjC,OAAO3lC,EACT,EAGAX,GAAMumC,6BAA+B,WACnC7/B,QAAQC,IAAI,mCACZhG,GAA0B,CAC5B,EAGAX,GAAMwmC,iBAAmB,SAAUC,GACjCrsC,GAAQukC,YAAW,GACnB/gC,GAAiB+gC,YAAW,GAC5B58B,IAAU,EACV,IAAIgE,EAAYC,GAAgB,gBAChCD,EAAUE,QAAQ3M,SAAU,EACxByM,EAAYC,GAAgB,iBAChCD,EAAUE,QAAQ3M,SAAU,EAExBmtC,GACEA,EAAe,IACjBplC,GAAeolC,GAInB5pC,GAAW,IAAI6pC,GAAA,GAAK,CAClBlI,OAAQvkC,GACR1H,KAAM,YAERuH,GAAI0T,eAAe3Q,IAEnBA,GAASqW,GAAG,WAAW,SAAUuqB,GAK/BxjC,GAAU0L,QA2DVzD,GAAmB,KACnBC,GAAmBs7B,EAAEn5B,QAErB4B,GAAkBu3B,EAAEn5B,QAASjD,IAI7BvH,GAAI8L,kBAAkB/I,GACxB,GACF,EAGAmD,GAAM2mC,cAAgB,WACpBjhC,IACF,EAEA1F,GAAMyJ,aAAe,SAAUpI,GACJ,OAArBc,KACFuE,QAAQC,IAAI,oBACZ8C,GAAatH,GAAkBd,IAER,OAArBa,KACFwE,QAAQC,IAAI,qBACZ8C,GAAavH,GAAkBb,GAEnC,EAGArB,GAAM4mC,sBAAwB,SAAUH,EAAcI,GACpD,IAAI9gC,EAAYC,GAAgB,qBAChCD,EAAUE,QAAQ3M,SAAU,EAExBmtC,GACEA,EAAe,IACjBplC,GAAeolC,GAInB5pC,GAAW,IAAI6pC,GAAA,GAAK,CAClBlI,OAAQ7jC,GACRpI,KAAM,YAERuH,GAAI0T,eAAe3Q,IAEnBA,GAASqW,GAAG,WAAW,SAAUuqB,GAC/B,IAAIn2B,EAAS3M,GAAWmO,cAAcnB,OAAS,EAE3Cm/B,EAAWrJ,EAAEn5B,QACjBwiC,EAASvgC,MAAMe,GAEfD,GAAuBo2B,EAAEn5B,QAASjD,GAAciG,EAAQu/B,GAExD/sC,GAAI8L,kBAAkB/I,GACxB,GACF,EAEAmD,GAAM+mC,mBAAqB,WACzBlhC,IACF,EA4IA7F,GAAMgnC,gBAAkB,SAAUC,EAAMR,EAAcv4B,GACpDxH,QAAQC,IAAI,yBAEZ,IAAIugC,EAAYT,EAChBU,QACE,CAAEv5B,IAAKq5B,EAAMG,SAAU,UACvB,SAAUhvB,GACR1R,QAAQC,IAAIyR,GAEZ,IAAIivB,EAAW,IAAI,KACnB,MAAM1J,EAAe0J,EAASt8B,aAAaqN,EAAS,CAClDkvB,kBAAmBxtC,GAAIsa,UAAUmzB,kBAEnC7gC,QAAQC,IAAI7M,GAAIsa,UAAUmzB,iBAC1B7gC,QAAQC,IAAI,YACZD,QAAQC,IAAI0gC,GAGZ,IAAIG,EAAUhgC,GAAwBm2B,GACtC,GAAI6J,EAAQ7/B,OAAS,EAAG,CACtB,IAAI8/B,EAAMD,EAAQr8B,KAAK,gBACvBC,GAAUq8B,GACVv5B,GAAS,EACX,KAAO,CACL,IAAIw5B,EAAmB/J,EAAa,GAGhC53B,EAAYC,GAAgB,aAChCD,EAAUkG,YAAYtG,QACtBI,EAAUkG,YAAYxF,WAAWihC,GACjChhC,QAAQC,IAAIZ,EAAUkG,aACtBnS,GAAIsa,UAAUC,IAAItO,EAAUkG,YAAYqI,aAExCpS,GAAmB,KACnBC,GAAmBulC,EAEnBxhC,GAAkBwhC,EAAkBR,GAEpCh5B,GAAS,EACX,CACF,IACA,SAAUO,GACRoG,MAAMpG,EACR,GAgBJ,EAGAzO,GAAM2nC,gBAAkB,SAAUV,EAAMR,EAAcv4B,GACpDxH,QAAQC,IAAI,yBAEZ,IAAIugC,EAAYT,EAChBU,QACE,CAAEv5B,IAAKq5B,EAAMG,SAAU,UACvB,SAAUhvB,GACR1R,QAAQC,IAAIyR,GACZ,IAAIivB,EAAW,IAAI,KACnB,MAAMp6B,EAAeo6B,EAASt8B,aAAaqN,EAAS,CAClDkvB,kBAAmBxtC,GAAIsa,UAAUmzB,kBAEnC7gC,QAAQC,IAAI7M,GAAIsa,UAAUmzB,iBAC1B7gC,QAAQC,IAAI,YACZD,QAAQC,IAAI0gC,GACZ,IAAIG,EAAUhgC,GAAwByF,GACtC,GAAIu6B,EAAQ7/B,OAAS,EAAG,CACtB,IAAI8/B,EAAMD,EAAQr8B,KAAK,gBACvBC,GAAUq8B,GACVv5B,EAAS,EAAG,IAAI,EAClB,KAAO,CACL,IAAInI,EAAYC,GAAgB,aAChCD,EAAUkG,YAAYtG,QAGtB,IAAIiiC,EAAY36B,EAAa,GACzB46B,EAAYx3C,OAAOs8B,KAAKib,EAAUpQ,iBAClCsQ,EAAiB,GACrB,IAAK,IAAI3/B,EAAI,EAAGA,EAAI0/B,EAAUlgC,OAAQQ,IAAK,CACzC,IAAI4/B,EAASF,EAAU1/B,GAClB4/B,EAAOC,oBAAoBxjC,SAAS,SACvCsjC,EAAelxC,KAAKmxC,EAExB,CAGA,IAAK,IAAI5/B,EAAI,EAAGA,EAAI8E,EAAatF,OAAQQ,IAAK,CAC5C,IAAIoP,EAActK,EAAa9E,GAC/BoP,EAAYtQ,IAAI,KAAMkB,EAAI,GAG1BpC,EAAUkG,YAAYxF,WAAW8Q,EACnC,CACAzd,GAAIsa,UAAUC,IAAItO,EAAUkG,YAAYqI,aAExCpG,EAASjB,EAAatF,OAAQmgC,GAAgB,GAE9C3lC,GAAmB,KACnBD,GAAmB+K,EAEnBxE,GAAkBwE,EAAci6B,EAClC,CACF,IACA,SAAUz4B,GACRoG,MAAMpG,EACR,GAEJ,EAGAzO,GAAMioC,mBAAqB,SAAUC,EAAWh6B,GAC9C,IAAInI,EAAYC,GAAgB,aAC5BmiC,EAAkBpiC,EAAUkG,YAAYnD,cACxCs/B,EAAY,GAChBjuC,GAAWwL,QACX,IAAK,IAAIwC,EAAI,EAAGA,EAAIggC,EAAgBxgC,OAAQQ,IAC1C,IAAK,IAAIE,EAAI,EAAGA,EAAI8/B,EAAgBxgC,OAAQU,IAAK,CAC/C,IAAI4qB,EAAUkV,EAAgB9/B,GAC1BggC,EAAYpV,EAAQ1uB,IAAI,MACxB+jC,EAAcrV,EAAQ1uB,IAAI2jC,GAC9B,GAAIG,IAAclgC,EAAI,EAAG,CACvBigC,EAAUxxC,KAAK0xC,GAEf,IAAIvhC,EAAeC,GAAgBisB,GACnClsB,EAAaE,IAAI,QAASqhC,GAC1BnuC,GAAWsM,WAAWM,GAGtB,KACF,CACF,CAGFmH,EAASk6B,EACX,EAEApoC,GAAMuoC,kBAAoB,SAAUC,GAClC9nC,GAAqB8nC,CACvB,EACAxoC,GAAMyoC,kBAAoB,SAAUD,GAClC,OAAO9nC,EACT,EA4lBAV,GAAM0oC,gBAAkB,WACtB,OAAOhqC,EACT,EAEAsB,GAAM2oC,kBAAoB,WACxB5mC,IAAU,EACVjI,GAAI8L,kBAAkB/I,IACtBuV,IACF,EAEApS,GAAM4oC,uBAAyB,SAAU16B,GACvCnM,IAAU,EACVlF,GAAW,IAAI6pC,GAAA,GAAK,CAClBlI,OAAQtkC,GACR3H,KAAM,eAERuH,GAAI0T,eAAe3Q,IACnBzC,GAAQukC,YAAW,GACnB/gC,GAAiB+gC,YAAW,GAE5B9hC,GAASqW,GAAG,WAAW,SAAUuqB,GAS/B,MAAM1E,EAAS,IAAI,KACnBA,EAAOC,OAAO,KAAO,KAAYC,GAAA,EAAY,MAASC,GAAA,EAAYC,GAAA,EAAiB9vB,GAAA,GAQnF,IAAIvC,EAAQ,EAEZ,IAAK,IAAIqB,EAAI,EAAGA,EAAIlO,GAAU6O,cAAcnB,OAAQQ,IAAK,CACvD,IAAI/B,EAAcnM,GAAU6O,cAAcX,GAI1C,GAAII,GAAYk1B,EAAEn5B,QAAS8B,GAAc,CAGvC,IAAIuzB,EAAWf,GAAYxyB,EAAaq3B,EAAEn5B,SACtCq1B,EAASkP,MAAMlhC,QAAU,GAM3BgyB,EAASkP,MAAMnqB,SAAS9N,IACtB,IAAIk4B,EAAmB,IAAI,KAAQ,CACjC1/B,SAAU,IAAI,MAAQ2vB,EAAO2C,MAAM9qB,GAAMzH,oBAKvC4wB,GAA+B+O,EAAkB1iC,IAC/C81B,GAAY4M,IACd7uC,GAAUwM,WAAWqiC,GACrBhiC,GAAgB,EAChBgiC,EAAiBviC,MAAMO,IAMzB7M,GAAUsT,cAAcnH,EAC1B,IAWFnM,GAAUsT,cAAcnH,KAMxBU,GAAgB,EAChBV,EAAYG,MAAMO,GAEtB,MAKEA,GAAgB,EAChBV,EAAYG,MAAMO,EAEtB,CACAoH,EAASpH,EAAQ,GAkCjBA,EAAQ,EACR3M,GAAWwL,QACX,IAAK,IAAIwC,EAAI,EAAGA,EAAIlO,GAAU6O,cAAcnB,OAAQQ,IAAK,CACnD/B,EAAcnM,GAAU6O,cAAcX,GAK1CrB,GAAgB,EAIhB,IAAIC,EAAeC,GAAgBZ,GACnCW,EAAaE,IAAI,QAASH,EAAMjC,YAChC1K,GAAWsM,WAAWM,GACtBX,EAAYa,IAAI,KAAMH,EACxB,CAEAhN,GAAI8L,kBAAkB/I,GACxB,GACF,EAEAmD,GAAM+oC,cAAgB,WACpB9uC,GAAU0L,QACVxL,GAAWwL,QAEXjL,GAAciL,QACdlL,GAAWkL,QACXnL,GAAWmL,QACXrL,GAAWqL,QACXlF,IAAqB,EAErB,IAAIuoC,EAAYzuC,GAAWuO,cACvB4rB,EAAWsU,EAAU,GACrB3iC,EAAYquB,EAASpuB,QACzBD,EAAUE,MAAMmuB,EAASluB,SACzBvM,GAAUwM,WAAWJ,GAGrB,IAAIS,EAAQ,EACRC,EAAeC,GAAgB0tB,GACnC3tB,EAAaE,IAAI,QAAS,QAAUH,EAAMjC,YAC1C1K,GAAWsM,WAAWM,GAEtBjN,GAAI8L,kBAAkB/I,GACxB,EAEAmD,GAAMipC,YAAc,WAClBvjC,KACAI,IACF,EAEA9F,GAAMkpC,wBAA0B,WAC9BnnC,IAAU,EACVjI,GAAI8L,kBAAkB/I,GACxB,EAEAmD,GAAMmpC,oBAAsB,WAC1BlpC,IAAmBA,EACrB,EAEAD,GAAMopC,kBAAoB,SAAUC,GAC9BxsC,IACF/C,GAAI8L,kBAAkB/I,IAGxBA,GAAW,IAAI6pC,GAAA,GAAK,CAClBlI,OAAQlkC,GACR/H,KAAM,UAERmU,QAAQC,IAAI,YAAa0iC,GACzB,IAAIC,EAAMD,EAAQE,aAClBxqC,GAAQuqC,EACR,IAAIE,EAAUH,EAAQI,IACtB/iC,QAAQC,IAAI,UAAW6iC,GACvB,IAAIE,EAAUL,EAAQj0B,KAEtBvY,GAASqW,GAAG,WAAW,SAAUuqB,GAE/B/E,GAAyB35B,IAUzB2H,QAAQC,IAAI,kBAAmB5H,IAC/B2H,QAAQC,IAAI82B,GACZ,IAAIqJ,EAAWrJ,EAAEn5B,QACjBwiC,EAASvgC,MAAMxH,IACf+nC,EAAS7/B,IAAI,YAAauiC,GAC1B1C,EAAS7/B,IAAI,OAAQyiC,GACrBhjC,QAAQC,IAAI,UAAW6iC,GACvB9iC,QAAQC,IAAI,yBACZD,QAAQC,IAAImgC,GAGZhtC,GAAI8L,kBAAkB/I,IACtB6J,QAAQC,IAAI,0BACd,IAEA7M,GAAI0T,eAAe3Q,GACrB,EACAmD,GAAM2pC,mBAAqB,WACzB7vC,GAAI8L,kBAAkB/I,GACxB,EACAmD,GAAM4pC,qBAAuB,SAAUC,GACrC/vC,GAAI8L,kBAAkB/I,IACtB67B,GAAyBmR,EAC3B,EA8DA7pC,GAAM8pC,wBAA0B,WAK9BhqC,GAAsB,GAEtB,MAAMiM,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,cACfC,aAAc,mBACdC,QAAQ,SAAc,YAAahL,MAErC,IAAIiL,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GAGd,OAFAlE,QAAQC,IAAI,oCAAsC1H,GAAiB4F,WAAa,KAChF6B,QAAQC,IAAIiE,GACLA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMk/B,GAAkB,IAAI,MAAUh/B,aAAaF,GACnD,GAAIk/B,EAAgBpiC,OAAS,EAAG,CAC9B,IAAK,IAAIQ,EAAI,EAAGA,EAAI4hC,EAAgBpiC,OAAQQ,IAAK,CAC/C,IAAI6hC,EAAiBD,EAAgB5hC,GACjCiH,EAAQ46B,EAAezlC,IAAI,SAC/BmC,QAAQC,IAAI,SACZD,QAAQC,IAAIyI,GACZ,IAAI+b,EAAa6e,EAAezlC,IAAI,cAChC4mB,EAAWte,cAAc2V,QAAQ,aAAe,EAElDwnB,EAAeC,YAAY,MAG3BD,EAAeC,YAAY96B,GAAmCC,IAGhEtP,GAAoBlJ,KAAKozC,EAC3B,CAEA,IAAIj5B,EAAO,SACPC,EAAqB,+BACrBC,EAAY,aAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQxD,GACzD,CACF,GACJ,EAqDAzN,GAAMkqC,KAAO,SAAUj8B,GACrB5Q,GAAsB,CACxB,EAwBA2C,GAAMmqC,uBAAyB,SAAUl8B,GACvC,OAAO5Q,EACT,EA8CA2C,GAAMoqC,mBAAqB,SAAUn8B,EAAWo8B,EAAOC,EAAUp8B,GAC/D9T,GAAQukC,YAAW,GACnB/gC,GAAiB+gC,YAAW,GAC5BrkC,GAAWqL,QACXlL,GAAWkL,QACX5K,GAAY4K,QAIZ1G,GAAmBgP,EACnBzP,GAAa6rC,EACbntC,GAAoBotC,EACpB5jC,QAAQC,IAAI,oBACZD,QAAQC,IAAI1H,IACZyH,QAAQC,IAAI,cACZD,QAAQC,IAAInI,IACZkI,QAAQC,IAAI,YACZD,QAAQC,IAAI2jC,GAEZ9V,GAAmBvmB,EAAWC,EAKhC,EAEAlO,GAAMuqC,sBAAwB,SAAUt8B,GACtCqmB,GAAyBrmB,EAC3B,EAEAjO,GAAMwqC,yBAA2B,SAAU7kC,GACrCA,IAEFpL,GAAWoL,QACXtL,GAAWsL,QACX1L,GAAU0L,QACVhL,GAAWgL,QACX/K,GAAY+K,SAId,IAAI8kC,EAAa,GAEfA,EAAazkC,GADXtF,GAC2B,gBAEA,gBAE/B,IAAIgqC,EAAgBD,EAAWx+B,YAAYnD,cAE3C,IAAK,IAAIX,EAAI,EAAGA,EAAIuiC,EAAc/iC,OAAQQ,IAAK,CAC7C,IAAIwiC,EAAeD,EAAcviC,GAEjC5N,GAAWkM,WAAWkkC,EACxB,CACAF,EAAWxkC,QAAQ3M,SAAU,EAI7B,IAAIsxC,EAAe,GAEjBA,EAAe5kC,GADbtF,GAC6B,kBAEA,kBAEjC,IAAImqC,EAAkBD,EAAa3+B,YAAYnD,cAE/C,IAAK,IAAIX,EAAI,EAAGA,EAAI0iC,EAAgBljC,OAAQQ,IAAK,CAC/C,IAAI2iC,EAAiBD,EAAgB1iC,GAErC9N,GAAWoM,WAAWqkC,EACxB,CACAF,EAAa3kC,QAAQ3M,SAAU,EAI/B,IAAIyxC,EAAa/kC,GAAgB,gBAC7BglC,EAAgBD,EAAW9+B,YAAYnD,cAE3C,IAAK,IAAIX,EAAI,EAAGA,EAAI6iC,EAAcrjC,OAAQQ,IAAK,CAC7C,IAAI8iC,EAAeD,EAAc7iC,GAEjClO,GAAUwM,WAAWwkC,EACvB,CACAF,EAAW9kC,QAAQ3M,SAAU,EAC7BoN,QAAQC,IAAI1M,GAAU6O,eAGtB,IAAIoiC,EAAkBllC,GAAgB,qBAClCmlC,EAAqBD,EAAgBj/B,YAAYnD,cAErD,IAAK,IAAIX,EAAI,EAAGA,EAAIgjC,EAAmBxjC,OAAQQ,IAAK,CAClD,IAAIijC,EAAoBD,EAAmBhjC,GAE3CxN,GAAW8L,WAAW2kC,EACxB,CACAF,EAAgBjlC,QAAQ3M,SAAU,EAIlC,IAAI+xC,EAAoBrlC,GAAgB,uBACpCslC,EAAuBD,EAAkBp/B,YAAYnD,cAEzD,IAAK,IAAIX,EAAI,EAAGA,EAAImjC,EAAqB3jC,OAAQQ,IAAK,CACpD,IAAIojC,EAAsBD,EAAqBnjC,GAE/CvN,GAAY6L,WAAW8kC,EACzB,CACAF,EAAkBplC,QAAQ3M,SAAU,CAEtC,EAEA0G,GAAMwrC,2BAA6B,WACjC9kC,QAAQC,IAAI,qCACZrM,GAAWqL,QAGX,IAAI8lC,EAAYzlC,GAAgB,eAC5B0lC,EAAeD,EAAUx/B,YAAYnD,cACzCpC,QAAQC,IAAI,uBACZD,QAAQC,IAAI+kC,EAAa/jC,QACzB,IAAK,IAAIQ,EAAI,EAAGA,EAAIujC,EAAa/jC,OAAQQ,IAAK,CAC5C,IAAIwjC,EAAcD,EAAavjC,GAE/B7N,GAAWmM,WAAWklC,EACxB,CACAF,EAAUxlC,QAAQ3M,SAAU,CAE9B,EAEA0G,GAAM4rC,yBAA2B,WAC/BllC,QAAQC,IAAI,mCACZrM,GAAWqL,QAEX,IAAI8lC,EAAYzlC,GAAgB,eAChCylC,EAAUxlC,QAAQ3M,SAAU,CAC9B,EAqCA0G,GAAM6rC,cAAgB,SAAUt5B,EAAWie,EAAQsb,GAAQ,EAE3D9rC,GAAM+rC,eAAiB,WACrBv6B,GAAiB,GAGjBwlB,GAAmB,wBAGnBl9B,GAAIyX,SAASjU,IACbxD,GAAIyX,SAAShU,IAEbgE,GAA+B,EAWjC,EAEAvB,GAAMgsC,sBAAwB,WAC5BlsC,GAAsB,GAEtB,IAEImsC,EACJ,IAAK,IAAI9jC,EAAI,EAAGA,EAAI5G,GAA6BoG,OAAQQ,IACvD8jC,EAAa1qC,GAA6B4G,GAC1CzB,QAAQC,IAAIslC,GAKZnsC,GAAoBlJ,KAAKq1C,GAE3B,IAAIl7B,EAAO,SACPC,EAAqB,YACrBC,EAAY,iCAChBC,GAAUH,EAAMC,EAAoBC,EAAW,WAAYnB,GAC7D,EAmHA9P,GAAMksC,kBAAoB,WACxB16B,GAAiB,GAGjBwlB,GAAmB,wBAGnBl9B,GAAIyX,SAAShU,IAEbgE,GAA+B,EACjC,EAEAvB,GAAMmsC,yBAA2B,WAC/BrsC,GAAsB,GAEtB,IAEImsC,EACJjtC,GAAsB,GACtB,IAAK,IAAImJ,EAAI,EAAGA,EAAI5G,GAA6BoG,OAAQQ,IACvD8jC,EAAa1qC,GAA6B4G,GACtC8jC,EAAW1nC,IAAI,gBACjBvF,GAAsBA,GAAsBitC,EAAW1nC,IAAI,cAAcM,WAAa,KAExF6B,QAAQC,IAAIslC,GAKZnsC,GAAoBlJ,KAAKq1C,GAE3BjtC,GAAsBA,GAAoBotC,UAAU,EAAGptC,GAAoB2I,OAAS,GACpF,IAAIoJ,EAAO,SACPC,EAAqB,+BACrBC,EAAY,iCAChBC,GAAUH,EAAMC,EAAoBC,EAAW,WAAYU,GAC7D,EAgEA3R,GAAMqsC,4BAA8B,WAClC76B,GAAiB,GAEjBjQ,GAA+B,GAI/B,MAAMwK,GAAqB,IAAI,MAAMnC,gBAAgB,CACnDC,QAAS,YACTC,UAAW,YAEXC,aAAc,CAAC,sBACfC,aAAc,mBACdC,QAAQ,SAAc,YAAahL,MAErC,IAAIiL,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkB0B,GAEnCvB,MAAMzQ,GAAa,iBAAkB,CACnC0Q,OAAQ,OACRrW,KAAMgW,IAELO,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACCF,MAAK,SAAUE,GACd,MAAMmF,GAAiB,IAAI,MAAUjF,aAAaF,GAElD,GADAnE,QAAQC,IAAI,wBAAyBqJ,EAAerI,QAChDqI,EAAerI,OAAS,EAAG,CAC7BxN,GAAWwL,QACX,IAAK,IAAIwC,EAAI,EAAGA,EAAI6H,EAAerI,OAAQQ,IAAK,CAC9C,IAAI+H,EAAWF,EAAe7H,GAC1Bi0B,EAAYlsB,EAAS3L,IAAI,iBACzBwC,EAAeC,GAAgBkJ,GACnCnJ,EAAaE,IAAI,QAASm1B,EAAUv3B,YACpC1K,GAAWsM,WAAWM,EACxB,CACF,CACF,GACJ,EAEA/G,GAAMssC,mCAAqC,SAAUC,GACnDzsC,GAAsB,GAEtB,IAEImsC,EACJ,IAAK,IAAI9jC,EAAI,EAAGA,EAAI5G,GAA6BoG,OAAQQ,IACvD8jC,EAAa1qC,GAA6B4G,GAC1C8jC,EAAWhlC,IAAI,gBAAiBslC,GAChC7lC,QAAQC,IAAIslC,GAKZnsC,GAAoBlJ,KAAKq1C,GAE3B,IAAIl7B,EAAO,SACPC,EAAqB,+BACrBC,EAAY,qBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQc,GACzD,EAUA/R,GAAMwsC,sBAAwB,SAAUC,GACtCj7B,GAAiB,GACjBvQ,GAAmB,GACnBC,GAAqB,GAErBrG,GAAY8K,QACZ,IAAIsM,EAAgBjM,GAAgB,8BACpC,IAAK,IAAImC,EAAI,EAAGA,EAAI8J,EAAchG,YAAYnD,cAAcnB,OAAQQ,IAAK,CACvE,IAAI6tB,EAAY/jB,EAAchG,YAAYnD,cAAcX,GACpDukC,EAAe,IAAI,KAAM1W,EAAU7uB,cAAcgC,kBACjDwjC,EAAY3W,EAAUzxB,IAAI,MAC1BsiB,EAAiBmP,EAAUzxB,IAAI,WAG/BqoC,EAAgB,IAAI,KAAQ,CAC9BxjC,SAAUsjC,IAEZE,EAAcrmC,MAAMomC,GACpBC,EAAc3lC,IAAI,KAAM0lC,GACF,MAAlB9lB,IACFngB,QAAQC,IAAI,UAAWkgB,GACvB+lB,EAAc3lC,IAAI,UAAW4f,IAE/B+lB,EAAcn7B,SAAS1M,IAEvBlK,GAAY4L,WAAWmmC,EACzB,CAEA9xC,GAAY6K,QACZ,IAAIknC,EAAmB7mC,GAAgB,wBACvC,IAAK,IAAImC,EAAI,EAAGA,EAAI0kC,EAAiB5gC,YAAYnD,cAAcnB,OAAQQ,IAAK,CAC1E,IAAIwtB,EAAekX,EAAiB5gC,YAAYnD,cAAcX,GAC1D2kC,EAAmBjmC,GAAiB8uB,EAAc,GAAG,GACzD76B,GAAY2L,WAAWqmC,EACzB,CAEA76B,EAAchM,QAAQ3M,SAAU,EAEhC,IAAIyM,EAAYC,GAAgB,aAChCD,EAAUE,QAAQ3M,SAAU,EAExBuD,IACF/C,GAAI8L,kBAAkB/I,IAGxBA,GAAW,IAAIkwC,GAAA,EAAO,CACpBvO,OAAQ3jC,KAEVgC,GAASqW,GAAG,eAAe,SAAUuqB,GACnCA,EAAE/iB,SAASsyB,WAAWtuB,SAASrJ,IAC7BA,EAAEpO,IAAI,aAAcoO,EAAElO,cAAcgC,iBAAiB,GAEzD,IACAtM,GAASqW,GAAG,aAAa,SAAUuqB,GACjC,GAAKx8B,GAAiBuD,SAASi5B,EAAE/iB,SAASsyB,WAAW,GAAGxmC,SAGjD,CACL,IAAIymC,EAAgBhsC,GAAiBuhB,QAAQib,EAAE/iB,SAASsyB,WAAW,GAAGxmC,SACtEtF,GAAmB+rC,GAAiBxP,EAAE/iB,SAASsyB,WAAW,EAC5D,MALE/rC,GAAiBrK,KAAK6mC,EAAE/iB,SAASsyB,WAAW,GAAGxmC,SAC/CtF,GAAmBtK,KAAK6mC,EAAE/iB,SAASsyB,WAAW,IAKhDP,EAAchP,EAAE/iB,SAASsyB,WAAW,GACtC,IACAlzC,GAAI0T,eAAe3Q,IAGnBC,GAAW,IAAIowC,GAAA,EAAK,CAClB1O,OAAQ1jC,KAEVhB,GAAI0T,eAAe1Q,GACrB,EAEAkD,GAAMmtC,6BAA+B,SAAUj/B,GAC7CpU,GAAI8L,kBAAkB/I,IACtB/C,GAAI8L,kBAAkB9I,IACtBhC,GAAY6K,QACZe,QAAQC,IAAI,oBACZD,QAAQC,IAAI1F,IACZnB,GAAsB,GACtB,IAAImS,EAAgBjM,GAAgB,8BAChCD,EAAYC,GAAgB,aAGhCiM,EACGhG,YACAnD,cACAmB,QAAQoL,GAAMpU,GAAiBuD,SAAS6Q,EAAE9Q,IAAI,SAC9Cma,SAASrJ,IACR,IAAI+3B,EAAoBlsC,GAAmB+I,QAAQqoB,GAAOA,EAAG/tB,IAAI,OAAS8Q,EAAE9Q,IAAI,QAC5E6oC,EAAkBzlC,OAAS,IAC7B0N,EAAE40B,YAAYmD,EAAkB,GAAGjmC,eACnCrH,GAAoBlJ,KAAKye,GAC3B,IAEJtP,EACGkG,YACAnD,cACAmB,QAAQoL,GAAMpU,GAAiBuD,SAAS6Q,EAAE9Q,IAAI,SAC9Cma,SAASrJ,IACR,IAAI+3B,EAAoBlsC,GAAmB+I,QAAQqoB,GAAOA,EAAG/tB,IAAI,OAAS8Q,EAAE9Q,IAAI,QAC5E6oC,EAAkBzlC,OAAS,IAC7B0N,EAAE40B,YAAYmD,EAAkB,GAAGjmC,eACnCrH,GAAoBlJ,KAAKye,GAC3B,IAEJ3O,QAAQC,IAAI,uBACZD,QAAQC,IAAI7G,IACZ,IAAIiR,EAAO,SACPC,EAAqB,+BACrBC,EAAY,mBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,QAAQ,WACrDe,KACI9D,GAAUA,GAChB,GACF,EAgBAlO,GAAMqtC,gBAAkB,SAAUp/B,EAAWq/B,EAAYC,GACvD,IAAIC,EAAgB,EAGhB7+B,EAAS3U,GAAc,+BAAiCiU,EAC5DzD,MAAMmE,EAAQ,CACZlE,OAAQ,QAEPE,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAU8iC,GACd/mC,QAAQC,IAAI,SACZD,QAAQC,IAAI8mC,GAEZj8B,GAAiB,GACjBg8B,EAAgBC,EAAQ,EAExB5wC,GAAW,IAAI6pC,GAAA,GAAK,CAClBlI,OAAQ3jC,GACRtI,KAAM,UAERuH,GAAI0T,eAAe3Q,IAEnBA,GAASqW,GAAG,WAAW,SAAUuqB,GAC/B5iC,GAAY8K,QAEZ,IAAImhC,EAAWrJ,EAAEn5B,QACjBwiC,EAAS7/B,IAAI,YAAagH,GAC1B64B,EAAS7/B,IAAI,aAAcumC,GAC3B9mC,QAAQC,IAAI,UAAW2mC,EAAWI,YAClC5G,EAAS7/B,IAAI,UAAWqmC,EAAWI,YACnC5G,EAAS7/B,IAAI,gBAAiBogB,WAAWkmB,EAAiBG,aAC1D5G,EAAS7/B,IAAI,SAAU,GACvB6/B,EAAS7/B,IAAI,KAAMumC,GAEnB9mC,QAAQC,IAAI,UAAW2mC,GACvB5mC,QAAQC,IAAI,YAAasH,GACzBvH,QAAQC,IAAI,UAAW2mC,EAAWI,YAClChnC,QAAQC,IAAI,gBAAiB4mC,EAAiBG,YAE9C5G,EAASr1B,SAAS1M,IAElBrF,GAAiB9I,KAAKkwC,GACtBpgC,QAAQC,IAAIjH,GACd,GACF,GACJ,EAEAM,GAAM2tC,uBAAyB,SAAUz/B,GACvCpU,GAAI8L,kBAAkB/I,IACtBiD,GAAsB,GAEtB,IAEIiJ,EACJ,IAAK,IAAIZ,EAAI,EAAGA,EAAItN,GAAYiO,cAAcnB,OAAQQ,IACpDY,EAAQlO,GAAYiO,cAAcX,GAClCzB,QAAQC,IAAIoC,GAKZjJ,GAAoBlJ,KAAKmS,GAE3B,IAAIgI,EAAO,SACPC,EAAqB,YACrBC,EAAY,mBAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQiB,GAAyBhE,GAClF,EAaAlO,GAAM4tC,gBAAkB,WACtBp8B,GAAiB,GAEjBjQ,GAA+B,EACjC,EACAvB,GAAM6tC,uBAAyB,SAAU5/B,EAAWw+B,EAAev+B,GAEjE,IAAI4/B,EADJ9uC,GAAsB,GAEtB,IAAI+uC,EAAQ,GACZ,IAAK,IAAI5lC,EAAI,EAAGA,EAAI5G,GAA6BoG,OAAQQ,IAAK,CAgB5D,GAfA2lC,EAASvsC,GAA6B4G,GAStCzB,QAAQC,IAAI,SAAUmnC,GACjBC,EAAMvpC,SAASspC,EAAOtnC,WACzBsnC,EAAO7mC,IAAI,aAAc6mC,EAAO3mC,cAAcgC,kBAC9CsjC,EAAcqB,GACdC,EAAMn3C,KAAKk3C,EAAOtnC,UAEhBsnC,EAAOtnC,QAAS,CAClB,IAAIkJ,EAAQo+B,EAAOtnC,QAAQ43B,QAAQ,oBAAqB,IACxDp/B,GAAsBA,GAAsB0Q,EAAQ,GACtD,CAQA,IAAI5I,EAAQnH,GAAoB6iB,QAAQsrB,EAAOvpC,IAAI,OAC/CuC,GAAS,GACXnH,GAAoBuzB,OAAOpsB,EAAO,EAEtC,CACA9H,GAAsBA,GAAoBotC,UAAU,EAAGptC,GAAoB2I,OAAS,GACpFjB,QAAQC,IAAI,sBAAuB3H,IAEnC0H,QAAQC,IAAI,oCACZD,QAAQC,IAAI,sBAAuB3H,IACnC,IAAI3F,EAAS,IAAIiR,QACjBjR,EAAOkR,OAAO,8BAA+B,KAE7ClR,EAAOkR,OAAO,gCAAiC,UAC/C,IAAIqH,EAAY5X,GAAc,mCAAqCiU,EAAY,QAAUjP,GACzFwL,MAAMoH,EAAW,CACfnH,OAAQ,SAERC,QAASrR,IAERsR,MAAK,SAAUC,GACd,OAAOA,EAASC,MAClB,IACC2D,OAAOC,IACN/H,QAAQC,IAAI8H,EAAM,IAEnB9D,MAAK,SAAUE,GACdsH,KACIjE,GACFA,GAEJ,GACJ,EAUAlO,GAAMguC,iBAAmB,WACvBx8B,GAAiB,GACjBrQ,GAAsB,GACtBC,GAAwB,GAExBvG,GAAY8K,QACZ,IAAI0M,EAAmBrM,GAAgB,oBACvC,IAAK,IAAImC,EAAI,EAAGA,EAAIkK,EAAiBpG,YAAYnD,cAAcnB,OAAQQ,IAAK,CAC1E,IAAI6tB,EAAY3jB,EAAiBpG,YAAYnD,cAAcX,GACvDukC,EAAe,IAAI,KAAM1W,EAAU7uB,cAAcgC,kBACjDwjC,EAAY3W,EAAUzxB,IAAI,MAC1B0pC,EAAgBjY,EAAUzxB,IAAI,aAC9B2pC,EAAgBlY,EAAUzxB,IAAI,UAC9B4pC,EAAkBnY,EAAUzxB,IAAI,YAChC6pC,EAAgBpY,EAAUzxB,IAAI,UAG9BqoC,EAAgB,IAAI,KAAQ,CAC9BxjC,SAAUsjC,IAEZE,EAAcrmC,MAAMomC,GACpBC,EAAc3lC,IAAI,KAAM0lC,GACxBC,EAAc3lC,IAAI,YAAagnC,GAC/BrB,EAAc3lC,IAAI,SAAUinC,GAC5BtB,EAAc3lC,IAAI,WAAYknC,GAC9BvB,EAAc3lC,IAAI,SAAUmnC,GAG5BvzC,GAAY4L,WAAWmmC,EACzB,CAEAv6B,EAAiBpM,QAAQ3M,SAAU,EAE/BuD,IACF/C,GAAI8L,kBAAkB/I,IAGxBA,GAAW,IAAIkwC,GAAA,EAAO,CACpBvO,OAAQ3jC,KAEVgC,GAASqW,GAAG,aAAa,SAAUuqB,GAIjC,IAMIzwB,EANAqhC,EAAY5Q,EAAE/iB,SAASsyB,WAAW,GAAGzoC,IAAI,UACzC+pC,EAAoB7Q,EAAE/iB,SAASsyB,WAAW,GAG1CuB,EAAYvoC,GAAgB,gBAC5BwoC,EAAYD,EAAUtiC,YAAYnD,cAGtC,IAAK,IAAIX,EAAI,EAAGA,EAAIqmC,EAAU7mC,OAAQQ,IAAK,CACzC,IAAIsmC,EAAcD,EAAUrmC,GAExBgyB,EAASsU,EAAYlqC,IAAI,MAC7BmC,QAAQC,IAAI,UACZD,QAAQC,IAAIwzB,GACZzzB,QAAQC,IAAI,aACZD,QAAQC,IAAI0nC,GACRA,GAAalU,IACfzzB,QAAQC,IAAI,SAAWwzB,EAAS,IAAMkU,GACtCrhC,EAAWyhC,EAEf,CAEA,GADA/nC,QAAQC,IAAI,WAAYqG,GACpBzE,GAAYyE,EAAUshC,GACxB,GAAKntC,GAAoBqD,SAAS6pC,GAI3B,CACL3nC,QAAQC,IAAI,WACZ,IAAIsmC,EAAgB9rC,GAAoBqhB,QAAQ6rB,GAChDjtC,GAAsB6rC,GAAiBqB,CACzC,MAPE5nC,QAAQC,IAAI,WACZxF,GAAoBvK,KAAKy3C,GACzBjtC,GAAsBxK,KAAK03C,OAMxB,CACL5nC,QAAQC,IAAI,WACRsmC,EAAgB9rC,GAAoBqhB,QAAQ6rB,GAC5CpB,GAAiB,IACnB9rC,GAAoB+xB,OAAO+Z,EAAe,GAC1C7rC,GAAsB8xB,OAAO+Z,EAAe,GAEhD,CAGF,IAEAnzC,GAAI0T,eAAe3Q,GACrB,EAEAmD,GAAM0uC,wBAA0B,WAC9B50C,GAAI8L,kBAAkB/I,IACtB6J,QAAQC,IAAI,uBACZD,QAAQC,IAAIxF,IACZrB,GAAsB,GACtB,IAAIuS,EAAmBrM,GAAgB,oBAGvC,IAAK,IAAImC,EAAI,EAAGA,EAAIhH,GAAoBwG,OAAQQ,IAAK,CACnD,IAAIwmC,EAAUxtC,GAAoBgH,GAClC,IAAK,IAAIE,EAAI,EAAGA,EAAIgK,EAAiBpG,YAAYnD,cAAcnB,OAAQU,IAAK,CAC1E,IAAI2tB,EAAY3jB,EAAiBpG,YAAYnD,cAAcT,GACvDumC,EAAO5Y,EAAUzxB,IAAI,UACrBqqC,IAASD,IAGX3Y,EAAUiU,YAAY7oC,GAAsB+G,GAAGhB,eAC/CrH,GAAoBlJ,KAAKo/B,GAE7B,CACF,CAEAtvB,QAAQC,IAAI,uBACZD,QAAQC,IAAI7G,IACZ,IAAIiR,EAAO,SACPC,EAAqB,+BACrBC,EAAY,aAChBC,GAAUH,EAAMC,EAAoBC,EAAW,OAAQmB,GACzD,EAaApS,GAAM6uC,0BAA4B,WAEhCx9B,IAGF,EACArR,GAAME,qBAAuB,WAC3B,OAAOA,EACT,EACAF,GAAMG,wBAA0B,WAC9B,OAAOA,EACT,EACAH,GAAM8uC,6BAA+B,WACnC,OAAO1uC,EACT,EACAJ,GAAMK,kCAAoC,WACxC,OAAOA,EACT,EACAL,GAAMM,mBAAqB,WACzB,OAAOA,EACT,EACAN,GAAMO,sBAAwB,WAC5B,OAAOA,EACT,EACAP,GAAM+uC,iCAAmC,WACvC,OAAOvuC,EACT,EAEAR,GAAMgvC,iBAAmB,SAAUC,GACjC9xC,GAAa8xC,EACb9xC,GAAWqwB,qBAAuBpwB,GAClCsJ,QAAQC,IAAI,cACZD,QAAQC,IAAIxJ,IACZuJ,QAAQC,IAAI,uDACZD,QAAQC,IAAIxJ,GAAWqwB,qBACzB,EAEAxtB,GAAMkvC,2BAA6B,SAAUC,EAAMhxB,GACjDxd,GAA0BwuC,EAC1BvuC,GAA2Bud,EAC3BzX,QAAQC,IAAI,2CACZD,QAAQC,IAAIhG,GACd,EAEAX,GAAMovC,wBAA0B,WAC9B,MAAMC,EAAM1vC,GAAoB7F,KAAK7C,GAAOA,EAAG4N,aAC/C,OAAOzH,GAA2B6M,QAAQsV,GAAM8vB,EAAI7qC,SAAS+a,EAAE8Q,WAAWxrB,aAC5E,EAEA7E,GAAMsvC,mBAAqB,SAAU/8B,GACnCtT,GAAmBsT,EACnBpY,GAAWwL,QACXtL,GAAWsL,QACXrL,GAAWqL,QACXpL,GAAWoL,QACXnL,GAAWmL,QACXlL,GAAWkL,QACXhL,GAAWgL,QACX/K,GAAY+K,QACZ9K,GAAY8K,QACZ7K,GAAY6K,QACZ5K,GAAY4K,QACZ3K,GAAY2K,QACZjL,GAAciL,QACd1D,GAAsB,CAAC,EACvBH,GAAwB,GACxBrB,IAAqB,EACrBiG,QAAQC,IAAI,mCACZhG,GAA0B,EAG1B,IAAI27B,EACFviC,GACA,sKACAwY,EAAU1N,WACZzJ,GAAwB,IAAI,KAAa,CACvCuS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOyuB,EAA2B,oBACpC,IAEF,IAAIv2B,EAAYC,GAAgB,wBAChCD,EAAU+H,UAAU1S,IACpB2K,EAAUE,QAAQ3M,SAAU,EAG5B,IAAI2nC,EACFlnC,GACA,gKACAwY,EAAU1N,WACZ/I,GAAuB,IAAI,KAAa,CACtC6R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOozB,EAAoB,oBAC7B,IAEEl7B,EAAYC,GAAgB,uBAChCD,EAAU+H,UAAUhS,IACpBiK,EAAUE,QAAQ3M,SAAU,EAG5B,IAAIg8B,EACFv7B,GACA,2JACAwY,EAAU1N,WACZlJ,GAAkB,IAAI,KAAa,CACjCgS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOynB,EAAe,oBACxB,IAEEvvB,EAAYC,GAAgB,kBAChCD,EAAU+H,UAAUnS,IACpBoK,EAAUE,QAAQ3M,SAAU,EAC5B,IAAIk8B,EACFz7B,GACA,4JACAwY,EAAU1N,WACZjJ,GAAmB,IAAI,KAAa,CAClC+R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO2nB,EAAgB,oBACzB,IAEEzvB,EAAYC,GAAgB,mBAChCD,EAAU+H,UAAUlS,IACpBmK,EAAUE,QAAQ3M,SAAU,EAG5B,IAAIynC,EACFhnC,GACA,8JACAwY,EAAU1N,WACZhJ,GAAqB,IAAI,KAAa,CACpC8R,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOkzB,EAAkB,oBAC3B,IAEEh7B,EAAYC,GAAgB,qBAChCD,EAAU+H,UAAUjS,IACpBkK,EAAUE,QAAQ3M,SAAU,EAG5B,IAAIu7B,EACF96B,GACA,yJACAwY,EAAU1N,WACZrJ,GAAgB,IAAI,KAAa,CAC/BmS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgnB,EAAa,oBACtB,IAEE9uB,EAAYC,GAAgB,gBAChCD,EAAU+H,UAAUtS,IACpBuK,EAAUE,QAAQ3M,SAAU,EAC5B,IAAIy7B,EACFh7B,GACA,0JACAwY,EAAU1N,WACZpJ,GAAiB,IAAI,KAAa,CAChCkS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOknB,EAAc,oBACvB,IAEEhvB,EAAYC,GAAgB,iBAChCD,EAAU+H,UAAUrS,IACpBsK,EAAUE,QAAQ3M,SAAU,EAE5BokC,GAAoCnrB,EAAW,MAG/C,IAAIkkB,EACF18B,GACA,yJACAwY,EAAU1N,WACZtJ,GAAgB,IAAI,KAAa,CAC/BoS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAO4oB,EAAa,oBACtB,IAEE1wB,EAAYC,GAAgB,gBAChCD,EAAU+H,UAAUvS,IACpBwK,EAAUE,QAAQ3M,SAAU,EAK5B,IAAIw9B,EACF/8B,GACA,8JACAwY,EAAU1N,WACZnJ,GAAoB,IAAI,KAAa,CACnCiS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOipB,EAAe,oBACxB,IAEE/wB,EAAYC,GAAgB,oBAChCD,EAAU+H,UAAUpS,IACpBqK,EAAUE,QAAQ3M,SAAU,EAE5BoC,GAAkBwX,GAAG,UAAU,SAAU4uB,GACvC,IAAItD,EAASsD,EAAInwC,OACS,UAAtB6sC,EAAO+Q,YACTxb,GAAuBxhB,EAE3B,IAGA,IAAIsqB,EACF9iC,GACA,oKACAwY,EAAU1N,WACZxJ,GAA8B,IAAI,KAAa,CAC7CsS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOgvB,EAAyB,oBAClC,IAEE92B,EAAYC,GAAgB,8BAChCD,EAAU+H,UAAUzS,IACpB0K,EAAUE,QAAQ3M,SAAU,EAC5B+B,GAA4B0S,UAG5B,IAAIL,EACF3T,GACA,8JACAwY,EAAU1N,WACV,yCACFvJ,GAAmB,IAAI,KAAa,CAClCqS,OAAQ,IAAI,KACZC,IAAK,SAAUC,GACb,OAAOH,EAAmB,oBAC5B,IAEE3H,EAAYC,GAAgB,eAChCD,EAAU+H,UAAUxS,IACpByK,EAAUE,QAAQ3M,SAAU,EAC5BgC,GAAiByS,UAEjBa,GAAe2D,GACfzR,GAAqB,GACrB2R,GAAkBF,GAElB2B,GAAoB3B,GAEpB7D,GAAgB6D,EAAWD,GAC7B,EAkSAtS,GAAMwvC,mBAAqB,SAAUC,GACnC/oC,QAAQC,IAAI8oC,GACZ,IAAIp8B,EAASrN,GAAgB,wBAC7BqN,EAAOpN,QAAQ3M,QAAUm2C,EACzBp8B,EAAOpH,YAAY8B,UACnBsF,EAASrN,GAAgB,0BACzBqN,EAAOpN,QAAQ3M,QAAUm2C,EACzBp8B,EAAOpH,YAAY8B,UACnBsF,EAASrN,GAAgB,yBACzBqN,EAAOpN,QAAQ3M,QAAUm2C,EACzBp8B,EAAOpH,YAAY8B,UACnBsF,EAASrN,GAAgB,2BACzBqN,EAAOpN,QAAQ3M,QAAUm2C,EACzBp8B,EAAOpH,YAAY8B,SACrB,EAEA/N,GAAM0vC,gCAAkC,WACtC,OAAO3vC,EACT,EA2CAC,GAAM2vC,mBAAqB,WACzBr1C,GAAWqL,QACXe,QAAQC,IAAI,6BAGZ,IAEI+N,EAFA3O,EAAYC,GAAgB,eAC5B4pC,EAAW7pC,EAAUkG,YAEzB,IAAK,IAAI9D,EAAI,EAAGA,EAAIynC,EAAS9mC,cAAcnB,OAAQQ,IACjDuM,EAAUk7B,EAAS9mC,cAAcX,GAEjC7N,GAAWmM,WAAWiO,GAExB,IAAK,IAAIvM,EAAI,EAAGA,EAAI7N,GAAWwO,cAAcnB,OAAQQ,IACnDuM,EAAUpa,GAAWwO,cAAcX,GACnCuM,EAAQnO,MAAMmO,EAAQiM,IAAI1R,MAAM,KAAK,IACrCyF,EAAQnO,MAAMmO,EAAQnQ,IAAI,UAC1BmC,QAAQC,IAAI+N,EAAQlO,SAEtBE,QAAQC,IAAI,4BACZD,QAAQC,IAAIrM,GAAWwO,eACvB/C,EAAUE,QAAQ3M,SAAU,EACZ0M,GAAgB,sBAClC,EACAhG,GAAM6vC,kBAAoB,WACxBv1C,GAAWqL,QACXe,QAAQC,IAAI,4BAGZ,IAAIZ,EAAYC,GAAgB,eAChCD,EAAUE,QAAQ3M,SAAU,CAC9B,EAEA0G,GAAM8vC,kBAAoB,SAAUC,GAClC,IAAK,IAAI1nC,EAAI,EAAGA,EAAIxH,GAAmB8G,OAAQU,IAAK,CAClD,IAAI2nC,EAAUnvC,GAAmBwH,GACjC,GAAI2nC,EAAQzmB,MAAQwmB,EAClB,OAAOC,EAAQhnB,IAEnB,CACA,OAAO,CACT,EAEAhpB,GAAMiwC,kBAAoB,SAAU1mB,EAAKP,EAAMV,GAC7C,IAAInV,EAAI,IAAI0N,GAAe0I,EAAKP,EAAMV,GACtC,OAAOnV,CACT,EAEAnT,GAAMkwC,eAAiB,SAAUC,EAAejiC,GAC9C/Q,GAAagzC,EACbzpC,QAAQC,IAAI,wBAGZ6L,GAAgB29B,EAAcl5C,GAAIiX,EACpC,EAkOAlO,GAAMowC,wBAA0B,SAAUr6B,GACxC,OAAOD,GAAsBC,EAC/B,EAgnGA/V,GAAMqwC,0BAA4B,WAChC,OAAOxuC,EACT,EAEA7B,GAAMswC,qBAAuB,WAC3B,OAAOzuC,EACT,EAEA7B,GAAMuwC,uBAAyB,WAC7B,OAAO5wC,EACT,EAEAK,GAAMwwC,sBAAwB,WAC5B,OAAO3wC,EACT,EAEAG,GAAMywC,uBAAyB,WAC7B,IAAI7gC,GAAS,EAMb,OALA/P,GAAmB6e,SAASznB,IACtBgK,GAAiBuD,SAASvN,KAC5B2Y,GAAS,EACX,IAEKA,CACT,EACA5P,GAAM0wC,yBAA2B,WAC/B,IAAI9gC,GAAS,EACT+gC,EAAqBpvC,GAA6BzH,KAAKub,GAAMA,EAAE9Q,IAAI,QAMvE,OALA1E,GAAmB6e,SAASznB,IACtB05C,EAAmBnsC,SAASvN,KAC9B2Y,GAAS,EACX,IAEKA,CACT,EAEA5P,GAAM4wC,qBAAuB,WAC3B,OAAOpxC,GAAoB1F,KAAKub,IACvB,CACLpe,GAAIoe,EAAE9Q,IAAI,MACVssC,QAASx7B,EAAE9Q,IAAI,WACfstB,aAAcxc,EAAE9Q,IAAI,aACpBmtB,cAAerc,EAAE9Q,IAAI,iBACrBusC,iBAAkBz7B,EAAE9Q,IAAI,sBACxBwsC,cAAe17B,EAAE9Q,IAAI,sBACjB8Q,EACG9Q,IAAI,sBACJ0K,MAAM,KACNnV,KAAKk3C,IACG,CAAEF,iBAAkBE,MAE/B,GACJ1sC,QAAS+Q,KAGf,EAEArV,GAAMixC,4BAA8B,WAClCrxC,GAAyBD,GACzB+G,QAAQC,IAAI/G,GACd,EAEAI,GAAMkxC,sBAAwB,WAC5B,OAAOpwC,EACT,EAEAd,GAAMmxC,aAAe,WACnB,OAAOr3C,IAAKs3C,mBAAmBC,iBAAiB,mBAClD,EAEArxC,GAAMkU,oBAAsB,SAAU3B,EAAWrE,GAC/ClT,GAAY2K,QACZuO,GAAoB3B,EAAWrE,EACjC,EA6JAlO,GAAMsxC,qDAAuD,SAAUC,EAAYC,GACjF,IAAIzrC,EAAYC,GAAgB,aAC5BqsB,EAActsB,EAAUkG,YAAYnD,cACpC+nC,EAAU,GACVhf,EAAe,GACf4f,EAAe,GACnB,IAAK,IAAItpC,EAAI,EAAGA,EAAIkqB,EAAY1qB,OAAQQ,IAAK,CAC3C,IAAI/B,EAAcisB,EAAYlqB,GAC1BupC,EAAgBtrC,EAAY7B,IAAI,MAChCmiB,EAAoBtgB,EAAY7B,IAAI,cACpCuiB,EAAsB1gB,EAAY7B,IAAI,aACtCsiB,EAAiBzgB,EAAY7B,IAAI,WAErC,GAAImtC,IAAkBH,GAAc7qB,IAAsB8qB,EAAY,CACpEX,EAAUhqB,EACVgL,EAAe/K,EACf2qB,EAAa76C,KAAKi6C,GAClBY,EAAa76C,KAAKi7B,GAClB,KACF,CACF,CACA,OAAO4f,CACT,EAEAzxC,GAAM2xC,gCAAkC,SAAUvf,EAAQlkB,GACxD,IAAInI,EAAYC,GAAgB,aAE5B4rC,EAA6B7rC,EAAUkG,YAAYnD,cAGnD+oC,GAAa,EAGjB,IAAK,IAAI1pC,EAAI,EAAGA,EAAIypC,EAA2BjqC,OAAQQ,IAAK,CAC1D,IAAI8qB,EAAU2e,EAA2BzpC,GACrC8qB,EAAQ1uB,IAAI,cAAgB0uB,EAAQ1uB,IAAI,iBAC1CstC,GAAa,EAEjB,CAEA,IAAIC,EAAmB,GAYvB,IAAK,IAAI3pC,EAAI,EAAGA,EAAIypC,EAA2BjqC,OAAQQ,IAAK,CAC1D,IAAI4pC,EAAqBH,EAA2BzpC,GAChD6pC,EAA8BD,EAAmBxtC,IAAI,iBACrD0tC,EAAiC,EAEnCA,EADEJ,EAC+BE,EAAmBxtC,IAAI,eAEvBwtC,EAAmBxtC,IAAI,YAE1D0tC,GAAkED,EAElE,IAAIE,GAAkB,EACtB,IAAK,IAAI7pC,EAAI,EAAGA,EAAIypC,EAAiBnqC,OAAQU,IAAK,CAChD,IAAI8pC,EAAeL,EAAiBzpC,GAChC+pC,EAAwBD,EAAa5tC,IAAI,iBACzC8tC,EAA2B,EAQ/B,GANEA,EADER,EACyBM,EAAa5tC,IAAI,eAEjB4tC,EAAa5tC,IAAI,YAE9C8tC,GAAsDD,EAElDH,GAAkCI,EAA0B,CAC9DH,GAAkB,EAClBJ,EAAiB5e,OAAO7qB,EAAG,EAAG0pC,GAC9B,KACF,CACF,CACgC,IAA5BD,EAAiBnqC,QAAiBuqC,GACpCJ,EAAiBl7C,KAAKm7C,EAE1B,CAEArrC,QAAQC,IAAI,oBACZD,QAAQC,IAAImrC,GACZ,IAAIQ,GAAqB,EACrBC,GAAmB,EACvB1yC,GAAqB,GAErB,IAAI2yC,EAAc,IAAIV,GAAkBW,MAAK,CAACt/B,EAAGu/B,IAAMA,EAAEnuC,IAAI,YAAc4O,EAAE5O,IAAI,cACjF,IAAK,IAAI4D,EAAI,EAAGA,EAAIqqC,EAAY7qC,OAAQQ,IAAK,CAC3C,IAAIkN,EAAIm9B,EAAYrqC,GAChB7C,EAAuB+P,EAAE9Q,IAAI,iBAC7BitC,EAAan8B,EAAE9Q,IAAI,cACnBtN,EAAKoe,EAAE9Q,IAAI,OACV+tC,GAA8C,IAAxBhtC,GAA8BksC,EAAa,MAC/D7xC,GAAoB6E,SAASvN,IAChC0I,GAAoB/I,KAAKK,GAE3B4I,GAAmBjJ,KAAKK,GACxBq7C,GAAqB,IAElBC,GAA4C,IAAxBjtC,GAA8BksC,EAAa,MAC7D7xC,GAAoB6E,SAASvN,IAChC0I,GAAoB/I,KAAKK,GAE3B4I,GAAmBjJ,KAAKK,GACxBs7C,GAAmB,EAEvB,CAEA7yC,GAAiBgf,SAASrJ,IACnB1V,GAAoB6E,SAAS6Q,EAAE9Q,IAAI,QACtC5E,GAAoB/I,KAAKye,EAAE9Q,IAAI,MACjC,IAEF7E,GAAmB,GACnB,IAAK,IAAIyI,EAAI,EAAGA,EAAI2pC,EAAiBnqC,OAAQQ,IAAK,CAC5CgqC,EAAeL,EAAiB3pC,GAApC,IACI7C,EAAuB6sC,EAAa5tC,IAAI,iBACxCgB,EAAkB4sC,EAAa5tC,IAAI,eACnCiB,EAAiB2sC,EAAa5tC,IAAI,YAElCstC,EACE1pC,GAAK,GACHnE,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMF,GAEhD4sC,EAAa1gC,SAAS3M,IAEtBqtC,EAAa1gC,SAASxM,IAGpBjB,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMF,GAEhD4sC,EAAa1gC,SAASvM,IAEtBitC,EAAa1gC,SAAStM,IAItBgD,GAAK,GACHnE,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMD,GAEhD2sC,EAAa1gC,SAAS9M,IAEtBwtC,EAAa1gC,SAASxM,IAGpBjB,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMD,GAEhD2sC,EAAa1gC,SAASrM,IAEtB+sC,EAAa1gC,SAAStM,GAI9B,CAEAgtB,GAAwBC,GAEpBlkB,GACFA,GAEJ,EAiOAlO,GAAM2yC,sCAAwC,SAAUC,EAAiBC,EAAM3kC,EAAU4kC,GACvFpsC,QAAQC,IAAI,gDAERmsC,IACFnzC,GAAsBC,IAGpB7C,IACFjD,GAAI8L,kBAAkB7I,IAEpBE,IACFnD,GAAI8L,kBAAkB3I,IAGxB,IAAI8I,EAAYC,GAAgB,aAE5B4rC,EAA6B7rC,EAAUkG,YAAYnD,cAGnD+oC,GAAa,EACjB,IAAK,IAAI1pC,EAAI,EAAGA,EAAIypC,EAA2BjqC,OAAQQ,IAAK,CAC1D,IAAI8qB,EAAU2e,EAA2BzpC,GACrC8qB,EAAQ1uB,IAAI,cAAgB0uB,EAAQ1uB,IAAI,gBAAiD,IAA/B0uB,EAAQ1uB,IAAI,iBACxEstC,GAAa,EAEjB,CAEA,IAAIC,EAAmB,GACvB,IAAK,IAAI3pC,EAAI,EAAGA,EAAIypC,EAA2BjqC,OAAQQ,IAAK,CAC1D,IAAI4pC,EAAqBH,EAA2BzpC,GAChD6pC,EAA8BD,EAAmBxtC,IAAI,iBACrD0tC,EAAiC,EAEnCA,EADEJ,EAC+BE,EAAmBxtC,IAAI,eAEvBwtC,EAAmBxtC,IAAI,YAE1D0tC,GAAkED,EAElE,IAAIE,GAAkB,EACtB,IAAK,IAAI7pC,EAAI,EAAGA,EAAIypC,EAAiBnqC,OAAQU,IAAK,CAChD,IAAI8pC,EAAeL,EAAiBzpC,GAChC+pC,EAAwBD,EAAa5tC,IAAI,iBACzC8tC,EAA2B,EAQ/B,GANEA,EADER,EACyBM,EAAa5tC,IAAI,eAEjB4tC,EAAa5tC,IAAI,YAE9C8tC,GAAsDD,EAElDH,GAAkCI,EAA0B,CAC9DP,EAAiB5e,OAAO7qB,EAAG,EAAG0pC,GAC9BG,GAAkB,EAClB,KACF,CACF,CACgC,IAA5BJ,EAAiBnqC,QAAiBuqC,GACpCJ,EAAiBl7C,KAAKm7C,EAE1B,CAEA,IAAK,IAAI5pC,EAAI,EAAGA,EAAI2pC,EAAiBnqC,OAAQQ,IAAK,CAChD,IAAI6O,EAAe86B,EAAiB3pC,GAChC7C,EAAuB0R,EAAazS,IAAI,iBACxCgB,EAAkByR,EAAazS,IAAI,eACnCiB,EAAiBwR,EAAazS,IAAI,YAClCohB,EAAiB3O,EAAazS,IAAI,MAElCstC,EACE7tC,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMF,GAEhDyR,EAAavF,SAAS3M,IAEtBkS,EAAavF,SAASpN,IAGpBL,KAAKyB,MAAMH,GAAwBtB,KAAKyB,MAAMD,GAEhDwR,EAAavF,SAAS9M,IAEtBqS,EAAavF,SAASpN,GAG5B,CAGA,IAAI0uC,EAAc,GACdC,EAAsB,GAC1B,IAAK,IAAI7qC,EAAI,EAAGA,EAAI3I,GAAoBmI,OAAQQ,IAAK,CACnD,IAAIgrB,EAAkB3zB,GAAoB2I,GACtCuH,EAAQyjB,EAAgB5uB,IAAI,MAC5B0uC,EAAgB9f,EAAgB5uB,IAAI,cACxCwuC,EAAYn8C,KAAK8Y,GACjBsjC,EAAoBp8C,KAAKq8C,GAEzB,IAAIC,EAAaN,EAAgB3oC,QAAQm7B,GAAMA,EAAEnuC,IAAMyY,IAEvD,GAAyB,GAArBwjC,EAAWvrC,OAAa,SAE5BurC,EAAaA,EAAW,GAGxBxsC,QAAQC,IAAI,UAAWusC,EAAWrC,SAClC1d,EAAgBlsB,IAAI,UAAWisC,EAAWrC,SAC1C1d,EAAgBlsB,IAAI,gBAAiBisC,EAAWxhB,eAGhDyB,EAAgBlsB,IAAI,YAAaisC,EAAWrhB,cAC5C,IAAIshB,EAAeD,EAAWnC,cAC1BqC,EAA0BD,EAAar5C,KAAKylB,GAAMA,EAAEuxB,mBAAkB3lC,KAAK,KAE/EgoB,EAAgBlsB,IAAI,qBAAsBmsC,GAQ1C,IAAI1P,EAAqBvQ,EAAgB5uB,IAAI,cACzC8uC,EAAa/kC,KAAKQ,MAAM40B,GACxB4P,EAAuBngB,EAAgB5uB,IAAI,YAC/C,GAA+B,IAA3B6uC,EAA+B,CACjCC,EAAW30B,SAASa,IAClBA,EAAErC,UAAY0gB,GAAyBre,EAAE+Q,UACzC/Q,EAAEpC,QAAU4gB,GAAuBxe,EAAE+Q,UACrC/Q,EAAEg0B,mBAAqBh0B,EAAEgR,QAAQ,IAEnC,IAAK,IAAIloB,EAAI,EAAGA,EAAI8qC,EAAaxrC,OAAQU,IAAK,CAC5C,IAAIrS,EAAQ6a,KAAK/B,MAAMqkC,EAAa9qC,GAAG6U,WACnC/mB,EAAM0a,KAAK/B,MAAMqkC,EAAa9qC,GAAG8U,SACjCq2B,EAAensB,WAAW8rB,EAAa9qC,GAAGmrC,cAC9CH,EAAW30B,SAASa,IACdhD,GAAoBvmB,EAAOG,EAAKopB,EAAErC,UAAWqC,EAAEpC,WACjDoC,EAAEg0B,mBAAqBz9B,GAAsB,CAACyJ,EAAEg0B,mBAAoBC,IACpEF,EAAuB/zB,EAAEg0B,mBAAqBD,EAAuB/zB,EAAEg0B,mBAAqBD,EAC9F,GAEJ,CACF,CACAngB,EAAgBlsB,IAAI,uBAAwBqsC,EAC9C,CACKR,IACHnzC,GAAsBozC,GAExB,IAAK,IAAI5qC,EAAI,EAAGA,EAAI2pC,EAAiBnqC,OAAQQ,IAAK,CAC5C6O,EAAe86B,EAAiB3pC,GAChCwd,EAAiB3O,EAAazS,IAAI,MAEtC,GAAI5E,GAAoBgI,OAAS,EAAG,CAClC,IAAI0lB,GAAoB,EACpBC,GAAa,EACjB,IAAK,IAAIjlB,EAAI,EAAGA,EAAI1I,GAAoBgI,OAAQU,IAAK,CACnD,IAAIklB,EAAW5tB,GAAoB0I,GAKnC,GAJiB,KAAbklB,IACFD,GAAa,GAGXzP,SAAS8H,KAAoB9H,SAAS0P,GAAW,CACnDF,GAAoB,EACpB,KACF,CACF,CACKA,GAAsBC,GACzBtW,EAAavF,SAASvO,GAE1B,CACF,CACA,IAAIuwC,EAAYV,EAAY5nC,OAAS,IAAM6nC,EAAoB7nC,OAC7C,MAAdsoC,IACFA,EAAY,IAGVZ,GACFxf,GAAkBp0B,GAAkBw0C,GAAW,WAC7C/sC,QAAQC,IAAI,0BACZ4sB,IAAuB,WACrBD,IAAyB,WACvB5sB,QAAQC,IAAI,mBACZ6L,GAAgBvT,GAAkBiP,EACpC,GACF,GACF,IAMEA,IAAa2kC,GACf3kC,GAEJ,EAEAlO,GAAM0zC,gCAAkC,SAAUC,GAChDn0C,GAAoBkf,SAASrJ,IAC3B3O,QAAQC,IAAI,UAAW,MACvB0O,EAAEpO,IAAI,UAAW,MACjBxH,GAAsB7I,KAAKye,GAC3BA,EAAE5D,SAASpM,GAAuB,IAEpC7F,GAAsB,GACtBm0C,GACF,EAEA3zC,GAAM4zC,oCAAsC,WAC1Cr0C,GAAgB,CAClB,EACAS,GAAM6zC,sCAAwC,WAC5Ct0C,GAAgB,CAClB,EAujDAS,GAAM8zC,sBAAwB,SAAU5lC,GACtC,IAAIu9B,EAAYzlC,GAAgB,eAC5B0lC,EAAeD,EAAUx/B,YAAYnD,cAErCylC,EAAYvoC,GAAgB,gBAC5B+tC,EAAexF,EAAUtiC,YAAYnD,cAGrCkrC,EAAgB,GACpB,IAAK,IAAI7rC,EAAI,EAAGA,EAAI4rC,EAAapsC,OAAQQ,IAAK,CAC5C,IAAI8rC,EAAYF,EAAa5rC,GACzB+rC,EAAUD,EAAU1vC,IAAI,MAExBwC,EAAe0O,GAA4By+B,GAC3B,MAAhBntC,IACFA,EAAeC,GAAgBitC,IAEjC,IAAIE,EAAe,IAAItzB,GAAeqzB,EAASntC,EAAc,MAC7DitC,EAAcp9C,KAAKu9C,EACrB,CAIAjmC,EAASw9B,EAAcsI,EACzB,EAEAh0C,GAAMo0C,uBAAyB,WAC7B,OAAOnyC,EACT,EAuKAjC,GAAMq0C,uBAAyBC,eAAgBC,EAAOC,EAAUC,GAC9D,MAAM7mC,EAAM,GAAG7T,gGAAwGw6C,0DAA8DC,sBAC/K5pC,QAAiB,SAAUgD,GAC3B8mC,GAAiB,IAAI,MAAU3pC,aAAaH,EAAShX,MAC3D,IAAI8mB,EAAWg6B,EAAe56C,KAAKub,IACjCA,EAAEpO,IAAI,YAAawtC,GACZp/B,KAET3O,QAAQC,IAAI+T,GACZ,IAEIkd,EAFAC,EAAY,IAAI,KAGhBC,EAAY,IAAIC,GAAA,EAAI,CACtBjuB,UAAW,YACXkuB,YAAauc,EAEbtc,QAAS,aACTpuB,QAAS,cAEX+tB,EAAOC,EAAUK,iBAAiBxd,EAAU,KAAM,KAAMod,GAExD,IAAI5tB,EAAK,IAAIC,cACTC,EAAUF,EAAGG,kBAAkButB,GAKnCxtB,EAAUA,EAAQ6E,MAAM,aAAa9D,KAAK,SAC1CzE,QAAQC,IAAI,WACZD,QAAQC,IAAIyD,GACZ,IAAI6tB,EAAU,IAAIE,eAClBF,EAAQG,KAAK,OAAQ,sCACrBH,EAAQI,mBAAqB,WACD,GAAtBJ,EAAQK,aACV5xB,QAAQC,IAAI,YACZD,QAAQC,IAAIsxB,EAAQM,aAOxB,EAEAN,EAAQO,iBAAiB,eAAgB,YACzCP,EAAQQ,KAAKruB,GAEb1D,QAAQC,IAAI,iCACd,EAEA,UCx0VA,IACEsW,QAAQ03B,GAGN,OAFAA,EACuB,iBAAdA,EAAyBA,EAAa,IAAI9jC,KAAK8jC,GACjDA,CACT,EACAC,cAAcC,GACZ,OAAKA,GACLA,EAAsB,iBAARA,EAAmBA,EAAO,IAAIhkC,KAAKgkC,GAC1C,GAAGA,EAAK93B,iBAAiBvqB,OAAOqiD,EAAK73B,WAAa,GAAG4W,SAC1D,EACA,QACGphC,OAAOqiD,EAAK53B,WAAW2W,SAAS,EAAG,QALtB,IAMpB,EACAkhB,mBAAmBD,GACjB,OAAKA,GACLA,EAAsB,iBAARA,EAAmBA,EAAO,IAAIhkC,KAAKgkC,GAC1CA,EAAKE,eAAe,QAAS,CAAEjhB,KAAM,UAAWH,MAAO,WAF5C,IAGpB,EACAqhB,WAAWC,GAgBT,cAfOA,EAAQC,iBACRD,EAAQE,WACfF,EAAQG,aAAeH,EAAQG,aAC3B/jD,KAAKujD,cAAcK,EAAQG,cAC3BH,EAAQG,aACZH,EAAQ32B,iBAAmBjtB,KAAKujD,cAAcK,EAAQ32B,kBACtD22B,EAAQz2B,eAAiBntB,KAAKujD,cAAcK,EAAQz2B,gBACpDy2B,EAAQnX,MAAMpf,SAASG,IACrBA,EAAE7oB,MAAQ3E,KAAKujD,cAAc/1B,EAAE7oB,OAC/B6oB,EAAE1oB,IAAM9E,KAAKujD,cAAc/1B,EAAE1oB,IAAI,IAEnC8+C,EAAQI,WAAW32B,SAAS+e,IAC1BA,EAAEvgB,UAAY7rB,KAAKujD,cAAcnX,EAAEvgB,WACnCugB,EAAEtgB,QAAU9rB,KAAKujD,cAAcnX,EAAEtgB,QAAQ,IAEpC83B,CACT,G,mCClCF,IACEK,QAAQC,EAAKC,GACPA,EAAMA,GAAY,mCAAtB,IACIC,EAAK,mBACLlsB,EAAM,oBAAwBisB,GAC9BE,EAAK,oBAAwBD,GAE7BE,EAAY,GAEZC,EAAO,oBAAwBL,GAOnC,OANAI,EAAY,iBAAqBC,EAAMrsB,EAAK,CAC1CmsB,GAAIA,EACJ/d,KAAM,cACNke,QAAS,iBAGJF,EAAUG,WAAWjxC,UAC9B,EACAkxC,QAAQR,EAAKC,GACPA,EAAMA,GAAY,mCAAtB,IACIC,EAAK,mBACLlsB,EAAM,oBAAwBisB,GAC9BE,EAAK,oBAAwBD,GAC7BO,EAAkB,mBAAuBT,GACzCK,EAAO,0BAA8BI,GACrCC,EAAU,iBAAqBL,EAAMrsB,EAAK,CAC5CmsB,GAAIA,EACJ/d,KAAM,cACNke,QAAS,iBAEPK,EAAeD,EAAQpxC,SAAS,eACpC,OAAOqxC,EAAarxC,UACtB,GC9BF,IAAe,SAAY,CACzBsxC,MAAO,CACLC,UAAW,EACXC,OAAQ,GACR7+C,YAAa,KACbK,YAAY,EACZy+C,aAAc,GACdC,iBAAkB,GAClBv/C,eAAgB,MAElBD,QAAS,CACPy/C,UAAUL,GACR,OAAOA,EAAMC,SACf,EACAK,OAAON,GACL,OAAOA,EAAME,MACf,EACA7+C,YAAY2+C,GACV,GAAI7+C,aAAao/C,QAAQ,iBAAkB,CACzC,IAAIC,EAAOr/C,aAAao/C,QAAQ,iBAAiBE,WAAW,KACxDt/C,aAAao/C,QAAQ,iBACrBG,GAAad,QAAQz+C,aAAao/C,QAAQ,kBAC9C,OAAIC,EAAKnyC,SAAS,mBACT2xC,EAAM3+C,YAER2+C,EAAM3+C,aAAe8W,KAAKQ,MAAM6nC,EACzC,CACA,OAAOR,EAAM3+C,WACf,EACAK,WAAWs+C,GACT,GAAI7+C,aAAao/C,QAAQ,iBAAkB,CACzC,IAAIC,EAAOr/C,aAAao/C,QAAQ,iBAAiBE,WAAW,KACxDt/C,aAAao/C,QAAQ,iBACrBG,GAAad,QAAQz+C,aAAao/C,QAAQ,kBAC9C,OAAIC,EAAKnyC,SAAS,mBACT2xC,EAAMt+C,WAERs+C,EAAMt+C,YAAcyW,KAAKQ,MAAM6nC,EACxC,CACA,OAAOR,EAAMt+C,UACf,EACAy+C,aAAaH,GACX,OAAOA,EAAMG,YACf,EACAC,iBAAiBJ,GACf,OAAOA,EAAMI,gBACf,EACAv/C,eAAem/C,GACb,OAAOA,EAAMn/C,cACf,GAEF8/C,UAAW,CACTC,aAAaZ,EAAO/rC,GAClB+rC,EAAMC,UAAYhsC,EAAQ5V,KAC5B,EACAwiD,UAAUb,EAAO/rC,GACf+rC,EAAME,OAASjsC,EAAQ5V,KACzB,EACAyiD,eAAed,EAAO/rC,GACpB+rC,EAAM3+C,YAAc4S,EAAQ5V,KAC9B,EACA0iD,cAAcf,EAAO/rC,GACnB+rC,EAAMt+C,WAAauS,EAAQ5V,KAC7B,EACA2iD,oBAAoBhB,EAAO/rC,GACzB+rC,EAAMI,iBAAmBnsC,EAAQ5V,KACnC,EACA4iD,gBAAgBjB,EAAO/rC,GACrB+rC,EAAMG,aAAelsC,EAAQ5V,KAC/B,EACA6iD,gBAAgBlB,EAAO/rC,GACrB+rC,EAAMG,aAAa1/C,KAAKwT,EAAQ5V,MAClC,EACA8iD,kBAAkBnB,EAAO/rC,GACvB+rC,EAAMn/C,eAAiBoT,EAAQ5V,KACjC,GAEF+iD,QAAS,CACPC,MAAMC,EAASrtC,GACbqtC,EAAQC,OAAO,iBAAkB,CAAEljD,MAAO4V,EAAQusC,OAClDc,EAAQC,OAAO,gBAAiB,CAAEljD,OAAO,GAC3C,EACAiC,OAAOghD,GACLA,EAAQC,OAAO,iBAAkB,CAAEljD,MAAO,OAC1CijD,EAAQC,OAAO,gBAAiB,CAAEljD,OAAO,GAC3C,EACAmjD,oBAAoBF,GAClB,IAAIG,EAAeH,EAAQ1gD,QAAQy/C,UAAY,EAC/CiB,EAAQC,OAAO,eAAgB,CAAEljD,MAAOojD,GAC1C,EACAC,eAAeJ,EAASrtC,GAEtBqtC,EAAQC,OAAO,kBAAmB,CAAEljD,MAAO4V,EAAQ6qC,UACnDwC,EAAQC,OAAO,oBAAqB,CAAEljD,MAAO4V,EAAQ6qC,SACvD,EACAmC,gBAAgBK,EAASrtC,GACvBqtC,EAAQC,OAAO,kBAAmB,CAAEljD,MAAO4V,EAAQ0tC,UACrD,EACAX,oBAAoBM,EAASrtC,GAC3BqtC,EAAQC,OAAO,sBAAuB,CACpCljD,MAAO4V,EAAQmsC,kBAEnB,EACAe,kBAAkBG,EAASrtC,GACzBqtC,EAAQC,OAAO,oBAAqB,CAAEljD,MAAO4V,EAAQ6qC,SACvD,GAEF8C,QAAS,CAAC,IJxBZ,IACIxnD,KAAM,WAENqD,OAEI,MAAO,CAEHyE,WAAW,EACXE,UAAU,EACVjF,WAAW,EACX0kD,SAAS,EACThnD,OAAQ,OACRC,MAAO,UACPuH,QAAS,UACTrH,OAAQ,IACRD,MAAO,IAEP6G,QAAS,oBACTkgD,aAAa,EACbC,gBAAgB,EAChBC,QAAQ,EACRt+C,cAAe,GACfH,aAAc,GACd0+C,aAAc,GACd7+C,eAAe,EAEf8+C,kBAAmB,GACnBC,eAAgB,EAExB,EAGA5kD,WAAY,CACR6kD,QAAO,GAGX9jD,SAAU,CACNwD,oBACI,OAAO5G,KAAKyF,OAAOC,QAAQC,gBAAgBC,EAC/C,EACAuhD,aACI,QAAOnnD,KAAKyF,OAAOC,QAAQC,gBAAiB3F,KAAKyF,OAAOC,QAAQC,eAAeyhD,QACnF,EACAC,eACI,OAAOrnD,KAAKyF,OAAOC,QAAQS,aAAcnG,KAAKyF,OAAOC,QAAQS,YAAYmhD,SAASn0C,SAAS,aAC/F,EACApL,mBACI,OAAI/H,KAAK4G,kBACD5G,KAAKyF,OAAOC,QAAQC,gBAAgB4hD,SAC7B,qBAAqBvnD,KAAKyF,OAAOC,QAAQC,eAAeo+C,eAE1D/jD,KAAK8mD,OACH,qDAGA,kBAIJ,EAEf,EACAj/C,kBACI,OAAI7H,KAAK4G,oBAAqB5G,KAAKyF,OAAOC,QAAQS,eAC1CnG,KAAKyF,OAAOC,QAAQS,YAAYmhD,SAASn0C,SAAS,gBAC1CnT,KAAKyF,OAAOC,QAAQC,eAAe4hD,QASvD,EACAC,iBAEI,OADAnyC,QAAQC,IAAItV,KAAKyF,OAAOC,QAAQC,gBACzB,0BAA6B2Q,OAAS,CACjD,EACA7O,gBACI,IAAIggD,EAAS,6BAAgC7uC,QAAOsV,GAAKA,EAAEiN,aAAexoB,KAAKyB,MAAM8Z,EAAEwN,mBAAqB/oB,KAAKyB,MAAM8Z,EAAEmS,iBAAgB/pB,OAAS,EAClJ,OAAiF,GAA7EtW,KAAKyF,OAAOC,QAAQC,eAAeq+C,WAAWprC,QAAOwzB,GAAKA,EAAE3a,QAAOnb,QAAgBmxC,EAKD,GAA7EznD,KAAKyF,OAAOC,QAAQC,eAAeq+C,WAAWprC,QAAOwzB,GAAKA,EAAE3a,QAAOnb,QAAemxC,GACvFznD,KAAKgnD,kBAAoB,0FACzBhnD,KAAKinD,eAAiB,GACf,GAE4E,GAA9EjnD,KAAKyF,OAAOC,QAAQC,eAAeq+C,WAAWprC,QAAOwzB,IAAMA,EAAE3a,QAAOnb,QAAemxC,GACxFznD,KAAKgnD,kBAAoB,mEACzBhnD,KAAKinD,eAAiB,GACf,KAEFjnD,KAAKyF,OAAOC,QAAQC,eAAeq+C,WAAWprC,QAAOwzB,GAAKA,EAAE3a,QAAOnb,OAAS,GAAKtW,KAAKyF,OAAOC,QAAQC,eAAeq+C,WAAWprC,QAAOwzB,IAAMA,EAAE3a,QAAOnb,OAAS,GAAKmxC,KACxKznD,KAAKgnD,kBAAoB,2CACzBhnD,KAAKinD,eAAiB,GACf,IAjBPjnD,KAAKgnD,kBAAoB,0FACzBhnD,KAAKinD,eAAiB,GACf,EAmBf,EACA3/C,0BACI,OAAItH,KAAK4G,oBACG5G,KAAKyF,OAAOC,QAAQC,gBAAgB6X,YAGpD,GAGJpd,QAAS,CACLsnD,eACI,OAAO1nD,KAAKyF,OAAOC,QAAQy/C,SAC/B,EACAr+C,sBACI9G,KAAKsF,QAAQC,KAAK,eACtB,EACA8B,mBACIrH,KAAKsF,QAAQC,KAAK,YACtB,EACAwB,oBACI,IAAI9I,EAAQ+B,KACZA,KAAK2nD,WAAW,GAAG,WACf,gCACA1pD,EAAMqH,QAAQC,KAAK,aACvB,GACJ,EAIAqiD,WACI5nD,KAAKsF,QAAQC,KAAK,IACtB,EACAF,mBACIrF,KAAK0G,QAAU,wBACf,IAAI4+C,EAAOtlD,KAAKyF,OAAOC,QAAQS,YAC3BlI,EAAQ+B,KACZ/B,EAAM4pD,YAAYvC,EAAK1/C,IAAI,SAAU6gD,GACjCA,EAASp5B,SAAQy6B,IACbA,EAAEphD,QAAU,oBACZohD,EAAEC,gBAAkB,YACpBD,EAAEE,SAAW,aAAa,IAE9B/pD,EAAMwH,OAAOO,SAAS,kBAAmB,CACrCygD,SAAUA,IAEO,OAAjBnB,EAAKgC,SACLrpD,EAAMgqD,oBAAoB3C,EAAK4C,SAASnb,QAAQ,IAAK,QAAQ,SAAUmY,GACnEA,EAAiB73B,SAAQy6B,IACrBA,EAAEphD,QAAU,oBACZohD,EAAEC,gBAAkB,WAAW,IAEnC9pD,EAAMwH,OAAOO,SAAS,sBAAuB,CACzCk/C,iBAAkBA,IAEtBjnD,EAAMqH,QAAQynC,QAAQ,CAAEob,KAAM,aAClC,IAGAlqD,EAAMqH,QAAQynC,QAAQ,CAAEob,KAAM,cAElClqD,EAAMyI,QAAU,mBACpB,GACJ,EACAmhD,YAAYO,EAAQC,GAChBroD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,6BAA6BqiD,KACzC9uC,MAAKC,IACF8uC,EAAgB9uC,EAAShX,KAAK,IAEjC4a,OAAMC,IAAW/H,QAAQC,IAAI8H,EAAK,GAC3C,EACA6qC,oBAAoBC,EAAUG,GAC1BroD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,+BAA+BmiD,KAC3C5uC,MAAKC,IACF8uC,EAAgB9uC,EAAShX,KAAK,IAEjC4a,OAAMC,IAAW/H,QAAQC,IAAI8H,EAAK,GAC3C,EACA5X,uBACI,4BAAmF,IAApDxF,KAAKyF,OAAOC,QAAQC,eAAeqzC,MAAM1iC,QACxEtW,KAAKsF,QAAQC,KAAK,gBACtB,EACAgC,qBACIvH,KAAKsF,QAAQC,KAAK,UACtB,EAEA6B,sBACIpH,KAAKgH,WAAY,EACjB,IAAI/I,EAAQ+B,KACZA,KAAK2nD,WAAW,GAAG,WACftyC,QAAQC,IAAI,SACZD,QAAQC,IAAI,oCAAsCrX,EAAMypD,gBACxD,kBAAqBzpD,EAAMwH,OAAOC,QAAQC,eAC9C,IACA,QAAW1H,EAAMwH,OAAOC,QAAQC,gBAChC,IAAI2iD,EAAQ,0BAA6BrqD,EAAMwH,OAAOC,QAAQC,gBAC9D,IAAI4iD,EAAUC,aAAY,KACtBnzC,QAAQC,IAAI,uBACZgzC,EAAQ,0BAA6BrqD,EAAMwH,OAAOC,QAAQC,gBAC7C,GAAT2iD,IACAG,cAAcF,GACdtqD,EAAM+I,WAAY,EAClB/I,EAAMwH,OAAOC,QAAQC,eAAe6X,aAAe,EACvD,GACD,KAGH,OADA3a,YAAW,KAAQ4lD,cAAcF,GAAUvoD,KAAKgH,WAAY,CAAK,GAAK,MAC/DuhD,CAGX,EAGAthD,gBACIyhD,eACArzC,QAAQC,IAAI,6BAChB,EAEA5N,iBACI1H,KAAKsF,QAAQC,KAAK,UACtB,EACAojD,qBACI,IAAI1qD,EAAQ+B,KACZA,KAAK2nD,WAAW,GAAG,WAIf,kCACA1pD,EAAMqH,QAAQC,KAAK,gBACvB,GACJ,EACAiC,yBAAyBnH,GACrB,IAAIpC,EAAQ+B,KACZ,iCACK,4BAA+BsW,OAchCrY,EAAM0qD,qBAbN3oD,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS,wCACT/jD,KAAM,oBACNgkD,OAAQ,KACJ/qD,EAAMsJ,oBAAoB,EAE9Bu/C,OAAQ,QAQpB,EACAh/C,sBAAsBzH,GAClB,IAAIpC,EAAQ+B,KACP/B,EAAMwH,OAAOC,QAAQC,gBAAgB4hD,UACtCvnD,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS,oGACT/jD,KAAM,oBACNikD,YAAa,SACbC,YAAa,SACbF,OAAQ,KACJ/qD,EAAMkrD,gBAAgB,EAE1BrC,OAAQ,KACJ7oD,EAAMmrD,eAAe,GAIrC,EACAD,iBACI,IAAIlrD,EAAQ+B,KACZA,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,iCAAiC/F,KAAK0nD,+BACnDpuC,MAAKC,IACFtb,EAAMwH,OAAOC,QAAQC,eAAe4hD,UAAW,EAC/CtpD,EAAMwH,OAAOC,QAAQC,eAAeo+C,aAAesF,GAAW9F,cAAc/jC,KAAK8pC,MAAM,IAE1FnsC,OAAOC,IAAD,GAGf,EACAgsC,gBACI,IAAInrD,EAAQ+B,KACZA,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,iCAAiC/F,KAAK0nD,gCACnDpuC,MAAKC,IACFtb,EAAM6oD,QAAS,CAAI,IAEtB3pC,OAAOC,IAAD,GAEf,EACAzV,kBAAkBtH,GACTL,KAAKyF,OAAOC,QAAQC,eAAeyhD,SAcpCpnD,KAAK0H,iBAbL1H,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS/oD,KAAKgnD,kBACdhiD,KAAM,oBACNgkD,OAAQ,KACJhpD,KAAKsF,QAAQC,KAAK,eAAevF,KAAKinD,iBAAiB,EAE3DH,OAAQ,KACJ9mD,KAAK0H,gBAAgB,GAOrC,EACAigD,WAAW4B,EAAMC,GAC0C,GAAnDxpD,KAAKyF,OAAOC,QAAQC,eAAeqzC,MAAM1iC,QAAeizC,EAAO,GAC/DvpD,KAAKwI,cAAgB,+GACrBxI,KAAKqI,aAAe,WACpBrI,KAAK+mD,aAAe,8BACpB/mD,KAAKkI,eAAgB,GAEmC,GAAnDlI,KAAKyF,OAAOC,QAAQC,eAAe8mC,MAAMn2B,QAAeizC,EAAO,GACpEvpD,KAAKwI,cAAgB,uGACrBxI,KAAKqI,aAAe,eACpBrI,KAAK+mD,aAAe,8BACpB/mD,KAAKkI,eAAgB,GAEwC,GAAxDlI,KAAKyF,OAAOC,QAAQC,eAAeq+C,WAAW1tC,QAAeizC,EAAO,GACzEvpD,KAAKwI,cAAgB,yFACrBxI,KAAKqI,aAAe,gBACpBrI,KAAK+mD,aAAe,aACpB/mD,KAAKkI,eAAgB,GAGrBshD,GAGR,EACAlhD,WACItI,KAAKkI,eAAgB,EACrBlI,KAAKsF,QAAQC,KAAKvF,KAAK+mD,aAC3B,IKpaR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UCRS9nD,MAAM,gB,4FAAX,QAQM,MARN,GAQM,CAPqF,GAA7B,EAAAwqD,2B,qBAA1D,QAES,G,MAFDzkD,KAAK,YAAYY,GAAG,wBACqB,QAAO,EAAA8jD,sBAAuBzqD,MAAM,W,yBAAtE,oC,eAEkD,EAAyB,2B,qBAA1F,QAES,G,MAFD+F,KAAK,kBAAkBY,GAAG,yBACe,QAAO,EAAA8jD,sBAAuBzqD,MAAM,W,yBAAtE,oC,iBAQvB,QACIC,KAAM,eACNqD,OACI,MAAO,CACHknD,2BAA2B,EAEnC,EACArmD,SAAU,CACNumD,gCACI,OAAO,oCACX,GAEJvpD,QAAS,CACLspD,wBAEI,sBAAyB1pD,KAAKypD,2BAC9BzpD,KAAKypD,2BAA6BzpD,KAAKypD,yBAC3C,ICxBR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,yECPQ,OAAqF,WAAhF,8EAA0E,K,IAC1ExqD,MAAM,c,2FAFf,QAMS,GAND+I,OAAO,wBAAyBC,SAAS,EAAOE,OAAO,G,CAGhDC,QAAM,SACb,IAAkE,EAAlE,QAAkE,GAA1DvB,MAAM,iBAAkB,QAAO,EAAArC,cAAe+D,UAAA,I,yCAH1D,IAAqF,CAArF,IACA,OAA6C,MAA7C,IAA6C,QAAlB,EAAAhE,WAAS,M,MAS5C,QACIrF,KAAM,eACNjB,MAAO,CACHsG,UAAWpD,QAEfoB,OAEI,MAAO,CAEHyE,WAAW,EACXE,UAAU,EACVjF,WAAW,EACX0kD,SAAS,EACThnD,OAAQ,OACRC,MAAO,UACPuH,QAAS,UACTrH,OAAQ,IACRD,MAAO,IAEP6G,QAAS,oBACTkgD,aAAa,EACbC,gBAAgB,EAChBC,QAAQ,EACRt+C,cAAe,GACfH,aAAc,GACd0+C,aAAc,GACd7+C,eAAe,EAEf8+C,kBAAmB,GACnBC,eAAgB,EAExB,EACA7jD,SAAU,CACV,EAEAhD,QAAS,CACLoE,gBACIxE,KAAK4C,MAAM,gBACf,IC3CR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UCRS3D,MAAM,Y,igEACP,I,2CADJ,QAgDM,MAhDN,GAgDM,G,CAWV,QACIC,KAAM,SAENqD,OAEI,MAAO,CAEHyE,WAAW,EACXE,UAAU,EACVjF,WAAW,EACX0kD,SAAS,EACThnD,OAAQ,OACRC,MAAO,UACPuH,QAAS,UACTrH,OAAQ,IACRD,MAAO,IAEP6G,QAAS,oBACTkgD,aAAa,EACbC,gBAAgB,EAChBC,QAAQ,EACRt+C,cAAe,GACfH,aAAc,GACd0+C,aAAc,GACd7+C,eAAe,EAEvB,EAGA7F,WAAY,CACR6kD,QAAO,GAGX9jD,SAAU,CAEV,EAEAhD,QAAS,CAET,GC5FJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,Ud0HA,IACElB,KAAM,WACNmD,WAAY,CACVunD,UAAS,GACTC,SAAQ,GACRC,aAAY,GACZC,aAAY,GACZC,OAAM,IAERznD,OACE,MAAO,CACL8B,MAAO,GACP4lD,MAAO,GACP3lD,KAAM,EACN4lD,UAAW,EACX3lD,UAAW,GAEf,EACAnE,QAAS,CACP+pD,cACE,IAAIlsD,EAAQ+B,KACZ,IAAIoqD,EAASC,EAAMC,EAAOC,EAE1BtsD,EAAMisD,YAEFjsD,EAAMgsD,MAAQhsD,EAAMisD,WAAa,IACnCjsD,EAAMqG,OACNrG,EAAMisD,UAAY,GAEpBE,EAAUnsD,EAAMoG,MAAQpG,EAAMqG,KAC9B+lD,EAAOpsD,EAAMgsD,MAAQhsD,EAAMisD,UAE3BI,EAAQF,EAAQ52C,WAAW+uB,SAAS,EAAG,KACvCgoB,EAAQF,EAAK72C,WAAW+uB,SAAS,EAAG,KAEpCtkC,EAAMsG,UAAY+lD,EAAQ,IAAMC,CAClC,EACAC,gBACE,IAAIvsD,EAAQ+B,KAEZzB,SAAS2B,iBAAiB,aAAa,WACjCjC,EAAMoG,MAAQ,KAChBpG,EAAMqG,KAAO,EACbrG,EAAMisD,UAAY,EAEtB,IAGA3rD,SAAS2B,iBAAiB,SAAS,WAC7BjC,EAAMoG,MAAQ,KAChBpG,EAAMqG,KAAO,EACbrG,EAAMisD,UAAY,EAEtB,IAGA3rD,SAAS2B,iBAAiB,YAAY,WAChCjC,EAAMoG,MAAQ,KAChBpG,EAAMqG,KAAO,EACbrG,EAAMisD,UAAY,EAEtB,IACA1B,aAAY,KACVvqD,EAAMksD,aAAa,GAClB,IACL,EACA3lD,gBACExE,KAAKsE,KAAO,EACZtE,KAAKkqD,UAAY,CACnB,GAEF9mD,SAAU,CACRoD,aACE,OAAOxG,KAAKyF,OAAOC,QAAQc,UAC7B,EACAikD,iBACE,OAAOzqD,KAAKyF,OAAOC,QAAQS,WAC7B,GAEFpG,UACE,GAAIkG,aAAao/C,QAAQ,iBAAkB,CACzC,IAAIC,EAAOr/C,aAAao/C,QAAQ,iBAAiBE,WAAW,KACxDt/C,aAAao/C,QAAQ,iBACrBG,GAAad,QAAQz+C,aAAao/C,QAAQ,kBAC9C,GAAIC,EAAKnyC,SAAS,mBAChBnT,KAAKsF,QAAQC,KAAK,cAEf,CACH,IAAImlD,EAAaztC,KAAKQ,MAAM6nC,GACD,SAAvBoF,EAAWpD,SACbtnD,KAAKsF,QAAQC,KAAK,WAGlB,UAAavF,KAAK+F,aAClB/F,KAAKwqD,gBACLxqD,KAAKsF,QAAQC,KAAK,aAEtB,CACF,MAEEvF,KAAKsF,QAAQC,KAAK,SAEtB,GejOF,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,GAAQ,CAAC,YAAY,qBAEzF,U,UCTOtG,MAAM,a,2CAAX,QAEM,MAFN,GAAuB,mB,CAMzB,QAEC,ECFD,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,UCRSA,MAAM,U,sHAAX,QAKM,MALN,GAKM,CAJW,EAAe,kB,WAA5B,QAA4F,G,MAA7D,kBAAiB,EAAA0rD,gBAAkBC,WAAY,EAAAA,Y,yDAC9E,QACsB,G,MADJ,kBAAiB,EAAAD,gBAAkBrF,KAAM,EAAAuF,QAAU,gBAAa,eAAE,EAAAC,iBAAkB,GAClGxkB,KAAK,Y,uCACT,QAAe,I,0ECCX,OAAmC,WAA9B,4BAAwB,K,IACxBrnC,MAAM,W,IAGNA,MAAM,yB,UACgCM,MAAA,yC,UAGMA,MAAA,yC,UAGLA,MAAA,yC,UAEDA,MAAA,yC,IAGlCN,MAAM,0B,IACDA,MAAM,yC,YACR,OAAwB,KAArBA,MAAM,cAAY,W,YAErB,OAAsC,SAA/B8rD,IAAI,YAAW,YAAQ,K,IAGjC9rD,MAAM,0B,IACDA,MAAM,yC,YACR,OAA4C,KAAzCA,MAAM,aAAaM,MAAA,iB,uBAEtB,OAAsC,SAA/BwrD,IAAI,YAAW,YAAQ,K,UAGW9rD,MAAM,UACnDM,MAAA,6C,YAA4C,oC,YAElC,OAAI,qB,UAEYN,MAAM,UAAUM,MAAA,6C,UAIbN,MAAM,UAAUM,MAAA,yB,IAE5CA,MAAA,qC,IAMJN,MAAM,U,YAQX,OAAgC,WAA3B,yBAAqB,K,IAGrBA,MAAM,yB,YACP,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uBAAwB,+DAE5D,K,IACKN,MAAM,0B,YAGX,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uBAAwB,sBAE5D,K,IAECN,MAAM,wBAAwBM,MAAA,iB,IAC1BN,MAAM,yB,IAINA,MAAM,yB,IAINA,MAAM,yB,IAINA,MAAM,yB,IAINA,MAAM,yB,IAINA,MAAM,yB,UAKgBA,MAAM,UAAUM,MAAA,yB,IAI1CN,MAAM,U,qLAxGO,EAAAqmD,M,4BAA1B,QAyDO,G,MAzDDrmD,MAAM,Q,CACG+I,QAAM,SAAjB,IAEW,KACAklC,OAAK,SACZ,IAAmC,CAAnC,IACA,OAAwC,MAAxC,IAAwC,QAAhB,EAAA8d,SAAO,MAExBC,SAAO,SACd,IAwCM,EAxCN,OAwCM,MAxCN,GAwCM,CAvCO,EAAAL,WAAWz3C,SAAS,W,WAA7B,QAE6C,IAF7C,GAA+E,iEAGjE,EAAAy3C,WAAWz3C,SAAS,Y,WAAlC,QAEsD,IAFtD,GAAqF,0EAGvE,EAAA+3C,YAAc,EAAAC,a,WAA5B,QACsD,IADtD,GAAgF,0EAElE,EAAAD,WAAa,EAAAC,a,WAA3B,QAE6C,IAF7C,GAA+E,kE,gBAG/E,OAMM,MANN,GAMM,EALF,OAIO,OAJP,GAIO,CAHH,IACA,QAA0D,GAA/CvlD,GAAG,WAAW1E,KAAK,O,WAAgB,EAAAkqD,S,qCAAA,EAAQ,a,uBACtD,QAGR,OAMM,MANN,GAMM,EALF,OAIO,OAJP,GAIO,CAHH,IACA,QAA8E,G,WAA3D,EAAAC,S,qCAAA,EAAQ,YAAGC,UAAU,EAAO,iBAAYrsD,MAAM,Y,uBACjE,OAGG,EAAAssD,aAAe,GAAK,EAAAA,aAAe,I,WAA9C,QAI2F,MAJ3F,GAI2F,C,GAD7E,I,QAAI,yHAC6C,UAAO,EAAAA,cAAY,O,eACvE,EAAAA,cAAgB,I,WAA3B,QAG8B,MAH9B,GAA0F,8J,eAI/E,EAAoB,uB,WAA/B,QACgB,MADhB,GAA2E,8B,gBAE3E,OAEM,MAFN,GAEM,EADF,QAAuF,GAA/E1kD,MAAM,mBAAmB2kD,KAAA,GAAM,QAAK,eAAE,EAAAC,gBAAgBlsD,MAAA,2BAI/D6I,QAAM,SACb,IAGM,EAHN,OAGM,MAHN,GAGM,EAFF,QAAsI,GAA9HvB,MAAM,WAAW5H,MAAM,qBAAqBM,MAAA,oDAAsD,QAAK,eAAE,EAAAorD,sBACjH,QAAkH,GAA1G9jD,MAAM,QAAS,QAAK,eAAE,EAAA6kD,gBAAiB1mD,KAAM,EAAA2mD,QAASC,QAAQ,QAAQrsD,MAAA,gC,6BAI/C,SAAlB,EAAA+lD,MAAMgC,W,WAA/B,QAoDO,G,MApDDroD,MAAM,Q,CACGiuC,OAAK,SACZ,IAAgC,CAAhC,MAEO+d,SAAO,SACd,IAUM,EAVN,OAUM,MAVN,GAUM,CATF,IAGA,OAEM,MAFN,IAEM,QADC,EAAA3F,MAAMuG,OAAK,GAElB,MAIJ,OAyBM,MAzBN,GAyBM,EAxBF,OAGM,MAHN,GAGM,EAFF,QACyE,G,WADnD,EAAAC,W,qCAAA,EAAU,cAAE7sD,MAAM,aAAcmzB,IAAK,EAAIwa,IAAK,EAAGmf,QAAQ,aAC1E,QAAK,gBAAQ,EAAAnrD,MAAM,eAAgB,QAAK,eAAE,EAAAkrD,gBAAazrC,I,0BAEhE,OAGM,MAHN,GAGM,EAFF,QACyE,G,WADnD,EAAA2rC,W,qCAAA,EAAU,cAAE/sD,MAAM,aAAcmzB,IAAK,EAAIwa,IAAK,EAAGmf,QAAQ,aAC1E,QAAK,gBAAQ,EAAAnrD,MAAM,eAAgB,QAAK,iBAAE,EAAAorD,gBAAa3rC,I,0BAEhE,OAGM,MAHN,GAGM,EAFF,QACyE,G,WADnD,EAAA4rC,W,uCAAA,EAAU,cAAEhtD,MAAM,aAAcmzB,IAAK,EAAIwa,IAAK,EAAGmf,QAAQ,aAC1E,QAAK,kBAAQ,EAAAnrD,MAAM,eAAgB,QAAK,iBAAE,EAAAqrD,gBAAa5rC,I,0BAEhE,OAGM,MAHN,GAGM,EAFF,QACyE,G,WADnD,EAAA6rC,W,uCAAA,EAAU,cAAEjtD,MAAM,aAAcmzB,IAAK,EAAIwa,IAAK,EAAGmf,QAAQ,aAC1E,QAAK,kBAAQ,EAAAnrD,MAAM,eAAgB,QAAK,iBAAE,EAAAsrD,gBAAa7rC,I,0BAEhE,OAGM,MAHN,GAGM,EAFF,QACyE,G,WADnD,EAAA8rC,W,uCAAA,EAAU,cAAEltD,MAAM,aAAcmzB,IAAK,EAAIwa,IAAK,EAAGmf,QAAQ,aAC1E,QAAK,kBAAQ,EAAAnrD,MAAM,eAAgB,QAAK,iBAAE,EAAAurD,gBAAa9rC,I,0BAEhE,OAGM,MAHN,GAGM,EAFF,QAC+D,G,WADzC,EAAA+rC,W,uCAAA,EAAU,cAAEntD,MAAM,aAAcmzB,IAAK,EAAIwa,IAAK,EAAGmf,QAAQ,aAC1E,QAAK,iBAAE,EAAAK,gBAAa/rC,GAAY,QAAO,EAAAgsC,iB,qCAGvC,EAAgB,mB,WAA7B,QACoB,QADpB,GAAyE,4C,kBAGlEjkD,QAAM,SACb,IAIM,EAJN,OAIM,MAJN,GAIM,EAHF,QAAmG,GAA3FvB,MAAM,OAAO5H,MAAM,qBAAqBM,MAAA,uBAA2B,QAAK,iBAAE,EAAA+sD,iBACnE,EAAAC,O,4BAAf,QACkB,G,MADI1lD,MAAM,SAAU,QAAK,iBAAE,EAAAwlD,mBAAoBrnD,KAAM,EAAAwnD,WAAYZ,QAAQ,QACvFhmD,GAAG,U,mDAQvB,QACI1G,KAAM,QACNjB,MAAO,CACHwuD,WAAY5qD,QACZ+oD,WAAYzpD,QAEhBoB,OACI,MAAO,CACH6oD,SAAU,GACVC,SAAU,GAEVE,aAAc,EACdmB,sBAAsB,EACtBxB,WAAW,EACXC,YAAY,EAEZQ,QAAS,GAETrG,UAAMjlC,EAENyrC,gBAAYzrC,EACZ2rC,gBAAY3rC,EACZ4rC,gBAAY5rC,EACZ6rC,gBAAY7rC,EACZ8rC,gBAAY9rC,EACZ+rC,gBAAY/rC,EAEZmsC,WAAY,GACZG,kBAAkB,EAE1B,EACA5sD,UACIsV,QAAQC,IAAItV,KAAK4qD,WACrB,EACAxqD,QAAS,CACLuqD,kBACI3qD,KAAK4C,MAAM,kBAAmB,IAAI,EACtC,EACA8oD,eACI,IAAIztD,EAAQ+B,KACZA,KAAK2rD,QAAU,wBACf3rD,KAAK+E,SACD,SAAUugD,GACNr/C,aAAa2mD,QAAQ,gBAAiBpH,GAAavB,QAAQhnC,KAAKC,UAAUooC,KAC1ErnD,EAAMwH,OAAOO,SAAS,QAAS,CAC3Bs/C,KAAMA,IAEW,SAAjBA,EAAKgC,SACLrpD,EAAMqnD,KAAOA,GAGbrnD,EAAM0tD,QAAU,GAChB1tD,EAAMqH,QAAQynC,QAAQ,CAAEob,KAAM,cAEtC,IACA,SAAU7C,GACFA,EAAKuH,SAAW,GAChBx3C,QAAQC,IAAI,QACZrX,EAAMstD,aAAejG,EAAKuH,SAC1B5uD,EAAMyuD,sBAAuB,IAG7Br3C,QAAQC,IAAI,KACZrX,EAAMstD,aAAe,EACrBttD,EAAMyuD,sBAAuB,GAEjCzuD,EAAM0tD,QAAU,EACpB,IACA,SAAUmB,GAAW7uD,EAAMitD,WAAY,EAAMjtD,EAAMktD,WAAa2B,EAAS7uD,EAAM0tD,QAAU,EAAI,GAWrG,EACA5mD,QAAQsjD,EAAiB0E,EAAcC,GACnC,IAAIC,EAAiBzH,GAAavB,QAAQjkD,KAAKqrD,UAC/CrrD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,4BAA4B/F,KAAKorD,qBAAqB6B,KAClE3zC,MAAKC,IACEA,EAAShX,KAAKX,OACdymD,EAAgB9uC,EAAShX,MAGzByqD,EAAkBzzC,EAAShX,KAAK+kD,SAASn0C,SAAS,SACtD,IAEHgK,OAAMC,IAAW2vC,EAAa3vC,EAAM7D,UAAUhX,KAAI,GAC3D,EACAkpD,eACIzrD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,UACjC,EACAvnD,MAAMN,GACF/B,SAAS0b,eAAe3Z,GAAQM,OACpC,EACA2vC,KAAKjwC,GACD/B,SAAS0b,eAAe3Z,GAAQiwC,MACpC,EACA8b,kBACIrsD,KAAKuwC,KAAK,cACV,IAAItyC,EAAQ+B,KACZ/B,EAAMuuD,WAAa,wBACdU,MAAMltD,KAAK8rD,aAAgBoB,MAAMltD,KAAKgsD,aAAgBkB,MAAMltD,KAAKisD,aAAgBiB,MAAMltD,KAAKksD,aAAgBgB,MAAMltD,KAAKmsD,aAAgBe,MAAMltD,KAAKosD,aACnJpsD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,kCAAkC/F,KAAKslD,KAAK6H,aAAantD,KAAK8rD,aAAa9rD,KAAKgsD,aAAahsD,KAAKisD,aAAajsD,KAAKksD,aAAalsD,KAAKmsD,aAAansD,KAAKosD,cACpK9yC,MAAKC,IACFtb,EAAMqH,QAAQynC,QAAQ,CAAEob,KAAM,WAC9BlqD,EAAMuuD,WAAa,EAAE,IAExBrvC,OAAMC,IACHnf,EAAM0uD,kBAAmB,EACzB1uD,EAAMuuD,WAAa,EAAE,GAGrC,EACAF,cACItsD,KAAKslD,UAAOjlC,CAChB,ICtOR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,iECDiBphB,MAAM,yB,IASFA,MAAM,+B,YACP,OAAuC,SAAhC8rD,IAAI,YAAW,aAAS,K,qBAGFnlD,GAAG,gBAAgB3G,MAAM,W,UACnBA,MAAM,W,YAI7C,OACM,OADDA,MAAM,+BAA6B,W,IAEnCA,MAAM,+B,YACP,OAAuC,SAAhC8rD,IAAI,YAAW,aAAS,K,UAIAnlD,GAAG,gBAAgB3G,MAAM,W,IAGvDA,MAAM,+B,YACP,OAAsD,SAA/C8rD,IAAI,mBAAkB,qBAAiB,K,UAGfnlD,GAAG,gBAAgB3G,MAAM,W,IAGvDA,MAAM,+B,IACA8rD,IAAI,W,YAAU,a,IACd9rD,MAAM,wBAAwBM,MAAA,wB,eAapCN,MAAM,+B,YACP,OAAiC,SAA1B8rD,IAAI,SAAQ,UAAM,K,UAGiBnlD,GAAG,aAAa3G,MAAM,W,YAIpE,OAIM,OAJDA,MAAM,+BAA6B,W,IAQvCA,MAAM,U,yLA1EnB,QAiFO,GAjFDA,MAAM,QAAM,CACH+I,QAAM,SAAjB,IAEW,KACAklC,OAAK,SACZ,IAAiD,E,iBAAtC,YAAR,EAAA5G,KAAqB,WAAa,WAA9B,MAEA2kB,SAAO,SACd,IA+DM,EA/DN,OA+DM,MA/DN,GA+DM,EAtDF,OAQM,MARN,GAQM,CAPF,GACyB,YAAR,EAAA3kB,O,WAAjB,QAAyF,G,MAApD1gC,GAAG,WAAW1E,KAAK,O,WAAgB,EAAAokD,KAAK8F,S,qCAAL,EAAA9F,KAAa,a,qCACrF,QAAqC,kBAAtB,EAAAA,KAAK8F,UAAQ,IACf,EAAc,iB,WAA3B,QAAgG,QAAhG,GAAgE,8B,eACnD,EAAoB,uB,WAAjC,QAE6C,QAF7C,GAAmD,oH,iBAIvD,IAEA,OAOM,MAPN,GAOM,CANF,GACwB,YAAR,EAAA9kB,O,WAAhB,QACiC,G,iBADY,EAAAgf,KAAK+F,S,qCAAL,EAAA/F,KAAa,YAAE,iBACvD,OAAM,EAAA8H,oB,8CACX,QAA+F,G,iBAArE,EAAA/B,S,qCAAA,EAAQ,YAAE,iBAAaC,UAAU,EAAQ,OAAM,EAAA8B,oB,iCAC5D,EAAgB,mB,WAA7B,QACuD,QADvD,GAAkE,8E,kBAGtE,OAMM,MANN,GAMM,CALF,IACA,QAC4B,G,WADT,EAAAC,gB,qCAAA,EAAe,mBAAG/B,UAAU,EAAO,iBAAY,mBAAiB,gBAC9E,OAAM,EAAAgC,e,gCACE,EAAgB,mB,WAA7B,QACkB,QADlB,GAAkE,8B,kBAGtE,OAcM,MAdN,GAcM,EAbF,OAOgB,QAPhB,GAOgB,C,aANZ,OAMI,IANJ,GAMI,W,GANwE,C,mkBAAlB,QAOlC,YAAR,EAAAhnB,O,WAApB,QAGe,G,iBAHkC,EAAAgf,KAAKiI,Q,qCAAL,EAAAjI,KAAY,WAAGkI,YAAa,EAAAC,kBACxE,WAAQ,eAAE,EAAAC,cAAc9lD,IAASrI,MAAA,eAAmBouD,SAAA,GACrDC,mBAAmB,iK,mDAEvB,QAAoC,kBAArB,EAAAtI,KAAKiI,SAAO,OAE/B,OAOM,MAPN,GAOM,CANF,IACA,QACyB,GADd3nD,GAAG,QAAQ1E,KAAK,O,WAAgB,EAAAokD,KAAKuG,M,qCAAL,EAAAvG,KAAU,SAAE,mBAAiB,aACnE,OAAM,EAAAuI,Y,gCACE,EAAAC,cAAgB,EAAAC,c,WAA7B,QAEQ,QAFR,IAEQ,QADD,EAAAD,aAAe,+BAAiC,yBAApC,K,iBAGvB,QAOG1lD,QAAM,SACb,IAKM,EALN,OAKM,MALN,GAKM,EAJF,QAC+B,GADvBvB,MAAM,SAAS5H,MAAM,2BAA2BM,MAAA,uBACnD,QAAK,eAAE,EAAAyuD,oBACZ,QACmG,GAD1FnnD,MAAe,YAAR,EAAAy/B,KAAqB,WAAa,OAAQrnC,MAAM,OAAQ,QAAK,eAAE,EAAA0rD,mBAC1EhkD,SAAU,EAAAA,YAAyB,yBAAX,EAAAglD,QAAqC3mD,KAAM,EAAA2mD,QAASC,QAAQ,S,+CAQzG,QACI1sD,KAAM,QACNjB,MAAO,CACHwuD,WAAY5qD,QACZyjD,KAAMtmD,OACNkuC,MAAO/rC,OACP8sD,YAAa9sD,OACbmlC,KAAMnlC,QAEVoB,OACI,MAAO,CACH6D,UAAW,GACX8nD,SAAU,GAEV9C,SAAU,GACV+C,gBAAgB,EAEhB9C,SAAU,GACVgC,gBAAiB,GACjBe,kBAAkB,EAClBC,kBAAkB,EAElBd,QAAS,GACTe,UAAW,CAAC,qCAAsC,oCAAqC,uBAAwB,mCAAoC,kCAAmC,qCAAsC,iBAAkB,qBAAsB,uCAAwC,yCAA0C,yCAA0C,4BAA6B,8BAA+B,iCAAkC,sBAAuB,gCAAiC,uCAAwC,uCAAwC,sCAAuC,kCAAmC,2CAA4C,6CAA8C,wCAAyC,qCAAsC,4BAA6B,uDAAwD,iBAAkB,+CAAgD,qCAAsC,uCAAwC,gCAAiC,6BAA8B,4BAA6B,2BAA4B,mCACtrCb,kBAAmB,KAEnB5B,MAAO,GACPiC,cAAc,EACdC,aAAa,EAEbQ,YAAa,GAEb5C,QAAS,GAEjB,EACA5rD,UACIC,KAAKwuD,sBACT,EACAprD,SAAU,CACNqrD,uBACI,MAAO,0CAA0CC,KAAK1uD,KAAKslD,KAAK8F,SACpE,GAEJhrD,QAAS,CACLktD,gBACqB,YAAbttD,KAAKsmC,KACLtmC,KAAKouD,iBAAmBpuD,KAAKslD,KAAK+F,UAAYrrD,KAAKqtD,gBAGnDrtD,KAAKouD,iBAAmBpuD,KAAKqrD,UAAYrrD,KAAKqtD,eAEtD,EACAD,qBACqB,YAAbptD,KAAKsmC,KACLtmC,KAAKquD,mBAAqBruD,KAAKslD,KAAK+F,UAChCrrD,KAAKslD,KAAK+F,SAAS/0C,QAAU,GAC7B,WAAWo4C,KAAK1uD,KAAKslD,KAAK+F,WAC1B,QAAQqD,KAAK1uD,KAAKslD,KAAK+F,WAG3BrrD,KAAKquD,mBAAqBruD,KAAKqrD,UAC3BrrD,KAAKqrD,SAAS/0C,QAAU,GACxB,WAAWo4C,KAAK1uD,KAAKqrD,WACrB,QAAQqD,KAAK1uD,KAAKqrD,UAE9B,EACAwC,aACI,IAAIc,EAAK,gDACT3uD,KAAK8tD,cAAgBa,EAAGD,KAAK1uD,KAAKslD,KAAKuG,MAC3C,EACAlB,kBACI,IAAI1sD,EAAQ+B,KACK,YAAbA,KAAKsmC,KACLtmC,KAAK4uD,iBAAgB,WACjB3wD,EAAM4wD,UAAS,SAAUvJ,GACrBrnD,EAAM2E,MAAM,kBAAmB0iD,EAAKgC,UAAU,GAC9CrpD,EAAM0tD,QAAU,EACpB,GACJ,IAGA3rD,KAAK8uD,YAEb,EACAd,gBACIhuD,KAAK4C,MAAM,gBACf,EACAgsD,gBAAgB/xC,GACZ,IAAI5e,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,4BAA4B/F,KAAKslD,KAAK8F,YAClD9xC,MAAKC,IACFtb,EAAMkwD,gBAAiB,EAEvBtxC,GAAU,IAEbM,OAAMC,IAAWnf,EAAMkwD,gBAAiB,EAAMlwD,EAAM0tD,QAAU,EAAE,GACzE,EACAoD,aAAalyC,GACT,IAAI5e,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,yBAAyB/F,KAAKslD,KAAKuG,SAC/CvyC,MAAKC,IAActb,EAAM8vD,aAAc,EAAOlxC,GAAU,IACxDM,OAAMC,IAAWnf,EAAM8vD,aAAc,EAAM9vD,EAAM0tD,QAAU,EAAE,GACtE,EACA6C,uBACIxuD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,6BACZuT,MAAKC,GAAYvZ,KAAKsuD,UAAY,IAAI,IAAIvhC,IAAI,IAAI/sB,KAAKsuD,aAAc/0C,EAAShX,SACvF,EACAmrD,cAAcrtD,GACLA,EAAM2uD,MAAM5/B,OAAO9Y,OAIpBtW,KAAKytD,kBAAoBztD,KAAKsuD,UAAU11C,QAAQ20C,GACrCA,EAAQ/xC,cAAcrI,SAAS9S,EAAM2uD,MAAMxzC,iBACnD4lC,OALHphD,KAAKytD,kBAAoB,IAAIztD,KAAKsuD,WAAWlN,MAOrD,EACAz6C,WACI,MAAiB,YAAb3G,KAAKsmC,OACItmC,KAAKslD,KAAK+F,UAAYrrD,KAAKqtD,kBAAoBrtD,KAAKquD,mBAAqBruD,KAAKouD,kBAAoBpuD,KAAKslD,KAAKiI,SAAWvtD,KAAKslD,KAAKuG,QAAU7rD,KAAKslD,KAAKwI,iBAGpJ9tD,KAAKquD,mBAAqBruD,KAAKouD,kBAAoBpuD,KAAKslD,KAAKiI,SAAWvtD,KAAKslD,KAAKuG,QAAU7rD,KAAKslD,KAAKwI,aAGxH,EACAe,SAAShyC,GACL7c,KAAK2rD,QAAU,wBACf,IAAIppD,EAAO,IACJvC,KAAKslD,KACRl/C,UAAWpG,KAAKslD,KAAKl/C,UAAUgpB,OAC/B8+B,SAAUluD,KAAKslD,KAAK4I,SAAS9+B,OAC7Bm+B,QAASvtD,KAAKslD,KAAKiI,QAAQn+B,OAC3By8B,MAAO7rD,KAAKslD,KAAKuG,MAAMz8B,OACvB6/B,MAAOjvD,KAAKslD,KAAK2J,MAAM7/B,OACvBi8B,SAAU7F,GAAavB,QAAQjkD,KAAKslD,KAAK+F,WAG7CrrD,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,kBAAmBxD,GAChC+W,MAAK,SAAUC,GACZsD,EAAStD,EAAShX,KACtB,IACC4a,OAAMC,GAAS/H,QAAQC,IAAI8H,IACpC,EACA0xC,aACI,IAAI7wD,EAAQ+B,KACZA,KAAK2rD,QAAU,wBACf,IAAIppD,EAAO,IACJvC,KAAKslD,KACR+F,SAAUrrD,KAAKqrD,SAAW7F,GAAavB,QAAQjkD,KAAKqrD,SAAUrrD,KAAKslD,KAAK6H,KAAKtoD,WAAW,IAAK,KAAO7E,KAAKslD,KAAK+F,UAElHrrD,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,kBAAmBxD,GAChC+W,MAAK,SAAUC,GACZtT,aAAa2mD,QAAQ,gBAAiBpH,GAAavB,QAAQhnC,KAAKC,UAAUjf,EAAMqnD,QAChFrnD,EAAMwH,OAAOO,SAAS,QAAS,CAC3Bs/C,KAAMrnD,EAAMqnD,OAEhBrnD,EAAMqH,QAAQynC,QAAQ,CAAEob,KAAM,KAClC,IACChrC,OAAMC,GAAS/H,QAAQC,IAAI8H,IACpC,ICrPR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UJIA,IACIle,KAAM,WACNmD,WAAY,CACR6sD,MAAK,GACLC,SAAQ,IAEZ5sD,OACI,MAAO,CACHuoD,iBAAiB,EACjBF,WAAY,GACZC,QAAS,CACLzkD,UAAW,GACX8nD,SAAU,GACV9C,SAAU,GACVC,SAAU,GACVkC,QAAS,GACT1B,MAAO,GACPoD,MAAO,IAGnB,EACA7uD,QAAS,CACLuqD,gBAAgBC,EAAYE,GACxB9qD,KAAK4qD,WAAaA,EAClB5qD,KAAK8qD,gBAAkBA,EACvB9qD,KAAK6qD,QAAU,CACXzkD,UAAW,GACX8nD,SAAU,GACV9C,SAAU,GACVC,SAAU,GACVkC,QAAS,GACT1B,MAAO,GACPoD,MAAO,GAEf,IKxCR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,iECRShwD,MAAM,U,YAGC,OAA2B,WAAtB,oBAAgB,K,UAGhBA,MAAM,yB,YACP,OAEM,OAFDA,MAAM,0BAAyB,oCAEpC,K,IACKA,MAAM,0B,IACDA,MAAM,yC,YACR,OAAwB,KAArBA,MAAM,cAAY,W,YAErB,OAAsC,SAA/B8rD,IAAI,YAAW,YAAQ,K,UAGH9rD,MAAM,UAAUM,MAAA,yB,UAGlDN,MAAM,yB,YACP,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uBAAwB,4DAE5D,K,IACKN,MAAM,0B,IAMVA,MAAM,U,iHA9BvB,QAoCM,MApCN,GAoCM,EAnCF,QAkCO,GAlCDA,MAAM,QAAM,CACHiuC,OAAK,SACZ,IAA2B,CAA3B,MAEO+d,SAAO,SACd,IAaM,CAboC,EAAAsB,Q,WAc1C,QAOM,MAPN,GAOM,CANF,IAGA,OAEM,MAFN,IAEM,QADC,EAAAV,OAAK,Q,WAnBhB,QAaM,MAbN,GAaM,CAZF,IAGA,OAMM,MANN,GAMM,EALF,OAIO,OAJP,GAIO,CAHH,IACA,QAA0D,GAA/CjmD,GAAG,WAAW1E,KAAK,O,WAAgB,EAAAkqD,S,qCAAA,EAAQ,a,uBACtD,OAGK,EAAoB,uB,WAAjC,QACiB,QADjB,GAA6E,6B,qBAY1EhjD,QAAM,SACb,IAGM,EAHN,OAGM,MAHN,GAGM,EAFF,QAAmG,GAA3FvB,MAAM,OAAO5H,MAAM,qBAAqBM,MAAA,uBAA2B,QAAK,eAAE,EAAA+sD,iBACnE,EAAAC,O,4BAAf,QAA6F,G,MAAvE1lD,MAAM,OAAQ,QAAK,eAAE,EAAA4kD,gBAAiBzmD,KAAM,EAAA2mD,QAASC,QAAQ,S,+BASvG,QACI1sD,KAAM,QACNjB,MAAO,CACHwuD,WAAY5qD,QACZ+oD,WAAYzpD,QAEhBoB,OACI,MAAO,CACH6oD,SAAU,GACVC,SAAU,GAEVqB,sBAAsB,EACtBH,OAAO,EACPV,MAAO,GAEPF,QAAS,GAEjB,EACA5rD,UACIsV,QAAQC,IAAItV,KAAK4qD,WACrB,EACAxqD,QAAS,CACLksD,cACItsD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,UACjC,EACAsD,eACI,IAAIxtD,EAAQ+B,KACZA,KAAK2rD,QAAU,wBACf3rD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,kCAAkC/F,KAAKorD,YACnD9xC,MAAKC,IACEA,EAAShX,MACTtE,EAAM4tD,MAAQtyC,EAAShX,KACvBtE,EAAMsuD,OAAQ,GAGdtuD,EAAMyuD,sBAAuB,CACjC,IAEHvvC,OAAMC,IAAWnf,EAAMyuD,sBAAuB,EAAMzuD,EAAM0tD,QAAU,KAC7E,IC3ER,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,uHCRqB,EAAA/H,S,4BAAjB,QAA+G,G,MAApF,aAAY,EAAAwL,WAAa3I,SAAU,EAAAA,SAAWvB,iBAAkB,EAAAA,kB,wDACtE,EAAO,U,WAA5B,QAAiG,G,MAAlEtB,QAAS,EAAAA,QAAUyL,WAAY,EAAAA,WAAa5I,SAAU,EAAAA,U,mICGhFxnD,MAAM,U,IAIMM,MAAA,6C,YACD,OAEiC,KAF9BN,MAAM,cAAcM,MAAA,uBAAyB,mIAEnB,K,IAYlBN,MAAM,wBAAwBM,MAAA,wB,IAI5BN,MAAM,iB,IACFA,MAAM,yB,YACP,OAAoE,SAA7D8rD,IAAI,eAAexrD,MAAA,gBAAmB,mBAAe,K,qBAI3BqG,GAAG,eAAe3G,MAAM,W,IAGxDA,MAAM,yB,YACP,OAAqE,SAA9D8rD,IAAI,YAAYxrD,MAAA,gBAAmB,uBAAmB,K,eAI5DN,MAAM,yB,YACP,OAAwE,SAAjE8rD,IAAI,YAAYxrD,MAAA,gBAAmB,0BAAsB,K,eAI/DN,MAAM,yB,YACP,OAAwE,SAAjE8rD,IAAI,iBAAiBxrD,MAAA,gBAAmB,qBAAiB,K,eAK/DN,MAAM,yB,YACP,OAAgF,SAAzE8rD,IAAI,qBAAqBxrD,MAAA,gBAAmB,yBAAqB,K,eAKvEN,MAAM,yB,YACP,OACgB,SADT8rD,IAAI,eAAexrD,MAAA,gBAAmB,mCACrC,K,qBAUPN,MAAM,yB,YACP,OAA4E,SAArE8rD,IAAI,mBAAmBxrD,MAAA,gBAAmB,uBAAmB,K,UAMnEN,MAAM,yB,YACP,OAAiF,SAA1E8rD,IAAI,iBAAiBxrD,MAAA,gBAAmB,8BAA0B,K,IAMxEN,MAAM,yB,YACP,OAAmE,SAA5D8rD,IAAI,eAAexrD,MAAA,gBAAmB,kBAAc,K,eAI1DN,MAAM,gB,YACP,OAAuE,SAAhE8rD,IAAI,cAAcxrD,MAAA,gBAAmB,uBAAmB,K,eAQ9DN,MAAM,gB,YACP,OAAwE,SAAjE8rD,IAAI,iBAAiBxrD,MAAA,gBAAmB,qBAAiB,K,uBA4CpE,OAEM,OAFDN,MAAM,gBAAe,uBAE1B,K,IAMDA,MAAM,wBAAwBM,MAAA,wB,YAIjC,OAKQ,SALDN,MAAM,qCAAmC,E,QAAC,gPAIpC,OAAmC,SAAhC,iC,QAAgC,Q,eAE3CA,MAAM,iB,YAIP,OAAwF,SAAjF8rD,IAAI,aAAa9rD,MAAM,oCAAmC,mBAAe,K,YAGhF,OAAoD,OAA/CA,MAAM,oCAAkC,W,YAC7C,OAA0F,SAAnF8rD,IAAI,cAAc9rD,MAAM,oCAAmC,oBAAgB,K,YAIlF,OAAoD,OAA/CA,MAAM,oCAAkC,W,IACxCA,MAAM,mCAAmCM,MAAA,iB,YAK9C,OAAoD,OAA/CN,MAAM,oCAAkC,W,IACxCA,MAAM,mCAAmCM,MAAA,iB,YAM9C,OAAoD,OAA/CN,MAAM,oCAAkC,W,IAE5CA,MAAM,iB,UACFA,MAAM,2B,YAsBf,OASM,OATDA,MAAM,iBAAe,EACtB,OAOM,OAPDA,MAAM,2BAAyB,EAChC,OAKkF,MAL9EM,MAAA,mEAAoE,2Y,SAY7EN,MAAM,wBAAwBM,MAAA,wB,UAI5BN,MAAM,iB,IACkBA,MAAM,gB,IACtBA,MAAM,iB,UACAA,MAAM,kCACT2G,GAAG,iB,IAEF3G,MAAM,2B,YAA0B,OACb,SADoBM,MAAA,wBAAyB,wBACrD,K,IAAWN,MAAM,yB,YAGjC,OAA6E,SAAtEA,MAAM,oCAAmC,yBAAqB,K,YAOrE,OAAyC,OAApCA,MAAM,yBAAuB,W,YAClC,OAAuE,OAAlEA,MAAM,oCAAmC,uBAAmB,K,IAC5DA,MAAM,wBAAwBM,MAAA,e,IAC1BN,MAAM,iB,IAKFM,MAAA,iB,IAgBhBN,MAAM,0BAA0BM,MAAA,uB,YACjC,OAAmE,SAA5DA,MAAA,wBAAyB,+BAA2B,K,IACxDN,MAAM,wBAAwBM,MAAA,wB,IAGhCN,MAAM,gB,UAWVA,MAAM,iB,IACFA,MAAM,gB,IAwCtBA,MAAM,iB,UACFA,MAAM,yB,UAENA,MAAM,yB,UAINA,MAAM,yB,UAINA,MAAM,yB,UAINA,MAAM,yB,UAINA,MAAM,yB,UAINA,MAAM,yB,UAINA,MAAM,yB,IActBA,MAAM,Y,YAEc,wB,IAEVA,MAAM,wBAAwBM,MAAA,wB,IAM5BN,MAAM,iB,YAGP,OAAwE,SAAjE8rD,IAAI,OAAO9rD,MAAM,oCAAmC,SAAK,K,YAKhE,OAC+C,SADxC8rD,IAAI,OAAO9rD,MAAM,mCACpBM,MAAA,0BAA6B,UAAM,K,YAOvC,OACgC,SADzBwrD,IAAI,SAAS9rD,MAAM,mCAAmCM,MAAA,wBAA2B,kCAChE,K,IAanCN,MAAM,Y,YAEc,8B,IAMRA,MAAM,iB,YAGP,OAA0F,SAAnF8rD,IAAI,YAAY9rD,MAAM,oCAAmC,sBAAkB,K,YAKlF,OAAoD,OAA/CA,MAAM,oCAAkC,W,UAMxDA,MAAM,U,YAEc,8C,IAORA,MAAM,2B,IACFA,MAAM,iB,IACFA,MAAM,2B,YAA0B,OACO,SADAM,MAAA,wBAAyB,4CACjC,K,IAAWN,MAAM,yB,IAG9CA,MAAM,oC,YAAmC,Q,IAAOA,MAAM,wBACrDM,MAAA,wB,YAKR,OAAoD,OAA/CN,MAAM,oCAAkC,W,YAC7C,OAA2E,SAApEA,MAAM,oCAAmC,uBAAmB,K,YACnE,OAAoD,OAA/CA,MAAM,oCAAkC,W,YAC7C,OAAmE,SAA5DA,MAAM,oCAAmC,eAAW,K,YAC3D,OAAoD,OAA/CA,MAAM,oCAAkC,W,IACxCA,MAAM,oC,IAaNA,MAAM,oC,YACP,OAA4C,aAArC,iCAA6B,K,IAAWA,MAAM,yB,IAIpDA,MAAM,oC,YACP,OAAyC,aAAlC,8BAA0B,K,IAAWA,MAAM,yB,IAKjDA,MAAM,oC,udA5d/B,OA2WM,MA3WN,GA2WM,EA1WF,QAyWO,QAxWQiuC,OAAK,SACZ,IAAqF,E,iBAAlF,EAAAmiB,WAAa,cAAgB,EAAAzL,QAAQwD,SAAW,eAAiB,gBAAiB,IACrF,WAQM,MARN,GAQM,CAPF,GAI4D,IAAhB,EAAAkI,c,WAD5C,QACqH,G,MAD7GtqD,KAAK,wBAAwB/F,MAAM,oDACvCM,MAAA,gCAA4D,QAAK,eAAE,EAAAgwD,eAAe,aAAW,sB,gBACjG,QAC2E,GADnEvqD,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,eAAE,EAAAiwD,SAAS,aAAW,eAI/DvE,SAAO,SACd,IAgTU,EAhTV,QAgTU,GAhTOqE,YAAa,EAAAA,Y,wCAAA,EAAW,eAAEG,KAAA,I,mBACvC,IA+HW,EA/HX,QA+HW,GA/HDznD,OAAO,eAAa,CACfA,QAAM,SACb,IACwD,E,SADxD,OACwD,IADxD,GACwD,W,GAAzC,0C,kBAEnB,IAyHc,EAzHd,QAyHc,GAzHD/I,MAAM,gBAAc,C,kBAC7B,IAuHM,EAvHN,OAuHM,MAvHN,GAuHM,EAtHF,OAOM,MAPN,GAOM,CANF,GACkB,EAAA2kD,QAAQwD,UAAa,EAAAxD,QAAQn9C,aAAa0M,SAAS,O,WAErE,QAA6E,oBAA5D,EAAAywC,QAAQn9C,aAAa5B,WAAW,IAAK,cAAN,M,WAFhD,QACkH,G,iBAArG,EAAA++C,QAAQn9C,a,qCAAR,EAAAm9C,QAAoB,gBAAErkD,MAAA,eAAmB,mBAAiB,eAAe,aAAW,iB,wBAEpF,EAAkB,qB,WAA/B,QACmB,QADnB,GAAmE,mC,kBAGvE,OAIM,MAJN,GAIM,CAHF,GACkB,EAAAqkD,QAAQwD,W,WAC1B,QAA6C,oBAA5B,EAAAxD,QAAQ8L,WAAS,M,WADlC,QAAoH,G,iBAAvE,EAAA9L,QAAQ8L,U,qCAAR,EAAA9L,QAAiB,aAAE,aAAW,oBAAoBrkD,MAAA,gB,2BAGnG,OAIM,MAJN,GAIM,CAHF,GACkB,EAAAqkD,QAAQwD,W,WAC1B,QAA6C,oBAA5B,EAAAxD,QAAQ+L,WAAS,M,WADlC,QAAuH,G,iBAA1E,EAAA/L,QAAQ+L,U,qCAAR,EAAA/L,QAAiB,aAAE,aAAW,uBAAuBrkD,MAAA,gB,2BAGtG,OAKM,MALN,GAKM,CAJF,GACkB,EAAAqkD,QAAQwD,W,WAE1B,QAAkD,oBAAjC,EAAAxD,QAAQgM,gBAAc,M,WAFvC,QACyB,G,iBADoB,EAAAhM,QAAQgM,e,qCAAR,EAAAhM,QAAsB,kBAAE,aAAW,kBAC5ErkD,MAAA,gB,2BAGR,OAKM,MALN,GAKM,CAJF,GACkB,EAAAqkD,QAAQwD,W,WAE1B,QAAsD,oBAArC,EAAAxD,QAAQiM,oBAAkB,M,WAF3C,QACyB,G,iBADoB,EAAAjM,QAAQiM,mB,qCAAR,EAAAjM,QAA0B,sBAAE,aAAW,sBAChFrkD,MAAA,gB,2BAGR,OAMM,MANN,GAMM,CALF,GAEoB,EAAAqkD,QAAQwD,W,WAE5B,QAAgD,oBAA/B,EAAAxD,QAAQxO,cAAY,M,WAFrC,QACyB,G,iBADsB,EAAAwO,QAAQxO,a,qCAAR,EAAAwO,QAAoB,gBAAE,aAAW,4BAC5ErkD,MAAA,gB,0BAQiC,EAAAqkD,QAAQnX,MAAMn2B,OAAS,I,WAAhE,QAMM,MANN,GAMM,CALF,IAIA,OAA6C,sBAAnC,EAAAstC,QAAQ32B,kBAAgB,O,eAEG,EAAA22B,QAAQnX,MAAMn2B,OAAS,I,WAAhE,QAMM,MANN,GAMM,CALF,IAIA,OAA2C,sBAAjC,EAAAstC,QAAQz2B,gBAAc,O,gBAEpC,OAIM,MAJN,GAIM,CAHF,GACkB,EAAAy2B,QAAQwD,W,WAC1B,QAAgD,oBAA/B,EAAAxD,QAAQkM,cAAY,M,WADrC,QAAmH,G,iBAAtE,EAAAlM,QAAQkM,a,qCAAR,EAAAlM,QAAoB,gBAAErkD,MAAA,eAAmB,aAAW,iB,2BAGrG,OAQM,MARN,GAQM,CAPF,GACiB,EAAAqkD,QAAQwD,W,WAKzB,QAA+C,oBAA9B,EAAAxD,QAAQmM,aAAW,K,qBALpC,QAI2K,Y,MAJxInqD,GAAG,cAClCrG,MAAA,+C,qCAA0D,EAAAqkD,QAAmB,eACtE,aAAW,sBAClB1iD,KAAK,OAAO8uD,KAAK,IACjB/wD,MAAM,uJ,kBAHoD,EAAA2kD,QAAQmM,kBAM1E,OAMM,MANN,GAMM,CALF,GACkB,EAAAnM,QAAQwD,W,WAG1B,QAAkD,oBAAjC,EAAAxD,QAAQqM,gBAAc,M,WAHvC,QAEyB,G,iBAFoB,EAAArM,QAAQqM,e,uCAAR,EAAArM,QAAsB,kBACxD,aAAW,mBAClBrkD,MAAA,gB,0BAyCR,Q,gBAMZ,QAyEW,GAzEDyI,OAAO,OAAQrB,SAAU,EAAAupD,WAAa,EAAAC,oB,CACjCnoD,QAAM,SACb,IACyD,E,SADzD,OACyD,IADzD,GACyD,W,GAA1C,2C,kBAEnB,IAmEc,EAnEd,QAmEc,GAnED/I,MAAM,gBAAc,C,kBAC7B,IAKQ,CALR,GAMkC,EAAA2kD,QAAQwD,U,4BAA1C,QA0BM,MA1BN,GA0BM,CAtBF,IACA,QACoC,GAD5BxhD,GAAG,aAAaiB,MAAM,OAAO7B,KAAK,eAAgB,QAAO,EAAAorD,eAC7DnxD,MAAM,yB,oBACV,GACA,IACA,QACoC,GAD5B2G,GAAG,cAAciB,MAAM,OAAO7B,KAAK,eAAgB,QAAO,EAAAqrD,qBAC9DpxD,MAAM,yB,oBAEV,IACA,OAIM,MAJN,GAIM,EAHF,QAEa,GAFA,SAAQ,EAAAqxD,eAAiBzpD,MAAO,EAAA0pD,YAAaj0C,OAAO,OAC7D/c,MAAA,gBAAoBqG,GAAG,kBAAmB4qD,UAAU,G,+BAG5D,IACA,OAIM,MAJN,GAIM,EAHF,QAEa,GAFA,SAAQ,EAAAC,eAAiB5pD,MAAO,EAAA6pD,gBAAiBp0C,OAAO,OACjE/c,MAAA,gBAAoBqG,GAAG,sBAAuB4qD,UAAU,G,+BAIhE,OAEJ,OAsBM,MAtBN,GAsBM,CArByC,EAAA5M,QAAQ5K,MAAM1iC,OAAS,I,WAAlE,QAoBM,MApBN,GAoBM,EAnBF,QAkBY,GAlBAnT,MAAO,EAAAygD,QAAQ5K,MAAO/5C,MAAM,iBAAkB0xD,YAAY,EAClEC,SAAS,OAAQ,mBAAoB,EAAAC,mBAAoBC,aAAa,QACtEC,UAAU,KAAMC,UAAW,G,mBAC3B,IACS,EADT,QACS,GADDC,MAAM,KAAKjpD,OAAO,OAAOzI,MAAA,oBAAuB2xD,UAAU,KAElE,QAIS,GAJDD,MAAM,OAAOjpD,OAAO,OAAQkpD,UAAU,G,CAC/BC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAyD,GAA9C/vD,KAAK,O,WAAgBqB,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,I,uDAGrD,QAOS,GAPD0oD,MAAM,kBAAkBjpD,OAAO,gCAClCkpD,UAAU,G,CACAC,QAAM,SAEb,EAFiB5uD,OAAM0uD,WAAK,EAE5B,QAC0B,G,WADP1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAIG,QAAS,EAAAC,YAAaC,YAAY,QAC/DC,YAAY,S,+HAMpC,M,+BAYR,QA0EW,GA1EDvpD,OAAO,WAAYrB,SAAU,EAAAupD,WAAa,EAAAC,oB,CACrCnoD,QAAM,SACb,IAC4D,E,SAD5D,OAC4D,IAD5D,GAC4D,W,GAA7C,8C,kBAEnB,IAoEc,EApEd,QAoEc,GApED/I,MAAM,gBAAc,C,kBAC7B,IAwDM,CAxD4B,EAAA2kD,QAAQwD,W,WAyD1C,QASM,MATN,GASM,EARF,OAOM,MAPN,GAOM,CANc,EAAAxD,QAAQ5K,MAAM1iC,OAAS,I,WAAvC,QAKgE,G,MALtB/W,MAAA,qBAAyBktC,MAAO,EAAAmX,QAAQnX,MAC7EuM,MAAO,EAAA4K,QAAQ5K,MAAMoI,MAAK,CAACt/B,EAAGu/B,IAAMv/B,EAAE5iB,KAAKsyD,cAAcnQ,EAAEniD,UAAMmhB,EAAW,CAAEoxC,SAAS,EAAMC,YAAa,WAC1GC,OAAQ,EAAAA,OAASC,aAAc,EAAAhO,QAAQ32B,iBACvC4kC,WAAY,EAAAjO,QAAQz2B,eAAiB2kC,kBAAmB,EAAAA,kBACxDC,WAAY,EAAAA,WAAa,WAAU,EAAAC,SAAW,UAAS,EAAAC,QAASC,IAAI,cACpE9K,SAAU,EAAAxD,QAAQwD,SAAW+K,aAAc,EAAAA,c,sLAhExD,QAwDM,MAxDN,GAwDM,E,SAvDF,OAiCM,MAjCN,GAiCM,EAhCF,OA+BM,MA/BN,GA+BM,CA9B2E,GAAxB,EAAAvO,QAAQ5K,MAAM1iC,S,WAAnE,QAE+B,QAF/B,GACuB,uC,gBAEvB,OAGM,MAHN,GAGM,CAH+B,I,SACb,OAC8F,IAD9F,GAC8F,W,GAAnG,mGAEnB,IAKA,QACiF,GADzErX,MAAM,wBAAwB4H,MAAM,wBACxC7B,KAAK,iBAAkB,QAAO,EAAAotD,iBAAkB7yD,MAAA,iB,oBACpD,GACA,IACA,OAaM,MAbN,GAaM,EAZF,OAWM,MAXN,GAWM,EAVF,QAGa,GAHA,SAAQ,EAAA8yD,WAAaxrD,MAAO,EAAAyrD,SAAUh2C,OAAO,kBACtD/c,MAAA,2CAA8CqG,GAAG,iBACjD4qD,SAAS,I,8BAEb,OAKM,MALN,GAKM,EAJF,QAG0D,GAHlD5qD,GAAG,iBAAiBiB,MAAM,uBAC9B7B,KAAK,iBAAkB,QAAK,kBAAE,EAAAutD,wBAAwB3qD,EAAO,GAC5DjB,SAAkB,MAAR,EAAAivC,KACXr2C,MAAA,6C,iDA5BX,EAAAizD,eAkCb,QAKU,GALDC,MAAM,UAAQ,C,kBACnB,IACqF,CADvE,EAAU,a,WAAxB,QACqF,G,MAD3DztD,KAAK,wBAAwB,aAAW,4BAC9D/F,MAAM,qCAAsC,QAAK,iBAAG,EAAAuzD,YAAa,Q,WACrE,QACyC,G,MAD1BxtD,KAAK,0BAA0B/F,MAAM,qCAAqC,aAAW,4BAC/F,QAAK,iBAAG,EAAAuzD,YAAa,S,OAE9B,OAIM,MAJN,GAIM,CAHF,I,SACA,OACgK,IADhK,GACgK,W,GAAjJ,kJAEnB,OASM,MATN,GASM,CARc,EAAA5O,QAAQ5K,MAAM1iC,OAAS,I,WAAvC,QAO6B,G,MAPa/W,MAAA,qBAAyBktC,MAAO,EAAAmX,QAAQnX,MAC7EuM,MAAO,EAAA4K,QAAQ5K,MAAMoI,MAAK,CAACt/B,EAAGu/B,IAAMv/B,EAAE5iB,KAAKsyD,cAAcnQ,EAAEniD,UAAMmhB,EAAW,CAAEoxC,SAAS,EAAMC,YAAa,WAC1GC,OAAQ,EAAAA,OAASG,kBAAmB,EAAAA,kBAAoBC,WAAY,EAAAA,WACpE,WAAU,EAAAC,SAAW,UAAS,EAAAC,QAAU,kBAAiB,EAAAS,gBACzD,uBAAsB,EAAAC,qBAAsBT,IAAI,cAChD9K,SAAU,EAAAxD,QAAQwD,SAAWwK,aAAc,EAAAhO,QAAQ32B,iBACnD4kC,WAAY,EAAAjO,QAAQz2B,eAAiBglC,aAAc,EAAAA,aACnD,YAAW,EAAAS,W,mSA2C7BxqD,QAAM,SACb,IA+BM,EA/BN,OA+BM,MA/BN,GA+BM,CA9BuD,IAAhB,EAAAknD,c,WAAzC,QACM,MADN,M,eAEyC,EAAAA,YAAc,I,WAAvD,QAGM,MAHN,GAGM,EAFF,QACwB,GADhBrwD,MAAM,qBAAqB4H,MAAM,OAAO7B,KAAK,mBAAmBzF,MAAA,eACnE,QAAO,EAAAszD,U,uCAEyB,EAAAvD,YAAc,IAAM,EAAA1L,QAAQwD,W,WAArE,QAGM,MAHN,GAGM,EAFF,QACkD,GAD1CvgD,MAAM,OAAQ7B,KAAM,EAAA8tD,cAAevzD,MAAA,gBAAuB,QAAK,iBAAG,EAAAwzD,aAAY,IACjFpsD,SAAU,EAAAupD,WAAa,EAAAC,oB,+CAEyB,IAAhB,EAAAb,aAAsB,EAAA1L,QAAQwD,U,4BAAvE,QAGM,MAHN,GAGM,EAFF,QACkD,GAD1CvgD,MAAM,OAAQ7B,KAAM,EAAA8tD,cAAevzD,MAAA,gBAAuB,QAAK,iBAAG,EAAAwzD,aAAY,IACjFpsD,SAAU,EAAAupD,WAAa,EAAAC,oB,+BAES,EAAAb,YAAc,IAAM,EAAA1L,QAAQwD,W,WAArE,QAGM,MAHN,GAGM,EAFF,QACkD,GAD1CvgD,MAAM,OAAO7B,KAAK,oBAAoBzF,MAAA,gBAAuB,QAAO,EAAAyzD,SACvErsD,SAAU,EAAAupD,WAAa,EAAAC,oB,kDAES,EAAAb,YAAc,GAAK,EAAA1L,QAAQwD,W,WAApE,QAGM,MAHN,GAGM,EAFF,QACkD,GAD1CvgD,MAAM,OAAO7B,KAAK,oBAAoBzF,MAAA,gBAAuB,QAAO,EAAAyzD,SACvErsD,SAAU,EAAAupD,WAAa,EAAAC,oB,kDAEyB,IAAhB,EAAAb,aAAsB,EAAA1L,QAAQwD,U,4BAAvE,QAGM,MAHN,GAGM,EAFF,QACkC,GAD1BvgD,MAAM,kBAAmB7B,KAAM,EAAAiuD,eAAgB1zD,MAAA,gBAClD,QAAK,iBAAG,EAAAwzD,aAAY,K,oBAE4B,IAAhB,EAAAzD,aAAsB,EAAA1L,QAAQwD,U,4BAAvE,QAGM,MAHN,GAGM,EAFF,QAC8B,GADtBvgD,MAAM,0BAA2B7B,KAAM,EAAA8tD,cAAevzD,MAAA,gBACzD,QAAO,EAAA2zD,gB,uDAhWH,EAAAC,eAAiB,EAAAC,sB,SA4W9C,OAuCM,MAvCN,GAuCM,EAtCF,QAqCO,QApCQlmB,OAAK,SAAC,IAEb,C,aAAA,OAC+I,IAD/I,GAC+I,W,GAAhI,+H,SACf,QACuI,GAD/HloC,KAAK,wBAAwB/F,MAAM,oDACvCM,MAAA,gCAAmC,QAAO,EAAA8zD,aAAc,aAAW,mB,wBAA6B,sCAE7FpI,SAAO,SACd,IA0BM,EA1BN,OA0BM,MA1BN,GA0BM,CAvBF,IACA,QAC+D,GADvDrlD,GAAG,OAAOiB,MAAM,OAAO7B,KAAK,eAAgB,QAAO,EAAAorD,eACvDnxD,MAAM,wBAAwBM,MAAA,wB,qBAClC,QACgE,GADxDqG,GAAG,aAAaiB,MAAM,QAAQ7B,KAAK,cAAe,QAAO,EAAAswC,cAC7Dr2C,MAAM,wBAAwBM,MAAA,yB,oBAClC,IAEA,QAC+D,GADvDqG,GAAG,OAAOiB,MAAM,OAAO7B,KAAK,eAAgB,QAAO,EAAAqrD,qBACvDpxD,MAAM,wBAAwBM,MAAA,wB,qBAClC,QAC+D,GADvDqG,GAAG,aAAaiB,MAAM,QAAQ7B,KAAK,cAAe,QAAO,EAAA0yC,cAC7Dz4C,MAAM,wBAAwBM,MAAA,wB,qBAClC,QACwF,GAD9EN,MAAM,wB,WAAiC,EAAAq0D,e,uCAAA,EAAc,kBAAGlC,QAAS,EAAAmC,2BACvEC,YAAY,wCAAyC,SAAQ,EAAAC,qB,4CACjE,GAEoB,EAAA7P,QAAQwD,U,4BAA5B,QAAgJ,G,MAA1G,aAAW,gC,WAAyC,EAAAxD,QAAQxO,a,uCAAR,EAAAwO,QAAoB,gBAAE3kD,MAAM,yB,yBACtH,QACqF,GAD7E2G,GAAG,aAAaZ,KAAK,aAAc,QAAK,iBAAG,EAAA4+C,QAAQxO,cAAgB,IACvEn2C,MAAM,wBAAwB,aAAW,WAAWM,MAAA,0BACxD,QAC2H,GADnHqG,GAAG,aAAaZ,KAAK,cAAe,QAAK,iBAAG,EAAA4+C,QAAQxO,cAAgB,IACxEn2C,MAAM,wBAAwBM,MAAA,uBAA2B,aAAW,WAAYoH,SAAkC,GAAxB,EAAAi9C,QAAQxO,c,sBACtG,QAC+D,GADvDxvC,GAAG,gBAAgBiB,MAAM,yBAAyB7B,KAAK,eAAgB,QAAO,EAAAoT,aAClFnZ,MAAM,wBAAwBM,MAAA,wB,qBAClC,QAAwG,GAAhGsH,MAAM,OAAQ7B,KAAM,EAAA8tD,cAAgB,QAAK,iBAAG,EAAAC,aAAY,IAAQ9zD,MAAM,yB,yCAnChE,EAAAk0D,iB,SAwC9B,OAqBM,MArBN,GAqBM,EApBF,QAmBO,GAnBD5zD,MAAA,iBAAmB,CACV2tC,OAAK,SAAC,IAEb,C,IAAA,QACmE,GAD3DloC,KAAK,wBAAwB/F,MAAM,oDACvCM,MAAA,gCAAmC,QAAO,EAAAm0D,mB,uBAEvCzI,SAAO,SACd,IAUM,EAVN,OAUM,MAVN,GAUM,CAPF,IACA,QAC+C,GADvCrlD,GAAG,YAAYiB,MAAM,OAAO7B,KAAK,eAAgB,QAAO,EAAA2uD,oBAC5D10D,MAAM,oC,qBACV,QAC+C,GADvC2G,GAAG,kBAAkBiB,MAAM,QAAQ7B,KAAK,cAAe,QAAO,EAAA0wC,mBAClEz2C,MAAM,oC,oBACV,Q,mBAhBc,EAAAm0D,qBAsBJ,EAAS,Y,WAAnC,QA2DM,MA3DN,GA2DM,EA1DF,QAyDO,QAxDQlmB,OAAK,SAAC,IAEb,C,IAAA,QACoE,GAD5DloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,iBAAG,EAAAq0D,WAAY,QAGpD3I,SAAO,SACd,IA+CM,EA/CN,OA+CM,MA/CN,GA+CM,EA9CF,OA6CM,MA7CN,GA6CM,EA5CF,OAGM,MAHN,GAGM,CAH+B,I,SACO,OACqD,IADrD,GACqD,W,GAA9E,+EAEnB,OAE8E,QAF9E,GAE8E,C,aAF1B,OAEkB,IAFlB,GAEkB,W,GAAnD,oDACnB,QAEW,GAFDhsD,MAAM,mC,WAA4C,EAAAkzD,a,uCAAA,EAAY,gBAAGf,QAAS,EAAAxN,QAAQ5K,MACxFsY,YAAY,OAAO/xD,MAAA,kBAAyB,SAAM,iBAAG,EAAAs0D,YAAY,EAAA1B,gB,iCAErE,GACA,GACA,GACA,GACA,IACA,OAGM,MAHN,GAGM,EAFF,QAC8C,GADtCtrD,MAAM,YAAY7B,KAAK,mBAAoB,QAAK,iBAAG,EAAA8uD,mBAAqB,IAC5Ev0D,MAAA,mCAER,QAIU,GAJDN,MAAM,mCAAmC,aAAW,qB,WAA8B,EAAA80D,W,uCAAA,EAAU,cAAG3C,QAAS,EAAA4C,OAC7G1C,YAAY,OAAO2C,UAAU,mBAC5B,SAAM,kBAAG,EAAAC,UAAY,EAAAH,YAAgC,OAAnB,EAAAA,WAAW70D,KAAgB,EAAA60D,WAAW70D,KAAY,GAAI,EAAA40D,mBAAqB,EAAC,GAC/GluD,GAAG,SAASrG,MAAA,wB,kCAEhB,QAGU,GAHDN,MAAM,mC,WAA4C,EAAA60D,mB,uCAAA,EAAkB,sBAAE,aAAW,aACrF1C,QAAS,EAAA2C,WAAa,EAAAA,WAAWhC,WAAa,GAAIvB,SAAS,WAC5DyD,UAAU,mBAAmBruD,GAAG,SAASrG,MAAA,wB,kCAE7C,OAGM,MAHN,GAGM,CAFF,I,SAA4C,OACe,IADf,GACe,W,GAA5C,6CAEnB,QAAsF,GAA3E2B,KAAK,OAAOjC,MAAM,mC,WAA4C,EAAAi1D,U,uCAAA,EAAS,c,wBAClF,OAGM,MAHN,GAGM,CAFF,I,SAAyC,OACmC,IADnC,GACmC,W,GAA7D,8DAEnB,QACkD,GADxCj1D,MAAM,mC,WAA4C,EAAAk1D,c,uCAAA,EAAa,iBAAEC,SAAS,OAChFC,WAAW,WAAWC,cAAc,S,wBACxC,OAIM,MAJN,GAIM,EAHF,QAE8C,GAFtC1uD,GAAG,mBAAmBiB,MAAM,eAAe7B,KAAK,iBACnD,QAAO,EAAAuvD,iBAAmB5tD,SAAuC,GAA7B,EAAAmtD,mBAAmBx9C,OACxD/W,MAAA,+B,kEAO5B,QACe,I,uGC3ef,QAMM,aALF,QAIgH,GAJpGktC,MAAO,EAAAA,MAAQ+nB,aAAc,EAAAA,aAAexb,MAAO,EAAAA,MAAQ2Y,OAAQ,EAAAA,OAC1EG,kBAAmB,EAAAA,kBAAoBC,WAAY,EAAAA,WAAa,WAAU,EAAAC,SAAW,UAAS,EAAAC,QAC9F,kBAAiB,EAAAS,gBAAkB,cAAa,EAAAmB,YAAcY,MAAO,EAAAA,MAAQ,WAAU,EAAAC,SACvF,oBAAmB,EAAAC,kBAAoB,uBAAsB,EAAAhC,qBAAuBvL,SAAU,EAAAA,SAC9FwK,aAAc,EAAAA,aAAeO,aAAc,EAAAA,aAAeN,WAAY,EAAAA,WAAa,YAAW,EAAAe,W,sSAL1F,EAAAgC,gB,kECARr1D,MAAA,uB,IACqCN,MAAM,S,eAI/BA,MAAM,iB,IACAA,MAAM,gB,YACb,OAAiF,SAA1EA,MAAM,wBAAwBM,MAAA,wBAA2B,aAAS,K,YAGzE,OAAyC,OAApCN,MAAM,yBAAuB,W,gHAVlD,QAgBM,MAhBN,GAgBM,E,SAfF,OAA0D,MAA1D,GAA0D,W,MAA7C,EAAAu1D,aAAal+C,OAAS,KACD,GAAvB,EAAAk+C,aAAal+C,S,WAAxB,QAA0D,SAArB,qB,eACzB,EAAY,e,WAAxB,QAYO,G,MAZmB1Q,GAAG,e,eACA,EAAY,a,MAA1B,U,aACP,IAQM,EARN,OAQM,MARN,GAQM,EAPF,OAA2D,QAA3D,IAA2D,QAA5B,EAAAivD,aAAa31D,MAAI,GAChD,IACA,QAC4B,G,WADT,EAAA41D,M,qCAAA,EAAK,SAAGV,UAAU,EAAMn1D,MAAM,wBAAyBo1D,WAAW,WACjFC,cAAc,S,uBAClB,IACA,QACiE,GADzDztD,MAAM,QAAS,QAAK,gBAAE,EAAA6V,QAAQ,EAAAm4C,cAAe,EAAAA,kBAAex0C,IAChEphB,MAAM,wBAAwBM,MAAA,6B,wDAYtD,IACIL,KAAM,aACNjB,MAAO,CACHw2D,MAAOz1D,OACPytC,MAAOsoB,MACPP,aAAcO,MACdpD,OAAQoD,MACR3N,SAAUvlD,QACV+vD,aAAcpyC,KACdqyC,WAAYryC,MAEhBjd,OACI,MAAO,CACHyyD,OAAO,SAAI,CAAC,MAAO,OAAQ,QAAS,SACpCC,cAAc,SAAI,SAClBC,eAAgB,GAChBL,kBAAcx0C,EACdy0C,MAAO,KACPK,QAAS9L,GAAWz9B,QAAQ5rB,KAAK4xD,cACjCwD,QAAS/L,GAAWz9B,QAAQ5rB,KAAK6xD,YAEzC,EACA9xD,UACI,IAAI9B,EAAQ+B,KACRA,KAAKm1D,WACAn1D,KAAKo1D,QAAQC,UAAYr1D,KAAKm1D,QAAQE,WAAa,MAAqB,GACzEr1D,KAAKi1D,aAAe,OAEdj1D,KAAKo1D,QAAQC,UAAYr1D,KAAKm1D,QAAQE,WAAa,MAAqB,MAC9Er1D,KAAKi1D,aAAe,SAG5B,IAAIR,EAAQ,IAAI,KAAM,SAAUz0D,KAAKw0D,aAAc,CAC/Cc,cAAe,GACfC,aAAc,GACdhM,KAAM,GACNiM,WAAYx1D,KAAKg1D,MACjBS,WAAY,GACZC,kBAAmB,EACnBC,YAAa,EACbnR,QAAS,GACToR,UAAW51D,KAAKi1D,aAChBY,YAAa,aACbC,WAAY73D,EAAMmpD,SAClB2O,WAAW,EACXC,kBAAmB,SAAUt2C,GACzB,MAAO,0HAEmCA,EAAKxgB,yEACFwgB,EAAK/a,YAAY+a,EAAK5a,kKAIvE,EACAmxD,SAAU,SAAUv2C,GAChBzhB,EAAM62D,MAAQ,CAAC,IAAIt1C,KAAKE,EAAK/a,OAAQ,IAAI6a,KAAKE,EAAK5a,MACnD7G,EAAMi4D,UAAUx2C,EACpB,EACAy2C,eAAgB,SAAUz2C,EAAM/a,EAAOG,GAgBnC4a,EAAK/a,MAAQ0kD,GAAW9F,cAAc5+C,GACtC+a,EAAK5a,IAAMukD,GAAW9F,cAAcz+C,EAIxC,EACAsxD,mBAAoB,SAAU12C,EAAM22C,GAChChhD,QAAQC,IAAIoK,EAAM22C,EACtB,EACAC,eAAgB,SAAUhwB,GACtBjxB,QAAQC,IAAIgxB,EAChB,IAEJtmC,KAAK4C,MAAM,WAAY6xD,GACvB,IAAI8B,EAAYh4D,SAAS0b,eAAe,gBAAgBu8C,SAAS,GAC7DC,EAAal4D,SAAS+b,uBAAuB,mBAAmB,GACpEi8C,EAAUr2D,iBAAiB,UAAWksC,IAClCqqB,EAAWC,UAAYH,EAAUG,SAAS,IAE9CD,EAAWv2D,iBAAiB,UAAWksC,IACnCmqB,EAAUG,UAAYD,EAAWC,SAAS,GAElD,EACAC,UACI,IAAIC,EAAar4D,SAAS0b,eAAe,gBAAgBu8C,SAAS,GAAGA,SAAS,GAAGK,aACjFD,EAAa52D,KAAKonD,SAAYwP,EAAa,GAAMA,EAAa,GAC1DA,EAAa,GACb52D,KAAKy0D,MAAMqC,KAAKnjB,aAAa,SAAUijB,EAE/C,EACAx2D,QAAS,CACLyzD,cACI,IAAIkD,EAAqB,IAAI,IAAIhqC,IAAI/sB,KAAKk1D,eAAezsD,KAAIkvB,GAAQA,EAAKz4B,SAC1Ec,KAAK4C,MAAM,oBAAqBm0D,GAChC/2D,KAAK4C,MAAM,cAAe5C,KAAKmyD,aACnC,EACA+D,UAAUx2C,GACFA,GAAQ1f,KAAK60D,aACb70D,KAAK60D,kBAAex0C,GAGpBrgB,KAAK60D,aAAen1C,EACpBnhB,SAAS0b,eAAe,cAAc1a,MAAMM,MAAQ,GAAGtB,SAAS+b,uBAAuB,SAAS,GAAG08C,gBAE3G,EACAt6C,QAAQgD,GACJA,EAAK/a,MAAQ0kD,GAAW9F,cAAcvjD,KAAK80D,MAAM,IACjDp1C,EAAK5a,IAAM9E,KAAK80D,MAAM,GAAKzL,GAAW9F,cAAcvjD,KAAK80D,MAAM,IAAMzL,GAAW9F,cAAcvjD,KAAK80D,MAAM,IACzG90D,KAAKy0D,MAAM/3C,QAAQ1c,KAAKw0D,aAC5B,IC5IR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UCTSv1D,MAAM,gBAAgBM,MAAA,yE,sBAKPN,MAAM,oB,UAI4BA,MAAM,kBAAkBM,MAAA,uB,kCAOtE,OAAyE,QAAnEN,MAAM,uDAAqD,S,IAC3DA,MAAM,kB,0IAjBpB,QAmBM,MAnBN,GAmBM,CAlBc,EAAO,U,aAAvB,QAYW,sBAZ6B,EAAAg4D,OAARrhB,K,+BAClB,EAAAshB,QAAQthB,EAAKuhB,WAAavhB,EAAKygB,SAAW,M,WAApD,QAE4B,K,MAF6Bp3D,MAAM,mBAC3DM,MAAA,gCAAoCu1C,KAAI,GAAK,EAAAsiB,YAAYxhB,EAAKuhB,WAAY72D,OAAO,SAAS+2D,SAAA,K,QACtFzhB,EAAKuhB,UAAQ,S,WACrB,QAEM,MAFN,GAEM,EADF,QAA+E,GAAvE1yD,IAAG,GAAK,EAAA2yD,YAAYxhB,EAAKuhB,WAAYzyD,IAAI,QAAQ7E,MAAM,MAAMy3D,QAAA,I,mBAEtD1hB,EAAKygB,SAAW,M,WAAnC,QAA6G,G,MAArEp3D,MAAM,kBAAmBkE,MAAOyyC,EAAKygB,SAAU92D,MAAA,iB,mCAC3D,KAAjBq2C,EAAKygB,UAAoB,EAAA1vD,U,4BAApC,QAGM,MAHN,GAGM,E,SAFF,QACqD,GAD7C3B,KAAK,cAAc/F,MAAM,2EAC5B,QAAK,GAAE,EAAAs4D,WAAW3hB,I,wBAAkB,gB,6BAG0B,EAAAjvC,U,4BAA3E,QAIS,G,MAJD1H,MAAM,kCAAmC,QAAO,EAAAu4D,WAA6Bj4D,MAAA,sB,mBACjF,IAA8G,EAA9G,OAA8G,SAAvG2B,KAAK,OAAQ0E,GAAI,EAAAA,GAAK,SAAM,oBAAE,EAAAysD,YAAA,EAAAA,cAAA,IAAarJ,OAAQ,EAAA1sC,OAASk0C,SAAU,EAAAA,SAAUjxD,MAAA,kB,YACvF,IACA,OAA+C,OAA/C,IAA+C,QAAf,EAAAsH,OAAK,M,uBAOjD,QACI3H,KAAM,aACNjB,MAAO,CACH2H,GAAIzE,OACJ0F,MAAO1F,OACPmb,OAAQnb,OACRqvD,SAAUrvD,OACVs2D,OAAQz4D,OACRs4D,QAASz1D,QACT8E,SAAU9E,QACVo1D,MAAOlC,MACPqC,SAAUj2D,QAEdpB,UACA,EACAK,QAAS,CACLo3D,aACIj5D,SAAS0b,eAAeja,KAAK4F,IAAI8xD,OACrC,EACArF,aACQryD,KAAKy3D,OACLz3D,KAAK4C,MAAM,SAAU,CAAEq0D,MAAO14D,SAAS0b,eAAeja,KAAK4F,IAAIqxD,MAAOQ,OAAQz3D,KAAKy3D,SAGnFz3D,KAAK4C,MAAM,SAAUrE,SAAS0b,eAAeja,KAAK4F,IAAIqxD,MAE9D,EACAM,WAAW3hB,GACP,IAAI33C,EAAQ+B,KACRyV,EAAQzV,KAAKi3D,MAAM9lC,QAAQykB,GAC3BA,EAAKhwC,GACL5F,KAAK6F,MACA8xD,OAAO,GAAG15D,EAAM8H,sBAAsB6vC,EAAKhwC,MAC3C0T,MAAK,SAAUC,GACR9D,GAAS,GACTxX,EAAMg5D,MAAMp1B,OAAOpsB,EAAO,EAElC,IACC0H,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,IAGrB3H,GAAS,GACdxX,EAAMg5D,MAAMp1B,OAAOpsB,EAAO,EAElC,EACAyhD,QAAQC,GACJ,OAAOA,EAAShkD,SAAS,QAAUgkD,EAAShkD,SAAS,SAAWgkD,EAAShkD,SAAS,QAAUgkD,EAAShkD,SAAS,QAAUgkD,EAAShkD,SAAS,MAC9I,ICpER,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,UCNSlU,MAAM,iB,IACP,OAA6D,SAAtDA,MAAM,oCAAmC,SAAK,G,UAIhDA,MAAM,yB,UACJA,MAAM,oC,UACRA,MAAM,wBAAwBM,MAAA,e,IAC1BN,MAAM,iB,IAIFM,MAAA,iB,UAMNN,MAAM,oC,UAKRA,MAAM,yB,IACFA,MAAM,iB,UAQVA,MAAM,wBAAwBM,MAAA,e,IAC1BN,MAAM,iB,IAGFM,MAAA,iB,UAMQN,MAAM,yB,IAC3B,OAA0E,SAAnEA,MAAM,oCAAmC,sBAAkB,G,IASlE,OAAuE,SAAhEA,MAAM,oCAAmC,mBAAe,G,IAuB9DM,MAAA,kB,UACqBA,MAAA,eAAmBN,MAAM,iB,qBAyBnBA,MAAM,gBAAgBM,MAAA,gB,qBAiCtCA,MAAA,eAAmBN,MAAM,iB,4TAtIzC,OAuDM,MAvDN,GAuDM,CAtDF,IACA,QAEW,GAFDA,MAAM,wB,WAAiC,EAAAkzD,a,qCAAA,EAAY,gBAAGf,QAAS,EAAApY,MAAOsY,YAAY,OAAQ14C,QAAQ,EACvG,SAAM,gBAAE,EAAAi7C,YAAY,EAAA1B,aAAa,GAAG5yD,MAAA,gBAAsBqG,GAAG,gB,iCAExB,EAAAwhD,U,4BAA1C,QAA0D,MAA1D,KACuD,EAAAA,U,4BAAvD,QAA0F,QAA1F,GAAiE,sBACL,EAAAA,U,4BAA5D,QAUM,MAVN,GAUM,EATF,OAQM,MARN,GAQM,EAPF,QAEW,G,WAFQ,EAAAwQ,qB,qCAAA,EAAoB,wBAAGxG,QAAS,EAAApY,MAAOsY,YAAY,OAClE/xD,MAAA,2CAA+CqZ,QAAQ,G,kCAE3D,OAGM,MAHN,GAGM,EAFF,QACmE,GAD3D3Z,MAAM,GAAI4H,MAAK,eAAiB,EAAA+wD,qBAAqB14D,OAAQ8F,KAAK,iBACrE,QAAO,EAAA6yD,YAAat4D,MAAA,+B,mCAIkB,EAAA6nD,U,4BAAvD,QAAsF,QAAtF,GAAiE,kBAGF,EAAAA,U,4BAF/D,QAGe,G,MAHDnoD,MAAM,wBAAwBM,MAAA,c,WAA2B,EAAAu4D,QAAQ,GAAGC,M,qCAAX,EAAAD,QAAQ,GAAQ,SAClFtK,YAAa,EAAAwK,eAAiB,WAAQ,eAAE,EAAAC,YAAYrwD,IAAU+lD,UAAU,EACzE6F,YAAY,yC,sCAE0B,EAAApM,U,4BAA1C,QAQM,MARN,GAQM,EAPF,OAMM,MANN,GAMM,EALF,QAEY,GAFD7nD,MAAA,qD,WAA8D,EAAAu4D,QAAQ,GAAG54D,K,qCAAX,EAAA44D,QAAQ,GAAO,QACpFtE,YAAY,qB,iCAEhB,QAC+G,GADvGxuD,KAAK,aAAa/F,MAAM,wBAAwBM,MAAA,2BAA8B,QAAO,EAAAqzD,UACzF,aAAW,0C,wBAAoD,iDAGf,EAAAxL,U,4BAA5D,QASM,MATN,GASM,EARF,OAOM,MAPN,GAOM,EANF,QACsF,GAD5E7nD,MAAA,yC,WAAoD,EAAA24D,gB,qCAAA,EAAe,mBAAE9D,SAAS,OACpFC,WAAW,WAAWC,cAAc,QAAQd,YAAY,yB,wBAC5D,OAGM,MAHN,GAGM,EAFF,QAC8C,GADrC3sD,MAAO,eAAgB7B,KAAK,aAAc,QAAK,eAAE,EAAAmzD,WAAW,EAAAL,QAAQ,KACzEv4D,MAAA,uCAIL,EAAQ,W,WAAnB,QAAyD,MAAzD,M,eACA,IACA,QAOc,GAPDN,MAAM,wB,WAAiC,EAAAi2D,e,qCAAA,EAAc,kBAAG9D,QAAS,EAAAO,OAAQL,YAAY,OAC9FkC,YAAY,8BAA8Bt5C,QAAQ,OAAQ,SAAM,eAAE,EAAA25C,eAAet0D,MAAA,iB,CACtE64D,QAAM,SAAEC,GAAS,EACxB,OAEQ,OAFFp5D,OAAK,QAAEo5D,EAAUD,OAAOE,cAAc/4D,MAAA,uC,QACxC84D,EAAUD,OAAOl5D,MAAI,M,iCAIjC,IACA,QACyG,GAD/FD,MAAM,wB,WAAiC,EAAAg2D,a,uCAAA,EAAY,gBAAG7D,QAAS,EAAA4D,MACpE,SAAM,uBAAOP,MAAM8D,iBAAiB,EAAAtD,cAAe,EAAAuD,cAAa,GAAGj5D,MAAA,iB,oCAqB5E,OAyEM,MAzEN,GAyEM,CAxEU,EAAA6nD,W,WA0DZ,QAYM,MAZN,GAYM,EAXF,QAMY,GANAjkD,MAAO,EAAAqxD,aAAcv1D,MAAM,uCAAwC0xD,YAAY,EACvFG,aAAa,mDAAmDlrD,GAAG,eAAerG,MAAA,uB,mBAClF,IACS,EADT,QACS,GADD0xD,MAAM,QAAQjpD,OAAO,QAAQzI,MAAA,uBAErC,QACS,GADD0xD,MAAM,OAAOjpD,OAAO,OAAOzI,MAAA,yB,kBAGL,GAAvB,EAAAi1D,aAAal+C,S,WAAxB,QAA0D,SAArB,qB,eACnB,EAAAk+C,aAAal+C,OAAS,I,WAAxC,QAE4D,G,MAFhBm+C,MAAO,EAAAA,MAAQ9C,OAAQ,EAAAA,OAAS6C,aAAc,EAAAA,aACrF,WAAU,EAAAE,SAAW,cAAa,EAAAb,YAAa50D,MAAM,kBAAmBmoD,UAAU,EAClFwK,aAAc,EAAAA,aAAeC,WAAY,EAAAA,Y,oIArElD,QAyDM,MAzDN,GAyDM,EAxDF,QAmDY,GAnDA1uD,MAAO,EAAAqxD,aAAcv1D,MAAM,uCAAwC0xD,YAAY,EACvFG,aAAa,4CAA4ClrD,GAAG,eAAegrD,SAAS,OACpFrxD,MAAA,sBAA2B,mBAAoB,EAAAk5D,oB,mBAC/C,IAeS,EAfT,QAeS,GAfDxH,MAAM,QAAQjpD,OAAO,+BAA+BzI,MAAA,qB,CAQ7C4xD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAGe,G,WAHQ1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAIzD,YAAa,EAAAwK,eAC7C,WAAQ,IAAE,EAAAC,YAAYrwD,EAAQrF,EAAK,EAAIorD,UAAU,EAAMpuD,MAAA,eACxDi0D,YAAY,yC,kFAKxB,QAgBS,GAhBDvC,MAAM,OAAOjpD,OAAO,WAAWzI,MAAA,qB,CACxBwD,MAAI,SAAEs1D,GAAS,CACR,EAAAP,QAAQ3kD,SAASklD,EAAU91D,Q,WAGzC,QAMM,MANN,GAMM,EALF,QAEY,GAFDtD,MAAM,wB,WAAiCo5D,EAAU91D,KAAKrD,K,yBAAfm5D,EAAU91D,KAAS,OACjEixD,YAAY,oBAAoBj0D,MAAA,gC,uDAEpC,QAC2D,GADnDyF,KAAK,aAAa,aAAW,yCAAyC/F,MAAM,wBAAyB,QAAO,EAAA2zD,UAAWrzD,MAAA,gB,wBAChH,iD,WARnB,QAEU,oBADN84D,EAAU91D,KAAKrD,MAAI,OAUhBiyD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAyD,GAA9C/vD,KAAK,O,WAAgBqB,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,I,uDAGrD,QAcS,GAdDhJ,MAAA,cAAgB,CACTyI,QAAM,SACb,IAEwG,E,SAFxG,QAEwG,GAFhGhD,KAAK,cACT/F,MAAM,oEACL,QAAO,EAAAy5D,oBAAqB,aAAW,aAAsCn5D,MAAA,iB,+BAAd,mBAE7DwD,MAAI,SAAEs1D,GAAS,CACP,EAAAP,QAAQ3kD,SAASklD,EAAU91D,O,qBAG1C,QAEkG,G,MAFnFyC,KAAK,aAChB/F,MAAM,qEACL,QAAK,GAAE,EAAAk5D,WAAWE,EAAU91D,MAA0BoE,SAAiC,IAAvB0xD,EAAU91D,KAAKrD,M,oCAAjC,U,qBALnD,QAE2F,G,MAF1C8F,KAAK,cAClD/F,MAAM,oEACN,aAAW,SAAU,QAAK,GAAE,EAAA05D,mBAAmBN,EAAU91D,O,gCAAkB,e,gDAOzD,GAAvB,EAAAiyD,aAAal+C,S,WAAxB,QAA0D,SAArB,qB,eACnB,EAAAk+C,aAAal+C,OAAS,I,WAAxC,QAE4D,G,MAFhBm+C,MAAO,EAAAA,MAAQ9C,OAAQ,EAAAA,OAAS6C,aAAc,EAAAA,aACrF,WAAU,EAAAE,SAAW,cAAa,EAAAb,YAAa50D,MAAM,kBAAmBmoD,UAAU,EAClFwK,aAAc,EAAAA,aAAeC,WAAY,EAAAA,Y,8HAyB1D,QACI3yD,KAAM,YACNmD,WAAY,CACRu2D,WAAU,IAEd36D,MAAO,CACHwuC,MAAOsoB,MACPP,aAAcO,MACd/b,MAAO+b,MACPpD,OAAQoD,MACRjD,kBAAmBiD,MACnBhD,WAAYgD,MACZN,MAAOz1D,OACPooD,SAAUvlD,QACV+vD,aAAcpyC,KACdqyC,WAAYryC,KACZ2yC,aAAcnzD,QAElBuD,OACI,MAAO,CACHyyD,OAAO,SAAI,CAAC,MAAO,OAAQ,QAAS,SACpCC,cAAc,SAAI,SAClBC,eAAgB,GAChBgD,gBAAiB,KACjBJ,QAAS,CAAC,CACNnzD,MAAO0kD,GAAW9F,cAAc,IAAI/jC,MACpC1a,IAAKukD,GAAW9F,cAAc,IAAI/jC,MAAK,IAAIA,MAAOkM,eAAe,IAAIlM,MAAOmM,WAAa,GAAG,IAAInM,MAAOoM,YACvG1sB,KAAM,GACN0G,GAAI,GACJmyD,MAAO,GACPh0C,KAAM,GACN80C,QAAS,GACTC,cAAe,GACfC,kBAAmB,KAGvBnB,qBAAsB53D,KAAKg5C,MAAM,GAEjCgf,eAAgB,KAExB,EACAj4D,UACQC,KAAK4xD,gBACAvI,GAAWz9B,QAAQ5rB,KAAK6xD,YAAYwD,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4xD,cAAcyD,WAAa,MAAqB,GACzHr1D,KAAKi1D,aAAe,OAEd5L,GAAWz9B,QAAQ5rB,KAAK6xD,YAAYwD,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4xD,cAAcyD,WAAa,MAAqB,MAC9Hr1D,KAAKi1D,aAAe,QAGhC,EACA70D,QAAS,CACLs0D,SAASD,GACLz0D,KAAK4C,MAAM,WAAY6xD,EAC3B,EACAE,kBAAkBoD,GACd/3D,KAAK4C,MAAM,oBAAqBm1D,EACpC,EACAF,cACI,IAAI55D,EAAQ+B,KACRg5D,EAAe,GACfC,EAA8B,GAAtBh7D,EAAMwuC,MAAMn2B,OAAc,EAAI3D,KAAKi6B,OAAO3uC,EAAMwuC,MAAMhkC,KAAI+kB,GAAKhB,SAASgB,EAAE5nB,OACtF5F,KAAKysC,MAAM7zB,QAAO4U,GAAKA,EAAEzJ,MAAQ/jB,KAAK43D,qBAAqBhyD,KAAI6C,KAAIiX,IAC/Ds5C,EAAazzD,KAAK,IACXma,EACHqE,KAAM/jB,KAAKmyD,aAAavsD,GACxBszD,MAAO,EACPtzD,GAAI,GAAGqzD,EAAQD,EAAa1iD,OAAS,KACxC,IAELtW,KAAKysC,MAAMlnC,QAAQyzD,GACnBh5D,KAAK4C,MAAM,WAAY5C,KAAKysC,OAC5BzsC,KAAK6zD,aACT,EACAA,cACI,IAAIkD,EAAqB,IAAI,IAAIhqC,IAAI/sB,KAAKk1D,eAAezsD,KAAIkvB,GAAQA,EAAKz4B,SAC1Ec,KAAK4C,MAAM,oBAAqBm0D,GAChC/2D,KAAK4C,MAAM,kBAAmB5C,KAAKmyD,cACnCnyD,KAAK4C,MAAM,cAAe5C,KAAKmyD,cAC/BnyD,KAAKw4D,cACT,EACAP,YAAY53D,EAAOqf,GACf,IAAIy5C,EAAa,IAAI,IAAIpsC,IAAI/sB,KAAK2xD,OAAOlpD,KAAIkvB,GAAQA,EAAKz4B,SACrDmB,EAAM2uD,MAAM5/B,OAAO9Y,OAIpBtW,KAAKg4D,eAAiBmB,EAAWvgD,QAAQm/C,GAC9BA,EAAMv8C,cAAc+pC,WAAWllD,EAAM2uD,MAAMxzC,iBAJtDxb,KAAKg4D,eAAiBmB,CAsB9B,EACAhB,WAAWz4C,GACP,IAAIzhB,EAAQ+B,KACR+3D,EAAQ95D,EAAM0zD,OAAO/4C,QAAOwzB,GAAKA,EAAEltC,OAASwgB,EAAKq4C,QACjC,GAAhBA,EAAMzhD,QACNrY,EAAM0zD,OAAOpsD,KAAK,CACdrG,KAAMwgB,EAAKq4C,MACXO,aAAc,eAAer6D,EAAM0zD,OAAOr7C,OAAS,MAG3DoJ,EAAKqE,KAAO/jB,KAAKmyD,aAAavsD,GAC9B8Z,EAAK/a,MAAQ0kD,GAAW9F,cAAcvjD,KAAKk4D,gBAAgB,IAC3Dx4C,EAAK5a,IAAMukD,GAAW9F,cAAcvjD,KAAKk4D,gBAAgB,IACzDl4D,KAAK4C,MAAM,UAAW8c,GACtB1f,KAAK83D,QAAU,CAAC,CACZnzD,MAAO+a,EAAK/a,MACZG,IAAK4a,EAAK5a,IACV5F,KAAM,GACN0G,GAAI,GACJmyD,MAAOr4C,EAAKq4C,MACZh0C,KAAM,GACN80C,QAAS,GACTC,cAAe,GACfC,kBAAmB,IAE3B,EACAJ,mBAAmBj5C,GAEf,GADAA,EAAKsoC,SAAW,wBACZtoC,EAAKw5C,MAAQx5C,EAAKw5C,MAAQ,EAC1Bl5D,KAAK6F,MACA8xD,OAAO,GAAG33D,KAAK+F,sBAAsB2Z,EAAKw5C,QAC1C5/C,MAAKC,IACF,IAAI9D,EAAQzV,KAAKysC,MAAMtb,QAAQzR,GAC3BjK,GAAS,IACTzV,KAAKysC,MAAM5K,OAAOpsB,EAAO,GACzBzV,KAAK4C,MAAM,WAAY5C,KAAKysC,OAC5BzsC,KAAK4C,MAAM,cAAe5C,KAAKmyD,eAEnCnyD,KAAK6F,MACA8xD,OAAO,GAAG33D,KAAK+F,mCAAmC2Z,EAAK9C,oBAAoB8C,EAAK9Z,MAChF0T,MAAKC,QAEL4D,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,GACrB,IAERD,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,QAGzB,CACD,IAAI3H,EAAQzV,KAAKysC,MAAMtb,QAAQzR,GAC3BjK,GAAS,IACTzV,KAAKysC,MAAM5K,OAAOpsB,EAAO,GACzBzV,KAAK4C,MAAM,WAAY5C,KAAKysC,OAC5BzsC,KAAK4C,MAAM,cAAe5C,KAAKmyD,cAEvC,CACJ,EACAuG,sBACI14D,KAAKw0D,aAAannC,SAAQG,IACtBxtB,KAAK24D,mBAAmBnrC,EAAE,GAElC,EACAgrC,eACI,IAAI5B,EAAar4D,SAAS0b,eAAe,gBAAgBu8C,SAAS,GAAGA,SAAS,GAAGK,aACjFD,EAAa52D,KAAKonD,SAAWwP,EAAa,GAAKA,EAAa,GACxDA,EAAa,GAAK52D,KAAKy0D,OACvBz0D,KAAKy0D,MAAMqC,KAAKnjB,aAAa,SAAUijB,EAE/C,EACAhE,YACI5yD,KAAK4C,MAAM,YACf,EACA61D,mBAAmBp4D,GACfgV,QAAQC,IAAI,YACZ,IAAIrX,EAAQ+B,MACR,KAAEuC,EAAI,SAAE62D,EAAQ,MAAEnI,GAAU5wD,EAChC,OAAQ4wD,GACJ,IAAK,QACD,IAAI8G,EAAQ95D,EAAM0zD,OAAO/4C,QAAOwzB,GAAKA,EAAEltC,OAASk6D,IAC5B,GAAhBrB,EAAMzhD,QACN/T,EAAK+1D,aAAe,eAAer6D,EAAM0zD,OAAOr7C,OAAS,IACzDrY,EAAM0zD,OAAOpsD,KAAK,CACdrG,KAAMk6D,EACNd,aAAc,eAAer6D,EAAM0zD,OAAOr7C,OAAS,OAIvD/T,EAAK+1D,aAAeP,EAAM,GAAGO,aAEjC/1D,EAAK0uD,GAASmI,EACdn7D,EAAM2E,MAAM,uBAAwBL,GACpC,MAEJ,QACQ62D,EAAShqC,OAAO9Y,OAAS,EACzB/T,EAAK0uD,GAASmI,EAEd/4D,EAAMM,iBACV,MAERX,KAAK6zD,aACT,ICxWR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,UNqBA,IACI30D,KAAM,WACNmD,WAAY,CACRu2D,WAAU,GACVS,WAAU,GACVC,UAAS,IAEbr7D,MAAO,CACHwuC,MAAOsoB,MACP/b,MAAO+b,MACPpD,OAAQoD,MACRjD,kBAAmBiD,MACnBhD,WAAYgD,MACZ3N,SAAUvlD,QACV+vD,aAAcpyC,KACdqyC,WAAYryC,KACZ2yC,aAAcnzD,QAElBuD,OACI,MAAO,CACHqyD,eAAe,EACf2E,WAAW,EACX/E,aAAc,GACd5e,KAAM,GACN6e,MAAO,KAEPS,eAAgB,GAGxB,EACAsE,cACIx5D,KAAK6zD,YAAY7zD,KAAKmyD,aAC1B,EACApyD,UACIC,KAAK6zD,YAAY7zD,KAAKmyD,aAC1B,EACAwE,UAEA,EACAv2D,QAAS,CACLs0D,SAASD,GACLz0D,KAAKy0D,MAAQA,CACjB,EACAzC,SAASvlB,GACLzsC,KAAK4C,MAAM,WAAY6pC,EAC3B,EACAwlB,QAAQvyC,GACJ1f,KAAK4C,MAAM,UAAW8c,EAC1B,EACAkzC,YACI5yD,KAAK4C,MAAM,YACf,EACA+xD,kBAAkBhD,GACVA,EAAO73C,QAAU9Z,KAAKk1D,eAAep7C,SACrC9Z,KAAKk1D,eAAiBvD,EACtB3xD,KAAK6zD,YAAY7zD,KAAKmyD,cAE9B,EACAO,gBAAgB3uC,GACRA,EAAKne,IAAM5F,KAAKmyD,aAAavsD,KAC7B5F,KAAK4C,MAAM,kBAAmBmhB,GAC9B/jB,KAAK6zD,YAAY9vC,GAEzB,EACA8vC,YAAY9vC,GACR,IAAI9lB,EAAQ+B,KACP+jB,IACU,IAAXA,EAAKne,GACL5F,KAAKw0D,aAAex0D,KAAKysC,MAEU,GAA9BzsC,KAAKk1D,eAAe5+C,OACzBtW,KAAKw0D,aAAex0D,KAAKysC,MAAM7zB,QAAO4U,GAAKA,EAAEzJ,MAAQA,EAAKne,KAG1D5F,KAAKw0D,aAAex0D,KAAKysC,MAAM7zB,QAAO4U,GAAKvvB,EAAMi3D,eAAe/hD,SAASqa,EAAEuqC,SAAQn/C,QAAO4U,GAAKA,EAAEzJ,MAAQA,EAAKne,KAE9G5F,KAAKy0D,OAASz0D,KAAKw0D,aAAal+C,OAAS,GACzCtW,KAAKy0D,MAAM/3C,QAAQ1c,KAAKw0D,cAEhC,EACA7B,qBAAqBjzC,GACjB1f,KAAK4C,MAAM,uBAAwB8c,EACvC,IOxGR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UR8eA,IACIxgB,KAAM,gBACNjB,MAAO,CACHwoD,SAAUznD,OACV4kD,QAAS5kD,OACTqwD,WAAYxtD,SAEhBQ,WAAY,CACRo3D,SAAQ,MACRC,SAAQ,GACRL,WAAU,IAEdM,QACI,MAAMC,GAAc,WACd/F,EAAc,CAACgG,EAAaptB,KAC9BmtB,EAAYz2D,OAAO0wD,YAAYgG,EAAaptB,EAAM,EAGtD,MAAO,CACHonB,cACA+F,cAER,EACAr3D,OACI,MAAO,CACHu3D,iBAAkB,eAElBC,gBAAiB,CACb,CAAElzD,MAAO,oBAAqB1D,MAAO,qBACrC,CAAE0D,MAAO,UAAW1D,MAAO,WAC3B,CAAE0D,MAAO,UAAW1D,MAAO,WAC3B,CAAE0D,MAAO,eAAgB1D,MAAO,gBAChC,CAAE0D,MAAO,aAAc1D,MAAO,cAC9B,CAAE0D,MAAO,YAAa1D,MAAO,aAC7B,CAAE0D,MAAO,QAAS1D,MAAO,SACzB,CAAE0D,MAAO,WAAY1D,MAAO,YAC5B,CAAE0D,MAAO,eAAgB1D,MAAO,gBAChC,CAAE0D,MAAO,SAAU1D,MAAO,UAC1B,CAAE0D,MAAO,WAAY1D,MAAO,YAC5B,CAAE0D,MAAO,SAAU1D,MAAO,UAC1B,CAAE0D,MAAO,YAAa1D,MAAO,aAC7B,CAAE0D,MAAO,WAAY1D,MAAO,YAC5B,CAAE0D,MAAO,YAAa1D,MAAO,YAC7B,CAAE0D,MAAO,eAAgB1D,MAAO,gBAChC,CAAE0D,MAAO,gBAAiB1D,MAAO,iBACjC,CAAE0D,MAAO,YAAa1D,MAAO,cAGjCkuD,YAAa,CACT,CAAExqD,MAAO,4GAA6G1D,MAAO,KAC7H,CAAE0D,MAAO,wLAAyL1D,MAAO,MAE7M62D,gBAAiB,SAEjBhG,OAAQ,GACRD,WAAY,GACZD,mBAAoB,GACpBI,UAAW,GACXC,cAAe,CAAC,IAAI30C,KAAQ,IAAIA,MAAK,IAAIA,MAAOkM,eAAe,IAAIlM,MAAOmM,WAAa,GAAG,IAAInM,MAAOoM,YAErGkmC,kBAAmB,GAEnBC,WAAY,GAEZkI,YAAa,QAEbC,UAAW,GACX1H,YAAY,EACZ2H,aAAa,EACbvkB,KAAM,KACN0c,SAAU,SACVX,QAAQ,SAAS,IAEjBpB,YAAa,sCACbG,gBAAiB,sCAEjByC,cAAc,EACdC,mBAAmB,EAEnB9D,YAAa,EAEbwD,cAAe,aACfG,eAAgB,aAEhBmH,cAAe,GACfC,sBAAuB,GACvBC,eAAgB,IAEhBnI,aAAcnyD,KAAK4jD,QAAQ5K,MAAMoI,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAE5iB,KAAOmiD,EAAEniD,KAAQ,GAAK,IAAG,GAE5E00D,WAAW,EAEXN,eAAgB,GAChBC,2BAA4B,GAE5BgH,SAAU,GAElB,EACAn3D,SAAU,CACNo3D,iBACI,OAAOx6D,KAAKi6D,WAChB,EACA/J,YACI,IAAIuK,IACAz6D,KAAK4jD,QAAQn9C,cACbzG,KAAK4jD,QAAQ8L,WACb1vD,KAAK4jD,QAAQ+L,WACb3vD,KAAK4jD,QAAQgM,gBACb5vD,KAAK4jD,QAAQiM,oBAGb7vD,KAAK4jD,QAAQxO,cAEjB,OAAOqlB,CACX,EACAtK,qBACI,IAAIlyD,EAAQ+B,KACZ,QAAOA,KAAKymD,WAAWzmD,KAAKymD,SAAS7tC,QAAOkvC,GAAKA,EAAE4S,2BAA2BtrC,QAAUnxB,EAAM2lD,QAAQn9C,aAAa2oB,SAAQ9Y,OAAS,IAAMrY,EAAM2lD,QAAQh+C,GAC5J,GAEJxF,QAAS,CACLovD,QACInG,GAAW1F,WAAW3jD,KAAK4jD,SAC3B5jD,KAAK8yD,cAAgB,aACrB9yD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACA6K,WACI3J,GAAW1F,WAAW3jD,KAAK4jD,SAC3B5jD,KAAKsvD,YAActvD,KAAKsvD,YAAc,CAC1C,EACAuD,WACIxJ,GAAW1F,WAAW3jD,KAAK4jD,SAC3B5jD,KAAKsvD,YAActvD,KAAKsvD,YAAc,EACtCtvD,KAAK26D,mBACT,EACA51D,UACI,OAAO/E,KAAKyF,OAAOC,QAAQS,WAC/B,EACAy0D,cACI,MAAO,GAAG56D,KAAKyF,OAAOC,QAAQS,YAAYC,aAAapG,KAAKyF,OAAOC,QAAQS,YAAY+nD,UAC3F,EACAxG,eACI,OAAO1nD,KAAKyF,OAAOC,QAAQy/C,SAC/B,EACA4N,YAAYvD,GACRxvD,KAAK26D,oBACDnL,EACAxvD,KAAKizD,eAAiB,wBAGtBjzD,KAAK8yD,cAAgB,wBAEzB,IAAI70D,EAAQ+B,KACZA,KAAK4jD,QAAQplC,gBAAkBxe,KAAKg6D,gBACpCh6D,KAAK4jD,QAAQiX,eAAiB,qBAC9B76D,KAAK4jD,QAAQkX,YAAc96D,KAAK4jD,QAAQkX,YAAc96D,KAAK4jD,QAAQkX,YAAc96D,KAAK+E,UAAUa,GAChG5F,KAAK4jD,QAAQmX,aAAe/6D,KAAK4jD,QAAQmX,aAAe/6D,KAAK4jD,QAAQmX,aAAe/6D,KAAK+E,UAAUwoD,QACnGvtD,KAAK4jD,QAAQoX,MAAQh7D,KAAK4jD,QAAQoX,MAAQh7D,KAAK4jD,QAAQoX,MAAQh7D,KAAK46D,cACpE56D,KAAK4jD,QAAQqX,UAAYj7D,KAAK46D,cAC9B56D,KAAK4jD,QAAQsX,WAAY,EACzBl7D,KAAK4jD,QAAQ/iB,YAAc,4BAA+B/mB,KAAK,KAC3D,uBACA9Z,KAAK4jD,QAAQuX,eAAiB,EAG9Bn7D,KAAK4jD,QAAQuX,eAAiB,EAElC9lD,QAAQC,IAAI,+BACZD,QAAQC,IAAItV,KAAK4jD,QAAQuX,gBACzBn7D,KAAK4jD,QAAQnX,MAAMpf,SAAQG,IAClBA,EAAE7oB,OAAU6oB,EAAE1oB,MACf0oB,EAAE7oB,MAAQ0kD,GAAW9F,cAAc,IAAI/jC,MACvCgO,EAAE1oB,IAAMukD,GAAW9F,cAAc,IAAI/jC,OAE5B,MAATgO,EAAE1oB,KAAgB0oB,EAAE1oB,MACpB0oB,EAAE1oB,IAAM0oB,EAAE7oB,OAEC,MAAX6oB,EAAE7oB,OAAkB6oB,EAAE7oB,QACtB6oB,EAAE7oB,MAAQ6oB,EAAE1oB,IAChB,IAEJ,IAAIs2D,EAAgB,IAAKn9D,EAAM2lD,SAC3BwX,EAAcj/B,6BACPi/B,EAAcj/B,qBAEpBl+B,EAAM2lD,QAAQh+C,GAsBf3H,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,yBAAyB9H,EAAM2lD,QAAQh+C,KAAMyjD,GAAW1F,WAAWyX,IACjF9hD,MAAK,SAAUC,GACZA,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/CtE,EAAMwH,OAAOO,SAAS,oBAAqB,CAAE49C,QAASrqC,EAAShX,OAC/DtE,EAAMwH,OAAO4gD,OAAO,eAAgB,CAAEljD,MAAOlF,EAAM2lD,QAAQh+C,KAC3DyP,QAAQC,IAAI,oBAAqBrX,EAAM2lD,QAAQh+C,IAC/CyP,QAAQC,IAAIiE,EAAShX,MACrB8S,QAAQC,IAAI,8BACZD,QAAQC,IAAIrX,EAAM2lD,QAAQ5K,OAC1B,sBAAyB/6C,EAAM2lD,QAAQh+C,GAAI3H,EAAM2lD,QAAQ5K,MAAOwW,GAAO,WACnEvxD,EAAM60D,cAAgB,aACtB70D,EAAMg1D,eAAiB,aACnBzD,GACAvxD,EAAMuxD,OAEd,GACJ,IACCryC,OAAMC,GAAS/H,QAAQC,IAAI8H,KAvChCnf,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,qBAAsBsjD,GAAW1F,WAAWyX,IAC1D9hD,MAAK,SAAUC,GACZlE,QAAQC,IAAIiE,EAAShX,MACrBgX,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/CtE,EAAMwH,OAAOO,SAAS,iBAAkB,CAAE49C,QAASrqC,EAAShX,OAC5DtE,EAAMwH,OAAOO,SAAS,oBAAqB,CAAE49C,QAASrqC,EAAShX,OAC/DtE,EAAMwH,OAAO4gD,OAAO,eAAgB,CAAEljD,MAAOoW,EAAShX,KAAKqD,KAC3DyP,QAAQC,IAAI,oBAAqBiE,EAAShX,KAAKqD,IAC/C,sBAAyB2T,EAAShX,KAAKqD,GAAI2T,EAAShX,KAAKy2C,MAAOwW,GAAO,WACnEvxD,EAAM60D,cAAgB,aACtB70D,EAAMg1D,eAAiB,aACvBh1D,EAAM2lD,QAAQh+C,GAAK2T,EAAShX,KAAKqD,GAC7B4pD,GACAvxD,EAAMuxD,OAEd,GACJ,IACCryC,OAAMC,GAAS/H,QAAQC,IAAI8H,IAuBxC,EACA81C,iBACI,yBAA4BlzD,KAAK4jD,QAAQh+C,GAC7C,EACA2pD,cACIvvD,KAAKmzD,cAAe,CACxB,EACAkI,cAE6B,UAArBr7D,KAAKi6D,YACLj6D,KAAKi6D,YAAc,QAGnBj6D,KAAKi6D,YAAc,OAG3B,EACA7J,iBACI,oBAAuBpwD,KAAK4jD,QAAQxO,cACpCp1C,KAAK4jD,QAAQ5K,MAAQ,GACrBh5C,KAAKmzD,cAAe,EACpB,IAAK,IAAIr8C,EAAI9W,KAAK4jD,QAAQ5K,MAAM1iC,OAAQQ,EAAI,EAAGA,IAC3C9W,KAAK4jD,QAAQ5K,MAAMzzC,KAAK,CACpBK,GAAIkR,EAAI,EACR5X,KAAM,QAAQ4X,EAAI,IAClB0H,gBAAiB,KAI7B,EACAm1C,sBACuC,KAA/B3zD,KAAKq6D,uBAIT,yBAA4Br6D,KAAKs6D,eAAgBt6D,KAAKq6D,uBACtDr6D,KAAKozD,mBAAoB,GAJrB5vC,MAAM,oEAMd,EACApL,eACI,gBAAmBpY,KAAK4jD,QAAQxO,aACpC,EACAE,gBACI,kBACJ,EACAI,qBACI,uBACJ,EACA2a,uBACI,uBACA,IAAIpyD,EAAQ+B,KACZ,2BAA6B,SAAUs7D,GAEnC,GADAjmD,QAAQC,IAAI,YAAagmD,GACrBr9D,EAAM2lD,QAAQ5K,MAAM1iC,OAASglD,EAC7Br9D,EAAM2lD,QAAQ5K,MAAQ/6C,EAAM2lD,QAAQ5K,MAAMp2B,MAAM,EAAG04C,QAGnD,IAAK,IAAIxkD,EAAI7Y,EAAM2lD,QAAQ5K,MAAM1iC,OAAQQ,EAAIwkD,EAAWxkD,IACpD7Y,EAAM2lD,QAAQ5K,MAAMzzC,KAAK,CACrBK,GAAIkR,EAAI,EACR5X,KAAM,QAAQ4X,EAAI,IAClB0H,gBAAiB,KAKjC,IACAxe,KAAKmzD,cAAe,CACxB,EACAzb,gBACI,kBACJ,EACAI,sBACI,yBACA93C,KAAKmzD,cAAe,CACxB,EACAE,eACI,uBACA,6BACArzD,KAAKmzD,cAAe,EACpBnzD,KAAKmyD,aAAenyD,KAAK4jD,QAAQ5K,MAAM1iC,OAAS,EAAItW,KAAK4jD,QAAQ5K,MAAM,QAAK34B,CAChF,EACAqzC,oBACI,uBACA1zD,KAAKozD,mBAAoB,CAC7B,EACAvC,mBAAmBxwD,GACf,IAAI,KAAEkC,EAAI,SAAE62D,EAAQ,MAAEnI,GAAU5wD,EAC5B+4D,EAAShqC,OAAO9Y,OAAS,EACzB/T,EAAK0uD,GAASmI,EAEd/4D,EAAMM,gBACd,EACA46D,QAAO,UAAEj0C,IACLtnB,KAAKw7D,MAAMl7D,OAAOf,MAAM+nB,UAAYA,CACxC,EACA2qC,QAAQvyC,GACJrK,QAAQC,IAAI,WACZoK,EAAKq4C,MAAQr4C,EAAKq4C,MAAM3oC,OACpBpvB,KAAK2xD,OAAO/4C,QAAO4U,GAAKA,EAAEtuB,MAAQwgB,EAAKq4C,QAAOzhD,OAAS,EACvDoJ,EAAK44C,aAAet4D,KAAK2xD,OAAO/4C,QAAO4U,GAAKA,EAAEtuB,MAAQwgB,EAAKq4C,QAAO,GAAGO,cAGrE54C,EAAK44C,aAAe,eAAet4D,KAAK2xD,OAAOr7C,OAAS,IACxDtW,KAAK2xD,OAAOpsD,KACR,CACIrG,KAAMwgB,EAAKq4C,MACXO,aAAc,eAAet4D,KAAK2xD,OAAOr7C,OAAS,OAI9DoJ,EAAK9Z,GAAK,IAAiC,GAA7B5F,KAAK4jD,QAAQnX,MAAMn2B,OAAc,EAAI3D,KAAKi6B,OAAO5sC,KAAK4jD,QAAQnX,MAAMhkC,KAAI+kB,GAAKhB,SAASgB,EAAE5nB,QAAS,IAC/G5F,KAAK4jD,QAAQnX,MAAMlnC,KAAKma,GACxBrK,QAAQC,IAAItV,KAAK4jD,QAAQnX,OACzBzsC,KAAK6zD,YAAY7zD,KAAKmyD,aAC1B,EACAH,SAASvlB,GACLzsC,KAAK4jD,QAAQnX,MAAQA,EACrBzsC,KAAK6zD,YAAY7zD,KAAKmyD,aAC1B,EACAO,gBAAgB3uC,GACZ/jB,KAAKmyD,aAAepuC,CACxB,EACAquC,mBACI,IAAI5G,EAAOjtD,SAASC,cAAc,KAClCgtD,EAAKlrD,OAAS,SACe,gBAAzBN,KAAK85D,iBACLtO,EAAK1W,KAAO,0DAGZ0W,EAAK1W,KAAO,yDAEhB0W,EAAKkM,QACLlM,EAAK5tD,QACT,EACAy0D,WAAW4E,GACPj3D,KAAK41C,KAAOqhB,EAAM,GAClBj3D,KAAKsyD,SAAW2E,EAAM,GAAG/3D,IAC7B,EACAoxD,eAAe2G,GACX,IAAIphB,EAAY71C,KAAK4jD,QAAQxO,aAC7B,IAAIn3C,EAAQ+B,KACZ,mBAAsBi3D,EAAM,GAAIphB,GAAW,SAAU4lB,GAC7CA,IACApmD,QAAQC,IAAI,YACZD,QAAQC,IAAImmD,GACZx9D,EAAMk1D,cAAe,EAErBl1D,EAAM2lD,QAAQ5K,MAAQ,GACtB/6C,EAAM2lD,QAAQ5K,MAAMzzC,KAAK,CACrBK,GAAI,EACJ1G,KAAM,SACNsf,gBAAiB,MAK7B,GAEJ,EACAiyC,eAAewG,GAEX,IAAIphB,EAAY71C,KAAK4jD,QAAQxO,aAC7B,IAAIn3C,EAAQ+B,KACZ/B,EAAMs8D,SAAW,IAAIt8D,EAAM2lD,QAAQ5K,OACnC/6C,EAAM2lD,QAAQ5K,MAAQ,GACtB,mBAAsBie,EAAM,GAAIphB,GAAW,SAAUylB,EAAWI,EAAgBD,GAC5E,GAAIA,EAAU,CACVpmD,QAAQC,IAAI,YAAagmD,GACzB,IAAK,IAAIxkD,EAAI7Y,EAAM2lD,QAAQ5K,MAAM1iC,OAAQQ,EAAIwkD,EAAWxkD,IACpD7Y,EAAM2lD,QAAQ5K,MAAMzzC,KAAK,CACrBK,GAAIkR,EAAI,EACR5X,KAAM,QAAQ4X,EAAI,IAClB0H,gBAAiB,MAIzBvgB,EAAMs1D,2BAA6BmI,EAInCz9D,EAAMk1D,cAAe,CACzB,CACJ,GAEJ,EACAM,sBACIp+C,QAAQC,IAAI,uBACZD,QAAQC,IAAItV,KAAKszD,gBACjB,IAAIr1D,EAAQ+B,KACZ,sBAAyBA,KAAKszD,gBAAgB,SAAUvc,GACpD1hC,QAAQC,IAAI,aACZD,QAAQC,IAAIyhC,GACZ,IAAK,IAAIjgC,EAAI,EAAGA,EAAI7Y,EAAM2lD,QAAQ5K,MAAM1iC,OAAQQ,IAAK,CACjD,IAAIrB,EAAQxX,EAAM2lD,QAAQ5K,MAAM2iB,WAAUxnC,GAAKA,EAAEvuB,KAAOkR,EAAI,IAC5D,GAAIrB,GAAS,EAAG,CACZxX,EAAM2lD,QAAQ5K,MAAMvjC,GAAOvW,KAAO63C,EAAUjgC,GAC5C,IAAI8kD,EAAY39D,EAAMs8D,SAAS3hD,QAAOub,GAAKA,EAAEj1B,MAAQjB,EAAM2lD,QAAQ5K,MAAMvjC,GAAOvW,OAChF,GAAI08D,EAAUtlD,OAAS,EAAG,CACtB,MAAMulD,EAAW59D,EAAM2lD,QAAQ5K,MAAMvjC,GAAO7P,GAC5C,IAAIk2D,EAAe79D,EAAM2lD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMg2D,EAAU,GAAGh2D,KACpEk2D,EAAaxlD,OAAS,IACtBwlD,EAAa,GAAGl2D,GAAKi2D,GAEzB59D,EAAM2lD,QAAQ5K,MAAMvjC,GAAO7P,GAAKg2D,EAAU,GAAGh2D,EACjD,CACJ,CAEJ,CACAyP,QAAQC,IAAI,uBACZD,QAAQC,IAAIrX,EAAM2lD,QAAQ5K,MAC9B,GACJ,EACAub,mBACI,IAAIt2D,EAAQ+B,KACR+3D,EAAQ95D,EAAM0zD,OAAO/4C,QAAOwzB,GAAKA,EAAEltC,OAASjB,EAAMi2D,YAClC,GAAhB6D,EAAMzhD,QACNrY,EAAM0zD,OAAOpsD,KAAK,CACdrG,KAAMjB,EAAMi2D,UACZoE,aAAc,eAAer6D,EAAM0zD,OAAOr7C,OAAS,MAG3DyhD,EAAQ95D,EAAM0zD,OAAO1zD,EAAM0zD,OAAOr7C,OAAS,GAC3C,IAAIyN,EAAO/jB,KAAKmyD,aAAavsD,GAC7B3H,EAAM61D,mBAAmBzmC,SAAQ0uC,IAC7B99D,EAAM2lD,QAAQnX,MAAMlnC,KAAK,CACrBZ,MAAO0kD,GAAW9F,cAAcvjD,KAAKm0D,cAAc,IACnDrvD,IAAKukD,GAAW9F,cAAcvjD,KAAKm0D,cAAc,IACjDj1D,KAAM68D,EACNn2D,GAAI,GAAG3H,EAAM2lD,QAAQnX,MAAMn2B,OAAS,IACpCyhD,MAAO95D,EAAMi2D,UACboE,aAAcP,EAAMO,aACpBv0C,KAAMA,EACN80C,QAAS,GACTC,cAAe,GACfC,kBAAmB,IACtB,IAEL96D,EAAM41D,YAAY51D,EAAMk0D,cACxBl0D,EAAM61D,mBAAqB,GAC3B71D,EAAM21D,WAAY,CACtB,EACArB,wBAAwBlyD,GACpB,IAAIpC,EAAQ+B,KACR/B,EAAM2lD,QAAQnX,MAAMn2B,OAAS,EAC7BtW,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS,gDACT/jD,KAAM,oBACNgkD,OAAQ,KACJ,IAAIgT,EAAW,GACf/9D,EAAM2lD,QAAQnX,MAAMpf,SAAQ3N,IACpBA,EAAKw5C,OACL8C,EAASz2D,KAAKvF,KAAK6F,MACd8xD,OAAO,GAAG33D,KAAK+F,sBAAsB2Z,EAAKw5C,QAC1C5/C,MAAKC,QAEL4D,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,KAE1B4+C,EAASz2D,KAAKvF,KAAK6F,MACd8xD,OAAO,GAAG33D,KAAK+F,mCAAmC9H,EAAM2lD,QAAQh+C,aAAa8Z,EAAK9Z,MAClF0T,MAAKC,QAEL4D,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,KAE9B,IAEJ6+C,QAAQC,IAAIF,GAAU1iD,MAAK,WACvBrb,EAAM2lD,QAAQnX,MAAQ,GACtBxuC,EAAMk+D,gBACV,GAAE,EAENrV,OAAQ,KACJ7oD,EAAMk+D,gBAAgB,IAK9Bl+D,EAAMk+D,gBAEd,EACAA,iBACI9mD,QAAQC,IAAI,UACZ,IAAIrX,EAAQ+B,KAEZ,GADAA,KAAKk6D,UAAY,wBACM,YAAnBj8D,EAAM23C,KAAK10C,KAAoB,CAC/B,IAAIk7D,EAAS,IAAIC,WACjBD,EAAOE,mBAAmBr+D,EAAM23C,MAChCwmB,EAAOG,OAAS,WACZ,IAAIh+C,EAAS69C,EAAO79C,OAAO1Z,WAAW,KAAM,IACxC23D,EAAQj+C,EAAOX,MAAM,MACzBvI,QAAQC,IAAIknD,GACZ,IAAIC,EAAYD,EAAM,GAAG5+C,MAAM,KAAK+9C,WAAUvrB,GAAWA,EAAQ50B,cAAcrI,SAAS,UACpFupD,EAAaF,EAAM,GAAG5+C,MAAM,KAAK+9C,WAAUvrB,GAAWA,EAAQ50B,cAAcrI,SAAS,iBAAmBi9B,EAAQ50B,cAAcrI,SAAS,WACvIwpD,EAAYH,EAAM,GAAG5+C,MAAM,KAAK+9C,WAAUvrB,GAAWA,EAAQ50B,cAAcrI,SAAS,aAAei9B,EAAQ50B,cAAcrI,SAAS,SAClIypD,EAAaJ,EAAM,GAAG5+C,MAAM,KAAK+9C,WAAUvrB,GAAWA,EAAQ50B,cAAcrI,SAAS,UAAYi9B,EAAQ50B,cAAcrI,SAAS,UAChI0pD,EAAWL,EAAM,GAAG5+C,MAAM,KAAK+9C,WAAUvrB,GAAWA,EAAQ50B,cAAcrI,SAAS,QAAUi9B,EAAQ50B,cAAcrI,SAAS,QAChI,IAAK,IAAI2D,EAAI,EAAGA,EAAI0lD,EAAMlmD,OAAQQ,IAAK,CACnC,IAAI2Q,EAAO+0C,EAAM1lD,GACbgmD,EAAQr1C,EAAK7J,MAAM,KACnBm/C,EAAU,GACVC,EAAW,GACf,IAAK,IAAI5sC,EAAI,EAAGA,EAAI0sC,EAAMxmD,OAAQ8Z,IAC9B,GAAgB,MAAZ0sC,EAAM1sC,GACN2sC,EAAQx3D,KAAK,SAEZ,GAA0B,KAAtBu3D,EAAM1sC,GAAG6sC,OAAO,GAAW,CAGhC,GAFAD,EAASz3D,KAAKu3D,EAAM1sC,IACpBA,IACIA,EAAI0sC,EAAMxmD,OAAS,EAAG,MAC1B,MAA+C,KAAxCwmD,EAAM1sC,GAAG6sC,OAAOH,EAAM1sC,GAAG9Z,OAAS,GAGrC,GAFA0mD,EAASz3D,KAAKu3D,EAAM1sC,IACpBA,IACIA,EAAI0sC,EAAMxmD,OAAS,EAAG,MAE9B0mD,EAASz3D,KAAKu3D,EAAM1sC,IACpB2sC,EAAQx3D,KAAKy3D,EAASljD,KAAK,KAAKihC,UAAU,EAAGiiB,EAASljD,KAAK,KAAKxD,OAAS,IACzE0mD,EAAW,EACf,MAEID,EAAQx3D,KAAKu3D,EAAM1sC,IAG3B,GAAiD,GAA7C2sC,EAAQnkD,QAAOw3B,GAAWA,IAAS95B,OAAa,SACpD,GAAiE,MAA7D+yC,GAAW9F,cAAc/jC,KAAK/B,MAAMs/C,EAAQH,KAAuB,CACnE/9D,OAAO2kB,MAAM,0CAA0Cu5C,EAAQH,MAC/D,KACJ,CACA,GAA+D,MAA3DvT,GAAW9F,cAAc/jC,KAAK/B,MAAMs/C,EAAQF,KAAqB,CACjEh+D,OAAO2kB,MAAM,0CAA0Cu5C,EAAQF,MAC/D,KACJ,CACuE,GAAnE5+D,EAAM0zD,OAAO/4C,QAAOwzB,GAAKA,EAAEltC,OAAS69D,EAAQL,KAAapmD,QACzDrY,EAAM0zD,OAAOpsD,KAAK,CACdrG,KAA6B,IAAvB69D,EAAQL,GAAoB,IAAMK,EAAQL,GAChDpE,aAAc,eAAer6D,EAAM0zD,OAAOr7C,OAAS,MAM3D,IAAIyN,EAAO,CAAC,CAAE,GAAM,MACpB,IAAmB,IAAf04C,IACA14C,EAAO9lB,EAAM2lD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEj1B,MAAQ69D,EAAQN,GAAWrtC,SACjD,GAAfrL,EAAKzN,QAGL,OAFAzX,OAAO2kB,MAAM,6CAA6Cu5C,EAAQN,GAAWrtC,eAC7EnxB,EAAM41D,YAAY51D,EAAMk0D,cAIhCl0D,EAAM2lD,QAAQnX,MAAMlnC,KAAK,CACrBZ,MAAO0kD,GAAW9F,cAAc/jC,KAAK/B,MAAMs/C,EAAQH,KACnD93D,IAAKukD,GAAW9F,cAAc/jC,KAAK/B,MAAMs/C,EAAQF,KACjD39D,KAAM69D,EAAQJ,GAAWvtC,OACzBxpB,GAAI,GAAG3H,EAAM2lD,QAAQnX,MAAMn2B,OAAS,IACpCyhD,MAAqC,IAA9BgF,EAAQL,GAAYttC,OAAe,IAAM2tC,EAAQL,GAAYttC,OACpEkpC,aAAcr6D,EAAM0zD,OAAO/4C,QAAOwzB,GAAKA,EAAEltC,QAAiC,IAAvB69D,EAAQL,GAAoB,IAAMK,EAAQL,MAAc,GAAGpE,aAC9Gv0C,KAAMA,EAAK,GAAGne,GACdizD,QAAS,GACTC,cAAe,GACfC,kBAAmB,IAE3B,CAEA96D,EAAMi8D,UAAY,GAClBj8D,EAAM41D,YAAY51D,EAAMk0D,aAC5B,CACJ,CACJ,EACA+K,mCACI,IAAIj/D,EAAQ+B,KAEZ/B,EAAM6zD,kBAAkBzkC,SAAQ+iB,IAC5B,IAAI+sB,EAAY/sB,EAAQlxC,KAGxBjB,EAAM2lD,QAAQnX,MAAMpf,SAAS1vB,KACuC,IAA5DA,EAAGuB,KAAKsc,cAAc2V,QAAQgsC,EAAU3hD,iBACxC7d,EAAGk7D,QAAUsE,EACbx/D,EAAGo7D,kBAAoB,oBAC3B,GACF,IAKN96D,EAAM8zD,WAAW1kC,SAAQ+iB,IACrB,IAAIgtB,EAAahtB,EAAQlxC,KAGzBjB,EAAM2lD,QAAQnX,MAAMpf,SAAS1vB,KACwC,IAA7DA,EAAGuB,KAAKsc,cAAc2V,QAAQisC,EAAW5hD,gBAAkD,KAAzB7d,EAAGo7D,oBACrEp7D,EAAGm7D,cAAgBsE,EACnBz/D,EAAGo7D,kBAAoB,WAC3B,GACF,IAIN96D,EAAM6zD,kBAAkBzkC,SAAQ+iB,IAC5B,IAAI+sB,EAAY/sB,EAAQlxC,KAExB,IAAgC,IAA5Bi+D,EAAUhsC,QAAQ,KAAa,CAC/B,IAAIksC,EAAUF,EAAUv/C,MAAM,KAC9By/C,EAAQhwC,SAAQiwC,IAGZr/D,EAAM2lD,QAAQnX,MAAMpf,SAAS1vB,KACkC,IAAvDA,EAAGuB,KAAKsc,cAAc2V,QAAQmsC,EAAK9hD,gBAAkD,KAAzB7d,EAAGo7D,oBAC/Dp7D,EAAGk7D,QAAUsE,EACbx/D,EAAGo7D,kBAAoB,oBAC3B,GACF,GAGV,IAER,EACAwE,aACI,IAAIt/D,EAAQ+B,KACZ,IAAK,IAAI8W,EAAI,EAAGA,EAAI7Y,EAAM2lD,QAAQnX,MAAMn2B,OAAQQ,IACoC,GAA5E7Y,EAAM0zD,OAAO/4C,QAAOwzB,GAAKA,EAAEltC,OAASjB,EAAM2lD,QAAQnX,MAAM31B,GAAGihD,QAAOzhD,QAClErY,EAAM0zD,OAAOpsD,KAAK,CACdrG,KAAMjB,EAAM2lD,QAAQnX,MAAM31B,GAAGihD,MAC7BO,aAAc,eAAer6D,EAAM0zD,OAAOr7C,OAAS,MAG3DrY,EAAM2lD,QAAQnX,MAAM31B,GAAGwhD,aAAer6D,EAAM0zD,OAAO/4C,QAAOwzB,GAAKA,EAAEltC,OAASjB,EAAM2lD,QAAQnX,MAAM31B,GAAGihD,QAAO,GAAGO,YAEnH,EACAkF,gBACI,IAAIv/D,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,kCACZuT,MAAKC,IACFtb,EAAM+1D,OAASz6C,EAAShX,KACxB,IAAIk7D,EAAU,IAAI,IAAI1wC,IAAI9uB,EAAM+1D,OAAOvrD,KAAIi1D,GAAMA,EAAG3L,aAAY4L,SAChE1/D,EAAM+1D,OAAOzuD,KAAK,CAAErG,KAAM,MAAO6yD,WAAY0L,IAC7Cx/D,EAAM81D,WAAa91D,EAAM+1D,OAAO,GAChC/1D,EAAMi2D,UAAYj2D,EAAM81D,WAAW70D,KACnCc,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,yCACZuT,MAAKC,IACFtb,EAAM6zD,kBAAoBv4C,EAAShX,KACnCtE,EAAM6zD,kBAAkBzkC,SAAQqwC,IAC5BA,EAAG1Z,WAAW32B,SAAQ+e,IAClBA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,IAAI,GACtE,IAELjB,EAAM4H,MACDqN,IAAI,GAAGlT,KAAK+F,uCACZuT,MAAKC,IACFtb,EAAM8zD,WAAax4C,EAAShX,KAC5BtE,EAAM8zD,WAAW1kC,SAAQ0uC,IACrBA,EAAG/X,WAAW32B,SAAQ+e,IAClBA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,IAAI,GACtE,GACJ,GACJ,GACR,GAEjB,EACA0sB,QAAQ43B,GACJ,OAAO6F,GAAWz9B,QAAQ43B,EAC9B,EACAmX,oBACQ36D,KAAK4jD,QAAQnX,MAAMn2B,OAAS,GAC5BtW,KAAK4jD,QAAQ32B,iBAAmBo8B,GAAW9F,cAAc,IAAI/jC,KACzD7M,KAAKyf,OACEpyB,KAAK4jD,QAAQnX,MAAMhkC,KAAI2nC,GACfiZ,GAAWz9B,QAAQwkB,EAAQzrC,YAI9C3E,KAAK4jD,QAAQz2B,eAAiBk8B,GAAW9F,cAAc,IAAI/jC,KACvD7M,KAAKi6B,OACE5sC,KAAK4jD,QAAQnX,MAAMhkC,KAAI2nC,GACfiZ,GAAWz9B,QAAQwkB,EAAQtrC,YAM9C9E,KAAK4jD,QAAQ32B,iBAAmB,KAChCjtB,KAAK4jD,QAAQz2B,eAAiB,KAEtC,EACAylC,YACI5yD,KAAK4zD,WAAY,CACrB,EACAjB,qBAAqBjzC,GACjBrK,QAAQC,IAAIoK,GACZ1f,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE1sB,MAAQA,EAAK9Z,KAAIynB,SAAQ+e,GAAKA,EAAE2rB,MAAQr4C,EAAKq4C,QACnF1iD,QAAQC,IAAItV,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE1sB,MAAQA,EAAK9Z,KACnE,GAEJ4zD,cACIx5D,KAAKw9D,gBACLx9D,KAAKu9D,YACT,EACAx9D,UACIC,KAAK4jD,QAAQia,aAAe79D,KAAK4jD,QAAQka,uBAAuBxnD,OAAS,EACzEtW,KAAKsvD,YAActvD,KAAK+9D,OAAO/O,MAAMM,YAAc9iC,SAASxsB,KAAK+9D,OAAO/O,MAAMM,aAAe,CACjG,GS3sCJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UCNY,OAAoB,UAAhB,eAAW,G,YAKF,c,IAIb,OAEyB,KAFtBrwD,MAAM,cAAcM,MAAA,8CAA+C,+HAEjD,G,IAQT,OAA0B,YAApB,iBAAa,G,IAEjBN,MAAM,oBAAoBM,MAAA,uC,IAC5B,OAA0B,KAAvBN,MAAM,gBAAc,S,YAQN,wB,UA4BLA,MAAM,gC,UACAA,MAAM,e,uBAqDP,wB,IAsCxBA,MAAM,iB,IACFA,MAAM,gB,IAQVA,MAAM,Y,IAEP,OAAwG,KAArGM,MAAA,oBAAsB,E,QAAC,oBAAe,OAA6C,KAA1CA,MAAA,mBAAsB,qB,QAAoB,oB,OAOhFN,MAAM,uBAAuBM,MAAA,+B,IACxBwrD,IAAI,iBAAiBxrD,MAAA,wB,IAG3BA,MAAA,6C,IAKCN,MAAM,uBAAuBM,MAAA,uB,IAE/B,OAA4E,SAArEwrD,IAAI,cAAcxrD,MAAA,wBAA2B,oBAAgB,G,IAEnEA,MAAA,6C,kVAxLjB,QAKU,GALOqC,OAAQ,EAAAoF,U,iCAAA,EAAS,aAAG,aAAY,EAAA/E,UAAY,YAAW,EAAAgF,cAAgB,eAAc,EAAAC,SACjGpH,OAAQ,EAAAA,OAASD,MAAO,EAAAA,MAAQD,MAAO,EAAAA,MAAQD,OAAQ,EAAAA,OAAS,mBAAkB,EAAAwH,U,eAC1D,EAAO,Q,MAArB,U,aACP,IAAoB,CAApB,Y,kHAIoB,EAAAH,W,4BAA5B,QAwJO,G,MAxJD/H,MAAM,U,CACGiuC,OAAK,SAAC,IAEb,C,IAAA,QAC4E,GADpEloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,eAAE,EAAAiwD,SAAS,aAAW,UAClE,MAKOvE,SAAO,SAEd,IAmIU,EAnIV,QAmIU,GAnIOqE,YAAa,EAAAA,Y,sCAAA,EAAW,gB,mBACrC,IA4FW,EA5FX,QA4FW,QA3FItnD,QAAM,SACb,IAA0B,CAA1B,M,kBAEJ,IAIO,EAJP,OAIO,OAJP,GAIO,CAHH,IACA,QACY,G,WADQ,EAAAg2D,c,qCAAA,EAAa,iBAAExK,YAAY,SAASj0D,MAAA,gB,0BAG5D,QAkFY,GAjFP4D,MAAO,EAAAsjD,SAAS7tC,QAAOkvC,GAAsB,IAAjB,EAAAkW,eAAuBlW,EAAE4S,2BAA2Bl/C,cAAcrI,SAAS,EAAA6qD,cAAcxiD,iBACtHvc,MAAM,iBAAkB0xD,YAAY,EAAMG,aAAa,QAAQC,UAAU,aACxEC,WAAY,G,CACFiN,OAAK,SAAC,IAEjB,C,wBACA,IACS,EADT,QACS,GADDhN,MAAM,6BAA6BjpD,OAAO,OAAOzI,MAAA,oBAAuB2xD,UAAU,KAE1F,QAMS,GANDD,MAAM,WAAWjpD,OAAO,UAAUzI,MAAA,sB,CAC3BwD,MAAI,SAAEs1D,GAAS,EACtB,QAEW,G,WAFQA,EAAU91D,KAAK27D,gB,yBAAf7F,EAAU91D,KAAoB,kBAAG6uD,QAASiH,EAAU91D,KAAK47D,SACxE7M,YAAY,UAAU/xD,MAAA,gC,iEAIlC,QAES,GAFD0xD,MAAM,gCAAgCjpD,OAAO,QAAQzI,MAAA,oBACxD2xD,UAAU,KAEf,QAES,GAFDD,MAAM,yCAAyCjpD,OAAO,kBAC1DzI,MAAA,oBAAuB2xD,UAAU,KAErC,QAKS,GALDD,MAAM,qCAAqCjpD,OAAO,gBAAgBzI,MAAA,oBACrE2xD,UAAU,G,CACAnuD,MAAI,SAAEs1D,GAAS,EACtB,OAAqF,sBAA3E,EAAA9U,cAAc8U,EAAU91D,KAAK27D,gBAAgBta,QAAQE,aAAU,M,OAGjF,QAOS,GAPDmN,MAAM,oCAAoCjpD,OAAO,YAAYzI,MAAA,qBAChE2xD,UAAU,G,CACAnuD,MAAI,SAAEs1D,GAAS,CACbA,EAAU91D,KAAK27D,gBAAgBta,QAAiB,Y,WAAzD,QAC6C,IAD7C,O,WAEA,QAAkC,IAAlC,Q,OAGR,QAsBS,GAtBD57C,OAAO,GAAGzI,MAAA,sB,CAEHwD,MAAI,SAAEs1D,GAAS,CAEZA,EAAU91D,KAAK27D,gBAAgBta,QAAc,Q,qBADvD,QAIM,WAFF,QAC0C,GADlC5+C,KAAK,aAAa/F,MAAM,oDAC5B0H,SAAA,GAAS,aAAW,sB,iBAHC0xD,EAAU91D,KAAK27D,gBAAgBta,QAAQwa,cAUrD/F,EAAU91D,KAAK27D,gBAAgBta,QAAQya,gBAAgBlrD,SAAS,EAAApO,QAAQa,KAAOyyD,EAAU91D,KAAK27D,gBAAgBta,QAAQsX,W,qBALrI,QAKkJ,G,MALzIl2D,KAAMqzD,EAAU91D,KAAK27D,gBAAgBta,QAAQmE,gBAC9C,aAAW,uBACf9oD,MAAM,oDACL,SAAK,YAAU,EAAAq/D,YAAYjG,EAAU91D,KAAK27D,gBAAgBta,SAAS,IAAF,c,gCACvD,2B,qBAGf,QAIgD,G,MAJvC5+C,KAAMqzD,EAAU91D,KAAK27D,gBAAgBta,QAAQl9C,QAC9C,aAAW,uBACfzH,MAAM,oDACL,SAAK,YAAU,EAAAq/D,YAAYjG,EAAU91D,KAAK27D,gBAAgBta,SAAS,IAAF,c,gCACvD,6B,OAIvB,QAYS,GAZD57C,OAAO,GAAGzI,MAAA,sB,CACHwD,MAAI,SAAEs1D,GAAS,CASZA,EAAU91D,KAAK27D,gBAAgBta,QAAQ2a,aAAaprD,SAAS,EAAApO,QAAQa,KAAOyyD,EAAU91D,KAAK27D,gBAAgBta,QAAQ4a,cAAcrrD,SAAS,EAAApO,QAAQa,K,qBAR5J,QAQmK,G,MAR3JZ,KAAK,aAAa/F,MAAM,oDACxB,aAAW,sBACd,QAAK,IAAE,EAAAib,SAAU,EAA6C,cAAW,GAAM,EAAU,KAAK,gBAAgB,QAAQ,oCAA0E,iBAAuD,MAAtC,EAAU,KAAK,gBAAgB,QAAO,EAAe,OAAO,EAAU,KAAK,gBAAgB,SAAO,EAA4C,gBAAgB,EAAU,KAAK,gBAAgB,OAAO,G,yBAK3Y,0B,yBAIvB,QASS,GATDlS,OAAO,GAAGzI,MAAA,sB,CACHwD,MAAI,SAAEs1D,GAAS,CAMZ,EAAAtzD,QAAQa,IAAMyyD,EAAU91D,KAAK27D,gBAAgBta,QAAQkX,a,qBAL/D,QAK8E,G,MALrE91D,KAAMqzD,EAAU91D,KAAK27D,gBAAgBta,QAAQoE,SAC9C,aAAW,SACf/oD,MAAM,iDACL,QAAK,IAAE,EAAAw/D,cAAgBpG,EAAU91D,KAAK27D,gBAAgBta,QAAS,EAAA8a,qBAAqB92D,EAAO,G,gCACjF,a,sDAMgC,OAApB,EAAA7C,QAAQuiD,W,WAAnD,QAoCW,G,MApCDt/C,OAAO,qB,mBACb,IAkCY,EAlCZ,QAkCY,GAlCA7E,MAAO,EAAA+hD,iBAAkBjmD,MAAM,iBAAkB0xD,YAAY,EAAMG,aAAa,S,CAC7EmN,OAAK,SAAC,IAEjB,C,wBACA,IACS,EADT,QACS,GADDhN,MAAM,6BAA6BjpD,OAAO,OAAOzI,MAAA,oBAAuB2xD,UAAU,KAE1F,QAMS,GANDD,MAAM,WAAWjpD,OAAO,UAAUzI,MAAA,sB,CAC3BwD,MAAI,SAAEs1D,GAAS,EACtB,QAEW,G,WAFQA,EAAU91D,KAAK27D,gB,yBAAf7F,EAAU91D,KAAoB,kBAAG6uD,QAASiH,EAAU91D,KAAK47D,SACxE7M,YAAY,UAAU/xD,MAAA,gC,iEAIlC,QAES,GAFD0xD,MAAM,gCAAgCjpD,OAAO,QAAQzI,MAAA,oBACxD2xD,UAAU,KAEf,QAES,GAFDD,MAAM,yCAAyCjpD,OAAO,kBAC1DzI,MAAA,oBAAuB2xD,UAAU,KAErC,QAKS,GALDD,MAAM,qCAAqCjpD,OAAO,gBAAgBzI,MAAA,oBACrE2xD,UAAU,G,CACAnuD,MAAI,SAAEs1D,GAAS,EACtB,OAAqF,sBAA3E,EAAA9U,cAAc8U,EAAU91D,KAAK27D,gBAAgBta,QAAQE,aAAU,M,OAGjF,QAQS,GARD97C,OAAO,GAAGzI,MAAA,sB,CACHwD,MAAI,SAAEs1D,GAAS,E,SACtB,QAIyB,GAJhBrzD,KAAMqzD,EAAU91D,KAAK27D,gBAAgBta,QAAQl9C,QAC9C,aAAW,OACfzH,MAAM,oDACL,QAAK,GAAE,EAAAq/D,YAAYjG,EAAU91D,KAAK27D,gBAAgBta,SAAS,I,+BACjD,a,mFAO5Bx7C,QAAM,SACb,IAIM,EAJN,OAIM,MAJN,GAIM,EAHF,OAEM,MAFN,GAEM,EADF,QAAsE,GAA9DvB,MAAM,cAAc7B,KAAK,aAAc,QAAK,eAAE,EAAAoqD,uB,QAKtE,QAOe,QANArG,SAAO,SAAEsP,GAAS,EACzB,OAGM,MAHN,GAGM,EAFF,OAAiE,KAA7Dp5D,OAAK,QAAEo5D,EAAUtP,QAAQ/jD,MAAMzF,MAAA,wB,QACnC,Q,OAIZ,QA0BS,GA1BDyI,OAAO,UAAkBC,QAAS,EAAAiS,Q,kCAAA,EAAO,WAAG/R,OAAO,G,mBACvD,IAwBU,EAxBV,QAwBU,GAxBOmnD,YAAa,EAAAA,Y,sCAAA,EAAW,gB,mBACrC,IAQW,EARX,QAQW,GARDtnD,OAAO,eAAa,C,kBAC1B,IAGO,EAHP,OAGO,OAHP,GAGO,EAFH,OACc,QADd,GAAuD,wBAAoB,QAAG,EAAA22D,gBAAc,MAGhG,OAEM,MAFN,GAEM,EADF,QAA4F,GAApF93D,MAAM,sBAAuB7B,KAAM,EAAA45D,OAAS,QAAK,eAAE,EAAAC,kBAAiB,K,6BAGpF,QAQW,GARD72D,OAAO,eAAa,C,kBAC1B,IAGO,EAHP,OAGO,OAHP,GAGO,EAFH,QAAoF,GAAzEpC,GAAG,cAAc1E,KAAK,O,WAAgB,EAAA49D,Y,qCAAA,EAAW,eAAEv/D,MAAA,iB,uBAC9D,MAEJ,OAEM,MAFN,GAEM,EADF,QAA6F,GAArFsH,MAAM,sBAAuB7B,KAAM,EAAA45D,OAAS,QAAK,eAAE,EAAAC,kBAAiB,K,mFAoBhG,QACI3/D,KAAM,WACNjB,MAAO,CACHwoD,SAAUznD,OACVkmD,iBAAkBlmD,QAGtBqD,WAAY,CACR6kD,QAAO,GAGXyS,QAEA,EACAp3D,OACI,MAAO,CAEHyE,WAAW,EACXE,UAAU,EACVjF,WAAW,EACX0kD,SAAS,EACThnD,OAAQ,OACRC,MAAO,UACPuH,QAAS,UACTrH,OAAQ,IACRD,MAAO,IAEP4+D,cAAe,KACfvkD,SAAS,EACT4kD,YAAa,GACbH,eAAgB,GAChBC,OAAQ,aACRZ,cAAe,GAEvB,EACA56D,SAAU,CACN2B,UACI,OAAO/E,KAAKyF,OAAOC,QAAQS,WAC/B,GAEJ/F,QAAS,CACLovD,QACIxvD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACAiH,WAAWxL,EAASwD,GAChB,iBACApnD,KAAK4C,MAAM,aAAcghD,EAC7B,EACA0a,YAAY1a,EAASwD,GACjB,IAAInpD,EAAQ+B,KACZ4jD,EAAQl9C,QAAU,wBAClBk9C,EAAQmE,gBAAkB,wBAC1BX,EAAWxD,EAAQya,gBAAgBlrD,SAASnT,KAAKyF,OAAOC,QAAQS,YAAYP,KAAOwhD,EAC/EnpD,EAAMwH,OAAOC,QAAQC,gBAAgBC,IACrC3H,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,+BAA+B9H,EAAMwH,OAAOC,QAAQC,eAAeC,MAE1F3H,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,yBAAyB69C,EAAQh+C,aAAawhD,EAAW,EAAInpD,EAAMwH,OAAOC,QAAQS,YAAYP,MAC3G0T,MAAKC,IAGmC,IAAjCA,EAAShX,KAAK44D,eACd,sBAAwB,GAExB,sBAAwB,GAE5B,sBAAyBvX,EAAQh+C,IACjC2T,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/CgX,EAAShX,KAAKyhD,WAAW32B,SAAQ+e,IAC7BA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAE2yB,YAAc3yB,EAAE2yB,SAAS,IAEjFxlD,EAAShX,KAAKyhD,WAAazqC,EAAShX,KAAKyhD,WAAWprC,QAAOwzB,GACvD7yB,EAAShX,KAAKkqC,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMwmC,EAAE1sB,MAAQ8N,EAAEuqC,OAAS3rB,EAAE2rB,OAASvqC,EAAEzJ,MAAQqoB,EAAEroB,OAAMzN,OAAS,IAEvGiD,EAAShX,KAAK6kD,SAAWA,GAAY7tC,EAAShX,KAAK24D,UACnDj9D,EAAMwH,OAAOO,SAAS,oBAAqB,CAAE49C,QAASrqC,EAAShX,OAC/DtE,EAAMwH,OAAO4gD,OAAO,eAAgB,CAAEljD,MAAOygD,EAAQh+C,KACrDg+C,EAAQl9C,QAAU,oBAClBk9C,EAAQmE,gBAAkB,YAC1B9pD,EAAMopB,QACN,oBAAuB9N,EAAShX,MAGhC8S,QAAQC,IAAI,mBACZD,QAAQC,IAAIsuC,EAAQh+C,IACpByP,QAAQC,IAAI,WACZD,QAAQC,IAAIsuC,GACZvuC,QAAQC,IAAI,iBACZD,QAAQC,IAAIiE,EAAShX,KAAK,IAI7B4a,OAAMC,IAAWwmC,EAAQl9C,QAAU,oBAAqBk9C,EAAQmE,gBAAkB,WAAW,IAElG/nD,KAAKqnB,OACT,EACAA,QACI,IAAKrnB,KAAKyF,OAAOC,QAAQC,gBAAgB6X,aAA8B,YAAdxd,KAAKwvD,QAC9DxvD,KAAKgH,WAAY,EACjB,IAAI/I,EAAQ+B,KAEZ,QAAW/B,EAAMwH,OAAOC,QAAQC,gBAChC,IAAI2iD,EAAQ,0BAA6BrqD,EAAMwH,OAAOC,QAAQC,gBAC9D,IAAI4iD,EAAUC,aAAY,KAEtBnzC,QAAQC,IAAI,uBACZgzC,EAAQ,0BAA6BrqD,EAAMwH,OAAOC,QAAQC,gBAC7C,GAAT2iD,IACAG,cAAcF,GACdvoD,KAAKgH,WAAY,EACjB/I,EAAMuxD,QACV,GACD,KAGH,OADA3sD,YAAW,KAAQ4lD,cAAcF,GAAUvoD,KAAKgH,WAAY,CAAK,GAAK,MAC/DuhD,CAGX,EAEAthD,gBACIyhD,eACArzC,QAAQC,IAAI,6BAChB,EAEAupD,iBAAiBG,GACb,IAAI/gE,EAAQ+B,KACZA,KAAK4+D,OAAS,wBACd5+D,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,yBAAyB9H,EAAMwgE,cAAc74D,MACzD0T,MAAKC,IAEF,IAAI0lD,EAAkBhhE,EAAMwgE,cAAc74D,GAC1C2T,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/CgX,EAAShX,KAAKyhD,WAAW32B,SAAQ+e,IAC7BA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAE2yB,YAAc3yB,EAAE2yB,SAAS,IAEjFxlD,EAAShX,KAAKyhD,WAAazqC,EAAShX,KAAKyhD,WAAWprC,QAAOwzB,GACvD7yB,EAAShX,KAAKkqC,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMwmC,EAAE1sB,MAAQ8N,EAAEuqC,OAAS3rB,EAAE2rB,OAASvqC,EAAEzJ,MAAQqoB,EAAEroB,OAAMzN,OAAS,IAEvG,IAAI+4C,EAAa91C,EAAShX,KAC1BtE,EAAM08D,kBAAkBtL,GACxBA,EAAW6L,WAAY,EACvB7L,EAAWyL,YAAc78D,EAAMwH,OAAOC,QAAQS,YAAYP,GAC1DypD,EAAW+O,SAAWngE,EAAMwH,OAAOC,QAAQS,YAAYP,GACvDypD,EAAWkP,aAAe,CAACtgE,EAAMwH,OAAOC,QAAQS,YAAYP,IAC5DypD,EAAW5iB,MAAMpf,SAAQG,IAChBA,EAAE7oB,OAAU6oB,EAAE1oB,MACf0oB,EAAE7oB,MAAQ0kD,GAAW9F,cAAc,IAAI/jC,MACvCgO,EAAE1oB,IAAMukD,GAAW9F,cAAc,IAAI/jC,OAE5B,MAATgO,EAAE1oB,KAAgB0oB,EAAE1oB,MACpB0oB,EAAE1oB,IAAM0oB,EAAE7oB,OAEC,MAAX6oB,EAAE7oB,OAAkB6oB,EAAE7oB,QACtB6oB,EAAE7oB,MAAQ6oB,EAAE1oB,IAChB,IAEJuqD,EAAWzpD,QAAKya,EAChBgvC,EAAW5oD,aAAeu4D,EAAe,GAAG3P,EAAW5oD,aAAamX,MAAM,KAAK,MAAM3f,EAAM0gE,iBAAmB1gE,EAAM6gE,YACpHzP,EAAWrL,WAAa,GACxB3uC,QAAQC,IAAI,cACZD,QAAQC,IAAI+5C,GACZpxD,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,kCAAkC9H,EAAMwgE,cAAc74D,MAAM0T,MAAKC,IAC3E81C,EAAWxuB,YAActnB,EAAShX,KAClC8S,QAAQC,IAAI+5C,GAEZpxD,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,qBAAsBsjD,GAAW1F,WAAW0L,IAC1D/1C,MAAK,SAAUC,GACZ,IAAI2lD,EAAkB3lD,EAAShX,KAAKqD,GACpCypD,EAAWzpD,GAAKs5D,EAChBjhE,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,iCAAkCsjD,GAAW1F,WAAW0L,IACtE/1C,MAAK,SAAUC,GAEZtb,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,+BAA+Bk5D,KAAmBC,KAChE5lD,MAAK,SAAUC,GACZlE,QAAQC,IAAI,0BAA2BiE,GAEvCtb,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,yBAAyBm5D,KACtC5lD,MAAKC,IACmC,IAAjCA,EAAShX,KAAK44D,eACd,sBAAwB,GAExB,sBAAwB,GAE5B,sBAAyB+D,GACzB3lD,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/CgX,EAAShX,KAAKyhD,WAAW32B,SAAQ+e,IAC7BA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAE2yB,YAAc3yB,EAAE2yB,SAAS,IAEjFxlD,EAAShX,KAAKyhD,WAAazqC,EAAShX,KAAKyhD,WAAWprC,QAAOwzB,GACvD7yB,EAAShX,KAAKkqC,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMwmC,EAAE1sB,MAAQ8N,EAAEuqC,OAAS3rB,EAAE2rB,OAASvqC,EAAEzJ,MAAQqoB,EAAEroB,OAAMzN,OAAS,IAEvGiD,EAAShX,KAAK6kD,SAAW7tC,EAAShX,KAAK24D,UACvCj9D,EAAMwH,OAAOO,SAAS,oBAAqB,CAAE49C,QAASrqC,EAAShX,OAC/DtE,EAAMwH,OAAO4gD,OAAO,eAAgB,CAAEljD,MAAO+7D,IAC7C7pD,QAAQC,IAAI,WACZD,QAAQC,IAAIiE,EAAShX,MACrB,oBAAuBgX,EAAShX,MAChCtE,EAAMic,SAAU,EAChBjc,EAAMuxD,OAAO,GAEzB,IACCryC,OAAMC,GAAS/H,QAAQC,IAAI8H,IACpC,IACCD,OAAMC,GAAS/H,QAAQC,IAAI8H,IACpC,IACCD,OAAMC,GAAS/H,QAAQC,IAAI8H,IAAM,IAEzCD,OAAMC,GAAS/H,QAAQC,IAAI8H,IAAM,IAEzCD,OAAMC,IAAW/H,QAAQC,IAAI8H,EAAK,GAC3C,EACA+hD,mBACI,IAAIlhE,EAAQ+B,KACZA,KAAK4+D,OAAS,wBACd5+D,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,yBAAyB9H,EAAMwgE,cAAc74D,MACzD0T,MAAKC,IAEF,IAAI0lD,EAAkBhhE,EAAMwgE,cAAc74D,GAC1C2T,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/CgX,EAAShX,KAAKyhD,WAAW32B,SAAQ+e,IAC7BA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAE2yB,YAAc3yB,EAAE2yB,SAAS,IAEjFxlD,EAAShX,KAAKyhD,WAAazqC,EAAShX,KAAKyhD,WAAWprC,QAAOwzB,GACvD7yB,EAAShX,KAAKkqC,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMwmC,EAAE1sB,MAAQ8N,EAAEuqC,OAAS3rB,EAAE2rB,OAASvqC,EAAEzJ,MAAQqoB,EAAEroB,OAAMzN,OAAS,IAEvG,IAAI+4C,EAAa91C,EAAShX,KAC1BtE,EAAM08D,kBAAkBtL,GACxBA,EAAW6L,WAAY,EACvB7L,EAAWyL,YAAc78D,EAAMwH,OAAOC,QAAQS,YAAYP,GAC1DypD,EAAW5iB,MAAMpf,SAAQG,IAChBA,EAAE7oB,OAAU6oB,EAAE1oB,MACf0oB,EAAE7oB,MAAQ0kD,GAAW9F,cAAc,IAAI/jC,MACvCgO,EAAE1oB,IAAMukD,GAAW9F,cAAc,IAAI/jC,OAE5B,MAATgO,EAAE1oB,KAAgB0oB,EAAE1oB,MACpB0oB,EAAE1oB,IAAM0oB,EAAE7oB,OAEC,MAAX6oB,EAAE7oB,OAAkB6oB,EAAE7oB,QACtB6oB,EAAE7oB,MAAQ6oB,EAAE1oB,IAChB,IAEJuqD,EAAWzpD,QAAKya,EAChBgvC,EAAW5oD,aAAexI,EAAM6gE,YAChCzP,EAAWrL,WAAa,GACxB3uC,QAAQC,IAAI,cACZD,QAAQC,IAAI+5C,GACZpxD,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,kCAAkC9H,EAAMwgE,cAAc74D,MAAM0T,MAAKC,IAC3E81C,EAAWxuB,YAActnB,EAAShX,KAClC8S,QAAQC,IAAI+5C,GAEZpxD,EAAM4H,MACDC,KAAK,mCAAoCujD,GAAW1F,WAAW0L,IAC/D/1C,MAAK,SAAUC,GACZ,IAAI2lD,EAAkB3lD,EAAShX,KAAKqD,GACpCypD,EAAWzpD,GAAKs5D,EAChBjhE,EAAM4H,MACDC,KAAK,+CAAgDujD,GAAW1F,WAAW0L,IAC3E/1C,MAAK,SAAUC,GACZ,0BAA6B,QAAS0lD,EAAiBC,GACvD,0BAA6B,QAASD,EAAiBC,GACvD,0BAA6B,SAAUD,EAAiBC,GACxD,0BAA6B,UAAWD,EAAiBC,GACzD,0BAA6B,WAAYD,EAAiBC,GAC1D,0BAA6B,aAAcD,EAAiBC,GAC5D,0BAA6B,aAAcD,EAAiBC,GAC5D,0BAA6B,eAAgBD,EAAiBC,GAC9D,0BAA6B,aAAcD,EAAiBC,GAC5D,0BAA6B,qBAAsBD,EAAiBC,GACpE,0BAA6B,mBAAoBD,EAAiBC,GAClE,0BAA6B,uBAAwBD,EAAiBC,GACtE,0BAA6B,0BAA2BD,EAAiBC,EAC7E,IACC/hD,OAAMC,GAAS/H,QAAQC,IAAI8H,IACpC,IACCD,OAAMC,GAAS/H,QAAQC,IAAI8H,IAAM,IAEzCD,OAAMC,GAAS/H,QAAQC,IAAI8H,IAAM,IAEzCD,OAAMC,IAAW/H,QAAQC,IAAI8H,EAAK,GAC3C,EACAgiD,oBAC0Bp/D,KAAKy+D,cAAc74D,EAC7C,EACA84D,qBAAqBr+D,GACjB,IAAIpC,EAAQ+B,KACZA,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS,kDACT/jD,KAAM,oBACNq6D,YAAa,kBACbrW,OAAQ,KACJ/qD,EAAMqhE,cAAcrhE,EAAMwgE,cAAc,EAE5C3X,OAAQ,QAIhB,EACAwY,cAAc1b,GACV,IAAI3lD,EAAQ+B,KACZ4jD,EAAQoE,SAAW,wBACnBhoD,KAAK6F,MACA8xD,OAAO,GAAG33D,KAAK+F,yBAAyB69C,EAAQh+C,MAChD0T,MAAKC,IACF,IAAI9D,EAAQxX,EAAMwoD,SAASh+C,KAAIq/C,GAAKA,EAAE4S,6BAA4BvpC,QAAQyyB,EAAQ8W,4BAClF,GAAIjlD,GAAS,EACT,GAAIxX,EAAMwoD,SAAShxC,GAAO0oD,SAAS7nD,OAAS,EAAG,CAC3C,IAAIipD,EAASthE,EAAMwoD,SAAShxC,GAAO0oD,SAAS11D,KAAIq/C,GAAKA,EAAEliD,KAAIurB,QAAQyyB,EAAQh+C,IACvE25D,GAAU,GACVthE,EAAMwoD,SAAShxC,GAAO0oD,SAASt8B,OAAO09B,EAAQ,EAEtD,MAEIthE,EAAMwoD,SAAS5kB,OAAOpsB,EAAO,GAGrCmuC,EAAQoE,SAAW,aAAa,IAEnC7qC,OAAOC,IACJ/H,QAAQC,IAAI8H,GACZwmC,EAAQoE,SAAW,aAAa,GAE5C,EACAzE,cAAcC,GACV,OAAO6F,GAAW9F,cAAcC,EACpC,EACA53B,QAAQ43B,GACJ,OAAO6F,GAAWz9B,QAAQ43B,EAC9B,EACAmX,kBAAkBtL,GAqBd,OApBIA,EAAW5iB,MAAMn2B,OAAS,GAC1B+4C,EAAWpiC,iBAAmBo8B,GAAW9F,cAAc,IAAI/jC,KACvD7M,KAAKyf,OACEi9B,EAAW5iB,MAAMhkC,KAAI2nC,GACbiZ,GAAWz9B,QAAQwkB,EAAQzrC,YAI9C0qD,EAAWliC,eAAiBk8B,GAAW9F,cAAc,IAAI/jC,KACrD7M,KAAKi6B,OACEyiB,EAAW5iB,MAAMhkC,KAAI2nC,GACbiZ,GAAWz9B,QAAQwkB,EAAQtrC,YAM9CuqD,EAAWpiC,iBAAmB,KAC9BoiC,EAAWliC,eAAiB,MAEzBkiC,CACX,GAEJtvD,UACA,GCpjBJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,UZCA,IACIb,KAAM,iBACNmD,WAAY,CACRm9D,SAAQ,GACRC,cAAa,IAEjBl9D,OACI,MAAO,CACHqhD,QAAS,KACTyL,YAAY,EACZ5I,SAAU,GACVvB,iBAAkB,GAE1B,EACA9hD,SAAU,CACN2B,UACI,OAAO/E,KAAKyF,OAAOC,QAAQS,WAC/B,GAEJ/F,QAAS,CACLgvD,WAAWxL,GACPvuC,QAAQC,IAAIsuC,GACPA,GAuBD5jD,KAAK4jD,QAAUA,EACf5jD,KAAKqvD,YAAa,IAvBlBrvD,KAAK4jD,QAAU,CACXn9C,aAAc,GACdipD,UAAW,GACXC,UAAW,GACXC,eAAgB,GAChB3iC,iBAAkB,KAClB4iC,mBAAoB,GACpB1iC,eAAgB,KAChBioB,aAAc,IACd2a,YAAa,GACbE,eAAgB,GAChB4K,eAAgB,GAChBpuB,OAAO,SAAS,IAChBuM,OAAO,SAAS,IAChBgL,YAAY,SAAS,IACrB8Z,wBAAwB,SAAS,IACjCD,cAAc,GAElB79D,KAAKyF,OAAOO,SAAS,oBAAqB,CAAE49C,QAAS5jD,KAAK4jD,UAC1D5jD,KAAKqvD,YAAa,EAM1B,EACAxH,YAAYO,EAAQC,GAChBroD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,6BAA6BqiD,KACzC9uC,MAAKC,IACF8uC,EAAgB9uC,EAAShX,KAAK,IAEjC4a,OAAMC,IAAW/H,QAAQC,IAAI8H,EAAK,GAC3C,EACA6qC,oBAAoBC,EAAUG,GAC1BroD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,+BAA+BmiD,KAC3C5uC,MAAKC,IACF8uC,EAAgB9uC,EAAShX,KAAK,IAEjC4a,OAAMC,IAAW/H,QAAQC,IAAI8H,EAAK,GAC3C,GAEJrd,UACI,IAAI9B,EAAQ+B,KACRslD,EAAOrnD,EAAMwH,OAAOC,QAAQS,YAChClI,EAAM4pD,YAAYvC,EAAK1/C,IAAI,SAAU85D,GACjCA,EAAYryC,SAAQy6B,IAChBA,EAAE4S,2BAA6B5S,EAAErhD,aAAamX,MAAM,KAAK,GACzDkqC,EAAEphD,QAAU,oBACZohD,EAAEC,gBAAkB,YACpBD,EAAEE,SAAW,cACb,IAAI2X,EAAW1hE,EAAMwoD,SAAS7tC,QAAOgnD,GAAMA,EAAGlF,6BAA+B5S,EAAE4S,6BAC/E,GAAIiF,EAASrpD,OAAS,EAClBqpD,EAAS,GAAGxB,SAAS54D,KAAK,CACtBq+C,QAASkE,EACTkD,QAASlD,EAAErhD,aAAamX,MAAM,KAAKtH,OAAS,EAAIwxC,EAAErhD,aAAamX,MAAM,KAAK,GAAK,UAIlF,CACD,IAAIotC,EAAU,CACVpH,QAASkE,EACTkD,QAASlD,EAAErhD,aAAamX,MAAM,KAAKtH,OAAS,EAAIwxC,EAAErhD,aAAamX,MAAM,KAAK,GAAK,KAEnF3f,EAAMwoD,SAASlhD,KAAK,CAChBm1D,2BAA4B5S,EAAE4S,2BAC9ByD,SAAU,CAACnT,GACXkT,gBAAiBlT,EACjBlH,WAAYgE,EAAEhE,YAEtB,KAEJzuC,QAAQC,IAAIrX,EAAMwoD,UAClBxoD,EAAMwH,OAAOO,SAAS,kBAAmB,CACrCygD,SAAUxoD,EAAMwoD,WAEC,OAAjBnB,EAAKgC,UACLrpD,EAAMgqD,oBAAoB3C,EAAK4C,SAASnb,QAAQ,IAAK,QAAQ,SAAU8yB,GACnEA,EAAoBxyC,SAAQy6B,IACxBA,EAAE4S,2BAA6B5S,EAAErhD,aAAamX,MAAM,KAAK,GACzDkqC,EAAEphD,QAAU,oBACZohD,EAAEE,SAAW,cACb,IAAI2X,EAAW1hE,EAAMinD,iBAAiBtsC,QAAOgnD,GAAMA,EAAGlF,6BAA+B5S,EAAE4S,6BACvF,GAAIiF,EAASrpD,OAAS,EAClBqpD,EAAS,GAAGxB,SAAS54D,KAAK,CACtBq+C,QAASkE,EACTkD,QAASlD,EAAErhD,aAAamX,MAAM,KAAKtH,OAAS,EAAIwxC,EAAErhD,aAAamX,MAAM,KAAK,GAAK,UAIlF,CACD,IAAIotC,EAAU,CACVpH,QAASkE,EACTkD,QAASlD,EAAErhD,aAAamX,MAAM,KAAKtH,OAAS,EAAIwxC,EAAErhD,aAAamX,MAAM,KAAK,GAAK,KAEnF3f,EAAMinD,iBAAiB3/C,KAAK,CACxBm1D,2BAA4B5S,EAAE4S,2BAC9ByD,SAAU,CAACnT,GACXkT,gBAAiBlT,EACjBlH,WAAYgE,EAAEhE,YAEtB,KAEJzuC,QAAQC,IAAIrX,EAAMinD,kBAClBjnD,EAAMwH,OAAOO,SAAS,sBAAuB,CACzCk/C,iBAAkBjnD,EAAMinD,kBAEhC,GAER,GACJ,Ga3IJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,6ECNI,QAA8C,GAA9BtB,QAAS,EAAAkc,mBAAiB,mB,CAO9C,QACI5gE,KAAM,cACNmD,WAAY,CACRo9D,cAAa,IAEjBr8D,SAAU,CACN08D,oBAEI,OADAzqD,QAAQC,IAAItV,KAAKyF,OAAOC,QAAQC,gBACzB3F,KAAKyF,OAAOC,QAAQC,cAC/B,ICZR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,yECLyB,sB,IAMR1G,MAAM,gBAAgBM,MAAA,iB,IAClBN,MAAM,gB,IACFA,MAAM,yB,IACFA,MAAM,kB,0BAGK,OACK,SADE8rD,IAAI,WAAWxrD,MAAA,gBAAmB,oBAC5C,K,UAG6DN,MAAM,iB,UAC3EA,MAAM,0B,UAINA,MAAM,yB,IAONA,MAAM,gB,UAsBlBA,MAAM,iB,YACP,OACM,OADDA,MAAM,eAAa,W,IAEnBA,MAAM,e,IAGNA,MAAM,e,2MAzDvB,QA+DO,GA/DDA,MAAM,QAAM,CACHiuC,OAAK,SAAC,IAEb,C,IAAA,QACyD,GADjDloC,KAAK,cAAc,aAAW,QAAQ/F,MAAM,oDAChDM,MAAA,gCAAmC,QAAK,eAAE,EAAAiwD,cAEvCvE,SAAO,SACd,IAyCM,EAzCN,OAyCM,MAzCN,GAyCM,EAxCF,OAuCM,MAvCN,GAuCM,EAtCF,OAOM,MAPN,GAOM,EANF,OAKM,MALN,GAKM,CAHS,EAAArH,QAAQwD,U,4BADnB,QAEW,G,MAFD2E,QAAQ,W,WAAoB,EAAAnI,QAAQia,a,qCAAR,EAAAja,QAAoB,gBAAGmc,QAAQ,G,2BAEzD,OAIT,EAAAnc,QAAQia,cAAgB,EAAAja,QAAQka,uBAAuBxnD,OAAS,I,WAA3E,QA6BM,MA7BN,GA6BM,CA5ByC,EAAAstC,QAAQwD,U,4BAAnD,QAGM,MAHN,GAGM,CAFgB,EAAAxD,QAAQwD,U,4BAA1B,QACiC,G,iBADY,EAAAgT,c,qCAAA,EAAa,iBAAE76D,MAAA,eACxDi0D,YAAY,gB,2BAEsB,EAAA5P,QAAQwD,U,4BAAlD,QAMM,MANN,GAMM,E,SALF,QAIgC,GAJxBpiD,KAAK,aACT/F,MAAM,oDACF,aAAW,cACd,QAAK,gBAAE,EAAA2kD,QAAQka,uBAAuBv4D,KAAK,CAAErG,KAAM,EAAAk7D,cAAex0D,GAAI,EAAAg+C,QAAQka,uBAAuBxnD,OAAS,EAAGsG,UAAW,EAAAgnC,QAAQh+C,KAAO,EAAAw0D,cAAgB,M,qBACjJ,qBAEnB,OAgBM,MAhBN,GAgBM,CAdQ,EAAAxW,QAAQka,uBAAuBxnD,OAAS,I,WADlD,QAcY,G,MAdAnT,MAAO,EAAAygD,QAAQka,uBAEvB7+D,MAAM,uCAAwC0xD,YAAY,EAAMG,aAAa,QAC7EvxD,MAAA,gB,mBACA,IACS,EADT,QACS,GADD0xD,MAAM,OAAOjpD,OAAO,eAAezI,MAAA,sBAEX,EAAAqkD,QAAQwD,U,4BAAxC,QAOS,G,MAPD7nD,MAAA,c,CACOwD,MAAI,SAAEs1D,GAAS,E,SACtB,QAGmE,GAH3DrzD,KAAK,cACL,aAAW,SACf/F,MAAM,oEACL,QAAK,GAAE,EAAA+gE,eAAe3H,EAAU91D,O,+BAAkB,e,yEAS5E6F,QAAM,SACb,IAUM,CAV4B,EAAAw7C,QAAQwD,U,4BAA1C,QAUM,MAVN,GAUM,CATF,IAEA,OAEM,MAFN,GAEM,EADF,QAAwG,GAAhGvgD,MAAM,OAAQ7B,KAAM,EAAA8tD,cAAevzD,MAAA,eAAoB,QAAK,eAAE,EAAAiiD,MAAK,IAAS76C,SAAU,EAAAi4D,Q,+BAElG,OAGM,MAHN,GAGM,EAFF,QACyB,GADjB/3D,MAAM,eAAgB7B,KAAM,EAAAiuD,eAAgB1zD,MAAA,6BAAiC,QAAK,eAAE,EAAAiiD,MAAK,IAC5F76C,SAAU,EAAAi4D,Q,0CAWnC,QACIr8D,OACI,MAAO,CACHqhD,QAAS5jD,KAAK8/D,oBAGdhN,cAAe,aACfG,eAAgB,aAExB,EACA7vD,SAAU,CACV,EACAhD,QAAS,CACLovD,QACIxvD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACA2X,oBACI,OAAO9/D,KAAKyF,OAAOC,QAAQC,cAC/B,EACAq6D,eAAe1/D,GACX,GAAIA,EAAO44D,MAAQ,EAAG,CAClB,IAAIj7D,EAAQ+B,KACZ/B,EAAM4H,MACD8xD,OAAO,GAAG15D,EAAM8H,yBAAyBzF,EAAO44D,QAChD5/C,MAAK,SAAUC,GAChB,IACC4D,OAAMC,GAAS/H,QAAQC,IAAI8H,IACpC,CACApd,KAAK4jD,QAAQka,uBAAyB99D,KAAK4jD,QAAQka,uBAAuBllD,QAAO6f,GAAKA,EAAE7yB,IAAMtF,EAAOsF,IACzG,EACA47C,KAAKgO,GACGA,EACAxvD,KAAKizD,eAAiB,wBAGtBjzD,KAAK8yD,cAAgB,wBAEzB,IAAI70D,EAAQ+B,KACZ/B,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,yBAAyB9H,EAAM2lD,QAAQh+C,KAAM3H,EAAM2lD,SACjEtqC,MAAK,SAAUC,GACZA,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/C8S,QAAQC,IAAI,oBAAqBrX,EAAM2lD,QAAQh+C,IAC/CyP,QAAQC,IAAIiE,EAAShX,MACrBtE,EAAMwH,OAAOO,SAAS,oBAAqB,CAAE49C,QAASrqC,EAAShX,OAC/DtE,EAAM60D,cAAgB,aACtB70D,EAAMg1D,eAAiB,aACnBzD,GACAvxD,EAAMuxD,OAEd,IACCryC,OAAMC,GAAS/H,QAAQC,IAAI8H,IACpC,GAEJrd,UACIC,KAAK4jD,QAAQia,aAAe79D,KAAK4jD,QAAQka,uBAAuBxnD,OAAS,EACzEjB,QAAQC,IAAItV,KAAK4jD,QACrB,GCxHJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,yECRyB,e,IAERrkD,MAAA,6C,YACD,OAGyC,KAHtCN,MAAM,cAAcM,MAAA,8CAA+C,8IAGjC,K,IAMpCN,MAAM,8B,UAMEA,MAAM,iB,IACHA,MAAM,2B,UAGLA,MAAM,gBAAgBM,MAAA,gB,IAClBN,MAAM,oC,YAAmC,OAA+B,aAAxB,oBAAgB,K,IAC7DA,MAAM,yB,IASTA,MAAM,oC,IAMNA,MAAM,oC,YAAmC,OAEb,aAFoB,+DAE5B,K,IAAWA,MAAM,yB,IAerCA,MAAM,oC,IAINA,MAAM,oC,YAAmC,OACpB,aAD2B,0CACnC,K,IAAWA,MAAM,yB,IAO9BA,MAAM,oC,IAINA,MAAM,oC,YAAmC,OACpB,aAD2B,sCACnC,K,IAAWA,MAAM,yB,IAO9BA,MAAM,oC,uBAQf,OAEiD,SAF9C,6IAE0C,K,YAC7C,OAAgF,SAA7E,6EAAyE,K,IAH5E,GAGA,I,IAYUM,MAAA,wB,qBAgBUN,MAAM,gBAAgBM,MAAA,gB,qBA2BtBN,MAAM,gBAAgBM,MAAA,gB,IAyC7BN,MAAM,gBAAgBM,MAAA,gB,UAOXN,MAAM,yB,IAyBjBA,MAAM,gBAAgBM,MAAA,gB,IAChBN,MAAM,wBAAwBM,MAAA,gB,uBAsBjD,OACuD,W,QADpD,eAAU,OAA+B,KAA5BN,MAAM,cAAa,U,QAAS,0G,SAA5C,I,UAOPA,MAAM,iB,YACP,OACM,OADDA,MAAM,eAAa,W,IAEnBA,MAAM,e,IAGNA,MAAM,e,YAQF,oB,IAOJA,MAAM,iB,IACFA,MAAM,oB,IACDA,MAAM,oBAAoBM,MAAA,gB,YAC5B,OAA0B,KAAvBN,MAAM,gBAAc,W,IAK1BA,MAAM,mB,YAOf,OAAY,UAAR,OAAG,K,IAIMA,MAAM,kBAAkBM,MAAA,oE,IAEnBA,MAAA,uC,IAmBjBN,MAAM,iB,IACFA,MAAM,gB,YAOF,uB,YAMb,OAAgG,OAA3FM,MAAA,uBAAwB,iEAA6D,K,YAO7E,wB,IAMRA,MAAA,uB,IACAN,MAAM,iB,IAEEA,MAAM,mB,IACFM,MAAA,iD,IAMSA,MAAA,uC,IAUrBN,MAAM,iB,IACFA,MAAM,gB,UAOlBA,MAAM,Y,YAEc,qC,odAhXzB,QAsQO,GAtQDA,MAAM,QAAM,CACHiuC,OAAK,SAAC,IAEb,C,IAAA,OAOM,MAPN,GAOM,CANF,IAIA,QACmF,GAD3EloC,KAAK,cAAc/F,MAAM,oDAC7B,aAAW,QAAQM,MAAA,gCAAmC,QAAK,eAAE,EAAA0gE,uBAG9DhV,SAAO,SACd,IA0OM,EA1ON,OA0OM,MA1ON,GA0OM,EAzOF,QAGc,GAHDhsD,MAAM,wBAAwBM,MAAA,iB,mBACvC,IACY,EADZ,QACY,GADA2gE,MAAO,EAAAC,SAAUv6D,GAAG,WAAmB,gBAAe,EAAAw6D,a,wCAAA,EAAY,iB,4CAGlF,QAoOc,GApODnhE,MAAM,yBAAyBM,MAAA,iB,mBACxC,IAoEM,CApE2C,MAAhB,EAAAs1D,e,WAAjC,QAoEM,MApEN,GAoEM,EAnEF,OAEgD,KAFhD,IAEgD,QAFT,EAAAwL,eAAenhE,MAAO,OACzD,QAAG,EAAAqkD,cAAc,EAAA8c,eAAe17D,QAAS,OACzC,QAAG,EAAA4+C,cAAc,EAAA8c,eAAev7D,MAAG,GACc,EAAA8+C,QAAQwD,U,4BAA7D,QA+DM,MA/DN,GA+DM,EA9DF,OAGM,MAHN,GAGM,CAHwC,I,SAA+B,OAEiC,IAFjC,GAEiC,W,GAA3F,4FAEnB,QAIsE,GAJ5DnoD,MAAM,mC,WAA4C,EAAAqhE,uB,qCAAA,EAAsB,0BAC7ElP,QAAS,EAAAmP,gBAAkBC,UAAU,EACtChN,YAAY,uDACX,SAAM,eAAE,EAAAiN,aAAa,GAAGC,eAAiB,EAAAJ,wBACzC,OAAI,eAAE,EAAAG,aAAa,GAAGC,eAAiB,EAAAJ,yB,kCAE5C,OAKM,MALN,GAKM,EAJF,QAGuE,GAFlEz5D,MAAiC,oDAA1B,EAAAy5D,wBAA0G,IAA1B,EAAAA,uBAA+B,wCAA0C,qBAAqB,EAAAA,yBACtLt7D,KAAK,eAAgB,QAAO,EAAA27D,qBAAsBphE,MAAA,gBACjDoH,SAAuC,GAA7B,EAAAi6D,mBAAmBtqD,OAAcsC,QAAQ,G,0CAE5D,OAIM,MAJN,GAIM,CAJwC,I,SAEb,OACyE,IADzE,GACyE,W,GAAvF,wFAEnB,QAWW,GAXD3Z,MAAM,mC,WAA4C,EAAA4hE,iB,qCAAA,EAAgB,oBAAGjoD,QAAQ,EAClFw4C,QAAS,EAAA0P,gBAAiBC,iBAAiB,QAAQC,oBAAoB,QACxE1P,YAAY,OAAOkC,YAAY,+CAC/Bj0D,MAAA,iB,CACW64D,QAAM,SAAEC,GAAS,E,qBACxB,QAIY,a,iBADJA,EAAUD,OAAOl5D,MAAI,M,IAFTm5D,EAAUD,OAAOpU,WAAW1tC,OAAS,EAAI+hD,EAAUD,OAAOpU,WAAWid,QAAO,SAAUn/C,EAAGu/B,GAAK,OAAQv/B,EAAEs2B,KAAOt2B,GAAK,KAAOu/B,EAAEjJ,GAAI,IAAKigB,EAAUD,OAAOpU,WAAW1tC,OAAS,EAAI+hD,EAAUD,OAAOpU,WAAW,GAAG5L,IAAM,4B,SAApO,S,kCAMZ,OAGM,MAHN,GAGM,EAFF,QACmF,GAD3EvxC,MAAM,SAAS7B,KAAK,iBAAkB,QAAO,EAAAk8D,gBACjD3hE,MAAA,8BAAkCoH,SAA8B,MAApB,EAAAk6D,kB,kCAEpD,OAGM,MAHN,GAGM,CAHwC,I,SACpB,OACkD,IADlD,GACkD,W,GAAzD,0DAEnB,QAGW,GAHD5hE,MAAM,mC,WAA4C,EAAAkiE,qB,qCAAA,EAAoB,wBAC3E/P,QAAS,EAAAxN,QAAQnX,MAAO6kB,YAAY,cAAckC,YAAY,qBAC/Dj0D,MAAA,gBAAqBqZ,QAAQ,G,kCAEjC,OAGM,MAHN,GAGM,EAFF,QACuF,GAD/E/R,MAAM,SAAS7B,KAAK,iBAAkB,QAAO,EAAAo8D,4BACjD7hE,MAAA,8BAAkCoH,SAAkC,MAAxB,EAAAw6D,sB,kCAEpD,OAGM,MAHN,GAGM,CAHwC,I,SACpB,OAC0C,IAD1C,GAC0C,W,GAAjD,kDAEnB,QAGc,GAHDliE,MAAM,mC,WAA4C,EAAAoiE,uB,qCAAA,EAAsB,0BAChFjQ,QAAS,EAAAxN,QAAQnX,MAAO6kB,YAAY,cAAckC,YAAY,oBAC/Dj0D,MAAA,qCAAsCqZ,QAAQ,G,kCAElD,OAIM,MAJN,GAIM,EAHF,QAE4D,GAFpD/R,MAAM,OAAO7B,KAAK,aAAc,QAAO,EAAAs8D,0BAC3C/hE,MAAA,8BACCoH,SAA2C,GAAjC,EAAA06D,uBAAuB/qD,Q,uDAIvB,MAAhB,EAAAu+C,cAAsD,IAA9B,EAAA0M,mBAAmBjrD,S,WAAtD,QAKM,cACiB,EAAAstC,QAAQwD,W,WAsH/B,QA6BY,G,MA7BOjkD,MAAO,EAAAo+D,mBAAoBC,cAAc,OACvDC,mBAAoB,CAAC,cAAexiE,MAAM,iBAAiB2G,GAAG,kB,mBAC/D,IACS,EADT,QACS,GADDqrD,MAAM,MAAMjpD,OAAO,YAAY05D,OAAA,GAAQxQ,UAAU,KAEzD,QACS,GADDD,MAAM,WAAWjpD,OAAO,WAAWzI,MAAA,eAAoB2xD,UAAU,KAEzE,QAYS,GAZDD,MAAM,aAAajpD,OAAO,cAAczI,MAAA,gBAAqB2xD,UAAU,G,CAChEnuD,MAAI,SAAEs1D,GAAS,EACtB,OAQM,MARN,GAQM,EAPF,OAEc,QAFd,IAEc,QADVA,EAAU91D,KAAKo/D,YAAU,GAEftJ,EAAU91D,KAAKo/D,YAActJ,EAAU91D,KAAKq/D,mB,qBAA1D,QAGgE,G,MAF5D58D,KAAK,eAAe/F,MAAM,wBACzB,QAAK,IAAE,EAAA4iE,kBAAmB,EAAM,EAAAC,kBAAoBzJ,EAAU91D,MAC/DhD,MAAA,gB,yBAA8B,+B,2BAI9C,QACS,GADD0xD,MAAM,YAAYjpD,OAAO,aAAazI,MAAA,gBAAqB2xD,UAAU,KAE7E,QACS,GADDD,MAAM,UAAUjpD,OAAO,WAAWzI,MAAA,gBAAqB2xD,UAAU,KAEzE,QACS,GADDD,MAAM,cAAcjpD,OAAO,uBAAuBzI,MAAA,gBAAqB2xD,UAAU,KAEzF,QACS,GADDD,MAAM,WAAWjpD,OAAO,WAAWzI,MAAA,sBAAyB2xD,UAAU,KAE9E,QACS,GADDlpD,OAAO,GAAGzI,MAAA,oB,gCAjJtB,QAqHY,G,MArH8B4D,MAAO,EAAAo+D,mBAAqBQ,YAAa,EAAAtB,aAC/Ee,cAAc,OAAQC,mBAAoB,CAAC,cAAexiE,MAAM,iBAChE2G,GAAG,iBAAkBo8D,aAAc,EAAAzB,gBAAgBjqD,OAAS,EAAI,YAAc,KAC7E2rD,YAAa,EAAA1B,gBAAgBjqD,OAAS,EAAI,iBAAmB,KAC7D4rD,oBAAqB,EAAA3B,gBAAgBjqD,OAAS,EAAW6rD,kBAAmB,EAAAA,kB,8CAAA,EAAiB,qBACtFC,UAAW,EAAAxB,mB,sCAAA,EAAkB,uB,CAI1ByB,aAAW,SAAEhK,GAAS,EAC7B,OAKO,OALP,IAKO,QAJiC,IAAjCA,EAAU91D,KAAKm+D,e,mDAAsJ,EAAU,KAAK,gBAAc,M,kBAL7M,IAES,CAFK,EAAAH,gBAAgBjqD,OAAS,I,WAAvC,QAES,G,MAFiC26C,MAAM,iBAAiBjpD,OAAO,kBACpEzI,MAAA,0B,eAU0B,IAAhB,EAAAs1D,cAAsB,EAAA0L,gBAAgBjqD,OAAS,I,WAA7D,QAES,G,MAFuDg+C,cAAc,WAC1EgO,YAAY,iB,gBAEhB,QAsBS,GAtBDrR,MAAM,MAAMjpD,OAAO,YAAY05D,OAAA,GAAQxQ,UAAU,G,CAC1CnuD,MAAI,SAAEs1D,GAAS,CACR,EAAAoI,aAAattD,SAASklD,EAAU91D,Q,WAI9C,QAcM,MAdN,GAcM,E,SAVF,QAKe,G,WALQ81D,EAAU91D,KAAK61C,I,yBAAfigB,EAAU91D,KAAQ,MAAG,WAAQ,eAAE,EAAAggE,sBAAsB36D,IACvE,aAAW,eAAE,EAAA46D,sBAAsB56D,IAAU+lD,UAAU,EACxD1uD,MAAM,wBAAwBM,MAAA,+BAC7BiuD,YAAa,EAAAiV,aAAc,aAAW,a,+DAC5B,yE,SAEf,QAGmE,GAH3Dz9D,KAAK,aAAa/F,MAAM,wBAC3B,QAAK,iBAAE,EAAAyjE,mBAAoB,GAAMnjE,MAAA,4CAC9B,aAAW,kD,cACJ,wD,qBAjBnB,QAGc,a,iBADN84D,EAAU91D,KAAK61C,KAAG,M,KADV,EAAAwL,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMyyD,EAAU91D,KAAKwhB,OAAM,GAAG7kB,KAAMm5D,EAAU91D,KAAKw1D,MAAO,EAAAnU,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMyyD,EAAU91D,KAAKmd,OAAM,GAAGxgB,MAAM0Z,QAAO4U,GAAU,IAALA,GAAgB,KAALA,IAAU1T,KAAK,a,OAoBpN,QAKS,GALDm3C,MAAM,WAAWjpD,OAAO,WAAWzI,MAAA,eAAoB2xD,UAAU,G,CAC1DnuD,MAAI,SAAEs1D,GAAS,EACtB,QACuE,G,WADjDA,EAAU91D,KAAKogE,S,yBAAftK,EAAU91D,KAAa,WAAE,aAAW,WAAY6vB,IAAK,EAAIwa,IAAK,IAAM3tC,MAAM,cAC5FM,MAAA,eAAoB,QAAK,GAAE,EAAAqjE,qBAAqBvK,EAAU91D,O,iEAGtE,QAkBS,GAlBD0uD,MAAM,aAAajpD,OAAO,cAAczI,MAAA,gBAAqB2xD,UAAU,G,CAChEnuD,MAAI,SAAEs1D,GAAS,CACTA,EAAU91D,KAAK61C,IAAIjlC,SAAS,S,WAAzC,QACc,oBADsCklD,EAAU91D,KAAKo/D,YAAU,M,WAE7E,QAYM,MAZN,GAYM,E,SAXF,QAKkB,G,WALItJ,EAAU91D,KAAKo/D,W,yBAAftJ,EAAU91D,KAAe,aAAG6vB,IAAKimC,EAAU91D,KAAKsgE,cACjEj2B,IAAKyrB,EAAU91D,KAAKugE,cAAe7jE,MAAM,wBACzC,QAAK,GAAE,EAAA2jE,qBAAqBvK,EAAU91D,MACvChD,MAAA,mCAAqC,aAAW,cAEhDwjE,YAAA,I,uEADW1K,EAAU91D,KAAKq/D,kBAAoB,YAAYvJ,EAAU91D,KAAKq/D,oBAAsB,4BAErFvJ,EAAU91D,KAAKo/D,YAActJ,EAAU91D,KAAKq/D,mB,qBAA1D,QAIoE,G,MAHhE58D,KAAK,eAAe/F,MAAM,wBACzB,QAAK,IAAE,EAAA4iE,kBAAmB,EAAM,EAAAC,kBAAoBzJ,EAAU91D,MAC/D,aAAW,2BACPhD,MAAA,gB,yBAA8B,+B,4BAIlD,QAOS,GAPD0xD,MAAM,YAAYjpD,OAAO,aAAazI,MAAA,gBAAqB2xD,UAAU,G,CAC9DnuD,MAAI,SAAEs1D,GAAS,EACtB,QAGoD,G,WAHjCA,EAAU91D,KAAKspB,U,yBAAfwsC,EAAU91D,KAAc,YAAG6xD,UAAU,EAAMn1D,MAAM,qBAC/D,aAAW,GAAE,EAAA2jE,qBAAqBvK,EAAU91D,MAC5C4yD,QAAS,EAAA6N,aAAa3K,EAAU91D,MAAQ6yD,QAAS,EAAA6N,WAAW5K,EAAU91D,MACvE8xD,WAAW,WAAW,aAAW,c,0FAG7C,QAOS,GAPDpD,MAAM,UAAUjpD,OAAO,WAAWzI,MAAA,gBAAqB2xD,UAAU,G,CAC1DnuD,MAAI,SAAEs1D,GAAS,EACtB,QAGiD,G,WAH9BA,EAAU91D,KAAKupB,Q,yBAAfusC,EAAU91D,KAAY,UAAG6xD,UAAU,EAAMn1D,MAAM,qBAC7D,aAAW,GAAE,EAAA2jE,qBAAqBvK,EAAU91D,MAC5C4yD,QAAS,EAAA6N,aAAa3K,EAAU91D,MAAQ6yD,QAAS,EAAA6N,WAAW5K,EAAU91D,MACvE8xD,WAAW,WAAW,aAAW,Y,0FAG7C,QAOS,GAPDpD,MAAM,cAAcjpD,OAAO,uBAAuBzI,MAAA,gBAAqB2xD,UAAU,G,CAC1EnuD,MAAI,SAAEs1D,GAAS,EACtB,QAGgE,G,WAH1CA,EAAU91D,KAAK2gE,Y,yBAAf7K,EAAU91D,KAAgB,cAAG6vB,IAAKimC,EAAU91D,KAAK4gE,WAClEv2B,IAAK,IAAKw2B,OAAO,IAAInkE,MAAM,cACnB,aAAW,uBACnB,QAAK,GAAE,EAAA2jE,qBAAqBvK,EAAU91D,MAAOwgE,YAAA,I,uEAG1D,QAYS,GAZD9R,MAAM,WAAWjpD,OAAO,WAAWzI,MAAA,sBAA0B2xD,UAAU,G,CAChEnuD,MAAI,SAAEs1D,GAAS,EACtB,OAQM,MARN,GAQM,EAPF,QAE8E,G,WAF3DA,EAAU91D,KAAKsyC,S,yBAAfwjB,EAAU91D,KAAa,WAAG6uD,QAAS,EAAAiS,gBAClD/R,YAAY,QAAQC,YAAY,QAAQtyD,MAAM,wBAC7CqkE,SAAU,EAAAC,eAAelL,GAAY94D,MAAA,gC,kEACA,mBAA5B84D,EAAU91D,KAAKsyC,W,WAA7B,QAEgD,G,MAFY7vC,KAAK,eAC7D/F,MAAM,wBAAyB,QAAK,IAAE,EAAAukE,WAAY,EAAM,EAAAD,eAAelL,GAAqD,iBAAa,GAClH94D,MAAA,gB,kCAC3B,QAA4C,MAA5C,U,OAIZ,QAWS,GAXDyI,OAAO,GAAGzI,MAAA,gB,CACHwD,MAAI,SAAEs1D,GAAS,CACP,EAAAoI,aAAattD,SAASklD,EAAU91D,O,qBAG/C,QAI4C,G,MAJ7ByC,KAAK,aAChB/F,MAAM,qEACL,QAAK,GAAE,EAAAwkE,gBAAgBpL,EAAU91D,MAC9B,aAAW,oBACdoE,SAAiC,KAAvB0xD,EAAU91D,KAAK61C,K,oCAF0B,U,qBALxD,QAEwF,G,MAFlCpzC,KAAK,cACvD/F,MAAM,oEACN,aAAW,SAAU,QAAK,GAAE,EAAAykE,gBAAgBrL,EAAU91D,O,yBAAkB,e,6HAuC7D,MAAhB,EAAAsyD,e,WAAX,QAGM,e,6BAIPzsD,QAAM,SACb,IAUM,CAV4B,EAAAw7C,QAAQwD,U,4BAA1C,QAUM,MAVN,GAUM,CATF,IAEA,OAEM,MAFN,GAEM,EADF,QAAkG,GAA1FvgD,MAAM,OAAQ7B,KAAM,EAAA2+D,QAASpkE,MAAA,eAAoB,QAAK,iBAAE,EAAAiiD,MAAK,IAAS76C,SAAU,EAAAi4D,Q,+BAE5F,OAGM,MAHN,GAGM,EAFF,QACyB,GADjB/3D,MAAM,eAAgB7B,KAAM,EAAA4+D,QAASrkE,MAAA,6BAAiC,QAAK,iBAAE,EAAAiiD,MAAK,IACrF76C,SAAU,EAAAi4D,Q,sDAlQH,EAAAiF,kB,SAuQ5B,QAsDO,GAtDD5kE,MAAM,QAAM,CACHiuC,OAAK,SAAC,IAEb,C,IAAA,QACsG,GAD9FloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,kBAAE,EAAAmjE,mBAAoB,EAAO,EAAAoB,UAAY,GAAI,EAAAC,QAAQ,QAE1F9Y,SAAO,SACd,IAsCc,EAtCd,QAsCc,GAtCDhsD,MAAM,gBAAc,C,kBAC7B,IAcM,EAdN,OAcM,MAdN,GAcM,EAbF,OAMM,MANN,GAMM,EALF,OAIO,OAJP,GAIO,CAHH,IACA,QACY,G,WADQ,EAAA6kE,U,uCAAA,EAAS,aAAEtQ,YAAY,SAAU,QAAO,EAAAuQ,OAAQxkE,MAAA,gB,sCAI5E,OAKM,MALN,GAKM,E,SAJF,QAGS,GAHDyF,KAAK,gBAAgB6B,MAAM,QAAQtH,MAAA,gBACtC,QAAK,kBAAE,EAAAykE,aAAe,GAAI,EAAAC,cAAgB,GAAI,EAAAH,UAAY,GAAI,EAAAC,QAAQ,I,cAC5D,6BAIvB,IACA,QASU,G,WATQ,EAAAC,a,uCAAA,EAAY,gBAAG5S,QAAS,EAAA8S,aAAc1T,SAAS,WAAW5qD,GAAG,UAC1E,SAAQ,EAAAu+D,kB,CACE/L,QAAM,SAAEC,GAAS,E,qBACxB,QAIM,MAJN,GAIM,EAFF,OACa,OADb,IACa,QADqCA,EAAUD,OAAOhgB,KAAG,M,oBADpCigB,EAAUD,OAAOuJ,kB,WAAnD,S,wDAmBTv5D,QAAM,SACb,IAIM,EAJN,OAIM,MAJN,GAIM,EAHF,OAEM,MAFN,GAEM,EADF,QAAwF,GAAhFvB,MAAM,MAAM7B,KAAK,aAAazF,MAAA,gBAAuB,QAAO,EAAA6kE,kB,4CAlDzD,EAAA1B,qBAuDF,EAAgB,mB,WAAzC,QAYO,G,MAZDzjE,MAAM,Q,CACGiuC,OAAK,SAAC,IAEb,C,IAAA,QAC0E,GADlEloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,iBAAE,EAAAsiE,kBAAmB,QAE1D5W,SAAO,SACd,IAAgG,CAAhG,IACA,QAEuB,GAFAjH,WAAY,EAAAud,mBAAmB3oD,QAAOyrD,GAAMA,EAAGzC,mBAAqByC,EAAG1C,aACzF/d,QAAS,EAAAA,QAAUj9C,SAAU,EAAAi9C,QAAQwD,SAAU9gB,KAAK,O,sEAIxC,EAAAg+B,uBAA4C,MAAnB,EAAAC,iBAA2B,EAAAA,gBAAgBC,UAAUluD,OAAS,I,WAAhH,QAkCO,G,MAlCDrX,MAAM,Q,CACGiuC,OAAK,SAAC,IAEb,C,IAAA,QACwG,GADhGloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,kBAAE,EAAA+kE,uBAAwB,EAAO,EAAAC,gBAAkB,IAAI,QAE5FtZ,SAAO,SACd,IAAyG,EAAzG,OAAyG,MAAzG,GAA6B,gDAA4C,QAAG,EAAAsZ,gBAAgBnsB,KAAM,IAAC,IACnG,OAgBM,MAhBN,GAgBM,G,WAfF,QAcW,mBAde,CAAC,IAAK,IAAK,MAApB3iC,IACb,OAYM,MAZN,GAYM,EAXF,OAC6F,MAD7F,IAC6F,QAA7E,KAATA,EAAe,QAAmB,KAATA,EAAe,SAAW,SAAU,sBAAmB,IACvF,QAQU,G,WARQ,EAAAgvD,MAAM,mBAAqBhvD,G,yBAA3B,EAAAgvD,MAAM,mBAAqBhvD,GAAK,EAC7C27C,QAAS,EAAAmT,gBAAgB,WAAa9uD,GACtCivD,aAAc,8D,CACJtM,QAAM,SAAEC,GAAS,E,qBACxB,QAEa,OAFb,GAEa,E,iBADoDA,EAAUD,OAAOhgB,KAAG,M,oBAAtDigB,EAAUD,OAAOuJ,mB,wEAQ7Dv5D,QAAM,SACb,IAKM,EALN,OAKM,MALN,GAKM,EAJF,OAGM,MAHN,GAGM,EAFF,QACuD,GAD/CvB,MAAM,MAAM7B,KAAK,aAAazF,MAAA,gBACjC,QAAK,iBAAE,EAAAolE,sBAAsB,EAAAC,4B,uBAKtB,EAAa,gB,WAAzC,QAQM,MARN,GAQM,EAPF,QAMO,GANDrlE,MAAA,iBAAmB,CACV2tC,OAAK,SAAC,IAEb,C,IAAA,QAC8D,GADtDloC,KAAK,wBAAwB/F,MAAM,oDACvCM,MAAA,gCAAmC,QAAO,EAAAslE,c,iDAI1D,QAA6B,I,sBCtXR,kE,uHADrB,QAoCY,GApCA1hE,MAAO,EAAA6gD,WAAY/kD,MAAM,kB,CACtBg/D,OAAK,SAAC,IAEjB,C,wBACA,IACS,CAD2E,OAAR,EAAA33B,MAAyB,OAAR,EAAAA,O,WAA7F,QACS,G,MADD2qB,MAAM,MAAMjpD,OAAO,YAAY05D,OAAA,GAAOniE,MAAA,0B,eAG5B,OAAR,EAAA+mC,MAAyB,OAAR,EAAAA,O,WAD3B,QAES,G,MAFD2qB,MAAM,oBAAoBjpD,OAAO,sBAAsBzI,MAAA,yB,eAI7C,OAAR,EAAA+mC,MAAyB,OAAR,EAAAA,O,WAD3B,QAES,G,MAFD2qB,MAAM,aAAajpD,OAAO,2BAA2BzI,MAAA,yB,eAI3C,QAAR,EAAA+mC,MAA0B,OAAR,EAAAA,O,WAD5B,QAES,G,MAFD2qB,MAAM,WAAWjpD,OAAO,oCAAoCzI,MAAA,0B,eAIlD,QAAR,EAAA+mC,MAA0B,OAAR,EAAAA,O,WAD5B,QAES,G,MAFD2qB,MAAM,wBAAwBjpD,OAAO,sBAAsBzI,MAAA,yB,eAIjD,QAAR,EAAA+mC,MAA0B,OAAR,EAAAA,O,WAD5B,QAES,G,MAFD2qB,MAAM,iBAAiBjpD,OAAO,2BAA2BzI,MAAA,yB,eAI/C,QAAR,EAAA+mC,MAA0B,OAAR,EAAAA,O,WAD5B,QAES,G,MAFD2qB,MAAM,mBAAmBjpD,OAAO,gBAAgBzI,MAAA,0B,eAItC,QAAR,EAAA+mC,MAA0B,OAAR,EAAAA,O,WAD5B,QAES,G,MAFD2qB,MAAM,kBAAkBjpD,OAAO,sBAAsBzI,MAAA,yB,gBAG7D,QAQS,GARDyI,OAAO,qBAAmB,CACnBjF,MAAI,SAAEs1D,GAAS,EACtB,QAIa,GAJD/7C,OAAO,IAAK1W,GAAE,wBAA0ByyD,EAAU91D,KAAK21C,eAAgBsY,SAAS,WACvF,SAAQ,EAAAsU,uBAAyBrN,OAAQY,EAAU91D,KAAMsE,MAAM,2BAC/DowD,MAAOoB,EAAU91D,KAAKwiE,iBAAmB3N,SAAQ,GAAK,EAAA4N,eAAe,EAAAphB,QAAQuJ,OAAQmK,QAAA,GACrF3wD,SAAU,EAAAi9C,QAAQwD,U,+FAQvC,QACI/kD,WAAY,CACRg3D,WAAU,IAEdn6D,KAAM,uBACNjB,MAAO,CACH+lD,WAAY+Q,MACZnR,QAAS5kD,OACTsnC,KAAMnlC,QAEVf,QAAS,CACL0kE,uBAAuBviE,GACnB,IAAI00D,EAAQ10D,EAAK00D,MACjB,IAAKA,EAAO,OACZ,IAAIgO,EAAY1iE,EAAKk1D,OACjBx5D,EAAQ+B,KACZqV,QAAQC,IAAI/S,GACZ,IAAK,IAAIuU,EAAI,EAAGA,EAAImgD,EAAM3gD,OAAQQ,IAAK,CACnC,IAAI8+B,EAAOqhB,EAAMngD,GACjBzB,QAAQC,IAAIsgC,GACZ,IAAIsvB,EAAkB,CAClB/N,SAAUvhB,EAAK12C,KACf0d,UAAW3e,EAAM2lD,QAAQh+C,GACzBsyC,aAAc+sB,EAAU/sB,aACxBme,SAAU,GAEdhhD,QAAQC,IAAI2vD,GACZA,EAAUF,iBAAiBx/D,KAAK2/D,GAChC,IAAIzvD,EAAQwvD,EAAUF,iBAAiB5zC,QAAQ+zC,GAC/C,IAAIC,EAAW,IAAIC,SACnBD,EAASjsD,OAAO,OAAQ08B,GAExB33C,EAAM4H,MAAM,CACRuT,OAAQ,OACRmD,IAAK,GAAGte,EAAM8H,wBAAwB9H,EAAM2lD,QAAQuJ,WAAWlvD,EAAM2lD,QAAQh+C,YAAYq/D,EAAU/sB,eACnG31C,KAAM4iE,EACNE,iBAAkBC,IAAmBL,EAAUF,iBAAiBtvD,GAAO4gD,SAAW1jD,KAAKyB,MAA6B,IAAvBkxD,EAAcC,OAAeD,EAAcxgD,OAAQzP,QAAQC,IAAI4vD,EAAgB7O,SAAQ,IAEnL/8C,MAAK,SAAUC,GACZlE,QAAQC,IAAIiE,EAAShX,MACrB0iE,EAAUF,iBAAiBtvD,GAAO4gD,SAAW,IAC7Cp4D,EAAM2lD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAEgM,MAAQ6sB,EAAU7sB,KAAOhM,EAAE2yB,YAAckG,EAAUlG,WAAa3yB,EAAEu1B,aAAesD,EAAUtD,aAAYt0C,SAAQ+e,IAC3D,IAAnFA,EAAE24B,iBAAiBnsD,QAAO4sD,GAAKA,EAAErO,WAAa+N,EAAgB/N,WAAU7gD,QACxE81B,EAAE24B,iBAAiBx/D,KAAK2/D,EAC5B,GAGR,IACC/nD,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,CACJ,ICtFR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UFuXA,IACI/a,WAAY,CACRojE,qBAAoB,IAExBljE,OACI,MAAO,CACHqhD,QAAS5jD,KAAK8/D,oBACdK,SAAU,GACVC,aAAc,CAAC,EACfsF,SAAU,KACVnE,mBAAoB,GACpBd,aAAc,GACdkF,yBAA0B,CAAC,EAE3BjD,mBAAmB,EACnBoB,UAAW,GACX8B,KAAM,GACN1B,aAAc,GACd2B,cAAe,GACf7B,aAAc,GACdC,cAAe,GACfxB,aAAc,GACdmC,kBAAkB,EAClBhE,mBAAoB,GAEpB0D,uBAAuB,EACvBC,gBAAiB,KACjBuB,kBAAmB,KACnBC,kBAAmB,KACnBC,kBAAmB,KAEnBnE,kBAAkB,EAClBC,kBAAmB,KAEnBhQ,kBAAmB,GACnBC,WAAY,GACZkU,QAAS,CACL,CAAE/mE,KAAM,aAAcmS,KAAM,aAAciL,OAAQ,SAClD,CAAEpd,KAAM,MAAOmS,KAAM,MAAOiL,OAAQ,SACpC,CAAEpd,KAAM,cAAemS,KAAM,SAAUiL,OAAQ,sBAC/C,CAAEpd,KAAM,WAAYmS,KAAM,MAAOiL,OAAQ,iBACzC,CAAEpd,KAAM,aAAcmS,KAAM,YAAaiL,OAAQ,iBACjD,CAAEpd,KAAM,YAAamS,KAAM,eAAgBiL,OAAQ,QACnD,CAAEpd,KAAM,UAAWmS,KAAM,aAAciL,OAAQ,QAC/C,CAAEpd,KAAM,aAAcmS,KAAM,cAAeiL,OAAQ,YACnD,CAAEpd,KAAM,WAAYmS,KAAM,WAAYiL,OAAQ,aAElD4pD,eAAgB,CACZ,CAAEhnE,KAAM,aACR,CAAEA,KAAM,yBACR,CAAEA,KAAM,oBACR,CAAEA,KAAM,2BACR,CAAEA,KAAM,UACR,CAAEA,KAAM,eACR,CAAEA,KAAM,kBACR,CAAEA,KAAM,wCACR,CAAEA,KAAM,sBACR,CAAEA,KAAM,mBAEZinE,kBAAmB,CACf,CAAEt/D,MAAO,yEAA0E1D,MAAO,GAC1F,CAAE0D,MAAO,gCAAiC1D,MAAO,IAErDkgE,gBAAiB,CACb,CAAEx8D,MAAO,kBAAmB1D,MAAO,mBACnC,CAAE0D,MAAO,iBAAkB1D,MAAO,mBAEtCijE,gBAAiB,KACjBtF,gBAAiB,GACjBuF,WAAY,GACZlU,aAAc,KACdmU,cAAe,KACfzR,aAAc,KACdwL,eAAgB,CAAEnhE,KAAM,GAAIyF,MAAO,GAAIG,IAAK,IAC5C+7D,iBAAkB,KAClB2C,WAAW,EAEX5E,QAAQ,EACR+E,QAAS,aACTC,QAAS,aAETC,eAAe,EAEftD,gBAAiB,CAAC,oDAClBD,uBAAwB,GACxB6B,kBAAmB,KAEnBoE,oBAAqB,GACrBpF,qBAAsB,KAEtBE,uBAAwB,GAExBmF,iBAAkB,GAClBC,OAAO,EAEf,EACArjE,SAAU,CACN4gD,aACI,MAAO,IAAI,IAAIj3B,IAAI,CAAC/sB,KAAK8xD,kBAAkBrpD,KAAIi1D,GAAMA,EAAG1Z,aAAY2Z,KAAK,GAAI39D,KAAK+xD,WAAWtpD,KAAIszD,GAAMA,EAAG/X,aAAY2Z,KAAK,IAAIA,SAASvc,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAIu/B,EAAK,GAAK,GAC1K,GAEJjhD,QAAS,CACL6/D,eACI,IAAIhiE,EAAQ+B,KACP/B,EAAMwoE,MAcPxoE,EAAMuxD,QAbNvxD,EAAM2qD,SAASC,QAAQ,CACnBvoD,OAAQD,MAAMyoD,cACdC,QAAS,+CACT/jD,KAAM,oBACNgkD,OAAQ,KACJ/qD,EAAMuxD,OAAO,EAEjB1I,OAAQ,QAQpB,EACA0I,QAEIn6C,QAAQC,IAAItV,KAAKwmE,kBACjBxmE,KAAK4jD,QAAQI,WAAa,IAAIhkD,KAAKwmE,kBACnC,8BACAxmE,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACA3G,KAAKgO,GACD,IAAIvxD,EAAQ+B,KACZ/B,EAAM2gE,QAAS,EACXpP,EACAvxD,EAAM2lE,QAAU,wBAGhB3lE,EAAM0lE,QAAU,wBAEpB,IAAI+C,EAAmB,GACvB,IAAK,IAAI5vD,EAAI,EAAGA,EAAI7Y,EAAM2lD,QAAQI,WAAW1tC,OAAQQ,IAAK,CACtD,IAAI6vD,EAAK1oE,EAAM2lD,QAAQI,WAAWltC,GAClC,IAAI8vD,EAAYF,EAAiB9tD,QAAOwzB,GACpCA,EAAEroB,MAAQ4iD,EAAG5iD,MAAQqoB,EAAE2rB,OAAS4O,EAAG5O,OAAS3rB,EAAE1sB,MAAQinD,EAAGjnD,MAAQ0sB,EAAEs0B,gBAAkBiG,EAAGjG,gBAAkBt0B,EAAEgM,KAAOuuB,EAAGvuB,KAAOhM,EAAEu1B,YAAcgF,EAAGhF,YAActY,GAAW9F,cAAcnX,EAAEvgB,YAAcw9B,GAAW9F,cAAcojB,EAAG96C,YAAcw9B,GAAW9F,cAAcnX,EAAEtgB,UAAYu9B,GAAW9F,cAAcojB,EAAG76C,UAAYsgB,EAAE82B,aAAeyD,EAAGzD,aAAe92B,EAAEyI,UAAY8xB,EAAG9xB,WAEhW,GAApB+xB,EAAUtwD,OACVswD,EAAU,GAAGjE,UAAY,EAGzB+D,EAAiBnhE,KAAKohE,EAE9B,CACA1oE,EAAM2lD,QAAQI,WAAa0iB,EAC3BzoE,EAAM2lD,QAAQI,WAAW32B,SAAQ+e,KACZ,IAAbA,EAAEy6B,QACFz6B,EAAE2yB,UAAY3yB,EAAEgM,IAAIjlC,SAAS,OAASi5B,EAAEgM,IAAIx6B,MAAM,KAAKgF,MAAM,GAAG9I,KAAK,KAAKsV,OAASgd,EAAEgM,IACrFhM,EAAEwxB,WAAa,GACfxxB,EAAE06B,SAAW16B,EAAEgM,IAAIjlC,SAAS,OAASi5B,EAAEgM,IAAIx6B,MAAM,KAAKgF,MAAM,GAAG9I,KAAK,KAAKsV,OAASgd,EAAEgM,IACpFhM,EAAE26B,eAAiB36B,EAAEu1B,aAGrBv1B,EAAE2yB,UAAY3yB,EAAEgM,IAAIjlC,SAAS,OAASi5B,EAAEgM,IAAIx6B,MAAM,KAAKgF,MAAM,GAAG9I,KAAK,KAAKsV,OAASgd,EAAEgM,IACrFhM,EAAEwxB,WAAaxxB,EAAEgM,IAAIjlC,SAAS,OAASi5B,EAAEgM,IAAIx6B,MAAM,KAAK,GAAGwR,OAAS,GACpEgd,EAAE06B,SAAW,GACb16B,EAAE26B,eAAiB,GAEvB36B,EAAEvgB,UAAYw9B,GAAW9F,cAAcnX,EAAEvgB,WACzCugB,EAAEtgB,QAAUu9B,GAAW9F,cAAcnX,EAAEtgB,QAAQ,IAEnDzW,QAAQC,IAAI,4BACZD,QAAQC,IAAIrX,EAAM2lD,QAAQI,YAC1B/lD,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,mCAAmC9H,EAAM2lD,QAAQh+C,mBAAoB3H,EAAM2lD,QAAQI,YAEjG1qC,MAAK,SAAUC,GACZlE,QAAQC,IAAIiE,GACZA,EAAShX,KAAK8qB,SAAQ+e,IAClBA,EAAEvgB,UAAYw9B,GAAW9F,cAAcnX,EAAEvgB,WACzCugB,EAAEtgB,QAAUu9B,GAAW9F,cAAcnX,EAAEtgB,QAAQ,IAEnD7tB,EAAM2lD,QAAQI,WAAazqC,EAAShX,KACpCtE,EAAMuoE,iBAAmBvoE,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,IAAc,IAAKA,MACzEnuC,EAAMwoE,OAAQ,EACd,6BACAxoE,EAAMwH,OAAOO,SAAS,oBAAqB,CAAE49C,QAAS3lD,EAAM2lD,UACxD4L,GACAvxD,EAAMqH,QAAQC,KAAK,KACnBtH,EAAM2lE,QAAU,eAGhB3lE,EAAM0lE,QAAU,aAChB1lE,EAAM+oE,mBAEV/oE,EAAM2gE,QAAS,CACnB,IACCzhD,OAAMC,IACH/H,QAAQC,IAAI8H,GACRoyC,EACAvxD,EAAM2lE,QAAU,aAGhB3lE,EAAM0lE,QAAU,aAEpB1lE,EAAM2gE,QAAS,CAAK,GAEhC,EACAqI,gBAAgBC,GACZ1jD,MAAM0jD,EACV,EACA3D,eAAe4D,GAOoB,mBAA3BA,EAAS5kE,KAAKsyC,UACS,IAAnB70C,KAAKwjE,YACL,qBAAwB2D,EAAS5kE,MAGjCvC,KAAKwjE,WAAY,GAIrB,wBAA2B2D,EAAS5kE,KAAK21C,aAGjD,EACA2sB,eACI7kE,KAAK6jE,eAAgB,EACrB,uBACJ,EACA/D,oBACI,OAAO9/D,KAAKyF,OAAOC,QAAQC,cAC/B,EACAyhE,iBACI,IAAInpE,EAAQ+B,KACZ/B,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,kBACbuT,MAAK,SAAUC,GACZtb,EAAM+lD,WAAazqC,EAAShX,KAC5B,IAAI25D,EAAM,GACV3iD,EAAShX,KAAKqW,QAAOwzB,IAAMA,EAAE3a,QAAOpE,SAAQ+e,IACxCA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,KAC/DjB,EAAM2nE,KAAKrgE,KAAK6mC,GAChB8vB,EAAI32D,KAAK6mC,EAAE,IAEfnuC,EAAM2nE,KAAKxkB,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEs2B,IAAMiJ,EAAEjJ,IAAO,GAAK,IACjDn6C,EAAM2nE,KAAKv4C,SAAQ+e,IACfA,EAAEo4B,UAAYp4B,EAAEo4B,UAAU5rD,QAAO+e,GAAQA,IAAMlvB,KAAI7C,GAAMs2D,EAAItjD,QAAOwzB,GAAKA,EAAExmC,IAAMA,IAAI,KAAIw7C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEs2B,IAAMiJ,EAAEjJ,IAAO,GAAK,IAC/HhM,EAAEi7B,UAAYj7B,EAAEi7B,UAAUzuD,QAAO+e,GAAQA,IAAMlvB,KAAI7C,GAAMs2D,EAAItjD,QAAOwzB,GAAKA,EAAExmC,IAAMA,IAAI,KAAIw7C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEs2B,IAAMiJ,EAAEjJ,IAAO,GAAK,IAC/HhM,EAAEk7B,UAAYl7B,EAAEk7B,UAAU1uD,QAAO+e,GAAQA,IAAMlvB,KAAI7C,GAAMs2D,EAAItjD,QAAOwzB,GAAKA,EAAExmC,IAAMA,IAAI,KAAIw7C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEs2B,IAAMiJ,EAAEjJ,IAAO,GAAK,GAAE,IAErIn6C,EAAMimE,aAAejmE,EAAM2nE,KAAKhtD,QAAOwzB,IAAMA,EAAEm7B,SAAWn7B,EAAE3a,QAC5DxzB,EAAM4nE,cAAgB5nE,EAAM2nE,KAAKhtD,QAAOwzB,GAAKA,EAAEm7B,SAC/CtpE,EAAMwkE,aAAexkE,EAAM2nE,KAAKn9D,KAAI2jC,GAAKA,EAAEgM,KAC/C,IACCj7B,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EACAoqD,eACI,IAAIvpE,EAAQ+B,KACZ/B,EAAM2lD,QAAQ5K,MAAMoI,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAM,KAAE0vC,cAAcnQ,EAAEniD,UAAMmhB,EAAW,CACzEoxC,SAAS,EACTC,YAAa,WACbrkC,SAAQtJ,IACR,IAAI0jD,EAAY,CACZvvC,IAAKnU,EAAKne,GACViB,MAAOkd,EAAK7kB,KACZ0G,GAAIme,EAAKne,GACTZ,KAAM,GACN0iE,QAAUrnE,IAENpC,EAAMk0D,aAAepuC,EACrB9lB,EAAMqoE,cAAgB,KACtBroE,EAAM42D,aAAe,KACrB52D,EAAM0pE,OAAOtnE,EAAMunE,cAActnE,QACjCrC,EAAMwiE,aAAe,GACrBxiE,EAAM+oE,iBAAiB,EAE3Ba,MAAO,IAEX5pE,EAAMkiE,SAAS56D,KAAKkiE,EAAU,IAGlCxpE,EAAM2lD,QAAQnX,MAAM2U,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEnd,MAAQmd,EAAElc,GAAKy7C,EAAE18C,MAAQ08C,EAAEz7C,GAAM,GAAK,IAAGynB,SAAQ3N,IACnF,IAAIqE,EAAO9lB,EAAMkiE,SAASvnD,QAAOmL,GAAQA,EAAKne,IAAM8Z,EAAKqE,OAAMzN,OAAS,EAAIrY,EAAMkiE,SAASvnD,QAAOmL,GAAQA,EAAKne,IAAM8Z,EAAKqE,OAAM,GAAK,KACrI,IAAKA,EAAM,OACX,IAAI4tC,EAAS5tC,EAAK8jD,MAAMjvD,QAAOm/C,GAASA,EAAMlxD,OAAS6Y,EAAKq4C,QACxDpG,EAAOr7C,OAAS,EAChBq7C,EAAO,GAAGkW,MAAMtiE,KAAK,CACjB2yB,IAAK,GAAGnU,EAAKne,MAAM8Z,EAAKq4C,SAASr4C,EAAK9Z,KACtCiB,MAAO6Y,EAAKxgB,KACZ0G,GAAI8Z,EAAK9Z,GACTZ,KAAMhF,KAAK8nE,cAAcpoD,EAAKqE,KAAMrE,EAAKq4C,MAAOr4C,EAAK9Z,IACrD8hE,QAAUrnE,IAENpC,EAAMk0D,aAAepuC,EACrB9lB,EAAMqoE,cAAgB5mD,EAAKq4C,MAC3B95D,EAAM42D,aAAen1C,EAAK9Z,GAC1B3H,EAAMoiE,eAAiB3gD,EACvBzhB,EAAM0pE,OAAOtnE,EAAMunE,cAActnE,QACjC,IAAIynE,EAA8C,GAAnC9pE,EAAM2lD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO3uC,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBACnHj6C,EAAMwiE,aAAe,CAAC,CAClBuH,aAAcD,EAAW,EACzBttB,MAAO,GACPsX,WAAY,GACZ7Z,aAAc6vB,EAAW,EACzBhqD,MAAO,GACPq6B,IAAK,GACL8qB,YAAa,IACbP,SAAU,EACVhB,WAAY,GACZ91C,UAAWw9B,GAAWz9B,QAAQlM,EAAK/a,OACnCmnB,QAASu9B,GAAWz9B,QAAQlM,EAAK5a,KACjCmjE,WAAY,EACZpzB,SAAU,kBACV9wB,KAAM9lB,EAAMk0D,aAAavsD,GACzBmyD,MAAO95D,EAAMqoE,cACb5mD,KAAMzhB,EAAM42D,aACZgS,QAAQ,EACRqB,OAAO,EACPnD,iBAAkB,GAClBrE,eAAgB1gE,KAAKsgE,yBAEzBriE,EAAM+oE,iBAAiB,IAM/BjjD,EAAK8jD,MAAMtiE,KAAK,CACZ2yB,IAAK,GAAGnU,EAAKne,MAAM8Z,EAAKq4C,QACxBlxD,MAAO6Y,EAAKq4C,MACZ/yD,KAAM,eACN0iE,QAAUrnE,IAENpC,EAAMk0D,aAAepuC,EACrB9lB,EAAMqoE,cAAgB5mD,EAAKq4C,MAC3B95D,EAAM42D,aAAe,KACrB52D,EAAM0pE,OAAOtnE,EAAMunE,cAActnE,QACjCrC,EAAMwiE,aAAe,GACrBxiE,EAAM+oE,iBAAiB,EAE3Ba,MAAO,CAAC,CACJ3vC,IAAK,GAAGnU,EAAKne,MAAM8Z,EAAKq4C,SAASr4C,EAAK9Z,KACtCiB,MAAO6Y,EAAKxgB,KACZ0G,GAAI8Z,EAAK9Z,GACTZ,KAAMhF,KAAK8nE,cAAcpoD,EAAKqE,KAAMrE,EAAKq4C,MAAOr4C,EAAK9Z,IACrD8hE,QAAUrnE,IAENpC,EAAMk0D,aAAepuC,EACrB9lB,EAAMqoE,cAAgB5mD,EAAKq4C,MAC3B95D,EAAM42D,aAAen1C,EAAK9Z,GAC1B3H,EAAMoiE,eAAiB3gD,EACvBzhB,EAAM0pE,OAAOtnE,EAAMunE,cAActnE,QACjC,IAAIynE,EAA8C,GAAnC9pE,EAAM2lD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO3uC,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBACnHj6C,EAAMwiE,aAAe,CAAC,CAClBuH,aAAcD,EAAW,EACzBttB,MAAO,GACPsX,WAAY,GACZ7Z,aAAc6vB,EAAW,EACzBhqD,MAAO,GACPq6B,IAAK,GACL8qB,YAAa,IACbP,SAAU,EACVhB,WAAY,GACZ91C,UAAWw9B,GAAWz9B,QAAQlM,EAAK/a,OACnCmnB,QAASu9B,GAAWz9B,QAAQlM,EAAK5a,KACjCmjE,WAAY,EACZpzB,SAAU,kBACV9wB,KAAM9lB,EAAMk0D,aAAavsD,GACzBmyD,MAAO95D,EAAMqoE,cACb5mD,KAAMzhB,EAAM42D,aACZgS,QAAQ,EACRqB,OAAO,EACPnD,iBAAkB,GAClBrE,eAAgB1gE,KAAKsgE,yBAEzBriE,EAAM+oE,iBAAiB,MAOvCtnD,EAAK4xC,YAA4B,KAAd5xC,EAAKq4C,MAAe,GAAGh0C,EAAKld,WAAW6Y,EAAKxgB,OAAS,GAAG6kB,EAAKld,WAAW6Y,EAAKq4C,WAAWr4C,EAAKxgB,OAChHjB,EAAMsoE,oBAAoBhhE,KAAK,CAC3Bma,KAAMA,EAAK9Z,GACX1G,KAAoB,KAAdwgB,EAAKq4C,MAAe,GAAGh0C,EAAKld,WAAW6Y,EAAKxgB,OAAS,GAAG6kB,EAAKld,WAAW6Y,EAAKq4C,WAAWr4C,EAAKxgB,QACrG,IAENjB,EAAMkiE,SAAS9yC,SAAQ8G,IACnBA,EAAE0zC,MAAMx6C,SAAQ86C,IACZA,EAAEnjE,KAAO/G,EAAMmqE,eAAeD,EAAEN,MAAM,GACzC,IAEL5pE,EAAM2lD,QAAQnX,MAAM2U,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEwvC,YAAcjQ,EAAEiQ,YAAe,GAAK,IAC1ErzD,EAAMsoE,oBAAoBnlB,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAE5iB,KAAOmiD,EAAEniD,KAAQ,GAAK,IAClEmW,QAAQC,IAAIrX,EAAMkiE,SACtB,EACAiI,eAAeC,GACX,IAAIC,GAAY,EAIhB,OAHAD,EAAUh7C,SAAQG,IACd86C,EAAYA,GAAuB,eAAV96C,EAAExoB,IAAQ,IAEhCsjE,GAAaD,EAAU/xD,OAAS,EAAI,cAAgB,cAC/D,EACAwxD,cAAc/jD,EAAMg0C,EAAOr4C,GACvB,IAAIzhB,EAAQ+B,KACRsoE,GAAY,EACZtkB,EAAa/lD,EAAM2lD,QAAQI,WAAWprC,QAAO+tD,GAAMA,EAAG5iD,MAAQA,GAAQ4iD,EAAG5O,OAASA,GAAS4O,EAAGjnD,MAAQA,IAK1G,OAJAskC,EAAW32B,SAAQs5C,IACf,IAAI4B,EAAqC,MAAf5B,EAAGhE,UAAqC,MAAjBgE,EAAGhF,YAAsC,MAAhBgF,EAAG96C,WAAmC,MAAd86C,EAAG76C,SAAqC,MAAlB66C,EAAGzD,YACvHqF,IAAuBD,GAAY,EAAO,IAE3CA,GAAatkB,EAAW1tC,OAAS,EAAI,cAAgB,cAChE,EACAssD,qBAAqBqC,GACjBjlE,KAAKymE,OAAQ,EACb,IAAI+B,EAAYxoE,KAAKmgE,SAASvnD,QAAOub,GAAKA,EAAEvuB,IAAMq/D,EAAUlhD,OAAM,GAAG8jD,MAAMjvD,QAAOuvD,GAAKA,EAAEthE,OAASo+D,EAAUlN,QAAO,GAC/GsQ,EAAYG,EAAUX,MAAMjvD,QAAO4U,GAAKA,EAAE5nB,IAAMq/D,EAAUvlD,OAC1D2oD,EAAU/xD,OAAS,IACnB+xD,EAAU,GAAGrjE,KAAOhF,KAAK8nE,cAAc7C,EAAUlhD,KAAMkhD,EAAUlN,MAAOkN,EAAUvlD,OAEtF8oD,EAAUxjE,KAAOhF,KAAKooE,eAAeC,EACzC,EACAV,OAAOv3B,GACCpwC,KAAK0lE,WACL1lE,KAAK0lE,SAASnmE,MAAMK,MAAQ,WAEhCwwC,EAAQ7wC,MAAMK,MAAQ,QACtBI,KAAK0lE,SAAWt1B,CACpB,EACAq4B,WAAWliC,GACP,GAAIA,EAAKshC,OAASthC,EAAKshC,MAAMvxD,OAAQ,CACjCtW,KAAKogE,aAAa75B,EAAKrO,MAAO,EAE9B,IAAK,IAAIwwC,KAASniC,EAAKshC,MACnB7nE,KAAKyoE,WAAWC,EAExB,CACJ,EACA1F,aAAaiC,GACT,IAAIvlD,EAAO1f,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMq/D,EAAUvlD,OAC5D,GAAIA,EAAKpJ,OAAS,EACd,OAAO,IAAIkJ,KAAKE,EAAK,GAAG/a,MAEhC,EACAs+D,WAAWgC,GACP,IAAIvlD,EAAO1f,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMq/D,EAAUvlD,OAC5D,GAAIA,EAAKpJ,OAAS,EACd,OAAO,IAAIkJ,KAAKE,EAAK,GAAG5a,IAEhC,EACAy+C,cAAcC,GACV,OAAO6F,GAAW9F,cAAcC,EACpC,EACAmlB,sBACI3oE,KAAK8gE,gBAAkB,CAAC,CAAEj6D,MAAO,qBAAsBghE,MAAO7nE,KAAK8xD,mBAAqB,CAAEjrD,MAAO,aAAcghE,MAAO7nE,KAAK+xD,YAC/H,EACAiV,kBAC8B,MAAtBhnE,KAAKsmE,eAA8C,MAArBtmE,KAAK60D,aACnC70D,KAAKuhE,mBAAqBvhE,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAEroB,MAAQ/jB,KAAKmyD,aAAavsD,KAAIgT,QAAOwzB,GAAKA,EAAE2rB,OAAS/3D,KAAKsmE,gBAAe1tD,QAAOwzB,GAAKA,EAAE1sB,MAAQ1f,KAAK60D,eAAczT,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAE4+C,eAAiBrf,EAAEqf,eAAkB,GAAK,IAEnN,MAAtB1gE,KAAKsmE,cACVtmE,KAAKuhE,mBAAqBvhE,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAEroB,MAAQ/jB,KAAKmyD,aAAavsD,KAAIgT,QAAOwzB,GAAKA,EAAE2rB,OAAS/3D,KAAKsmE,gBAAellB,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAE4+C,eAAiBrf,EAAEqf,eAAkB,GAAK,IAGrM1gE,KAAKuhE,mBAAqBvhE,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAEroB,MAAQ/jB,KAAKmyD,aAAavsD,KAAIw7C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAE4+C,eAAiBrf,EAAEqf,eAAkB,GAAK,GAElK,EACAyD,iBAAiB9jE,GACb,IAAIpC,EAAQ+B,KACR2/D,EAAWt/D,EAAM8C,MAAQ9C,EAAM8C,MAAMyV,QAAOwzB,GAAKA,EAAEgM,KAAO/3C,EAAMunE,cAActnE,OAAOsoE,YAAa,CAACvoE,GACnGwoE,EAAgB5qE,EAAM2lD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAEroB,MAAQ9lB,EAAMk0D,aAAavsD,IAAMwmC,EAAE2rB,OAAS95D,EAAMqoE,eAAiBl6B,EAAE1sB,MAAQzhB,EAAM42D,cAAgBzoB,EAAEs0B,gBAAkBziE,EAAMqiE,yBACpLX,EAASrpD,OAAS,EACdqpD,EAAS,GAAG6E,UAAUluD,OAAS,IAC/BtW,KAAKukE,gBAAkB5E,EAAS,GAChC,CAAC,IAAK,IAAK,KAAKtyC,SAAQ5X,IACpB,IAAIiwD,EAAW/F,EAAS,GAAG,WAAWlqD,KAASmD,QAAOwzB,GAAKy8B,EAAcjwD,QAAOkwD,GAAMA,EAAG1wB,KAAOhM,EAAEgM,MAAK9hC,OAAS,IAChHrY,EAAM,mBAAmBwX,KAAWiwD,EAASpvD,OAAS,EAAIovD,EAAS,GAAK,IAAI,IAE5ErlE,EAAM8C,OACN9C,EAAM8C,MAAM0+B,OAAOxhC,EAAM8C,MAAMguB,QAAQnxB,KAAKukE,iBAAkB,GAElEvkE,KAAK4kE,kBAAmB,EACxB5kE,KAAKskE,uBAAwB,GAIjCtkE,KAAKukE,gBAAkB,IAE/B,EACAd,gBAAgBwB,GACZjlE,KAAK4jD,QAAQI,WAAWz+C,KAAK0/D,GACM,IAA/BjlE,KAAKsgE,wBAAiCtgE,KAAKugE,gBAAgBptD,SAASnT,KAAKsgE,0BACzEtgE,KAAKugE,gBAAgBh7D,KAAKvF,KAAKsgE,wBAC/BtgE,KAAKugE,gBAAgBnf,QAOzB,IAAI2mB,EAA6C,GAAlC/nE,KAAK4jD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO5sC,KAAK4jD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBACjHl4C,KAAKygE,aAAe,CAAC,CACjBuH,aAAcD,EAAW,EACzBttB,MAAO,GACPsX,WAAY,GACZ7Z,aAAc6vB,EAAW,EACzBhqD,MAAO,GACPq6B,IAAK,GACL8qB,YAAa,IACbP,SAAU,EACVhB,WAAY,GACZC,kBAAmB,EACnB/1C,UAAW7rB,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAM5F,KAAK60D,eAAcv+C,OAAS,EAAI+yC,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAM5F,KAAK60D,eAAc,GAAGlwD,OAAS,KAC3KmnB,QAAS9rB,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAM5F,KAAK60D,eAAcv+C,OAAS,EAAI+yC,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAM5F,KAAK60D,eAAc,GAAG/vD,KAAO,KACvKmjE,WAAY,EACZpzB,SAAU,kBACV9wB,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,aACXgS,QAAQ,EACRqB,OAAO,EACPnD,iBAAkB,GAClBrE,eAAgB1gE,KAAKsgE,yBAEzBtgE,KAAKgnE,iBACT,EACArC,sBAAsBC,GAClB,IAAI3mE,EAAQ+B,KACR6oE,EAAgB5qE,EAAM2lD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAEroB,MAAQ9lB,EAAMk0D,aAAavsD,IAAMwmC,EAAE2rB,OAAS95D,EAAMqoE,eAAiBl6B,EAAE1sB,MAAQzhB,EAAM42D,cAAgBzoB,EAAEs0B,gBAAkBziE,EAAMqiE,yBAqBxL,GApBA,CAAC,IAAK,IAAK,KAAKjzC,SAAQ5X,IAChBxX,EAAM,mBAAmBwX,MACiE,GAAtFozD,EAAcjwD,QAAOkwD,GAAMA,EAAG1wB,KAAOn6C,EAAM,mBAAmBwX,KAAS2iC,MAAK9hC,SACxErY,EAAM,mBAAmBwX,KAAS8xD,QAAkG,GAAxFtpE,EAAMgmE,cAAcrrD,QAAOwzB,GAAKA,EAAExmC,IAAM3H,EAAM,mBAAmBwX,KAAS7P,KAAI0Q,OAC1HrY,EAAMgmE,cAAc1+D,KAAKtH,EAAM,mBAAmBwX,MAE0C,GAAvFxX,EAAM+lE,aAAaprD,QAAOwzB,GAAKA,EAAExmC,IAAM3H,EAAM,mBAAmBwX,KAAS7P,KAAI0Q,QAClFrY,EAAM+lE,aAAaz+D,KAAKtH,EAAM,mBAAmBwX,OAK7DxX,EAAM,mBAAmBwX,KAAW,IAAI,IAExCzV,KAAKukE,gBAAgBwE,MACrB/oE,KAAKikE,cAAc1+D,KAAKvF,KAAKukE,iBAG7BvkE,KAAKgkE,aAAaz+D,KAAKvF,KAAKukE,iBAE5BK,EAAkB,CAClB5kE,KAAKokE,mBACL,IAAI2D,EAA8C,GAAnC9pE,EAAM2lD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO3uC,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBACnHl4C,KAAKygE,aAAe,CAAC,CACjBuH,aAAcD,EAAW,EACzBttB,MAAO,GACPsX,WAAY,GACZ7Z,aAAc6vB,EAAW,EACzBhqD,MAAO,GACPq6B,IAAK,GACL8qB,YAAa,IACbP,SAAU,EACVhB,WAAY,GACZC,kBAAmB,EACnB/1C,UAAW,KACXC,QAAS,KACTm8C,WAAY,EACZpzB,SAAU,kBACV9wB,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,aACXgS,QAAQ,EACRqB,OAAO,EACPnD,iBAAkB,GAClBrE,eAAgB1gE,KAAKsgE,wBAE7B,CACAtgE,KAAKskE,uBAAwB,CACjC,EACAF,mBACI,IAAInmE,EAAQ+B,KACuB,IAA/BA,KAAKsgE,wBAAiCtgE,KAAKugE,gBAAgBptD,SAASnT,KAAKsgE,0BACzEtgE,KAAKugE,gBAAgBh7D,KAAKvF,KAAKsgE,wBAC/BtgE,KAAKugE,gBAAgBnf,QAOzB,IAAI2mB,EAA8C,GAAnC9pE,EAAM2lD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO3uC,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBACnHl4C,KAAKgkE,aAAa32C,SAAQ+e,IACtBnuC,EAAM2lD,QAAQI,WAAWz+C,KAAK,CAC1ByiE,aAAcD,EAAW,EACzBttB,MAAO,GACPsX,WAAY,GACZ7Z,aAAc6vB,EAAW,EACzBhqD,MAAO,GACPq6B,IAAKhM,EAAEgM,IACP8qB,YAAa,IACbP,SAAU,EACVhB,WAAYv1B,EAAEu1B,WACdC,kBAAmBx1B,EAAEu1B,WACrBkB,cAAez2B,EAAEy2B,cACjBC,cAAe12B,EAAE02B,cACjBK,WAAY/2B,EAAE+2B,WACdt3C,UAAW,IAAIrM,KAAKxf,KAAKqgE,eAAe17D,OACxCmnB,QAAS,IAAItM,KAAKxf,KAAKqgE,eAAev7D,KACtCmjE,WAAY,EACZpzB,SAAU,kBACV9wB,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,aACXgS,QAAQ,EACRqB,OAAO,EACPnD,iBAAkB,GAClBrE,eAAgB1gE,KAAKsgE,yBAEzByH,GAAY,CAAC,IAEjB/nE,KAAKikE,cAAc52C,SAAQ+e,IACvBnuC,EAAM2lD,QAAQI,WAAWz+C,KAAK,CAC1ByiE,aAAcD,EAAW,EACzBttB,MAAO,GACPsX,WAAY,GACZ7Z,aAAc6vB,EAAW,EACzBhqD,MAAO,GACPq6B,IAAKhM,EAAEgM,IACP8qB,YAAa,IACbP,SAAU,EACVhB,WAAYv1B,EAAEu1B,WACdC,kBAAmBx1B,EAAEu1B,WACrBkB,cAAez2B,EAAEy2B,cACjBC,cAAe12B,EAAE02B,cACjBK,WAAY/2B,EAAE+2B,WACdt3C,UAAW,IAAIrM,KAAKxf,KAAKqgE,eAAe17D,OACxCmnB,QAAS,IAAItM,KAAKxf,KAAKqgE,eAAev7D,KACtCmjE,WAAY,EACZpzB,SAAU,kBACV9wB,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,aACXgS,OAAQz6B,EAAEy6B,OACVqB,MAAO97B,EAAE87B,MACTnD,iBAAkB,GAClBrE,eAAgB1gE,KAAKsgE,yBAEzByH,GAAY,CAAC,IAEjB/nE,KAAK4iE,qBAAqB,CACtB7+C,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,eAEf70D,KAAKgnE,kBACLhnE,KAAK0iE,mBAAoB,EACzB1iE,KAAKgkE,aAAe,GACpBhkE,KAAKikE,cAAgB,GACrBjkE,KAAK8jE,UAAY,GACjB9jE,KAAK+jE,QACT,EACA7C,kBACI,IAAIjjE,EAAQ+B,KACuB,IAA/BA,KAAKsgE,wBAAiCtgE,KAAKugE,gBAAgBptD,SAASnT,KAAKsgE,0BACzEtgE,KAAKugE,gBAAgBh7D,KAAKvF,KAAKsgE,wBAC/BtgE,KAAKugE,gBAAgBnf,QAEU,IAA/BphD,KAAKsgE,wBAA+D,oDAA/BtgE,KAAKsgE,wBAC1CtgE,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAC3BA,EAAEroB,MAAQ/jB,KAAKmyD,aAAavsD,IAAMwmC,EAAE2rB,OAAS/3D,KAAKsmE,eAAiBl6B,EAAE1sB,MAAQ1f,KAAK60D,cAAoC,IAApBzoB,EAAEs0B,iBACtGrzC,SAAQ+e,IAAOA,EAAEs0B,eAAiB1gE,KAAKsgE,0BAE7C,IAAIyH,EAA8C,GAAnC9pE,EAAM2lD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO3uC,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBACnHl4C,KAAK6gE,iBAAiB7c,WAAW32B,SAAQ43C,IACrChnE,EAAM2lD,QAAQI,WAAWz+C,KAAK,CAC1ByiE,aAAcD,EAAW,EACzBttB,MAAO,GACPsX,WAAY,GACZ7Z,aAAc6vB,EAAW,EACzBhqD,MAAO,GACPq6B,IAAK6sB,EAAU7sB,IACf8qB,YAAa,IACbP,SAAU,EACVhB,WAAYsD,EAAUtD,WACtBC,kBAAmBqD,EAAUtD,WAC7BkB,cAAeoC,EAAUpC,cACzBC,cAAemC,EAAUnC,cACzBK,WAAY8B,EAAU9B,WACtBt3C,UAAW,IAAIrM,KAAKxf,KAAKqgE,eAAe17D,OACxCmnB,QAAS,IAAItM,KAAKxf,KAAKqgE,eAAev7D,KACtCmjE,WAAY,EACZpzB,SAAU,kBACV9wB,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,aACXgS,OAAQ5B,EAAU4B,OAClBqB,MAAOjD,EAAUiD,MACjBnD,iBAAkB,GAClBrE,eAAgB1gE,KAAKsgE,yBAEzByH,GAAY,CAAC,IAEjB/nE,KAAK4iE,qBAAqB,CACtB7+C,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,eAEf70D,KAAKgnE,iBACT,EACA5F,8BACI,IAAInjE,EAAQ+B,KACRgkD,EAAahkD,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE1sB,MAAQ1f,KAAKmhE,qBAAqBv7D,KACrFmiE,EAA8C,GAAnC9pE,EAAM2lD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO3uC,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBACnH8L,EAAW32B,SAAQ+e,IACfnuC,EAAM2lD,QAAQI,WAAWz+C,KAAK,IACvB6mC,EACH8sB,UAAM74C,EACN0D,KAAM9lB,EAAMk0D,aAAavsD,GACzBmyD,MAAO95D,EAAMqoE,cACb5mD,KAAMzhB,EAAM42D,aACZ3c,aAAc6vB,EAAW,EACzBC,aAAcD,EAAW,EACzBl8C,UAAW,IAAIrM,KAAKvhB,EAAMoiE,eAAe17D,OACzCmnB,QAAS,IAAItM,KAAKvhB,EAAMoiE,eAAev7D,OAE3CijE,GAAY,CAAC,IAEjB/nE,KAAK4iE,qBAAqB,CACtB7+C,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,eAEf70D,KAAKgnE,iBACT,EACA1F,0BAA0BjhE,GACtB,IAAIpC,EAAQ+B,KACZA,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS,4DAA4D9qD,EAAMojE,uBAAuB/qD,qBAClGtR,KAAM,oBACNgkD,OAAQ,KACJ/qD,EAAM+qE,2BAA0B,EAAK,EAEzCliB,OAAQ,KACJ7oD,EAAM+qE,2BAA0B,EAAM,GAGlD,EACAA,0BAA0BC,GACtB,IAAIhrE,EAAQ+B,KACR+nE,EAA8C,GAAnC9pE,EAAM2lD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO3uC,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBACnHl4C,KAAKqhE,uBAAuBh0C,SAAQG,IAEhC,GADAnY,QAAQC,IAAIkY,EAAE5nB,IACV4nB,EAAE5nB,IAAM3H,EAAM42D,aAAlB,CAKA,GADAx/C,QAAQC,IAAIkY,EAAE5nB,IACVqjE,EAAW,CACX,IAAIjlB,EAAa/lD,EAAM2lD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE1sB,MAAQ8N,EAAE5nB,KAClE3H,EAAM2lD,QAAQI,WAAa/lD,EAAM2lD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE1sB,MAAQ8N,EAAE5nB,KAC5Eo+C,EAAW32B,SAAQ+e,IACXA,EAAE8sB,MACFj7D,EAAM4H,MACD8xD,OAAO,GAAG15D,EAAM8H,yBAAyBqmC,EAAE8sB,QAC3C5/C,MAAK,SAAUC,GACZlE,QAAQC,IAAIiE,EAChB,IACC4D,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,GAER,CACAnf,EAAMsjE,mBAAmBl0C,SAAQ+e,IAC7BnuC,EAAM2lD,QAAQI,WAAWz+C,KAAK,IACvB6mC,EACH8sB,UAAM74C,EACN0D,KAAMyJ,EAAEzJ,KACRg0C,MAAOvqC,EAAEuqC,MACTr4C,KAAM8N,EAAE5nB,GACRsyC,aAAc6vB,EAAW,EACzBC,aAAcD,EAAW,EACzBl8C,UAAW,IAAIrM,KAAKgO,EAAE7oB,OACtBmnB,QAAS,IAAItM,KAAKgO,EAAE1oB,OAExBijE,GAAY,CAAC,GA9BjB,MAFI1yD,QAAQC,IAAI,UAiCf,IAELtV,KAAKqhE,uBAAyB,EAClC,EACAqC,gBAAgBuB,GACZ,IAAIhnE,EAAQ+B,KACRyV,EAAQzV,KAAK4jD,QAAQI,WAAW7yB,QAAQ8zC,GACxCxvD,GAAS,GAAKwvD,EAAU/L,KACxBj7D,EAAM4H,MACD8xD,OAAO,GAAG15D,EAAM8H,yBAAyBk/D,EAAU/L,QACnD5/C,MAAK,SAAUC,GACZlE,QAAQC,IAAIiE,GACZtb,EAAM2lD,QAAQI,WAAWniB,OAAOpsB,EAAO,GACvCxX,EAAM+oE,iBACV,IACC7pD,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,KAI1Bnf,EAAM2lD,QAAQI,WAAWniB,OAAOpsB,EAAO,GACvCxX,EAAM+oE,mBAEVhnE,KAAK4iE,qBAAqBqC,EAC9B,EACAzH,cAAc3gD,GACV,IAAI5e,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,yCACZuT,MAAKC,IACFtb,EAAM6zD,kBAAoBv4C,EAAShX,KACnCtE,EAAM6zD,kBAAkBzkC,SAAQqwC,IAC5BA,EAAG1Z,WAAW32B,SAAQ+e,IAClBA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,IAAI,GACtE,IAELjB,EAAM4H,MACDqN,IAAI,GAAGlT,KAAK+F,uCACZuT,MAAKC,IACFtb,EAAM8zD,WAAax4C,EAAShX,KAC5BtE,EAAM8zD,WAAW1kC,SAAQ0uC,IACrBA,EAAG/X,WAAW32B,SAAQ+e,IAClBA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,IAAI,GACtE,IAEL2d,GAAU,GACb,GAGjB,EACAknD,SAC0B,IAAlB/jE,KAAK8jE,WACL9jE,KAAKkkE,aAAelkE,KAAK4lE,KAAKhtD,QAAOwzB,IAAOA,EAAEm7B,SAAWn7B,EAAE3a,OAAU2a,EAAEgM,IAAI58B,cAAcrI,SAASnT,KAAK8jE,UAAUtoD,iBACjHxb,KAAK6lE,cAAgB7lE,KAAK4lE,KAAKhtD,QAAOwzB,GAAMA,EAAQ,QAAKA,EAAEgM,IAAI58B,cAAcrI,SAASnT,KAAK8jE,UAAUtoD,mBAGrGxb,KAAKkkE,aAAelkE,KAAK4lE,KAAKhtD,QAAOwzB,IAAOA,EAAEm7B,SAAWn7B,EAAE3a,QAC3DzxB,KAAK6lE,cAAgB7lE,KAAK4lE,KAAKhtD,QAAOwzB,GAAKA,EAAEm7B,SAErD,EACAhF,sBAAsBliE,GACbA,EAAM2uD,MAAM5/B,OAAO9Y,OAIpBtW,KAAKyiE,aAAeziE,KAAK4lE,KAAKn9D,KAAI2jC,GAAKA,EAAEgM,MAAKx/B,QAAQwzB,GAC3CA,EAAE5wB,cAAcrI,SAAS9S,EAAM2uD,MAAMxzC,iBAJhDxb,KAAKyiE,aAAe,IAAIziE,KAAK4lE,KAAKn9D,KAAI2jC,GAAKA,EAAEgM,MAOrD,EACAoqB,sBAAsBniE,GAClB,IAAI4kE,EAAYjlE,KAAK4lE,KAAKhtD,QAAOwzB,GAAKA,EAAEgM,KAAO/3C,EAAM8C,QAAO,GAC5D,GAAI8hE,EAAUT,UAAUluD,OAAS,EAC7BtW,KAAKmkE,iBAAiBc,GACtBjlE,KAAK4kE,kBAAmB,EACxB5kE,KAAKskE,uBAAwB,MAE5B,CACD,IAAIyD,EAA6C,GAAlC/nE,KAAK4jD,QAAQI,WAAW1tC,OAAc,EAAI3D,KAAKi6B,OAAO5sC,KAAK4jD,QAAQI,WAAWv7C,KAAI2jC,GAAK5f,SAAS4f,EAAE8L,iBAC7GuoB,EAAe,IACZwE,EACH+C,aAAcD,EAAW,EACzBttB,MAAO,GACPsX,WAAY,GACZ7Z,aAAc6vB,EAAW,EACzB7E,YAAa,IACbP,SAAU,EACVf,kBAAmBqD,EAAUtD,WAC7B91C,UAAW,IAAIrM,KAAKxf,KAAKqgE,eAAe17D,OACxCmnB,QAAS,IAAItM,KAAKxf,KAAKqgE,eAAev7D,KACtCmjE,WAAY,EACZpzB,SAAU,kBACV9wB,KAAM/jB,KAAKmyD,aAAavsD,GACxBmyD,MAAO/3D,KAAKsmE,cACZ5mD,KAAM1f,KAAK60D,aACXkQ,iBAAkB,GAClBrE,eAAgB1gE,KAAKsgE,wBAEzBtgE,KAAKygE,aAAe,CAACA,EACzB,CACJ,EACAE,uBACS3gE,KAAKugE,gBAAgBptD,SAASnT,KAAKsgE,0BACpCtgE,KAAKugE,gBAAgBh7D,KAAKvF,KAAKsgE,wBAC/BtgE,KAAKugE,gBAAgBnf,QAEzBphD,KAAK4gE,mBAAmBvzC,SAAQ+e,IAC5BA,EAAEs0B,eAAgD,oDAA/B1gE,KAAKsgE,uBAA+E,GAAKtgE,KAAKsgE,sBAAsB,IAE3ItgE,KAAK4gE,mBAAqB,GAC1B5gE,KAAKgnE,iBACT,GAGJjnE,UACIC,KAAKwmE,iBAAmBxmE,KAAK4jD,QAAQI,WAAWv7C,KAAI2jC,IAAc,IAAKA,MACvE/2B,QAAQC,IAAItV,KAAKwmE,kBACjBxmE,KAAKonE,iBACLpnE,KAAKw9D,cAAcx9D,KAAK2oE,qBACxB3oE,KAAKwnE,eACLxnE,KAAKmyD,aAAenyD,KAAK4jD,QAAQ5K,MAAM,GACvCh5C,KAAKgnE,kBACLhnE,KAAKugE,gBAAkB,CAAC,sDAAuD,IAAIxzC,IAAI/sB,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAyB,IAApBA,EAAEs0B,iBAAsBj4D,KAAI2jC,GAAKA,EAAEs0B,mBAC9J1gE,KAAKugE,gBAAgBnf,OACrB7iD,SAAS2qE,cAAc,uBAAuBzqE,UAAUC,IAAI,YAC5DH,SAAS2qE,cAAc,uBAAuBzqE,UAAUC,IAAI,QAC5DH,SAASyhD,iBAAiB,2CAA2C3yB,SAAQ87C,IACzEA,EAAG1qE,UAAUC,IAAI,UACjByqE,EAAG1qE,UAAUC,IAAI,WAAW,IAQhC,wBACKsB,KAAK4jD,QAAQwD,UACdpnD,KAAK4jD,QAAQI,WAAW32B,SAAQ+e,IAC5BA,EAAEvgB,UAAYw9B,GAAWz9B,QAAQwgB,EAAEvgB,WACnCugB,EAAEtgB,QAAUu9B,GAAWz9B,QAAQwgB,EAAEtgB,QAAQ,GAGrD,GG9xCJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,wECTI,QACkB,GADR7sB,MAAM,YAAaqmD,KAAM,EAAAmF,iBAAkBvd,MAAM,UAAU+gB,YAAY,OAAQ,gBAAe,EAAAD,cACpG1nB,KAAK,Q,mCAMb,QACIpnC,KAAM,eACNmD,WAAY,CACR8sD,SAAQ,IAEZ/uD,QAAS,CACL4tD,gBACIhuD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACAsC,iBACI,MAAO,IAAKzqD,KAAKyF,OAAOC,QAAQS,YACpC,ICZR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,yECPyB,a,YAUD,OAA4B,YAAtB,mBAAe,K,IAClBlH,MAAM,wBAAwBM,MAAA,wB,IAmBhCN,MAAM,U,IACDA,MAAM,oBAAoBM,MAAA,e,YAC5B,OAA0B,KAAvBN,MAAM,gBAAc,W,YAUV,wB,UAQLM,MAAA,wB,eAKcN,MAAM,yB,YAiBhC,OAAiC,YAA3B,wBAAoB,K,IACvBA,MAAM,wBAAwBM,MAAA,wB,IAahCN,MAAM,U,IACDA,MAAM,oBAAoBM,MAAA,e,YAC5B,OAA0B,KAAvBN,MAAM,gBAAc,W,UAefM,MAAA,wB,eAIcN,MAAM,yB,qBAUrBA,MAAM,yB,UAGLM,MAAA,wB,YAkB5B,OAKI,SALD,oIAKH,K,IACKA,MAAA,yC,IAuByBN,MAAM,yB,UAKAM,MAAA,kB,4TA7KxC,QAwIO,GAxIDN,MAAM,QAAM,CACHiuC,OAAK,SAAC,IAEb,C,IAAA,QAC4E,GADpEloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,eAAE,EAAAiwD,SAAS,aAAW,aAE3DvE,SAAO,SAEd,IA8HU,EA9HV,QA8HU,GA9HOqE,YAAa,EAAAA,Y,sCAAA,EAAW,gB,mBACrC,IA6DW,CA7DK,EAAAwQ,mBAAmBr5D,e,WAAnC,QA6DW,WA5DIuB,QAAM,SACb,IAA4B,CAA5B,I,SACA,OAiBI,IAjBJ,GAiBI,W,GAjBwE,C,gpBAAlB,S,kBAmB9D,IAQM,EARN,OAQM,MARN,GAQM,EAPF,OAIO,OAJP,GAIO,CAHH,IACA,QACY,G,WADQ,EAAAohE,a,qCAAA,EAAY,gBAAE5V,YAAY,SAASj0D,MAAA,gB,yBAIrB,SAA5B,EAAA4G,aAAakjE,c,WADvB,QACwD,G,MADhDxiE,MAAM,aAAa7B,KAAK,aAAc,QAAK,eAAE,EAAAskE,qBAAsB,O,kBAG/E,QA6BY,GA5BPnmE,MAAO,EAAAimE,aAAe,EAAAG,eAAe3wD,QAAOqf,GAAKA,EAAE/4B,KAAKsc,cAAcrI,SAAS,EAAAi2D,aAAah6C,OAAO5T,iBAAkB,EAAA+tD,eACrH5Y,YAAY,EAAMG,aAAa,S,CACrBmN,OAAK,SAAC,IAAoB,C,wBACrC,IAAkE,EAAlE,QAAkE,GAA1DhN,MAAM,OAAOjpD,OAAO,OAAOzI,MAAA,uBACnC,QAAoE,GAA5D0xD,MAAM,QAAQjpD,OAAO,QAAQzI,MAAA,uBACrC,QAA2E,GAAnE0xD,MAAM,QAAQjpD,OAAO,eAAezI,MAAA,uBAC5C,QAaS,GAbD0xD,MAAM,cAAcjpD,OAAO,OAAOzI,MAAA,qB,CAC3BwD,MAAI,SAAEs1D,GAAS,CAEXA,EAAU91D,KAAKglD,UAAuC,SAA3B,EAAAphD,YAAYkjE,aAA2BhR,EAAU91D,KAAKqD,IAAM,EAAAO,YAAYP,K,WAD9G,QAEuE,QAFvE,IAEuE,QAArCyyD,EAAU91D,KAAK8mE,aAAW,IAC5ChR,EAAU91D,KAAKglD,UAAuC,SAA3B,EAAAphD,YAAYkjE,c,WAAvD,QAMM,WALF,QAGW,GAHD9pE,MAAA,8B,WAA0C84D,EAAU91D,KAAK8mE,Y,yBAAfhR,EAAU91D,KAAgB,cACzE6uD,QAAS,CAAC,QAAS,SAAU,YAC7B,SAAM,GAAE,EAAAoY,iBAAiBnR,EAAU91D,O,kEAC7B,OACkC,IADlC,GACkC,W,MAAjC81D,EAAU91D,KAAKknE,oB,yBAIvC,QAOS,GAPDzhE,OAAO,GAAGzI,MAAA,sB,CACHwD,MAAI,SAAEs1D,GAAS,E,SACtB,QAG2F,GAHlFrzD,KAAMqzD,EAAU91D,KAAKmnE,gBAC1BzqE,MAAM,iDACL,QAAK,GAAE,EAAA0qE,aAAatR,EAAU91D,O,+BAAkB,U,MACd,SAA3B,EAAA4D,YAAYkjE,aAAwD,SAA9BhR,EAAU91D,KAAK8mE,kB,sDAKjF,QA8DW,QA7DIrhE,QAAM,SACb,IAAiC,CAAjC,I,SACA,OAWI,IAXJ,GAWI,W,GAXwE,C,uaAAlB,S,kBAa9D,IAMM,EANN,OAMM,MANN,GAMM,EALF,OAIO,OAJP,GAIO,CAHH,IACA,QACY,G,WADQ,EAAAohE,a,qCAAA,EAAY,gBAAE5V,YAAY,SAASj0D,MAAA,gB,4BAI/D,QAsCY,GArCP4D,MAAO,EAAAimE,aAAe,EAAAQ,oBAAoBhxD,QAAOqf,GAAKA,EAAE/4B,KAAKsc,cAAcrI,SAAS,EAAAi2D,aAAah6C,OAAO5T,iBAAkB,EAAAouD,oBAC1HjZ,YAAY,EAAMG,aAAa,S,mBAChC,IAAkE,EAAlE,QAAkE,GAA1DG,MAAM,OAAOjpD,OAAO,OAAOzI,MAAA,uBACnC,QAAoE,GAA5D0xD,MAAM,QAAQjpD,OAAO,QAAQzI,MAAA,uBACrC,QAA2E,GAAnE0xD,MAAM,QAAQjpD,OAAO,eAAezI,MAAA,uBAC5C,QAuBS,GAvBD0xD,MAAM,OAAOjpD,OAAO,OAAOzI,MAAA,qB,CACpBwD,MAAI,SAAEs1D,GAAS,CAEXA,EAAU91D,KAAKglD,UAAgC,SAApB,EAAAphD,YAAY0jE,MAAoBxR,EAAU91D,KAAKqD,IAAM,EAAAO,YAAYP,K,WADvG,QAEgE,QAFhE,IAEgE,QAA9ByyD,EAAU91D,KAAKsnE,MAAI,IACrCxR,EAAU91D,KAAKglD,UAAgC,SAApB,EAAAphD,YAAY0jE,O,WAAvD,QAKM,WAJF,QAEW,GAFD,aAAW,YAAYtqE,MAAA,8B,WAA0C84D,EAAU91D,KAAKsnE,K,yBAAfxR,EAAU91D,KAAS,OACzF6uD,QAAS,CAAC,QAAS,UAAY,SAAM,GAAE,EAAA0Y,eAAezR,EAAU91D,O,kEAC1D,OACkC,IADlC,GACkC,W,MAAjC81D,EAAU91D,KAAKknE,mBAGfpR,EAAU91D,KAAKglD,UAAgC,SAApB,EAAAphD,YAAY0jE,MAAoBxR,EAAU0R,YAOrE1R,EAAU91D,KAAKglD,UAAgC,SAApB,EAAAphD,YAAY0jE,MAAmBxR,EAAU0R,a,WADpF,QACoG,IADpG,KAEmB1R,EAAU91D,KAAKglD,UAAgC,SAApB,EAAAphD,YAAY0jE,M,4BAA1D,QACuD,QADvD,GAC+B,uB,WAV/B,QAMM,W,SAJF,QACkE,GAD1D7kE,KAAK,cAAc,aAAW,UAAU/F,MAAM,oDACjD,QAAK,GAAE,EAAA+qE,aAAa3R,EAAU91D,O,wBAAkB,c,SACrD,QACmF,GAD3EyC,KAAK,cAAc/F,MAAM,iDAC5B,QAAK,GAAE,EAAAgrE,WAAW5R,EAAU91D,MAAO,aAAW,U,wBAAoB,kB,OAQnF,QAOS,GAPDyF,OAAO,GAAGzI,MAAA,sB,CACHwD,MAAI,SAAEs1D,GAAS,E,SACtB,QAG6E,GAHpErzD,KAAMqzD,EAAU91D,KAAKylD,SAC1B/oD,MAAM,iDACL,QAAK,GAAE,EAAAgrE,WAAW5R,EAAU91D,MAAO,aAAW,U,+BAAoB,U,MACvC,SAApB,EAAA4D,YAAY0jE,MAA0C,SAAvBxR,EAAU91D,KAAKsnE,W,yEAQtF,QAwCS,GAxCO5hE,QAAS,EAAAqhE,oB,kCAAA,EAAmB,uBAAEnhE,MAAA,GAAOH,OAAM,iBAAmB,EAAA83D,mBAAmBr5D,eAC5FlH,MAAO,CAAEM,MAAO,S,CAoCNuI,QAAM,SACb,IAA0F,EAA1F,QAA0F,GAAlFvB,MAAM,QAAS,QAAK,eAAE,EAAAyiE,qBAAsB,GAAO/gE,UAAA,GAAUhJ,MAAA,oB,kBApCzE,IAKI,CALJ,IAMA,OAaM,MAbN,GAaM,EAZF,QAOe,G,WAPQ,EAAA2qE,a,qCAAA,EAAY,gBAAE1Z,SAAA,GAASgD,YAAY,+BACrDhG,YAAa,EAAA2c,QAAS5qE,MAAA,wBAA4B,aAAW,gBAAiB,WAAQ,eAAE,EAAAwkE,OAAOn8D,IAAS0pD,YAAY,Q,CAC1G8G,QAAM,SAAEC,GAAS,EACxB,OAA6E,uBAAlEA,EAAUD,OAAOhyD,aAAaiyD,EAAUD,OAAOlK,YAAQ,IAClE,OAAuC,oBAA/BmK,EAAUD,OAAOvM,OAAK,IAC9B,OAAyC,oBAAjCwM,EAAUD,OAAO7K,SAAO,M,qCAGzB,EAAA6c,Q,4BAAf,QAC8C,G,MADvBvjE,MAAM,MAAM,aAAW,MAAO,QAAO,EAAAwjE,WAAY9qE,MAAA,eACnEoH,UAAW,EAAAujE,aAAa5zD,Q,gCACf,EAAM,S,WAApB,QAC8B,G,MADRtR,KAAK,wBAAwB6B,MAAM,MAAO,QAAO,EAAAwjE,WAAY9qE,MAAA,eAC9EoH,UAAU,G,uCAEF,EAAA2jE,gBAAsB,S,WAAvC,QAaY,G,MAb8BnnE,MAAO,EAAAmnE,gBAAkB3Z,YAAY,EAAMG,aAAa,QAC9FvxD,MAAA,kB,mBACA,IAAkE,EAAlE,QAAkE,GAA1D0xD,MAAM,OAAOjpD,OAAO,OAAOzI,MAAA,uBACnC,QAA6E,GAArE0xD,MAAM,UAAUjpD,OAAO,eAAezI,MAAA,uBAC9C,QAQS,GARD0xD,MAAM,cAAcjpD,OAAO,OAAOzI,MAAA,qB,CAC3BwD,MAAI,SAAEs1D,GAAS,EACtB,OAIM,aAHF,QAEW,GAFD94D,MAAA,8B,WAA0C84D,EAAU91D,KAAK8mE,Y,yBAAfhR,EAAU91D,KAAgB,cACzE6uD,QAAS,CAAC,QAAS,SAAU,YAAc,SAAM,GAAE,EAAAoY,iBAAiBnR,EAAU91D,O,kEACxE,OAA0E,IAA1E,GAA0E,W,MAAjC81D,EAAU91D,KAAKknE,qB,4CAKvE,EAAAa,gBAAgBh0D,Q,4BAA5B,QAA+D,MAA/D,Q,kCAUR,QACIpX,KAAM,cACNqD,OACI,MAAO,CACHgnE,eAAgB,GAChBK,oBAAqB,GACrBzjE,YAAa,KACbmjE,qBAAqB,EACrBF,aAAc,GACdc,aAAc,GACdC,QAAS,GACTG,gBAAiB,GACjBF,QAAQ,EAEhB,EACAhnE,SAAU,CACN08D,oBACI,OAAO9/D,KAAKyF,OAAOC,QAAQC,cAC/B,GAEJvF,QAAS,CACLqqD,iBACI,OAAOzqD,KAAKyF,OAAOC,QAAQS,WAC/B,EACAokE,kBAAkB3mB,GACd,IAAIj+C,EAAiBi+C,GAAoB5jD,KAAKyF,OAAOC,QAAQC,eAC7D0P,QAAQC,IAAI3P,GACRA,GAAgBC,KAChB5F,KAAKupE,eAAiB,IACfvpE,KAAKwqE,kBAAkB7kE,EAAe8kE,WAAY,YAClDzqE,KAAKwqE,kBAAkB7kE,EAAe+kE,YAAa,aACnD1qE,KAAKwqE,kBAAkB7kE,EAAeglE,cAAe,aAGpE,EACAH,kBAAkBL,EAASN,GACvB,OAAOM,EAAQ1hE,KAAIwvB,IACR,IACAA,EACH/4B,KAAM,GAAG+4B,EAAE7xB,aAAa6xB,EAAEi2B,WAC1Bmb,YAAaQ,EACbJ,cAAc,EACdC,gBAAiB,iBAG7B,EACAkB,4BACI,IAAIjlE,EAAiB3F,KAAKyF,OAAOC,QAAQC,eACrCA,GAAgBC,KACZD,EAAe44D,aAAaprD,SAASnT,KAAKmG,YAAYP,IACtD5F,KAAKmG,YAAYkjE,YAAc,QAE1B1jE,EAAe64D,cAAcrrD,SAASnT,KAAKmG,YAAYP,IAC5D5F,KAAKmG,YAAYkjE,YAAc,SAE1B1jE,EAAe04D,gBAAgBlrD,SAASnT,KAAKmG,YAAYP,MAC9D5F,KAAKmG,YAAYkjE,YAAc,YAG3C,EACAwB,yBACI,IAAI5sE,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,2BAA2B/F,KAAKyqD,iBAAiB8C,WAC7Dj0C,MAAKC,IACFA,EAAShX,KAAK8qB,SAAQ4K,IAClBA,EAAE/4B,KAAO,GAAG+4B,EAAE7xB,aAAa6xB,EAAEi2B,WAC7Bj2B,EAAE4xC,KAAO5xC,EAAEqvB,SAASva,QAAQ,cAAe,IAC3C9U,EAAEwxC,cAAe,EACjBxxC,EAAE8xC,YAAa,EACf9xC,EAAE+vB,SAAW,aAAa,IAE9B/pD,EAAM2rE,oBAAsBrwD,EAAShX,KAAK6+C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEwlC,SAAWxlC,EAAE5iB,KAAKsc,cAAgB6lC,EAAEiG,SAAWjG,EAAEniD,KAAKsc,cAAiB,GAAK,GAAE,GAEtJ,EACAsuD,eAAexkB,GACXA,EAAKmkB,cAAe,EACpBzpE,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,wBAAwBu/C,EAAKukB,OAAQvkB,GAClDhsC,MAAKC,IACF+rC,EAAKmkB,cAAe,CAAK,IAE5BtsD,OAAOC,IACJ/H,QAAQC,IAAI8H,GACZkoC,EAAKmkB,cAAe,CAAK,GAErC,EACAO,aAAa1kB,GACTA,EAAKykB,YAAa,EAClB/pE,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,+BAA+Bu/C,EAAK1/C,oBACjD0T,MAAKC,IACF+rC,EAAKiC,UAAW,EAChBjC,EAAKykB,YAAa,CAAK,IAE1B5sD,OAAOC,IACJ/H,QAAQC,IAAI8H,GACZkoC,EAAKykB,YAAa,CAAK,GAEnC,EACAE,WAAW3kB,GACP,IAAIrnD,EAAQ+B,KACZslD,EAAK0C,SAAW,wBAChBhoD,KAAK6F,MACA8xD,OAAO,GAAG33D,KAAK+F,wBAAwBu/C,EAAK6H,QAC5C7zC,MAAKC,IACF,IAAI9D,EAAQxX,EAAM2rE,oBAAoBz4C,QAAQm0B,GAC1C7vC,GAAS,GACTxX,EAAM2rE,oBAAoB/nC,OAAOpsB,EAAO,GAE5C6vC,EAAK0C,SAAW,aAAa,IAEhC7qC,OAAOC,IACJ/H,QAAQC,IAAI8H,GACZkoC,EAAK0C,SAAW,aAAa,GAEzC,EACA+b,OAAO1jE,GACH,GAAIA,EAAM2uD,MAAM5/B,OAAO9Y,OAAQ,CAC3B,IAAIw0D,EAAoB,IAAI9qE,KAAKupE,eAAe9gE,KAAIwvB,GAAKA,EAAEryB,QAAQ5F,KAAKkqE,aAAazhE,KAAIwvB,GAAKA,EAAEryB,MAC5FvF,EAAM2uD,MAAM5/B,OAAOjc,SAAS,KAC5BnT,KAAK6F,MAAMqN,IAAI,GAAGlT,KAAK+F,gCAAgC1F,EAAM2uD,MAAM5/B,OAAO5T,iBACrElC,MAAKC,IACFvZ,KAAKmqE,QAAU5wD,EAAShX,KAAKqW,QAAOm7B,IAAM+2B,EAAkB33D,SAAS4gC,EAAEnuC,MAAK6C,KAAIsrC,IACrE,IACAA,EACH70C,KAAM,GAAG60C,EAAE3tC,aAAa2tC,EAAEma,cAEjC,IAITluD,KAAK6F,MAAMqN,IAAI,GAAGlT,KAAK+F,+BAA+B1F,EAAM2uD,MAAM5/B,OAAO5T,yBAAyBxb,KAAKyqD,iBAAiB8C,WACnHj0C,MAAKC,IACFvZ,KAAKmqE,QAAU5wD,EAAShX,KAAKqW,QAAOm7B,IAAM+2B,EAAkB33D,SAAS4gC,EAAEnuC,MAAK6C,KAAIsrC,IACrE,IACAA,EACH70C,KAAM,GAAG60C,EAAE3tC,aAAa2tC,EAAEma,cAEjC,GAGjB,CACJ,EACAmc,aACIrqE,KAAKoqE,QAAS,EACdpqE,KAAK6F,MAAMC,KAAK,GAAG9F,KAAK+F,wCAAwC/F,KAAKyF,OAAOC,QAAQC,eAAeC,cAAc5F,KAAKkqE,aAAazhE,KAAIsiE,GAAKA,EAAEnlE,KAAIkU,KAAK,oBAClJR,MAAKC,IACFvZ,KAAKsqE,gBAAkBtqE,KAAKkqE,aAAazhE,KAAIwvB,IAClC,IACAA,EACHoxC,YAAa,SACbK,gBAAiB,kBAGzB1pE,KAAKyF,OAAOO,SAAS,oBAAqB,CACtC49C,QAAS,IACF5jD,KAAKyF,OAAOC,QAAQC,eACvB8kE,WAAYlxD,EAAShX,KAAKkoE,WAC1BC,YAAanxD,EAAShX,KAAKmoE,YAC3BC,cAAepxD,EAAShX,KAAKooE,cAC7BpM,aAAchlD,EAAShX,KAAKg8D,aAC5BC,cAAejlD,EAAShX,KAAKi8D,cAC7BH,gBAAiB9kD,EAAShX,KAAK87D,mBAGvCr+D,KAAKuqE,kBAAkBhxD,EAAShX,MAChCvC,KAAKkqE,aAAe,GACpBlqE,KAAKoqE,QAAS,CAAK,GAE/B,EACAZ,iBAAiBwB,GACbA,EAAOvB,cAAe,EACtBzpE,KAAK6F,MAAMC,KAAK,GAAG9F,KAAK+F,wCAAwC/F,KAAKyF,OAAOC,QAAQC,eAAeC,cAAcolE,EAAOplE,WAAWolE,EAAO3B,YAAY7tD,iBACjJlC,MAAKC,IACFyxD,EAAOvB,cAAe,EACtBzpE,KAAKyF,OAAOO,SAAS,oBAAqB,CACtC49C,QAAS,IACF5jD,KAAKyF,OAAOC,QAAQC,eACvB8kE,WAAYlxD,EAAShX,KAAKkoE,WAC1BC,YAAanxD,EAAShX,KAAKmoE,YAC3BC,cAAepxD,EAAShX,KAAKooE,cAC7BpM,aAAchlD,EAAShX,KAAKg8D,aAC5BC,cAAejlD,EAAShX,KAAKi8D,cAC7BH,gBAAiB9kD,EAAShX,KAAK87D,mBAGvCr+D,KAAKuqE,kBAAkBhxD,EAAShX,KAAK,GAEjD,EACAonE,aAAaqB,GACTA,EAAOtB,gBAAkB,wBACzB1pE,KAAK6F,MAAM8xD,OAAO,GAAG33D,KAAK+F,wCAAwC/F,KAAKyF,OAAOC,QAAQC,eAAeC,aAAaolE,EAAOplE,MACpH0T,MAAKC,IACFyxD,EAAOtB,gBAAkB,cACzB1pE,KAAKyF,OAAOO,SAAS,oBAAqB,CACtC49C,QAAS,IACF5jD,KAAKyF,OAAOC,QAAQC,eACvB8kE,WAAYlxD,EAAShX,KAAKkoE,WAC1BC,YAAanxD,EAAShX,KAAKmoE,YAC3BC,cAAepxD,EAAShX,KAAKooE,cAC7BpM,aAAchlD,EAAShX,KAAKg8D,aAC5BC,cAAejlD,EAAShX,KAAKi8D,cAC7BH,gBAAiB9kD,EAAShX,KAAK87D,mBAGvCr+D,KAAKuqE,kBAAkBhxD,EAAShX,KAAK,GAEjD,EACAitD,QACIxvD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,GAEJpoD,UACIC,KAAKuqE,oBACLvqE,KAAK6qE,yBACL7qE,KAAKmG,YAAcnG,KAAKyqD,iBACxBzqD,KAAKmG,YAAY0jE,KAAO7pE,KAAKmG,YAAYmhD,SAASva,QAAQ,cAAe,IACzE/sC,KAAK4qE,2BACT,GC3YJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,yECRyB,U,YASD,OAAuB,YAAjB,cAAU,K,YAGhB,OAiFM,OAjFD3rE,MAAM,YAAU,EACjB,OAKM,OALDA,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAAmE,KAAhEA,MAAM,4BAA4BM,MAAA,4BAEzC,OAAmB,SAAhB,mBAEP,OAIK,YAHD,OAA6B,UAAzB,yBACJ,OAAiC,UAA7B,6BACJ,OAA2C,UAAvC,yCAGR,OAKM,OALDN,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAA8D,KAA3DA,MAAM,uBAAuBM,MAAA,4BAEpC,OAAmC,SAAhC,mCAGP,OAIK,YAHD,OAA0C,UAAtC,sCACJ,OAAmD,UAA/C,+CACJ,OAAuC,UAAnC,qCAGR,OAKM,OALDN,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAAyE,KAAtEA,MAAM,eAAeM,MAAA,gDAE5B,OAAgD,SAA7C,gDAEP,OAEK,YADD,OAA6C,UAAzC,2CAGR,OAKM,OALDN,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAAsD,OAAjDwF,IAAI,cAAcxF,MAAM,aAAayF,IAAI,WAElD,OAAsC,SAAnC,sCAGP,OAKM,OALDzF,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAAsE,OAAjEwF,IAAI,sBAAsBxF,MAAM,aAAayF,IAAI,mBAE1D,OAAwB,SAArB,wBAGP,OAKM,OALDzF,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAAgE,KAA7DA,MAAM,yBAAyBM,MAAA,4BAEtC,OAAsC,SAAnC,sCAGP,OAKM,OALDN,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAAmE,KAAhEA,MAAM,4BAA4BM,MAAA,4BAEzC,OAAuC,SAApC,uCAEP,OAGK,YAFD,OAAgD,UAA5C,4CACJ,OAA2D,UAAvD,yDAGR,OAKM,OALDN,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAAoE,OAA/DwF,IAAI,qBAAqBxF,MAAM,aAAayF,IAAI,kBAEzD,OAA0C,SAAvC,0CAGP,OAKM,OALDzF,MAAM,mBAAiB,EACxB,OAEM,OAFDA,MAAM,kBAAgB,EACvB,OAA4D,KAAzDA,MAAM,qBAAqBM,MAAA,4BAElC,OAAkE,SAA/D,mE,iBAGX,OAwBM,a,QAxBD,8DAED,OAqBK,YApBD,OAEK,YAFD,OACoC,KADjCu1C,KAAK,4DACJx0C,OAAO,UAAS,mBAExB,OAE6B,YAFzB,OAEoB,KAFjBw0C,KAAK,sEACJx0C,OAAO,UAAS,2BAExB,OAEwB,YAFpB,OAEe,KAFZw0C,KAAK,kEACJx0C,OAAO,UAAS,yBAExB,OAE0B,YAFtB,OAEiB,KAFdw0C,KAAK,6DACJx0C,OAAO,UAAS,oBAExB,OAC6D,YADzD,OACoD,KADjDw0C,KAAK,8EACJx0C,OAAO,UAAS,mCACxB,OAC2C,YADvC,OACkC,KAD/Bw0C,KAAK,0DACJx0C,OAAO,UAAS,iBACxB,OAGK,YAHD,OAEc,KAFXw0C,KAAK,+DACJx0C,OAAO,UAAS,yB,iBAKhC,OAIM,OAJDf,MAAA,iBAAsB,0HAI3B,K,YAKA,OAAwD,YAAlD,+CAA2C,K,YAErD,OAYM,OAZDA,MAAA,uBAAyB,EAC1B,OAUyF,SAVtF,umB,qKApIvB,QAmJO,GAnJDN,MAAM,QAAM,CACHiuC,OAAK,SAAC,IAEb,C,IAAA,QACyD,GADjDloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,eAAE,EAAAiwD,cAEvCvE,SAAO,SACd,IA0IU,EA1IV,QA0IU,GA1IOqE,YAAa,EAAAA,Y,sCAAA,EAAW,gB,mBACrC,IAsHW,EAtHX,QAsHW,QArHItnD,QAAM,SACb,IAAuB,CAAvB,M,kBAEJ,IAiHc,EAjHd,QAiHc,GAjHD/I,MAAM,gBAAc,C,kBAC7B,IAiFM,CAjFN,GAkFA,GAyBA,M,gBAOR,QAiBW,QAhBI+I,QAAM,SACb,IAAwD,CAAxD,M,kBAEJ,IAYM,CAZN,M,0CAqBpB,QACI9I,KAAM,YACNqD,OACI,MAAO,CACP,CACJ,EACAa,SAAU,CACV,EACAhD,QAAS,CACLovD,QACIxvD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,GAEJpoD,UACA,GChKJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,yECNyB,Y,IAERR,MAAA,6C,YACD,OAGI,KAHDN,MAAM,cAAcM,MAAA,gEAA+D,2MAGtF,K,IAOCN,MAAM,eAAgCM,MAAA,uB,YACvC,OAGM,OAHDA,MAAA,mGAA4F,EAC7F,OAA6D,KAA1DN,MAAM,wBAAwBM,MAAA,wBACjC,OAA0B,UAAtB,uB,SAFR,I,uBAQI,OAAsD,SAA/CN,MAAM,gBAAe,sBAAkB,K,YAQlD,OAAkC,OAA7B2G,GAAG,qBAAmB,W,UAEE3G,MAAM,gB,IAO1BA,MAAM,iB,YACP,OAA2C,MAAvCA,MAAM,UAAS,uBAAmB,K,IACjCA,MAAM,QAAQM,MAAA,kB,YACf,OACoB,SADbwrD,IAAI,gBAAgB9rD,MAAM,mBAAmBM,MAAA,0BAA6B,qBACrE,K,IAIXN,MAAM,QAAQM,MAAA,kB,YACf,OAAwF,SAAjFwrD,IAAI,QAAQ9rD,MAAM,mBAAmBM,MAAA,0BAA6B,WAAO,K,UAI7EN,MAAM,mC,YAKb,OAAsD,SAA/CA,MAAM,gBAAe,sBAAkB,K,UACcA,MAAM,gB,IAazEA,MAAM,iB,YACP,OAKM,OALDA,MAAM,yBAAuB,W,YAMlC,OACM,OADDA,MAAM,yBAAuB,W,IAE7BA,MAAM,yB,IAQNA,MAAM,yB,IAMVA,MAAM,iB,IACFA,MAAM,0B,IAINA,MAAM,yB,IAOVA,MAAM,iB,IACFA,MAAM,0B,IAINA,MAAM,yB,IASlBA,MAAM,iB,YAEc,gD,YAC8B,OACtC,UAD0C,4DAC/C,K,IAMKA,MAAM,iB,IAEI2G,GAAG,mBAAmB3G,MAAM,qC,YAE3B,OAAY,UAAR,OAAG,K,YACP,OAAyC,YAArC,OAAgC,SAAzB2G,GAAG,WAAU,U,iBACxB,OAAc,UAAV,SAAK,K,YAKb,OAKK,YAJD,OAAY,UAAR,QACJ,OAAa,UAAT,SACJ,OAAc,UAAV,UACJ,OAAa,UAAT,U,iBAER,OAKK,YAJD,OAAY,UAAR,QACJ,OAAa,UAAT,SACJ,OAAc,UAAV,UACJ,OAAa,UAAT,U,iBAER,OAKK,YAJD,OAAY,UAAR,QACJ,OAAa,UAAT,SACJ,OAAc,UAAV,UACJ,OAAa,UAAT,U,iBAehB,OACyE,SADlE3G,MAAM,oCAAoCM,MAAA,uBAAyB,2FACT,K,UAW5EN,MAAM,U,YAEc,uB,UAUpBA,MAAM,U,YAEc,sB,0SAxMzB,QAyHO,GAzHAA,OAAK,QAAmB,IAAhB,EAAAqwD,aAAqC,IAAhB,EAAAA,aAAuB,EAAAnI,WAA0B,SAAb,a,CAEzDja,OAAK,SAAC,IAEb,C,IAAA,OAOM,MAPN,GAOM,CANF,IAIA,QAC4E,GADpEloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,eAAE,EAAAiwD,SAAS,aAAW,eAI/DvE,SAAO,SACd,IAKM,E,SALN,OAKM,MALN,GAKM,S,MAL4B,EAAAU,WAMtB,EAAAA,S,4BAAZ,QAiDM,UAhDa,EAAAxE,YAAe,EAAAwE,SAA2B,IAAhB,EAAA2D,a,4BAAzC,QAAwG,G,MAA3C1L,QAAS,EAAAA,QAAUqnB,UAAW,EAAAA,W,iCACxB,EAAU,Y,qBAA7E,QAMc,G,MANDhsE,MAAM,gB,mBACf,IAAsD,CAAtD,IACA,QAGa,GAHDA,MAAM,eACbg4D,MAAO,EAAArT,QAAQsnB,QAAQ9pB,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEq1C,SAAW9V,EAAE8V,SAAY,GAAK,IACvEC,SAAQ,GAAK,EAAA4N,eAAe,EAAAphB,QAAQuJ,OAAQmK,QAAA,GAAS3wD,SAAU,EAAAi9C,QAAQwD,U,6DAJtB,IAAhB,EAAAkI,gB,eAOzB,EAAAnI,YAAe,EAAAwE,SAA2B,IAAhB,EAAA2D,a,4BAA3C,QACkE,G,MADH1L,QAAS,EAAAA,QACnEunB,iBAAkB,EAAAA,iBAAmBF,UAAW,EAAAA,W,oDACrD,GACmE,EAAU,Y,qBAA7E,QAMc,G,MANDhsE,MAAM,gB,mBACf,IAAyE,CAA5D,EAAU,a,WAAvB,QAAyE,QAAzE,GAA8C,yB,eAC5B,EAAU,a,WAA5B,QAGa,G,MAHiBA,MAAM,eAC/Bg4D,MAAO,EAAArT,QAAQwnB,SAAShqB,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEq1C,SAAW9V,EAAE8V,SAAY,GAAK,IACxEC,SAAQ,GAAK,EAAA4N,eAAe,EAAAphB,QAAQuJ,OAAQmK,QAAA,GAAS3wD,SAAU,EAAAi9C,QAAQwD,U,8EAJtB,IAAhB,EAAAkI,gB,yBAO1C,QA6Bc,GA7BDrwD,MAAM,gBAAc,C,kBAC7B,IA2BM,EA3BN,OA2BM,MA3BN,GA2BM,CA1BF,IACA,OAKM,MALN,GAKM,CAJF,IAEA,QACgD,GADrCA,MAAM,Q,WAAkB,EAAAosE,c,qCAAA,EAAa,iBAAE,mBAAiB,eAC/D,aAAW,gBAAgB9rE,MAAA,Y,0BAEnC,OAIM,MAJN,GAIM,CAHF,IACA,QACqB,GADVN,MAAM,Q,WAAiB,EAAA4sD,M,qCAAA,EAAK,SAAE,mBAAiB,QAAQ,aAAW,QACzEtsD,MAAA,Y,yBAE6C,EAAA+rE,uBAAyB,EAAAnkB,a,WAA9E,QACkE,QADlE,GAA0F,mE,gBAE1F,QAEuB,GAFDloD,MAAM,eAAgB+kD,WAAY,EAAAunB,sBACnD3nB,QAAS,EAAAA,QAAStd,KAAK,O,iCAE5B,GAC2C,GAA9B,EAAAsd,QAAQ4nB,YAAYl1D,QAAe,EAAA6wC,a,WAAhD,QAGyB,QAHzB,GAAiF,2C,gBAIjF,QAGa,GAHDloD,MAAM,eAAeqd,OAAO,IAAK1W,GAAI,oBAAqB4qD,SAAS,WAC1E,SAAQ,EAAAib,kBAAoBxU,MAAO,EAAArT,QAAQ4nB,YAAa3kE,MAAM,qBAC9DuwD,SAAQ,GAAK,EAAA4N,eAAe,EAAAphB,QAAQuJ,OAAQmK,QAAA,GAAS3wD,SAAU,EAAAwgD,Y,yEA1BlB,IAAhB,EAAAmI,qBAgCvClnD,QAAM,SACb,IAsBM,E,SAtBN,OAsBM,MAtBN,GAsBM,CArBF,GAMA,IAEA,OAOM,MAPN,GAOM,CALkC,EAAA++C,Y,qCADpC,QACyD,G,MAD7B5nD,MAAA,8BAAiCyF,KAAK,YAAY6B,MAAM,UAC/E,QAAO,EAAA6kE,iB,6BADK,EAAAT,aAKN,EAAA9jB,Y,qCAHX,QAGgC,G,MAHL5nD,MAAA,8BAAiCyF,KAAK,eAAe6B,MAAM,OACjF,QAAK,gBAAE,EAAA6kE,kBAAmB,EAAAlf,YAAa,EAAO,EAAAmf,YAAc,WAC5DhlE,SAAU,EAAA2kE,sBAAwC,eAAhB,EAAAK,aAAgD,cAAhB,EAAAA,a,6BAFvD,EAAAV,gBAKpB,OAIM,MAJN,GAIM,CAHa,EAAA9jB,a,WAEf,QAA+F,G,MAAhFtgD,MAAM,OAAQ7B,KAAM,EAAA45D,OAAQr/D,MAAA,6BAAiC,QAAO,EAAAyzD,U,yCAFnF,QAC2E,G,MADhDnsD,MAAM,OAAQ7B,KAAM,EAAA45D,OAAQr/D,MAAA,6BAClD,QAAK,gBAAE,EAAAqsE,YAAY,GAAIjlE,SAAoB,yBAAV,EAAAi4D,Q,4CAnBK,IAAhB,EAAAtP,gB,SAuBnC,OAWM,MAXN,GAWM,EAVF,OAGM,MAHN,GAGM,EAFF,QACwD,GADhDrwD,MAAM,qBAAqB4H,MAAM,OAAO7B,KAAK,mBACjDzF,MAAA,6BAAiC,QAAO,EAAAszD,U,uBAEhD,OAKM,MALN,GAKM,CAJa,EAAA1L,a,WAGf,QAA+F,G,MAAhFtgD,MAAM,OAAQ7B,KAAM,EAAA45D,OAAQr/D,MAAA,6BAAiC,QAAO,EAAAyzD,U,yCAHnF,QAEoD,G,MAFzBnsD,MAAM,OAAQ7B,KAAM,EAAA45D,OAAQr/D,MAAA,6BAClD,QAAK,gBAAG,EAAAq/D,OAAS,wBAAyB,EAAAiN,cAAc,GACxDllE,SAAoB,yBAAV,EAAAi4D,Q,4CAR4B,IAAhB,EAAAtP,gB,SAYnC,OAWM,MAXN,GAWM,EAVF,OAGM,MAHN,GAGM,EAFF,QACwD,GADhDrwD,MAAM,qBAAqB4H,MAAM,OAAO7B,KAAK,mBACjDzF,MAAA,6BAAiC,QAAO,EAAAszD,U,uBAEhD,OAKM,MALN,GAKM,CADS,EAAA1L,YAA8B,cAAhB,EAAAwkB,a,4BAHzB,QAG6E,G,MAHrEpsE,MAAA,6BAAiCyF,KAAM,EAAAwnD,WAAa,wBAA0B,aACjF3lD,MAAO,EAAA8kE,YAAc,SAAK,QAAU,EAAAG,OAAM,aAC1CnlE,SAAU,EAAA2kE,sBAAwC,eAAhB,EAAAK,aAAgD,cAAhB,EAAAA,aAAyC,KAAV,EAAA9f,OAAkC,KAAlB,EAAAwf,cAChEnqE,KAAK,U,8DAThB,IAAhB,EAAAouD,kB,0BA3G9B,EAAAyc,oB,SAyHb,OA+DM,MA/DN,GA+DM,EA9DF,QA6DO,GA7DDxsE,MAAA,iBAAmB,CACV2tC,OAAK,SAAC,IAC8B,C,GAAA,MAKpC+d,SAAO,SAEd,IAkDM,EAlDN,OAkDM,MAlDN,GAkDM,EAjDF,QA6Bc,GA7BD1rD,MAAA,oDAAoD,C,kBAC7D,IA2BQ,EA3BR,OA2BQ,QA3BR,GA2BQ,EA1BJ,OAOK,WAND,GACA,GACA,IACA,OAEK,YADD,QAAqC,GAA1BqG,GAAG,SAAS1E,KAAK,aAGpC,GAMA,GAMA,Q,MAY6D,IAAlB,EAAAozD,gB,WADnD,QAC0E,G,MADlE1uD,GAAG,iBAAiBiB,MAAM,WAAW7B,KAAK,eAAgB,QAAO,EAAAgnE,oBACrE/sE,MAAM,oC,qCAE2D,IAAlB,EAAAq1D,gB,WADnD,QAC0E,G,MADlE1uD,GAAG,eAAeiB,MAAM,SAAS7B,KAAK,oBAAqB,QAAO,EAAAgnE,oBACtE/sE,MAAM,oC,sCACV,QAC+C,GADvC2G,GAAG,cAAciB,MAAM,kBAAkB7B,KAAK,cAAe,QAAO,EAAAinE,eACxEhtE,MAAM,oC,qBACV,QAC+C,GADvC2G,GAAG,aAAaiB,MAAM,OAAO7B,KAAK,cAAe,QAAO,EAAAknE,WAC5DjtE,MAAM,oC,oBACV,Q,mBApDmB,EAAA8sE,mBAgET,EAAU,a,WAApC,QAWM,MAXN,GAWM,EAVF,QASO,GATDxsE,MAAA,iBAAmB,CACV2tC,OAAK,SAAC,IAEjB,C,MACW+d,SAAO,SACd,IAEuC,EAFvC,QAEuC,GAF1BhsD,MAAM,kBACdkE,MAAmB,IAAX,EAAAkzD,SAAiB,EAAA8V,cAAiB,IAAM,IAAMx5D,KAAKyB,MAAiB,IAAX,EAAAiiD,SAAiB,EAAA8V,eACnF5sE,MAAA,8B,8CAIU,EAAU,a,WAApC,QASM,MATN,GASM,EARF,QAOO,GAPDA,MAAA,iBAAmB,CACV2tC,OAAK,SAAC,IAEjB,C,MACW+d,SAAO,SACd,IAA+E,EAA/E,QAA+E,GAAvE1rD,MAAA,gBAAoBsH,MAAM,QAAS,QAAK,eAAE,EAAAulE,YAAa,Q,+FC1M9DntE,MAAM,Q,IACFA,MAAM,iB,IACFA,MAAM,mB,YAAkB,kB,YAG6B,Y,YAGL,M,YAErD,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YAAkB,8B,YAI7B,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uB,EAChC,OAA0D,MAAtDN,MAAM,UAAS,wC,SAEhBA,MAAM,S,YACT,OAIK,MAJDA,MAAM,UAAQ,EACd,OAEK,MAFDotE,QAAQ,KAAI,2B,iBAKZ,kB,YAAc,OAAI,qB,YAClB,wB,YAAoB,OAAI,qB,YACxB,sB,YAAkB,OAAI,qB,YACtB,oB,YAAgB,OAAI,qB,YACpB,wB,YAAoB,OAAI,qB,IAGxBA,QAAQ,K,IACRA,QAAQ,K,YAGZ,OAAyC,MAArCA,QAAQ,KAAI,wBAAoB,K,IAChCA,QAAQ,K,YAGZ,OAAsC,MAAlCA,QAAQ,KAAI,qBAAiB,K,IAC7BA,QAAQ,K,IAGbptE,MAAM,S,YACT,OAIK,MAJDA,MAAM,UAAQ,EACd,OAEK,MAFDotE,QAAQ,KAAI,uC,iBAIpB,OAIK,YAHD,OAA8C,MAA1CptE,MAAM,cAAa,uBACvB,OAAiD,MAA7CA,MAAM,cAAa,0BACvB,OAAmC,MAA/BA,MAAM,cAAa,a,iBAGvB,OAAkC,UAA9B,6BAAyB,K,YAW7B,OAA6B,UAAzB,wBAAoB,K,YAWxB,OAA0B,UAAtB,qBAAiB,K,YAWrB,OAA0B,UAAtB,qBAAiB,K,YAWjB,W,IAcLA,MAAM,S,YACT,OAIK,MAJDA,MAAM,UAAQ,EACd,OAEK,MAFDotE,QAAQ,KAAI,qC,iBAKhB,OAEK,YADD,OAA8D,SAAvDnrE,KAAK,QAAQhC,KAAK,mBAAmB,aAAW,U,QAAO,W,gCAGgD,6B,YAG/D,M,IAIpDD,MAAM,S,YACT,OAIK,MAJDA,MAAM,UAAQ,EACd,OAEK,MAFDotE,QAAQ,KAAI,oE,iBAIpB,OAIK,YAHD,OAAkG,YAA9F,OAA+D,SAAxDnrE,KAAK,WAAW,aAAW,gC,QAA6B,iCACnE,OAAoG,YAAhG,OAAgE,SAAzDA,KAAK,WAAW,aAAW,iC,QAA8B,kCACpE,OAA8J,YAA1J,OAA6F,SAAtFA,KAAK,WAAW,aAAW,8D,QAA2D,gE,iBAGjG,OAA8F,YAA1F,OAA6D,SAAtDA,KAAK,WAAW,aAAW,8B,QAA2B,8B,iBACjE,OAA8G,YAA1G,OAAqE,SAA9DA,KAAK,WAAW,aAAW,sC,QAAmC,sC,iBACrE,OAA2C,SAApCA,KAAK,WAAW,aAAW,U,uBAAS,Y,YAMvD,OAoCQ,SApCDjC,MAAM,SAAO,EAChB,OAIK,MAJDA,MAAM,UAAQ,EACd,OAEK,UAFD,+BAIR,OA6BK,YA5BD,OA2BK,YA1BD,OAyBM,OAzBDA,MAAM,iBAAe,EACtB,OAGM,OAHDA,MAAM,mBAAiB,EACxB,OAA8E,SAAvEiC,KAAK,WAAW,aAAW,+C,QAA4C,kDAGlF,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAAkF,SAA3EiC,KAAK,WAAW,aAAW,mD,QAAgD,sDAGtF,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAA2E,SAApEiC,KAAK,WAAW,aAAW,4C,QAAyC,+CAG/E,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAA0D,SAAnDiC,KAAK,WAAW,aAAW,2B,QAAwB,8BAG9D,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAA+D,SAAxDiC,KAAK,WAAW,aAAW,gC,QAA6B,mCAGnE,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAA8D,SAAvDiC,KAAK,WAAW,aAAW,+B,QAA4B,yC,SAO3EjC,MAAM,S,YACT,OAIK,MAJDA,MAAM,UAAQ,EACd,OAEK,UAFD,8B,iBAOmD,OAAI,qB,IAI9DA,MAAM,U,YAAS,iB,YAEgC,Y,YAEE,M,IAEjDA,MAAM,U,YAAS,gB,YAE+B,Y,YAEE,M,UAIxDA,MAAM,Q,IACFA,MAAM,iB,IACFA,MAAM,mB,YAIX,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YACX,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uB,EAChC,OAAiE,MAA7DN,MAAM,UAAS,+C,eAElBA,MAAM,yBAAyBM,MAAA,uB,UAG/BN,MAAM,mB,YACP,OAGM,OAHDA,MAAM,iBAAe,EACtB,OAAoD,OAA/CA,MAAM,SAASM,MAAA,eAAkB,aACtC,OAAqD,OAAhDN,MAAM,UAAS,iC,SAGfA,MAAM,U,IACFA,MAAM,U,IACNA,MAAM,U,UAIlBA,MAAM,0B,UAENA,MAAM,yBAAyBM,MAAA,uB,UAI/BN,MAAM,mB,YACP,OAGM,OAHDA,MAAM,iBAAe,EACtB,OAAoD,OAA/CA,MAAM,SAASM,MAAA,eAAkB,aACtC,OAA8D,OAAzDN,MAAM,UAAS,0C,SAGfA,MAAM,U,IACFA,MAAM,U,IACNA,MAAM,U,UAIlBA,MAAM,yBAAyBM,MAAA,uB,UAI/BN,MAAM,mB,YACP,OAGM,OAHDA,MAAM,iBAAe,EACtB,OAAoD,OAA/CA,MAAM,SAASM,MAAA,eAAkB,aACtC,OAAuD,OAAlDN,MAAM,UAAS,mC,SAGfA,MAAM,U,IACFA,MAAM,U,IACNA,MAAM,U,UAIlBA,MAAM,yBAAyBM,MAAA,uB,YAEhC,OAA8D,MAA1DN,MAAM,UAAS,0CAAsC,K,IAAzD,I,UAECA,MAAM,yBAAyBM,MAAA,uB,UAI7BN,MAAM,S,2BAGyG,sC,2BAGiB,sD,2BAKzC,gC,2BAGF,kB,YAKvE,OAAkE,SAA3DiC,KAAK,WAAYorE,SAAS,EAAM,aAAW,iB,qBAS1ErtE,MAAM,Q,IACFA,MAAM,iB,IACFA,MAAM,mB,YAIX,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YACX,OAAI,qB,YACJ,OAAI,qB,UACCA,MAAM,yBAAyBM,MAAA,uB,UAG/BN,MAAM,mB,YACP,OAGM,OAHDA,MAAM,iBAAe,EACtB,OAAoD,OAA/CA,MAAM,SAASM,MAAA,eAAkB,aACtC,OAA8D,OAAzDN,MAAM,UAAS,0C,SAGfA,MAAM,U,IACFA,MAAM,U,IACNA,MAAM,U,UAIlBA,MAAM,yBAAyBM,MAAA,uB,UAI/BN,MAAM,mB,YACP,OAGM,OAHDA,MAAM,iBAAe,EACtB,OAAoD,OAA/CA,MAAM,SAASM,MAAA,eAAkB,aACtC,OAAuD,OAAlDN,MAAM,UAAS,mC,SAGfA,MAAM,U,IACFA,MAAM,U,IACNA,MAAM,U,UAIlBA,MAAM,yBAAyBM,MAAA,uB,YAEhC,OAA8D,MAA1DN,MAAM,UAAS,0CAAsC,K,IAAzD,I,UAECA,MAAM,yBAAyBM,MAAA,uB,UAI7BN,MAAM,S,2BAGyG,sC,2BAGiB,sD,2BAKzC,gC,2BAGF,kB,YAKvE,OAAkE,SAA3DiC,KAAK,WAAYorE,SAAS,EAAM,aAAW,iB,qBAS1ErtE,MAAM,Q,IACFA,MAAM,iB,IACFA,MAAM,mB,YAIX,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YACX,OAAI,qB,YACJ,OAAI,qB,YACJ,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uBAAwB,sDAE5D,K,IACKN,MAAM,mB,YACP,OAGM,OAHDA,MAAM,iBAAe,EACtB,OAAoD,OAA/CA,MAAM,SAASM,MAAA,eAAkB,aACtC,OAAuD,OAAlDN,MAAM,UAAS,mC,SAGfA,MAAM,U,IACFA,MAAM,U,IACNA,MAAM,U,UAIlBA,MAAM,yBAAyBM,MAAA,uB,YAChC,OAA8D,MAA1DN,MAAM,UAAS,0CAAsC,K,IAAzD,I,UAECA,MAAM,yBAAyBM,MAAA,uB,UAG7BN,MAAM,S,2BAGyG,sC,2BAMpF,sD,2BAK4D,gC,2BAGF,kB,YAKvE,OAAkE,SAA3DiC,KAAK,WAAYorE,SAAS,EAAM,aAAW,iB,qBAS1ErtE,MAAM,Q,IAEFA,MAAM,iB,IACFA,MAAM,mB,YAIX,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YACX,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uB,EAChC,OAA8D,MAA1DN,MAAM,UAAS,4C,iBAEvB,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uBAAwB,+DAE5D,K,IACON,MAAM,S,2BAGyG,sC,2BAMpF,sD,2BAK4D,gC,2BAGF,kB,YAKvE,OAAkE,SAA3DiC,KAAK,WAAW,aAAW,gBAAiBorE,SAAS,G,eASpFrtE,MAAM,Q,IACFA,MAAM,iB,IACFA,MAAM,mB,YAIX,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YACX,OAAI,qB,YACJ,OAAI,qB,UACCA,MAAM,yBAAyBM,MAAA,uB,YAChC,OAAkD,MAA9CN,MAAM,UAAS,8BAA0B,K,IAA7C,I,UAECA,MAAM,0B,UAaNA,MAAM,0B,YACP,OAA2B,SAAxB,wBAAoB,K,IAAvB,I,IAECA,MAAM,mB,YACP,OAKM,OALDA,MAAM,iBAAe,EACtB,OAA+C,OAA1CA,MAAM,UAAS,0BACpB,OAAuC,OAAlCA,MAAM,UAAS,kBACpB,OAAgC,OAA3BA,MAAM,UAAS,WACpB,OAA8B,OAAzBA,MAAM,UAAS,U,SAGfA,MAAM,U,IACFA,MAAM,U,IACNA,MAAM,U,IACNA,MAAM,SAASM,MAAA,sB,IAEfN,MAAM,SAASM,MAAA,uB,IAMnCN,MAAM,Q,IAEFA,MAAM,iB,IACFA,MAAM,mB,YAIX,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YACX,OAAI,qB,YACJ,OAAI,qB,UACCA,MAAM,0B,YACP,OAAsD,SAAnD,mDAA+C,K,IAAlD,I,IAECA,MAAM,mB,IACFA,MAAM,iB,YAKP,OAAsC,OAAjCA,MAAM,UAAS,gBAAY,K,YAChC,OAA8D,OAAzDA,MAAM,SAASM,MAAA,gBAAmB,qBAAiB,K,YACxD,OAAgD,OAA3CN,MAAM,SAASM,MAAA,gBAAmB,OAAG,K,YAC1C,OAAmD,OAA9CN,MAAM,SAASM,MAAA,gBAAmB,UAAM,K,YAC7C,OAAoE,OAA/DN,MAAM,SAASM,MAAA,gBAAmB,2BAAuB,K,IAGzDN,MAAM,U,IACFA,MAAM,U,IAKNA,MAAM,U,IAINA,MAAM,iB,IACNA,MAAM,iB,IACNA,MAAM,iB,IACNA,MAAM,iB,IAM1BA,MAAM,Q,IAEFA,MAAM,iB,IACFA,MAAM,mB,YAIX,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YACX,OAAI,qB,YACJ,OAAI,qB,UACCA,MAAM,yBAAyBM,MAAA,uB,YAChC,OAAqE,MAAjEN,MAAM,UAAS,iDAA6C,K,IAAhE,I,IAECA,MAAM,oB,IACFA,MAAM,mB,IACFA,MAAM,iB,YACP,OAAwD,OAAnDA,MAAM,SAASM,MAAA,gBAAqB,aAAS,K,YAClD,OAA4D,OAAvDN,MAAM,SAASM,MAAA,iBAAsB,gBAAY,K,YAItD,OAA0E,OAArEN,MAAM,SAASM,MAAA,gBAAoB,gCAA4B,K,YACpE,OAA+D,OAA1DN,MAAM,SAASM,MAAA,gBAAoB,qBAAiB,K,YACzD,OAAoE,OAA/DN,MAAM,SAASM,MAAA,gBAAoB,0BAAsB,K,YAC9D,OAAgC,OAA3BN,MAAM,UAAS,UAAM,K,IAGrBA,MAAM,U,IACFA,MAAM,U,IACNA,MAAM,U,IACNA,MAAM,iB,IAGNA,MAAM,iB,IAGNA,MAAM,iB,IAKNA,MAAM,iB,UAKNA,MAAM,U,UAINA,MAAM,U,IAO9BA,MAAM,Q,IAEFA,MAAM,iB,IACFA,MAAM,mB,YAIX,OAAmC,OAA9BA,MAAM,mBAAiB,W,IACvBA,MAAM,mB,YACX,OAAI,qB,YACJ,OAAI,qB,UACCA,MAAM,yBAAyBM,MAAA,uB,YAChC,OAAqF,MAAjFN,MAAM,UAAS,iEAA6D,K,IAAhF,I,IAECA,MAAM,oB,IACFA,MAAM,mB,YACP,OAKM,OALDA,MAAM,iBAAe,EACtB,OAAwD,OAAnDA,MAAM,SAASM,MAAA,gBAAqB,cACzC,OAAsC,OAAjCN,MAAM,UAAS,iBACpB,OAAgE,OAA3DA,MAAM,SAASM,MAAA,iBAAqB,sBACzC,OAA+D,OAA1DN,MAAM,SAASM,MAAA,iBAAqB,sB,eAGpCN,MAAM,U,IAEFA,MAAM,U,IACNA,MAAM,U,IACNA,MAAM,iB,IAMNA,MAAM,iB,IAWVA,MAAM,U,YACP,OAA2B,OAAtBA,MAAM,UAAS,KAAC,K,IAChBA,MAAM,U,IACNA,MAAM,iB,YAIX,OAAwC,OAAnCA,MAAM,iBAAgB,WAAO,K,IAOrDA,MAAM,Q,IACFA,MAAM,iB,YACP,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,uB,EAChC,OAAqD,MAAjDN,MAAM,UAAS,mC,SAEhBA,MAAM,S,YACT,OAEK,MAFDA,MAAM,UAAQ,EACd,OAAkD,MAA9CotE,QAAQ,KAAI,mC,iBAGhB,OAAsC,UAAlC,iCAA6B,K,IAExBptE,MAAM,iB,YACP,OAGM,OAHDA,MAAM,mBAAiB,EACxB,OAAuD,SAAhDiC,KAAK,WAAW,aAAW,wB,QAAqB,0B,iBAG3D,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAA0D,SAAnDiC,KAAK,WAAW,aAAW,2B,QAAwB,6B,iBAG9D,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAAoD,SAA7CiC,KAAK,WAAW,aAAW,qB,QAAkB,uB,SAGnDjC,MAAM,U,2BAC8E,a,YASjG,OAAmD,UAA/C,8CAA0C,K,IAErCA,MAAM,iB,YACP,OAGM,OAHDA,MAAM,mBAAiB,EACxB,OAA+C,SAAxCiC,KAAK,WAAW,aAAW,gB,QAAa,kB,iBAGnD,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAAkD,SAA3CiC,KAAK,WAAW,aAAW,mB,QAAgB,qB,iBAGtD,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAAoD,SAA7CiC,KAAK,WAAW,aAAW,qB,QAAkB,uB,iBAGxD,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAA+C,SAAxCiC,KAAK,WAAW,aAAW,gB,QAAa,kB,iBAGnD,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAAwD,SAAjDiC,KAAK,WAAW,aAAW,yB,QAAsB,2B,iBAG5D,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAA+C,SAAxCiC,KAAK,WAAW,aAAW,gB,QAAa,kB,iBAGnD,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAAsD,SAA/CiC,KAAK,WAAW,aAAW,uB,QAAoB,yB,SAGrDjC,MAAM,U,2BAC+E,a,YASlG,OAAqC,UAAjC,gCAA4B,K,IAEvBA,MAAM,iB,YACP,OAGM,OAHDA,MAAM,mBAAiB,EACxB,OAAuD,SAAhDiC,KAAK,WAAW,aAAW,wB,QAAqB,0B,iBAG3D,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAAsD,SAA/CiC,KAAK,WAAW,aAAW,uB,QAAoB,yB,iBAG1D,OAGM,OAHDjC,MAAM,mBAAiB,EACxB,OAAmD,SAA5CiC,KAAK,WAAW,aAAW,oB,QAAiB,sB,SAGlDjC,MAAM,U,2BAC8E,a,oIAjyBzH,QA6yBkB,GA7yBA4oE,MAAO,CAAC,UAAY0E,SAAU,EAAGhtE,MAAA,sCAA4CitE,WAAA,GAAW5mE,GAAG,U,CACxF+xB,MAAI,SACjB,EADqBA,OAAMy5B,aAAO,EAClC,OAuNM,MAvNN,GAuNM,EAtNF,OAqNM,MArNN,GAqNM,EApNF,OAOM,MAPN,GAOM,C,IALF,QACsD,GADzC7uD,KAAM,EAAAkqE,UAAUC,QAAQC,UAAYlpE,KAAM,EAAAwnE,UAAYprE,MAAO,OACrE,QAAK,YAAGusC,GAAM,EAAAqgC,UAAUC,QAAQC,UAAYvgC,I,4BAEjD,QACiD,GADpC7pC,KAAM,EAAAkqE,UAAUC,QAAQlpB,KAAO//C,KAAM,EAAAwnE,UAAYprE,MAAO,OAChE,QAAK,YAAGusC,GAAM,EAAAqgC,UAAUC,QAAQlpB,KAAOpX,I,6BAEhD,IACA,OAGM,MAHN,GAGM,C,IAFF,QACuD,GAD1C7pC,KAAM,EAAAkqE,UAAUC,QAAQE,WAAanpE,KAAM,EAAAwnE,UAAYprE,MAAO,OACtE,QAAK,YAAGusC,GAAM,EAAAqgC,UAAUC,QAAQE,WAAaxgC,I,0BAEtD,IAGA,OAyBQ,QAzBR,GAyBQ,CAxBJ,IAKA,OAMK,YALD,OAAqD,W,GAAnC,I,iBAAO,EAAAwX,QAAQn9C,cAAY,MAC7C,OAAwD,W,GAAhC,I,iBAAO,EAAAm9C,QAAQ+L,WAAS,MAChD,OAAsD,W,GAAhC,I,iBAAO,EAAA/L,QAAQ8L,WAAS,MAC9C,OAAyD,W,GAArC,I,iBAAO,EAAA9L,QAAQgM,gBAAc,MACjD,OAAiE,W,GAAzC,I,iBAAO,EAAAhM,QAAQiM,oBAAkB,QAE7D,OAGK,YAFD,OAAsE,KAAtE,GAAgB,uBAAmB,QAAG,EAAAjM,QAAQ32B,kBAAgB,IAC9D,OAA2E,KAA3E,GAAgB,8BAA0B,QAAG,EAAA22B,QAAQz2B,gBAAc,MAEvE,OAGK,WAFD,IACA,OAA8C,KAA9C,IAA8C,QAA3B,EAAAy2B,QAAQmM,aAAW,MAE1C,OAGK,WAFD,IACA,OAAiD,KAAjD,IAAiD,QAA9B,EAAAnM,QAAQqM,gBAAc,QAGjD,OAqEQ,QArER,GAqEQ,CApEJ,GAKA,IAKA,OAUK,WATD,IACA,OAGK,YAFD,QACuF,GADvE1tD,KAAM,EAAAkqE,UAAUI,KAAKC,IAAIC,OAAS3b,QAAS,EAAAqb,UAAUI,KAAKE,OACrEtpE,KAAM,EAAAwnE,UAAYprE,MAAO,OAAS,SAAM,YAAGusC,GAAM,EAAAqgC,UAAUI,KAAKC,IAAIC,OAAS3gC,I,qCAEtF,OAGK,YAFD,QACqD,GADxC7pC,KAAM,EAAAkqE,UAAUI,KAAKC,IAAIE,QAAUvpE,KAAM,EAAAwnE,UAAYprE,MAAO,OACpE,QAAK,YAAGusC,GAAM,EAAAqgC,UAAUI,KAAKC,IAAIE,QAAU5gC,I,6BAGxD,OAUK,WATD,IACA,OAGK,YAFD,QACsF,GADtE7pC,KAAM,EAAAkqE,UAAUI,KAAKI,GAAGF,OAAS3b,QAAS,EAAAqb,UAAUI,KAAKE,OACpEtpE,KAAM,EAAAwnE,UAAYprE,MAAO,OAAS,SAAM,YAAGusC,GAAM,EAAAqgC,UAAUI,KAAKI,GAAGF,OAAS3gC,I,qCAErF,OAGK,YAFD,QACoD,GADvC7pC,KAAM,EAAAkqE,UAAUI,KAAKI,GAAGD,QAAUvpE,KAAM,EAAAwnE,UAAYprE,MAAO,OACnE,QAAK,YAAGusC,GAAM,EAAAqgC,UAAUI,KAAKI,GAAGD,QAAU5gC,I,6BAGvD,OAUK,WATD,IACA,OAGK,YAFD,QACuF,GADvE7pC,KAAM,EAAAkqE,UAAUI,KAAKK,IAAIH,OAAS3b,QAAS,EAAAqb,UAAUI,KAAKE,OACrEtpE,KAAM,EAAAwnE,UAAYprE,MAAO,OAAS,SAAM,YAAGusC,GAAM,EAAAqgC,UAAUI,KAAKK,IAAIH,OAAS3gC,I,qCAEtF,OAGK,YAFD,QACqD,GADxC7pC,KAAM,EAAAkqE,UAAUI,KAAKK,IAAIF,QAAUvpE,KAAM,EAAAwnE,UAAYprE,MAAO,OACpE,QAAK,YAAGusC,GAAM,EAAAqgC,UAAUI,KAAKK,IAAIF,QAAU5gC,I,6BAGxD,OAUK,WATD,IACA,OAGK,YAFD,QACsF,GADtE7pC,KAAM,EAAAkqE,UAAUI,KAAKM,GAAGJ,OAAS3b,QAAS,EAAAqb,UAAUI,KAAKE,OACpEtpE,KAAM,EAAAwnE,UAAYprE,MAAO,OAAS,SAAM,YAAGusC,GAAM,EAAAqgC,UAAUI,KAAKM,GAAGJ,OAAS3gC,I,qCAErF,OAGK,YAFD,QACoD,GADvC7pC,KAAM,EAAAkqE,UAAUI,KAAKM,GAAGH,QAAUvpE,KAAM,EAAAwnE,UAAYprE,MAAO,OACnE,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUI,KAAKM,GAAGH,QAAU5gC,I,6BAGvD,OAaK,YAZD,OAGK,W,IAFD,QACoD,GADvC7pC,KAAM,EAAAkqE,UAAUI,KAAKO,MAAMluE,KAAOuE,KAAM,EAAAwnE,UAAYprE,MAAO,QACnE,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUI,KAAKO,MAAMluE,KAAOktC,I,2BAEnD,OAGK,YAFD,QACyF,GADzE7pC,KAAM,EAAAkqE,UAAUI,KAAKO,MAAML,OAAS3b,QAAS,EAAAqb,UAAUI,KAAKE,OACvEtpE,KAAM,EAAAwnE,UAAYprE,MAAO,OAAS,SAAM,cAAGusC,GAAM,EAAAqgC,UAAUI,KAAKO,MAAML,OAAS3gC,I,qCAExF,OAGK,YAFD,QACuD,GAD1C7pC,KAAM,EAAAkqE,UAAUI,KAAKO,MAAMJ,QAAUvpE,KAAM,EAAAwnE,UAAYprE,MAAO,OACtE,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUI,KAAKO,MAAMJ,QAAU5gC,I,+BAI9D,OAiBQ,QAjBR,GAiBQ,CAhBJ,IAKA,OAUK,WATD,IAGA,OAKK,YAJD,OAA8G,SAAvGlrC,KAAK,QAAQ,aAAW,iBAAiBhC,KAAK,mBAAoBotE,QAAiC,IAAxB,EAAAG,UAAUY,IAAIC,Q,eAEhG,QAC+C,GADnC,aAAW,SAAU/qE,KAAM,EAAAkqE,UAAUY,IAAIC,OAAS7pE,KAAM,EAAAwnE,UAAYprE,MAAO,MAClF,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUY,IAAIC,OAASlhC,I,kCAItD,OAmBQ,QAnBR,GAmBQ,CAlBJ,GAKA,IAKA,OAOK,WAND,GACA,IACA,OAGK,WAHD,G,IACA,QAC8C,GADjC7pC,KAAM,EAAAkqE,UAAUc,IAAIH,MAAQ3pE,KAAM,EAAAwnE,UAAW,aAAW,SAAUprE,MAAO,QACjF,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUc,IAAIH,MAAQhhC,I,8BAIrD,IAqCA,OAYQ,QAZR,GAYQ,CAXJ,IAKA,OAKK,YAJD,OAGK,YAFD,QACmD,GADtC7pC,KAAM,EAAAkqE,UAAUe,eAAiB/pE,KAAM,EAAAwnE,UAAYprE,MAAO,OAClE,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUe,eAAiBphC,I,wBAAK,UAI/D,OAKM,MALN,GAKM,C,IAJF,QACgD,GADnC7pC,KAAM,EAAAkqE,UAAUgB,SAASC,GAAKjqE,KAAM,EAAAwnE,UAAYprE,MAAO,QAC/D,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUgB,SAASC,GAAKthC,I,4BAC3C,QACkD,GADrC7pC,KAAM,EAAAkqE,UAAUgB,SAASjqB,KAAO//C,KAAM,EAAAwnE,UAAYprE,MAAO,OACjE,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUgB,SAASjqB,KAAOpX,I,8BAEjD,OAKM,MALN,GAKM,C,IAJF,QAC+C,GADlC7pC,KAAM,EAAAkqE,UAAUH,QAAQoB,GAAKjqE,KAAM,EAAAwnE,UAAYprE,MAAO,QAC9D,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUH,QAAQoB,GAAKthC,I,4BAC1C,QACiD,GADpC7pC,KAAM,EAAAkqE,UAAUH,QAAQ9oB,KAAO//C,KAAM,EAAAwnE,UAAYprE,MAAO,OAChE,QAAK,cAAGusC,GAAM,EAAAqgC,UAAUH,QAAQ9oB,KAAOpX,I,iCAIhC,EAAAuhC,QAAQr3D,OAAS,GAAK,EAAAs3D,SAASt3D,OAAS,GAAK,EAAAu3D,eAAev3D,OAAS,I,WAA7F,QA+FM,MA/FN,GA+FM,EA9FF,OA6FM,MA7FN,GA6FM,EA5FF,OAGM,MAHN,GAA6B,gBAAY,QAAG,EAAAm2D,UAAUC,QAAQC,WAAY,YAAQ,QAC9E,EAAAF,UAAUC,QAAQlpB,MACpB,KACF,GACA,IACA,OAA8F,MAA9F,GAA6B,6BAAyB,QAAG,EAAAipB,UAAUC,QAAQE,YAAU,GACrF,GAGkE,EAAAe,QAAQr3D,OAAS,I,WAAnF,QAEM,MAFN,GAAsF,sD,eAGnD,EAAAq3D,QAAQr3D,OAAS,I,WAApD,QAWM,MAXN,GAWM,CAVF,K,aAIA,QAKW,mBALc,EAAAq3D,SAARG,K,WACb,QAGM,MAHN,GAGM,EAFF,OAA6C,MAA7C,IAA6C,QAAtBA,EAAKC,UAAQ,IACpC,OAAyC,MAAzC,IAAyC,QAAlBD,EAAK5uE,MAAI,Q,yBAIF,EAAS,Y,WAAnD,QAC0D,MAD1D,GAAqD,kG,eAG3C,EAAA0uE,SAASt3D,OAAS,GAAK,EAAAq3D,QAAQr3D,QAAU,K,WADnD,QAGM,MAHN,GACuD,+D,eAGpB,EAAAs3D,SAASt3D,OAAS,GAAK,EAAAq3D,QAAQr3D,QAAU,K,WAA5E,QAWM,MAXN,GAWM,CAVF,K,aAIA,QAKW,mBALc,EAAAs3D,UAARE,K,WACb,QAGM,MAHN,GAGM,EAFF,OAA6C,MAA7C,IAA6C,QAAtBA,EAAKC,UAAQ,IACpC,OAAyC,MAAzC,IAAyC,QAAlBD,EAAK5uE,MAAI,Q,yBAKlC,EAAA2uE,eAAev3D,OAAS,GAAK,EAAAs3D,SAASt3D,OAAS,EAAAq3D,QAAQr3D,QAAU,K,WAD3E,QAGM,MAHN,GAC+E,wD,eAG5C,EAAAu3D,eAAev3D,OAAS,GAAK,EAAAs3D,SAASt3D,OAAS,EAAAq3D,QAAQr3D,QAAU,K,WAApG,QAWM,MAXN,GAWM,CAVF,K,aAIA,QAKW,mBALc,EAAAu3D,gBAARC,K,WACb,QAGM,MAHN,GAGM,EAFF,OAA6C,MAA7C,IAA6C,QAAtBA,EAAKC,UAAQ,IACpC,OAAyC,MAAzC,IAAyC,QAAlBD,EAAK5uE,MAAI,Q,yBAKlC,EAAA0uE,SAASt3D,OAAS,EAAAs3D,SAASt3D,OAAS,EAAAq3D,QAAQr3D,QAAU,K,WADhE,QAGM,MAHN,GAGM,M,eAEI,EAAAs3D,SAASt3D,OAAS,EAAAs3D,SAASt3D,OAAS,EAAAq3D,QAAQr3D,QAAU,K,WADhE,QAGM,MAHN,GACoE,iE,eAGzC,EAAAs3D,SAASt3D,QAAU,K,WAA9C,QAyBQ,QAzBR,GAyBQ,EAxBJ,OAuBK,YAtBD,OAqBK,YApBD,OAE6B,aAFxB,OAAqG,SAA9FpV,KAAK,WAAYorE,QAAS,EAAAqB,QAAQr3D,OAAS,EAAG,aAAW,sC,iBAGrE,OAG0B,aAHrB,OAAsH,SAA/GpV,KAAK,WAAYorE,QAAS,EAAAsB,SAASt3D,OAAS,EAAG,aAAW,sD,iBAItE,OAEyB,aAFpB,OAC6E,SADtEpV,KAAK,WAAW,aAAW,+BAC9BorE,QAAS,EAAA1oB,QAAQI,WAAWprC,QAAOwzB,GAAuB,GAAlBA,EAAE4hC,eAAmB13D,OAAS,G,iBAE/E,OAGM,aAHD,OAC2E,SADpEpV,KAAK,WAAW,aAAW,gBAC9BorE,QAAS,EAAA1oB,QAAQI,WAAWprC,QAAOwzB,GAAqB,GAAhBA,EAAE6hC,aAAiB33D,OAAS,G,+BAG7E,QAKW,2BAJwByW,IAAI,EAAA62B,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE8hC,mBAAkBzlE,KAAI2jC,GAAKA,EAAE8hC,mBAAkBvQ,UAA5GwQ,K,WACP,QAEM,YAFD,I,QAAkE,KACnE,QAAGA,EAAa/+C,QAAI,Q,kDAQxB,EAAAu+C,QAAQr3D,OAAS,KAAO,EAAAs3D,SAASt3D,OAAS,GAAK,EAAAu3D,eAAev3D,OAAS,K,WAA/F,QA4EM,MA5EN,GA4EM,EA3EF,OA0EM,MA1EN,GA0EM,EAzEF,OAGM,MAHN,GAA6B,gBAAY,QAAG,EAAAm2D,UAAUC,QAAQC,WAAY,YAAQ,QAC9E,EAAAF,UAAUC,QAAQlpB,MACpB,KACF,GACA,IACA,OAA8F,MAA9F,GAA6B,6BAAyB,QAAG,EAAAipB,UAAUC,QAAQE,YAAU,GACrF,GACA,GACkE,EAAAgB,SAASt3D,OAAS,I,WAApF,QAEM,MAFN,GAAuF,+D,eAGpD,EAAAs3D,SAASt3D,OAAS,I,WAArD,QAWM,MAXN,GAWM,CAVF,K,aAIA,QAKW,mBALc,EAAAs3D,UAARE,K,WACb,QAGM,MAHN,GAGM,EAFF,OAA6C,MAA7C,IAA6C,QAAtBA,EAAKC,UAAQ,IACpC,OAAyC,MAAzC,IAAyC,QAAlBD,EAAK5uE,MAAI,Q,yBAKlC,EAAA2uE,eAAev3D,OAAS,GAAK,EAAAs3D,SAASt3D,QAAU,K,WAD1D,QAGM,MAHN,GAC8D,wD,eAG3B,EAAAu3D,eAAev3D,OAAS,GAAK,EAAAs3D,SAASt3D,QAAU,K,WAAnF,QAWM,MAXN,GAWM,CAVF,K,aAIA,QAKW,mBALc,EAAAu3D,gBAARC,K,WACb,QAGM,MAHN,GAGM,EAFF,OAA6C,MAA7C,IAA6C,QAAtBA,EAAKC,UAAQ,IACpC,OAAyC,MAAzC,IAAyC,QAAlBD,EAAK5uE,MAAI,Q,yBAKlC,EAAA0uE,SAASt3D,OAAS,EAAAs3D,SAASt3D,QAAU,K,WAD/C,QAGM,MAHN,GAGM,M,eAEI,EAAAs3D,SAASt3D,OAAS,EAAAs3D,SAASt3D,QAAU,K,WAD/C,QAGM,MAHN,GACmD,iE,eAGxB,EAAAs3D,SAASt3D,QAAU,K,WAA9C,QAyBQ,QAzBR,GAyBQ,EAxBJ,OAuBK,YAtBD,OAqBK,YApBD,OAE6B,aAFxB,OAAqG,SAA9FpV,KAAK,WAAW,aAAW,qCAAsCorE,QAAS,EAAAqB,QAAQr3D,OAAS,G,iBAGvG,OAG0B,aAHrB,OAAsH,SAA/GpV,KAAK,WAAYorE,QAAS,EAAAsB,SAASt3D,OAAS,EAAG,aAAW,sD,iBAItE,OAEyB,aAFpB,OAC6E,SADtEpV,KAAK,WAAW,aAAW,+BAC9BorE,QAAS,EAAA1oB,QAAQI,WAAWprC,QAAOwzB,GAAuB,GAAlBA,EAAE4hC,eAAmB13D,OAAS,G,iBAE/E,OAGM,aAHD,OAC2E,SADpEpV,KAAK,WAAW,aAAW,gBAC9BorE,QAAS,EAAA1oB,QAAQI,WAAWprC,QAAOwzB,GAAqB,GAAhBA,EAAE6hC,aAAiB33D,OAAS,G,+BAG7E,QAKW,2BAJwByW,IAAI,EAAA62B,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE8hC,mBAAkBzlE,KAAI2jC,GAAKA,EAAE8hC,mBAAkBvQ,UAA5GwQ,K,WACP,QAEM,YAFD,I,QAAkE,KACnE,QAAGA,EAAa/+C,QAAI,Q,kDAQxB,EAAAu+C,QAAQr3D,OAAS,EAAAs3D,SAASt3D,OAAS,IAAM,EAAAu3D,eAAev3D,OAAS,I,WAAzF,QA6DM,MA7DN,GA6DM,EA5DF,OA2DM,MA3DN,GA2DM,EA1DF,OAGM,MAHN,GAA6B,gBAAY,QAAG,EAAAm2D,UAAUC,QAAQC,WAAY,YAAQ,QAC9E,EAAAF,UAAUC,QAAQlpB,MACpB,KACF,GACA,IACA,OAA8F,MAA9F,GAA6B,6BAAyB,QAAG,EAAAipB,UAAUC,QAAQE,YAAU,GACrF,GACA,GACA,IAGA,OAWM,MAXN,GAWM,CAVF,K,aAIA,QAKW,mBALc,EAAAiB,gBAARC,K,WACb,QAGM,MAHN,GAGM,EAFF,OAA6C,MAA7C,IAA6C,QAAtBA,EAAKC,UAAQ,IACpC,OAAyC,MAAzC,IAAyC,QAAlBD,EAAK5uE,MAAI,Q,QAIsB,EAAA2uE,eAAev3D,QAAU,K,WAA3F,QAEM,MAFN,GAEM,M,eAC4D,EAAAu3D,eAAev3D,QAAU,K,WAA3F,QAEM,MAFN,GAA+F,iE,eAGpE,EAAAu3D,eAAev3D,QAAU,K,WAApD,QA4BQ,QA5BR,GA4BQ,EA3BJ,OA0BK,YAzBD,OAwBK,YAvBD,OAE6B,aAFxB,OAAqG,SAA9FpV,KAAK,WAAYorE,QAAS,EAAAqB,QAAQr3D,OAAS,EAAG,aAAW,sC,iBAGrE,OAM0B,aANrB,OAGiB,SAHVpV,KAAK,WAAYorE,QAAS,EAAAsB,SAASt3D,OAAS,EAAG,aAAW,2K,iBAOtE,OAEyB,aAFpB,OAC6E,SADtEpV,KAAK,WAAW,aAAW,+BAC9BorE,QAAS,EAAA1oB,QAAQI,WAAWprC,QAAOwzB,GAAuB,GAAlBA,EAAE4hC,eAAmB13D,OAAS,G,iBAE/E,OAGM,aAHD,OAC2E,SADpEpV,KAAK,WAAW,aAAW,gBAC9BorE,QAAS,EAAA1oB,QAAQI,WAAWprC,QAAOwzB,GAAqB,GAAhBA,EAAE6hC,aAAiB33D,OAAS,G,+BAG7E,QAKW,2BAJwByW,IAAI,EAAA62B,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE8hC,mBAAkBzlE,KAAI2jC,GAAKA,EAAE8hC,mBAAkBvQ,UAA5GwQ,K,WACP,QAEM,YAFD,I,QAAkE,KACnE,QAAGA,EAAa/+C,QAAI,Q,oDASpC,EAAAu+C,QAAQr3D,OAAS,EAAAs3D,SAASt3D,OAAS,EAAAu3D,eAAev3D,QAAU,IAAO,EAAAq3D,QAAQr3D,OAAS,IAAM,EAAAs3D,SAASt3D,OAAS,EAAAu3D,eAAev3D,QAAU,IAAQ,EAAAq3D,QAAQr3D,OAAS,EAAAs3D,SAASt3D,OAAS,IAAM,EAAAu3D,eAAev3D,QAAU,KAA2B,GAAlB,EAAAq3D,QAAQr3D,QAAkC,GAAnB,EAAAs3D,SAASt3D,QAAwC,GAAzB,EAAAu3D,eAAev3D,S,WADlS,QA6CM,MA7CN,GA6CM,EA3CF,OA0CM,MA1CN,GA0CM,EAzCF,OAGM,MAHN,GAA6B,gBAAY,QAAG,EAAAm2D,UAAUC,QAAQC,WAAY,YAAQ,QAC9E,EAAAF,UAAUC,QAAQlpB,MACpB,KACF,GACA,IACA,OAA8F,MAA9F,GAA6B,6BAAyB,QAAG,EAAAipB,UAAUC,QAAQE,YAAU,GACrF,GAGA,IAGA,OA4BQ,QA5BR,GA4BQ,EA3BJ,OA0BK,YAzBD,OAwBK,YAvBD,OAE6B,aAFxB,OAAqG,SAA9F1rE,KAAK,WAAYorE,QAAS,EAAAqB,QAAQr3D,OAAS,EAAG,aAAW,sC,iBAGrE,OAM0B,aANrB,OAGiB,SAHVpV,KAAK,WAAYorE,QAAS,EAAAsB,SAASt3D,OAAS,EAAG,aAAW,2K,iBAOtE,OAEyB,aAFpB,OAC6E,SADtEpV,KAAK,WAAW,aAAW,+BAC9BorE,QAAS,EAAA1oB,QAAQI,WAAWprC,QAAOwzB,GAAuB,GAAlBA,EAAE4hC,eAAmB13D,OAAS,G,iBAE/E,OAGM,aAHD,OAC2E,SADpEpV,KAAK,WAAY,aAAW,gBAC/BorE,QAAS,EAAA1oB,QAAQI,WAAWprC,QAAOwzB,GAAqB,GAAhBA,EAAE6hC,aAAiB33D,OAAS,G,+BAG7E,QAKW,2BAJwByW,IAAI,EAAA62B,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE8hC,mBAAkBzlE,KAAI2jC,GAAKA,EAAE8hC,mBAAkBvQ,UAA5GwQ,K,WACP,QAEM,YAFD,I,QAAkE,KACnE,QAAGA,EAAa/+C,QAAI,Q,gDAQhD,QA+CM,mBA/CoC,EAAAg/C,aAAa,EAAAxqB,QAAQnX,MAAO,GAAI,KAAN,CAA1CA,EAAO4hC,M,WAAjC,QA+CM,MA/CN,GA+CM,EA9CF,OA6CM,MA7CN,GA6CM,EA5CF,OAGM,MAHN,GAA6B,gBAAY,QAAG,EAAA5B,UAAUC,QAAQC,WAAY,YAAQ,QAC9E,EAAAF,UAAUC,QAAQlpB,MACpB,KACF,GACA,IACA,OAA8F,MAA9F,GAA6B,6BAAyB,QAAG,EAAAipB,UAAUC,QAAQE,YAAU,GACrF,GACA,GAC0E,GAARyB,I,WAAlE,QAEM,MAFN,GAEM,M,eAC4C,GAARA,I,WAA1C,QAYM,MAZN,GAAqD,0gB,eAaH,GAARA,I,WAA1C,QAEM,MAFN,GAEM,M,gBACN,OAgBM,MAhBN,GAgBM,CAfF,K,aAMA,QAQW,mBARc5hC,GAAR/sB,K,WACb,QAMM,MANN,GAMM,EALF,OAAyC,MAAzC,IAAyC,QAAlBA,EAAKxgB,MAAI,IAChC,OAA0C,MAA1C,IAA0C,QAAnBwgB,EAAKq4C,OAAK,IACjC,OAC+B,MAD/B,IAC+B,QADe,EAAAnU,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAA2C,EAAK,OAAI,GAAK,MAAI,IAEvI,OAAqF,MAArF,IAAqF,WAAnC8Z,EAAK/a,WAAW+a,EAAK5a,OAAG,Q,oCAM9F,QA6CM,mBA5C6C,EAAAspE,aAAa,EAAAE,oCAAqC,EAAAC,qCAAqC,EAAAD,qCAAuC,IAAM,GAAK,GAAI,EAAAC,qCAAqC,EAAAD,qCAAuC,IAAM,GAAK,KAAf,CAA5PE,EAA8BH,M,WAD1C,QA6CM,MA7CN,GA6CM,EA3CF,OA0CM,MA1CN,GA0CM,EAzCF,OAGM,MAHN,GAA6B,gBAAY,QAAG,EAAA5B,UAAUC,QAAQC,WAAY,YAAQ,QAC9E,EAAAF,UAAUC,QAAQlpB,MACpB,KACF,GACA,IACA,OAA8F,MAA9F,GAA6B,6BAAyB,QAAG,EAAAipB,UAAUC,QAAQE,YAAU,GACrF,GACA,GACkD,GAARyB,I,WAA1C,QAEM,MAFN,GAEM,M,gBACN,OA6BM,MA7BN,GA6BM,EA5BF,OAUM,MAVN,GAUM,EATF,OAG+B,OAH1BpvE,MAAM,SAAUM,OAAK,S,OAA6C,uCAAqC,uCAAmC,qBAE5I,yBACsB,GACzB,GACA,GACA,GACA,GACA,O,aAEJ,QAgBW,mBAhB0BivE,GAApBC,K,WACb,QAcM,MAdN,GAcM,EAbF,OAIM,MAJN,IAIM,QAFE,EAAAC,4BAA4BD,IAAgB,IAGpD,OAGQ,MAHR,IAGQ,QAFuB,IAA3BA,EAAiBhvC,O,GAAuD,EAAiB,YAAY,EAAiB,UAAY,EAAiB,SAAO,IAG9J,OAA2D,MAA3D,IAA2D,QAA7BgvC,EAAiBl9C,KAAG,IAClD,OAA2D,MAA3D,IAA2D,QAA7Bk9C,EAAiBn9C,KAAG,IAClD,OAAmE,MAAnE,IAAmE,QAArCm9C,EAAiB/uC,aAAW,IAC1D,OAA4E,MAA5E,IAA4E,QAA9C/sB,KAAKyB,MAAMq6D,EAAiB7uC,WAAQ,Q,oCAMtF,QAyDM,mBAxD4B,EAAAwuC,aAAapvE,OAAOs8B,KAAK,EAAAqzC,cAAcvtB,MAAK,CAACt/B,EAAGu/B,IAAO,EAAAstB,aAAa7sD,GAAGyS,QAAQi9B,cAAc,EAAAmd,aAAattB,GAAG9sB,aAASlU,EAAW,CAAEoxC,SAAS,EAAMC,YAAa,WAAa,GAAI,KAAjD,CAArJkd,EAAaP,M,WADzB,QAyDM,MAzDN,GAyDM,EAvDF,OAsDM,MAtDN,GAsDM,EArDF,OAGM,MAHN,GAA6B,gBAAY,QAAG,EAAA5B,UAAUC,QAAQC,WAAY,YAAQ,QAC9E,EAAAF,UAAUC,QAAQlpB,MACpB,KACF,GACA,IACA,OAA8F,MAA9F,GAA6B,6BAAyB,QAAG,EAAAipB,UAAUC,QAAQE,YAAU,GACrF,GACA,GAC0E,GAARyB,I,WAAlE,QAEM,MAFN,GAEM,M,gBACN,OAyCM,MAzCN,GAyCM,EAxCF,OAuCM,MAvCN,GAuCM,EAtCF,OAUM,MAVN,GAUM,CATF,GACA,IACA,OAE+B,OAF1BpvE,MAAM,SACNM,OAAK,gBAAYP,OAAO6vE,OAAO,EAAAF,cAAclmE,KAAIgwB,GAAKA,EAAEmD,8BAA6BhjB,QAAO6f,GAAU,IAALA,IAASniB,OAAS,EAAI,IAAM,IAAM,QAAQ,yBACvH,GACzB,GACA,GACA,GACA,O,aAEJ,QA0BW,mBA1BYs4D,GAANhpE,K,WACb,QAwBM,MAxBN,GAwBM,EAvBF,OAAwD,MAAxD,IAAwD,QAAjC,EAAA+oE,aAAa/oE,GAAI2uB,SAAO,IAC/C,OAA6D,MAA7D,IAA6D,QAAtC,EAAAo6C,aAAa/oE,GAAI46B,cAAY,IACpD,OAEM,MAFN,IAEM,QADC,EAAAmuC,aAAa/oE,GAAIwlC,eAAa,IAErC,OAEM,MAFN,IAEM,QAFwBz4B,KAAKyB,MAA2C,GAArC,EAAAu6D,aAAa/oE,GAAI81B,mBAA0B,IAAT,IAG3E,OAIM,MAJN,IAIM,QAFE,EAAAozC,aAAa,EAAAH,aAAa/oE,KAAE,IAGpC,OAIM,MAJN,IAIM,QAHmC,KAAlC,EAAAkpE,aAAa,EAAAH,aAAa/oE,I,GAA8D,uBAAqB,eAAa,WAAE,QAIvE,KAAlC,EAAAkpE,aAAa,EAAAH,aAAa/oE,M,WAApD,QAGM,MAHN,GAGM,EAFF,QACwD,GAD3CrD,KAAM,EAAAosE,aAAa/oE,GAAImpE,aAAetrE,KAAM,EAAAwnE,UAAYprE,MAAO,OACvE,QAAQusC,GAAM,EAAAuiC,aAAa/oE,GAAImpE,aAAe3iC,G,kDAEvD,QAAkC,MAAlC,GAA2B,W,uBAO3B,EAAAwX,QAAQorB,gBAAsB,S,aAAtD,QAyDM,sBAxD4B,EAAAZ,aAAapvE,OAAOs8B,KAAK,EAAAqzC,cAAcvtB,MAAK,CAACt/B,EAAGu/B,IAAO,EAAAstB,aAAa7sD,GAAGyS,QAAQi9B,cAAc,EAAAmd,aAAattB,GAAG9sB,aAASlU,EAAW,CAAEoxC,SAAS,EAAMC,YAAa,WAAa,GAAI,KAAjD,CAArJkd,EAAaP,M,WADzB,QAyDM,MAzDN,GAyDM,EAvDF,OAsDM,MAtDN,GAsDM,EArDF,OAGM,MAHN,GAA6B,gBAAY,QAAG,EAAA5B,UAAUC,QAAQC,WAAY,YAAQ,QAC9E,EAAAF,UAAUC,QAAQlpB,MACpB,KACF,GACA,IACA,OAA8F,MAA9F,GAA6B,6BAAyB,QAAG,EAAAipB,UAAUC,QAAQE,YAAU,GACrF,GACA,GAC0E,GAARyB,I,WAAlE,QAEM,MAFN,GAEM,M,gBACN,OAyCM,MAzCN,GAyCM,EAxCF,OAuCM,MAvCN,GAuCM,CAtCF,K,aAMA,QAmBW,mBAnBYO,GAANhpE,K,8BAEH,EAAAg+C,QAAQorB,gBAAgBp2D,QAAOva,GAAKA,EAAEuH,KAAO,EAAA+oE,aAAa/oE,GAAIo5B,aAAkB,S,WAD1F,QAiBM,MAjBN,GAiBM,EAfF,OAAwD,MAAxD,IAAwD,QAAjC,EAAA2vC,aAAa/oE,GAAI2uB,SAAO,IAC/C,OAA6D,MAA7D,IAA6D,QAAtC,EAAAo6C,aAAa/oE,GAAI46B,cAAY,IACpD,OAKM,MALN,IAKM,WAJI7tB,KAAKyB,MAAoI,IAA9H,EAAAwvC,QAAQorB,gBAAgBp2D,QAAOva,GAAKA,EAAEuH,KAAoD,eAAa,GAAI,aAAU,GAAK,M,QAAmE,KAAK,MAAwI,IAAlI,UAAQ,gBAAgB,QAAO,GAAK,EAAE,KAAwD,eAAa,GAAI,aAAU,GAAK,MAAI,YAK/V,OAMM,MANN,IAMM,WAN2B+M,KAAKyB,MAA6P,IAAvP,EAAAwvC,QAAQorB,gBAAgBp2D,QAAOva,GAAKA,EAAEuH,KAAgD,eAAa,GAAI,aAAY,UAAQ,gBAAgB,QAAO,GAAK,EAAE,KAAoD,eAAa,GAAI,aAAY,OAAM,GAAM,G,QAA4D,KAAK,MAAqQ,IAA/P,UAAQ,gBAAgB,QAAO,GAAK,EAAE,KAAoD,eAAa,GAAI,aAAY,UAAQ,gBAAgB,QAAO,GAAK,EAAE,KAAwD,eAAa,GAAI,aAAY,OAAM,GAAM,GAAC,e,4CAShnB,QAWW,mBAVW,EAAAg+C,QAAQorB,gBAAgBp2D,QAAOva,GAAKA,EAAE4wE,OAAS5wE,EAAE6mB,GAAK7mB,EAAE6wE,OAAS7wE,EAAE8mB,KAA9EgqD,K,WACP,QAQM,MARN,GAQM,CAPF,IACA,OAAkE,MAAlE,IAAkE,QAA3CA,EAAQ3uC,cAAgB2uC,EAAQvpE,IAAE,IACzD,OAGM,MAHN,IAGM,WAFI+M,KAAKyB,MAAqB,IAAf+6D,EAAQF,M,QAAmE,KAAK,MAAkB,IAAZ,EAAQ,MAAI,WAGvH,Q,wCAOxB,OAsGM,MAtGN,GAsGM,EArGF,OAoGM,MApGN,GAoGM,CAnGF,IAGA,OA+FQ,QA/FR,GA+FQ,CA9FJ,IAGA,OAwBK,WAvBD,IACA,OAqBK,YApBD,OAmBM,MAnBN,GAmBM,CAlBF,GAIA,GAIA,IAIA,OAKM,MALN,GAKM,EAJF,OAAqF,SAA9E/tE,KAAK,WAAW,aAAW,SAAUorE,QAAqC,IAA5B,EAAAG,UAAU2C,IAAIA,IAAIC,Q,eAEvE,QACmD,GADtC9sE,KAAM,EAAAkqE,UAAU2C,IAAIA,IAAIC,OAAQ,aAAW,SAAU5rE,KAAM,EAAAwnE,UAAYprE,MAAO,MACtF,QAAK,cAAGusC,GAAM,EAAAqgC,UAAU2C,IAAIA,IAAIC,OAASjjC,I,iCAK9D,OAwCK,WAvCD,IACA,OAqCK,YApCD,OAmCM,MAnCN,GAmCM,CAlCF,GAIA,GAIA,GAIA,GAIA,GAIA,GAIA,IAIA,OAKM,MALN,GAKM,EAJF,OAAsF,SAA/ElrC,KAAK,WAAW,aAAW,SAAUorE,QAAsC,IAA7B,EAAAG,UAAU2C,IAAIE,KAAKD,Q,eAExE,QACoD,GADvC9sE,KAAM,EAAAkqE,UAAU2C,IAAIE,KAAKD,OAAQ,aAAW,SAAU5rE,KAAM,EAAAwnE,UAAYprE,MAAO,MACvF,QAAK,cAAGusC,GAAM,EAAAqgC,UAAU2C,IAAIE,KAAKD,OAASjjC,I,iCAK/D,OAwBK,WAvBD,IACA,OAqBK,YApBD,OAmBM,MAnBN,GAmBM,CAlBF,GAIA,GAIA,IAIA,OAKM,MALN,GAKM,EAJF,OAAqF,SAA9ElrC,KAAK,WAAW,aAAW,SAAUorE,QAAqC,IAA5B,EAAAG,UAAU2C,IAAIA,IAAIC,Q,eAEvE,QACmD,GADtC9sE,KAAM,EAAAkqE,UAAU2C,IAAIA,IAAIC,OAAQ,aAAW,SAAU5rE,KAAM,EAAAwnE,UAAYprE,MAAO,MACtF,QAAK,cAAGusC,GAAM,EAAAqgC,UAAU2C,IAAIA,IAAIC,OAASjjC,I,qJCpyBlF,QACoC,GADzBlrC,KAAK,O,WAAgB,EAAAqB,K,qCAAA,EAAI,QAAEtD,MAAM,aAAcM,OAAK,eAAa,EAAAM,QACvE,QAAK,eAAE,EAAA+C,MAAM,QAAS,EAAAL,Q,uCADmE,EAAAkB,S,SAE9F,OAAuC,sBAAf,EAAAlB,MAAI,M,MAAb,EAAAkB,S,IAKnB,QACIvE,KAAM,aACNjB,MAAO,CACHsE,KAAMpB,OACNsC,KAAM5B,QACNhC,MAAOsB,SCNf,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,qGCRI,QACwE,GAD9DD,KAAK,O,WAAgB,EAAAqB,K,qCAAA,EAAI,QAAG6uD,QAAS,EAAAA,QAASnyD,MAAM,aAAcM,OAAK,eAAa,EAAAM,QAC1E,SAAM,eAAE,EAAA+C,MAAM,SAAU,EAAAL,OAAOqD,GAAG,iB,iDAAzC,EAAAnC,S,SACb,OAAuC,sBAAf,EAAAlB,MAAI,M,MAAb,EAAAkB,S,IAKnB,QACIvE,KAAM,gBACNjB,MAAO,CACHsE,KAAMpB,OACNiwD,QAAS2D,MACTtxD,KAAM5B,QACNhC,MAAOsB,SCNf,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UJ2yBA,IACIjC,KAAM,SACNjB,MAAO,CACH2lD,QAAS5kD,OACTisE,UAAWppE,SAEfU,OACI,MAAO,CACHkqE,UAAW,CACPC,QAAS,CACLC,UAAW,GACXnpB,MAAM,IAAIhkC,MAAOC,cAAc7B,MAAM,KAAK,GAC1CgvD,WAAY,IAEhBC,KAAM,CACFC,IAAK,CACDC,OAAQ,GACRC,QAAS,IAEbC,GAAI,CACAF,OAAQ,GACRC,QAAS,IAEbE,IAAK,CACDH,OAAQ,GACRC,QAAS,IAEbG,GAAI,CACAJ,OAAQ,GACRC,QAAS,IAEbI,MAAO,CACHluE,KAAM,GACN6tE,OAAQ,GACRC,QAAS,IAEbD,OAAQ,CAAC,UAAW,kBAAmB,mBAE3CM,IAAK,CACDC,OAAQ,IAEZE,eAAgB,GAChBC,SAAU,CACNC,GAAI,GACJlqB,MAAM,IAAIhkC,MAAOC,cAAc7B,MAAM,KAAK,IAE9C0uD,QAAS,CACLoB,GAAI,GACJlqB,MAAM,IAAIhkC,MAAOC,cAAc7B,MAAM,KAAK,IAE9CwxD,IAAK,CACDA,IAAK,CAAEC,OAAQ,IACfC,KAAM,CAAED,OAAQ,IAChBE,IAAK,CAAEF,OAAQ,KAEnB9B,IAAK,CACDH,MAAO,KAGfO,QAAS,GACTC,SAAU,GACVC,eAAgB,GAChB2B,eAAgB,CAAC,EACjBb,aAAc,CAAC,EACfL,oCAAqC,GAE7C,EACAlrE,SAAU,CACNqsE,eACI,OAAQpmB,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAAgBkoC,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBAAkBooC,WAAa,KACvI,EACAqa,gBACI,OAAQrmB,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAAgBkoC,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBAAkBooC,WAAa,MACvI,EACAsa,iBACI,IAEIC,EAFApkD,EAAK69B,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBACrCxB,EAAK49B,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAKzC,OAHAyiD,EAAiD,IAAvCnkD,EAAGC,cAAgBF,EAAGE,eAChCkkD,GAAUpkD,EAAGG,WACbikD,GAAUnkD,EAAGE,WACNikD,GAAU,EAAI,EAAIA,CAC7B,EACAC,YACI,IAAI5xE,EAAQ+B,KACR8vE,EAAM9vE,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKA,EAAE3a,QAC5Cs+C,EAAc/wE,OAAOs8B,KAAKt7B,KAAK2uE,cACnC,OAAOmB,EAAIx5D,QAAU,GAAKy5D,EAAY11C,MAAKz0B,GAAM3H,EAAMuxE,eAAe5pE,GAAI81B,kBAAoBz9B,EAAM0wE,aAAa/oE,GAAI81B,mBAAqB,GAC9I,GAEJt7B,QAAS,CACLmjD,cAAcC,GACV,OAAO6F,GAAW9F,cAAcC,EACpC,EACA53B,QAAQ43B,GACJ,OAAO6F,GAAWz9B,QAAQ43B,EAC9B,EACAwsB,wBAAwBC,GACpB,OAAOjwE,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMqqE,IAAQ,GAAGlY,KAC7D,EACAmY,YAAYD,GACR,OAAOjwE,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMqqE,IAAQ,GAAG/wE,IAC7D,EACAwvE,4BAA4BD,GACxB,MAAgE,KAAzDzuE,KAAKgwE,wBAAwBvB,EAAiBliD,QACjDvsB,KAAKkwE,YAAYzB,EAAiBliD,QAClC,GAAGvsB,KAAKgwE,wBAAwBvB,EAAiBliD,sFACWvsB,KAAKkwE,YAAYzB,EAAiBliD,SACtG,EACAgiD,qCAAqC4B,GACjC,OAAOx9D,KAAKi6B,OAAOujC,EAAkB1nE,KAAIgmE,GAAoBzuE,KAAK0uE,4BAA4BD,GAAkBn4D,SACpH,EACAw4D,aAAasB,GACT,GAA4C,IAAxCA,EAASx0C,4BACT,OAAQjpB,KAAKyB,MAAmC,GAA7Bg8D,EAAS10C,mBAA0B,GAClD00C,EAAShlC,cACRz4B,KAAKyB,MACwB,IADhBzB,KAAKyB,MAAmC,GAA7Bg8D,EAAS10C,mBAA0B,GACxD00C,EAAShlC,gBACP,GAAM,IAEf,CACD,IAAIilC,EAAWhvE,OAAO+uE,EAASx0C,4BAA4Bhe,MAAM,KAAK,GAAGwR,QACzE,OAAQzc,KAAKyB,MAAmC,GAA7Bg8D,EAAS10C,mBAA0B,GAClD20C,EACC19D,KAAKyB,MACU,IADFzB,KAAKyB,MAAmC,GAA7Bg8D,EAAS10C,mBAA0B,GACxD20C,IACE,GAAM,GACpB,CACJ,EACAC,qBAAqBF,GACjB,IAAIG,EAAY,GAChBvxE,OAAOs8B,KAAK80C,EAASl1C,oBAAoB7N,SAAQS,IACzCsiD,EAASl1C,mBAAmBpN,GAAU6L,IAAMy2C,EAAShlC,eACrDmlC,EAAUhrE,QAAQuoB,EAASlQ,MAAM,KACrC,IAEJ,IAAI+hD,EAAW3/D,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAK+iD,EAAUp9D,SAAS,GAAGqa,EAAEzJ,QAAQyJ,EAAE5nB,QAChF,GAA4C,IAAxCwqE,EAASx0C,4BACT,IAAK,IAAI9kB,EAAI,EAAGA,EAAIs5D,EAASz0C,yBAAyBrlB,OAAQQ,IACtDzV,OAAO+uE,EAASz0C,yBAAyB7kB,GAAG8G,MAAM,KAAK,GAAGwR,QAAUghD,EAAS10C,mBAC7EikC,EAASp6D,KAAK,CACVZ,MAAO6a,KAAK/B,MAAM2yD,EAASz0C,yBAAyB7kB,GAAG8G,MAAM,KAAK,GAAGwR,QACrEtqB,IAAK0a,KAAK/B,MAAM2yD,EAASz0C,yBAAyB7kB,GAAG8G,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGwR,UAIjG,IAAIzqB,EAAQ,IAAI6a,KAAK7M,KAAKyf,OACnButC,EAASl3D,KAAI2nC,GACLiZ,GAAWz9B,QAAQwkB,EAAQzrC,WAGtCG,EAAM,IAAI0a,KAAK7M,KAAKi6B,OACjB+yB,EAASl3D,KAAI2nC,GACLiZ,GAAWz9B,QAAQwkB,EAAQtrC,SAG1C,QAASA,EAAIuwD,UAAY1wD,EAAM0wD,WAAa,OAAoB9hD,QAAQ,EAC5E,EACA66D,aAAaoC,EAAMC,EAAgBC,GAC/B,IAAIC,EAAQ,GACRC,EAAU,GACd,IAAK,IAAI95D,EAAI,EAAGA,EAAI05D,EAAKl6D,OAAQQ,KACxBA,EAAI,EAAI25D,GAAkBC,GAAkB,GAC7CE,EAAQrrE,KAAKirE,EAAK15D,IAClB65D,EAAMprE,KAAKqrE,GACXA,EAAU,IAGVA,EAAQrrE,KAAKirE,EAAK15D,IAM1B,OAHI85D,EAAQt6D,OAAS,GACjBq6D,EAAMprE,KAAKqrE,GAERD,CACX,GAEJ5wE,UACI,IAAI9B,EAAQ+B,KACZA,KAAK4jD,QAAQI,WAAW32B,SAAQ+e,IACxBA,EAAE3a,OAC8G,GAA5GzxB,KAAK2tE,QAAQ/0D,QAAO+e,GAAQA,EAAKo2C,UAAY/tE,KAAKkwE,YAAY9jC,EAAE1sB,OAASiY,EAAKz4B,MAAQktC,EAAE06B,WAAUxwD,QAClGtW,KAAK2tE,QAAQpoE,KAAK,CACdwoE,SAAU/tE,KAAKkwE,YAAY9jC,EAAE1sB,MAC7BxgB,KAAMktC,EAAE06B,WAIf16B,EAAE3a,OAAuB,IAAd2a,EAAE06B,UACmG,GAA7G9mE,KAAK4tE,SAASh1D,QAAO+e,GAAQA,EAAKo2C,UAAY/tE,KAAKkwE,YAAY9jC,EAAE1sB,OAASiY,EAAKz4B,MAAQktC,EAAE06B,WAAUxwD,QACnGtW,KAAK4tE,SAASroE,KAAK,CACfwoE,SAAU/tE,KAAKkwE,YAAY9jC,EAAE1sB,MAC7BxgB,KAAMktC,EAAE06B,WAIE,GAAlB16B,EAAE4hC,cACyI,GAAvIhuE,KAAK6tE,eAAej1D,QAAO+e,GAAQA,EAAKo2C,UAAY/tE,KAAKkwE,YAAY9jC,EAAE1sB,OAAsB,gCAAbiY,EAAKz4B,OAAwCoX,QAC7HtW,KAAK6tE,eAAetoE,KAAK,CACrBwoE,SAAU/tE,KAAKkwE,YAAY9jC,EAAE1sB,MAC7BxgB,KAAM,iCAIE,GAAhBktC,EAAE6hC,YAC0H,GAAxHjuE,KAAK6tE,eAAej1D,QAAO+e,GAAQA,EAAKo2C,UAAY/tE,KAAKkwE,YAAY9jC,EAAE1sB,OAAsB,iBAAbiY,EAAKz4B,OAAyBoX,QAC9GtW,KAAK6tE,eAAetoE,KAAK,CACrBwoE,SAAU/tE,KAAKkwE,YAAY9jC,EAAE1sB,MAC7BxgB,KAAM,kBAIO,GAArBktC,EAAEykC,iBAC6H,GAA3H7wE,KAAK6tE,eAAej1D,QAAO+e,GAAQA,EAAKo2C,UAAY/tE,KAAKkwE,YAAY9jC,EAAE1sB,OAASiY,EAAKz4B,MAAQktC,EAAE8hC,mBAAkB53D,QACjHtW,KAAK6tE,eAAetoE,KAAK,CACrBwoE,SAAU/tE,KAAKkwE,YAAY9jC,EAAE1sB,MAC7BxgB,KAAMktC,EAAE8hC,kBAGpB,IAEJjwE,EAAM0vE,QAAQvsB,MAAK,CAACt/B,EAAGu/B,KACXv/B,EAAEisD,SAAWjsD,EAAE5iB,MAAMsyD,cAAcnQ,EAAE0sB,SAAW1sB,EAAEniD,UAAMmhB,EAAW,CACvEoxC,SAAS,EACTC,YAAa,WAGrBzzD,EAAM2vE,SAASxsB,MAAK,CAACt/B,EAAGu/B,KACZv/B,EAAEisD,SAAWjsD,EAAE5iB,MAAMsyD,cAAcnQ,EAAE0sB,SAAW1sB,EAAEniD,UAAMmhB,EAAW,CACvEoxC,SAAS,EACTC,YAAa,WAGrBzzD,EAAM4vE,eAAezsB,MAAK,CAACt/B,EAAGu/B,KAClBv/B,EAAEisD,SAAWjsD,EAAE5iB,MAAMsyD,cAAcnQ,EAAE0sB,SAAW1sB,EAAEniD,UAAMmhB,EAAW,CACvEoxC,SAAS,EACTC,YAAa,WAGrB,IAAIof,EAAU,GACd9wE,KAAK4jD,QAAQ4qB,6BAA6BnhD,SAAQohD,IAC9C,IAAIsC,EAAgF,KAAzD/wE,KAAKgwE,wBAAwBvB,EAAiBliD,QAAiBvsB,KAAKkwE,YAAYzB,EAAiBliD,QAAU,GAAGvsB,KAAKgwE,wBAAwBvB,EAAiBliD,aAAavsB,KAAKkwE,YAAYzB,EAAiBliD,UAClO6rB,EAAiC,IAA3Bq2B,EAAiBhvC,OAAe,GAAGgvC,EAAiBhvC,YAAYgvC,EAAiBjvC,UAAYivC,EAAiBjvC,QACpHlO,EAAMm9C,EAAiBn9C,IACvBC,EAAMk9C,EAAiBl9C,IACvB2xC,EAAcuL,EAAiB/uC,YAC/BE,EAAWjtB,KAAKyB,MAAMq6D,EAAiB7uC,UACvCr9B,EAAO,GAAGwuE,KAAwB34B,KAAO7mB,KAAOD,KAAO4xC,KAAetjC,IACrEkxC,EAAQ39D,SAAS5Q,KAClBvC,KAAKsuE,oCAAoC/oE,KAAKkpE,GAC9CqC,EAAQvrE,KAAKhD,GACjB,IAEJvC,KAAKsuE,oCAAoCltB,MAAK,CAACt/B,EAAGu/B,KAC9C,IAAI2vB,EAAkE,KAA1ChxE,KAAKgwE,wBAAwBluD,EAAEyK,QAAiBvsB,KAAKkwE,YAAYpuD,EAAEyK,QAAU,GAAGvsB,KAAKgwE,wBAAwBluD,EAAEyK,aAAavsB,KAAKkwE,YAAYpuD,EAAEyK,UACvK0kD,EAAmB,IAAZnvD,EAAE2d,OAAe,GAAG3d,EAAE2d,YAAY3d,EAAE0d,UAAY1d,EAAE0d,QACzD0xC,EAAOpvD,EAAEwP,IACT6/C,EAAervD,EAAE4d,YACjB0xC,EAAkE,KAA1CpxE,KAAKgwE,wBAAwB3uB,EAAE90B,QAAiBvsB,KAAKkwE,YAAY7uB,EAAE90B,QAAU,GAAGvsB,KAAKgwE,wBAAwB3uB,EAAE90B,aAAavsB,KAAKkwE,YAAY7uB,EAAE90B,UACvK8kD,EAAmB,IAAZhwB,EAAE5hB,OAAe,GAAG4hB,EAAE5hB,YAAY4hB,EAAE7hB,UAAY6hB,EAAE7hB,QACzD8xC,EAAOjwB,EAAE/vB,IACTigD,EAAelwB,EAAE3hB,YACrB,OAAQsxC,EAAwBC,EAAOC,EAAOC,GAAc3f,cACvD4f,EAAwBC,EAAOC,EAAOC,OAAelxD,EAAW,CACjEoxC,SAAS,EACTC,YAAa,QAChB,IAEL,IAAI,IAAI3kC,IAAI/sB,KAAK4jD,QAAQ4tB,yBAAyB/oE,KAAIkvB,GAAQA,EAAKqH,eAAc3R,SAAQ2R,IACrF,IAAI2gC,EAAW1hE,EAAM2lD,QAAQ4tB,yBAAyB54D,QAAO+e,GAAQA,EAAKqH,YAAcA,IACxF/gC,EAAMuxE,eAAexwC,GAAc,CAC/B/f,WAAY0gD,EAAS,GAAG1gD,WACxBuhB,aAAcm/B,EAAS,GAAGn/B,aAC1BjM,QAASorC,EAAS,GAAGprC,QACrBmH,kBAAmBikC,EAAS,GAAGjkC,kBAC/BG,+BAAgClpB,KAAKi6B,OAAO+yB,EAASl3D,KAAIub,GAAKA,EAAE6X,kCAChEuP,cAAeu0B,EAAS,GAAGv0B,cAC3BlQ,mBAAoB,CAAC,EACrBS,yBAA0BgkC,EAAS,GAAGhkC,yBAAyB/d,MAAM,KACrEge,4BAA6B+jC,EAAS,GAAG/jC,6BAE7C+jC,EAAStyC,SAAQ9O,IACbtgB,EAAMuxE,eAAexwC,GAAY9D,mBAAmB3c,EAAO2c,oBAAsB,CAC7EvB,IAAKpb,EAAOob,IACZ3C,SAAUzY,EAAOyY,SACjBkJ,aAAc3hB,EAAO2hB,aACrBC,WAAY5hB,EAAO4hB,WACvB,GACH,IAEL,IAAI,IAAIpT,IAAI/sB,KAAK4jD,QAAQ6tB,uBAAuBhpE,KAAIkvB,GAAQA,EAAKqH,eAAcoiB,OAAO/zB,SAAQ2R,IAC1F,IAAI2gC,EAAW1hE,EAAM2lD,QAAQ6tB,uBAAuB74D,QAAO+e,GAAQA,EAAKqH,YAAcA,IACtF/gC,EAAM0wE,aAAa3vC,GAAc,CAC7B/f,WAAY0gD,EAAS,GAAG1gD,WACxBuhB,aAAcm/B,EAAS,GAAGn/B,aAC1BjM,QAASorC,EAAS,GAAGprC,QACrByK,WAAY2gC,EAAS,GAAG3gC,WACxBtD,kBAAmBikC,EAAS,GAAGjkC,kBAC/B0P,cAAeu0B,EAAS,GAAGv0B,cAC3BzP,yBAA0BgkC,EAAS,GAAGhkC,yBAAyB/d,MAAM,KACrEge,4BAA6B+jC,EAAS,GAAG/jC,4BACzCV,mBAAoB,CAAC,GAEzBykC,EAAStyC,SAAQ9O,IACbtgB,EAAM0wE,aAAa3vC,GAAY9D,mBAAmB3c,EAAO2c,oBAAsB,CAC3EvB,IAAKpb,EAAOob,IACZ3C,SAAUzY,EAAOyY,SACjBkJ,aAAc3hB,EAAO2hB,aACrBC,WAAY5hB,EAAO4hB,WACvB,GACH,IAELngC,KAAK4jD,QAAQnX,MAAM2U,MAAK,CAACt/B,EAAGu/B,KAAOrhD,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMkc,EAAEiC,OAAM,GAAG7kB,KAAO4iB,EAAEi2C,MAAQj2C,EAAEnd,OAAO6sD,cAC3GxxD,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMy7C,EAAEt9B,OAAM,GAAG7kB,KAAOmiD,EAAE0W,MAAQ1W,EAAE18C,WAAO0b,EAAW,CACvFoxC,SAAS,EACTC,YAAa,WAEjBr8C,QAAQC,IAAIrX,EAAMuxE,eACtB,EACAntE,WAAY,CACRqvE,WAAU,GACVC,cAAa,KK/mCrB,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,uECLiB1yE,MAAM,WAAW2G,GAAG,c,YACrB,OAKM,OALD3G,MAAM,OAAOM,MAAA,sBAA0BqG,GAAG,a,EAC3C,OAGM,OAHD3G,MAAM,SAAO,EACd,OAAmB,UAAf,eACJ,OAAuC,UAAnC,sC,eAIPA,MAAM,Q,YACP,OAIM,OAJDA,MAAM,iBAAe,EACtB,OAEM,OAFDA,MAAM,yBAAyBM,MAAA,8CAA4C,wF,SAI/EA,MAAA,wC,kCAOL,OA4CM,OA5CDN,MAAM,iBAAe,EACtB,OACM,OADDA,MAAM,wBAAwBM,MAAA,4BAEnC,OAEM,OAFDN,MAAM,yBAAwB,oBAGnC,OAEM,OAFDA,MAAM,wBACPM,MAAA,mEAEJ,OAEM,OAFDN,MAAM,yBAAwB,kBAGnC,OACM,OADDA,MAAM,wBAAwBM,MAAA,6BAEnC,OAEM,OAFDN,MAAM,yBAAwB,+BAGnC,OACM,OADDA,MAAM,wBAAwBM,MAAA,8BAEnC,OAEM,OAFDN,MAAM,yBAAwB,6BAGnC,OAGM,OAHDA,MAAM,wBACPM,MAAA,oE,EACA,OAAqF,OAAhFA,MAAA,iFAET,OAEM,OAFDN,MAAM,yBAAwB,0BAGnC,OAIM,OAJDA,MAAM,wBACPM,MAAA,oE,EACA,OACM,OADDA,MAAA,8FAGT,OAEM,OAFDN,MAAM,yBAAwB,8CAGnC,OAGM,OAHDA,MAAM,wBACPM,MAAA,oE,EACA,OAAmF,OAA9EA,MAAA,+EAET,OAEM,OAFDN,MAAM,yBAAwB,8C,eAM1CA,MAAM,WAAW2G,GAAG,c,YACrB,OAKM,OALD3G,MAAM,OAAOM,MAAA,uB,EACd,OAGM,OAHDN,MAAM,SAAO,EACd,OAAmB,UAAf,eACJ,OAAmF,UAA/E,kF,SAGPA,MAAM,Q,IACFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAG7BN,MAAM,S,YACT,OAIK,MAJDA,MAAM,UAAQ,EACd,OAAkC,MAA9BM,MAAA,gBAAqB,SACzB,OAAa,UAAT,SACJ,OAA8B,UAA1B,2B,SAIIA,MAAA,yB,IAQnBN,MAAM,Q,IACFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,UAI3BN,MAAM,yB,UACAA,MAAM,S,YACT,OAGK,MAHDA,MAAM,UAAQ,EACd,OAAkC,MAA9BM,MAAA,gBAAqB,SACzB,OAA0C,UAAtC,uC,SAIIA,MAAA,yB,UAMfN,MAAM,gB,UACAA,MAAM,S,YACT,OAGK,MAHDA,MAAM,UAAQ,EACd,OAAkC,MAA9BM,MAAA,gBAAqB,SACzB,OAA0C,UAAtC,uC,SAIIA,MAAA,yB,IAS3BN,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAI7BN,MAAM,QAAQ2G,GAAG,KAAKrG,MAAA,iC,IACrBN,MAAM,U,YACN,OAAmD,MAA/C2yE,QAAQ,IAAIryE,MAAA,gBAAqB,aAAS,K,YAC9C,OAAuD,MAAnDqyE,QAAQ,IAAIryE,MAAA,iBAAsB,gBAAY,K,0CAOlD,OAAoE,MAAhEqyE,QAAQ,IAAIryE,MAAA,gBAAqB,8BAA0B,K,YAC/D,OAA+D,MAA3DqyE,QAAQ,IAAIryE,MAAA,gBAAqB,yBAAqB,K,IAE1DN,MAAM,U,mBAQNA,MAAM,U,qBA2CaA,MAAM,U,IAajBA,MAAM,U,IAQzBA,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAK7BN,MAAM,S,IACLA,MAAM,U,YACN,OAAoD,MAAhDM,MAAA,iBAAsB,yBAAqB,K,UAC3CA,MAAA,iB,YACJ,OAAqC,UAAjC,gCAA4B,K,YAChC,OAAqC,MAAjCA,MAAA,gBAAqB,WAAO,K,YAChC,OAAiD,MAA7CA,MAAA,gBAAqB,uBAAmB,K,YAC5C,OAAiC,MAA7BA,MAAA,gBAAqB,OAAG,K,YAC5B,OAA8C,MAA1CA,MAAA,gBAAqB,oBAAgB,K,YACzC,OAAoD,MAAhDA,MAAA,gBAAqB,0BAAsB,K,YAC/C,OAAwC,MAApCA,MAAA,gBAAqB,cAAU,K,YACnC,OAA8C,MAA1CA,MAAA,gBAAqB,oBAAgB,K,YACzC,OAAgF,MAA5EA,MAAA,iBAAsB,qDAAiD,K,kCAwBnEN,MAAM,U,IAGNA,MAAM,U,IAGNA,MAAM,U,IAGNA,MAAM,U,IAGNA,MAAM,U,kCAkBzBA,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAG7BN,MAAM,S,YACT,OAQK,MARDA,MAAM,UAAQ,EACd,OAAuC,MAAnCM,MAAA,gBAAqB,cACzB,OAA0C,MAAtC8sE,QAAQ,KAAI,0BAChB,OAA+C,MAA3C9sE,MAAA,iBAAsB,qBAC1B,OAAgD,MAA5CA,MAAA,iBAAsB,sBAC1B,OAAiD,MAA7CA,MAAA,iBAAsB,uBAC1B,OAAkD,MAA9CA,MAAA,iBAAsB,wBAC1B,OAAyC,MAArCA,MAAA,iBAAsB,gB,wBAUdA,MAAA,gB,IAMAN,MAAM,U,IAMNA,MAAM,U,IAKNA,MAAM,U,IAKNA,MAAM,U,IAMNA,MAAM,U,uBAQV,OAAqB,MAAjBotE,QAAQ,KAAG,W,IAAf,I,IAOnBptE,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAG7BN,MAAM,S,YACT,OAQK,MARDA,MAAM,UAAQ,EACd,OAAuC,MAAnCM,MAAA,gBAAqB,cACzB,OAA0C,MAAtC8sE,QAAQ,KAAI,0BAChB,OAA+C,MAA3C9sE,MAAA,iBAAsB,qBAC1B,OAAgD,MAA5CA,MAAA,iBAAsB,sBAC1B,OAAiD,MAA7CA,MAAA,iBAAsB,uBAC1B,OAAkD,MAA9CA,MAAA,iBAAsB,wBAC1B,OAAyC,MAArCA,MAAA,iBAAsB,gB,8BASdA,MAAA,gB,qBAQAN,MAAM,U,UAQNA,MAAM,U,UAMNA,MAAM,U,UAMNA,MAAM,U,UAONA,MAAM,U,uBASV,OAAqB,MAAjBotE,QAAQ,KAAG,W,IAAf,I,UAWvBptE,MAAM,WAAW2G,GAAG,c,YACrB,OAMM,OAND3G,MAAM,OAAOM,MAAA,uB,EACd,OAIM,OAJDN,MAAM,SAAO,EACd,OAAmB,UAAf,eACJ,OAA4D,UAAxD,wDACJ,OAA2D,UAAvD,0D,SAGPA,MAAM,Q,IACFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAG7BN,MAAM,S,YACT,OAIK,MAJDA,MAAM,UAAQ,EACd,OAAkC,MAA9BM,MAAA,gBAAqB,SACzB,OAAa,UAAT,SACJ,OAA8B,UAA1B,2B,SAIIA,MAAA,yB,IAQnBN,MAAM,Q,IACFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,UAI3BN,MAAM,yB,UACAA,MAAM,S,YACT,OAGK,MAHDA,MAAM,UAAQ,EACd,OAAkC,MAA9BM,MAAA,gBAAqB,SACzB,OAA0C,UAAtC,uC,SAIIA,MAAA,yB,UAMfN,MAAM,gB,UACAA,MAAM,S,YACT,OAGK,MAHDA,MAAM,UAAQ,EACd,OAAkC,MAA9BM,MAAA,gBAAqB,SACzB,OAA0C,UAAtC,uC,SAIIA,MAAA,yB,IAS3BN,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAM7BN,MAAM,QAAQ2G,GAAG,KAAKrG,MAAA,iC,IACrBN,MAAM,U,YACN,OAAmD,MAA/C2yE,QAAQ,IAAIryE,MAAA,gBAAqB,aAAS,K,YAC9C,OAAuD,MAAnDqyE,QAAQ,IAAIryE,MAAA,iBAAsB,gBAAY,K,0CAOlD,OAEK,MAFDqyE,QAAQ,IAAIryE,MAAA,gBAAqB,iEAErC,K,YACA,OAA+D,MAA3DqyE,QAAQ,IAAIryE,MAAA,gBAAqB,yBAAqB,K,IAE1DN,MAAM,U,mBAQNA,MAAM,U,qBA4CaA,MAAM,U,eAajBA,MAAM,U,IAQzBA,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAM7BN,MAAM,S,IACLA,MAAM,U,YACN,OAAoD,MAAhDM,MAAA,iBAAsB,yBAAqB,K,UAC3CA,MAAA,iB,YACJ,OAAqC,UAAjC,gCAA4B,K,YAChC,OAAqC,MAAjCA,MAAA,gBAAqB,WAAO,K,YAChC,OAAiD,MAA7CA,MAAA,gBAAqB,uBAAmB,K,YAC5C,OAAiC,MAA7BA,MAAA,gBAAqB,OAAG,K,YAC5B,OAA8C,MAA1CA,MAAA,gBAAqB,oBAAgB,K,YACzC,OAAoD,MAAhDA,MAAA,gBAAqB,0BAAsB,K,YAC/C,OAAwC,MAApCA,MAAA,gBAAqB,cAAU,K,YACnC,OAAgE,MAA5DA,MAAA,gBAAqB,sCAAkC,K,YAC3D,OAA+C,MAA3CA,MAAA,gBAAqB,qBAAiB,K,YAC1C,OAAmD,MAA/CA,MAAA,gBAAqB,yBAAqB,K,YAC9C,OAA8C,MAA1CA,MAAA,gBAAqB,oBAAgB,K,YACzC,OAAgF,MAA5EA,MAAA,iBAAsB,qDAAiD,K,kCAwBnEN,MAAM,U,IAGNA,MAAM,U,IAGNA,MAAM,U,IAGNA,MAAM,U,IAGNA,MAAM,U,IAMNA,MAAM,U,IAGNA,MAAM,U,kCAkBzBA,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAK7BN,MAAM,S,YACT,OAQK,MARDA,MAAM,UAAQ,EACd,OAAuC,MAAnCM,MAAA,gBAAqB,cACzB,OAA0C,MAAtC8sE,QAAQ,KAAI,0BAChB,OAA+C,MAA3C9sE,MAAA,iBAAsB,qBAC1B,OAAgD,MAA5CA,MAAA,iBAAsB,sBAC1B,OAAiD,MAA7CA,MAAA,iBAAsB,uBAC1B,OAAkD,MAA9CA,MAAA,iBAAsB,wBAC1B,OAAyC,MAArCA,MAAA,iBAAsB,gB,wBAUdA,MAAA,gB,UAMAN,MAAM,U,UAONA,MAAM,U,IACNA,MAAM,U,IAKNA,MAAM,U,IAKNA,MAAM,U,IAMNA,MAAM,U,uBAQV,OAAqB,MAAjBotE,QAAQ,KAAG,W,IAAf,I,IAOnBptE,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAK7BN,MAAM,S,YACT,OAQK,MARDA,MAAM,UAAQ,EACd,OAAuC,MAAnCM,MAAA,gBAAqB,cACzB,OAA0C,MAAtC8sE,QAAQ,KAAI,0BAChB,OAA+C,MAA3C9sE,MAAA,iBAAsB,qBAC1B,OAAgD,MAA5CA,MAAA,iBAAsB,sBAC1B,OAAiD,MAA7CA,MAAA,iBAAsB,uBAC1B,OAAkD,MAA9CA,MAAA,iBAAsB,wBAC1B,OAAyC,MAArCA,MAAA,iBAAsB,gB,wBASdA,MAAA,gB,UAMAN,MAAM,U,eAQNA,MAAM,U,IAKNA,MAAM,U,IAKNA,MAAM,U,IAMNA,MAAM,U,uBAQV,OAAqB,MAAjBotE,QAAQ,KAAG,W,IAAf,I,UAWvBptE,MAAM,WAAW2G,GAAG,c,YACrB,OAKM,OALD3G,MAAM,OAAOM,MAAA,uB,EACd,OAGM,OAHDN,MAAM,SAAO,EACd,OAAmB,UAAf,eACJ,OAA2D,UAAvD,0D,6IA90BxB,QA81BkB,GA91BA4oE,MAAO,CAAC,aAAc,aAAc,aAAc,cAAgB0E,SAAU,EAC1FhtE,MAAA,sCAA6CsyE,YAAa,M,CACzCl6C,MAAI,SACjB,EADqBA,OAAMy5B,aAAO,CACkB,cAARz5B,I,WAA5C,QAmEM,MAnEN,GAmEM,CAlEF,IAMA,QAAkG,GAApFisB,QAAS,EAAAA,QAAS1W,MAAM,+C,oBACd,EAAA0W,QAAQkuB,UAAUx7D,OAAS,I,WAAnD,QA0DM,MA1DN,GA0DM,CAzDF,IAKA,OAMM,MANN,GAMM,EALF,OAAuG,OAAlG5R,IAAI,qBAAsBD,IAAK,EAAAm/C,QAAQkuB,UAAU,GAAIC,YAAY,YAAYxyE,MAAA,gB,0BAClF,QAGW,mBAHe,EAAAqkD,QAAQkuB,UAAUlvD,MAAM,IAAjC3R,K,WACb,QAC4D,OADtDxM,IAAKwM,EAAOvM,IAAI,qBAAqBqtE,YAAY,YACnDxyE,MAAA,yD,sBAGZ,O,kCA+C4C,cAARo4B,I,WAA5C,QAuXM,MAvXN,GAuXM,CAtXF,K,aAMA,QAoBM,mBApBoC,EAAAy2C,aAAa,EAAAxqB,QAAQnX,MAAO,GAAI,KAAN,CAA1CA,EAAO4hC,M,WAAjC,QAoBM,MApBN,GAoBM,EAnBF,OAkBM,MAlBN,GAkBM,CAjB6F,GAARA,I,WAAvF,QAEM,MAFN,GAAkG,gE,gBAGlG,OAaQ,QAbR,GAaQ,CAZJ,K,aAKA,QAMW,mBANc5hC,GAAR/sB,K,WACb,QAIK,YAHD,OAAqD,KAArD,IAAqD,QAAlBA,EAAKjK,OAAK,IAC7C,OAAqC,mBAA9B,EAAAu8D,YAAYtyD,EAAKqE,OAAI,IAC5B,OAAwB,mBAAjBrE,EAAKxgB,MAAI,Q,oCAMpC,QAoCM,mBApC2C,EAAAkvE,aAAa,EAAA6D,gBAAiB,GAAI,KAAN,CAAnDn0C,EAAcuwC,M,WAAxC,QAoCM,MApCN,GAoCM,EAnCF,OAkCM,MAlCN,GAkCM,CAjC6F,GAARA,I,WAAvF,QAEM,MAFN,GAAkG,4E,4BAGlG,QA6BW,mBA7Be,CAAC,EAAG,IAAb54D,K,8BAC4BqoB,EAAalb,MAAM,GAAI,IAAItM,OAAS,I,WAA7E,QAaM,MAbN,GAaM,CAZyBwnB,EAAalb,MAAoB,IAAbnN,EAAQ,GAAiB,GAARA,GAAYa,OAAS,I,WAArF,QAWQ,QAXR,GAWQ,CAVJ,K,aAIA,QAKW,mBALqBwnB,EAAalb,MAAoB,IAAbnN,EAAQ,GAAiB,GAARA,IAApDy8D,K,WACb,QAGK,YAFD,OAA4D,KAA5D,IAA4D,QAAzBA,EAAYz8D,OAAK,IACpD,OAA4C,mBAArCy8D,EAAYC,mBAAiB,Q,yCAKpD,QAaM,MAbN,GAaM,CAZyBr0C,EAAalb,MAAoB,IAAbnN,EAAQ,GAAiB,GAARA,GAAYa,OAAS,I,WAArF,QAWQ,QAXR,GAWQ,CAVJ,K,aAIA,QAKW,mBALqBwnB,EAAalb,MAAoB,IAAbnN,EAAQ,GAAiB,GAARA,IAApDy8D,K,WACb,QAGK,YAFD,OAA4D,KAA5D,IAA4D,QAAzBA,EAAYz8D,OAAK,IACpD,OAA4C,mBAArCy8D,EAAYC,mBAAiB,Q,qEAQhE,QA2FM,mBA1F4B,EAAA/D,aAAapvE,OAAOs8B,KAAK,EAAAk0C,gBAAgBpuB,MAAK,CAACt/B,EAAGu/B,IAAO,EAAAmuB,eAAe1tD,GAAGyS,QAAU,EAAAi7C,eAAenuB,GAAG9sB,QAAW,GAAK,IAAI,GAAI,KAAjB,CAApIq6C,EAAaP,M,WADzB,QA2FM,MA3FN,GA2FM,EAzFF,OAwFM,MAxFN,GAwFM,CAvF6F,GAARA,I,WAAvF,QAGM,MAHN,GAAkG,wG,gBAIlG,OAkFQ,QAlFR,GAkFQ,EAjFJ,OAWK,KAXL,GAWK,CAVD,GACA,IACA,OACwB,MADnBhC,QAAS,EAAA+F,YAAY,EAAA5C,eAAgBZ,GAAat4D,QAAQ,gDAC5C,MACqC,EAAA27D,gBAAgB37D,OAAS,I,WAAjF,QAGyB,M,MAHrBs7D,QAAQ,IAAKvF,QAAS,EAAA4F,gBAAgB37D,QAA0C,yDAGhE,Q,eACpB,GACA,MAEJ,OAOK,KAPL,GAOK,G,aAND,QAKW,mBALc,EAAA+7D,YAAY,EAAA7C,eAAgBZ,IAApC7qD,K,WACb,QAGK,MAFAsoD,QAAS,EAAA+F,YAAY,EAAA5C,eAAgBZ,GAAah2D,QAAO4U,GAAKA,EAAEzJ,MAAQA,EAAKne,KAAI0Q,S,QAC/EyN,EAAK7kB,MAAI,S,SAIxB,OAWK,KAXL,GAWK,G,aAVD,QAEW,mBAFuB,EAAAkzE,YAAY,EAAA5C,eAAgBZ,IAAW,CAAvDlvD,EAAMjK,M,WACpB,QAAyB,mBAAlBiK,EAAKjK,OAAK,M,qBAErB,QAMW,mBANqB,EAAAw8D,iBAAfC,K,WACb,QAIK,mBAFGA,EAAYz8D,OAAK,M,uBAKjC,QAgDW,mBAhDYm5D,GAANhpE,K,WACb,QA8CK,YA7CD,OAEK,mBADE,EAAA4pE,eAAe5pE,GAAI2uB,SAAO,IAEjC,OAEK,mBADE,EAAAi7C,eAAe5pE,GAAI46B,cAAY,K,aAEtC,QAaW,mBAbc,EAAA6xC,YAAY,EAAA7C,eAAgBZ,IAApC7qD,K,6CACb,QAWW,mBAVQ,EAAAquD,YAAY,EAAA5C,eAAgBZ,GAAah2D,QAAO4U,GAAKA,EAAEzJ,MAAQA,EAAKne,MAA5E8Z,K,8BACI,EAAA8vD,eAAe5pE,GAAIs1B,mBAAmB,GAAGnX,EAAKne,MAAM8Z,EAAK9Z,Q,WAEpE,QAMK,M,MANM3G,MAAM,SAAUM,OAAK,S,cAAoE,KAAK,MAAM,iBAAe,GAAI,mBAAkB,GAAI,EAAK,MAAM,EAAK,MAAM,KAAO,iBAAe,GAAI,cAAa,gB,WAAqF,KAAK,MAAM,iBAAe,GAAI,mBAAkB,GAAI,EAAK,MAAM,EAAK,MAAM,KAAO,iBAAe,GAAI,cAAa,sB,QAIncoT,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGnX,EAAKne,MAAM8Z,EAAK9Z,MAAM+zB,MAAG,M,WANrC,QACK,QADsE,Q,0CAWnF,QAYW,mBAZqB,EAAAs4C,iBAAfC,K,8BACH,EAAA1C,eAAe5pE,GAAIs1B,mBAAmBg3C,EAAYA,e,WAA5D,QAOK,M,MANDjzE,MAAM,SAAUM,OAAK,S,cAAoE,KAAK,MAAM,iBAAe,GAAI,mBAAmB,EAAY,aAAa,KAAO,iBAAe,GAAI,cAAa,gB,WAAqF,KAAK,MAAM,iBAAe,GAAI,mBAAmB,EAAY,aAAa,KAAO,iBAAe,GAAI,cAAa,sB,QAIxboT,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmBg3C,EAAYA,aAAav4C,MAAG,M,WAGzC,QAEK,KAFL,GAA0B,S,cAI9B,OAQK,MARD16B,MAAM,SAAUM,OAAK,S,cAA4D,KAAK,MAAM,iBAAe,GAAI,mBAAqB,iBAAe,GAAI,cAAa,mB,EAGpK,OAAiE,oBAAzDoT,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAI81B,oBAAiB,I,IAM3D,OAEK,KAFL,IAEK,QADE,EAAA8zC,eAAe5pE,GAAIwlC,eAAa,Q,oCAO3D,QAyEM,mBAxE6C,EAAAgjC,aAAa,EAAAxqB,QAAQ4qB,6BAA8B,GAAI,KAAN,CAAxFA,EAA8BH,M,WAD1C,QAyEM,MAzEN,GAyEM,EAvEF,OAsEM,MAtEN,GAsEM,CArE6F,GAARA,I,WAAvF,QAIM,MAJN,GAAkG,mH,gBAKlG,OA+DQ,QA/DR,GA+DQ,EA9DJ,OAYK,KAZL,GAYK,CAXD,GACgC,EAAAiE,oBAAsB,I,WAAtD,QAA6E,KAA7E,GAAyD,qB,eACzD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,O,aAEJ,QAgDW,mBAhDmC9D,GAA4B,CAAxDC,EAAkBh5D,M,WAChC,QA8CK,WA5CkB,GAATA,GAAcg5D,EAAiBliD,QAAUiiD,EAA6B/4D,EAAQ,IAAI8W,S,WAD5F,QASK,M,MATAqlD,QAASpD,EAA6B51D,QAAOsV,GAAKA,EAAE3B,QAAUkiD,EAAiBliD,SAAQjW,S,QAGhC,KAApD,EAAA05D,wBAAwBvB,EAAiBliD,QAA8D,cAAY,EAAiB,Q,GAAuG,0BAAwB,EAAiB,8FAA8F,cAAY,EAAiB,WAAM,Q,eAQnZ,EAAA+lD,oBAAsB,IAAe,GAAT78D,GAAcg5D,EAAiBliD,QAAUiiD,EAA6B/4D,EAAQ,IAAI8W,QAAUkiD,EAAiBrvC,gBAAkBovC,EAA6B/4D,EAAQ,IAAI2pB,kB,WAD9M,QAGK,M,MAHAwyC,QAASpD,EAA6B51D,QAAOsV,GAAKA,EAAE3B,QAAUkiD,EAAiBliD,QAAU2B,EAAEkR,gBAAkBqvC,EAAiBrvC,iBAAgB9oB,S,QAE5Im4D,EAAiBrvC,eAAiBqvC,EAAiBrvC,eAAiB,KAAH,Q,gBAExE,OAEK,mBADEqvC,EAAiBjvC,SAAO,IAE/B,OAEK,mBADEivC,EAAiBhvC,QAAM,IAE9B,OAEK,KAFL,IAEK,QADEgvC,EAAiBl9C,KAAG,IAE3B,OAEK,KAFL,IAEK,QADEk9C,EAAiBn9C,KAAG,IAE3B,OAEK,KAFL,IAEK,QADEm9C,EAAiB/uC,aAAc,KACtC,IACA,OAEK,KAFL,IAEK,QADE/sB,KAAKyB,MAAMq6D,EAAiB9uC,iBAAc,IAEjD,OAEK,KAFL,IAEK,QADEhtB,KAAKyB,MAAMq6D,EAAiB7uC,WAAQ,GAIxB,GAATnqB,GAAcg5D,EAAiBliD,QAAUiiD,EAA6B/4D,EAAQ,IAAI8W,QAAUkiD,EAAiBrvC,gBAAkBovC,EAA6B/4D,EAAQ,IAAI2pB,iB,WAFlL,QAIK,M,MAJDngC,MAAM,SACL2yE,QAASpD,EAA6B51D,QAAOsV,GAAKA,EAAE3B,QAAUkiD,EAAiBliD,QAAU2B,EAAEkR,gBAAkBqvC,EAAiBrvC,iBAAgB9oB,S,QAE5I3D,KAAKyB,MAAMq6D,EAAiB37C,WAAQ,Q,eAIxB,GAATrd,GAAcg5D,EAAiBliD,QAAUiiD,EAA6B/4D,EAAQ,IAAI8W,S,WAF5F,QAIK,M,MAJDttB,MAAM,SACL2yE,QAASpD,EAA6B51D,QAAOsV,GAAKA,EAAE3B,QAAUkiD,EAAiBliD,SAAQjW,S,QAErF3D,KAAKyB,MAAMq6D,EAAiB36C,aAAU,Q,yCAOzC,EAAAy+C,oBAAoB,EAAA/C,gBAAkB,K,aAA9D,QAkEM,sBAjE4B,EAAApB,aAAapvE,OAAOs8B,KAAK,EAAAk0C,gBAAgBgD,SAAQ5sE,GAAMmvD,MAAMpiD,KAAK8/D,KAAK,EAAAL,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,OAAS,KAAKhV,KAAKsE,KAAKw7C,MAAK,CAACt/B,EAAGu/B,IAAO,EAAAmuB,eAAe1tD,GAAGyS,QAAU,EAAAi7C,eAAenuB,GAAG9sB,QAAW,GAAK,IAAI5hB,KAAK8/D,KAAK,GAAK,EAAAF,oBAAoB,EAAA/C,iBAAkB78D,KAAK8/D,KAAK,GAAK,EAAAF,oBAAoB,EAAA/C,mBAAc,CAA/UZ,EAAaP,M,WADzB,QAkEM,MAlEN,GAkEM,EAhEF,OA+DM,MA/DN,GA+DM,CA9D6F,GAARA,I,WAAvF,QAEM,MAFN,GAAkG,mF,gBAGlG,OA0DQ,QA1DR,GA0DQ,CAzDJ,K,aASA,QA+CW,mBA/CYO,GAANhpE,K,6CACb,QA6CW,mBA5CiB,EAAAwsE,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAKgd,MAAYyrD,EAAO17D,KAAK8/D,KAAK,EAAAL,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,OAAS,IAAlE,GAAwE,IAAO+3D,EAAO17D,KAAK8/D,KAAK,EAAAL,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,OAAS,IAAO,GAAK,EAAA87D,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,OAAS,EAAA87D,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,OAAS,IAAO+3D,EAAO17D,KAAK8/D,KAAK,EAAAL,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,OAAS,IAAO,KAAV,CAArWoJ,EAAMjK,M,+BAEd,OAqCK,WApCsE,GAATA,I,WAA9D,QAEK,M,MAFAm8D,QAAS,EAAAQ,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,S,QACzC,EAAAk5D,eAAe5pE,GAAI2uB,SAAO,Q,gBAEjC,OAEK,KAFL,IAEK,QADE7U,EAAKjK,OAAK,IAEjB,OAEK,mBADEiK,EAAKxgB,MAAI,IAEhB,OAKK,KALL,IAKK,QAHGyT,KAAKyB,MAAM,EAAAwvC,QAAQ4qB,6BAA6B51D,QAAOsV,GAAKA,EAAE3B,QAA+D,EAAK,KAAE,GAAK,aAAU,IAI3J,OAIK,KAJL,IAIK,QAFG5Z,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMoxB,WAAQ,IAG5F,OAIK,KAJL,IAIK,QAFGrkB,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMs6B,eAAY,IAGhG,OAKK,KALL,IAKK,QAFGvtB,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMu6B,aAAU,IAG9F,OAIK,KAJL,IAIK,QAFGxtB,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAM+zB,MAAG,KAKjFlkB,GAAS,EAAA28D,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,OAAS,GAAKs4D,EAAYz9C,QAAQvrB,IAAOgpE,EAAYt4D,OAAS,I,WADnH,QAGK,c,yEAMzB,QAyEM,sBAxE4B,EAAA83D,aAAapvE,OAAOs8B,KAAK,EAAAk0C,gBAAgBpuB,MAAK,CAACt/B,EAAGu/B,IAAO,EAAAmuB,eAAe1tD,GAAGyS,QAAU,EAAAi7C,eAAenuB,GAAG9sB,QAAW,GAAK,IAAI5hB,KAAK8/D,KAAK,GAAK,EAAAF,oBAAoB,EAAA/C,iBAAkB78D,KAAK8/D,KAAK,GAAK,EAAAF,oBAAoB,EAAA/C,mBAAc,CAAvPZ,EAAaP,M,WADzB,QAyEM,MAzEN,GAyEM,EAvEF,OAsEM,MAtEN,GAsEM,CArE6F,GAARA,I,WAAvF,QAEM,MAFN,GAAkG,mF,gBAGlG,OAiEQ,QAjER,GAiEQ,CAhEJ,K,aASA,QAsDW,mBAtDYO,GAANhpE,K,6CACb,QAoDW,mBApDuB,EAAAwsE,YAAY,EAAA5C,eAAgB,CAAC5pE,KAAE,CAA/C8Z,EAAMjK,M,+BAEpB,OA6CK,WA5CsE,GAATA,I,WAA9D,QAEK,M,MAFAm8D,QAAS,EAAAQ,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,S,QACzC,EAAAk5D,eAAe5pE,GAAI2uB,SAAO,Q,eAGvB,EAAAi7C,eAAe5pE,IAAO,EAAA4pE,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,Q,WAD3F,QAGK,KAHL,IAGK,QADE8Z,EAAKjK,OAAK,K,eAGP,EAAA+5D,eAAe5pE,IAAO,EAAA4pE,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,Q,WAD3F,QAGK,iBADE8Z,EAAKxgB,MAAI,K,eAGN,EAAA0kD,QAAQ4qB,6BAA6B51D,QAAOsV,GAAKA,EAAE3B,QAA2D,EAAK,KAAI,OAAM,GAAQ,iBAAe,IAAO,iBAAe,GAAI,mBAAkB,GAAI,EAAK,QAAQ,EAAK,Q,WADhO,QAOK,KAPL,IAOK,QAHG5Z,KAAKyB,MAAM,EAAAwvC,QAAQ4qB,6BAA6B51D,QAAOsV,GAAKA,EAAE3B,QAA+D,EAAK,KAAE,GAAK,aAAU,K,eAKjJ,EAAAijD,eAAe5pE,IAAO,EAAA4pE,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,Q,WAD3F,QAKK,KALL,IAKK,QAFG+M,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMoxB,WAAQ,K,eAIlF,EAAAw4C,eAAe5pE,IAAO,EAAA4pE,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,Q,WAD3F,QAKK,KALL,IAKK,QAFG+M,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMs6B,eAAY,K,eAItF,EAAAsvC,eAAe5pE,IAAO,EAAA4pE,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,Q,WAD3F,QAMK,KANL,IAMK,QAFG+M,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMu6B,aAAU,K,eAIpF,EAAAqvC,eAAe5pE,IAAO,EAAA4pE,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,Q,WAD3F,QAKK,KALL,IAKK,QAFG+M,KAAKyB,MAAM,EAAAo7D,eAAe5pE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAM+zB,MAAG,K,iBAKjFlkB,GAAS,EAAA28D,YAAY,EAAA5C,eAAgB,CAAC5pE,IAAK0Q,OAAS,GAAKs4D,EAAYz9C,QAAQvrB,IAAOgpE,EAAYt4D,OAAS,I,WADnH,QAGK,c,2DAMzB,QAEmB,GAFAstC,QAAS,EAAAA,QAAU8uB,QAAS,EAAAlD,eAC3CtiC,MAAM,wF,iDAGsC,cAARvV,I,WAA5C,QA0YM,MA1YN,GA0YM,CAzYF,K,aAOA,QAoBM,mBApBoC,EAAAy2C,aAAa,EAAAxqB,QAAQnX,MAAO,GAAI,KAAN,CAA1CA,EAAO4hC,M,WAAjC,QAoBM,MApBN,GAoBM,EAnBF,OAkBM,MAlBN,GAkBM,CAjB6F,GAARA,I,WAAvF,QAEM,MAFN,GAAkG,gE,gBAGlG,OAaQ,QAbR,GAaQ,CAZJ,K,aAKA,QAMW,mBANc5hC,GAAR/sB,K,WACb,QAIK,YAHD,OAAqD,KAArD,IAAqD,QAAlBA,EAAKjK,OAAK,IAC7C,OAAqC,mBAA9B,EAAAu8D,YAAYtyD,EAAKqE,OAAI,IAC5B,OAAwB,mBAAjBrE,EAAKxgB,MAAI,Q,oCAMpC,QAoCM,mBApC2C,EAAAkvE,aAAa,EAAA6D,gBAAiB,GAAI,KAAN,CAAnDn0C,EAAcuwC,M,WAAxC,QAoCM,MApCN,GAoCM,EAnCF,OAkCM,MAlCN,GAkCM,CAjC6F,GAARA,I,WAAvF,QAEM,MAFN,GAAkG,4E,4BAGlG,QA6BW,mBA7Be,CAAC,EAAG,IAAb54D,K,8BAC4BqoB,EAAalb,MAAM,GAAI,IAAItM,OAAS,I,WAA7E,QAaM,MAbN,GAaM,CAZyBwnB,EAAalb,MAAoB,IAAbnN,EAAQ,GAAiB,GAARA,GAAYa,OAAS,I,WAArF,QAWQ,QAXR,GAWQ,CAVJ,K,aAIA,QAKW,mBALqBwnB,EAAalb,MAAoB,IAAbnN,EAAQ,GAAiB,GAARA,IAApDy8D,K,WACb,QAGK,YAFD,OAA4D,KAA5D,IAA4D,QAAzBA,EAAYz8D,OAAK,IACpD,OAA4C,mBAArCy8D,EAAYC,mBAAiB,Q,yCAKpD,QAaM,MAbN,GAaM,CAZyBr0C,EAAalb,MAAoB,IAAbnN,EAAQ,GAAiB,GAARA,GAAYa,OAAS,I,WAArF,QAWQ,QAXR,GAWQ,CAVJ,K,aAIA,QAKW,mBALqBwnB,EAAalb,MAAoB,IAAbnN,EAAQ,GAAiB,GAARA,IAApDy8D,K,WACb,QAGK,YAFD,OAA4D,KAA5D,IAA4D,QAAzBA,EAAYz8D,OAAK,IACpD,OAA4C,mBAArCy8D,EAAYC,mBAAiB,Q,qEAQhE,QAgGM,mBA/F4B,EAAA/D,aAAapvE,OAAOs8B,KAAK,EAAAqzC,cAAcvtB,MAAK,CAACt/B,EAAGu/B,IAAO,EAAAstB,aAAa7sD,GAAGyS,QAAU,EAAAo6C,aAAattB,GAAG9sB,QAAW,GAAK,IAAI,GAAI,KAAjB,CAA9Hq6C,EAAaP,M,WADzB,QAgGM,MAhGN,GAgGM,EA9FF,OA6FM,MA7FN,GA6FM,CA5F6F,GAARA,I,WAAvF,QAKM,MALN,GAAkG,4I,gBAMlG,OAqFQ,QArFR,GAqFQ,EApFJ,OAaK,KAbL,GAaK,CAZD,GACA,IACA,OACwB,MADnBhC,QAAS,EAAA+F,YAAY,EAAAzD,aAAcC,GAAat4D,QAAQ,gDAC1C,MACqC,EAAA27D,gBAAgB37D,OAAS,I,WAAjF,QAGyB,M,MAHrBs7D,QAAQ,IAAKvF,QAAS,EAAA4F,gBAAgB37D,QAA0C,yDAGhE,Q,eACpB,GAGA,MAEJ,OAOK,KAPL,GAOK,G,aAND,QAKW,mBALc,EAAA+7D,YAAY,EAAA1D,aAAcC,IAAlC7qD,K,WACb,QAGK,MAFAsoD,QAAS,EAAA+F,YAAY,EAAAzD,aAAcC,GAAah2D,QAAO4U,GAAKA,EAAEzJ,MAAQA,EAAKne,KAAI0Q,S,QAC7EyN,EAAK7kB,MAAI,S,SAIxB,OAWK,KAXL,GAWK,G,aAVD,QAEW,mBAFuB,EAAAkzE,YAAY,EAAAzD,aAAcC,IAAW,CAArDlvD,EAAMjK,M,WACpB,QAAyB,mBAAlBiK,EAAKjK,OAAK,M,qBAErB,QAMW,mBANqB,EAAAw8D,iBAAfC,K,WACb,QAIK,mBAFGA,EAAYz8D,OAAK,M,uBAKjC,QAiDW,mBAjDYm5D,GAANhpE,K,WACb,QA+CK,YA9CD,OAEK,mBADE,EAAA+oE,aAAa/oE,GAAI2uB,SAAO,IAE/B,OAEK,mBADE,EAAAo6C,aAAa/oE,GAAI46B,cAAY,K,aAEpC,QAcW,mBAdc,EAAA6xC,YAAY,EAAA1D,aAAcC,IAAlC7qD,K,6CACb,QAYW,mBAXQ,EAAAquD,YAAY,EAAAzD,aAAcC,GAAah2D,QAAO4U,GAAKA,EAAEzJ,MAAQA,EAAKne,MAA1E8Z,K,8BACG,EAAAivD,aAAa/oE,GAAIs1B,mBAAmB,GAAGnX,EAAKne,MAAM8Z,EAAK9Z,Q,WAAjE,QAQK,M,MAPD3G,MAAM,SAAUM,OAAK,S,cAAwE,KAAK,MAAM,eAAa,GAAI,mBAAkB,GAAI,EAAK,MAAM,EAAK,MAAM,KAAO,eAAa,GAAI,cAAa,gB,WAAyF,KAAK,MAAM,eAAa,GAAI,mBAAkB,GAAI,EAAK,MAAM,EAAK,MAAM,KAAO,eAAa,GAAI,cAAa,sB,QAK5YoT,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGnX,EAAKne,MAAM8Z,EAAK9Z,MAAM+zB,MAAG,M,WAGnF,QAAiB,QAAN,O,0CAGnB,QAYW,mBAZqB,EAAAs4C,iBAAfC,K,8BACH,EAAAvD,aAAa/oE,GAAIs1B,mBAAmBg3C,EAAYA,e,WAA1D,QAOK,M,MANDjzE,MAAM,SAAUM,OAAK,S,cAAoE,KAAK,MAAM,eAAa,GAAI,mBAAmB,EAAY,aAAa,KAAO,eAAa,GAAI,cAAa,gB,WAAqF,KAAK,MAAM,eAAa,GAAI,mBAAmB,EAAY,aAAa,KAAO,eAAa,GAAI,cAAa,sB,QAIhboT,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmBg3C,EAAYA,aAAav4C,MAAG,M,WAGvC,QAEK,KAFL,GAA0B,S,cAI9B,OAQK,MARD16B,MAAM,SAAUM,OAAK,S,cAA4D,KAAK,MAAM,eAAa,GAAI,mBAAqB,eAAa,GAAI,cAAa,mB,EAGhK,OAA+D,oBAAvDoT,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAI81B,oBAAiB,GACM,IAAhD,EAAAizC,aAAa/oE,GAAI+1B,yBAAyB,K,WAArD,QAGa,SAHkD,MAC1D,QACGhpB,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIi2B,iCAC9B,IAAC,K,oBAEX,OAEK,KAFL,IAEK,QADE,EAAA8yC,aAAa/oE,GAAIwlC,eAAa,Q,oCAOzD,QAsFM,mBArF2C,EAAAgjC,aAAa,EAAAxqB,QAAQ+uB,2BAA4B,GAAI,KAAN,CAApFA,EAA4BtE,M,WADxC,QAsFM,MAtFN,GAsFM,EApFF,OAmFM,MAnFN,GAmFM,CAlF6F,GAARA,I,WAAvF,QAKM,MALN,GAAkG,sI,gBAMlG,OA2EQ,QA3ER,GA2EQ,EA1EJ,OAeK,KAfL,GAeK,CAdD,GACgC,EAAAiE,oBAAsB,I,WAAtD,QAA6E,KAA7E,GAAyD,qB,eACzD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,O,aAEJ,QAyDW,mBAzDmCK,GAA0B,CAAtDlE,EAAkBh5D,M,WAChC,QAuDK,WArDkB,GAATA,GAAcg5D,EAAiBliD,QAAUomD,EAA2Bl9D,EAAQ,GAAG8W,S,WADzF,QASK,M,MATAqlD,QAASe,EAA2B/5D,QAAOsV,GAAKA,EAAE3B,QAAUkiD,EAAiBliD,SAAQjW,S,QAG9B,KAApD,EAAA05D,wBAAwBvB,EAAiBliD,QAA8D,cAAY,EAAiB,Q,GAAuG,0BAAwB,EAAiB,8FAA8F,cAAY,EAAiB,WAAM,Q,eAQnZ,EAAA+lD,oBAAsB,IAAe,GAAT78D,GAAcg5D,EAAiBliD,QAAUomD,EAA2Bl9D,EAAQ,GAAG8W,QAAUkiD,EAAiBrvC,gBAAkBuzC,EAA2Bl9D,EAAQ,GAAG2pB,kB,WADxM,QAGK,M,MAHAwyC,QAASe,EAA2B/5D,QAAOsV,GAAKA,EAAE3B,QAAUkiD,EAAiBliD,QAAU2B,EAAEkR,gBAAkBqvC,EAAiBrvC,iBAAgB9oB,S,QAE1Im4D,EAAiBrvC,eAAiBqvC,EAAiBrvC,eAAiB,KAAH,Q,gBAExE,OAEK,mBADEqvC,EAAiBjvC,SAAO,IAE/B,OAEK,mBADEivC,EAAiBhvC,QAAM,IAE9B,OAEK,KAFL,IAEK,QADEgvC,EAAiBl9C,KAAG,IAE3B,OAEK,KAFL,IAEK,QADEk9C,EAAiBn9C,KAAG,IAE3B,OAEK,KAFL,IAEK,QADEm9C,EAAiB/uC,aAAc,KACtC,IACA,OAEK,KAFL,IAEK,QADE/sB,KAAKyB,MAAMq6D,EAAiB9uC,iBAAc,IAEjD,OAEK,KAFL,IAEK,QADEhtB,KAAKyB,MAAMq6D,EAAiB7uC,WAAQ,IAE3C,OAEK,mBADE6uC,EAAiB5uC,mBAAiB,IAEzC,OAEK,KAFL,IAEK,QADE4uC,EAAiB3uC,kBAAgB,IAExC,OAEK,KAFL,IAEK,QADEntB,KAAKyB,MAAMq6D,EAAiB1uC,eAAY,GAI5B,GAATtqB,GAAcg5D,EAAiBliD,QAAUomD,EAA2Bl9D,EAAQ,GAAG8W,QAAUkiD,EAAiBrvC,gBAAkBuzC,EAA2Bl9D,EAAQ,GAAG2pB,iB,WAF5K,QAIK,M,MAJDngC,MAAM,SACL2yE,QAASe,EAA2B/5D,QAAOsV,GAAKA,EAAE3B,QAAUkiD,EAAiBliD,QAAU2B,EAAEkR,gBAAkBqvC,EAAiBrvC,iBAAgB9oB,S,QAE1I3D,KAAKyB,MAAMq6D,EAAiB37C,WAAQ,Q,eAIxB,GAATrd,GAAcg5D,EAAiBliD,QAAUomD,EAA2Bl9D,EAAQ,GAAG8W,S,WAFzF,QAIK,M,MAJDttB,MAAM,SACL2yE,QAASe,EAA2B/5D,QAAOsV,GAAKA,EAAE3B,QAAUkiD,EAAiBliD,SAAQjW,S,QAEnF3D,KAAKyB,MAAMq6D,EAAiB36C,aAAU,Q,yCAOzC,EAAAy+C,oBAAoB,EAAA5D,cAAgB,K,aAA5D,QAsEM,sBArE4B,EAAAP,aAAapvE,OAAOs8B,KAAK,EAAAqzC,cAAc6D,SAAQ5sE,GAAMmvD,MAAMpiD,KAAK8/D,KAAK,EAAAL,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,OAAS,KAAKhV,KAAKsE,KAAKw7C,MAAK,CAACt/B,EAAGu/B,IAAO,EAAAstB,aAAa7sD,GAAGyS,QAAU,EAAAo6C,aAAattB,GAAG9sB,QAAW,GAAK,IAAI5hB,KAAK8/D,KAAK,GAAK,EAAAF,oBAAoB,EAAA5D,eAAgBh8D,KAAK8/D,KAAK,GAAK,EAAAF,oBAAoB,EAAA5D,iBAAY,CAAnUC,EAAaP,M,WADzB,QAsEM,MAtEN,GAsEM,EApEF,OAmEM,MAnEN,GAmEM,CAlE6F,GAARA,I,WAAvF,QAIM,MAJN,GAAkG,uH,gBAKlG,OA4DQ,QA5DR,GA4DQ,CA3DJ,K,aASA,QAiDW,mBAjDYO,GAANhpE,K,6CACb,QA+CW,mBA9CiB,EAAAwsE,YAAY,EAAAzD,aAAc,CAAC/oE,IAAKgd,MAAYyrD,EAAO17D,KAAK8/D,KAAK,EAAAL,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,OAAS,IAAhE,GAAsE,IAAO+3D,EAAO17D,KAAK8/D,KAAK,EAAAL,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,OAAS,IAAO,GAAK,EAAA87D,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,OAAS,EAAA87D,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,OAAS,IAAO+3D,EAAO17D,KAAK8/D,KAAK,EAAAL,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,OAAS,IAAO,KAAV,CAAzVoJ,EAAMjK,M,+BAEd,OAuCK,WAtCkD,GAATA,I,WAA1C,QAEK,M,MAFAm8D,QAAS,EAAAhuB,QAAQnX,MAAMn2B,S,QACrB,EAAAq4D,aAAa/oE,GAAI2uB,SAAO,Q,gBAE/B,OAEK,KAFL,IAEK,QADE7U,EAAKjK,OAAK,IAEjB,OAEK,mBADEiK,EAAKxgB,MAAI,GAES,EAAA0kD,QAAQ+uB,2BAA2B/5D,QAAOsV,GAAKA,EAAE3B,QAAuD,EAAK,KAAI,OAAM,I,WAAhJ,QAMK,KANL,IAMK,QAHG5Z,KAAKyB,MAAM,EAAAwvC,QAAQ+uB,2BAA2B/5D,QAAOsV,GAAKA,EAAE3B,QAA+D,EAAK,KAAE,GAAK,aAAU,M,WAIzJ,QAAgC,KAAhC,GAA0B,OAC1B,OAIK,KAJL,IAIK,QAFG5Z,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMoxB,WAAQ,IAG1F,OAIK,KAJL,IAIK,QAFGrkB,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMs6B,eAAY,IAG9F,OAKK,KALL,IAKK,QAFGvtB,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMu6B,aAAU,IAG5F,OAIK,KAJL,IAIK,QAFGxtB,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAM+zB,MAAG,KAK/ElkB,GAAS,EAAA28D,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,OAAS,GAAKs4D,EAAYz9C,QAAQvrB,IAAOgpE,EAAYt4D,OAAS,I,WADjH,QAGK,c,yEAMzB,QAqEM,sBApE4B,EAAA83D,aAAapvE,OAAOs8B,KAAK,EAAAqzC,cAAcvtB,MAAK,CAACt/B,EAAGu/B,IAAM,EAAAstB,aAAa7sD,GAAGyS,QAAQi9B,cAAc,EAAAmd,aAAattB,GAAG9sB,aAASlU,EAAW,CAAEoxC,SAAS,EAAMC,YAAa,WAAY/+C,KAAK8/D,KAAK,GAAK,EAAAF,oBAAoB,EAAA5D,eAAgBh8D,KAAK8/D,KAAK,GAAK,EAAAF,oBAAoB,EAAA5D,iBAAY,CAAlSC,EAAaP,M,WADzB,QAqEM,MArEN,GAqEM,EAnEF,OAkEM,MAlEN,GAkEM,CAjE6F,GAARA,I,WAAvF,QAIM,MAJN,GAAkG,uH,gBAKlG,OA2DQ,QA3DR,GA2DQ,CA1DJ,K,aASA,QAgDW,mBAhDYO,GAANhpE,K,6CACb,QA8CW,mBA9CuB,EAAAwsE,YAAY,EAAAzD,aAAc,CAAC/oE,KAAE,CAA7C8Z,EAAMjK,M,+BAEpB,OAuCK,WAtCoE,GAATA,I,WAA5D,QAEK,M,MAFAm8D,QAAS,EAAAQ,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,S,QACvC,EAAAq4D,aAAa/oE,GAAI2uB,SAAO,Q,gBAE/B,OAEK,KAFL,IAEK,QADE7U,EAAKjK,OAAK,IAEjB,OAEK,mBADEiK,EAAKxgB,MAAI,GAES,EAAA0kD,QAAQ+uB,2BAA2B/5D,QAAOsV,GAAKA,EAAE3B,QAAuD,EAAK,KAAI,OAAM,I,WAAhJ,QAMK,KANL,IAMK,QAHG5Z,KAAKyB,MAAM,EAAAwvC,QAAQ+uB,2BAA2B/5D,QAAOsV,GAAKA,EAAE3B,QAA+D,EAAK,KAAE,GAAK,aAAU,M,WAIzJ,QAAiB,QAAN,OACX,OAIK,KAJL,IAIK,QAFG5Z,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMoxB,WAAQ,IAG1F,OAIK,KAJL,IAIK,QAFGrkB,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMs6B,eAAY,IAG9F,OAKK,KALL,IAKK,QAFGvtB,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAMu6B,aAAU,IAG5F,OAIK,KAJL,IAIK,QAFGxtB,KAAKyB,MAAM,EAAAu6D,aAAa/oE,GAAIs1B,mBAAmB,GAAGxb,EAAKqE,QAAQrE,EAAK9Z,MAAM+zB,MAAG,KAK/ElkB,GAAS,EAAA28D,YAAY,EAAAzD,aAAc,CAAC/oE,IAAK0Q,OAAS,GAAKs4D,EAAYz9C,QAAQvrB,IAAOgpE,EAAYt4D,OAAS,I,WADjH,QAGK,c,2DAMzB,QAEmB,GAFAstC,QAAS,EAAAA,QAAU8uB,QAAS,EAAA/D,aAC3CzhC,MAAM,sF,iDAG8B,EAAAi+B,iBAAiB70D,OAAS,GAAa,cAARqhB,I,WAA3E,QAkBM,MAlBN,GAkBM,CAjBF,IAMA,QAIc,GAJAisB,QAAS,EAAAA,QAAS1W,MAAM,8CACjCvoC,MAAO,EAAAwmE,iBAAiB1iE,KAAIq/C,GAAKA,EAAE76B,mBACnCnoB,IAAK,EAAAqmE,iBAAiB1iE,KAAIq/C,GAAKA,EAAE36B,iBAClCylD,OAAO,sF,iDAEX,QAKW,mBALoB,EAAAzH,kBAAgB,CAA7BrjB,EAAGryC,M,WACjB,QAGc,GAHAmuC,QAASkE,EAAI5a,MAAK,cAAgBz3B,EAAQ,KAAKqyC,EAAErhD,sCAC1D9B,MAAK,CAAG,EAAAi/C,QAAQ32B,kBAAoBnoB,IAAG,CAAG,EAAA8+C,QAAQz2B,gBACnDylD,OAAO,iF,gJCz1BtB3zE,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,UAGLN,MAAM,0B,IAC1BA,MAAM,QAAQ2G,GAAG,S,YAEhB,OAAS,qB,2BAUT,OAAmD,MAA/CrG,MAAA,sBAAuB,uBAAmB,K,IAKlCA,MAAA,yB,eAOJA,MAAA,wB,UAiBYN,MAAM,gB,UAGNA,MAAM,Y,qBAUDA,MAAM,0B,IAChCA,MAAM,QAAQ2G,GAAG,S,YAEhB,OAAS,qB,2BAUT,OAA4B,UAAxB,uBAAmB,K,IAKXrG,MAAA,yB,eAOJA,MAAA,wB,UAiBYN,MAAM,gB,UAGNA,MAAM,Y,qBAU1BA,MAAM,0B,IACPA,MAAM,QAAQ2G,GAAG,S,YAEhB,OAAS,qB,2BAUT,OAA4B,UAAxB,uBAAmB,K,IAIXrG,MAAA,yB,eASJA,MAAA,wB,UAiBYN,MAAM,gB,UAGNA,MAAM,Y,qBAUjCA,MAAM,gBAAoCM,MAAA,qC,YAC3C,OACM,OADDN,MAAM,sCAAoC,W,IAE1CA,MAAM,0B,6CA/KvB,QAoLM,mBAnLuB,EAAAmvE,aAAc,EAAAxqB,QAAQ+N,OAAOr7C,OAAS,EAAAstC,QAAQ5K,MAAM1iC,OAAS,EAAAstC,QAAQ+N,OAAS,EAAA/N,QAAQnX,MAAQ,GAAI,KAAP,CAA5GklB,EAAQ0c,M,WADpB,QAoLM,MApLN,GAoLM,EAlLF,OAiLM,MAjLN,GAiLM,CAhL6F,GAARA,I,WAAvF,QAEM,MAFN,IAEM,QADC,EAAAnhC,OAAK,K,eAED,EAAAuiC,cAAgB,K,WAA3B,QAsDM,MAtDN,GAsDM,EArDF,OAoDQ,QApDR,GAoDQ,EAnDJ,OASK,WARD,K,aACA,QAMW,mBALS,EAAAoD,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAAjEmV,K,WACP,QAGK,MAFA+pC,QAAS,EAAAyG,oBAAoB,EAAAlvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOm7B,GAAKA,EAAEroB,gBAAkB4W,EAAM5W,eAAiBqoB,EAAEpoB,aAAe2W,EAAM3W,aAAYrV,S,QACvKgsB,EAAM5W,eAAgB,KAAC,QAAG4W,EAAM3W,WAAa,GAAL,S,SAIvD,OAUK,WATD,K,aACA,QAOW,mBANS,EAAAknD,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAAjEmV,K,6CACP,QAIW,mBAHO,EAAAwwC,oBAAoB,EAAAlvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOm7B,GAAKA,EAAEroB,gBAAkB4W,EAAM5W,eAAiBqoB,EAAEpoB,aAAe2W,EAAM3W,cAA3J6W,K,WACP,QACK,KADL,IACK,QAD8BA,EAAI5W,UAAUpY,WAAW+uB,SAAS,EAAG,MAAJ,M,qCAKhF,QA6BW,mBA7Bc,EAAAqhB,QAAQ5K,OAAhBj1B,K,8BACH4tC,EAAO/4C,QAAOuvD,GAAKA,EAAEpkD,MAAQA,EAAKne,KAAI0Q,OAAS,I,WAAzD,QASK,UARD,OAAiD,KAAjD,IAAiD,QAAjByN,EAAK7kB,MAAI,K,aACzC,QAMW,mBALS,EAAA2zE,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAAjEmV,K,6CACP,QAGW,mBAFO,EAAAwwC,oBAAoB,EAAAlvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOm7B,GAAKA,EAAEroB,gBAAkB4W,EAAM5W,eAAiBqoB,EAAEpoB,aAAe2W,EAAM3W,cAA3J6W,K,WACP,QAAS,S,sDAIrB,QAiBW,mBAjBemvB,EAAO/4C,QAAOuvD,GAAKA,EAAEpkD,MAAQA,EAAKne,MAA3CmyD,K,WACb,QAeK,YAdD,OAAyB,mBAAlBA,EAAM74D,MAAI,K,aACjB,QAYW,mBAXS,EAAA2zE,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAAjEmV,K,6CACP,QASW,mBARO,EAAAwwC,oBAAoB,EAAAlvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOm7B,GAAKA,EAAEroB,gBAAkB4W,EAAM5W,eAAiBqoB,EAAEpoB,aAAe2W,EAAM3W,cAA3J6W,K,8BACG,EAAA5W,QAAQmsC,EAAMpzD,OAAOouE,SAAS,IAAMvwC,GAAOA,GAAO,EAAA5W,QAAQmsC,EAAMjzD,MAAQ,EAAAkuE,mBAAmB,IAAIxzD,KAAK8iB,EAAM5W,cAAe4W,EAAM3W,WAAa,EAAG,GAAI,EAAAhnB,MAAO,EAAAG,O,WAApK,QAEK,KAFL,M,eAGU,EAAA8mB,QAAQmsC,EAAMpzD,OAAOouE,SAAS,IAAMvwC,GAAOA,GAAO,EAAA5W,QAAQmsC,EAAMjzD,O,WAA1E,QAEK,KAFL,O,WAGA,QAAgB,W,yDAQ5B,EAAA6qE,gBAAkB,I,WAAlC,QAsDM,MAtDN,GAsDM,EArDF,OAoDQ,QApDR,GAoDQ,EAnDJ,OASK,WARD,K,aACA,QAMW,mBALS,EAAAkD,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAAjEmV,K,WACP,QAGK,MAFA+pC,QAAS,EAAA4G,qBAAqB,EAAArvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOs6D,GAAKA,EAAExnD,gBAAkB4W,EAAM5W,eAAiBwnD,EAAEvnD,aAAe2W,EAAM3W,aAAYrV,S,QACxKgsB,EAAM5W,eAAgB,KAAC,QAAG4W,EAAM3W,WAAa,GAAL,S,SAIvD,OAUK,WATD,K,aACA,QAOW,mBANS,EAAAknD,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAAjEmV,K,6CACP,QAIW,mBAHO,EAAA2wC,qBAAqB,EAAArvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOs6D,GAAKA,EAAExnD,gBAAkB4W,EAAM5W,eAAiBwnD,EAAEvnD,aAAe2W,EAAM3W,cAA5J6W,K,WACP,QACK,KADL,IACK,QAD8BA,EAAI5W,UAAUpY,WAAW+uB,SAAS,EAAG,MAAJ,M,qCAKhF,QA6BW,mBA7Bc,EAAAqhB,QAAQ5K,OAAhBj1B,K,8BACH4tC,EAAO/4C,QAAOuvD,GAAKA,EAAEpkD,MAAQA,EAAKne,KAAI0Q,OAAS,I,WAAzD,QASK,UARD,OAAiD,KAAjD,IAAiD,QAAjByN,EAAK7kB,MAAI,K,aACzC,QAMW,mBALS,EAAA2zE,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAAjEmV,K,6CACP,QAGW,mBAFO,EAAA2wC,qBAAqB,EAAArvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOm7B,GAAKA,EAAEroB,gBAAkB4W,EAAM5W,eAAiBqoB,EAAEpoB,aAAe2W,EAAM3W,cAA5J6W,K,WACP,QAAS,S,sDAIrB,QAiBW,mBAjBemvB,EAAO/4C,QAAOuvD,GAAKA,EAAEpkD,MAAQA,EAAKne,MAA3CmyD,K,WACb,QAeK,YAdD,OAAyB,mBAAlBA,EAAM74D,MAAI,K,aACjB,QAYW,mBAXS,EAAA2zE,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAAjEmV,K,6CACP,QASW,mBARO,EAAA2wC,qBAAqB,EAAArvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOs6D,GAAKA,EAAExnD,gBAAkB4W,EAAM5W,eAAiBwnD,EAAEvnD,aAAe2W,EAAM3W,cAA5J6W,K,8BACG,EAAA5W,QAAQmsC,EAAMpzD,OAAOouE,SAAS,IAAMvwC,GAAOA,GAAO,EAAA5W,QAAQmsC,EAAMjzD,MAAQ,EAAAkuE,mBAAmB,IAAIxzD,KAAK8iB,EAAM5W,cAAe4W,EAAM3W,WAAa,EAAG,GAAI,EAAAhnB,MAAO,EAAAG,O,WAApK,QAEK,KAFL,KAGe,EAAA8mB,QAAQmsC,EAAMpzD,OAAOouE,SAAS,IAAMvwC,GAAOA,GAAO,EAAA5W,QAAQmsC,EAAMjzD,O,WAA/E,QAEK,KAFL,O,WAGA,QAAgB,W,sEAQ5C,QAuDM,MAvDN,GAuDM,EAtDF,OAqDQ,QArDR,GAqDQ,EApDJ,OASK,WARD,K,aACA,QAMW,mBANc,EAAAquE,oBAAoB,EAAAvvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAA9DsV,K,WACb,QAIrB,MAH0B4pC,QAAS,EAAAwG,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOqf,GAAKA,EAAEvM,gBAAkB+W,EAAK/W,gBAAepV,S,QAE9JmsB,EAAK/W,eAAW,S,SAIJ,OAWK,WAVD,K,aACA,QAQW,mBARc,EAAAynD,oBAAoB,EAAAvvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAA9DsV,K,6CACb,QAMW,mBALS,EAAAowC,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOqf,GAAKA,EAAEvM,gBAAkB+W,EAAK/W,iBAAtH4W,K,WACP,QAGK,KAHL,IAGK,SAH+BA,EAAM3W,WAAa,GAAGnY,WAAW+uB,SAAS,E,iDAO1F,QA6BW,mBA7Bc,EAAAqhB,QAAQ5K,OAAhBj1B,K,8BACH4tC,EAAO/4C,QAAOuvD,GAAKA,EAAEpkD,MAAQA,EAAKne,KAAI0Q,OAAS,I,WAAzD,QASK,UARD,OAAiD,KAAjD,IAAiD,QAAjByN,EAAK7kB,MAAI,K,aACzC,QAMW,mBALQ,EAAAi0E,oBAAoB,EAAAvvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAA9DsV,K,6CACP,QAGW,mBAFS,EAAAowC,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOqf,GAAKA,EAAEvM,gBAAkB+W,EAAK/W,iBAAtH4W,K,WACP,QAAS,S,sDAIrB,QAiBW,mBAjBeqvB,EAAO/4C,QAAOuvD,GAAKA,EAAEpkD,MAAQA,EAAKne,MAA3CmyD,K,WACb,QAeK,YAdD,OAAyB,mBAAlBA,EAAM74D,MAAI,K,aACjB,QAYW,mBAXQ,EAAAi0E,oBAAoB,EAAAvvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAA9DsV,K,6CACP,QASW,mBARS,EAAAowC,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOqf,GAAKA,EAAEvM,gBAAkB+W,EAAK/W,iBAAtH4W,K,8BACG,EAAA1W,QAAQmsC,EAAMpzD,OAAOouE,SAAS,GAAK,IAAIvzD,KAAK8iB,EAAM5W,cAAe4W,EAAM3W,WAAa,EAAG,IAAM2W,GAAS,EAAA1W,QAAQmsC,EAAMjzD,MAAQ,EAAAkuE,mBAAmB,IAAIxzD,KAAK8iB,EAAM5W,cAAe4W,EAAM3W,WAAa,EAAG,GAAI,EAAAhnB,MAAO,EAAAG,O,WAAxN,QAEK,KAFL,KAGe,EAAA8mB,QAAQmsC,EAAMpzD,OAAOouE,SAAS,GAAK,IAAIvzD,KAAK8iB,EAAM5W,cAAe4W,EAAM3W,WAAa,EAAG,IAAM2W,GAAS,EAAA1W,QAAQmsC,EAAMjzD,O,WAAnI,QAEK,KAFL,O,WAGA,QAAgB,W,yDAQX,EAAAH,OAAS,EAAAG,M,WAA1C,QAMM,MANN,GAMM,CALF,IAEA,OAEM,MAFN,IAEM,QADC,EAAA8tE,QAAM,O,2BAW7B,QACI1zE,KAAM,WACNjB,MAAO,CACH2lD,QAAS5kD,OACTkuC,MAAO/rC,OACPyxE,OAAQzxE,OACRwD,MAAOowD,MACPjwD,IAAKiwD,OAET3xD,SAAU,CACNqsE,eACI,OAAQpmB,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAAgBkoC,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBAAkBooC,WAAa,KACvI,EACAqa,gBACI,OAAQrmB,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAAgBkoC,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBAAkBooC,WAAa,MACvI,EACAsa,iBACI,IAEIC,EAFApkD,EAAK69B,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBACrCxB,EAAK49B,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAKzC,OAHAyiD,EAAiD,IAAvCnkD,EAAGC,cAAgBF,EAAGE,eAChCkkD,GAAUpkD,EAAGG,WACbikD,GAAUnkD,EAAGE,WACNikD,GAAU,EAAI,EAAIA,CAC7B,GAEJxvE,QAAS,CACLmjD,cAAcC,GACV,OAAO6F,GAAW9F,cAAcC,EACpC,EACAsvB,oBAAoBnuE,EAAOG,GACvBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAIsuE,EAAO,GACX,MAAOzuE,GAASG,EACZsuE,EAAK7tE,KAAK,IAAIia,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAYhnB,EAAMinB,YAChEjnB,EAAMioB,QAAQjoB,EAAMinB,UAAY,GAEpC,OAAOwnD,CACX,EACAH,qBAAqBtuE,EAAOG,GACxBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAIuuE,EAAQ,GACZ,MAAO1uE,GAASG,EACZuuE,EAAM9tE,KAAK,IAAIia,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAYhnB,EAAMinB,YACjEjnB,EAAMioB,QAAQjoB,EAAMinB,UAAY,GAEpC,OAAOynD,CACX,EACAR,sBAAsBluE,EAAOG,GACzBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAI0+C,EAAO,IAAIhkC,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAY,GACvDikD,EAAS,GACb,MAAOpsB,GAAQ,IAAIhkC,KAAK1a,EAAI4mB,cAAe5mB,EAAI6mB,WAAY,GACvDikD,EAAOrqE,KAAK,IAAIia,KAAKgkC,EAAK93B,cAAe83B,EAAK73B,WAAY,IAC1D63B,EAAK8vB,SAAS9vB,EAAK73B,WAAa,GAEpC,OAAOikD,CACX,EACAuD,oBAAoBxuE,EAAOG,GACvBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAI0+C,EAAO,IAAIhkC,KAAK7a,EAAM+mB,cAAe,EAAG,GACxC6nD,EAAQ,GACZ,MAAO/vB,GAAQ,IAAIhkC,KAAK1a,EAAI4mB,cAAe,EAAG,GAC1C6nD,EAAMhuE,KAAK,IAAIia,KAAKgkC,EAAK93B,cAAe,EAAG,IAC3C83B,EAAKgwB,QAAQhwB,EAAK93B,cAAgB,GAEtC,OAAO6nD,CACX,EACA3nD,QAAQ43B,GACJ,OAAO6F,GAAWz9B,QAAQ43B,EAC9B,EACAwvB,mBAAmB1yE,EAAQqE,EAAOG,GAC9B,IAAKH,IAAUG,EAAK,OAAO,EAC3BH,EAAQA,EAAM8D,KAAIsrC,GAAKsV,GAAWz9B,QAAQmoB,KAC1CjvC,EAAMA,EAAI2D,KAAIsrC,GAAKsV,GAAWz9B,QAAQmoB,KACtCzzC,EAAS+oD,GAAWz9B,QAAQtrB,GAC5B,IAAIie,GAAS,EACb,IAAK,IAAIzH,EAAI,EAAGA,EAAInS,EAAM2R,OAAQQ,IAC9ByH,EAASA,GAAWje,GAAUqE,EAAMmS,IAAMxW,GAAUwE,EAAIgS,GAE5D,OAAOyH,CACX,EACA6vD,aAAaoC,EAAMC,EAAgBC,GAC/B,IAAIC,EAAQ,GACRC,EAAU,GACd,IAAK,IAAI95D,EAAI,EAAGA,EAAI05D,EAAKl6D,OAAQQ,KACxBA,EAAI,EAAI25D,GAAkBC,GAAkB,GAC7CE,EAAQrrE,KAAKirE,EAAK15D,IAClB65D,EAAMprE,KAAKqrE,GACXA,EAAU,IAGVA,EAAQrrE,KAAKirE,EAAK15D,IAM1B,OAHI85D,EAAQt6D,OAAS,GACjBq6D,EAAMprE,KAAKqrE,GAERD,CACX,EACA8C,eAAeC,GACX,IACIlmD,EADAg4C,EAAI,GAER,MAAOkO,EAAM,EACTlmD,GAAKkmD,EAAM,GAAK,GAChBlO,EAAIrkE,OAAOwyE,aAAa,GAAKnmD,GAAKg4C,EAClCkO,GAAOA,EAAMlmD,GAAK,GAAK,EAE3B,OAAOg4C,CACX,EACAoO,qBAAqB1B,GACjB,OAAOA,EAAYt0D,MAAM,KAAKnV,KAAIylB,GAAKluB,KAAKyzE,eAAezzE,KAAK4jD,QAAQnX,MAAMtb,QAAQnxB,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMsoB,EAAEtQ,MAAM,KAAK,KAAI,IAAM,KAAIwjC,OAAOtnC,KAAK,IACxK,GAEJ/Z,UACA,EACAsC,WAAY,CACRqvE,WAAU,GACVC,cAAa,KC/SrB,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,iECRS1yE,MAAM,Q,IAEFA,MAAM,iB,UACFA,MAAM,yBAAyBM,MAAA,8C,IAG/BN,MAAM,0B,IACAA,MAAM,QAAQ2G,GAAG,S,YAEhB,OAAS,qB,2BAUT,OAAkB,UAAd,aAAS,K,IAIDrG,MAAA,yB,UAe+DN,MAAM,Y,gCAmBxFA,MAAM,gBAAoCM,MAAA,qC,YAC3C,OACM,OADDN,MAAM,sCAAoC,W,IAE1CA,MAAM,0B,6CA5DvB,QAiEM,mBAhE4B,EAAAmvE,aAAapvE,OAAOs8B,KAAK,EAAAo3C,SAAStxB,MAAK,CAACt/B,EAAGu/B,IAAM,EAAAqxB,QAAQ5wD,GAAGyS,QAAQi9B,cAAc,EAAAkhB,QAAQrxB,GAAG9sB,aAASlU,EAAW,CAAEoxC,SAAS,EAAMC,YAAa,WAAY,GAAI,KAAhD,CAArIkd,EAAaP,M,WADzB,QAiEM,MAjEN,GAiEM,EA/DF,OA8DM,MA9DN,GA8DM,CA7D6F,GAARA,I,WAAvF,QAEM,MAFN,IAEM,QADC,EAAAnhC,OAAK,K,gBAEZ,OAkDM,MAlDN,GAkDM,EAjDF,OAgDQ,QAhDR,GAgDQ,EA/CJ,OASK,WARD,K,aACA,QAMW,mBANc,EAAAimC,oBAAoB,EAAAvvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAA9DsV,K,WACb,QAIW,MAHN4pC,QAAS,EAAAwG,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOqf,GAAKA,EAAEvM,gBAAkB+W,EAAK/W,gBAAepV,S,QAElImsB,EAAK/W,eAAW,S,SAIhC,OAWK,WAVD,K,aACA,QAQW,mBARc,EAAAynD,oBAAoB,EAAAvvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAA9DsV,K,6CACb,QAMW,mBALS,EAAAowC,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOqf,GAAKA,EAAEvM,gBAAkB+W,EAAK/W,iBAAtH4W,K,WACP,QAGK,KAHL,IAGK,SAH+BA,EAAM3W,WAAa,GAAGnY,WAAW+uB,SAAS,E,iDAO1F,QAwBW,mBAxBYqsC,GAANhpE,K,WACb,QAsBK,YArBD,OAAkC,mBAA3B,EAAA8sE,QAAQ9sE,GAAI2uB,SAAO,K,aAC1B,QAmBW,mBAnBc,EAAA4+C,oBAAoB,EAAAvvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,iBAA9DsV,K,6CACb,QAiBW,mBAhBS,EAAAowC,sBAAsB,EAAAjvB,QAAQ32B,iBAAkB,EAAA22B,QAAQz2B,gBAAgBvU,QAAOqf,GAAKA,EAAEvM,gBAAkB+W,EAAK/W,iBAAtH4W,K,8BACG,EAAAuxC,6BAA6BjuE,EAAI,IAA6C,KAAK,EAAM,cAAe,EAAM,WAAQ,OAAY,KAAK,EAAM,cAA4D,EAAM,WAAQ,MAAc,UAAQ,GAAI,gB,WAA3P,QAMK,KANL,IAMK,QAHE+M,KAAKyB,MAAM,EAAAy/D,6BAA6BjuE,EAAI,IAAiD,KAAK,EAAM,cAAe,EAAM,WAAQ,OAAY,KAAK,EAAM,cAAgE,EAAM,WAAQ,YAIlO,EAAAiuE,6BAA6BjuE,EAAI,IAA6C,KAAK,EAAM,cAAe,EAAM,WAAQ,OAAY,KAAK,EAAM,cAA4D,EAAM,WAAQ,Q,WAAtO,QAMK,iBAHE+M,KAAKyB,MAAM,EAAAy/D,6BAA6BjuE,EAAI,IAAiD,KAAK,EAAM,cAAe,EAAM,WAAQ,OAAY,KAAK,EAAM,cAAgE,EAAM,WAAQ,c,WAIjP,QAAgB,W,0CAOP,EAAAjB,OAAS,EAAAG,M,WAA1C,QAMM,MANN,GAMM,CALF,IAEA,OAEM,MAFN,IAEM,QADC,EAAA8tE,QAAM,O,2BAY7B,QACI1zE,KAAM,mBACNjB,MAAO,CACH2lD,QAAS5kD,OACT0zE,QAAS1zE,OACTkuC,MAAO/rC,OACPyxE,OAAQzxE,OACRwD,MAAOowD,MACPjwD,IAAKiwD,OAET3xD,SAAU,CACNqsE,eACI,OAAQpmB,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAAgBkoC,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBAAkBooC,WAAa,KACvI,EACAqa,gBACI,OAAQrmB,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAAgBkoC,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBAAkBooC,WAAa,MACvI,EACAsa,iBACI,IAEIC,EAFApkD,EAAK69B,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBACrCxB,EAAK49B,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAKzC,OAHAyiD,EAAiD,IAAvCnkD,EAAGC,cAAgBF,EAAGE,eAChCkkD,GAAUpkD,EAAGG,WACbikD,GAAUnkD,EAAGE,WACNikD,GAAU,EAAI,EAAIA,CAC7B,GAEJxvE,QAAS,CACLmjD,cAAcC,GACV,OAAO6F,GAAW9F,cAAcC,EACpC,EACAsvB,oBAAoBnuE,EAAOG,GACvBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAIsuE,EAAO,GACX,MAAOzuE,GAASG,EACZsuE,EAAK7tE,KAAK,IAAIia,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAYhnB,EAAMinB,YAChEjnB,EAAMioB,QAAQjoB,EAAMinB,UAAY,GAEpC,OAAOwnD,CACX,EACAH,qBAAqBtuE,EAAOG,GACxBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAIuuE,EAAQ,GACZ,MAAO1uE,GAASG,EACZuuE,EAAM9tE,KAAK,IAAIia,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAYhnB,EAAMinB,YACjEjnB,EAAMioB,QAAQjoB,EAAMinB,UAAY,GAEpC,OAAOynD,CACX,EACAR,sBAAsBluE,EAAOG,GACzBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAI0+C,EAAO,IAAIhkC,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAY,GACvDikD,EAAS,GACb,MAAOpsB,GAAQ,IAAIhkC,KAAK1a,EAAI4mB,cAAe5mB,EAAI6mB,WAAY,GACvDikD,EAAOrqE,KAAK,IAAIia,KAAKgkC,EAAK93B,cAAe83B,EAAK73B,WAAY,IAC1D63B,EAAK8vB,SAAS9vB,EAAK73B,WAAa,GAEpC,OAAOikD,CACX,EACAuD,oBAAoBxuE,EAAOG,GACvBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAI0+C,EAAO,IAAIhkC,KAAK7a,EAAM+mB,cAAe,EAAG,GACxC6nD,EAAQ,GACZ,MAAO/vB,GAAQ,IAAIhkC,KAAK1a,EAAI4mB,cAAe,EAAG,GAC1C6nD,EAAMhuE,KAAK,IAAIia,KAAKgkC,EAAK93B,cAAe,EAAG,IAC3C83B,EAAKgwB,QAAQhwB,EAAK93B,cAAgB,GAEtC,OAAO6nD,CACX,EACA3nD,QAAQ43B,GACJ,OAAO6F,GAAWz9B,QAAQ43B,EAC9B,EACAwvB,mBAAmB1yE,EAAQqE,EAAOG,GAC9B,IAAKH,IAAUG,EAAK,OAAO,EAC3BH,EAAQA,EAAM8D,KAAIsrC,GAAKsV,GAAWz9B,QAAQmoB,KAC1CjvC,EAAMA,EAAI2D,KAAIsrC,GAAKsV,GAAWz9B,QAAQmoB,KACtCzzC,EAAS+oD,GAAWz9B,QAAQtrB,GAC5B,IAAIie,GAAS,EACb,IAAK,IAAIzH,EAAI,EAAGA,EAAInS,EAAM2R,OAAQQ,IAC9ByH,EAASA,GAAWje,GAAUqE,EAAMmS,IAAMxW,GAAUwE,EAAIgS,GAE5D,OAAOyH,CACX,EACAu1D,4BAA4BnvE,EAAOG,GAC/B,IAAI2nC,EAAQ,GAUZ,OATAzsC,KAAK4jD,QAAQnX,MAAMpf,SAAQ3N,KACnB1f,KAAKgzE,mBAAmBruE,EAAO,CAAC+a,EAAK/a,OAAQ,CAAC+a,EAAK5a,OAChD9E,KAAKgzE,mBAAmBruE,EAAO,CAAC+a,EAAK/a,OAAQ,CAAC+a,EAAK5a,OACnD9E,KAAKgzE,mBAAmBluE,EAAK,CAAC4a,EAAK/a,OAAQ,CAAC+a,EAAK5a,OACjD9E,KAAKgzE,mBAAmBluE,EAAK,CAAC4a,EAAK/a,OAAQ,CAAC+a,EAAK5a,QACpD2nC,EAAMlnC,KAAK,GAAGma,EAAKqE,QAAQrE,EAAK9Z,KACpC,IAEJ6mC,EAAM2U,OACC3U,EAAM3yB,KAAK,IACtB,EACA+5D,6BAA6BjuE,EAAIjB,EAAOG,GACpC,IAAIo2B,EAAqBl7B,KAAK0yE,QAAQ9sE,GAAIs1B,mBAAmBl7B,KAAK8zE,4BAA4BnvE,EAAOG,IACrG,OAAIo2B,EACOA,EAAmBvB,SAE1B,CACR,EACAy0C,aAAaoC,EAAMC,EAAgBC,GAC/B,IAAIC,EAAQ,GACRC,EAAU,GACd,IAAK,IAAI95D,EAAI,EAAGA,EAAI05D,EAAKl6D,OAAQQ,KACxBA,EAAI,EAAI25D,GAAkBC,GAAkB,GAC7CE,EAAQrrE,KAAKirE,EAAK15D,IAClB65D,EAAMprE,KAAKqrE,GACXA,EAAU,IAGVA,EAAQrrE,KAAKirE,EAAK15D,IAM1B,OAHI85D,EAAQt6D,OAAS,GACjBq6D,EAAMprE,KAAKqrE,GAERD,CACX,EACA8C,eAAeC,GACX,IACIlmD,EADAg4C,EAAI,GAER,MAAOkO,EAAM,EACTlmD,GAAKkmD,EAAM,GAAK,GAChBlO,EAAIrkE,OAAOwyE,aAAa,GAAKnmD,GAAKg4C,EAClCkO,GAAOA,EAAMlmD,GAAK,GAAK,EAE3B,OAAOg4C,CACX,EACAoO,qBAAqB1B,GACjB,OAAOA,EAAYt0D,MAAM,KAAKnV,KAAIylB,GAAKluB,KAAKyzE,eAAezzE,KAAK4jD,QAAQnX,MAAMtb,QAAQnxB,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMsoB,EAAEtQ,MAAM,KAAK,KAAI,IAAM,KAAIwjC,OAAOtnC,KAAK,IACxK,GAEJ/Z,UACA,EACAsC,WAAY,CACRqvE,WAAU,GACVC,cAAa,KClNrB,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UJ+1BA,IACIzyE,KAAM,WACNjB,MAAO,CACH2lD,QAAS5kD,OACTmsE,iBAAkBpW,MAClBkW,UAAWppE,SAEfU,OACI,MAAO,CACHitE,eAAgB,CAAC,EACjBb,aAAc,CAAC,EACfsD,gBAAiB,GACjB8B,mBAAoB,KAE5B,EACA3wE,SAAU,CACNqsE,eACI,OAAQpmB,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAAgBkoC,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBAAkBooC,WAAa,KACvI,EACAqa,gBACI,OAAQrmB,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAAgBkoC,UAAYhM,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBAAkBooC,WAAa,MACvI,EACAsa,iBACI,IAEIC,EAFApkD,EAAK69B,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQ32B,kBACrCxB,EAAK49B,GAAWz9B,QAAQ5rB,KAAK4jD,QAAQz2B,gBAKzC,OAHAyiD,EAAiD,IAAvCnkD,EAAGC,cAAgBF,EAAGE,eAChCkkD,GAAUpkD,EAAGG,WACbikD,GAAUnkD,EAAGE,WACNikD,GAAU,EAAI,EAAIA,CAC7B,EACA0C,sBACI,MAAO,IAAI,IAAIvlD,IAAI/sB,KAAK4jD,QAAQ0qB,oCAAoC7lE,KAAIkvB,GAAQA,EAAKyH,mBAAkB9oB,MAC3G,GAEJlW,QAAS,CACLmjD,cAAcC,GACV,OAAO6F,GAAW9F,cAAcC,EACpC,EACAsvB,oBAAoBnuE,EAAOG,GACvBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAIsuE,EAAO,GACX,MAAOzuE,GAASG,EACZsuE,EAAK7tE,KAAK,IAAIia,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAYhnB,EAAMinB,YAChEjnB,EAAMioB,QAAQjoB,EAAMinB,UAAY,GAEpC,OAAOwnD,CACX,EACAH,qBAAqBtuE,EAAOG,GACxBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAIuuE,EAAQ,GACZ,MAAO1uE,GAASG,EACZuuE,EAAM9tE,KAAK,IAAIia,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAYhnB,EAAMinB,YACjEjnB,EAAMioB,QAAQjoB,EAAMinB,UAAY,GAEpC,OAAOynD,CACX,EACAR,sBAAsBluE,EAAOG,GACzBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAI0+C,EAAO,IAAIhkC,KAAK7a,EAAM+mB,cAAe/mB,EAAMgnB,WAAY,GACvDikD,EAAS,GACb,MAAOpsB,GAAQ,IAAIhkC,KAAK1a,EAAI4mB,cAAe5mB,EAAI6mB,WAAY,GACvDikD,EAAOrqE,KAAK,IAAIia,KAAKgkC,EAAK93B,cAAe83B,EAAK73B,WAAY,IAC1D63B,EAAK8vB,SAAS9vB,EAAK73B,WAAa,GAEpC,OAAOikD,CACX,EACAuD,oBAAoBxuE,EAAOG,GACvBH,EAAQ0kD,GAAWz9B,QAAQjnB,GAC3BG,EAAMukD,GAAWz9B,QAAQ9mB,GACzB,IAAI0+C,EAAO,IAAIhkC,KAAK7a,EAAM+mB,cAAe,EAAG,GACxC6nD,EAAQ,GACZ,MAAO/vB,GAAQ,IAAIhkC,KAAK1a,EAAI4mB,cAAe,EAAG,GAC1C6nD,EAAMhuE,KAAK,IAAIia,KAAKgkC,EAAK93B,cAAe,EAAG,IAC3C83B,EAAKgwB,QAAQhwB,EAAK93B,cAAgB,GAEtC,OAAO6nD,CACX,EACA3nD,QAAQ43B,GACJ,OAAO6F,GAAWz9B,QAAQ43B,EAC9B,EACAwuB,YAAYlpC,GACR,OAAO9oC,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMkjC,IAAQ,GAAG5pC,IAC7D,EACA8wE,wBAAwBC,GACpB,OAAOjwE,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMqqE,IAAQ,GAAGlY,KAC7D,EACAmY,YAAYD,GACR,OAAOjwE,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMqqE,IAAQ,GAAG/wE,IAC7D,EACAkvE,aAAaoC,EAAMC,EAAgBC,GAC/B,IAAIC,EAAQ,GACRC,EAAU,GACd,IAAK,IAAI95D,EAAI,EAAGA,EAAI05D,EAAKl6D,OAAQQ,KACxBA,EAAI,EAAI25D,GAAkBC,GAAkB,GAC7CE,EAAQrrE,KAAKirE,EAAK15D,IAClB65D,EAAMprE,KAAKqrE,GACXA,EAAU,IAGVA,EAAQrrE,KAAKirE,EAAK15D,IAM1B,OAHI85D,EAAQt6D,OAAS,GACjBq6D,EAAMprE,KAAKqrE,GAERD,CACX,EACA8C,eAAeC,GACX,IACIlmD,EADAg4C,EAAI,GAER,MAAOkO,EAAM,EACTlmD,GAAKkmD,EAAM,GAAK,GAChBlO,EAAIrkE,OAAOwyE,aAAa,GAAKnmD,GAAKg4C,EAClCkO,GAAOA,EAAMlmD,GAAK,GAAK,EAE3B,OAAOg4C,CACX,EACAoO,qBAAqB1B,GACjB,OAAOA,EAAYt0D,MAAM,KAAKnV,KAAIylB,GAAKluB,KAAKyzE,eAAezzE,KAAK4jD,QAAQnX,MAAMtb,QAAQnxB,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMsoB,EAAEtQ,MAAM,KAAK,KAAI,IAAM,KAAIwjC,OAAOtnC,KAAK,IACxK,EACAs4D,YAAY5B,EAAMxyB,GACd,GAAIA,EAAI1nC,OAAS,EAAG,CAChB,IAAIm2B,EAAQ,GAIZ,OAHAuR,EAAI3wB,SAAQznB,IACR6mC,EAAMlnC,QAAQvF,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKgjD,EAAK5qE,IAAO4qE,EAAK5qE,GAAIs1B,mBAAmB,GAAG1N,EAAEzJ,QAAQyJ,EAAE5nB,QAAOgT,QAAO4U,IAAMif,EAAMhkC,KAAI+kB,GAAKA,EAAE5nB,KAAIuN,SAASqa,EAAE5nB,MAAK,IAE1J6mC,CACX,CAEI,OAAOzsC,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKgjD,EAAKxyB,EAAI,KAAOwyB,EAAKxyB,EAAI,IAAI9iB,mBAAmB,GAAG1N,EAAEzJ,QAAQyJ,EAAE5nB,OAE7G,EACAysE,YAAY7B,EAAMxyB,GACd,IAAIvR,EAAQzsC,KAAKoyE,YAAY5B,EAAMxyB,GAC/B9pB,EAAUuY,EAAMhkC,KAAI+kB,GAAKA,EAAEzJ,OAC/B,OAAO/jB,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKD,EAAQ/gB,SAASghB,EAAEvuB,KAC7D,EACAouE,iBAAiBxD,GACb,IAAIyD,EAAQ,EAIZ,OAHAj1E,OAAOs8B,KAAKk1C,GAAMnjD,SAAQznB,IACtBquE,GAASj1E,OAAOs8B,KAAKk1C,EAAK5qE,GAAIs1B,oBAAoB5kB,MAAM,IAErD29D,CACX,EACA1B,oBAAoB/B,GAChB,OAAO79D,KAAK8/D,KAAKzyE,KAAKg0E,iBAAiBxD,GAAQxxE,OAAOs8B,KAAKk1C,GAAMl6D,OACrE,GAEJvW,UACI,IAAI9B,EAAQ+B,KACZ,IAAI,IAAI+sB,IAAI/sB,KAAK4jD,QAAQ4tB,yBAAyB/oE,KAAIkvB,GAAQA,EAAKqH,eAAc3R,SAAQ2R,IACrF,IAAI2gC,EAAW1hE,EAAM2lD,QAAQ4tB,yBAAyB54D,QAAO+e,GAAQA,EAAKqH,YAAcA,IACxF/gC,EAAMuxE,eAAexwC,GAAc,CAC/B/f,WAAY0gD,EAAS,GAAG1gD,WACxBuhB,aAAcm/B,EAAS,GAAGn/B,aAC1BjM,QAASorC,EAAS,GAAGprC,QACrBmH,kBAAmBikC,EAAS,GAAGjkC,kBAC/BG,+BAAgClpB,KAAKi6B,OAAO+yB,EAASl3D,KAAIub,GAAKA,EAAE6X,kCAChEuP,cAAeu0B,EAAS,GAAGv0B,cAC3BlQ,mBAAoB,CAAC,EACrBS,yBAA0BgkC,EAAS,GAAGhkC,yBAAyB/d,MAAM,KACrEge,4BAA6B+jC,EAAS,GAAG/jC,6BAE7C+jC,EAAStyC,SAAQ9O,IACTtgB,EAAMuxE,eAAexwC,GAAY9D,mBAAmB3c,EAAO2c,oBACvD3c,EAAOyY,SAAW/4B,EAAMuxE,eAAexwC,GAAY9D,mBAAmB3c,EAAO2c,oBAAoBlE,WACjG/4B,EAAMuxE,eAAexwC,GAAY9D,mBAAmB3c,EAAO2c,oBAAsB,CAC7EvB,IAAKpb,EAAOob,IACZ3C,SAAUzY,EAAOyY,SACjBkJ,aAAc3hB,EAAO2hB,aACrBC,WAAY5hB,EAAO4hB,aAK3BliC,EAAMuxE,eAAexwC,GAAY9D,mBAAmB3c,EAAO2c,oBAAsB,CAC7EvB,IAAKpb,EAAOob,IACZ3C,SAAUzY,EAAOyY,SACjBkJ,aAAc3hB,EAAO2hB,aACrBC,WAAY5hB,EAAO4hB,WAE3B,GACH,IAEL,IAAI,IAAIpT,IAAI/sB,KAAK4jD,QAAQ6tB,uBAAuBhpE,KAAIkvB,GAAQA,EAAKqH,eAAc3R,SAAQ2R,IACnF,IAAI2gC,EAAW1hE,EAAM2lD,QAAQ6tB,uBAAuB74D,QAAO+e,GAAQA,EAAKqH,YAAcA,IACtF/gC,EAAM0wE,aAAa3vC,GAAc,CAC7B/f,WAAY0gD,EAAS,GAAG1gD,WACxBuhB,aAAcm/B,EAAS,GAAGn/B,aAC1BjM,QAASorC,EAAS,GAAGprC,QACrBmH,kBAAmBikC,EAAS,GAAGjkC,kBAC/BG,+BAAgClpB,KAAKi6B,OAAO+yB,EAASl3D,KAAIub,GAAKA,EAAE6X,kCAChEuP,cAAeu0B,EAAS,GAAGv0B,cAC3BlQ,mBAAoB,CAAC,EACrBS,yBAA0BgkC,EAAS,GAAGhkC,yBAAyB/d,MAAM,KACrEge,4BAA6B+jC,EAAS,GAAG/jC,6BAE7C+jC,EAAStyC,SAAQ9O,IACTtgB,EAAM0wE,aAAa3vC,GAAY9D,mBAAmB3c,EAAO2c,oBACrD3c,EAAOyY,SAAW/4B,EAAM0wE,aAAa3vC,GAAY9D,mBAAmB3c,EAAO2c,oBAAoBlE,WAC/F/4B,EAAM0wE,aAAa3vC,GAAY9D,mBAAmB3c,EAAO2c,oBAAsB,CAC3EvB,IAAKpb,EAAOob,IACZ3C,SAAUzY,EAAOyY,SACjBkJ,aAAc3hB,EAAO2hB,aACrBC,WAAY5hB,EAAO4hB,aAK3BliC,EAAM0wE,aAAa3vC,GAAY9D,mBAAmB3c,EAAO2c,oBAAsB,CAC3EvB,IAAKpb,EAAOob,IACZ3C,SAAUzY,EAAOyY,SACjBkJ,aAAc3hB,EAAO2hB,aACrBC,WAAY5hB,EAAO4hB,WAE3B,GACH,IAGLngC,KAAKiyE,gBAAkB,IAAI,IAAIllD,IAAI/sB,KAAK4jD,QAAQ4tB,yBAAyB/oE,KAAIkvB,GAAQA,EAAKuD,uBAAsBtiB,QAAOs7D,GAAMA,EAAG/gE,SAAS,OAAMiuC,OAAO34C,KAAIylB,IAAc,CAAEgkD,YAAahkD,MACvLluB,KAAK4jD,QAAQnX,MAAM2U,MAAK,CAACt/B,EAAGu/B,KAAOrhD,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMkc,EAAEiC,OAAM,GAAG7kB,KAAO4iB,EAAEi2C,MAAQj2C,EAAEnd,OAAO6sD,cAC3GxxD,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMy7C,EAAEt9B,OAAM,GAAG7kB,KAAOmiD,EAAE0W,MAAQ1W,EAAE18C,WAAO0b,EAAW,CACvFoxC,SAAS,EACTC,YAAa,WAEjB,IAAK,IAAI56C,EAAI,EAAGA,EAAI9W,KAAK4jD,QAAQnX,MAAMn2B,OAAQQ,IAC3C9W,KAAK4jD,QAAQnX,MAAM31B,GAAGrB,MAAQzV,KAAKyzE,eAAe38D,EAAI,GAE1DzB,QAAQC,IAAItV,KAAKiyE,iBACjB,IAAK,IAAIn7D,EAAI,EAAGA,EAAI9W,KAAKiyE,gBAAgB37D,OAAQQ,IAC7C9W,KAAKiyE,gBAAgBn7D,GAAGrB,MAAQ,KAAKzV,KAAKyzE,eAAe38D,EAAI,KAC7D9W,KAAKiyE,gBAAgBn7D,GAAGq7D,kBAAoBnyE,KAAK4zE,qBAAqB5zE,KAAKiyE,gBAAgBn7D,GAAGo7D,aAElG,IAAIiC,EAAU,IAAIn0E,KAAKiyE,gBAAgBxpE,KAAIyrE,GAAMA,EAAG/B,uBAAuBnyE,KAAK4jD,QAAQnX,MAAMhkC,KAAI+kB,GAAKA,EAAEtuB,QAAOkiD,MAAK,CAACt/B,EAAGu/B,IAAMv/B,EAAExL,OAAS+qC,EAAE/qC,SAC5ItW,KAAK+zE,mBAAqBI,EAAQ79D,OAAS,EAAyC,EAArC69D,EAAQA,EAAQ79D,OAAS,GAAGA,OAAa,CAC5F,EACAjU,WAAY,CACRqvE,WAAU,GACVC,cAAa,GACbyC,YAAW,GACXC,iBAAgB,KKrlCxB,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,uBZoNA,IACIn1E,KAAM,aACNmD,WAAY,CACRiyE,OAAM,GACNC,SAAQ,GACRlb,WAAU,GACVoM,qBAAoB,IAExBljE,OACI,MAAO,CACHqhD,QAAS5jD,KAAK8/D,oBACdqL,iBAAkB,GAElB7b,YAAa,EACb2b,WAAW,EACXrM,OAAQ,oBACRpS,YAAY,EACZmf,YAAa,SAEbJ,sBAAuB,GACvBxG,iBAAkB,GAClByG,YAAa,GAEbgJ,MAAO,GACP7oB,SAAS,EACTygB,YAAY,EAEZL,iBAAiB,EACjBzX,cAAe,EAEf7rD,IAAK,KAEL4tD,SAAU,EACV8V,cAAe,EAEfd,cAAe,GACfxf,MAAO,GAEf,EACAzoD,SAAU,CACN+jD,aACI,OAAOnnD,KAAKyF,OAAOC,QAAQC,eAAeyhD,QAC9C,EACAkkB,uBACI,IAAI7Q,GAAQ,EAMZ,OALAz6D,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKpsC,KAAKy0E,YAAYroC,IACjDpsC,KAAK00E,kBAAkBtoC,IAAMpsC,KAAK20E,aAAavoC,IAAMpsC,KAAK40E,eAAexoC,KAC3E/e,SAAQ+e,IACNquB,EAAQA,GAASruB,EAAE24B,iBAAiBzuD,OAAS,CAAC,KAE1CmkD,CACZ,GAEJr6D,QAAS,CACL0/D,oBACI,OAAO9/D,KAAKyF,OAAOC,QAAQC,cAC/B,EACA6pD,QACIxvD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACA6K,WACIhzD,KAAKsvD,YAActvD,KAAKsvD,YAAc,CAC1C,EACAuD,WACI7yD,KAAKsvD,YAActvD,KAAKsvD,YAAc,CAC1C,EACAmc,kBAAkBxU,GACd,IAAIh5D,EAAQ+B,KACZ,IAAK,IAAI8W,EAAI,EAAGA,EAAImgD,EAAM3gD,OAAQQ,IAAK,CACnC,IAAI8+B,EAAOqhB,EAAMngD,GACb+9D,EAAa,CACb1d,SAAUvhB,EAAK12C,KACf0d,UAAW3e,EAAM2lD,QAAQh+C,GACzBsyC,aAAc,KACdme,SAAU,GAEdr2D,KAAK4jD,QAAQ4nB,YAAYjmE,KAAKsvE,GAC9B,IAAIp/D,EAAQzV,KAAK4jD,QAAQ4nB,YAAYr6C,QAAQ0jD,GAC7C,IAAI1P,EAAW,IAAIC,SACnBD,EAASjsD,OAAO,OAAQ08B,GAExB33C,EAAM4H,MAAM,CACRuT,OAAQ,OACRmD,IAAK,GAAGte,EAAM8H,wBAAwB9H,EAAM2lD,QAAQuJ,WAAWlvD,EAAM2lD,QAAQh+C,KAC7ErD,KAAM4iE,EACNE,iBAAkBC,IAAmBrnE,EAAM2lD,QAAQ4nB,YAAY/1D,GAAO4gD,SAAW1jD,KAAKyB,MAA6B,IAAvBkxD,EAAcC,OAAeD,EAAcxgD,MAAM,IAE5IxL,MAAK,SAAUC,GACZtb,EAAM2lD,QAAQ4nB,YAAY/1D,GAAO4gD,SAAW,IAC5Cp4D,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,kBAAmB6vC,GACjCt8B,MAAK,SAAUC,GACZtb,EAAM2lD,QAAQ4nB,YAAY/1D,GAAO7P,GAAK2T,EAAShX,IACnD,IACC4a,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,IACCD,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,CACJ,EACAwuD,aACI,GAAI5rE,KAAK4jD,QAAQwD,SAAU,OAE3BpnD,KAAKirE,WAAY,EAEjB,IAAIhtE,EAAQ+B,KACZA,KAAK4+D,OAAS,wBACd,IAAIkW,EAAMv2E,SAAS+b,uBAAuB,6BAA6B,GACnEy6D,EAAU,IACV7B,EAAI4B,EAAI9d,YACR34D,EAAIy2E,EAAIE,aACRC,EAAa12E,SAASC,cAAc,UACxCy2E,EAAWp1E,MAAQqzE,EAAI6B,EACvBE,EAAWn1E,OAASzB,EAAI02E,EACxBE,EAAW11E,MAAMM,MAAQqzE,EAAI,KAC7B+B,EAAW11E,MAAMO,OAASzB,EAAI,KAC9B,IAAI+nD,EAAU6uB,EAAWC,WAAW,MACpC9uB,EAAQ+uB,MAAMJ,EAASA,GACvB,IAAIK,EAAS,IAAI,MAAM,GAAI,KAAM,MACjCA,EAAOC,KAAKP,EAAK,CACbj4D,SAAU,SAAUy4D,GAChBr3E,EAAMu2E,MAAMjvE,KAAK,CACbrG,KAAM,SACNqD,KAAM+yE,EAAIC,OAAO,UAErBt3E,EAAM2gE,OAAS,oBACf3gE,EAAM+0D,UACV,EACAnzD,MAAO,OACP21E,YAAatC,GAErB,EACAjwB,qBACI,GAAIjjD,KAAK4jD,QAAQwD,SAEb,YADApnD,KAAK4+D,OAAS,qBAGlB,IAAI6W,EAASl3E,SAASyhD,iBAAiB,cACvC,IAAK,IAAIlpC,EAAI,EAAGA,EAAI2+D,EAAOn/D,OAAQQ,IAC1B2+D,EAAO3+D,GAAGpW,cAAcA,cAAcs2D,YAAc,GAAMye,EAAO3+D,GAAGkgD,cACrEye,EAAO3+D,GAAGvX,MAAM+nB,UAAY,UAAUmuD,EAAO3+D,GAAGpW,cAAcA,cAAcs2D,YAAc,IAAMye,EAAO3+D,GAAGkgD,eAC1Gye,EAAO3+D,GAAGpW,cAAcnB,MAAMO,OAASvB,SAAS0b,eAAe,aAAa+6D,aAAe,MAGnGS,EAASl3E,SAASyhD,iBAAiB,cACnC,IAASlpC,EAAI,EAAGA,EAAI2+D,EAAOn/D,OAAQQ,IAC1B2+D,EAAO3+D,GAAGpW,cAAcA,cAAcs2D,YAAc,GAAMye,EAAO3+D,GAAGkgD,cACrEye,EAAO3+D,GAAGvX,MAAM+nB,UAAY,UAAUmuD,EAAO3+D,GAAGpW,cAAcA,cAAcs2D,YAAc,IAAMye,EAAO3+D,GAAGkgD,eAC1Gye,EAAO3+D,GAAGpW,cAAcnB,MAAMO,OAASvB,SAAS0b,eAAe,aAAa+6D,aAAe,MAGnG,IAAI/2E,EAAQ+B,KACR01E,EAAe,CAAC,aAAc,aAAc,cAC5C11E,KAAKmrE,iBAAiB70D,OAAS,GAC/Bo/D,EAAanwE,KAAK,cAEtB,IAASuR,EAAI,EAAGA,EAAI4+D,EAAap/D,OAAQQ,IAAK,CAC1C,IAAIs0D,EAAWsK,EAAa5+D,GACxBs+D,EAAS,IAAI,MAAM,YAAa,KAAM,YACpCA,EAAOC,KAAK92E,SAAS2qE,cAAc,IAAIkC,KAAa,CACtDvuD,SAAU,SAAUy4D,GAChBr3E,EAAMu2E,MAAMjvE,KAAK,CACbrG,KAAMksE,EAASr+B,QAAQ,IAAK,OAC5BxqC,KAAM+yE,EAAIC,OAAO,SAEzB,EACA11E,MAAO,OACP21E,YAAaj3E,SAAS+b,uBAAuB,6BAA6B,GAAG08C,aAErF,CACA/4D,EAAM2gE,OAAS,oBACf3gE,EAAM+0D,UACV,EACA8Y,SACIjtE,OAAO82E,eAAiB,WACpB,MAAO,8DACX,EACA,IAAIrwB,EAAOtlD,KAAKyF,OAAOC,QAAQS,YAC3BlI,EAAQ+B,KACZA,KAAKwsD,YAAa,EAClBxsD,KAAK2rE,YAAc,aACnB,IAAI3P,EAAW,GACfh8D,KAAKw0E,MAAMnnD,SAAQuoD,IACf33E,EAAMkuE,eAAiB,EACvB,IAAIhH,EAAW,IAAIC,SACnBD,EAASjsD,OAAO,MAAO08D,EAAKrzE,MAC5By5D,EAASz2D,KAAKtH,EAAM4H,MAAM,CACtBuT,OAAQ,OACRmD,IAAK,GAAGte,EAAM8H,0BAA0B6vE,EAAK12E,WAAWjB,EAAM2lD,QAAQh+C,WAAW3H,EAAM2lD,QAAQuJ,OAC/F5qD,KAAM4iE,EACNE,iBAAkBC,IACdrnE,EAAMo4D,UAAYiP,EAAcC,OAASD,EAAcxgD,SAE5DxL,MAAK,SAAUC,GAClB,IACK4D,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,IACpB,IAEV6+C,QAAQC,IAAIF,GAAU1iD,MAAK,WACvBrb,EAAM4H,MAAM,CACRuT,OAAQ,OACRmD,IAAK,GAAGte,EAAM8H,+BAA+B9H,EAAM2lD,QAAQh+C,WAAW3H,EAAM2lD,QAAQuJ,eAAe7H,EAAK1/C,YAAY3H,EAAM4tD,cAAc5tD,EAAMotE,kBAE7I/xD,MAAK,SAAUC,GACZtb,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,yBAAyB9H,EAAM2lD,QAAQh+C,MACpD0T,MAAKC,IACFtb,EAAMuuD,YAAa,EACnBvuD,EAAM0tE,YAAc,YACiB,IAAjCpyD,EAAShX,KAAK44D,eACd,sBAAwB,GAExB,sBAAwB,GAE5B,sBAAyBl9D,EAAM2lD,QAAQh+C,IACvC2T,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/CgX,EAAShX,KAAKyhD,WAAW32B,SAAQ+e,IAC7BA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAE2yB,YAAc3yB,EAAE2yB,SAAS,IAEjFxlD,EAAShX,KAAKyhD,WAAazqC,EAAShX,KAAKyhD,WAAWprC,QAAOwzB,GACvD7yB,EAAShX,KAAKkqC,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMwmC,EAAE1sB,MAAQ8N,EAAEuqC,OAAS3rB,EAAE2rB,OAASvqC,EAAEzJ,MAAQqoB,EAAEroB,OAAMzN,OAAS,IAEvGiD,EAAShX,KAAK6kD,SAAW7tC,EAAShX,KAAK24D,UACvCj9D,EAAM2lD,QAAUrqC,EAAShX,KACzBtE,EAAMwH,OAAOO,SAAS,oBAAqB,CAAE49C,QAASrqC,EAAShX,OAC/DtE,EAAMwH,OAAO4gD,OAAO,eAAgB,CAAEljD,MAAOoW,EAAShX,KAAKqD,KAC3D,oBAAuB2T,EAAShX,MAChCtE,EAAMqxD,YAAc,EACpBrxD,EAAMmuE,YAAa,EACnBnuE,EAAMkuE,cAAgB,EACtBluE,EAAMo4D,SAAW,EACjBx3D,OAAO82E,eAAiB,WACxB,KAEHx4D,OAAMC,IACH/H,QAAQC,IAAI8H,GACZnf,EAAM0tE,YAAc,kDACpB1tE,EAAMuuD,YAAa,EACnBvuD,EAAMmuE,YAAa,CAAI,GAEnC,IACCjvD,OAAMC,IACH/H,QAAQC,IAAI8H,GACZnf,EAAM0tE,YAAc,kDACpB1tE,EAAMuuD,YAAa,EACnBvuD,EAAMmuE,YAAa,CAAI,GAEnC,GACJ,EACAyJ,0BACI71E,KAAK+rE,iBAAkB,EACvB,oCACJ,EACAG,aACIlsE,KAAK+rE,iBAAkB,EACvB,0CACJ,EACAE,iBACI,oCACJ,EACAD,sBAC+B,IAAvBhsE,KAAKs0D,eACLt0D,KAAKs0D,cAAgB,EACrB,6CAGAt0D,KAAKs0D,cAAgB,EACrB,yCAER,EACA0d,YAAYlpC,GACR,OAAO9oC,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMkjC,IAAQ,GAAG5pC,IAC7D,EACA8wE,wBAAwBC,GACpB,OAAOjwE,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMqqE,IAAQ,GAAGlY,KAC7D,EACAmY,YAAYD,GACR,OAAOjwE,KAAK4jD,QAAQnX,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMqqE,IAAQ,GAAG/wE,IAC7D,EACA42E,iBAAiBC,GACb,IAAIC,EAAW,CAAC,EAChBD,EAAY1oD,SAAQ4oD,IAChB,GAAID,EAASC,EAAW1pD,QAChBypD,EAASC,EAAW1pD,QAAQ2pD,gBAAgBD,EAAW72C,gBACvD42C,EAASC,EAAW1pD,QAAQ2pD,gBAAgBD,EAAW72C,gBAAgBwmC,KAAKrgE,KAAK0wE,GAGjFD,EAASC,EAAW1pD,QAAQ2pD,gBAAgBD,EAAW72C,gBAAkB,CACrEtM,SAAUmjD,EAAWnjD,SACrB8yC,KAAM,CAACqQ,QAId,CACD,IAAIE,EAAgB,CAChBh3C,OAAQ82C,EAAW92C,OACnB5S,OAAQ0pD,EAAW1pD,OACnB2pD,gBAAiB,CAAC,EAClBpiD,WAAYmiD,EAAWniD,YAE3BqiD,EAAcD,gBAAgBD,EAAW72C,gBAAkB,CACvDtM,SAAUmjD,EAAWnjD,SACrB8yC,KAAM,CAACqQ,IAEXD,EAASC,EAAW1pD,QAAU4pD,CAClC,KAEJ,IAAIC,EAAW,GACfp3E,OAAOs8B,KAAK06C,GAAU3oD,SAAQd,IAC1B,IAAI2B,EAAI8nD,EAASzpD,GACbwkD,EAA+D,KAAxC/wE,KAAKgwE,wBAAwBzjD,GAAiBvsB,KAAKkwE,YAAY3jD,GAAU,GAAGvsB,KAAKgwE,wBAAwBzjD,QAAavsB,KAAKkwE,YAAY3jD,KAC9JozC,EAAWyW,EAASx9D,QAAOy9D,GAAMA,EAAGtF,sBAAwBA,IAC5DuF,GAAS,EACT3W,EAASrpD,OAAS,GACd3D,KAAKyB,MAAMurD,EAAS,GAAG7rC,aAAenhB,KAAKyB,MAAM8Z,EAAE4F,aACnD90B,OAAOs8B,KAAKpN,EAAEgoD,iBAAiB7oD,SAAQkpD,IAC9B5W,EAAS,GAAGuW,gBAAgBK,IAG7B5jE,KAAKyB,MAAMurD,EAAS,GAAGuW,gBAAgBK,GAAIzjD,WAAangB,KAAKyB,MAAM8Z,EAAEgoD,gBAAgBK,GAAIzjD,WAAa6sC,EAAS,GAAGuW,gBAAgBK,GAAI3Q,KAAKtvD,QAAU4X,EAAEgoD,gBAAgBK,GAAI3Q,KAAKtvD,QAChL4X,EAAEgoD,gBAAgBK,GAAI3Q,KAAKv4C,SAAQ+qB,IAC/B,IAAIo+B,EAAY7W,EAAS,GAAGuW,gBAAgBK,GAAI3Q,KAAKhtD,QAAO69D,GACxDr+B,EAAI5Y,SAAWi3C,EAAKj3C,SACjB4Y,EAAI3Y,QAAUg3C,EAAKh3C,QACnB2Y,EAAI7mB,KAAOklD,EAAKllD,KAChB6mB,EAAI9mB,KAAOmlD,EAAKnlD,KAChB8mB,EAAI1Y,aAAe+2C,EAAK/2C,aACxB0Y,EAAIvY,mBAAqB42C,EAAK52C,mBAC9BuY,EAAItY,kBAAoB22C,EAAK32C,kBAC7BntB,KAAKyB,MAAMgkC,EAAIrY,eAAiBptB,KAAKyB,MAAMqiE,EAAK12C,gBAEnDy2C,EAAUlgE,MAAmB,GAEzC,IAIPggE,GACDF,EAAS7wE,KAAK,CACVwrE,qBAAsBA,KACnB7iD,GAEX,IAEJ,IAAIwoD,EAAQ,GAMZ,OALAN,EAAS/oD,SAAQgpD,IACbr3E,OAAOs8B,KAAK+6C,EAAGH,iBAAiB7oD,SAAQkpD,IACpCG,EAAMnxE,QAAQ8wE,EAAGH,gBAAgBK,GAAI3Q,KAAK,GAC7C,IAEE8Q,EAAMt1B,MAAK,CAACt/B,EAAGu/B,KAClB,IAAI2vB,EAAkE,KAA1ChxE,KAAKgwE,wBAAwBluD,EAAEyK,QAAiBvsB,KAAKkwE,YAAYpuD,EAAEyK,QAAU,GAAGvsB,KAAKgwE,wBAAwBluD,EAAEyK,aAAavsB,KAAKkwE,YAAYpuD,EAAEyK,UACvK6kD,EAAkE,KAA1CpxE,KAAKgwE,wBAAwB3uB,EAAE90B,QAAiBvsB,KAAKkwE,YAAY7uB,EAAE90B,QAAU,GAAGvsB,KAAKgwE,wBAAwB3uB,EAAE90B,aAAavsB,KAAKkwE,YAAY7uB,EAAE90B,UAC3K,OAAQykD,EAAwBI,EAAyB,GAAK,IAEtE,EACA1F,kBACI1rE,KAAKirE,WAAajrE,KAAKirE,UACvB,MAAM0L,EAASp4E,SAASyhD,iBAAiB,SACzC,IAAK,MAAM42B,KAASD,EAEG,aAAfC,EAAM11E,MAAsC,UAAf01E,EAAM11E,OACnC01E,EAAMjwE,UAAYiwE,EAAMjwE,SAGpC,EACA8tE,YAAYroC,GACR,OAAOA,EAAEyqC,eAAoC,IAAnBzqC,EAAEyqC,aAChC,EACAnC,kBAAkBtoC,GACd,OAAOA,EAAEw1B,mBAAqBx1B,EAAEu1B,aAAev1B,EAAEgM,IAAImN,WAAW,MACpE,EACAovB,aAAavoC,GACT,OAAOA,EAAE0qC,uBAAyB1qC,EAAE26B,gBAAkB36B,EAAE0qC,uBAA6C,GAApB1qC,EAAE26B,cACvF,EACA6N,eAAexoC,GACX,MAA6B,IAAtBA,EAAE8hC,kBAA+C,GAArB9hC,EAAEykC,eACzC,GAEJrX,cACI,GAAIx5D,KAAK4jD,QAAQwD,SAAU,OAC3BpnD,KAAK4jD,QAAQ+N,OAAS,GACtB3xD,KAAK4jD,QAAQkuB,UAAY,GACzB9xE,KAAK4jD,QAAQ4qB,6BAA+B,GAC5CxuE,KAAK4jD,QAAQ+uB,2BAA6B,GAC1C3yE,KAAK4jD,QAAQ4tB,yBAA2B,GACxCxxE,KAAK4jD,QAAQ6tB,uBAAyB,GACtC,IAAIxzE,EAAQ+B,KACZ,uBAA0BA,KAAK4jD,QAAQh+C,IAClC3H,EAAM2lD,QAAQuJ,OACf93C,QAAQC,IAAI,gBACZrX,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,yBAAyB9H,EAAM2lD,QAAQh+C,MACpD0T,MAAKC,IACFtb,EAAM2lD,QAAQuJ,KAAO5zC,EAAShX,KAAK4qD,KACnC93C,QAAQC,IAAIrX,EAAM2lD,QAAQuJ,KAAK,IAG/C,EACAptD,UAQI,GAPAC,KAAK4jD,QAAQI,WAAWprC,QAAOwzB,GAAKpsC,KAAKy0E,YAAYroC,IAAMpsC,KAAK00E,kBAAkBtoC,IAAMpsC,KAAK20E,aAAavoC,IAAMpsC,KAAK40E,eAAexoC,KAAI/e,SAAQ+e,IAGrC,GAFnGpsC,KAAKurE,sBAAsB3yD,QAAOmyD,GAAMA,EAAE3yB,KAAOhM,EAAEgM,KAAO2yB,EAAEpJ,YAAcv1B,EAAEu1B,YACxEoJ,EAAEjE,UAAY16B,EAAE06B,UAAYiE,EAAEhE,gBAAkB36B,EAAE26B,gBAClDgE,EAAEmD,kBAAoB9hC,EAAE8hC,kBAAoBnD,EAAE8F,iBAAmBzkC,EAAEykC,kBAAkBv6D,QACzFtW,KAAKurE,sBAAsBhmE,KAAK6mC,EACpC,IAEApsC,KAAK4jD,QAAQwD,SAEb,YADApnD,KAAK2rD,SAAU,GAKnB9oD,YAAW,KACP,kBAAqBwqB,SAAQpc,IACzBjR,KAAK4jD,QAAQkuB,UAAUvsE,KAAK0L,EAAM8lE,UAAU,aAAa,GAC3D,GACH,KACH,IAAI94E,EAAQ+B,KACRg3E,EAAa,GACjBh3E,KAAK4jD,QAAQ5K,MAAMoI,MAAK,CAACt/B,EAAGu/B,IACxBv/B,EAAE5iB,KAAKsyD,cACHnQ,EAAEniD,UAAMmhB,EAAW,CACnBoxC,SAAS,EACTC,YAAa,WAErB1xD,KAAK4jD,QAAQnX,MAAMpf,SAAQG,IACvB,IAAImyC,EAAW3/D,KAAK4jD,QAAQ+N,OAAO/4C,QAAOuvD,GAAKA,EAAEjpE,MAAQsuB,EAAEuqC,OAASoQ,EAAEpkD,MAAQyJ,EAAEzJ,OACzD,GAAnB47C,EAASrpD,OACTtW,KAAK4jD,QAAQ+N,OAAOpsD,KAAK,CACrBwe,KAAMyJ,EAAEzJ,KACR7kB,KAAMsuB,EAAEuqC,MACRpzD,MAAO6oB,EAAE7oB,MACTG,IAAK0oB,EAAE1oB,OAIX66D,EAAS,GAAGh7D,MAAQg7D,EAAS,GAAGh7D,MAAQ6oB,EAAE7oB,MAAQg7D,EAAS,GAAGh7D,MAAQ6oB,EAAE7oB,MACxEg7D,EAAS,GAAG76D,IAAM66D,EAAS,GAAG76D,IAAM0oB,EAAE1oB,IAAM66D,EAAS,GAAG76D,IAAM0oB,EAAE1oB,IACpE,IAEJ9E,KAAK4jD,QAAQ+N,OAAOvQ,MAAK,CAACt/B,EAAGu/B,IACzBrhD,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMkc,EAAEiC,OAAM,GAAG7kB,KAAKsyD,cACnDxxD,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMy7C,EAAEt9B,OAAM,GAAG7kB,UAAMmhB,EAAW,CACnEoxC,SAAS,EACTC,YAAa,WAErB1xD,KAAK4jD,QAAQnX,MAAM2U,MAAK,CAACt/B,EAAGu/B,KAAOrhD,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMkc,EAAEiC,OAAM,GAAG7kB,KAAO4iB,EAAEi2C,MAAQj2C,EAAEnd,OAAO6sD,cAC3GxxD,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMy7C,EAAEt9B,OAAM,GAAG7kB,KAAOmiD,EAAE0W,MAAQ1W,EAAE18C,WAAO0b,EAAW,CACvFoxC,SAAS,EACTC,YAAa,WAEjB,+BAAkCrkC,SAAQ4pD,IACtC,IAAI7G,EAAW4G,EAAWp+D,QAAOsV,GAAKA,EAAEiyB,YAAc82B,EAAKh4D,aACvDmxD,EAAS95D,OAAS,GAClB85D,EAAS,GAAGlyC,OAASkyC,EAAS,GAAGlyC,OAAS+4C,EAAKC,SAAWD,EAAKC,SAAW9G,EAAS,GAAGlyC,OAClFkyC,EAAS,GAAGvkD,UAAYukD,EAAS,GAAGvkD,UAAYorD,EAAKprD,UAAYorD,EAAKprD,UAAYukD,EAAS,GAAGvkD,UAC9FukD,EAAS,GAAGtkD,QAAUskD,EAAS,GAAGtkD,QAAUmrD,EAAKnrD,QAAUmrD,EAAKnrD,QAAUskD,EAAS,GAAGtkD,QACtFskD,EAAS,GAAG+G,QAAQ5xE,KAAK,CACrBsmB,UAAWorD,EAAKprD,UAChBC,QAASmrD,EAAKnrD,QACdoT,SAAU+3C,EAAKC,WAEvB9G,EAAS,GAAG+G,QAAQ/1B,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAE+J,UAAYw1B,EAAEx1B,UAAa,GAAK,KAGtEmrD,EAAWzxE,KAAK,CACZ46C,WAAY82B,EAAKh4D,WACjBuhB,aAAcy2C,EAAKz2C,aACnB4K,cAAe6rC,EAAK7rC,cACpBlN,OAAQ+4C,EAAKC,SACbrrD,UAAWorD,EAAKprD,UAChBC,QAASmrD,EAAKnrD,QACdqrD,QAAS,CAAC,CACNtrD,UAAWorD,EAAKprD,UAChBC,QAASmrD,EAAKnrD,QACdoT,SAAU+3C,EAAKC,YAG3B,IAEJF,EAAW51B,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEoc,OAASpc,EAAEspB,eAAmBtpB,EAAEq+B,WAAakB,EAAElB,YAAe,EAAI,IAC/FngD,KAAK4jD,QAAQozB,WAAaA,EAC1B,IAAI1oE,EAAsB,4BAA+B7F,KAAI7C,GAAMA,EAAG4N,aAClE4jE,EAAUn5E,EAAM2lD,QAAQnX,MAAMhkC,KAAI+kB,GAAKA,EAAE5nB,KACzCo2D,EAAW,GACfA,EAASz2D,KAAKtH,EAAM4H,MACfqN,IAAI,GAAGjV,EAAM8H,gDAAgD9H,EAAM2lD,QAAQh+C,MAC3E0T,MAAKC,IACFA,EAAShX,KAAK6+C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEyK,OAASzK,EAAEsd,eAAiBiiB,EAAE90B,OAAS80B,EAAEjiB,eAAkB,GAAK,IAChGnhC,EAAM2lD,QAAQ4qB,6BAA+Bj1D,EAAShX,KAAKqW,QAAOsV,IAAMA,EAAEiN,aAAei8C,EAAQjkE,SAAS+a,EAAE3B,OAAO/Y,cACnHvV,EAAM2lD,QAAQ+uB,2BAA6Bp5D,EAAShX,KAAKqW,QAAOsV,GAAKA,EAAEiN,aAAei8C,EAAQjkE,SAAS+a,EAAE3B,OAAO/Y,aAAY,KAGpIwoD,EAASz2D,KAAKtH,EAAM4H,MACfqN,IAAI,GAAGjV,EAAM8H,6CAA6C9H,EAAM2lD,QAAQh+C,MACxE0T,MAAKC,IACFA,EAAShX,KAAK6+C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAE0e,aAAe1e,EAAEyK,OAASzK,EAAEsd,eAAiBiiB,EAAE7gB,aAAe6gB,EAAE90B,OAAS80B,EAAEjiB,eAAkB,GAAK,IAClInhC,EAAM2lD,QAAQ4tB,yBAA2Bj4D,EAAShX,KAAKqW,QAAOsV,IAAMA,EAAEiN,cAAgB7sB,EAAoB6E,SAAS+a,EAAE8Q,WAAWxrB,aAAelF,EAAoB6E,SAAS+a,EAAE8Q,eAC9K/gC,EAAM2lD,QAAQ6tB,uBAAyBl4D,EAAShX,KAAKqW,QAAOsV,GAAKA,EAAEiN,aAAgB7sB,EAAoB6E,SAAS+a,EAAE8Q,WAAWxrB,YAAclF,EAAoB6E,SAAS+a,EAAE8Q,eAC1K3pB,QAAQC,IAAI,yBAA0BrX,EAAM2lD,QAAQ6tB,uBAAsB,KAGlFzV,EAASz2D,KAAKtH,EAAM4H,MACfqN,IAAI,GAAGjV,EAAM8H,+CAA+C9H,EAAM2lD,QAAQh+C,MAC1E0T,MAAKC,IACFA,EAAShX,KAAK6+C,MAAK,CAACt/B,EAAGu/B,IAAMv/B,EAAEo3C,KAAO7X,EAAE6X,OACxCj7D,EAAM2lD,QAAQorB,gBAAkBz1D,EAAShX,KACzC8S,QAAQC,IAAI,yBAA0BiE,EAAShX,KAAI,KAG3D,2BAA8B8qB,SAAQznB,IAClCo2D,EAASz2D,KAAKtH,EAAM4H,MACfqN,IAAI,GAAGlT,KAAK+F,yBAAyBH,KACrC0T,MAAKC,IACFA,EAAShX,KAAO8mD,GAAW1F,WAAWpqC,EAAShX,MAC/CgX,EAAShX,KAAKyhD,WAAW32B,SAAQ+e,IAC7BA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAE2yB,YAAc3yB,EAAE2yB,SAAS,IAEjFxlD,EAAShX,KAAKyhD,WAAazqC,EAAShX,KAAKyhD,WAAWprC,QAAOwzB,GACvD7yB,EAAShX,KAAKkqC,MAAM7zB,QAAO4U,GAAKA,EAAE5nB,IAAMwmC,EAAE1sB,MAAQ8N,EAAEuqC,OAAS3rB,EAAE2rB,OAASvqC,EAAEzJ,MAAQqoB,EAAEroB,OAAMzN,OAAS,IAEvGiD,EAAShX,KAAKovD,OAAS,GACvBp4C,EAAShX,KAAKkqC,MAAMpf,SAAQG,IACxB,IAAImyC,EAAWpmD,EAAShX,KAAKovD,OAAO/4C,QAAOuvD,GAAKA,EAAEjpE,MAAQsuB,EAAEuqC,OAASoQ,EAAEpkD,MAAQyJ,EAAEzJ,OAC1D,GAAnB47C,EAASrpD,OACTiD,EAAShX,KAAKovD,OAAOpsD,KAAK,CACtBwe,KAAMyJ,EAAEzJ,KACR7kB,KAAMsuB,EAAEuqC,MACRpzD,MAAO6oB,EAAE7oB,MACTG,IAAK0oB,EAAE1oB,OAIX66D,EAAS,GAAGh7D,MAAQg7D,EAAS,GAAGh7D,MAAQ6oB,EAAE7oB,MAAQg7D,EAAS,GAAGh7D,MAAQ6oB,EAAE7oB,MACxEg7D,EAAS,GAAG76D,IAAM66D,EAAS,GAAG76D,IAAM0oB,EAAE1oB,IAAM66D,EAAS,GAAG76D,IAAM0oB,EAAE1oB,IACpE,IAEJyU,EAAShX,KAAKovD,OAAOvQ,MAAK,CAACt/B,EAAGu/B,IAC1B9nC,EAAShX,KAAKy2C,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMkc,EAAEiC,OAAM,GAAG7kB,KAAKsyD,cACpDj4C,EAAShX,KAAKy2C,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMy7C,EAAEt9B,OAAM,GAAG7kB,UAAMmhB,EAAW,CACpEoxC,SAAS,EACTC,YAAa,WAErBzzD,EAAMktE,iBAAiB5lE,KAAKgU,EAAShX,KAAK,IAEjD,IAEL05D,QAAQC,IAAIF,GAAU1iD,MAAK,WACvBrb,EAAM2lD,QAAQ0qB,oCAAsCrwE,EAAM63E,iBAAiB73E,EAAM2lD,QAAQ4qB,8BAA8B51D,QAAOsV,GAAKkpD,EAAQjkE,SAAS+a,EAAE3B,OAAO/Y,cAC7JvV,EAAM2lD,QAAQyzB,kCAAoCp5E,EAAM63E,iBAAiB73E,EAAM2lD,QAAQ+uB,4BAA4B/5D,QAAOsV,GAAKkpD,EAAQjkE,SAAS+a,EAAE3B,OAAO/Y,cACzJvV,EAAM2lD,QAAQorB,gBAAgB3hD,SAAQhvB,IAClCJ,EAAM2lD,QAAQ6tB,uBAAuB74D,QAAOsV,GAAKA,EAAE8Q,aAAe3gC,EAAEuH,KAAIynB,SAAQa,IAC5E7Y,QAAQC,IAAI,UAAWjX,GACvB6vB,EAAI,IAAKA,KAAM7vB,GACfgX,QAAQC,IAAI,UAAW4Y,EAAC,GAC3B,IAEL7Y,QAAQC,IAAI,yBAA0BrX,EAAM2lD,QAAQ6tB,wBACpDxzE,EAAM0tD,SAAU,CACpB,GACJ,Ga1wBJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,yECPyB,gB,IAERpsD,MAAA,6C,YACD,OAEiB,KAFdN,MAAM,cAAcM,MAAA,+CAAgD,iHAE1D,K,IASAN,MAAM,iB,IACFA,MAAM,mCAAmCM,MAAA,kB,YAC1C,OAA6C,aAAtC,kCAA8B,K,YAKzC,OAEM,OAFDN,MAAM,yBAAuB,W,IAG7BA,MAAM,yB,UAEHM,MAAA,mB,YAAsB,OAA2B,KAAxBN,MAAM,eAAa,W,YAAK,oB,IAA3B,G,QAGzBA,MAAM,yB,UAEHM,MAAA,e,UACUA,MAAA,iB,IAabN,MAAM,yB,IAGNA,MAAM,yB,IAGNA,MAAM,yB,IAINA,MAAM,yB,gDAmDMA,MAAM,gBAAgBM,MAAA,gB,iEAmDtBN,MAAM,gBAAgBM,MAAA,gB,yFAoGvC,OAA0C,OAArCN,MAAM,0BAAwB,W,UAS9BA,MAAM,yB,UACNA,MAAM,yB,YAKP,OAAgD,aAA3C,OAAqC,aAA9B,4B,iBACZ,OAAgD,aAA3C,OAAqC,aAA9B,4B,eAIAM,MAAA,e,gDA8CPN,MAAM,gBAAgBM,MAAA,gB,wIAiK1CN,MAAM,iB,IACFA,MAAM,gB,YAwBF,uB,YAMb,OAAgG,OAA3FM,MAAA,uBAAwB,iEAA6D,K,gcArgBlG,QAAkD,GAApC24B,IAAK,EAAA6lC,OAAOuZ,aAC1B,QA4fO,GA5fDr4E,MAAM,QAAM,CACHiuC,OAAK,SAAC,IAEb,C,IAAA,OAMM,MANN,GAMM,CALF,IAGA,QACyD,GADjDloC,KAAK,cAAc,aAAW,QAAQ/F,MAAM,oDAChDM,MAAA,gCAAmC,QAAK,eAAE,EAAAiwD,gBAG3CvE,SAAO,SACd,IAqdU,EArdV,QAqdU,GArdOqE,YAAa,EAAAioB,e,sCAAA,EAAc,kBAAE9nB,KAAA,I,mBAC1C,IA8QW,EA9QX,QA8QW,GA9QDznD,OAAO,+BAA6B,C,kBAC1C,IA4Qc,EA5Qd,QA4Qc,GA5QD/I,MAAM,sBAAoB,C,kBACnC,IA0QM,EA1QN,OA0QM,MA1QN,GA0QM,EAzQF,OAKM,MALN,GAKM,CAJF,IACA,QAEW,G,WAFQ,EAAAu4E,a,qCAAA,EAAY,gBAAGpmB,QAAS,EAAAqmB,cAAgBnU,SAAU,EAAAoU,WACjE,eAAa,UAAUlkB,YAAY,eAAej0D,MAAA,iC,8CAG1D,IAGA,OAIM,MAJN,GAIM,CAHW,EAAAswE,WAAa,EAAA8H,8BAAgC,EAAAH,aAAa79C,KAAO,I,WAA9E,QAEkB,QAFlB,GAEkB,M,kBAEtB,OAIM,MAJN,GAIM,CAHyC,mCAA9B,EAAAi+C,4B,WAAb,QAC6D,QAD7D,IAC6D,QAApC,EAAAA,2BAAyB,M,WAClD,QAAyE,QAAzE,IAAyE,QAApC,EAAAA,2BAAyB,OAalE,OAEM,MAFN,GAEM,EADF,OAA6D,aAAtD,mBAAe,QAAG,EAAAJ,aAAah3C,cAAY,MAEtD,OAEM,MAFN,GAEM,EADF,OAAoF,aAA7E,2BAAuB,QAAG,EAAAm3C,8BAA8BpkE,QAAQ,IAAD,MAE1E,OAGM,MAHN,GAGM,EAFF,OACc,aADP,yBAAqB,QAAG,EAAAikE,aAAa79C,IAAM,EAAA69C,aAAa79C,IAAIpmB,QAAQ,GAAK,GAAN,MAG9E,OAEM,MAFN,GAEM,EADF,OAA+D,aAAxD,oBAAgB,QAAG,EAAAikE,aAAan3C,eAAa,MAGxD,QAqMY,GArMAl9B,MAAO,EAAA00E,2BAA4B54E,MAAM,iBAAiB2G,GAAG,iBACpE+qD,YAAY,EAAM,mBAAiB,WACnC,gBAAe,EAAAmnB,cAAgB,EAAI,OAAS,Q,mBAE7C,IACS,EADT,QACS,GADD7mB,MAAM,YAAYjpD,OAAO,QAASkpD,UAAU,EAAMwQ,OAAA,GAAOniE,MAAA,uBAEjE,QAES,GAFD0xD,MAAM,iBAAiBjpD,OAAO,QAASkpD,UAAU,EAAMwQ,OAAA,GAC3DniE,MAAA,sBAEJ,QAOS,GAPD0xD,MAAM,MAAMjpD,OAAO,YAAakpD,UAAU,EAAMwQ,OAAA,GAAOniE,MAAA,qB,CAChDwD,MAAI,SAAEs1D,GAAS,CACTA,EAAU91D,KAAKkvB,OAAqB,GAAZ,EAAAsmD,W,WAArC,QACsC,oBAAlC1f,EAAU91D,KAAKukE,UAAQ,M,WAC3B,QACiC,oBAA7BzO,EAAU91D,KAAK61C,KAAG,O,OAI9B,QAQS,GARD6Y,MAAM,aAAajpD,OAAO,oBAAqBkpD,UAAU,EAC7D3xD,MAAA,oB,CACWwD,MAAI,SAAEs1D,GAAS,CACTA,EAAU91D,KAAKkvB,OAAqB,GAAZ,EAAAsmD,W,WAArC,QAC4C,oBAAxC1f,EAAU91D,KAAKwkE,gBAAc,M,WACjC,QACwC,oBAApC1O,EAAU91D,KAAKo/D,YAAU,O,OAGrC,QAES,GAFD1Q,MAAM,WAAWjpD,OAAO,MAAOkpD,UAAU,EAC7C3xD,MAAA,uCAEJ,QAES,GAFD0xD,MAAM,cAAcjpD,OAAO,IAAKkpD,UAAU,EAC9C3xD,MAAA,uCAEJ,QAKS,GALD0xD,MAAM,eAAejpD,OAAO,eAAgBkpD,UAAU,EAC1D3xD,MAAA,oB,CACWwD,MAAI,SAAEs1D,GAAS,EACtB,OAA2D,sBAAjDA,EAAU91D,KAAK4/C,aAAa5uC,QAAQ,IAAD,M,MASP,IAAb,EAAAwkE,W,WADjC,QA6BS,G,MA7BD9mB,MAAM,WAAWjpD,OAAO,8BAA+BkpD,UAAU,EACrE3xD,MAAA,qB,CACWwD,MAAI,SAAEs1D,GAAS,EACtB,OAwBM,MAxBN,GAwBM,EAjB0B,IAAlB,EAAA2f,eAAwC,IAAb,EAAAD,W,WANrC,QAOgB,G,MAPD94E,MAAM,yB,WACRo5D,EAAU91D,KAAKukE,S,yBAAfzO,EAAU91D,KAAa,WAAG6uD,QAAS,EAAAuc,QAASrc,YAAY,OAChE0P,oBAAqB,CAAC,cAAeD,iBAAiB,OACtDvN,YAAa,EAAAykB,kBAAkB5f,EAAU91D,KAAKukE,UAAY,S,kBACpCvV,YAAY,OAAOhyD,MAAA,uBACzC,SAAM,GAAE,EAAA24E,oBAAoB7f,EAAU91D,O,2GAG3C,QAI+C,GAJvCtD,MAAM,wBAAwB+F,KAAK,cAClBzF,MAAA,6BACjB,aAAW,gBACd,QAAK,IAAE84D,EAAU91D,KAAKukE,SAAW,GAAIzO,EAAU91D,KAAKkvB,OAAQ,EAAO4mC,EAAU91D,KAAKwkE,eAAiB,GACnGpgE,UAAW0xD,EAAU91D,KAAKkvB,O,mCAHhB,aAMa,IAAlB,EAAAumD,eAAwC,IAAb,EAAAD,WAA8C,UAA3B1f,EAAU91D,KAAKukE,UAAyB,EAAAmR,kBAAkB5f,EAAU91D,KAAKukE,WAAazO,EAAU91D,KAAKkvB,S,WAF7J,QAMY,G,MANDxyB,MAAM,eAAeM,MAAA,gBACrB,aAAW,gB,WAET84D,EAAU91D,KAAKs0E,c,yBAAfxe,EAAU91D,KAAkB,gBACpC,OAAI,GAAE,EAAA41E,0BAA0B9f,EAAU91D,MAC3CixD,YAAY,iB,uDAGD6E,EAAU91D,KAAKkvB,QAAU,EAAAumD,eAA6B,GAAZ,EAAAD,Y,WADzD,QAE0C,oBAAlC1f,EAAU91D,KAAKukE,UAAQ,K,2CAKjC,EAAAiR,SAAW,I,WADrB,QAmBS,G,MAnBD9mB,MAAM,WAAWjpD,OAAO,OAAQkpD,UAAU,EAAM3xD,MAAA,qB,CAEzCwD,MAAI,SAAEs1D,GAAS,CAGTA,EAAU91D,KAAU,Q,WAAjC,QAA8E,WAA3C,yCACD,IAAlB,EAAAy1E,eAAwC,IAAb,EAAAD,U,qBAA3C,QASM,WAPF,QAGW,G,WAHQ1f,EAAU91D,KAAKukE,S,yBAAfzO,EAAU91D,KAAa,WACrC6uD,QAASiH,EAAU91D,KAAKqrE,SAAUpa,YAAY,gBAC9C,SAAM,GAAE,EAAA4kB,qBAAqB/f,EAAU91D,MAAOi+D,SAAS,Q,kEAE/CnI,EAAU91D,KAAKukE,SAASvhB,WAAW,U,WAAhD,QAEkB,WAFuC,iC,sBAL1C,8D,QAAf,MASc,EAAAyyB,eAA8B,IAAb,EAAAD,W,WAAnC,QACc,oBADwC1f,EAAU91D,KAAKukE,UAAQ,K,0CAIrF,QAoBS,GApBD7V,MAAM,iBAAiBjpD,OAAO,oBAAqBkpD,UAAU,EACjE3xD,MAAA,oB,CACWwD,MAAI,SAAEs1D,GAAS,EAGM,IAAlB,EAAA2f,eAAwC,IAAb,EAAAD,WAAmB1f,EAAU91D,KAAKkvB,OAAuB,IAAb,EAAAsmD,UAAmB,EAAAE,kBAAkB5f,EAAU91D,KAAKukE,WAAazO,EAAU91D,KAAKkvB,Q,WADjK,QAWM,MAXN,GAWM,EATF,QAEwF,G,WAFlE4mC,EAAU91D,KAAKwkE,e,yBAAf1O,EAAU91D,KAAmB,iBAAG6vB,IAAK,EAAIwa,IAAK,IAC/DyrC,YAAY,EACJ,aAAW,oBAAoBp5E,MAAM,qC,6CAExCo5D,EAAU91D,KAAKwkE,gBAAkB1O,EAAU91D,KAAKu0E,uBAA0D,GAAjCze,EAAU91D,KAAKwkE,gB,qBADlG,QAK6C,G,MAHzC/hE,KAAK,eAAe/F,MAAM,wBACzB,QAAK,IAAE,EAAA4iE,kBAAmB,EAAM,EAAAC,kBAAoBzJ,EAAU91D,MAC/DhD,MAAA,8B,yBACW,+B,kBAEA84D,EAAU91D,KAAKkvB,OAAsB,IAAb,EAAAsmD,SACzB1f,EAAU91D,KAAKkvB,OAAS,EAAAsmD,SAAW,I,WAArD,QAAiE,WAAT,Q,WACxD,QAAyD,oBAAxC1f,EAAU91D,KAAKwkE,gBAAc,M,WAF9C,QAAoE,WAAT,S,OAKnE,QAKS,GALD9V,MAAM,eAAejpD,OAAO,8BAA+BkpD,UAAU,EACzE3xD,MAAA,oB,CACWwD,MAAI,SAAEs1D,GAAS,EACtB,OAA2D,sBAAjDA,EAAU91D,KAAK+1E,aAAa/kE,QAAQ,IAAD,M,MAIN,IAAb,EAAAwkE,UAAkB,EAAAC,gB,WADpD,QAQS,G,MARD/mB,MAAM,eAAejpD,OAAO,kBAAmBkpD,UAAU,EAC7D3xD,MAAA,sB,CACWwD,MAAI,SAAEs1D,GAAS,EAGM,IAAlB,EAAA2f,gB,WAFV,QAEiD,G,iBAF3B3f,EAAU91D,KAAKyrE,a,yBAAf3V,EAAU91D,KAAiB,eAAG6vB,KAAM,GAAKwa,IAAK,EAC/DyrC,YAAY,EAAOp5E,MAAM,cAAcM,MAAA,eAAoB,aAAW,kBACxCwjE,YAAA,I,2DACnC,QAAuD,oBAAtC1K,EAAU91D,KAAKyrE,cAAY,O,uBAIL,IAAb,EAAA+J,UAAkB,EAAAC,gB,WADpD,QAQS,G,MARD/mB,MAAM,aAAajpD,OAAO,gBAAiBkpD,UAAU,EACzD3xD,MAAA,sB,CACWwD,MAAI,SAAEs1D,GAAS,EAGM,IAAlB,EAAA2f,gB,WAFV,QAEiD,G,iBAF3B3f,EAAU91D,KAAK0rE,W,yBAAf5V,EAAU91D,KAAe,aAAG6vB,KAAM,GAAKwa,IAAK,EAC7DyrC,YAAY,EAAOp5E,MAAM,cAAcM,MAAA,eAAoB,aAAW,gBACxCwjE,YAAA,I,2DACnC,QAAqD,oBAApC1K,EAAU91D,KAAK0rE,YAAU,O,uBAeL,IAAb,EAAA8J,UAAkB,EAAAC,gB,WADlD,QAQS,G,MARD/mB,MAAM,kBAAkBjpD,OAAO,sBAAuBkpD,UAAU,EACpE3xD,MAAA,oB,CACWwD,MAAI,SAAEs1D,GAAS,EAGM,IAAlB,EAAA2f,gB,WAFV,QAEiD,G,iBAF3B3f,EAAU91D,KAAKsuE,gB,yBAAfxY,EAAU91D,KAAoB,kBAAG6vB,KAAM,GAAKwa,IAAK,EAClEyrC,YAAY,EAAOp5E,MAAM,cAAcM,MAAA,eAAoB,aAAW,sBACxCwjE,YAAA,I,2DACnC,QAA0D,oBAAzC1K,EAAU91D,KAAKsuE,iBAAe,O,uBAIT,IAAb,EAAAkH,UAAkB,EAAAC,gB,WADnD,QAUS,G,MAVD/mB,MAAM,mBAAmBjpD,OAAO,qBAAsBkpD,UAAU,EACpE3xD,MAAA,qB,CACWwD,MAAI,SAAEs1D,GAAS,EAEuC,IAAlB,EAAA2f,gB,WAD3C,QACsE,G,iBADlD3f,EAAU91D,KAAK2rE,iB,yBAAf7V,EAAU91D,KAAqB,mBAAEtD,MAAM,cAAc,aAAW,qBAChFiC,KAAK,OAAO3B,MAAA,iB,+CAGiB,IAAlB,EAAAy4E,gB,WAFf,QAE0C,G,iBAFtB3f,EAAU91D,KAAK2rE,iB,yBAAf7V,EAAU91D,KAAqB,mBAAEtD,MAAM,cAAe,aAAW,qBACjFM,MAAA,gBAAqBoH,SAAS,OAAOzF,KAAK,Q,2DAE9C,QAA2D,oBAA1Cm3D,EAAU91D,KAAK2rE,kBAAgB,O,uBAKT,IAAb,EAAA6J,W,WADlC,QAKS,G,MALD9mB,MAAM,iBAAiBjpD,OAAO,kBAAmBkpD,UAAU,EAC/D3xD,MAAA,sB,CACWwD,MAAI,SAAEs1D,GAAS,EACtB,OAAkD,sBAAxCA,EAAU91D,KAAKgwB,gBAAc,M,wBAG/C,QAMS,GAND0+B,MAAM,eAAejpD,OAAO,yBAA0BkpD,UAAU,EACpE3xD,MAAA,oB,CACWwD,MAAI,SAAEs1D,GAAS,EAEtB,OAAmE,sBAAzDA,EAAU91D,KAAK8vB,qBAAqB9e,QAAQ,IAAD,M,OAI7D,QAKS,GALDvL,OAAO,0BAA0BzI,MAAA,oB,CAC1BwD,MAAI,SAAEs1D,GAAS,E,SACtB,QACyF,GADjF,aAAW,uEAAwE,QAAK,IAAE,EAAAkgB,2BAA2BlgB,EAAU91D,KAAK,EAAGyC,KAAK,c,wBACrI,6E,2CAU3B,GAS0C,EAAA8yE,cAAgB,GAAmB,IAAb,EAAAC,W,WAAhE,QAAsF,MAAtF,M,eAC0C,EAAAD,cAAgB,GAAmB,IAAb,EAAAC,W,WAAhE,QAYM,MAZN,GAYM,EAXF,OAAmE,aAA9D,OAAwD,aAAjD,4BAAwB,QAAG,EAAAx3C,YAAa,IAAC,MACrD,OAEyB,aAFpB,OAEc,aAFP,sDAAkD,QAC1D,EAAAu3C,cACM,IAAC,KACX,GACA,IACA,OAE+B,aAF1B,OAEoB,aAFb,8DAA0D,QAClE,EAAAU,cAAcjlE,QAAQ,IAChB,UAAO,MACjB,OAC6B,YADQ,EAAAilE,cAAgB,I,WAAhD,QACkB,QADlB,GAAmD,2C,yDAMxE,QAoMW,GApMDxwE,OAAO,iBAAe,C,kBAE5B,IAgMY,EAhMZ,QAgMY,GAhMA7E,MAAO,EAAAs1E,8BAA+Bx5E,MAAM,iBAAiB2G,GAAG,iBACvE+qD,YAAY,EAAM,mBAAiB,WAAW,gBAAc,OAAQ+nB,WAAW,EAC/E1oB,KAAM,IACP2oB,kBAAkB,sGAClBC,iBAAiB,SACjBC,0BAA0B,+C,mBAE1B,IAES,EAFT,QAES,GAFD5nB,MAAM,YAAYjpD,OAAO,QAASkpD,UAAU,EAAMwQ,OAAA,GACtDniE,MAAA,qCAEJ,QAES,GAFD0xD,MAAM,iBAAiBjpD,OAAO,QAASkpD,UAAU,EAAMwQ,OAAA,GAC3DniE,MAAA,oCAEJ,QAOS,GAPD0xD,MAAM,MAAMjpD,OAAO,YAAakpD,UAAU,EAAMwQ,OAAA,GAAOniE,MAAA,qB,CAChDwD,MAAI,SAAEs1D,GAAS,CACTA,EAAU91D,KAAKkvB,OAAqB,GAAZ,EAAAsmD,W,WAArC,QACsC,oBAAlC1f,EAAU91D,KAAKukE,UAAQ,M,WAC3B,QACiC,oBAA7BzO,EAAU91D,KAAK61C,KAAG,O,OAI9B,QAQS,GARD6Y,MAAM,aAAajpD,OAAO,oBAAqBkpD,UAAU,EAC7D3xD,MAAA,qC,CACWwD,MAAI,SAAEs1D,GAAS,CACTA,EAAU91D,KAAKkvB,OAAqB,GAAZ,EAAAsmD,W,WAArC,QAC4C,oBAAxC1f,EAAU91D,KAAKwkE,gBAAc,M,WACjC,QACwC,oBAApC1O,EAAU91D,KAAKo/D,YAAU,O,OAGrC,QACS,GADD1Q,MAAM,WAAWjpD,OAAO,MAAOkpD,UAAU,EAAM3xD,MAAA,uCAEvD,QACS,GADD0xD,MAAM,cAAcjpD,OAAO,IAAKkpD,UAAU,EAAM3xD,MAAA,sCAGI,IAAb,EAAAw4E,W,WAD/C,QA2BS,G,MA3BD9mB,MAAM,WAAWjpD,OAAO,8BAA+BkpD,UAAU,EACrE3xD,MAAA,uC,CACWwD,MAAI,SAAEs1D,GAAS,EACtB,OAsBM,MAtBN,GAsBM,EAf0B,IAAlB,EAAA2f,eAAwC,IAAb,EAAAD,W,WANrC,QAOgB,G,MAPD94E,MAAM,yB,WAAkCo5D,EAAU91D,KAAKukE,S,yBAAfzO,EAAU91D,KAAa,WACzE6uD,QAAS,EAAAuc,QAASrc,YAAY,OAAQ0P,oBAAqB,CAAC,cAC7DD,iBAAiB,OAAQvN,YAAa,EAAAykB,kBAAkB5f,EAAU91D,KAAKukE,UAAY,S,kBAC5DvV,YAAY,OAAOhyD,MAAA,uBACzC,SAAM,GAAE,EAAA24E,oBAAoB7f,EAAU91D,MAC5B,aAAW,+B,2GAG1B,QAI+C,GAJvCtD,MAAM,wBAAwB+F,KAAK,cACvCzF,MAAA,6BACI,aAAW,gBACd,QAAK,IAAE84D,EAAU91D,KAAKukE,SAAW,GAAIzO,EAAU91D,KAAKkvB,OAAQ,EAAO4mC,EAAU91D,KAAKwkE,eAAiB,GACnGpgE,UAAW0xD,EAAU91D,KAAKkvB,O,mCAJqC,aAMxC,IAAlB,EAAAumD,eAAwC,IAAb,EAAAD,UAA8C,UAA3B1f,EAAU91D,KAAKukE,WAAwB,EAAAmR,kBAAkB5f,EAAU91D,KAAKukE,UAK9GzO,EAAU91D,KAAKkvB,QAAU,EAAAumD,eAA6B,GAAZ,EAAAD,Y,WAA5D,QACsC,oBAAlC1f,EAAU91D,KAAKukE,UAAQ,K,4BAP3B,QAKY,G,MALD7nE,MAAM,eAAeM,MAAA,gB,WAEnB84D,EAAU91D,KAAKs0E,c,yBAAfxe,EAAU91D,KAAkB,gBAC9B,aAAW,gBACjB,OAAI,GAAE,EAAA41E,0BAA0B9f,EAAU91D,MAAOixD,YAAY,iB,mFAQpE,EAAAukB,SAAW,I,WADrB,QAmBS,G,MAnBD9mB,MAAM,WAAWjpD,OAAO,OAAQkpD,UAAU,EAAM3xD,MAAA,uC,CAEzCwD,MAAI,SAAEs1D,GAAS,CAGTA,EAAU91D,KAAU,Q,WAAjC,QAA8E,WAA3C,yCACD,IAAlB,EAAAy1E,eAAwC,IAAb,EAAAD,U,qBAA3C,QASM,WAPF,QAIW,G,WAJQ1f,EAAU91D,KAAKukE,S,yBAAfzO,EAAU91D,KAAa,WAAG6uD,QAASiH,EAAU91D,KAAKqrE,SACjEpa,YAAY,gBACN,aAAW,gBAAiB,SAAM,GAAE,EAAA4kB,qBAAqB/f,EAAU91D,MACzEi+D,SAAS,Q,kEAEAnI,EAAU91D,KAAKukE,SAASvhB,WAAW,U,WAAhD,QACkB,WADuC,iC,sBAN1C,8D,QAAf,MASc,EAAAyyB,eAA8B,IAAb,EAAAD,W,WAAnC,QACc,oBADwC1f,EAAU91D,KAAKukE,UAAQ,K,0CAIrF,QAYS,GAZD7V,MAAM,iBAAiBjpD,OAAO,oBAAqBkpD,UAAU,EACjE3xD,MAAA,qC,CACWwD,MAAI,SAAEs1D,GAAS,EAKM,IAAlB,EAAA2f,eAAwC,IAAb,EAAAD,WAAmB1f,EAAU91D,KAAKkvB,OAAuB,IAAb,EAAAsmD,UAAmB,EAAAE,kBAAkB5f,EAAU91D,KAAKukE,WAAazO,EAAU91D,KAAKkvB,Q,WAHjK,QAG4K,G,iBAHtJ4mC,EAAU91D,KAAKwkE,e,yBAAf1O,EAAU91D,KAAmB,iBAAG6vB,IAAK,EAAIwa,IAAK,IAC/DyrC,YAAY,EAAOp5E,MAAM,cAAcM,MAAA,eAC/B,aAAW,qB,8CAEL84D,EAAU91D,KAAKkvB,OAAsB,IAAb,EAAAsmD,SACzB1f,EAAU91D,KAAKkvB,OAAS,EAAAsmD,SAAW,I,WAArD,QAAiE,WAAT,Q,WACxD,QAAyD,oBAAxC1f,EAAU91D,KAAKwkE,gBAAc,M,WAF9C,QAAoE,WAAT,S,OAKnE,QAKS,GALD9V,MAAM,eAAejpD,OAAO,8BAA+BkpD,UAAU,EACzE3xD,MAAA,qC,CACWwD,MAAI,SAAEs1D,GAAS,EACtB,OAA2D,sBAAjDA,EAAU91D,KAAK+1E,aAAa/kE,QAAQ,IAAD,M,MAIS,IAAb,EAAAwkE,UAAkB,EAAAC,gB,WADnE,QAaS,G,MAbD/mB,MAAM,eAAejpD,OAAO,kBAAmBkpD,UAAU,EAC7D3xD,MAAA,yC,CACWwD,MAAI,SAAEs1D,GAAS,EAIM,IAAlB,EAAA2f,gB,WAHV,QAGqC,G,iBAHf3f,EAAU91D,KAAKyrE,a,yBAAf3V,EAAU91D,KAAiB,eAAG6vB,KAAM,GAAKwa,IAAK,EAC/DyrC,YAAY,EAAOp5E,MAAM,cAAcM,MAAA,eAC/B,aAAW,mB,+CAKkB,IAAlB,EAAAy4E,gB,WAHxB,QAGmD,G,iBAH7B3f,EAAU91D,KAAKyrE,a,yBAAf3V,EAAU91D,KAAiB,eAAG6vB,KAAM,GAAKwa,IAAK,EAC/DyrC,YAAY,EAAOp5E,MAAM,cAAcM,MAAA,eAAoBoH,SAAS,OACrE,aAAW,mB,2DAEf,QAAuD,oBAAtC0xD,EAAU91D,KAAKyrE,cAAY,O,uBAIU,IAAb,EAAA+J,UAAkB,EAAAC,gB,WADnE,QAWS,G,MAXD/mB,MAAM,aAAajpD,OAAO,gBAAiBkpD,UAAU,EACzD3xD,MAAA,yC,CACWwD,MAAI,SAAEs1D,GAAS,EAE8C,IAAlB,EAAA2f,gB,WADlD,QAC6E,G,MADhE,aAAW,gB,WAAyB3f,EAAU91D,KAAK0rE,W,yBAAf5V,EAAU91D,KAAe,aAAG6vB,KAAM,GAAKwa,IAAK,EAAIyrC,YAAY,EACzGp5E,MAAM,cAAcM,MAAA,gB,+CAIS,IAAlB,EAAAy4E,gB,WAHf,QAG0C,G,iBAHpB3f,EAAU91D,KAAK0rE,W,yBAAf5V,EAAU91D,KAAe,aAAG6vB,KAAM,GAAKwa,IAAK,EAAIyrC,YAAY,EAC9Ep5E,MAAM,cAAcM,MAAA,eAAoBoH,SAAS,OACxC,aAAW,iB,2DAExB,QAAqD,oBAApC0xD,EAAU91D,KAAK0rE,YAAU,O,uBAcQ,IAAb,EAAA8J,UAAkB,EAAAC,gB,WAD/D,QAaS,G,MAbD/mB,MAAM,kBAAkBjpD,OAAO,sBAAuBkpD,UAAU,EACpE3xD,MAAA,qC,CACWwD,MAAI,SAAEs1D,GAAS,EAIM,IAAlB,EAAA2f,gB,WAHV,QAGqC,G,iBAHf3f,EAAU91D,KAAKsuE,gB,yBAAfxY,EAAU91D,KAAoB,kBAAG6vB,KAAM,GAAKwa,IAAK,EAClEyrC,YAAY,EAAOp5E,MAAM,cAAcM,MAAA,eAC/B,aAAW,uB,+CAKS,IAAlB,EAAAy4E,gB,WAHf,QAG0C,G,iBAHpB3f,EAAU91D,KAAKsuE,gB,yBAAfxY,EAAU91D,KAAoB,kBAAG6vB,KAAM,GAAKwa,IAAK,EAClEyrC,YAAY,EAAOp5E,MAAM,cAAcM,MAAA,eAC/B,aAAW,sBAAsBoH,SAAS,Q,2DAEvD,QAA0D,oBAAzC0xD,EAAU91D,KAAKsuE,iBAAe,O,uBAIK,IAAb,EAAAkH,UAAkB,EAAAC,gB,WADjE,QAYS,G,MAZD/mB,MAAM,mBAAmBjpD,OAAO,qBAAsBkpD,UAAU,EACpE3xD,MAAA,uC,CACWwD,MAAI,SAAEs1D,GAAS,EAE2B,IAAlB,EAAA2f,gB,WAD/B,QAEiC,G,iBAFb3f,EAAU91D,KAAK2rE,iB,yBAAf7V,EAAU91D,KAAqB,mBAAEtD,MAAM,cAAciC,KAAK,OAC1E3B,MAAA,gBACJ,aAAW,sB,+CAIsB,IAAlB,EAAAy4E,gB,WAHf,QAG0C,G,iBAHtB3f,EAAU91D,KAAK2rE,iB,yBAAf7V,EAAU91D,KAAqB,mBAAEtD,MAAM,cACvDM,MAAA,gBAAqBoH,SAAS,OACvB,aAAW,qBAAqBzF,KAAK,Q,2DAEhD,QAA2D,oBAA1Cm3D,EAAU91D,KAAK2rE,kBAAgB,O,uBAIM,IAAb,EAAA6J,W,WADjD,QAKS,G,MALD9mB,MAAM,iBAAiBjpD,OAAO,kBAAmBkpD,UAAU,EAC/D3xD,MAAA,yC,CACWwD,MAAI,SAAEs1D,GAAS,EACtB,OAAkD,sBAAxCA,EAAU91D,KAAKgwB,gBAAc,M,wBAG/C,QAMS,GAND0+B,MAAM,eAAejpD,OAAO,yBAA0BkpD,UAAU,EACpE3xD,MAAA,qC,CACWwD,MAAI,SAAEs1D,GAAS,EAEtB,OAAmE,sBAAzDA,EAAU91D,KAAK8vB,qBAAqB9e,QAAQ,IAAD,M,OAI7D,QAMS,GANDvL,OAAO,0BAA0BzI,MAAA,qC,CAC1BwD,MAAI,SAAEs1D,GAAS,E,SACtB,QAE6F,GAFrFrzD,KAAK,aAAc,QAAK,IAAE,EAAAuzE,2BAA2BlgB,EAAU91D,KAAK,EACxE,aAAW,wE,wBACI,6E,kEAehC6F,QAAM,SACb,IAqBM,EArBN,OAqBM,MArBN,GAqBM,EApBF,OAmBM,MAnBN,GAmBM,EAlBF,QAA6B,GAEkC,IAAb,EAAA2vE,UAAmB,EAAAC,e,4BADrE,QAEgC,G,MAFxBnxE,MAAM,sCAAuC,QAAK,eAAE,EAAAiyE,MAAQ,GAAG9zE,KAAK,mBACxEzF,MAAA,oCACCoH,SAAU,EAAAoyE,e,sBAGS,IAAb,EAAAhB,WAAoC,IAAlB,EAAAgB,eAA4B,EAAAf,e,4BAFzD,QAE2E,G,MAFnEnxE,MAAM,oBAAoB7B,KAAK,oBAAoBzF,MAAA,qCACtD,QAAK,eAAE,EAAAy5E,SAASpxE,OAIG,IAAb,EAAAmwE,WAAoC,IAAlB,EAAAgB,eAA4B,EAAAf,e,4BAFzD,QAE2E,G,MAFnEnxE,MAAM,2CAA2C7B,KAAK,oBAC1DzF,MAAA,qCAA0C,QAAK,eAAE,EAAA05E,eAAerxE,OAGL,IAAb,EAAAmwE,UAAmB,EAAAC,e,4BADrE,QAEgC,G,MAFxBnxE,MAAM,eAAgB,QAAK,eAAE,EAAAiyE,MAAQ,GAAG9zE,KAAK,mBACjDzF,MAAA,oCACCoH,SAAU,EAAAoyE,e,uBAEa,IAAlB,EAAAA,gB,WADV,QACqC,G,MAD7BlyE,MAAM,mBAAmB7B,KAAK,aAAazF,MAAA,gBAAuB,QAAO,EAAAiiD,M,qCAIvE,EAAa,gB,WAFvB,QAEqD,G,MAF7C36C,MAAM,iBAAiB7B,KAAK,wBAChCzF,MAAA,qFACsBoH,SAAU,EAAAoyE,e,mDAK3B,EAAgB,mB,WAAzC,QAaO,G,MAbD95E,MAAM,Q,CACGiuC,OAAK,SAAC,IAEb,C,IAAA,QAC0E,GADlEloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,eAAE,EAAAsiE,kBAAmB,QAE1D5W,SAAO,SACd,IAAgG,CAAhG,IACA,QAGuB,GAFlBjH,WAAY,EAAA6zB,2BAA2Bj/D,QAAOyrD,GAAMA,EAAGyS,uBAAyBzS,EAAG0C,gBAAuC,GAArB1C,EAAG0C,iBACxGnjB,QAAS,EAAAA,QAAUj9C,SAAU,EAAAi9C,QAAQwD,SAAU9gB,KAAK,Q,2EAUrE,QACIjkC,WAAY,CACRojE,qBAAoB,IAExBljE,OACI,MAAO,CACHqhD,QAAS5jD,KAAK8/D,oBACdoZ,oBAAqB,GACrBC,uBAAwB,GACxBC,gBAAiB,GACjBC,4BAA6B,GAC7BC,sBAAuB,GACvB97D,aAAc,EACdg6D,aAAc,EACd+B,mBAAoB,KACpBC,8BAA+B,KAC/BC,WAAY,GACZhC,cAAe,GACf5O,cAAe,GACf+E,SAAU,GACV8L,eAAgB,GAChBC,eAAgB,GAChBC,aAAc,GACdC,wBAAyB,GACzBC,sBAAuB,GACvBC,uBAAwB,GAExBC,eAAgB,GAChBC,aAAc,GAEdC,yBAA0B,GAC1BC,2BAA4B,GAE5BrC,cAAe,EACfU,eAAgB,EAChBj4C,YAAa,EAEbg3C,eAAgB,EAChBwB,eAAe,EAEfD,MAAO,EAIPsB,0BAA2B,EAC3BC,2BAA4B,GAE5B1M,QAAS,GACT2M,iBAAkB,GAElBzY,kBAAkB,EAClBC,kBAAmB,KAE3B,EACA1+D,SAAU,CACNu0E,gCACI,IAAI15E,EAAQ+B,KACZ,OAAOA,KAAK4jD,QAAQznB,qBAAqBvjB,QAAOsV,IAAMA,EAAEiN,aAAejN,EAAEqG,SAAWt2B,EAAMu5E,aAAajjD,UAASje,OAC5GtW,KAAK4jD,QAAQznB,qBAAqBvjB,QAAOsV,IAAMA,EAAEiN,aAAejN,EAAEqG,SAAWt2B,EAAMu5E,aAAajjD,UAAS,GAAGmH,kBAAoB,CACxI,EACA6+C,qBACI,OAAOv6E,KAAKu5E,mBAAqBv5E,KAAKu5E,mBAAmB79C,kBAAkBnoB,QAAQ,GAAK,GAC5F,EACAinE,0BACI,OAAOx6E,KAAKu5E,mBAAqBv5E,KAAKu5E,mBAAmBnuC,cAAgB,GAC7E,EACAwsC,4BACI,OAAO53E,KAAKu5E,mBAAsB5mE,KAAKyB,MAAMpU,KAAKu5E,mBAAmB79C,mBAAqB/oB,KAAKyB,MAAMpU,KAAKu5E,mBAAmBnuC,eAAiB,EAAI,iCAAmC,kCAAqC,EAC9N,EACAykC,YACI,IAAIC,EAAM9vE,KAAK63E,2BAA2Bj/D,QAAOwzB,GAAKA,EAAE3a,QACxD,OAAOq+C,EAAIx5D,QAAU,CACzB,EACAmkE,sBACI,OAAOz6E,KAAKu5E,mBAAqBv5E,KAAKu5E,mBAAmB1tD,UAAY,UACzE,EACA6uD,oBACI,OAAO16E,KAAKu5E,mBAAqBv5E,KAAKu5E,mBAAmBztD,QAAU,UACvE,EACA6uD,uBACI,OAAO36E,KAAKu5E,mBAAqBv5E,KAAKu5E,mBAAmBt6D,WAAa,EAC1E,EACA27D,yBACI,OAAO56E,KAAKu5E,mBAAqBv5E,KAAKu5E,mBAAmB/4C,aAAe,EAC5E,EACAq6C,oBACI,OAAO76E,KAAKu5E,mBAAqBv5E,KAAKu5E,mBAAmBhlD,QAAU,EACvE,EACAumD,uBACI,OAAO96E,KAAKu5E,mBAAqBv5E,KAAKu5E,mBAAmBv6C,WAAa,EAC1E,EACAg5C,gBACI,IAAI+C,EAAU/6E,KAAKyF,OAAOC,QAAQC,eAGlC,OAFA0P,QAAQC,IAAI,oBACZD,QAAQC,IAAIylE,EAAQ3zB,UACY,qBAArB2zB,EAAQ3zB,UAIR2zB,EAAQ3zB,QAEvB,EACA2wB,WACI,OAAO/3E,KAAK84E,KAChB,EACAjB,6BACI,IAAI55E,EAAQ+B,KAgBZ,OAfAA,KAAKk5E,oBAAoB7rD,SAAQ,CAACsK,EAAMliB,KACpC,IAAIulE,EAAoB,6BAAgCpiE,QAAOsV,GAAKA,EAAEqG,SAAWt2B,EAAMu5E,aAAajjD,SAAWrG,EAAEgN,oBAAsB,GAAGvD,EAAK5T,QAAQ4T,EAAKjY,SAAQ,GACpKiY,EAAKsjD,UAAYtjD,EAAK5T,KAAO,IAAM4T,EAAKjY,KAAO,KAAOiY,EAAKogC,MAAQ,MAAQpgC,EAAKujD,SAChFvjD,EAAKwjD,sBAAwB,GAAKxoE,KAAKoS,MAAM4S,EAAKurC,YAAc,KAChEvrC,EAAK2gD,aAAgB3gD,EAAKovC,gBAAkB,IAAMpvC,EAAKlG,MAASkG,EAAKgqC,WAAahqC,EAAKwjD,uBAA0BxjD,EAAKgqC,YAAc,EAAKhqC,EAAKovC,eAAiBp0D,KAAKyf,IAAIuF,EAAKgqC,WAAYhqC,EAAKovC,iBAAmBpvC,EAAKwjD,sBACtNxjD,EAAK2gD,aAAe3gD,EAAK2gD,cAAgB,EAAI,EAAI3gD,EAAK2gD,aACtD3gD,EAAKpF,eAAiB5f,KAAKyf,IAAIuF,EAAKq2C,aAAcr2C,EAAKs2C,WAAYt2C,EAAKyjD,UAAWzjD,EAAKk5C,iBACxFl5C,EAAKnF,aAAemF,EAAK2gD,aAAe3gD,EAAKpF,eAC7CoF,EAAKnF,aAAgBmF,EAAKnF,cAAgB,GAAOmF,EAAK2gD,cAAgB,EAAK,EAAI3gD,EAAKnF,aACpFmF,EAAKtF,qBAAuBsF,EAAKnF,aAAgB,GAAK7f,KAAKoS,MAAM4S,EAAKgrC,UACtEhrC,EAAKtF,qBAAwBsF,EAAKnF,cAAgB,EAAK,EAAImF,EAAKtF,qBAChEsF,EAAKwqB,aAAexqB,EAAKtF,qBAAuB2oD,EAAkB96C,aAAe86C,EAAkB76C,WAAa,EAAI,EAAIxI,EAAKtF,qBAAuB2oD,EAAkB96C,aAAe86C,EAAkB76C,WACvMxI,EAAKk9C,WAAa,GAClBl9C,EAAKk/C,cAAgB72E,KAAKi4E,kBAAkBtgD,EAAKmvC,UAAYnvC,EAAKmvC,SAAW,EAAE,IAE5E9mE,KAAKk5E,mBAChB,EACAT,gCAeI,OAdAz4E,KAAKm5E,uBAAuB9rD,SAAQ,CAACsK,EAAMliB,KACvCkiB,EAAKsjD,UAAYtjD,EAAK5T,KAAO,IAAM4T,EAAKjY,KAAO,KAAOiY,EAAKogC,MAAQ,MAAQpgC,EAAKujD,SAChFvjD,EAAKwjD,sBAAwB,GAAKxoE,KAAKoS,MAAM4S,EAAKurC,YAAc,KAChEvrC,EAAK2gD,aAAgB3gD,EAAKovC,gBAAkB,IAAMpvC,EAAKlG,MAASkG,EAAKgqC,WAAahqC,EAAKwjD,uBAA0BxjD,EAAKgqC,YAAc,EAAKhqC,EAAKovC,eAAiBp0D,KAAKyf,IAAIuF,EAAKgqC,WAAYhqC,EAAKovC,iBAAmBpvC,EAAKwjD,sBACtNxjD,EAAK2gD,aAAe3gD,EAAK2gD,cAAgB,EAAI,EAAI3gD,EAAK2gD,aACtD3gD,EAAKpF,eAAiB5f,KAAKyf,IAAIuF,EAAKq2C,aAAcr2C,EAAKs2C,WAAYt2C,EAAKyjD,UAAWzjD,EAAKk5C,iBACxFl5C,EAAKnF,aAAemF,EAAK2gD,aAAe3gD,EAAKpF,eAC7CoF,EAAKnF,aAAgBmF,EAAKnF,cAAgB,GAAOmF,EAAK2gD,cAAgB,EAAK,EAAI3gD,EAAKnF,aACpFmF,EAAKtF,qBAAuBsF,EAAKnF,aAAgB,GAAK7f,KAAKoS,MAAM4S,EAAKgrC,UACtEhrC,EAAKtF,qBAAwBsF,EAAKnF,cAAgB,EAAK,EAAImF,EAAKtF,qBAEhEsF,EAAKk9C,WAAa,GAClBl9C,EAAKk/C,cAAgB72E,KAAKi4E,kBAAkBtgD,EAAKmvC,UAAYnvC,EAAKmvC,SAAW,EAAE,IAE5E9mE,KAAKm5E,sBAChB,GAEJ/4E,QAAS,CACL0/D,oBAGI,OAFAzqD,QAAQC,IAAI,kBACZD,QAAQC,IAAItV,KAAKyF,OAAOC,QAAQC,gBACzB3F,KAAKyF,OAAOC,QAAQC,cAC/B,EACA01E,cAAcC,GACV,IAAIC,EAAgB,GAMpB,OALAv7E,KAAK6oE,cAAcx7C,SAAQsK,IACnBA,EAAKz4B,OAASo8E,EAAQvc,YACtBwc,EAAgB5jD,EAAKi2C,SACzB,IAEG2N,CACX,EACA/rB,QACIxvD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACAqzB,WAAWh4B,GACP,IAAIzP,EAAI,IAAIv0B,KAAKgkC,GACblhB,EAAQ,IAAMyR,EAAEpoB,WAAa,GAC7B6W,EAAM,GAAKuR,EAAEnoB,UACb6W,EAAOsR,EAAEroB,cAOb,OALI4W,EAAMhsB,OAAS,IACfgsB,EAAQ,IAAMA,GACdE,EAAIlsB,OAAS,IACbksB,EAAM,IAAMA,GAET,CAACC,EAAMH,EAAOE,GAAK1oB,KAAK,KAAKtG,UACxC,EACAwlE,SAAS34E,GACLL,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS,yKACT/jD,KAAM,6BACNgkD,OAAQ,KAEJhpD,KAAKwhD,OACLxhD,KAAK84E,MAAQ,CAAC,EAElBhyB,OAAQ,OAGR20B,OAAQ,OAGRC,OAAQ,QAIhB,EACAzC,eAAe54E,GACXL,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS,8IACT/jD,KAAM,6BACNgkD,OAAQ,KAEJhpD,KAAK84E,MAAQ,CAAC,EAElBhyB,OAAQ,OAGR20B,OAAQ,OAGRC,OAAQ,QAIhB,EACAl6B,OACIxhD,KAAK+4E,eAAgB,EAErB,IAAIv8C,EAAuB,GAC3B,IAAK,IAAI1lB,EAAI,EAAGA,EAAI9W,KAAKy4E,8BAA8BniE,OAAQQ,IAAK,CAChE,IAAI6kE,EAAU37E,KAAKy4E,8BAA8B3hE,GACjD,GAAI6kE,EAAQ1N,WAAa,EAAG,CACxB,IAAI2N,EAAWD,EAAQV,UACnBY,EAAaD,EAASh+D,MAAM,KAAK,GAAGwR,OACnCoN,EAAqBrpB,SAAS0oE,IAC/Br/C,EAAqBj3B,KAAKs2E,EAElC,CACJ,CACAxmE,QAAQC,IAAItV,KAAKu5E,oBACjB,8BAAiCv5E,KAAK26E,qBAAsBn+C,GAE5Dx8B,KAAK87E,4BAA4B,EAAG97E,KAAK+7E,MAC7C,EACAA,QACI,IAAI99E,EAAQ+B,KACZqV,QAAQC,IAAI,4BACZD,QAAQC,IAAIrX,EAAM2lD,QAAQI,YAC1B/lD,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,mCAAmC9H,EAAM2lD,QAAQh+C,mBAAoB3H,EAAM2lD,QAAQI,WAAWv7C,KAAI2jC,IACtG,CACH06B,SAAU16B,EAAE06B,SACZC,eAAgB36B,EAAE26B,eAClBiH,aAAc5hC,EAAE4hC,aAChBC,WAAY7hC,EAAE6hC,WACdmN,UAAWhvC,EAAEgvC,UACbvK,gBAAiBzkC,EAAEykC,gBACnB3C,iBAAkB9hC,EAAE8hC,iBACpBz8C,MAAO2a,EAAE3a,MACTynC,KAAM9sB,EAAE8sB,UAIf5/C,MAAK,SAAUC,GACZlE,QAAQC,IAAIiE,GACZlE,QAAQC,IAAI,SAKZ,kBAAqBrX,EAAM2lD,QAAS,MAKpC3lD,EAAM+9E,2BAA2B/9E,EAAMg+E,wBAE3C,IACC9+D,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EAEAg7D,qBAAqBtH,GASjB,IAAIoL,EAAUpL,EAAQhK,SACtB,GAAIoV,EAAQ/oE,SAAS,OAAQ,CACzB,IAAIgpE,EAAQD,EAAQt+D,MAAM,OAC1Bs+D,EAAUC,EAAM,EACpB,CACArL,EAAQ/J,eAAiB/mE,KAAKo8E,gBAAgBF,GAC9CpL,EAAQgG,sBAAwB92E,KAAKo8E,gBAAgBF,EACzD,EAEAhE,oBAAoBpH,GAChB,IAAIoL,EAAUpL,EAAQhK,SACtB,GAAIoV,EAAQ/oE,SAAS,OAAQ,CACzB,IAAIgpE,EAAQD,EAAQt+D,MAAM,OAC1Bs+D,EAAUC,EAAM,EACpB,CACArL,EAAQ/J,eAAiB/mE,KAAKo8E,gBAAgBF,GAC9CpL,EAAQgG,sBAAwB92E,KAAKo8E,gBAAgBF,GACrDpL,EAAQr/C,OAAQ,CACpB,EAEA0mD,0BAA0BrH,GACtBA,EAAQhK,SAAWgK,EAAQ+F,cAC3B/F,EAAQr/C,OAAQ,CACpB,EACA4qD,wBAAwBvL,GASpB,IAAIoL,EAAUpL,EAAQhK,SACtB,GAAIoV,EAAQ/oE,SAAS,OAAQ,CACzB,IAAIgpE,EAAQD,EAAQt+D,MAAM,OAC1Bs+D,EAAUC,EAAM,EACpB,CACArL,EAAQ/J,eAAiB/mE,KAAKo8E,gBAAgBF,EAElD,EACAI,qBACI,OAAO,IAAIrgB,SAASsgB,IAChB,kBAAqBv8E,KAAK4jD,QAAS,MACnC24B,GAAS,GAEjB,EACA7tB,OACIr5C,QAAQC,IAAI,aACZD,QAAQC,IAAI,uBACZD,QAAQC,IAAItV,KAAKg6E,gBACjB3kE,QAAQC,IAAI,qBACZD,QAAQC,IAAItV,KAAKi6E,cACjB,IAAIuC,EAAMx8E,KAAKy8E,0BACXhnE,GAAS,EACbJ,QAAQC,IAAI,OACZD,QAAQC,IAAIknE,GACZ,IAAK,IAAIxlE,EAAI,EAAGA,EAAIwlE,EAAIlmE,OAAQU,IAAK,CACjC,IAAI0lE,EAAyBF,EAAIxlE,GAC7B2lE,EAAiB38E,KAAKw7E,WAAWkB,EAAuB7wD,WACxD+wD,EAAe58E,KAAKw7E,WAAWkB,EAAuB5wD,SAG1D,GAFAzW,QAAQC,IAAI,kBACZD,QAAQC,IAAIqnE,GACRA,IAAmB38E,KAAKw7E,WAAWx7E,KAAKg6E,iBAAmB4C,IAAiB58E,KAAKw7E,WAAWx7E,KAAKi6E,cAAe,CAChHxkE,EAAQinE,EAAuBxF,SAC/B,KACJ,CACJ,CACA7hE,QAAQC,IAAI,SACZD,QAAQC,IAAIG,EAChB,EACAqmE,4BAA4B34E,EAAO0Z,GAC/B,IAAIggE,EAAY,CACZj3E,GAAI5F,KAAK4jD,QAAQh+C,GACjB86B,aAAcv9B,GAElB,IAAIlF,EAAQ+B,KACZ/B,EAAM4H,MACDC,KAAK,GAAG7H,EAAM8H,kCAAmC82E,GACjDvjE,MAAK,SAAUC,GACRsD,IACAxH,QAAQC,IAAI,0DACZuH,IAER,IACCM,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EAEA4+D,2BAA2Bn/D,GACvB,IAAI5e,EAAQ+B,KACZ/B,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,mCAAmC9H,EAAM2lD,QAAQh+C,MAC9D0T,MAAK,SAAUC,GACRA,EAAShX,MAAQ,GACjB8S,QAAQC,IAAIiE,EAAShX,MACrBM,YAAW,WACP5E,EAAM+9E,2BAA2Bn/D,EACrC,GAAG,OAEHxH,QAAQC,IAAIiE,EAAShX,MACrBsa,IAGR,IACCM,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EACA0/D,qBAAqBjgE,GACjB,IAAI5e,EAAQ+B,KACZ/B,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,mCAAmC9H,EAAM2lD,QAAQh+C,MAC9D0T,MAAK,SAAUC,GACZ,IAAIiE,EAAejE,EAAShX,KACP,MAAjBib,GAEAnI,QAAQC,IAAI,oCAAsCrX,EAAM2lD,QAAQh+C,GAAG4N,YACnE,kBAAqBvV,EAAM2lD,QAAS/mC,GAChCA,GACAA,KAIAA,GACAA,GAGZ,IACCM,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EACA2/D,2BAA2BlgE,GACvBxH,QAAQC,IAAI,qCACZ,IAAIrX,EAAQ+B,KACZqV,QAAQC,IAAI,mBAAoBrX,EAAM2lD,QAAQh+C,IAC9C3H,EAAM4H,MAGDqN,IAAI,GAAGjV,EAAM8H,6CAA6C9H,EAAM2lD,QAAQh+C,MAExE0T,MAAK,SAAUC,GACZtb,EAAMm7E,gBAAkB7/D,EAAShX,KAEjC8S,QAAQC,IAAI,yBACZD,QAAQC,IAAIrX,EAAMm7E,iBAGlB/jE,QAAQC,IAAI,uCACZD,QAAQC,IAAI,iCACZ,IAAI0nE,EAAmB,gCACvB,GAAIA,EAAmB,EAAG,CACtB,IAAIC,EAAiB,GACrB1jE,EAAShX,KAAK8qB,SAAQ+e,IACdA,EAAEntB,aAAe+9D,GACjBC,EAAe13E,KAAK6mC,EACxB,IAEA6wC,EAAe3mE,OAAS,IACxBrY,EAAMm7E,gBAAkB6D,EAEhC,CACA5nE,QAAQC,IAAI,oBACZD,QAAQC,IAAI0nE,GAGZ,IAAIE,EAAkB,GACtBj/E,EAAMm7E,gBAAgB/rD,SAAQ+e,IAC1B,IAAI+vC,EAAQ,wDAA2D/vC,EAAEpN,WAAYoN,EAAEntB,YACvFmtB,EAAE7X,QAAU4nD,EAAM,GAClB/vC,EAAE5L,aAAe27C,EAAM,GACvBe,EAAgB33E,KAAK6mC,EAAE,IAEvB8wC,EAAgB5mE,OAAS,IACzBrY,EAAMm7E,gBAAkB8D,GAI5Bj/E,EAAM2lD,QAAQznB,qBAAuB,6BAAgCvjB,QAAOsV,GAAKA,EAAEiN,cAEnF9lB,QAAQC,IAAIrX,EAAM2lD,QAAQznB,sBAC1Bl+B,EAAMk/E,cAAcl/E,EAAMmpE,eAC9B,IACCjqD,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EACAggE,4BAA4BvgE,GACxBxH,QAAQC,IAAI,qCACZD,QAAQC,IAAI,kBAAmBtV,KAAK4jD,QAAQh+C,IAC5C5F,KAAKy3E,cAAgB,GACrBz3E,KAAK4jD,QAAQznB,qBAAuB,6BAEpC9mB,QAAQC,IAAItV,KAAK4jD,QAAQznB,sBAEzB,IAAIkhD,EAAiH,IAAtG,6BAAgCzkE,QAAOsV,GAAKA,EAAEiN,aAAejN,EAAEyL,KAAOzL,EAAEwN,oBAAmBplB,OAAe,6BAAgCsC,QAAOsV,GAAKA,EAAEyL,KAAOzL,EAAEwN,oBAAqB,6BAAgC9iB,QAAOsV,GAAKA,EAAEiN,aAAejN,EAAEyL,KAAOzL,EAAEwN,oBAE7Q2hD,EAAShwD,SAAQiwD,IAEb,IAAIhH,EAASt2E,KAAKy3E,cAAc7+D,QAAO2kE,GAAMA,EAAGhpD,UAAY+oD,EAAE/oD,UAASje,OAClEggE,GACDt2E,KAAKy3E,cAAclyE,KAAK+3E,EAC5B,IAIJt9E,KAAKy3E,cAAcr2B,MAAK,CAACt/B,EAAGu/B,IACxBA,EAAE3lB,kBAAoB5Z,EAAE4Z,oBAG5B,IAAIshD,EAAmB,gCAGnBh9E,KAAKw3E,aADLwF,EAAmB,EACCh9E,KAAKy3E,cAAc7+D,QAAO0kE,GAAKA,EAAEr+D,YAAc+9D,IAAkB,GAGjEh9E,KAAKy3E,cAAc,GAG3Cz3E,KAAKw9E,SAASx9E,KAAKonE,eACvB,EACA6U,0BACIj8E,KAAK88E,qBAAqB98E,KAAKo9E,4BAEnC,EACAI,SAAS3gE,GACL,IAAI5e,EAAQ+B,KACZ/B,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,uBACbuT,MAAKC,IACFtb,EAAM2vE,SAAWr0D,EAAShX,KACtBsa,GACAA,GACJ,GAEZ,EACAsgE,cAActgE,GACVxH,QAAQC,IAAI,uBACZ,IAAIrX,EAAQ+B,KACZ/B,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,2BACbuT,MAAK,SAAUC,GACZtb,EAAMy7E,eAAiBngE,EAAShX,KAChCtE,EAAM07E,eAAiB,GACvBpgE,EAAShX,KAAK8qB,SAAQ+e,IAClBnuC,EAAM07E,eAAep0E,KAAK6mC,EAAE7M,MAAM,IAGlC1iB,GACAA,GAER,IACCM,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EACAgqD,eAAevqD,GACXxH,QAAQC,IAAI,wBACZ,IAAIrX,EAAQ+B,KACZ/B,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,kBACbuT,MAAK,SAAUC,GACZtb,EAAM4qE,cAAgBtvD,EAAShX,KAC/BtE,EAAM27E,aAAe,GACrB37E,EAAM47E,wBAA0B,GAChCxkE,QAAQC,IAAI,kBAAmBrX,EAAMw5E,eACrCx5E,EAAMw5E,cAAcpqD,SAAQ+e,IACnBnuC,EAAM27E,aAAazmE,SAASi5B,EAAElR,sBAC/Bj9B,EAAM27E,aAAar0E,KAAK6mC,EAAElR,oBAC1Bj9B,EAAM47E,wBAAwBt0E,KAAK6mC,GACvC,IAEJ/2B,QAAQC,IAAI,eAAgBrX,EAAM27E,cAQlC37E,EAAM2lD,QAAQI,WAAW32B,SAAQ+e,IAM7BA,EAAEwhC,SAAW3vE,EAAM2vE,SAASnlE,KAAIg1E,GAAKA,EAAEv+E,OACvCktC,EAAEsxC,WAAaz/E,EAAM2vE,QAAQ,IAOjC,IAAI+P,EAAY,CAAC,aAAc,UAC/B1/E,EAAM4qE,cAAcznB,KAAKnjD,EAAM2/E,oBAAoBD,IACnDtoE,QAAQC,IAAI,4BACZD,QAAQC,IAAIrX,EAAM2lD,QAAQI,YAC1B/lD,EAAM4qE,cAAcx7C,SAAQ+e,IACxBnuC,EAAM2lD,QAAQI,WAAW32B,SAAQrJ,KACZ,IAAbooB,EAAEm7B,QAAoC,IAAhBn7B,EAAEwxB,YAAoBxxB,EAAEu1B,WAAa39C,EAAE29C,YAC7D39C,EAAE05D,WAAWn4E,KAAqB,IAAhB6mC,EAAEwxB,WAAmBxxB,EAAEwxB,WAAa,MAAQxxB,EAAEltC,KAAOktC,EAAEltC,KAC7E,GACF,IAENjB,EAAM4qE,cAAcx7C,SAAQ+e,IACxBnuC,EAAM2lD,QAAQI,WAAW32B,SAAQrJ,KACZ,IAAbooB,EAAEm7B,QAAoC,IAAhBn7B,EAAEwxB,YAAoBxxB,EAAEu1B,WAAa39C,EAAE29C,YAC7D39C,EAAE05D,WAAWn4E,KAAqB,IAAhB6mC,EAAEwxB,WAAmBxxB,EAAEwxB,WAAa,MAAQxxB,EAAEltC,KAAOktC,EAAEltC,KAC7E,GACF,IAIN,IAAI2+E,EAAiB5/E,EAAM2lD,QAAQI,WACnC65B,EAAexwD,SAAQ,CAACsK,EAAMliB,KAC1BkiB,EAAKujD,SAAWj9E,EAAM6/E,kBAAkBnmD,EAAKjY,KAAK,IAEtD,IAAIq+D,EAAmBF,EAAez8B,MAAK,SAAUt/B,EAAGu/B,GACpD,IAAIn8B,EAAIpD,EAAE4+C,eAAellD,cACrB2J,EAAIk8B,EAAEqf,eAAellD,cACzB,OAAI0J,EAAIC,GAAa,EACjBD,EAAIC,EAAY,EACb,CACX,IACAlnB,EAAMk7E,uBAAyB,GAC/B,IAAK,IAAIn+C,EAAI,EAAGA,EAAI+iD,EAAiBznE,OAAQ0kB,IACzC/8B,EAAMk7E,uBAAuB5zE,KAAKw4E,EAAiB/iD,IAKvD/8B,EAAM+/E,yBAAyB,EA0BnC,IACC7gE,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EACA6gE,WAAWr4E,GACP,IAAIs4E,EAAS,KAMb,OALAl+E,KAAK6oE,cAAcx7C,SAAQsK,IACnBA,EAAK/xB,KAAOA,IACZs4E,EAASvmD,EACb,IAEGumD,CACX,EACAC,eAAev4E,GACX,OAAO5F,KAAKi+E,WAAWr4E,GAAI1G,IAC/B,EACAk/E,iBAAiBl/E,GACb,IAAIm/E,EAAY,GAMhB,OALAr+E,KAAK05E,eAAersD,SAAQsK,IACpBA,EAAK6H,UAAYtgC,GACjBm/E,EAAU94E,KAAKoyB,EACnB,IAEG0mD,CACX,EACAC,qBAAqBp/E,GACjB,IAAIm/E,EAAY,GAMhB,OALAr+E,KAAK05E,eAAersD,SAAQsK,IACpBA,EAAK6H,UAAYtgC,GACjBm/E,EAAU94E,KAAK,UAAYoyB,EAAKmvC,SACpC,IAEGuX,CACX,EACAjC,gBAAgBl9E,GACZ,IAAIg/E,EAAS,EAMb,OALAl+E,KAAK6oE,cAAcx7C,SAAQsK,IACnBA,EAAKz4B,OAASA,IACdg/E,EAASvmD,EAAKgqC,WAClB,IAEGuc,CACX,EACAK,6BAA6BnF,EAAiBvtD,EAAWC,GACrD,IAAI0yD,GAAM,EACV,IAAK,IAAI1nE,EAAI,EAAGA,EAAIsiE,EAAgB9iE,OAAQQ,IAAK,CAC7C,IAAI2nE,EAAWrF,EAAgBtiE,GAC/B,GAAI9W,KAAKw7E,WAAWiD,EAAS5yD,aAAe7rB,KAAKw7E,WAAW3vD,IAAc7rB,KAAKw7E,WAAWiD,EAAS3yD,WAAa9rB,KAAKw7E,WAAW1vD,GAAU,CACtI0yD,EAAK1nE,EAAI,EACT,KACJ,CACJ,CACA,OAAO0nE,CACX,EACAR,yBAAyBU,GACrBrpE,QAAQC,IAAI,kCAeZ,IAAIuoE,EAAiB79E,KAAK4jD,QAAQI,WAIlC3uC,QAAQC,IAAI,qBACZD,QAAQC,IAAItV,KAAK45E,cAIjB,IAAI37E,EAAQ+B,KACZ,IAAI2+E,EAAc,IAAI,IAAI5xD,IAAI,6BAAgCnU,QAAOsV,GAAKA,EAAEiN,aAAejN,EAAEqG,SAAWt2B,EAAMu5E,aAAajjD,UAAYrG,EAAEgN,mBAAmB/nB,SAAS,OAAM1K,KAAIylB,GAAKA,EAAEgN,uBACtLl7B,KAAKq6E,2BAA6BsE,EAElC3+E,KAAKk5E,oBAAsB,GAG3B,IAAK,IAAIliE,EAAI,EAAGA,EAAI2nE,EAAYroE,OAAQU,IAAK,CACzC,IAAI4nE,EAAgBD,EAAY3nE,GAAG4G,MAAM,KACrCihE,EAAQryD,SAASoyD,EAAc,IAC/BE,EAAQF,EAAc,GAEtBG,EAAUlB,EAAejlE,QAAOomE,GAAQA,EAAIj7D,OAAS86D,GAAWG,EAAIt/D,OAASo/D,IAM7EG,EAAgBF,EAAQ39B,MAAK,SAAUt/B,EAAGu/B,GAC1C,IAAIn8B,EAAIpD,EAAE4+C,eAAellD,cACrB2J,EAAIk8B,EAAEqf,eAAellD,cACzB,OAAI0J,EAAIC,GAAa,EACjBD,EAAIC,EAAY,EACb,CACX,IAQA,IAAK,IAAI6V,EAAI,EAAGA,EAAIikD,EAAc3oE,OAAQ0kB,IACtCh7B,KAAKk5E,oBAAoB3zE,KAAK05E,EAAcjkD,GAKpD,CAUA,IAAIkkD,EAAqBl/E,KAAKw3E,aAAav4D,WAC3Cjf,KAAKo6E,0BAA4B8E,EACjC,IAAIC,EAA6Bn/E,KAAKw3E,aAAat8C,mBAC/CkkD,EAAgCD,EAA2BvhE,MAAM,KACjEyhE,EAAgCr/E,KAAKw3E,aAAan3C,cACtDrgC,KAAK83E,aAAe93E,KAAKw3E,aAAa/4C,aACtCz+B,KAAKw4E,cAAgBx4E,KAAKw3E,aAAa94C,cACvC1+B,KAAKugC,WAAavgC,KAAKw3E,aAAa74C,WACpC,IAAI2gD,EAAY,qBAAwBJ,GACpCK,EAA2B,EAE3BC,GAAkB,EACtB,IAAK,IAAIvnD,EAAI,EAAGA,EAAIj4B,KAAKy4E,8BAA8BniE,OAAQ2hB,IAAK,CAChE,IAAIwnD,EAAYz/E,KAAKy4E,8BAA8BxgD,GAC/CwnD,EAAUxR,WAAa,IACvBuR,GAAkB,EAE1B,CAKIx/E,KAAK83E,cAAgB,GAAK0H,EAC1Bx/E,KAAK+7B,uBAAuB/7B,KAAK4jD,QAAQznB,qBAAsBkjD,EAA+Br/E,KAAKugC,WAAY++C,EAAWC,GAErHv/E,KAAK83E,aAAe,GAAK0H,IAI9Bx/E,KAAK83E,cAAgB,EACrB93E,KAAKw4E,cAAgB,GAMzB,IAAIh8C,EAAuB,GAC3B,IAAK,IAAI1lB,EAAI,EAAGA,EAAI9W,KAAKy4E,8BAA8BniE,OAAQQ,IAAK,CAChE,IAAI6kE,EAAU37E,KAAKy4E,8BAA8B3hE,GACjD,GAAI6kE,EAAQ1N,WAAa,EAAG,CACxB,IAAI2N,EAAWD,EAAQV,UACnBY,EAAaD,EAASh+D,MAAM,KAAK,GAAGwR,OACnCoN,EAAqBrpB,SAAS0oE,IAC/Br/C,EAAqBj3B,KAAKs2E,EAElC,CACJ,CAEA,8BAAiC77E,KAAK26E,qBAAsBn+C,GAG5D,IAAIkjD,EAAqC1/E,KAAK4jD,QAAQznB,qBAAqBvjB,QAAOomE,GAAOA,EAAI99D,YAAclhB,KAAK4jD,QAAQh+C,IAAMo5E,EAAI//D,aAAeigE,GAAsBE,EAA8BjsE,SAAS6rE,EAAI9jD,sBAC9MykD,EAAgB,CAAC,mCAAoC,sBACzDD,EAAmCt+B,KAAKphD,KAAK49E,oBAAoB+B,IAIjE3/E,KAAKq5E,4BAA8BqG,EACnC,IAAK,IAAIznD,EAAI,EAAGA,EAAIj4B,KAAKk5E,oBAAoB5iE,OAAQ2hB,IAAK,CACtD,IAAI2nD,EAAS5/E,KAAKk5E,oBAAoBjhD,GAClC4nD,EAAeD,EAAO77D,KAAO,IAAM67D,EAAOlgE,KAE1CogE,GAAW,EACf,IAAK,IAAI1vD,EAAI,EAAGA,EAAIpwB,KAAKq5E,4BAA4B/iE,OAAQ8Z,IAAK,CAC9D,IAAI2vD,EAAkB//E,KAAKq5E,4BAA4BjpD,IAEnD2vD,EAAgB9/C,UAAU9sB,SAASysE,EAAO1mB,KAAK1lD,aAM1CusE,EAAgB9/C,YAAc2/C,EAAOlf,kBAL1Ckf,EAAO5oD,SAAW+oD,EAAgB/oD,SAClC4oD,EAAO1/C,aAAe6/C,EAAgB7/C,aACtC0/C,EAAOz/C,WAAa4/C,EAAgB5/C,WACpC2/C,GAAW,EAQnB,CACA,GAAIA,EACA,IAAK,IAAI1vD,EAAI,EAAGA,EAAIpwB,KAAKq5E,4BAA4B/iE,OAAQ8Z,IAAK,CAC1D2vD,EAAkB//E,KAAKq5E,4BAA4BjpD,GACnD2vD,EAAgB7kD,qBAAuB2kD,IACvCD,EAAO5oD,SAAW+oD,EAAgB/oD,SAClC4oD,EAAO1/C,aAAe6/C,EAAgB7/C,aACtC0/C,EAAOz/C,WAAa4/C,EAAgB5/C,WAE5C,CAER,CAGAngC,KAAK+4E,eAAgB,CACzB,EACA0D,0BACI,IAAIuD,EAAqB,GACrBC,EAAmB,GAcvB,OAXAjgF,KAAKo5E,gBAAgB/rD,SAAQ,CAACsK,EAAMliB,KAChC,IAAIyqE,EAAuBvoD,EAAK9L,UAAUrY,WAAamkB,EAAK7L,QAAQtY,WAE/DysE,EAAiB9sE,SAAS+sE,KAC3BD,EAAiB16E,KAAK26E,GACtBF,EAAmBz6E,KAAKoyB,GACN,GAGtB3T,KAEGg8D,CAEX,EAEAjkD,uBAAuB/H,EAAoC/f,EAAsByhB,EAA4BH,EAAwB+G,GACjIjnB,QAAQC,IAAI,qDAGZ,IAAIinB,EAAsB,GACtBC,EAAuB,GACvBC,EAAc,GACdC,EAAgB,GAChBC,EAAqB,EACzB,IAAK,IAAI7lB,EAAI,EAAGA,EAAIkd,EAAmC1d,OAAQQ,IAAK,CAChE,IAAI8lB,EAAuB5I,EAAmCld,GAE1Due,EAAoBuH,EAAqB3d,WACzC4d,EAAqBD,EAAqBzB,YAC1C2B,EAA4BF,EAAqB1B,mBAErD,IAA2B,IAAvB2B,GAA+BxH,IAAsBr1B,KAAKo6E,0BAE1D,GAAIt9C,EAA0B3pB,SAAS,KAAM,CACzC,IAAI4pB,EAAe,qBAAwBD,EAA2B,KAAM,MAC5EP,EAAoBh3B,KAAKw3B,EAC7B,MAEI,GAAI/8B,KAAKq6E,2BAA2BlnE,SAAS2pB,GAA4B,CACjEC,EAAe,qBAAwBD,EAA2B,KAAM,MAC5EN,EAAqBj3B,KAAKw3B,GAC1B,IAAIC,EAAaJ,EAAqB9I,WAClCmJ,EAAqBL,EAAqB5F,SAC9C2F,EAAqBC,EAAqB5F,SAE1C,IAAIkG,EAAe,EACfC,EAAgBD,EAAeZ,EACnC,MAAOa,GAAiB5H,EAAwB,CAC5C,IAAIwD,EAAmBoE,EACnBnE,EAAgBrmB,KAAKkS,IAAKlS,KAAKkS,IAAIoY,EAAoB,GAAKtqB,KAAKkS,IAAIkU,EAAkB,GAAK,IAC5FE,GAA4B,GAAK,GAAKtmB,KAAKoS,MAAMiU,GAAiB,GAClEE,EAAmB,EACnBE,EAAoB4D,EAAa/D,EAA2BC,EAE5DkE,EAAqB,qBAAwBN,EAA2BI,EAAc9D,GAC1FqD,EAAYl3B,KAAK63B,GAEjBF,GAA8B,EAC9BC,EAAgBD,EAAeZ,CACnC,CACJ,KACK,CACD,IAAIe,EAAaT,EAAqBjD,IAClC2D,EAAqB,qBAAwBR,EAA2B,KAAMO,GAClFX,EAAcn3B,KAAK+3B,EACvB,CAGZ,CAGIJ,EAAe,EACfC,EAAgBD,EAAeZ,EADnC,IAEIiB,GAAa,EACjB,MAAOJ,GAAiB5H,EAAwB,CAC5C,IAAIiI,EAAgB,GAGpB,IAAK,IAAI1mB,EAAI,EAAGA,EAAI0lB,EAAqBlmB,OAAQQ,IAAK,CAClD,IAAI2mB,EAAcjB,EAAqB1lB,GACnC2V,EAAkBgR,EAAYvF,IAElC,IAAK,IAAIlhB,EAAI,EAAGA,EAAIylB,EAAYnmB,OAAQU,IAAK,CACzC,IAAI0mB,EAAiBjB,EAAYzlB,GACjC,GAAI0mB,EAAexF,MAAQzL,GAAmBiR,EAAe/F,OAASuF,EAAc,CAChF,IAAIS,EAAe,qBAAwBlR,EAAiB,KAAMiR,EAAezG,QACjFuG,EAAcj4B,KAAKo4B,EACvB,CAEJ,CACJ,CAGA,IAAK,IAAI7mB,EAAI,EAAGA,EAAI4lB,EAAcpmB,OAAQQ,IAAK,CACvC6mB,EAAe,qBAAwBjB,EAAc5lB,GAAGohB,IAAK,KAAMwE,EAAc5lB,GAAGmgB,QACxFuG,EAAcj4B,KAAKo4B,EACvB,CAGA,IAAIC,EAAgB,GACpB,IAAK,IAAI9mB,EAAI,EAAGA,EAAIylB,EAAoBjmB,OAAQQ,IAAK,CACjD,IAAI+mB,EAAqBtB,EAAoBzlB,GACzCgnB,EAAeD,EAAmB3F,IAAIta,MAAM,KAEhD,IAAK,IAAI5G,EAAI,EAAGA,EAAI8mB,EAAaxnB,OAAQU,IAAK,CACtCyV,EAAkBqR,EAAa9mB,GAEnC,IAAK,IAAIoZ,EAAI,EAAGA,EAAIoN,EAAclnB,OAAQ8Z,IAAK,CAC3C,IAAI2N,EAAeP,EAAcpN,GACjC,GAAI2N,EAAa7F,MAAQzL,EAAiB,CACtC,IAAIuR,EAASD,EAAa9G,OAC1B2G,EAAcr4B,KAAKy4B,GACnB,KACJ,CACJ,CACJ,CAEA,IAAIC,EAAkB,2BAA8BL,GAChDD,EAAe,qBAAwBE,EAAoB,KAAMI,GACrET,EAAcj4B,KAAKo4B,EACvB,CAGA,IAAIO,EAAS,EACb,IAAK,IAAIpnB,EAAI,EAAGA,EAAI0mB,EAAclnB,OAAQQ,IAAK,CAC3C,IAAIqnB,EAAgBX,EAAc1mB,GAC9BsnB,EAAOD,EAAclH,OACrBiH,EAASE,IACTF,EAASE,EAEjB,CAGA,GAAIF,GAAUjqB,EAAsB,CAChCspB,GAAa,EACb,KACJ,CAIAL,GAA8B,EAC9BC,EAAgBD,EAAeZ,CACnC,CACKiB,IACDL,EAAexH,EACfyH,EAAgBD,EAAeZ,GAInC,IAAI+B,EAAqB,EACrBC,EAA6B,EAE7BE,EAAarB,EAAgBkB,EAAqB1B,EAAsB2B,EAI5EjpB,QAAQC,IAAI,gBAAiB6nB,GAC7B9nB,QAAQC,IAAI,iBAAkBigB,GAC9BlgB,QAAQC,IAAI,qBAAsBqnB,GAClCtnB,QAAQC,IAAI,qBAAsB+oB,GAI9Br+B,KAAK83E,aADLv6C,EACoBL,EAAe,EAGfA,EAExBl9B,KAAKw4E,cAAgBh6C,EACrBx+B,KAAKugC,WAAa7K,CAEtB,EACAgiD,aACI13E,KAAKg+E,yBAAyBh+E,KAAKw3E,aACvC,EACA2I,2BAA2BC,EAAiBC,EAAev3C,GACnDs3C,EAAgB5sE,WAAWL,SAAS,OACpCitE,EAAkBA,EAAgB5sE,WAAWoK,MAAM,KAAK,IAExDyiE,EAAc7sE,WAAWL,SAAS,OAClCktE,EAAgBA,EAAc7sE,WAAWoK,MAAM,KAAK,IAExD,IAAI0iE,EAAatgF,KAAK4jD,QAAQnX,MAC1B8zC,GAAQ,EACZ,IAAK,IAAIzpE,EAAI,EAAGA,EAAIwpE,EAAWhqE,OAAQQ,IACnC,GAAKspE,IAAoBE,EAAWxpE,GAAGnS,OAAW07E,IAAkBC,EAAWxpE,GAAGhS,KAASgkC,IAAWw3C,EAAWxpE,GAAGiN,KAEhH,OADAw8D,GAAQ,EACDD,EAAWxpE,GAAG5X,KAM7B,OAHc,IAAVqhF,GACAlrE,QAAQC,IAAI,0BAET,EACX,EACAwoE,kBAAkB7N,GACd,IAAIqQ,EAAatgF,KAAK4jD,QAAQnX,MAC1B8zC,GAAQ,EACZ,IAAK,IAAIzpE,EAAI,EAAGA,EAAIwpE,EAAWhqE,OAAQQ,IACnC,GAAIm5D,IAAWqQ,EAAWxpE,GAAGlR,GAEzB,OADA26E,GAAQ,EACDD,EAAWxpE,GAAG5X,KAM7B,OAHc,IAAVqhF,GACAlrE,QAAQC,IAAI,0BAET,EACX,EACAkrE,YAAYC,GACR,IAAIzvB,EAAY,EAKhB,MAJoB,MAAhByvB,EAAS,KACTzvB,GAAa,EACbyvB,EAAWA,EAASC,OAAO,IAExB,SAAU5+D,EAAGu/B,GAIhB,IAAI9iC,EAAUuD,EAAE2+D,GAAYp/B,EAAEo/B,IAAc,EAAK3+D,EAAE2+D,GAAYp/B,EAAEo/B,GAAa,EAAI,EAGlF,GAAIA,EAASttE,SAAS,KAAM,CACxB,IAAIwtE,EAAaF,EAAS7iE,MAAM,KAC5BgjE,EAAQD,EAAW,GACnBE,EAAQF,EAAW,GACvBpiE,EAAWuD,EAAE8+D,GAAS9+D,EAAE++D,GAAWx/B,EAAEu/B,GAASv/B,EAAEw/B,IAAY,EAAM/+D,EAAE8+D,GAAS9+D,EAAE++D,GAAWx/B,EAAEu/B,GAASv/B,EAAEw/B,GAAW,EAAI,CAC1H,CACA,OAAOtiE,EAASyyC,CACpB,CACJ,EACA4sB,oBAAoBkD,GAMhBzrE,QAAQC,IAAI,6BACZ,IAAIyrE,EAAO/gF,KACX,IAAI/B,EAAQ6iF,EACZ,OAAO,SAAUE,EAAMC,GACnB,IAAInqE,EAAI,EAAGyH,EAAS,EAAG2iE,EAAqBjjF,EAAMqY,OAIlD,MAAkB,IAAXiI,GAAgBzH,EAAIoqE,EACvB3iE,EAASwiE,EAAKP,YAAYviF,EAAM6Y,GAAvBiqE,CAA2BC,EAAMC,GAC1CnqE,IAEJ,OAAOyH,CACX,CACJ,EACAg6D,2BAA2BzH,GACvB,IAAIqQ,EAAarQ,EAAQ14B,IACrBgpC,EAAkBtQ,EAAQhK,SAC1Bua,EAAwBvQ,EAAQ/J,eAChCua,EAAsBxQ,EAAQ9C,aAC9BuT,EAAoBzQ,EAAQ7C,WAC5BuT,EAAmB1Q,EAAQsK,UAC3BqG,EAAyB3Q,EAAQD,gBACjC6Q,EAA0B5Q,EAAQ5C,iBAClCyT,EAAe7Q,EAAQr/C,MAE3B,IAAK,IAAI3a,EAAI,EAAGA,EAAI9W,KAAKy4E,8BAA8BniE,OAAQQ,IAAK,CAChE,IAAI8qE,EAAQ5hF,KAAKy4E,8BAA8B3hE,GAC3C8qE,EAAMxpC,MAAQ+oC,IACdS,EAAM9a,SAAWsa,EACjBQ,EAAM7a,eAAiBsa,EACvBO,EAAM5T,aAAesT,EACrBM,EAAM3T,WAAasT,EACnBK,EAAMxG,UAAYoG,EAClBI,EAAM/Q,gBAAkB4Q,EACxBG,EAAM1T,iBAAmBwT,EACzBE,EAAMnwD,MAAQkwD,EAEtB,CACJ,EACA1J,kBAAkB/4E,GACd,OAAQc,KAAKs6E,iBAAiBnnE,SAASjU,IAAiB,IAARA,CACpD,GAKJa,UACIC,KAAK84E,MAAQ94E,KAAK+9D,OAAO8jB,OAAOxT,KAAOhtE,OAAOrB,KAAK+9D,OAAO8jB,OAAOxT,MAAQ,EACzE,IAAIpwE,EAAQ+B,KACZ,0BAA4B,SAAU8hF,EAAoBh/B,GACtD7kD,EAAM67E,sBAAwBgI,EAC9B7jF,EAAM87E,uBAAyBj3B,EAC/B7kD,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,gCACbuT,MAAK,SAAUC,GACZtb,EAAM0vE,QAAUp0D,EAAShX,KACzBtE,EAAM0vE,QAAQpoE,KAAK,CAAErG,KAAM,SAAU8kD,WAAY,CAAC,CAAE9kD,KAAM,aAC1DjB,EAAMq8E,iBAAmB/gE,EAAShX,KAAKkG,KAAI60E,GAAKA,EAAEt5B,aAAY2Z,OAAOl1D,KAAI2jC,GAAKA,EAAEltC,OAChFmW,QAAQC,IAAIrX,EAAMq8E,iBACtB,IACCn9D,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,IACApd,KAAKi8E,0BACLj8E,KAAKw5E,8BAAgC,yBACzC,GChqDJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,iECRSv6E,MAAM,U,YAEc,uB,IAIRA,MAAM,gBAAgBM,MAAA,gB,UACJN,MAAM,qCACrBM,MAAA,oC,UACMN,MAAM,qCAAqCM,MAAA,sB,IAChDN,MAAM,mB,YAEP,OACmB,SADZM,MAAA,wBAAwB,E,QAAC,iBAAY,OAAwC,KAArCu1C,KAAK,IAAIv1C,MAAA,gBAAmB,U,QAAS,kB,iBAM5F,OAEM,OAFDN,MAAM,UAAQ,EACf,OAA2E,OAAtEA,MAAM,kBAAkBwF,IAAI,yBAAyBC,IAAI,e,yEAnB9E,QAuBM,MAvBN,GAuBM,EAtBF,QAqBO,GArBDzF,MAAM,QAAM,CACHiuC,OAAK,SAAC,IAEjB,C,MACW+d,SAAO,SACd,IASM,EATN,OASM,MATN,GASM,CARO,EAAQ,W,WAAjB,QAC4C,IAD5C,O,WAEA,QAAkF,IAAlF,MACA,OAIM,MAJN,GAIM,EAHF,OAAsB,mBAAf,EAAAlC,SAAO,GACd,UAKD3gD,QAAM,SACb,IAEM,CAFN,M,QAShB,QACIlJ,KAAM,cACNqD,OACI,MAAO,CACHwmD,QAAS,MACTxB,UAAU,EAElB,EACAxnD,UAEI,OADAsV,QAAQC,IAAItV,KAAK+9D,OAAO/O,MAAMzwC,QACtBve,KAAK+9D,OAAO/O,MAAMzwC,QACtB,IAAK,IACDve,KAAK+oD,QAAU,iBACf/oD,KAAKunD,UAAW,EAChB,MACJ,IAAK,IACDvnD,KAAK+oD,QAAU,0CACf/oD,KAAKunD,UAAW,EAChB,MACJ,IAAK,IACDvnD,KAAK+oD,QAAU,iBACf/oD,KAAKunD,UAAW,EAChB,MACJ,IAAK,IACDvnD,KAAK+oD,QAAU,0CACf/oD,KAAKunD,UAAW,EAChB,MACJ,IAAK,IACDvnD,KAAK+oD,QAAU,qBACf/oD,KAAKunD,UAAW,EAChB,MAEZ,GCrDJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,iECRStoD,MAAM,U,YAMc,kB,IAOCM,MAAO,CAAE2a,QAAS,OAAQ6nE,cAAe,Q,IACrCxiF,MAAO,CAAEM,MAAO,Q,IAgChBN,MAAO,CAAEM,MAAO,Q,IA6EpBZ,MAAM,oBAAoBM,MAAA,uC,YAC5B,OAA0B,KAAvBN,MAAM,gBAAc,W,IA2BdA,MAAM,Y,YAEP,OAEkB,KAFfM,MAAA,oBAAsB,E,QAAC,oBAAe,OACvB,KAD0BA,MAAA,mBAAsB,qB,QAChD,iB,SAsDzBN,MAAM,wB,YACH,kD,IACGA,MAAM,wBAAwBM,MAAA,wB,IAGhCN,MAAM,yB,eAUVA,MAAM,wB,YACH,c,IACGA,MAAM,wBAAwBM,MAAA,wB,IAGhCN,MAAM,yB,eA+DlBA,MAAM,U,sXAnSvB,QAwSM,MAxSN,GAwSM,EAvSF,QAsSO,GAtSDA,MAAM,QAAM,CACH+I,QAAM,SAAjB,IAEW,KAEAklC,OAAK,SAAC,IAEjB,C,MAEW+d,SAAO,SACd,IAoRU,EApRV,QAoRU,GApROqE,YAAa,EAAAA,Y,sCAAA,EAAW,gB,mBACrC,IA2DW,EA3DX,QA2DW,GA3DDtnD,OAAO,cAAY,C,kBACzB,IAyDM,EAzDN,OAyDM,MAzDN,GAyDM,EAxDF,OA+BM,MA/BN,GA+BM,EA9BF,QAS2D,GAT/CzF,KAAM,EAAAy/E,YAAc5wB,QAAS,C,gIASrC7xD,MAAO,CAAEM,MAAO,OAAQC,OAAQ,U,kBACpC,QAS2D,GAT/CyC,KAAM,EAAA0/E,eAAiB7wB,QAAS,C,mIASxC7xD,MAAO,CAAEM,MAAO,OAAQC,OAAQ,U,kBACpC,QAS2D,GAT/CyC,KAAM,EAAA2/E,eAAiB9wB,QAAS,C,yHASxC7xD,MAAO,CAAEM,MAAO,OAAQC,OAAQ,U,oBAExC,OAuBM,MAvBN,GAuBM,EAtBF,QAW0D,GAX/CyC,KAAM,EAAA4/E,kBAAoB/wB,QAAS,C,oJAW1C7xD,MAAO,CAAEM,MAAO,OAAQC,OAAQ,U,kBACpC,QAS2D,GAT/CyC,KAAM,EAAA6/E,oBAAsBhxB,QAAS,C,sIAS7C7xD,MAAO,CAAEM,MAAO,OAAQC,OAAQ,U,+BAIhD,QAiDW,GAjDDkI,OAAO,mBAAiB,C,kBAC9B,IA+CY,EA/CZ,QA+CY,GA/CA7E,MAAO,EAAAk/E,eAAiB1xB,YAAY,EAAMG,aAAa,QAAQF,SAAS,MACxE0xB,YAAa,EAAAC,iB,sCAAA,EAAgB,oBAAG,cAAe,EAAAC,mBACvDjjF,MAAA,gB,mBACA,IAIS,EAJT,QAIS,GAJD0xD,MAAM,WAAWjpD,OAAO,WAAWzI,MAAA,oBAAuB2xD,UAAU,G,CAC7DC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,OAAgC,sBAAtB1uD,EAAK0uD,IAAK,M,OAG5B,QAKS,GALDA,MAAM,YAAYjpD,OAAO,aAAazI,MAAA,oBAAuB2xD,UAAU,G,CAEhEC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAgE,G,WAA5C1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,GAAUhJ,MAAA,gB,uDAGnD,QAKS,GALD0xD,MAAM,WAAWjpD,OAAO,YAAYzI,MAAA,oBAAuB2xD,UAAU,G,CAE9DC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAgE,G,WAA5C1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,GAAUhJ,MAAA,gB,uDAGnD,QAKS,GALD0xD,MAAM,WAAWjpD,OAAO,WAAWzI,MAAA,qB,CAE5B4xD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAgE,G,WAA5C1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,GAAUhJ,MAAA,gB,uDAGnD,QAKS,GALD0xD,MAAM,WAAWjpD,OAAO,WAAWzI,MAAA,qB,CAE5B4xD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAgE,G,WAA5C1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,GAAUhJ,MAAA,gB,uDAGnD,QAKS,GALD0xD,MAAM,QAAQjpD,OAAO,QAAQzI,MAAA,qB,CAEtB4xD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAgE,G,WAA5C1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,GAAUhJ,MAAA,gB,uDAGnD,QAMS,GAND0xD,MAAM,QAAQjpD,OAAO,eAAezI,MAAA,qB,CAE7B4xD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QACuD,GAD5CrrD,GAAG,cAAc1E,KAAK,O,WAAgBqB,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAGwxB,KAAK,kBAC/DjvB,YAAY,kBAAkBj0D,MAAA,gB,uDAG1C,QACS,GADAmjF,WAAW,EAAMnjF,MAAA,iCAAkCojF,UAAU,yB,0DAI9E,QAqCW,GArCD36E,OAAO,aAAW,C,kBACxB,IAIO,EAJP,OAIO,OAJP,GAIO,CAHH,IACA,QACY,G,WADQ,EAAA46E,W,qCAAA,EAAU,cAAEpvB,YAAY,SAASj0D,MAAA,gB,0BAGzD,QAmBY,GAnBA4D,MAAO,EAAAy/E,WAAa,EAAAC,cAAgB,EAAAC,SAAWnyB,YAAY,EACnEG,aAAa,QAAQiyB,cAAA,GAAcxjF,MAAA,gB,mBACnC,IAAiF,EAAjF,QAAiF,GAAzE0xD,MAAM,UAAUjpD,OAAO,UAAUzI,MAAA,oBAAsB2xD,SAAA,MAC/D,QAA+E,GAAvED,MAAM,WAAWjpD,OAAO,OAAOzI,MAAA,oBAAsB2xD,SAAA,MAC7D,QAA6E,GAArED,MAAM,YAAYjpD,OAAO,aAAazI,MAAA,uBAC9C,QAA2E,GAAnE0xD,MAAM,WAAWjpD,OAAO,YAAYzI,MAAA,uBAC5C,QAAoE,GAA5D0xD,MAAM,QAAQjpD,OAAO,QAAQzI,MAAA,uBACrC,QAA2E,GAAnE0xD,MAAM,QAAQjpD,OAAO,eAAezI,MAAA,uBAC5C,QAAmF,GAA3E0xD,MAAM,eAAejpD,OAAO,gBAAgBzI,MAAA,uBACpD,QAAsE,GAA9D0xD,MAAM,SAASjpD,OAAO,SAASzI,MAAA,uBACvC,QAQS,GARDyI,OAAO,GAAGzI,MAAA,sB,CAEHwD,MAAI,SAAEs1D,GAAS,E,SACtB,QAGgC,GAHvBrzD,KAAMqzD,EAAU91D,KAAKylD,SAC1B/oD,MAAM,iDACL,QAAK,IAAE,EAAA+jF,WAAa3qB,EAAU91D,KAAM,EAAA0gF,kBAAkBr7E,EAAO,G,+BACnD,oB,4BAI3B,QAUe,QARAmhD,SAAO,SAAEsP,GAAS,EACzB,OAKM,MALN,GAKM,EAJF,OAAiE,KAA7Dp5D,OAAK,QAAEo5D,EAAUtP,QAAQ/jD,MAAMzF,MAAA,wB,QACnC,Q,gBAsDhB,QA+EW,GA/EDyI,OAAO,aAAW,C,kBACxB,IAcM,EAdN,OAcM,MAdN,GAcM,EAbF,OAGK,W,aAFD,OACuH,IADvH,GACuH,W,GAAxG,yGAEnB,OAOM,MAPN,GAOM,EANF,QACoE,GAD5DnB,MAAM,8DACVtH,MAAA,0BAA8B,QAAO,EAAA2jF,kB,qBACzC,QAGa,GAHA,SAAQ,EAAAC,eACjBt8E,MAAM,wDAAwDyV,OAAO,OACrE/c,MAAA,wCAAyCqG,GAAG,iBAAkB4qD,UAAU,G,uBAG3C,IAAxB,EAAA4yB,uB,WAAb,QAA2E,oBAA/B,EAAAA,sBAAoB,K,kBAEpE,OA8DM,MA9DN,GA8DM,EA7DF,OAGK,W,aAFD,OACkK,IADlK,GACkK,W,GAAnJ,oJAEnB,OAwDM,MAxDN,GAwDM,EAvDF,QACwC,GADhCv8E,MAAM,sCAAsCtH,MAAA,0BAC/C,QAAO,EAAA8jF,mB,qBACZ,QAGa,GAHA,SAAQ,EAAAC,gBAAiBz8E,MAAM,gCACxCyV,OAAO,OAAO/c,MAAA,wCAAyCqG,GAAG,kBACzD4qD,UAAU,G,qBAEuB,IAAzB,EAAA+yB,wB,WAAb,QAA6E,oBAAhC,EAAAA,uBAAqB,K,gBAElE,QA8CY,GA9CApgF,MAAO,EAAAi1C,IAAMuY,YAAY,EAAMG,aAAa,QAAQF,SAAS,MACrE4yB,QAAQ,KAAalB,YAAa,EAAAmB,e,sCAAA,EAAc,kBAC/C,cAAe,EAAAC,uBAAwBnkF,MAAA,gB,mBACxC,IAMS,EANT,QAMS,GAND0xD,MAAM,MAAMjpD,OAAO,OAAOzI,MAAA,sCAC7B2xD,UAAU,G,CAEAC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,OAAgC,sBAAtB1uD,EAAK0uD,IAAK,M,OAG5B,QAOS,GAPDA,MAAM,aAAajpD,OAAO,sBAAsBzI,MAAA,oBACnD2xD,UAAU,G,CAEAC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAC4C,G,WADtB1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAI7+B,IAAK7vB,EAAKsgE,cACzCj2B,IAAKrqC,EAAKugE,cAAeC,YAAA,I,mEAGtC,QAMS,GAND9R,MAAM,gBAAgBjpD,OAAO,sBAAsBzI,MAAA,oBACtD2xD,UAAU,G,CAEAC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAsE,G,WAAhD1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAI7+B,IAAK,EAAIwa,IAAK,IAAMm2B,YAAA,I,uDAGhE,QAMS,GAND9R,MAAM,gBAAgBjpD,OAAO,sBAAsBzI,MAAA,oBACtD2xD,UAAU,G,CAEAC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAAsE,G,WAAhD1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAI7+B,IAAK,EAAIwa,IAAK,IAAMm2B,YAAA,I,uDAGhE,QAWS,GAXD9R,MAAM,aAAajpD,OAAO,+BAC9BzI,MAAA,oBAAuB2xD,UAAU,G,CAEtBC,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QACkB,G,WADI1uD,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAI7+B,IAAK,GAAKwa,IAAK,IAAKw2B,OAAO,IAC3DL,YAAA,I,gDAGGhgE,MAAI,SAAEs1D,GAAS,EACtB,OAA+C,sBAArCA,EAAU91D,KAAK4gE,YAAa,IAAC,M,OAG/C,QAC2C,GADlCuf,WAAW,EAAMnjF,MAAA,iCACtBojF,UAAU,yB,2FAQ3Bv6E,QAAM,SACb,IAEM,EAFN,OAEM,MAFN,GAEM,EADF,QAA6F,GAArFvB,MAAM,QAAQ5H,MAAM,qBAAqBM,MAAA,uBAA2B,QAAO,EAAA6F,Q,qGCpSrG,QAAuD,GAAhD7C,KAAM,EAAAA,KAAO6uD,QAAS,EAAAA,QAAU7xD,OAAK,QAAE,EAAAA,Q,+DAgBhD,eACE,MACA,MACA,MACA,MACA,MACA,KACA,OAGF,QACEL,KAAM,YACNmD,WAAY,CACVshF,KAAI,OAEN1lF,MAAO,CACLsE,KAAMwyD,MACN3D,QAASpyD,OACTO,MAAOP,SC9BX,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,mECNE,QAAsD,GAAhDuD,KAAM,EAAAA,KAAO6uD,QAAS,EAAAA,QAAU7xD,OAAK,QAAE,EAAAA,Q,mCAe/C,eAAiB,MAAe,MAAa,MAAY,MAAO,KAAS,OAEzE,QACEL,KAAM,WACNmD,WAAY,CACVuhF,IAAG,OAEL3lF,MAAO,CACLsE,KAAMwyD,MACN3D,QAASpyD,OACTO,MAAOP,SCrBX,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,UJ4SA,IACIE,KAAM,YACNmD,WAAY,CACRg3D,WAAU,GACVwqB,UAAS,GACTC,SAAQ,IAEZvhF,OACI,MAAO,CACH8/E,eAAgB,GAChBE,iBAAkB,GAElBO,SAAU,GACViB,cAAe,GACfnB,WAAY,GACZI,gBAAY3iE,EAEZ2zC,OAAQ,GACRD,WAAY,GACZjC,kBAAmB,GACnBC,WAAY,GACZ+B,mBAAoB,GACpB+M,iBAAkB,GAElB7c,WAAY,GACZ4c,mBAAoB,GAEpBojB,YAAa,GACbZ,qBAAsB,GAEtBhrC,IAAK,GACLqrC,eAAgB,GAChBn0B,YAAa,EACbi0B,sBAAuB,GAGvBU,YAAa,GACbjC,YAAa,CAAEkC,OAAQ,GAAIC,SAAU,IACrClC,eAAgB,CAAEiC,OAAQ,GAAIC,SAAU,IACxCjC,eAAgB,CAAEgC,OAAQ,GAAIC,SAAU,IACxC/B,oBAAqB,CAAE8B,OAAQ,GAAIC,SAAU,IAC7ChC,kBAAmB,CAAE+B,OAAQ,GAAIC,SAAU,IAEnD,EACA/gF,SAAU,CACV,EACAhD,QAAS,CACLgF,SACIpF,KAAKyF,OAAOO,SAAS,UACrBhG,KAAKsF,QAAQC,KAAK,SACtB,EACAi9E,mBAAmBniF,GACf,IAAI,QAAE08D,EAAO,MAAEtnD,GAAUpV,EACzBL,KAAKqiF,eAAe5sE,GAAS,IAAKzV,KAAKqiF,eAAe5sE,MAAWsnD,GAEjE1nD,QAAQC,IAAItV,KAAKqiF,eAAe5sE,GAAO41C,UACvCh2C,QAAQC,IAAItV,KAAKqiF,eAAe5sE,GAAO03C,MACvC93C,QAAQC,IAAIkwC,GAAavB,QAAQjkD,KAAKqiF,eAAe5sE,GAAO41C,SAAUrrD,KAAKqiF,eAAe5sE,GAAO03C,KAAKtoD,WAAW,IAAK,MACtH,IAAItC,EAAO,IACJvC,KAAKqiF,eAAe5sE,GACvB41C,SAAU7F,GAAavB,QAAQjkD,KAAKqiF,eAAe5sE,GAAO41C,SAAUrrD,KAAKqiF,eAAe5sE,GAAO03C,KAAKtoD,WAAW,IAAK,MAExH7E,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,kBAAmBxD,GAChC+W,MAAK,SAAUC,GAChB,IACC4D,OAAMC,GAAS/H,QAAQC,IAAI8H,IACpC,EACAsmE,uBAAuBrjF,GACnB,IAAI,QAAE08D,EAAO,MAAEtnD,GAAUpV,EACzBL,KAAKo4C,IAAI3iC,GAAS,IAAKzV,KAAKo4C,IAAI3iC,MAAWsnD,GAC3C/8D,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,iBAAkB/F,KAAKo4C,IAAI3iC,IACxC6D,MAAKC,QAEL4D,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,GAE9B,EACAgnE,oBACI,IAAInmF,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,kCACZuT,MAAKC,IACFA,EAAShX,KAAK8qB,SAAQi4B,IAClB,IACIjwC,QAAQC,IAAI,gBAAiBgwC,EAAK+F,UAClCh2C,QAAQC,IAAI,YAAagwC,EAAK6H,MAC9B93C,QAAQC,IAAI,gBAAiBkwC,GAAad,QAAQY,EAAK+F,SAAU/F,EAAK6H,KAAKtoD,WAAW,IAAK,MAC3FygD,EAAK+F,SAAW7F,GAAad,QAAQY,EAAK+F,SAAU/F,EAAK6H,KAAKtoD,WAAW,IAAK,KAC9EwQ,QAAQC,IAAI,gBAAiBgwC,EAAK+F,SAItC,CAFA,MAAOjuC,GACH/H,QAAQC,IAAI8H,EAChB,KAEJnf,EAAMokF,eAAiB9oE,EAAShX,IAAI,GAEhD,EACA8hF,cACI,IAAIpmF,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,4BACZuT,MAAKC,IACFtb,EAAM6kF,SAAWvpE,EAAShX,KAAKkG,KAAI68C,IACxB,IACAA,EACHgC,SAAUhC,EAAKgC,SAASva,QAAQ,cAAe,IAC/Cu3C,aAAcj7B,GAAW9F,cAAc+B,EAAKi/B,aAC5C3iF,OAAQ0jD,EAAK1jD,OAAS,MAAQ,KAC9BomD,SAAU,kBAGlB/pD,EAAMumF,mBAAmB,GAErC,EACAC,iBACI,IAAIxmF,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,sBACZuT,MAAKC,IACFtb,EAAMgmF,YAAc1qE,EAAShX,KAC7BtE,EAAMymF,uBACNzmF,EAAM0mF,qBAAqB,GAEvC,EACA9B,cACI,IAAI+B,EAAc5kF,KAAK4iF,WAAWpnE,cAClC,OAAOxb,KAAK8iF,SAASlqE,QAAO0sC,GACxBA,EAAKiI,SAAS/xC,cAAcrI,SAASyxE,IAClCt/B,EAAKl/C,WAAWoV,cAAcrI,SAASyxE,IACvCt/B,EAAK4I,UAAU1yC,cAAcrI,SAASyxE,IACtCt/B,EAAKuG,OAAOrwC,cAAcrI,SAASyxE,IACnCt/B,EAAK2J,OAAOzzC,cAAcrI,SAASyxE,IAC9C,EACA3B,kBAAkB5iF,GACd,IAAIpC,EAAQ+B,KACZA,KAAK4oD,SAASC,QAAQ,CAClBvoD,OAAQD,EAAMyoD,cACdC,QAAS,+CACT/jD,KAAM,oBACNq6D,YAAa,kBACbrW,OAAQ,KACJ/qD,EAAM4mF,YAAY,EAEtB/9B,OAAQ,QAIhB,EACA+9B,aACI,IAAI5mF,EAAQ+B,KACZqV,QAAQC,IAAIrX,EAAM+kF,YACd/kF,EAAM+kF,aACN/kF,EAAM+kF,WAAWh7B,SAAW,wBAC5B/pD,EAAM4H,MACD8xD,OAAO,GAAG15D,EAAM8H,wBAAwB9H,EAAM+kF,WAAW71B,QACzD7zC,MAAKC,IACF,IAAI9D,EAAQxX,EAAM6kF,SAAS3xD,QAAQlzB,EAAM+kF,YACrCvtE,GAAS,GACTxX,EAAM6kF,SAASjhD,OAAOpsB,EAAO,GAEjCxX,EAAM+kF,WAAWh7B,SAAW,aAAa,IAE5C7qC,OAAOC,IACJ/H,QAAQC,IAAI8H,GACZnf,EAAM+kF,WAAWh7B,SAAW,aAAa,IAGzD,EACAwV,gBACI,IAAIv/D,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,kCACZuT,MAAKC,IACFtb,EAAM+1D,OAASz6C,EAAShX,KACxBtE,EAAM81D,WAAa91D,EAAM+1D,OAAO,GAChC/1D,EAAM61D,mBAAqB71D,EAAM+1D,OAAO,GAAGjC,WAC3C/xD,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,yCACZuT,MAAKC,IACFtb,EAAM6zD,kBAAoBv4C,EAAShX,KACnCtE,EAAM6zD,kBAAkBzkC,SAAQqwC,IAC5BA,EAAG1Z,WAAW32B,SAAQ+e,IAClBA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,IAAI,GACtE,IAELjB,EAAM4H,MACDqN,IAAI,GAAGlT,KAAK+F,uCACZuT,MAAKC,IACFtb,EAAM8zD,WAAax4C,EAAShX,KAC5BtE,EAAM8zD,WAAW1kC,SAAQ0uC,IACrBA,EAAG/X,WAAW32B,SAAQ+e,IAClBA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,IAAI,GACtE,IAELjB,EAAM+1D,OAAO3mC,SAAQy3D,IACjBA,EAAM/yB,WAAa+yB,EAAM/yB,WAAWtpD,KAAIszD,IACpC,IAAI4D,EAAW1hE,EAAM8zD,WAAWn5C,QAAOkJ,GAAKA,EAAE5iB,MAAQ68D,IACtD,GAAI4D,EAASrpD,OAAS,EAClB,OAAOrY,EAAM8zD,WAAWn5C,QAAOkJ,GAAKA,EAAE5iB,MAAQ68D,IAAI,GAEjD,CACD,IAAIgpB,EAAS,CAAE7lF,KAAM68D,EAAI/X,WAAY,IAGrC,OAFA/lD,EAAM8zD,WAAWxsD,KAAKw/E,GACtB9mF,EAAM8zD,WAAW3Q,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAE5iB,KAAOmiD,EAAEniD,KAAQ,GAAK,IAClD6lF,CACX,IACF,IAEN9mF,EAAM4iE,iBAAmB5iE,EAAM8zD,WAAW,GAC1C9zD,EAAM2iE,mBAAqB3iE,EAAM8zD,WAAW,GAAG/N,UAAU,GAC5D,GACR,GAEjB,EACAojB,iBACI,IAAInpE,EAAQ+B,KACZ/B,EAAM4H,MACDqN,IAAI,GAAGjV,EAAM8H,kBACbuT,MAAK,SAAUC,GACZ,IAAI2iD,EAAM,GACV3iD,EAAShX,KAAK8qB,SAAQ+e,IAClBA,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,KAC/DjB,EAAMm6C,IAAI7yC,KAAK6mC,GACf8vB,EAAI32D,KAAK6mC,EAAE,IAEfnuC,EAAMm6C,IAAIgJ,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEs2B,IAAMiJ,EAAEjJ,IAAO,GAAK,IAChDn6C,EAAMm6C,IAAI/qB,SAAQ+e,IACdA,EAAEo4B,UAAYp4B,EAAEo4B,UAAU/7D,KAAI7C,GAAMs2D,EAAItjD,QAAOwzB,GAAKA,EAAExmC,IAAMA,IAAI,KAAIw7C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEs2B,IAAMiJ,EAAEjJ,IAAO,GAAK,IAC1GhM,EAAEi7B,UAAYj7B,EAAEi7B,UAAU5+D,KAAI7C,GAAMs2D,EAAItjD,QAAOwzB,GAAKA,EAAExmC,IAAMA,IAAI,KAAIw7C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEs2B,IAAMiJ,EAAEjJ,IAAO,GAAK,IAC1GhM,EAAEk7B,UAAYl7B,EAAEk7B,UAAU7+D,KAAI7C,GAAMs2D,EAAItjD,QAAOwzB,GAAKA,EAAExmC,IAAMA,IAAI,KAAIw7C,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAEs2B,IAAMiJ,EAAEjJ,IAAO,GAAK,GAAE,GAEpH,IACCj7B,OAAMC,IACH/H,QAAQC,IAAI8H,EAAM,GAE9B,EACA4nE,eACI,IAAI/mF,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,uBACZuT,MAAKC,IACFtb,EAAMm6C,IAAM7+B,EAAShX,IAAI,GAErC,EACA8gF,oBACI,IAAI9gF,EAAO,2SACXvC,KAAKo4C,IAAIgJ,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAElc,GAAKy7C,EAAEz7C,GAAM,GAAK,IAAGynB,SAAQ+e,IACpD7pC,GAAQ,CAAC6pC,EAAExmC,GAAIwmC,EAAEwxB,WAAYxxB,EAAEltC,KAAKiU,SAAS,KAAO,IAAIi5B,EAAEltC,QAAUktC,EAAEltC,KAAMktC,EAAEu1B,WAAYv1B,EAAEy2B,cAAez2B,EAAE02B,cAAe12B,EAAE+2B,WAAY/2B,EAAEm7B,OAAS,OAAS,OAAOztD,KAAK,KAC1KvX,GAAQ,IAAI,IAEhB,IAAI0iF,EAAaC,UAAU3iF,GACvBipD,EAAOjtD,SAASC,cAAc,KAClCgtD,EAAK7X,aAAa,OAAQsxC,GAC1Bz5B,EAAK7X,aAAa,WAAY,0BAC9Bp1C,SAASwE,KAAKpE,YAAY6sD,GAC1BA,EAAKkM,OACT,EACA4rB,gBAAgBrsB,GACZj3D,KAAKujF,sBAAwB,GAC7B,IAAI9iB,EAAe,EACf0kB,EAAgB,EAChBC,EAAmB,EACnBxvC,EAAOqhB,EAAM,GACbh5D,EAAQ+B,KACZ,MAAMo8D,EAAS,IAAIC,WACnBD,EAAOG,OAAS,SAAUl8D,GACtB,IAAIglF,EAAahlF,EAAMC,OAAOie,OAAO1Z,WAAW,KAAM,IACtD,IAAKwgF,EAAWlyE,SAAS,yHAErB,YADAqQ,MAAM,gDAGV,IAAI8hE,EAAgB,GACpB,IAAK,IAAIxuE,EAAI,EAAGA,EAAIuuE,EAAWznE,MAAM,MAAMtH,OAAQQ,IAAK,CACpD,IAAI2Q,EAAO49D,EAAWznE,MAAM,MAAM9G,GAC9BgmD,EAAQr1C,EAAK7J,MAAM,KACvB,GAAIk/C,EAAMxmD,OAAS,EAAG,SACtB,IAAIymD,EAAU,GACVC,EAAW,GACf,IAAK,IAAI5sC,EAAI,EAAGA,EAAI0sC,EAAMxmD,OAAQ8Z,IAC9B,GAAgB,MAAZ0sC,EAAM1sC,GACN2sC,EAAQx3D,KAAK,SAEZ,GAA0B,KAAtBu3D,EAAM1sC,GAAG6sC,OAAO,GAAW,CAGhC,GAFAD,EAASz3D,KAAKu3D,EAAM1sC,IACpBA,IACIA,EAAI0sC,EAAMxmD,OAAS,EAAG,MAC1B,MAA+C,KAAxCwmD,EAAM1sC,GAAG6sC,OAAOH,EAAM1sC,GAAG9Z,OAAS,GAGrC,GAFA0mD,EAASz3D,KAAKu3D,EAAM1sC,IACpBA,IACIA,EAAI0sC,EAAMxmD,OAAS,EAAG,MAE9B0mD,EAASz3D,KAAKu3D,EAAM1sC,IACpB2sC,EAAQx3D,KAAKy3D,EAASljD,KAAK,KAAKihC,UAAU,EAAGiiB,EAASljD,KAAK,KAAKxD,OAAS,IACzE0mD,EAAW,EACf,MAEID,EAAQx3D,KAAKu3D,EAAM1sC,IAG3Bk1D,EAAc//E,KAAK,CACfK,GAAkB,IAAdm3D,EAAQ,IAAY,EAAIvwC,SAASuwC,EAAQ,IAC7Ca,WAAYb,EAAQ,GACpB79D,KAAM69D,EAAQ,GACd4E,WAAYn1C,SAASuwC,EAAQ,IAC7B8F,cAAer2C,SAASuwC,EAAQ,IAChC+F,cAAet2C,SAASuwC,EAAQ,IAChCoG,WAAY32C,SAASuwC,EAAQ,IAC7BwK,OAAsB,QAAdxK,EAAQ,IAExB,CACA1nD,QAAQC,IAAIgwE,GACZA,EAAcj4D,SAAQ41B,UAClB7W,EAAEgM,IAAsB,IAAhBhM,EAAEwxB,WAAmB,GAAGxxB,EAAEwxB,gBAAgBxxB,EAAEltC,OAASktC,EAAEltC,KAC/D,IAAIygE,EAAW1hE,EAAMm6C,IAAIx/B,QAAOkwD,GAAMA,EAAGljE,IAAMwmC,EAAExmC,KAC1B,GAAnB+5D,EAASrpD,aAEHrY,EAAM4H,MACPC,KAAK,GAAG7H,EAAM8H,iBAAkBqmC,GAChC9yB,MAAKC,IACF6yB,EAAExmC,GAAK2T,EAAShX,KAAKqD,GACrB66D,IACAxiE,EAAMslF,sBAAwB,sBAAsB9iB,8BAAyC0kB,8BAA0CC,iBAAgC,IAE1KjoE,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,IAGnBuiD,EAAS,GAAGgC,YAAcv1B,EAAEu1B,YAAchC,EAAS,GAAGkD,eAAiBz2B,EAAEy2B,eAAiBlD,EAAS,GAAGmD,eAAiB12B,EAAE02B,eAAiBnD,EAAS,GAAGwD,YAAc/2B,EAAE+2B,kBAEvKllE,EAAM4H,MACPC,KAAK,GAAG7H,EAAM8H,iBAAkBqmC,GAChC9yB,MAAKC,IACF4rE,IACAlnF,EAAMslF,sBAAwB,sBAAsB9iB,8BAAyC0kB,8BAA0CC,iBAAgC,IAE1KjoE,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,GAE9B,IAEJnf,EAAMm6C,IAAI/qB,SAAQ41B,UACd,IAAI0c,EAAW2lB,EAAc1sE,QAAOkwD,GAAMA,EAAGljE,IAAMwmC,EAAExmC,KAC9B,GAAnB+5D,EAASrpD,cACHrY,EAAM4H,MACP8xD,OAAO,GAAG15D,EAAM8H,qBAAqBqmC,EAAExmC,MACvC0T,MAAKC,IACF6rE,IACAnnF,EAAMslF,sBAAwB,sBAAsB9iB,8BAAyC0kB,8BAA0CC,iBAAgC,IAE1KjoE,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,GAE9B,IAEJnf,EAAMm6C,IAAMktC,CAChB,EACAlpB,EAAOmpB,WAAW3vC,EACtB,EACA4vC,iBACI,IAAIvnF,EAAQ+B,KACZA,KAAK6F,MACAqN,IAAI,GAAGlT,KAAK+F,0BACZuT,MAAKC,IACFtb,EAAM+lF,YAAczqE,EAAShX,IAAI,GAE7C,EACA2gF,mBACI,IAAI3gF,EAAO,+PACXvC,KAAKgkF,YAAY5iC,MAAK,CAACt/B,EAAGu/B,IAAOv/B,EAAElc,GAAKy7C,EAAEz7C,KAAKynB,SAAQ+e,IACnD/2B,QAAQC,IAAI82B,EAAEq5C,QACdpwE,QAAQC,IAAI82B,EAAEq5C,OAAOtyE,SAAS,MAC9B5Q,GAAQ,CACJ6pC,EAAExmC,GACFwmC,EAAEq5C,OAAOtyE,SAAS,KAAO,IAAIi5B,EAAEq5C,UAAYr5C,EAAEq5C,OAC7Cr5C,EAAEs5C,aAAavyE,SAAS,KAAO,IAAIi5B,EAAEs5C,gBAAkBt5C,EAAEs5C,aACzDt5C,EAAEu5C,QAAQxyE,SAAS,KAAO,IAAIi5B,EAAEu5C,WAAav5C,EAAEu5C,QAC/Cv5C,EAAEw5C,cAAczyE,SAAS,KAAO,IAAIi5B,EAAEw5C,iBAAmBx5C,EAAEw5C,eAC7D9rE,KAAK,KACPvX,GAAQ,IAAI,IAEhB,IAAI0iF,EAAaC,UAAU3iF,GACvBipD,EAAOjtD,SAASC,cAAc,KAClCgtD,EAAK7X,aAAa,OAAQsxC,GAC1Bz5B,EAAK7X,aAAa,WAAY,gCAC9Bp1C,SAASwE,KAAKpE,YAAY6sD,GAC1BA,EAAKkM,OACT,EACAyrB,eAAelsB,GACXj3D,KAAKojF,qBAAuB,GAC5B,IAAIyC,EAAc,EACdC,EAAe,EACfC,EAAkB,EACtB,IAAInwC,EAAOqhB,EAAM,GACbh5D,EAAQ+B,KACZ,MAAMo8D,EAAS,IAAIC,WACnBD,EAAOG,OAAS,SAAUl8D,GACtB,IAAIglF,EAAahlF,EAAMC,OAAOie,OAAO1Z,WAAW,KAAM,IACtD,IAAKwgF,EAAWlyE,SAAS,oEAErB,YADAqQ,MAAM,gDAGV,IAAIwiE,EAAe,GACnB,IAAK,IAAIlvE,EAAI,EAAGA,EAAIuuE,EAAWznE,MAAM,MAAMtH,OAAQQ,IAAK,CACpD,IAAI2Q,EAAO49D,EAAWznE,MAAM,MAAM9G,GAC9BgmD,EAAQr1C,EAAK7J,MAAM,KACvB,GAAIk/C,EAAMxmD,OAAS,EAAG,SACtB,IAAIymD,EAAU,GACVC,EAAW,GACf,IAAK,IAAI5sC,EAAI,EAAGA,EAAI0sC,EAAMxmD,OAAQ8Z,IAC9B,GAAgB,MAAZ0sC,EAAM1sC,GACN2sC,EAAQx3D,KAAK,SAEZ,GAA0B,KAAtBu3D,EAAM1sC,GAAG6sC,OAAO,GAAW,CAGhC,GAFAD,EAASz3D,KAAKu3D,EAAM1sC,IACpBA,IACIA,EAAI0sC,EAAMxmD,OAAS,EAAG,MAC1B,MAA+C,KAAxCwmD,EAAM1sC,GAAG6sC,OAAOH,EAAM1sC,GAAG9Z,OAAS,GAGrC,GAFA0mD,EAASz3D,KAAKu3D,EAAM1sC,IACpBA,IACIA,EAAI0sC,EAAMxmD,OAAS,EAAG,MAE9B0mD,EAASz3D,KAAKu3D,EAAM1sC,IACpB2sC,EAAQx3D,KAAKy3D,EAASljD,KAAK,KAAKihC,UAAU,EAAGiiB,EAASljD,KAAK,KAAKxD,OAAS,IACzE0mD,EAAW,EACf,MAEID,EAAQx3D,KAAKu3D,EAAM1sC,IAG3B41D,EAAazgF,KAAK,CACdK,GAAkB,IAAdm3D,EAAQ,IAAY,EAAIvwC,SAASuwC,EAAQ,IAC7C0oB,OAAQ1oB,EAAQ,GAChB2oB,aAAc3oB,EAAQ,GACtB4oB,QAAS5oB,EAAQ,GACjB6oB,cAAe7oB,EAAQ,IAE/B,CACAipB,EAAa34D,SAAQ41B,UACjB,IAAI0c,EAAW1hE,EAAM+lF,YAAYprE,QAAOkwD,GAAMA,EAAGljE,IAAMwmC,EAAExmC,KAClC,GAAnB+5D,EAASrpD,aAEHrY,EAAM4H,MACPC,KAAK,GAAG7H,EAAM8H,yBAA0BqmC,GACxC9yB,MAAKC,IACF6yB,EAAExmC,GAAK2T,EAAShX,KAAKqD,GACrBigF,GAAe,EACf5nF,EAAMmlF,qBAAuB,sBAAsByC,iCAA2CC,iCAA4CC,oBAAkC,IAE/K5oE,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,IAGnBuiD,EAAS,GAAG8lB,QAAUr5C,EAAEq5C,QAAU9lB,EAAS,GAAG+lB,cAAgBt5C,EAAEs5C,cAAgB/lB,EAAS,GAAGgmB,SAAWv5C,EAAEu5C,SAAWhmB,EAAS,GAAGimB,eAAiBx5C,EAAEw5C,qBAEpJ3nF,EAAM4H,MACPC,KAAK,GAAG7H,EAAM8H,yBAA0BqmC,GACxC9yB,MAAKC,IACFusE,GAAgB,EAChB7nF,EAAMmlF,qBAAuB,sBAAsByC,iCAA2CC,iCAA4CC,oBAAkC,IAE/K5oE,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,GAE9B,IAEJnf,EAAM+lF,YAAY32D,SAAQ41B,UACtB,IAAI0c,EAAWqmB,EAAaptE,QAAOkwD,GAAMA,EAAGljE,IAAMwmC,EAAExmC,KAC7B,GAAnB+5D,EAASrpD,cACHrY,EAAM4H,MACP8xD,OAAO,GAAG15D,EAAM8H,6BAA6BqmC,EAAExmC,MAC/C0T,MAAKC,IACFwsE,GAAmB,EACnB9nF,EAAMmlF,qBAAuB,sBAAsByC,iCAA2CC,iCAA4CC,oBAAkC,IAE/K5oE,OAAOC,IACJ/H,QAAQC,IAAI8H,EAAM,GAE9B,IAEJnf,EAAM+lF,YAAcgC,CACxB,EACA5pB,EAAOmpB,WAAW3vC,EACtB,EACA4uC,oBACI,MAAMD,EAAcvkF,KAAK8iF,SAASr6E,KAAIsiE,GAAK1hB,GAAWz9B,QAAQm/C,EAAEwZ,eAC1Dh3B,EAAU,IAAI,IAAIxgC,IAAI/sB,KAAK8iF,SAASr6E,KAAIsiE,GAAKA,EAAExd,YAC/C04B,EAAqB14B,EAAQ9kD,KAAIylB,GAAK,IAAI1O,KAAK7M,KAAKyf,OAAOpyB,KAAK8iF,SAASlqE,QAAOmyD,GAAKA,EAAExd,SAAWr/B,IAAGzlB,KAAIsiE,GAAK1hB,GAAWz9B,QAAQm/C,EAAEwZ,mBACnIpvB,EAAU,IAAI31C,KAAK7M,KAAKyf,OAAOmyD,IAC/BnvB,EAAU,IAAI51C,KAAK7M,KAAKi6B,OAAO23C,IACrC,IAAIL,EAAS,GACTlC,EAAc,GACdkE,EAAmB,GACnBjE,EAAiB,GACjBkE,EAAsB,GACtBC,EAAgB,EAChBC,EAAmB,EACnBC,EAAenxB,EACnB,MAAOmxB,GAAgBlxB,EAAS,CAC5B,MAAMmxB,EAAcl9B,GAAW5F,mBAAmB6iC,GAClDpC,EAAO3+E,KAAKghF,GACZ,MAAMjhC,EAAOtlD,KAAK8iF,SAASlqE,QAAOmyD,GAAK1hB,GAAW5F,mBAAmBsnB,EAAEwZ,eAAiBgC,IAAajwE,OAC/Fi3C,EAAU04B,EAAmBrtE,QAAOm7B,GAAKsV,GAAW5F,mBAAmB1P,KAAOwyC,IAAajwE,OACjG0rE,EAAYz8E,KAAK+/C,GACjB4gC,EAAiB3gF,KAAK+/C,EAAO8gC,GAC7BnE,EAAe18E,KAAKgoD,GACpB44B,EAAoB5gF,KAAKgoD,EAAU84B,GACnCD,EAAgB9gC,EAAO8gC,EACvBC,EAAmB94B,EAAU84B,EAC7BC,EAAahT,SAASgT,EAAa36D,WAAa,EACpD,CACA3rB,KAAKgiF,YAAc,CACfkC,OAAQA,EACRC,SAAU,CAAC,CACPt9E,MAAO,kBACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMy/E,GACP,CACCn7E,MAAO,+BACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAM2jF,KAGdlmF,KAAKiiF,eAAiB,CAClBiC,OAAQA,EACRC,SAAU,CAAC,CACPt9E,MAAO,qBACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAM0/E,GACP,CACCp7E,MAAO,kCACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAM4jF,IAGlB,EACAzB,uBACI,MAAM7gC,EAAY7jD,KAAKikF,YAAYx7E,KAAIsiE,GAAK1hB,GAAWz9B,QAAQm/C,EAAElnB,aAC3DsR,EAAU,IAAI31C,KAAK7M,KAAKyf,OAAOyxB,IAC/BuR,EAAU,IAAI51C,KAAK7M,KAAKi6B,OAAOiX,IACrC,IAAIqgC,EAAS,GACTuC,EAAS,GACT3a,EAAS,GACT4a,EAAU,GACVC,EAAqB,GACrBC,EAAqB,GACrBC,EAAsB,GACtBC,EAAmB,EACnBC,EAAqB,EACrBC,EAAoB,EACpBV,EAAenxB,EACnB,MAAOmxB,GAAgBlxB,EAAS,CAC5B,MAAMmxB,EAAcl9B,GAAW5F,mBAAmB6iC,GAClDpC,EAAO3+E,KAAKghF,GACZ,MAAMU,EAAUjnF,KAAKikF,YAAYrrE,QAAOkvC,GAAKuB,GAAW5F,mBAAmBqE,EAAEjE,aAAe0iC,IAAajwE,OACnG4kD,EAAYl7D,KAAKikF,YAAYrrE,QAAOkvC,GAAKuB,GAAW5F,mBAAmBqE,EAAEjE,aAAe0iC,GAAez+B,EAAEoT,YAAW5kD,OACpHixC,EAAWvnD,KAAKikF,YAAYrrE,QAAOkvC,GAAKuB,GAAW5F,mBAAmBqE,EAAEjE,aAAe0iC,GAAez+B,EAAEP,WAAUjxC,OACxHmwE,EAAOlhF,KAAK0hF,GACZnb,EAAOvmE,KAAK21D,GACZwrB,EAAQnhF,KAAKgiD,GACbo/B,EAAmBphF,KAAK0hF,EAAUH,GAClCF,EAAmBrhF,KAAK21D,EAAY6rB,GACpCF,EAAoBthF,KAAKgiD,EAAWy/B,GACpCF,EAAmBG,EAAUH,EAC7BC,EAAqB7rB,EAAY6rB,EACjCC,EAAoBz/B,EAAWy/B,EAC/BV,EAAahT,SAASgT,EAAa36D,WAAa,EACpD,CACA3rB,KAAKkiF,eAAiB,CAClBgC,OAAQA,EACRC,SAAU,CAAC,CACPt9E,MAAO,UACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMkkF,GACP,CACC5/E,MAAO,YACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMupE,GACP,CACCjlE,MAAO,WACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMmkF,KAGd1mF,KAAKoiF,oBAAsB,CACvB8B,OAAQA,EACRC,SAAU,CAAC,CACPt9E,MAAO,UACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMokF,GACP,CACC9/E,MAAO,YACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMqkF,GACP,CACC//E,MAAO,WACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMskF,IAGlB,EACAlC,sBACI,MAAMuC,EAAY,CACd,oBACA,WACA,UACA,WACA,gBACA,eACA,eACA,eACA,aACA,YACA,WACA,YACA,SACA,YACA,QACA,UACA,WACA,WACF9lC,OACF,IAAIqlC,EAAS,GACT3a,EAAS,GACT4a,EAAU,GACdQ,EAAU75D,SAAQ0mB,IACd0yC,EAAOlhF,KAAKvF,KAAKikF,YAAYrrE,QAAOkvC,GAAKA,EAAE+S,iBAAmB9mB,IAAGz9B,QACjEw1D,EAAOvmE,KAAKvF,KAAKikF,YAAYrrE,QAAOkvC,GAAKA,EAAE+S,iBAAmB9mB,GAAK+T,EAAEoT,YAAW5kD,QAChFowE,EAAQnhF,KAAKvF,KAAKikF,YAAYrrE,QAAOkvC,GAAKA,EAAE+S,iBAAmB9mB,GAAK+T,EAAEP,WAAUjxC,OAAM,IAE1FtW,KAAKmiF,kBAAoB,CACrB+B,OAAQgD,EACR/C,SAAU,CAAC,CACPt9E,MAAO,UACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMkkF,GACP,CACC5/E,MAAO,YACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMupE,GACP,CACCjlE,MAAO,WACP1E,gBAAiB,UACjBqkF,YAAa,UACbjkF,KAAMmkF,IAGlB,GAEJ3mF,UACIC,KAAKokF,oBACLpkF,KAAKqkF,cACLrkF,KAAKykF,iBAELzkF,KAAKonE,iBACLpnE,KAAKwlF,gBAET,GK18BJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,iECRSvmF,MAAM,iB,YAEc,gB,IAURA,MAAM,iB,YACP,OACM,OADDA,MAAM,gBAAc,W,IAEpBA,MAAM,yB,IAKNA,MAAM,yB,IAQNA,MAAM,yB,UASNA,MAAM,oC,IAGNA,MAAM,yB,UAINA,MAAM,oC,IAGNA,MAAM,yB,IAINA,MAAM,yB,YAcX,OAIM,OAJDA,MAAM,gBAAc,EACrB,OAEK,UAFD,yG,iBAIR,OAEuE,OAFlEA,MAAM,eAAeM,MAAA,uBAA0B,2FAEa,K,YACjE,OAEM,OAFDN,MAAM,eAAeM,MAAA,uBAA0B,sJAEpD,K,IAgCiBN,MAAM,iB,YAMP,OAAyC,OAApCA,MAAM,yBAAuB,W,IAWjDA,MAAM,gBAAgBM,MAAA,gB,IAClBN,MAAM,yB,IAMNA,MAAM,yB,UAINA,MAAM,yB,UAINA,MAAM,yB,UAQtB2G,GAAG,iBAAiB3G,MAAM,kB,YAEN,2C,IAIRA,MAAM,iB,IACFA,MAAM,0B,YACP,OACQ,SADDM,MAAA,oCAAqC,oBAC5C,K,IAMCN,MAAM,0B,YACP,OAA8F,SAAvF8rD,IAAI,oBAAoBxrD,MAAA,oCAAqC,sBAAkB,K,IAIrFN,MAAM,0B,YACP,OAAmF,SAA5E8rD,IAAI,kBAAkBxrD,MAAA,oCAAqC,aAAS,K,IAI1EN,MAAM,0B,YACP,OAAuE,SAAhEM,MAAA,oCAAqC,uBAAmB,K,IAG9DN,MAAM,yBACPM,MAAA,2E,UAcfN,MAAM,U,YAEc,0F,sSAjMzB,OAkJM,MAlJN,GAkJM,EAjJF,QAgJO,QA/IQiuC,OAAK,SAAC,IAEb,C,IAAA,QACiG,GADzFloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAK,eAAE,EAAAiwD,SAAS,aAAW,QAAS7oD,SAAU,EAAAA,U,wBAM9EskD,SAAO,SACd,IA6GM,EA7GN,OA6GM,MA7GN,GA6GM,CA5GF,IAEA,OAIM,MAJN,GAIM,CAHY,EAAiB,oB,WAA/B,QAE6D,G,MAF5BpkD,MAAM,gBAAgB7B,KAAK,aAAc,QAAO,EAAAg3C,gBAC7E/8C,MAAM,cAAcM,MAAA,8BACnBoH,UAAW,EAAAwgF,aAAe,EAAAC,gBAAkB,EAAAzgF,U,mDAErD,OAOM,MAPN,GAOM,CANY,EAAiB,oB,WAA/B,QAE2B,G,MAFME,MAAM,iBAAiB7B,KAAK,eACxD,QAAO,EAAAqiF,uBAAwBpoF,MAAM,cAAcM,MAAA,8BACnDoH,SAAU,EAAAA,U,gDACD,EAAiC,oC,WAA/C,QAE2F,G,MAFzCE,MAAO,EAAAygF,iCACrDtiF,KAAK,eAAgB,QAAO,EAAAuiF,0BAA2BtoF,MAAM,cAC7DM,MAAA,qF,gDAER,OAQM,MARN,GAQM,CAPY,EAAiB,oB,WAA/B,QAE2B,G,MAFMsH,MAAM,mBAAmB7B,KAAK,cAC1D,QAAO,EAAAwiF,wBAAyBvoF,MAAM,cAAcM,MAAA,8BACpDoH,SAAU,EAAAA,U,gDAIL,EAAmB,sB,WAH7B,QAGiC,G,MAHxBE,MAAO,EAAA4gF,uBAAwBziF,KAAK,eAAgB,QAAO,EAAA0iF,4BAChEzoF,MAAM,cACNM,MAAA,qF,+CAG4C,EAAgB,mB,WAApE,QAEM,MAFN,GAAsE,iB,yBAGtE,OAGM,MAHN,GAGM,EAFF,QACwD,GAD7C2B,KAAK,O,WAAgB,EAAAimF,W,qCAAA,EAAU,cAAE5+E,UAAA,GAAUhJ,MAAA,eACjDoH,UAAW,EAAAghF,iBAAkBz1B,IAAI,iB,+CAFC,EAAAy1B,oBAIS,EAAgB,mB,WAApE,QAEM,MAFN,GAAsE,uB,yBAGtE,OAGM,MAHN,GAGM,EAFF,QAC4D,GADjDzmF,KAAK,O,WAAgB,EAAAkmF,e,qCAAA,EAAc,kBAAE7+E,UAAA,GAAUhJ,MAAA,eACrDoH,UAAW,EAAAghF,iBAAkBz1B,IAAI,qB,+CAFC,EAAAy1B,qBAI3C,OAKM,MALN,GAKM,CADQ,EAAgB,mB,WAH1B,QAG8B,G,MAHrB9gF,MAAO,EAAA4gF,uBAAwBziF,KAAK,eAAgB,QAAO,EAAA4iF,oBAChE3oF,MAAM,cACNM,MAAA,qF,gDAUR,QAAmB,GACnB,GAKA,GAGA,IAGA,QA4CY,GA5CA4D,MAAO,EAAA0kF,kBAAoBl3B,YAAY,EAAMG,aAAa,OAAOvxD,MAAA,eACzEqxD,SAAS,MAAO,cAAe,EAAAk3B,cAAuBxF,YAAa,EAAAA,Y,sCAAA,EAAW,eAAEvxB,UAAU,UACzFC,UAAW,G,mBAGZ,IAIS,EAJT,QAIS,GAJDC,MAAM,UAAUjpD,OAAO,WAAWzI,MAAA,qB,CAC3B4xD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAA4E,GAAjE/vD,KAAK,O,WAAgBqB,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,GAAUhJ,MAAA,gB,uDAG/D,QAIS,GAJD0xD,MAAM,eAAejpD,OAAO,iB,CACrBmpD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAA4E,GAAjE/vD,KAAK,O,WAAgBqB,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,GAAUhJ,MAAA,gB,uDAG/D,QAIS,GAJD0xD,MAAM,gBAAgBjpD,OAAO,kB,CACtBmpD,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,QAA8E,GAAnE/vD,KAAK,S,WAAkBqB,EAAK0uD,G,yBAAL1uD,EAAK0uD,GAAK,EAAG1oD,UAAA,GAAUhJ,MAAA,gB,uDAKjE,QAoBS,GApBD0xD,MAAM,gBAAgBjpD,OAAO,yC,CACtBjF,MAAI,SAAEs1D,GAAS,EACtB,OAIM,c,aAHF,QAEW,mBAFsBA,EAAU91D,KAAKm9C,eAA/ByC,K,WACb,QAA8C,oBAAtCA,EAAa1C,kBAAgB,M,WAItC0R,QAAM,SACb,EADiB5uD,OAAM0uD,WAAK,EAC5B,OASM,MATN,GASM,EARF,QAE2B,G,WAFT,EAAA82B,qB,qCAAA,EAAoB,wBAAG32B,QAAS7uD,EAAK0uD,GACnDK,YAAY,mBAAmBoT,aAAa,kBAC5CzlE,MAAM,gB,kCACV,QACuE,GAD/D4H,MAAM,MAAM5H,MAAM,wBAAwBM,MAAA,gBAC7C,QAAK,IAAE,EAAAyoF,wBAAyB,EAAM,EAAAC,WAAa1lF,I,oBACxD,IACA,QACiF,GADzEsE,MAAM,SAAS5H,MAAM,wBAAwBM,MAAA,gBAChDoH,UAAW,EAAAohF,qBAAuB,QAAK,GAAE,EAAAG,mBAAmB3lF,I,2CAI7E,QAAyF,GAAhFmgF,WAAW,EAAMnjF,MAAA,qBAAwBojF,UAAU,yB,qDAI7Dv6E,QAAM,SACb,IAmBM,EAnBN,OAmBM,MAnBN,GAmBM,EAlBF,OAKM,MALN,GAKM,CAH0B,IAAlB,EAAAksD,gB,WADV,QACyE,G,MADjE1uD,GAAG,iBAAiBiB,MAAM,WAAW7B,KAAK,eAAgB,QAAO,EAAAgnE,oBAC1CzsE,MAAA,eAAoBoH,SAAU,EAAAA,U,gDAEjC,IAAlB,EAAA2tD,gB,WADV,QACyE,G,MADjE1uD,GAAG,eAAeiB,MAAM,SAAS7B,KAAK,oBAAqB,QAAO,EAAAgnE,oBAC3CzsE,MAAA,eAAoBoH,SAAU,EAAAA,U,mDAEjE,OAGM,MAHN,GAGM,EAFF,QAC8C,GADtCf,GAAG,cAAciB,MAAM,kBAAkB7B,KAAK,cAAe,QAAO,EAAAinE,eACxE1sE,MAAA,eAAoBoH,SAAU,EAAAA,U,iCAEI,EAAAwhF,e,4BAA1C,QAGM,MAHN,GAGM,EAFF,QAC8C,GADtCviF,GAAG,aAAaiB,MAAM,iBAAiB7B,KAAK,aAAc,QAAO,EAAAknE,WACrE3sE,MAAA,eAAoBoH,SAAU,EAAAA,U,kCAEG,EAAa,gB,WAAtD,QAGM,MAHN,GAGM,EAFF,QAC2B,GADnBE,MAAM,mBAAmB7B,KAAK,wBAAwBzF,MAAA,eACzDoH,SAAU,EAAAA,U,qDAMmB,EAAsB,yB,WAA5E,QA2CM,MA3CN,GA2CM,EA1CF,QAyCO,QAxCQumC,OAAK,SAAC,IAEjB,C,MACW+d,SAAO,SACd,IAiCM,EAjCN,OAiCM,MAjCN,GAiCM,EAhCF,OAOM,MAPN,GAOM,CANF,IAEA,QAGW,GAHDrlD,GAAG,mB,WAA4B,EAAAwiF,gBAAgBlpF,K,qCAAhB,EAAAkpF,gBAAoB,QACxDh3B,QAAS,EAAAxN,QAAQka,uBAAwBxM,YAAY,OAAOC,YAAY,OACzEhyD,MAAA,kD,oCAGR,OAIM,MAJN,GAIM,CAHF,IACA,QAC4B,GADlBqG,GAAG,oB,WAA6B,EAAAwiF,gBAAgBv8D,U,qCAAhB,EAAAu8D,gBAAyB,aAAGh0B,UAAU,EAAMn1D,MAAM,SACxFo1D,WAAW,Y,0BAEnB,OAIM,MAJN,GAIM,CAHF,IACA,QAC4B,GADlBzuD,GAAG,kB,WAA2B,EAAAwiF,gBAAgBt8D,Q,qCAAhB,EAAAs8D,gBAAuB,WAAGh0B,UAAU,EAAMn1D,MAAM,SACpFo1D,WAAW,Y,0BAEnB,OAGM,MAHN,GAGM,CAFF,IACA,QAAgG,GAAnFzuD,GAAG,oB,WAA6B,EAAAwiF,gBAAgBjmC,a,qCAAhB,EAAAimC,gBAA4B,gBAAE7oF,MAAA,gB,0BAE/E,OAMM,MANN,GAMM,EAJF,QAC+B,GADvBqG,GAAG,YAAYiB,MAAM,MAAM5H,MAAM,mBAAmBM,MAAA,6BACvD,QAAO,EAAA8oF,iB,qBACZ,QAC+E,GADvEziF,GAAG,iBAAiBiB,MAAM,QAAQ5H,MAAM,mBAC3C,QAAK,eAAE,EAAA+oF,wBAAyB,GAAOzoF,MAAA,sC,yBAUtC,EAAS,Y,WAAnC,QASM,MATN,GASM,EARF,QAOO,GAPDA,MAAA,iBAAmB,CACV2tC,OAAK,SAAC,IAEjB,C,MACW+d,SAAO,SACd,IAA8E,EAA9E,QAA8E,GAAtE1rD,MAAA,gBAAoBsH,MAAM,QAAS,QAAK,iBAAE,EAAAyhF,WAAY,Q,8BAS9E,QACIppF,KAAM,gBACNqD,OACI,MAAO,CACHqhD,QAAS5jD,KAAK8/D,oBAEdxQ,YAAa,EACb2b,WAAW,EACXrM,OAAQ,oBACRpS,WAAY,aACZmf,YAAa,SAEb5G,iBAAkB,GAClByG,YAAa,GAEbgJ,MAAO,GACP7oB,SAAS,EAET2I,cAAe,EAEf7rD,IAAK,KAEL8/E,gBAAiB,GACjBC,cAAe,KACfC,YAAa,KACbC,cAAe,EACfC,SAAU,GAEVC,aAAc,GACdC,WAAY,GACZC,SAAS,EAETjB,kBAAmB,GACnBvF,YAAa,GACb2F,WAAY,KACZF,qBAAsB,KACtBC,wBAAwB,EACxBI,gBAAiB,CACblpF,KAAM,GACN2sB,UAAW,KACXC,QAAS,KACTq2B,aAAc,EACd1C,iBAAkB,IAGtBspC,mCAAmC,EACnCpB,kBAAkB,EAClBqB,qBAAqB,EACrBC,uCAAwC,OACxCC,6BAA8B,OAC9BC,gCAAiC,OAEjChC,WAAY,GACZC,eAAgB,GAEhBe,eAAe,EAEfG,WAAW,EAEnB,EACAllF,SAAU,CACN+jD,aACI,OAAOnnD,KAAKyF,OAAOC,QAAQC,eAAeyhD,QAC9C,EACAgiC,iBACI,OAAIppF,KAAK8oF,QACE,OAGA,OAEf,EACAO,oBACI,OAAkD,IAA3CrpF,KAAK+oF,oCAAyE,IAA1B/oF,KAAK2nF,mBAA2D,IAA7B3nF,KAAKgpF,mBACvG,EACA1B,mCACI,OAAOtnF,KAAKipF,sCAChB,EACAxB,yBACI,OAAOznF,KAAKkpF,4BAChB,EACAI,4BACI,OAAOtpF,KAAKmpF,+BAChB,EACAxiF,WACI,OAAO3G,KAAKmoF,gBAAkBnoF,KAAKqpF,mBAAqBrpF,KAAKsiF,YAAYhsE,OAAS,CACtF,GAEJlW,QAAS,CACL0/D,oBACI,OAAO9/D,KAAKyF,OAAOC,QAAQC,cAC/B,EACA6pD,QACQxvD,KAAK6nF,kBAAkBvxE,OACvBtW,KAAKksE,aAGL,yCAA4ClsE,KAAK6nF,mBAAmB,EAAO,MAAM,GAErF7nF,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACA0tB,0BACI,oCACJ,EACA3J,aACI,IAAIjuE,EAAQ+B,KACZ/B,EAAMkqF,eAAgB,EACjBlqF,EAAM4pF,kBAAkBvxE,OASzB,yCAA4CtW,KAAK6nF,mBAAmB,GAAM,WACtE5pF,EAAMkqF,eAAgB,EACtBlqF,EAAMqH,QAAQynC,QAAQ,CAAEob,KAAM,KAClC,IAXA,oCAAsC,WAAclqD,EAAMsrF,iBAAkB,IAAG,WAC3E,yCAA4CtrF,EAAM4pF,mBAAmB,GAAM,WACvE5pF,EAAMkqF,eAAgB,EACtBlqF,EAAMqH,QAAQynC,QAAQ,CAAEob,KAAM,KAClC,GACJ,GAQR,EACAlnC,cACI,IAAIhjB,EAAQ+B,KACZ/B,EAAMkqF,eAAgB,EACtB,yCAA4CnoF,KAAK6nF,mBAAmB,GAAM,WACtE5pF,EAAMkqF,eAAgB,EACtB,oCAAsC,WAAclqF,EAAMsrF,iBAAkB,IAAG,WAActrF,EAAMsrF,iBAAkB,GACzH,GACJ,EACAtd,iBACI,IAAIhuE,EAAQ+B,KACZ,oCAAsC,WAClC/B,EAAM4pF,kBAAoB,yBAC9B,GACJ,EACA7b,sBAC+B,IAAvBhsE,KAAKs0D,eACLt0D,KAAKs0D,cAAgB,EACrB,6CAGAt0D,KAAKs0D,cAAgB,EACrB,yCAER,EACAwzB,cAAcznF,GACV,IAAI,QAAE08D,GAAY18D,EAClBL,KAAK6nF,kBAAkB7nF,KAAK6nF,kBAAkBp/E,KAAIq/C,GAAKA,EAAEliD,KAAIurB,QAAQ4rC,EAAQn3D,KAAOm3D,CACxF,EACAsrB,kBACIroF,KAAKioF,WAAWvoC,cAAcn6C,KAAK,IAC5BvF,KAAKooF,gBACR3oC,iBAAkBz/C,KAAKwpF,oBAAoBxpF,KAAKooF,mBAEpDpoF,KAAKgoF,wBAAyB,CAClC,EACAE,mBAAmB3lF,GACfA,EAAKm9C,cAAgBn9C,EAAKm9C,cAAc9mC,QAAOsV,GAAKA,EAAEuxB,kBAAoBz/C,KAAK+nF,qBAAqBtoC,mBACpGz/C,KAAK+nF,qBAAuB,IAChC,EACAyB,oBAAoBrnC,GAChB,MAAO,GAAGA,EAAajjD,QAAQijD,EAAat2B,aAAas2B,EAAar2B,YAAYq2B,EAAaA,cACnG,EACAsnC,WAAWnjD,GAKP,OAJAtmC,KAAK+oF,mCAAoC,EACzC/oF,KAAK2nF,kBAAmB,EACxB3nF,KAAKgpF,qBAAsB,EAEnB1iD,GACJ,KAAK,EACDtmC,KAAK0pF,oBAAqB,EAC1B,MACJ,KAAK,EACD1pF,KAAK2pF,uBAAwB,EAC7B,MACJ,KAAK,EACD3pF,KAAK4pF,4BAA6B,EAClC,MACJ,KAAK,EACD5pF,KAAK+oF,mCAAoC,EACzC,MACJ,KAAK,EACD/oF,KAAK2nF,kBAAmB,EACxB,MACJ,KAAK,EACD3nF,KAAKgpF,qBAAsB,EAC3B,MACJ,SAER,EACAa,kBAAkBp0E,EAAOq0E,GACP,IAAVr0E,EACAzV,KAAK+pF,kCAAoCD,EAE1B,IAAVr0E,EACLzV,KAAKgqF,qCAAuCF,EAE7B,IAAVr0E,EACLzV,KAAKiqF,uCAAyCH,EAE/B,IAAVr0E,EACLzV,KAAKipF,uCAAyCa,EAE/B,IAAVr0E,EACLzV,KAAKkpF,6BAA+BY,EAErB,IAAVr0E,IACLzV,KAAKmpF,gCAAkCW,EAG/C,EAEAzC,yBACIrnF,KAAKypF,WAAW,GAChB,yCAA4CzpF,KAAK6nF,mBAAmB,GACpE,yBAA4B7nF,KAAKo7C,eACjC/lC,QAAQC,IAAI,2BAChB,EACAiyE,4BACI,IAAItpF,EAAQ+B,KACZ,MAAMo/C,EAAyB,4BAC/Bp/C,KAAK6pF,kBAAkB,EAAG,8BAC1B,iCAAmC,WAC/B5rF,EAAMgjB,cACNhjB,EAAM4rF,kBAAkB,EAAG,QAC3B5rF,EAAMwrF,YAAY,GAClBxrF,EAAMqqF,UAAYlpC,CACtB,GACJ,EAEApD,kBACIh8C,KAAKypF,WAAW,GAChB,yCAA4CzpF,KAAK6nF,mBAAmB,GACpE,mBAAsB7nF,KAAK4jD,QAAQh+C,GAAI5F,KAAKw7D,MAAM0uB,cAAelqF,KAAKw7D,MAAM2uB,kBAChF,EACAvC,sBACI,IAAI3pF,EAAQ+B,KACZA,KAAK6pF,kBAAkB,EAAG,8BAC1B,2BAA6B,WACzB5rF,EAAMgjB,cACNhjB,EAAM4rF,kBAAkB,EAAG,QAC3B5rF,EAAMwrF,YAAY,EACtB,IACAzpF,KAAKmnF,WAAa,IAAI9lF,OAAOrB,KAAKmnF,WAAWp6C,QAAQ,IAAK,KAAO,GACrE,EAEAy6C,0BACIxnF,KAAKypF,WAAW,GAChB,yCAA4CzpF,KAAK6nF,mBAAmB,GACpE,oBACJ,EACAH,8BACI,IAAIzpF,EAAQ+B,KACZ,MAAMq/C,EAA2B,8BACjCr/C,KAAK6pF,kBAAkB,EAAG,8BAC1B,0BAA6B7pF,KAAK4jD,QAAQh+C,GAAI3H,EAAMm9C,eAAe,WAC/Dn9C,EAAMgjB,cACNhjB,EAAM4rF,kBAAkB,EAAG,QAC3B5rF,EAAMwrF,YAAY,GAClBxrF,EAAMqqF,UAAYjpC,CACtB,GACJ,EACAkqC,kBACI,IAAItrF,EAAQ+B,KACZ/B,EAAM4pF,kBAAoB,0BAC1B7nF,KAAKmnF,WAAa,IAAIx0E,KAAKi6B,OAAO5sC,KAAK6nF,kBAAkBp/E,KAAIq/C,GAAKzmD,OAAOymD,EAAEtI,QAAUsI,EAAEtI,QAAQzS,QAAQ,IAAK,IAAM,OAAMn0B,QAAO6f,GAAKA,KAAM,GAC9I,EACA2iB,cAAcnoC,GACV,IAAIhV,EAAQ+B,KACRiT,EAAQC,IAAI,eACZlT,KAAK6F,MACAC,KAAK,GAAG9F,KAAK+F,oCAAqC,CAAC,CAChDH,GAA8B,iBAAnBqN,EAAQkC,QAAsBlC,EAAQkC,QAAQ43B,QAAQ,oBAAqB,IAAM95B,EAAQkC,QACpGyH,UAAW3e,EAAMwH,OAAOC,QAAQy/C,UAChC8pB,KAAMh8D,EAAQC,IAAI,cAAc,GAChCg8D,KAAMj8D,EAAQC,IAAI,cAAc,GAChCgS,EAAGjS,EAAQ6C,cAAcgC,iBAAiB,GAC1CqN,EAAGlS,EAAQ6C,cAAcgC,iBAAiB,GAC1CsyE,UAAW,2BAA8Bj3E,SAASF,EAAQrN,IAC1D2uB,QAASthB,EAAQC,IAAI,YAAc,GACnCstB,aAAcvtB,EAAQC,IAAI,iBAAmBD,EAAQC,IAAI,cAAgB,MAE5EiK,OAAMC,IAAW/H,QAAQC,IAAI8H,EAAK,GAE/C,GAEJo8C,cACIx5D,KAAKyI,IAAM,iBACf,EACA1I,UACI,iCACA,mCAAsCC,KAAKupF,iBAC3CvpF,KAAK6nF,kBAAoB,0BACrB7nF,KAAK4jD,QAAQka,uBAAuBxnD,OAAS,IAC7CtW,KAAKooF,gBAAgBlpF,KAAOc,KAAK4jD,QAAQka,uBAAuB,GAAG5+D,MAEvEc,KAAKooF,gBAAgBv8D,UAAY7rB,KAAK4jD,QAAQ32B,iBAC9CjtB,KAAKooF,gBAAgBt8D,QAAU9rB,KAAK4jD,QAAQz2B,eAC5C9X,QAAQC,IAAItV,KAAK6nF,mBACjB7nF,KAAKmnF,WAAa,IAAIx0E,KAAKi6B,OAAO5sC,KAAK6nF,kBAAkBp/E,KAAIq/C,GAAKzmD,OAAOymD,EAAEtI,QAAUsI,EAAEtI,QAAQzS,QAAQ,IAAK,IAAM,OAAMn0B,QAAO6f,GAAKA,KAAM,GAC9I,GCrfJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,UCRSx5B,MAAM,Y,YAEc,qC,IAEb,OAAwI,KAArIA,MAAM,eAAc,iHAA6G,G,IAK/HA,MAAM,iB,IAQP,OAAoD,OAA/CA,MAAM,oCAAkC,S,yFAjB7D,QAyBM,MAzBN,GAyBM,EAxBF,QAuBO,GAvBDM,MAAA,iBAAmB,CACV2tC,OAAK,SAAC,IAEb,C,GAAA,MAIO+d,SAAO,SACd,IAaM,EAbN,OAaM,MAbN,GAaM,CARwE,GAAvB,EAAAo/B,sB,WADnD,QACmF,G,MAD3EzkF,GAAG,aAAaiB,MAAM,OAAO7B,KAAK,eAAgB,QAAO,EAAAslF,gBAC7DrrF,MAAM,oC,qCAEyC,EAAmB,sB,WADtE,QAC0E,G,MADlE2G,GAAG,aAAciB,MAAO,EAAA0jF,sBAAuBvlF,KAAK,cAAe,QAAO,EAAAwlF,gBAC9EvrF,MAAM,oC,6CACV,IACA,QAC+C,GADvC2G,GAAG,cAAciB,MAAM,QAAQ7B,KAAK,cAAe,QAAO,EAAAylF,UAC9DxrF,MAAM,oC,iCAY9B,QACIsD,OACI,MAAO,CACH8nF,qBAAqB,EACrBK,eAAgB,OAExB,EACAtnF,SAAU,CACNmnF,wBACI,OAAOvqF,KAAK0qF,cAChB,GAEJtqF,QAAS,CACLuqF,sBAAsBb,GAClB9pF,KAAK0qF,eAAiBZ,CAC1B,EACAL,WAAWnjD,GAGP,OAFAtmC,KAAKqqF,qBAAsB,EAEnB/jD,GACJ,KAAK,EACDtmC,KAAKqqF,qBAAsB,EAC3B,MACJ,SAER,EACAC,kBACItqF,KAAKypF,WAAW,GAChB,qBACJ,EACAe,kBACIxqF,KAAK2qF,sBAAsB,iBAC3B,6BAEA,IAAIC,EAAO5qF,KAEX6C,YAAW,WACP,IAAiD,IAA7C,sCACA+nF,EAAKD,sBAAsB,QAC3BC,EAAKnB,YAAY,OAEhB,CACD,IAAIoB,EAAQD,EACZv1E,QAAQC,IAAI,QACZzS,YAAW,WACP,IAAiD,IAA7C,sCACAgoF,EAAMF,sBAAsB,QAC5BE,EAAMpB,YAAY,OAEjB,CACD,IAAIqB,EAAQD,EACZx1E,QAAQC,IAAI,WACZzS,YAAW,WACP,IAAiD,IAA7C,sCACAioF,EAAMH,sBAAsB,QAC5BG,EAAMrB,YAAY,OAEjB,CACD,IAAIsB,EAAQD,EACZz1E,QAAQC,IAAI,WACZzS,YAAW,YAC0C,IAA7C,uCACAkoF,EAAMJ,sBAAsB,QAC5BI,EAAMtB,YAAY,IAGlBp0E,QAAQC,IAAI,UAEpB,GAAG,IACP,CACJ,GAAG,IACP,CACJ,GAAG,IACP,CACJ,GAAG,IAEP,EACAm1E,YACI,uBACAzqF,KAAKypF,YAAY,GACjBzpF,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,IC1GR,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,yECNyB,uB,IAMRlpD,MAAM,iB,YACP,OAEM,OAFDA,MAAM,yBAAuB,EAC9B,OAAyB,aAAlB,gB,SAENA,MAAM,yB,YAGX,OAEM,OAFDA,MAAM,yBAAuB,EAC9B,OAA6B,aAAtB,oB,SAENA,MAAM,yB,gMAlBvB,QAAkD,GAApCi5B,IAAK,EAAA6lC,OAAOuZ,aAC1B,QAwCO,GAxCDr4E,MAAM,QAAM,CACHiuC,OAAK,SAAC,IAEb,C,IAAA,QACuD,GAD/CloC,KAAK,cAAc/F,MAAM,oDAC7BM,MAAA,gCAAmC,QAAO,EAAAiwD,O,uBAEvCvE,SAAO,SACd,IAaM,EAbN,OAaM,MAbN,GAaM,CAZF,IAGA,OAEM,MAFN,GAEM,EADF,OAAgD,sBAAtC,EAAAr6C,oBAAoB2jB,SAAO,KAEzC,IAGA,OAEM,MAFN,GAEM,EADF,OAAqD,sBAA3C,EAAA3jB,oBAAoB4jB,cAAY,QAGlD,QAiBY,GAjBArxB,MAAO,EAAAyN,oBAAoBo6E,kBAAoBr6B,YAAY,EAAMG,aAAa,OACtFC,UAAU,OAAQC,UAAW,G,mBAC7B,IAIS,EAJT,QAIS,GAJDC,MAAM,OAAOjpD,OAAO,OAAQkpD,UAAU,G,CAC/BnuD,MAAI,SAAEs1D,GAAS,EACtB,OAAmD,sBAAzC,EAAA2Z,YAAY3Z,EAAU91D,KAAKqD,KAAE,M,OAG/C,QAIS,GAJDqrD,MAAM,WAAWjpD,OAAO,eAAgBkpD,UAAU,G,CAC3CnuD,MAAI,SAAEs1D,GAAS,EACtB,OAAuD,sBAA7CA,EAAU91D,KAAKy0B,SAASzjB,QAAQ,IAAD,M,yCAgBjE,QACIhR,OACI,MAAO,CACHqhD,QAAS5jD,KAAK8/D,oBACdlvD,oBAAqB,CAAC,EAE9B,EACAxN,SAAU,CACV,EACAhD,QAAS,CACL0/D,oBACI,OAAO9/D,KAAKyF,OAAOC,QAAQC,cAC/B,EACAqsE,YAAYlpC,GACR,OAAO9oC,KAAK4jD,QAAQ5K,MAAMpgC,QAAOub,GAAKA,EAAEvuB,IAAMkjC,IAAQ,GAAG5pC,IAC7D,EACAswD,QACIxvD,KAAKsF,QAAQynC,QAAQ,CAAEob,KAAM,KACjC,EACA8iC,YAAYhsE,GAERjf,KAAK4Q,oBAAsB,4BAA+BqO,GAC1Djf,KAAK4Q,oBAAoBo6E,kBAAoB,GAC7ChsF,OAAOs8B,KAAKt7B,KAAK4Q,qBAAqBgI,QAAOsf,IAAQ,CAAC,cAAe,kBAAmB,aAAc,UAAW,eAAgB,qBAAqB/kB,SAAS+kB,KAAM7K,SAAQ6K,IACzKl4B,KAAK4Q,oBAAoBo6E,kBAAkBzlF,KAAK,CAAEK,GAAIsyB,EAAKlB,SAAUh3B,KAAK4Q,oBAAoBsnB,GAAKjS,kBAAkB,IAEzH5Q,QAAQC,IAAItV,KAAK4Q,oBACrB,GAGJq2E,UACIjnF,KAAKirF,YAAYjrF,KAAK+9D,OAAO8jB,OAAO5iE,WACxC,EACA03C,UACI32D,KAAKirF,YAAYjrF,KAAK+9D,OAAO8jB,OAAO5iE,WACxC,GC5EJ,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,UCaA,SAASrY,GAAkBskF,EAAIC,EAAMC,GAC/BC,GAAM3lF,QAAQC,gBAAgBC,GAChCwlF,IAEAA,EAAK,IAET,CAEA,MAAME,GAAS,CAMb,CACEnjC,KAAM,IACNjpD,KAAM,OACNlB,UAAWutF,GACX/0B,SAAU,CACR,CACErO,KAAM,SACNjpD,KAAM,QACNlB,UAAW,IAEb,CACEmqD,KAAM,YACNjpD,KAAM,WACNlB,UAAW,IAEb,CACEmqD,KAAM,gBACNjpD,KAAM,eACNlB,UAAW,GACXwtF,YAAa5kF,IAEf,CACEuhD,KAAM,eACNjpD,KAAM,cACNlB,UAAW,GACXwtF,YAAa5kF,IAEf,CACEuhD,KAAM,YACNjpD,KAAM,WACNlB,UAAW,GACXwtF,YAAa5kF,IAEf,CACEuhD,KAAM,aACNjpD,KAAM,YACNlB,UAAW,GACXwtF,YAAa5kF,IAEf,CACEuhD,KAAM,YACNjpD,KAAM,WACNlB,UAAW,IAEb,CACEmqD,KAAM,WACNjpD,KAAM,UACNlB,UAAW,IAEb,CACEmqD,KAAM,SACNjpD,KAAM,SACNlB,UAAW,IAEb,CACEmqD,KAAM,UACNjpD,KAAM,SACNlB,UAAW,GACXwtF,YAAa5kF,IAEf,CACEuhD,KAAM,cACNjpD,KAAM,aACNlB,UAAW,GACXwtF,YAAa5kF,IAEf,CACEuhD,KAAM,oBACNjpD,KAAM,aACNlB,UAAW,GACXwtF,YAAa5kF,IAEf,CACEuhD,KAAM,UACNjpD,KAAM,YACNlB,UAAWytF,GACXD,YAAa5kF,IAEf,CACEuhD,KAAM,gCACNjpD,KAAM,mBACNlB,UAAW0tF,GACXF,YAAa5kF,MAInB,CACEuhD,KAAM,SACNjpD,KAAM,QACNlB,UAAW2tF,IAEb,CACExjC,KAAM,SACNjpD,KAAM,QACNlB,UAAW4tF,IAEb,CACEzjC,KAAM,gBACNjpD,KAAM,UACNlB,UAAW6tF,IAEb,CACE1jC,KAAM,SACNjpD,KAAM,QACNlB,UAAW8tF,KAcTC,IAAS,QAAa,CAC1B5c,SAAS,UACTmc,YAGF,U,yYC7JI,GAAS,CACTpsF,KAAM,kBACNoD,MAAO,CAAC,2BAA4B,SAAU,sBAAuB,aACrErE,MAAO,CACH2H,GAAI,CACA1E,KAAMC,OACNC,QAAS,MAEb7B,MAAO,KACPN,MAAO,KACP4oE,MAAO,CACH3mE,KAAM6zD,MACN3zD,QAAS,MAEbmrE,SAAU,CACNrrE,KAAM,CAACG,OAAO0zD,OACd3zD,QAAS,GAEb0vD,aAAc,KACd+gB,YAAa,KACbma,YAAa,CACT9qF,KAAMC,OACNC,QAAS,YAEb6qF,kBAAmB,CACf/qF,KAAMG,OACND,QAAS,MAEb8qF,MAAO,CACHhrF,KAAMG,OACND,QAAS,GAEbquD,KAAM,CACFvuD,KAAMW,QACNT,SAAS,GAEbuF,SAAU,CACNzF,KAAMW,QACNT,SAAS,GAEb+qF,eAAgB,CACZjrF,KAAMW,QACNT,SAAS,GAEb6kE,QAAS,CACL/kE,KAAM6zD,MACN3zD,QAAS,MAEbuqD,QAAS,CACLzqD,KAAMW,QACNT,SAAS,GAEbgrF,WAAY,CACRlrF,KAAMW,QACNT,SAAS,GAEborE,WAAY,CACRtrE,KAAMW,QACNT,SAAS,IAGjBmB,OACI,MAAO,CACH8pF,MAAOrsF,KAAKssF,SAAW,CAAEt8B,KAAM,EAAGu8B,KAAM,GAAM,EAC9CC,KAAMxsF,KAAKssF,SAAW,CAAEt8B,KAAM,EAAGu8B,KAAM,GAAM,EAC7CE,mBAAoBzsF,KAAKssF,SAAW,CAAEt8B,KAAM,EAAGu8B,KAAM,GAAM,EAC3DG,cAAe1sF,KAAKssF,SAAW,CAAEK,IAAK,EAAGC,KAAM,GAAM,EACrDC,oBAAqB7sF,KAAKisF,kBAC1Ba,UAAW9sF,KAAK2rD,QAChBohC,UAAW,GACXC,YAAa,CAAC,EACdC,aAAc,CAAC,EAEvB,EACA78C,QAAS,KACT6a,QAAS,KACTyhC,cAAe,KACfQ,cAAe,KACfntF,UACIC,KAAKmtF,OAELntF,KAAK0sF,cAAgB1sF,KAAKssF,SAAW,CAAEK,IAAK,EAAGC,KAAM,GAAM,CAC/D,EACA1pF,MAAO,CACH+oF,kBAAkB7yB,GACdp5D,KAAK6sF,oBAAsBzzB,CAC/B,EACAzN,QAAQyN,GACJp5D,KAAK8sF,UAAY1zB,CACrB,EACAyO,MAAMzO,EAAUg0B,GACPA,GAAYA,EAAS92E,UAAY8iD,GAAY,IAAI9iD,QAClDtW,KAAKmtF,MAEb,EACAnB,cACIhsF,KAAK0sF,cAAgB1sF,KAAKssF,SAAW,CAAEK,IAAK,EAAGC,KAAM,GAAM,CAC/D,GAEJxsF,QAAS,CACL+sF,OACIntF,KAAKqtF,UACLrtF,KAAKstF,mBACLttF,KAAKutF,eACT,EACAC,aACI,MAA4B,aAArBxtF,KAAKgsF,WAChB,EACAyB,eACI,MAA4B,eAArBztF,KAAKgsF,WAChB,EACAM,SACI,MAA4B,SAArBtsF,KAAKgsF,WAChB,EACA0B,SAASt8B,GACLpxD,KAAKowC,SAAWpwC,KAAKowC,QAAQs9C,SAASt8B,EAC1C,EACAu8B,cAAcl4E,EAAOm4E,EAAW,QAC5B,MAAMC,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,eAClBpB,EAAQrsF,KAAKqsF,OACb,kBAAEJ,GAAsBjsF,KAAK+tF,oBAC7BxhB,EAAWvsE,KAAKusE,SAChByhB,EAAahuF,KAAKiuF,qBAClBC,EAAiB,CAACC,EAAS,EAAGC,IAAWD,GAAUC,EAAQ,EAAID,EAC/DE,EAAiB,CAACC,EAAQC,EAAOC,IAAWF,EAASC,EAASC,EAC9Dd,EAAW,CAACd,EAAO,EAAGD,EAAM,IAAM3sF,KAAK0tF,SAAS,CAAEd,OAAMD,MAAKiB,aAEnE,GAAIC,EAAM,CACN,MAAMY,EAAW,CAAEz+B,KAAMk+B,EAAez4E,EAAM,GAAIw2E,EAAkB,IAAKM,KAAM2B,EAAez4E,EAAM,GAAIw2E,EAAkB,KACtHwC,EAASz+B,OAASq8B,EAAMr8B,MAAQy+B,EAASlC,OAASF,EAAME,OACxDmB,EAASW,EAAeI,EAASlC,KAAMhgB,EAAS,GAAIyhB,EAAWpB,MAAOyB,EAAeI,EAASz+B,KAAMuc,EAAS,GAAIyhB,EAAWrB,MAC5H3sF,KAAKqsF,MAAQoC,EAErB,KACK,CACD,MAAMA,EAAWP,EAAez4E,EAAOw2E,GAEnCwC,IAAapC,IACbyB,EAAaJ,EAASW,EAAeI,EAAUliB,EAAUyhB,EAAWpB,MAAO,GAAKc,EAAS,EAAGW,EAAeI,EAAUliB,EAAUyhB,EAAWrB,MAC1I3sF,KAAKqsF,MAAQoC,EAErB,CACJ,EACAC,aAAaj5E,EAAOy1E,EAAI0C,EAAW,QAC/B,GAAI1C,EAAI,CACJ,MAAM2C,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,gBAClB,MAAEpB,EAAK,SAAEsC,GAAa3uF,KAAK4uF,mBAC3BlB,EAAW,CAACd,EAAO,EAAGD,EAAM,IAAM3sF,KAAK0tF,SAAS,CAAEd,OAAMD,MAAKiB,aAC7DiB,EAAmB,aAAP3D,EACZ4D,EAAiB,WAAP5D,EAEhB,GAAI2D,GACA,GAAIhB,EACIc,EAAStC,MAAMr8B,KAAOq8B,EAAMr8B,KAAOv6C,EAAM,GACzCi4E,EAASiB,EAAStC,MAAME,KAAOvsF,KAAKusE,SAAS,IAAKoiB,EAAStC,MAAMr8B,KAAO,GAAKhwD,KAAKusE,SAAS,IAEtFoiB,EAAStC,MAAME,KAAOF,EAAME,KAAO92E,EAAM,IAC9Ci4E,GAAUiB,EAAStC,MAAME,KAAO,GAAKvsF,KAAKusE,SAAS,GAAIoiB,EAAStC,MAAMr8B,KAAOhwD,KAAKusE,SAAS,SAI/F,GAAIoiB,EAAStC,MAAQA,EAAQ52E,EAAO,CAChC,MAAM6P,GAAOqpE,EAAStC,MAAQ,GAAKrsF,KAAKusE,SACxCuhB,EAAaJ,EAASpoE,EAAK,GAAKooE,EAAS,EAAGpoE,EAChD,OAGH,GAAIwpE,EACL,GAAIjB,EACIc,EAASnC,KAAKx8B,KAAOq8B,EAAMr8B,MAAQv6C,EAAM,GAAK,EAC9Ci4E,EAASiB,EAAStC,MAAME,KAAOvsF,KAAKusE,SAAS,IAAKoiB,EAAStC,MAAMr8B,KAAO,GAAKhwD,KAAKusE,SAAS,IAEtFoiB,EAASnC,KAAKD,KAAOF,EAAME,MAAQ92E,EAAM,GAAK,GACnDi4E,GAAUiB,EAAStC,MAAME,KAAO,GAAKvsF,KAAKusE,SAAS,GAAIoiB,EAAStC,MAAMr8B,KAAOhwD,KAAKusE,SAAS,SAI/F,GAAIoiB,EAASnC,KAAOH,GAAS52E,EAAQ,EAAG,CACpC,MAAM6P,GAAOqpE,EAAStC,MAAQ,GAAKrsF,KAAKusE,SACxCuhB,EAAaJ,EAASpoE,EAAK,GAAKooE,EAAS,EAAGpoE,EAChD,CAGZ,MAEItlB,KAAK2tF,cAAcl4E,EAAOm4E,EAElC,EACAgB,mBACI,MAAMG,EAA2B,CAACC,EAAMT,IAAU57E,KAAKgjB,MAAMq5D,GAAQT,GAASS,IAE9E,IAAIC,EAAkBjvF,KAAKqsF,MACvB6C,EAAiB,EAErB,GAAIlvF,KAAKowC,QAAS,CACd,MAAMy9C,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,eAClB/2B,EAAY12D,KAAKowC,QAAQsmB,UACzBy4B,EAAanvF,KAAKowC,QAAQ++C,WAEhC,GAAItB,EACAoB,EAAkB,CAAEj/B,KAAM++B,EAAyBr4B,EAAW12D,KAAKusE,SAAS,IAAKggB,KAAMwC,EAAyBI,EAAYnvF,KAAKusE,SAAS,KAC1I2iB,EAAiB,CAAEl/B,KAAMi/B,EAAgBj/B,KAAOhwD,KAAKysF,mBAAmBz8B,KAAMu8B,KAAM0C,EAAgB1C,KAAOvsF,KAAKysF,mBAAmBF,UAElI,CACD,MAAM6C,EAAYtB,EAAaqB,EAAaz4B,EAC5Cu4B,EAAkBF,EAAyBK,EAAWpvF,KAAKusE,UAC3D2iB,EAAiBD,EAAkBjvF,KAAKysF,kBAC5C,CACJ,CAEA,MAAO,CACHJ,MAAOrsF,KAAKqsF,MACZG,KAAMxsF,KAAKwsF,KACXmC,SAAU,CACNtC,MAAO4C,EACPzC,KAAM0C,GAGlB,EACAnB,oBACI,MAAMF,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,eAClBlhB,EAAWvsE,KAAKusE,SAChByhB,EAAahuF,KAAKiuF,qBAClBoB,EAAervF,KAAKowC,QAAUpwC,KAAKowC,QAAQk/C,YAActB,EAAWpB,KAAO,EAC3E2C,EAAgBvvF,KAAKowC,QAAUpwC,KAAKowC,QAAQymB,aAAem3B,EAAWrB,IAAM,EAC5E6C,EAA8B,CAACC,EAAcC,IAAc/8E,KAAK8/D,KAAKgd,GAAgBC,GAAaD,IAClGE,EAA8BC,GAAcj9E,KAAK8/D,KAAKmd,EAAY,GAClEnD,EAAqBoB,EACvB,CAAE79B,KAAMw/B,EAA4BD,EAAehjB,EAAS,IAAKggB,KAAMiD,EAA4BH,EAAc9iB,EAAS,KAC1HijB,EAA6B1B,EAAauB,EAAeE,EAAgBhjB,GAEvE0f,EAAoBjsF,KAAK6sF,sBAAwBgB,EACnD,CAAC8B,EAA2BlD,EAAmBz8B,MAAO2/B,EAA2BlD,EAAmBF,OACpGoD,EAA2BlD,IAE/B,MAAO,CAAEA,qBAAoBR,oBACjC,EACAqB,mBACI,MAAMO,EAAO7tF,KAAKssF,SACZD,EAAQrsF,KAAKqsF,OACb,mBAAEI,EAAkB,kBAAER,GAAsBjsF,KAAK+tF,oBACjD8B,EAAgB,CAACvB,EAAQwB,EAAM1B,EAAO2B,IAAY/vF,KAAKgwF,QAAQ1B,EAASwB,GAASxB,EAASF,EAAQ,EAAI,GAAKA,EAAQ2B,GACnHvD,EAAOqB,EACT,CAAE79B,KAAM6/B,EAAcxD,EAAMr8B,KAAMy8B,EAAmBz8B,KAAMi8B,EAAkB,IAAKM,KAAMsD,EAAcxD,EAAME,KAAME,EAAmBF,KAAMN,EAAkB,IAAI,IACjK4D,EAAcxD,EAAOI,EAAoBR,GAE7CjsF,KAAKwsF,KAAOA,EACZxsF,KAAKysF,mBAAqBA,EAC1BzsF,KAAK6sF,oBAAsBZ,EAC3BjsF,KAAK4C,MAAM,2BAA4B5C,KAAK6sF,qBAExC7sF,KAAKwsE,aACLxsE,KAAK+sF,UAAYc,EACb94B,MAAMo2B,KAAK,CAAE70E,OAAQm2E,EAAmBz8B,OAAQvnD,KAAI,IAAMssD,MAAMo2B,KAAK,CAAE70E,OAAQm2E,EAAmBF,SAClGx3B,MAAMo2B,KAAK,CAAE70E,OAAQm2E,KAGzBzsF,KAAKyvD,MACLzvD,KAAK4C,MAAM,YAAa,CAAEypF,QAAOG,QAEzC,EACAwD,QAAQxD,EAAO,EAAGyD,GACd,OAAIjwF,KAAK6nE,MACEl1D,KAAKyf,IAAK69D,GAAUjwF,KAAKimE,SAAWjmE,KAAK6nE,MAAM,IAAIvxD,OAAStW,KAAK6nE,MAAMvxD,OAASk2E,GAGpF,CACX,EACAyB,qBACI,GAAIjuF,KAAKirD,QAAS,CACd,MAAM1rD,EAAQ2wF,iBAAiBlwF,KAAKirD,SAC9B2hC,EAAOpgE,SAASjtB,EAAM4wF,YAAa,IAAMx9E,KAAKi6B,IAAIpgB,SAASjtB,EAAMqtF,KAAM,IAAK,GAC5EwD,EAAQ5jE,SAASjtB,EAAM8wF,aAAc,IAAM19E,KAAKi6B,IAAIpgB,SAASjtB,EAAM6wF,MAAO,IAAK,GAC/EzD,EAAMngE,SAASjtB,EAAM+wF,WAAY,IAAM39E,KAAKi6B,IAAIpgB,SAASjtB,EAAMotF,IAAK,IAAK,GACzE4D,EAAS/jE,SAASjtB,EAAMixF,cAAe,IAAM79E,KAAKi6B,IAAIpgB,SAASjtB,EAAMgxF,OAAQ,IAAK,GAExF,MAAO,CAAE3D,OAAMwD,QAAOzD,MAAK4D,SAAQrrE,EAAG0nE,EAAOwD,EAAOjrE,EAAGwnE,EAAM4D,EACjE,CAEA,MAAO,CAAE3D,KAAM,EAAGwD,MAAO,EAAGzD,IAAK,EAAG4D,OAAQ,EAAGrrE,EAAG,EAAGC,EAAG,EAC5D,EACAkoE,UACI,GAAIrtF,KAAKowC,QAAS,CACd,MAAMy9C,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,eAClB/sF,EAAgBV,KAAKowC,QAAQ1vC,cAC7Bb,EAAQG,KAAK6xE,aAAe,GAAI7xE,KAAKowC,QAAQk/C,aAAe5uF,EAAc4uF,gBAC1ExvF,EAASE,KAAK8wD,cAAgB,GAAI9wD,KAAKowC,QAAQymB,cAAgBn2D,EAAcm2D,iBAC7E45B,EAAU,CAACC,EAAOC,IAAW3wF,KAAKowC,QAAQ7wC,MAAMmxF,GAASC,EAE3D9C,GAAQC,GACR2C,EAAQ,SAAU3wF,GAClB2wF,EAAQ,QAAS5wF,IAGjB4wF,EAAQ,SAAU3wF,EAE1B,CACJ,EACAytF,gBACI,MAAM1lB,EAAQ7nE,KAAK6nE,MAEnB,GAAIA,EAAO,CACP,MAAMgmB,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,eAClBO,EAAahuF,KAAKiuF,qBAClBwC,EAAU,CAACC,EAAOC,EAAQpC,EAAOC,EAAQ,IAAMxuF,KAAKgtF,YAAc,IAAKhtF,KAAKgtF,YAAkB,CAAC,GAAG0D,MAAaC,GAAU,IAAIr6E,OAASi4E,EAASC,EAAS,MAE1JX,GACA4C,EAAQ,SAAU5oB,EAAO7nE,KAAKusE,SAAS,GAAIyhB,EAAW7oE,GACtDsrE,EAAQ,QAAUzwF,KAAKimE,SAAW4B,EAAM,GAAK7nE,KAAKusE,SAAS,GAAIyhB,EAAW9oE,IAG1E4oE,EAAa2C,EAAQ,QAAUzwF,KAAKimE,SAAW4B,EAAQ7nE,KAAKusE,SAAUyhB,EAAW9oE,GAAKurE,EAAQ,SAAU5oB,EAAO7nE,KAAKusE,SAAUyhB,EAAW7oE,EAEjJ,CACJ,EACAyrE,mBAAmBtrE,GACf,GAAItlB,KAAKirD,QAAS,CACd,MAAM4iC,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,eAClBpB,EAAQ/mE,EAAMA,EAAI+mE,MAAQrsF,KAAKqsF,MAC/BwE,EAAwB,CAACvC,EAAQC,IAAWD,EAASC,EACrDuC,EAAe,CAACC,EAAK,EAAGC,EAAK,KAC/BhxF,KAAKitF,aAAe,IAAKjtF,KAAKitF,aAAmB3lE,UAAW,eAAeypE,QAASC,UAAc,EAGtG,GAAInD,EACAiD,EAAaD,EAAsBxE,EAAME,KAAMvsF,KAAKusE,SAAS,IAAKskB,EAAsBxE,EAAMr8B,KAAMhwD,KAAKusE,SAAS,SAEjH,CACD,MAAM0kB,EAAeJ,EAAsBxE,EAAOrsF,KAAKusE,UACvDuhB,EAAagD,EAAaG,EAAc,GAAKH,EAAa,EAAGG,EACjE,CACJ,CACJ,EACAC,uBAAuB7wF,GACnB,MAAMC,EAASD,EAAMC,OACfutF,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,eAClBO,EAAahuF,KAAKiuF,qBAClBkD,EAAqB,CAACnC,EAAMR,IAAUQ,EAAQA,EAAOR,EAAQQ,EAAOR,EAAQQ,EAAQ,EACpFoC,EAAwB,CAACpC,EAAMT,IAAU57E,KAAKgjB,MAAMq5D,GAAQT,GAASS,IACrEqC,EAAwB,CAACC,EAAehD,EAAQiD,EAAOzB,EAAM1B,EAAOoD,IAC9DF,GAAiBlD,EAAQA,EAASoD,EAAwBD,EAAQzB,EAAO1B,EAAUE,EAASF,EAAQ,EAE1GF,EAAiB,CAACoD,EAAeG,EAAenD,EAAQiD,EAAOzB,EAAM1B,EAAOoD,IAC1EF,GAAiBlD,EACV,EAEAz7E,KAAKi6B,IAAI,EAAG4kD,EACVF,EAAgBG,EAAgBnD,EAASgD,EAAgBlD,EACzDkD,EAAgBG,EAAgBnD,EAASgD,EAAiB,EAAIlD,GAEzEyB,EAAgB,CAACyB,EAAehD,EAAQiD,EAAOzB,EAAM1B,EAAO2B,KAC9D,IAAI2B,EAAYpD,EAASwB,EAAQ,EAAI1B,EAMrC,OAJIkD,GAAiBlD,IACjBsD,GAActD,EAAQ,GAGnBpuF,KAAKgwF,QAAQ0B,EAAW3B,EAAQ,EAGrCr5B,EAAYy6B,EAAmB7wF,EAAOo2D,UAAWs3B,EAAWrB,KAC5DwC,EAAagC,EAAmB7wF,EAAO6uF,WAAYnB,EAAWpB,MAEpE,IAAI6B,EAAW,EACXkD,EAAU3xF,KAAKwsF,KACfoF,GAAiB,EAErB,GAAI/D,EAAM,CACN,MAAMgE,EAAe7xF,KAAK0sF,cAAcC,KAAOj2B,EACzCo7B,EAAgB9xF,KAAK0sF,cAAcE,MAAQuC,EAC3Cp4E,EAAe,CAAEi5C,KAAMohC,EAAsB16B,EAAW12D,KAAKusE,SAAS,IAAKggB,KAAM6E,EAAsBjC,EAAYnvF,KAAKusE,SAAS,KACjIwlB,EAAe,CACjB/hC,KAAMqhC,EAAsBt6E,EAAai5C,KAAMhwD,KAAKqsF,MAAMr8B,KAAMhwD,KAAKwsF,KAAKx8B,KAAMhwD,KAAKysF,mBAAmBz8B,KAAMhwD,KAAK6sF,oBAAoB,GAAIgF,GAC3ItF,KAAM8E,EAAsBt6E,EAAaw1E,KAAMvsF,KAAKqsF,MAAME,KAAMvsF,KAAKwsF,KAAKD,KAAMvsF,KAAKysF,mBAAmBF,KAAMvsF,KAAK6sF,oBAAoB,GAAIiF,IAG/IrD,EAAW,CACPz+B,KAAMk+B,EAAen3E,EAAai5C,KAAM+hC,EAAa/hC,KAAMhwD,KAAKqsF,MAAMr8B,KAAMhwD,KAAKwsF,KAAKx8B,KAAMhwD,KAAKysF,mBAAmBz8B,KAAMhwD,KAAK6sF,oBAAoB,GAAIgF,GACvJtF,KAAM2B,EAAen3E,EAAaw1E,KAAMwF,EAAaxF,KAAMvsF,KAAKqsF,MAAME,KAAMvsF,KAAKwsF,KAAKD,KAAMvsF,KAAKysF,mBAAmBF,KAAMvsF,KAAK6sF,oBAAoB,GAAIiF,IAE3JH,EAAU,CACN3hC,KAAM6/B,EAAc94E,EAAai5C,KAAMy+B,EAASz+B,KAAMhwD,KAAKwsF,KAAKx8B,KAAMhwD,KAAKysF,mBAAmBz8B,KAAMhwD,KAAK6sF,oBAAoB,IAC7HN,KAAMsD,EAAc94E,EAAaw1E,KAAMkC,EAASlC,KAAMvsF,KAAKwsF,KAAKD,KAAMvsF,KAAKysF,mBAAmBF,KAAMvsF,KAAK6sF,oBAAoB,IAAI,IAGrI+E,EAAkBnD,EAASz+B,OAAShwD,KAAKqsF,MAAMr8B,MAAQ2hC,EAAQ3hC,OAAShwD,KAAKwsF,KAAKx8B,MAAUy+B,EAASlC,OAASvsF,KAAKqsF,MAAME,MAAQoF,EAAQpF,OAASvsF,KAAKwsF,KAAKD,KAE5JvsF,KAAK0sF,cAAgB,CAAEC,IAAKj2B,EAAWk2B,KAAMuC,EACjD,KACK,CACD,MAAMC,EAAYtB,EAAaqB,EAAaz4B,EACtCs7B,EAAsBhyF,KAAK0sF,eAAiB0C,EAC5Cr4E,EAAeq6E,EAAsBhC,EAAWpvF,KAAKusE,UACrDwlB,EAAeV,EAAsBt6E,EAAc/W,KAAKqsF,MAAOrsF,KAAKwsF,KAAMxsF,KAAKysF,mBAAoBzsF,KAAK6sF,oBAAqBmF,GAEnIvD,EAAWP,EAAen3E,EAAcg7E,EAAc/xF,KAAKqsF,MAAOrsF,KAAKwsF,KAAMxsF,KAAKysF,mBAAoBzsF,KAAK6sF,oBAAqBmF,GAChIL,EAAU9B,EAAc94E,EAAc03E,EAAUzuF,KAAKwsF,KAAMxsF,KAAKysF,mBAAoBzsF,KAAK6sF,qBACzF+E,EAAiBnD,IAAazuF,KAAKqsF,OAASsF,IAAY3xF,KAAKwsF,KAE7DxsF,KAAK0sF,cAAgB0C,CACzB,CAEA,MAAO,CACH/C,MAAOoC,EACPjC,KAAMmF,EACNC,iBAER,EACAK,eAAe5xF,GACX,MAAM,MAAEgsF,EAAK,KAAEG,EAAI,eAAEoF,GAAmB5xF,KAAKkxF,uBAAuB7wF,GAEpE,GAAIuxF,EAAgB,CAChB,MAAMM,EAAW,CAAE7F,QAAOG,QAE1BxsF,KAAK4wF,mBAAmBsB,GAExBlyF,KAAKqsF,MAAQA,EACbrsF,KAAKwsF,KAAOA,EAEZxsF,KAAK4C,MAAM,sBAAuBsvF,GAE9BlyF,KAAKyvD,MACLzvD,KAAK4C,MAAM,YAAasvF,EAEhC,CACJ,EACAC,SAAS9xF,GAGL,GAFAL,KAAK4C,MAAM,SAAUvC,GAEjBL,KAAKksF,MAAO,CAKZ,GAJIlsF,KAAKktF,eACLxkC,aAAa1oD,KAAKktF,gBAGjBltF,KAAK8sF,WAAa9sF,KAAKwsE,WAAY,CACpC,MAAQolB,eAAgBQ,GAAYpyF,KAAKkxF,uBAAuB7wF,GAChE+xF,IAAYpyF,KAAK8sF,WAAY,EACjC,CAEA9sF,KAAKktF,cAAgBrqF,YAAW,KAC5B7C,KAAKiyF,eAAe5xF,GAEhBL,KAAK8sF,WAAa9sF,KAAKwsE,aAAexsE,KAAKyvD,OAC3CzvD,KAAK8sF,WAAY,EACrB,GACD9sF,KAAKksF,MACZ,MAEIlsF,KAAKiyF,eAAe5xF,EAE5B,EACAgyF,WAAWC,GACP,MAAMre,GAASj0E,KAAK6nE,OAAS,IAAIvxD,OAC3Bb,EAAQzV,KAAKssF,SAAWtsF,KAAKqsF,MAAMr8B,KAAOsiC,EAAgBtyF,KAAKqsF,MAAQiG,EAC7E,MAAO,CACH78E,QACAw+D,QACAoY,MAAiB,IAAV52E,EACP+2E,KAAM/2E,IAAWw+D,EAAQ,EACzBse,KAAM98E,EAAQ,IAAM,EACpB+8E,IAAK/8E,EAAQ,IAAM,EAE3B,EACAg9E,iBAAiBh9E,EAAOi9E,GACpB,IAAIze,EAAQj0E,KAAK+sF,UAAUz2E,OAC3B,MAAO,CACHb,QACAw+D,QACAoY,MAAiB,IAAV52E,EACP+2E,KAAM/2E,IAAWw+D,EAAQ,EACzBse,KAAM98E,EAAQ,IAAM,EACpB+8E,IAAK/8E,EAAQ,IAAM,KAChBi9E,EAEX,EACAC,WAAWh1F,GACPqC,KAAKowC,QAAUzyC,CACnB,EACAi1F,WAAWj1F,GACPqC,KAAKirD,QAAUttD,CACnB,GAEJyF,SAAU,CACNyvF,iBACI,MAAO,CAAC,oBAAqB,CACzB,gBAAiB7yF,KAAKssF,SACtB,sBAAuBtsF,KAAKytF,gBAC7BztF,KAAKf,MACZ,EACA6zF,eACI,MAAO,CAAC,4BAA6B,CACjC,4BAA6B9yF,KAAK8sF,WAE1C,EACAiG,cACI,MAAO,CAAC,2BAA4B,CAChC,uBAAwB/yF,KAAKgzF,OAAOrzF,QAE5C,EACAszF,cACI,MAAMprB,EAAQ7nE,KAAK6nE,MACnB,OAAIA,IAAU7nE,KAAK8sF,UACX9sF,KAAKssF,SACEzkB,EAAMjlD,MAAM5iB,KAAKqsF,MAAMr8B,KAAMhwD,KAAKwsF,KAAKx8B,MAAMvnD,KAAIkvB,GAAQ33B,KAAKimE,QAAUtuC,EAAOA,EAAK/U,MAAM5iB,KAAKqsF,MAAME,KAAMvsF,KAAKwsF,KAAKD,QAEvHvsF,KAAKytF,gBAAkBztF,KAAKimE,QAC1B4B,EAEAA,EAAMjlD,MAAM5iB,KAAKqsF,MAAOrsF,KAAKwsF,MAGrC,EACX,EACA0G,aACI,OAAOlzF,KAAK8sF,UAAa9sF,KAAKmsF,eAAiBnsF,KAAK+sF,UAAY,GAAM/sF,KAAKizF,WAC/E,EACAE,gBACI,GAAInzF,KAAKimE,QAAS,CACd,MAAM4nB,EAAO7tF,KAAKssF,SACZwB,EAAa9tF,KAAKytF,eAExB,GAAII,GAAQC,EACR,OAAO9tF,KAAK8sF,WAAa9sF,KAAKmsF,eAC7B0B,EAAO7tF,KAAK+sF,UAAU,GAAK/sF,KAAK+sF,UACjC/sF,KAAKimE,QAAQrjD,MAAOirE,EAAO7tF,KAAKqsF,MAAME,KAAOvsF,KAAKqsF,MAASwB,EAAO7tF,KAAKwsF,KAAKD,KAAOvsF,KAAKwsF,KAEhG,CAEA,OAAOxsF,KAAKimE,OAChB,IAIR,MAAM,GAAa,CACjB/tC,IAAK,EACLj5B,MAAO,wDAGT,SAAS,GAAOm0F,EAAMC,EAAQC,EAAQC,EAAQ9uB,EAAO+uB,GACnD,OAASF,EAAO3sF,WA8DX,WAAa,QAAmB,KAAU,CAAEuxB,IAAK,GAAK,EACrD,QAAWk7D,EAAKJ,OAAQ,YACxB,QAAWI,EAAKJ,OAAQ,UAAW,CACjCnrB,MAAOyrB,EAAOzrB,MACd7X,KAAMsjC,EAAOzrB,MACb5B,QAASutB,EAASL,iBAEnB,OApEF,WAAa,QAAmB,MAAO,CACtCj7D,IAAK,EACLg6B,IAAKshC,EAASb,WACd1zF,OAAO,QAAeu0F,EAASX,gBAC/BzzF,SAAU,EACVG,OAAO,QAAe+zF,EAAO/zF,OAC7B4yF,SAAUkB,EAAO,KAAOA,EAAO,GAAK,IAAIvS,IAAU0S,EAASrB,UAAYqB,EAASrB,YAAYrR,KAC3F,EACD,QAAWsS,EAAKJ,OAAQ,UAAW,CACjCS,WAAYD,EAASV,aACrBjrB,MAAO2rB,EAASP,YAChBS,eAAgBF,EAASnB,WACzB1mC,QAAS8Y,EAAMqoB,UACf2F,iBAAkBe,EAASf,iBAC3BlmB,SAAU+mB,EAAO/mB,SACjBvc,KAAMwjC,EAASN,WACfjtB,QAASutB,EAASL,cAClBP,WAAYY,EAASZ,WACrB5F,YAAavoB,EAAMuoB,YACnBC,aAAcxoB,EAAMwoB,aACpB0G,SAAUH,EAAShG,aACnBM,WAAY0F,EAAS/F,eACrBI,KAAM2F,EAASlH,WACd,IAAM,EACP,OAAmB,MAAO,CACxBp6B,IAAKshC,EAASZ,WACd3zF,OAAO,QAAeu0F,EAASV,cAC/BvzF,OAAO,QAAeklE,EAAMwoB,eAC3B,GACA,SAAU,IAAO,QAAmB,KAAU,MAAM,QAAWuG,EAASP,aAAa,CAACt7D,EAAMliB,KACpF,QAAW29E,EAAKJ,OAAQ,OAAQ,CACrC96D,IAAKziB,EACLkiB,KAAMA,EACNy5B,QAASoiC,EAASnB,WAAW58E,OAE7B,OACH,MAEJ69E,EAAiB,aACb,WAAa,QAAmB,MAAO,CACtCp7D,IAAK,EACLj5B,MAAO,2BACPM,OAAO,QAAeklE,EAAMuoB,cAC3B,KAAM,KACT,QAAmB,IAAI,IACzBsG,EAAOnH,gBAAkBmH,EAAO9mB,YAAc/H,EAAMqoB,YACjD,WAAa,QAAmB,MAAO,CACtC50D,IAAK,EACLj5B,OAAO,QAAeu0F,EAAST,cAC9B,CACAK,EAAKJ,QAAUI,EAAKJ,OAAOrzF,SACvB,SAAU,IAAO,QAAmB,KAAU,CAAEu4B,IAAK,IAAK,QAAWusC,EAAMsoB,WAAW,CAAC6G,EAAGn+E,KAClF,QAAW29E,EAAKJ,OAAQ,SAAU,CACvC96D,IAAKziB,EACL27C,QAASoiC,EAASf,iBAAiBh9E,EAAO+9E,EAASlH,UAAY,CAAEuH,QAAST,EAAKU,qBAAqBvH,WAEpG,QACH,WAAa,QAAmB,IAAK,MACzC,KACH,QAAmB,IAAI,IAC1B,IAST,CAEA,SAASwH,GAAYC,EAAK9hC,QACX,IAARA,IAAiBA,EAAM,CAAC,GAC7B,IAAI+hC,EAAW/hC,EAAI+hC,SAEnB,GAAKD,GAA2B,qBAAbz1F,SAAnB,CAEA,IAAI21F,EAAO31F,SAAS21F,MAAQ31F,SAAS41F,qBAAqB,QAAQ,GAC9D50F,EAAQhB,SAASC,cAAc,SACnCe,EAAM2B,KAAO,WAEI,QAAb+yF,GACEC,EAAKE,WACPF,EAAKG,aAAa90F,EAAO20F,EAAKE,YAKhCF,EAAKv1F,YAAYY,GAGfA,EAAM+0F,WACR/0F,EAAM+0F,WAAWC,QAAUP,EAE3Bz0F,EAAMZ,YAAYJ,SAASi2F,eAAeR,GAnBW,CAqBzD,CAEA,IAAIS,GAAW,ykCACfV,GAAYU,IAEZ,GAAOh3F,OAAS,G,gBCplBhB,MAAMuG,IAAM,QAAU,CACpB0wF,QAASC,EACT50F,UACElB,OAAO82E,eAAiB31E,KAAK40F,mBAC7Br2F,SAAS2B,iBACP,eACCksC,IACCA,EAAEzrC,gBAAgB,IAEpB,EAQJ,EACAP,QAAS,CACPw0F,mBAAmBv0F,GACbL,KAAKyF,OAAOC,QAAQC,gBAAgBC,KACtCvF,EAAMM,iBACNN,EAAMw0F,YAAc,GACpB70F,KAAK6F,MAAMC,KAAK,GAAG9F,KAAK+F,+BAA+B/F,KAAKyF,OAAOC,QAAQC,eAAeC,MAE9F,KAIJ5B,GAAI8wF,IAAIzJ,IACRrnF,GAAI8wF,IAAI,IAER9wF,GAAI8wF,IAAI,OACR9wF,GAAI8wF,IAAI,MACR9wF,GAAIhG,UAAU,UAAW,MACzBgG,GAAIhG,UAAU,SAAU,MACxBgG,GAAIhG,UAAU,UAAW,MACzBgG,GAAIhG,UAAU,OAAQ,MACtBgG,GAAIhG,UAAU,YAAa,MAC3BgG,GAAIhG,UAAU,cAAe,MAC7BgG,GAAIhG,UAAU,WAAY,MAC1BgG,GAAIhG,UAAU,gBAAiB,MAC/BgG,GAAIhG,UAAU,cAAe,MAC7BgG,GAAIhG,UAAU,WAAY,MAC1BgG,GAAIhG,UAAU,UAAW,MACzBgG,GAAIhG,UAAU,WAAY,MAC1BgG,GAAIhG,UAAU,cAAe,MAC7BgG,GAAIhG,UAAU,YAAa,MAC3BgG,GAAIhG,UAAU,SAAU,MACxBgG,GAAIhG,UAAU,aAAc,MAC5BgG,GAAIhG,UAAU,eAAgB,MAC9BgG,GAAIhG,UAAU,YAAa,MAC3BgG,GAAIhG,UAAU,cAAe,MAC7BgG,GAAIhG,UAAU,UAAW,MACzBgG,GAAIhG,UAAU,WAAY,MAC1BgG,GAAIhG,UAAU,UAAW,MACzBgG,GAAIhG,UAAU,YAAa,MAC3BgG,GAAIhG,UAAU,eAAgB,MAC9BgG,GAAIhG,UAAU,gBAAiB,MAC/BgG,GAAIhG,UAAU,cAAe,MAC7BgG,GAAIhG,UAAU,QAAS,MACvBgG,GAAIhG,UAAU,SAAU,MACxBgG,GAAIhG,UAAU,WAAY,MAC1BgG,GAAIhG,UAAU,gBAAiB,MAC/BgG,GAAIhG,UAAU,kBAAmB,IAEjCgG,GAAI+wF,UAAU,UAAW,MAEzB/wF,GAAI8wF,IAAI,KAAU,MAClB9wF,GAAI8wF,IAAI/wF,GAMRC,GAAIC,OAAOC,iBAAiB6B,YAAc,4BAK1C/B,GAAIC,OAAOC,iBAAiB8gE,aAAe,8BAG3ChhE,GAAIC,OAAOC,iBAAiB8mD,QAAU,cAEtChnD,GAAIgxF,MAAM,O,sBC3INC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB90E,IAAjB+0E,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASL,EAAyBE,GAAY,CACjDvvF,GAAIuvF,EACJ5vB,QAAQ,EACR8vB,QAAS,CAAC,GAUX,OANAE,EAAoBJ,GAAUK,KAAKF,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG3EI,EAAO/vB,QAAS,EAGT+vB,EAAOD,OACf,CAGAH,EAAoBj9D,EAAIs9D,E,WC5BxBL,EAAoBO,KAAO,CAAC,C,eCA5B,IAAIC,EAAW,GACfR,EAAoBS,EAAI,SAASp3E,EAAQq3E,EAAUC,EAAIC,GACtD,IAAGF,EAAH,CAMA,IAAIG,EAAenqD,IACnB,IAAS90B,EAAI,EAAGA,EAAI4+E,EAASp/E,OAAQQ,IAAK,CACrC8+E,EAAWF,EAAS5+E,GAAG,GACvB++E,EAAKH,EAAS5+E,GAAG,GACjBg/E,EAAWJ,EAAS5+E,GAAG,GAE3B,IAJA,IAGIk/E,GAAY,EACPh/E,EAAI,EAAGA,EAAI4+E,EAASt/E,OAAQU,MACpB,EAAX8+E,GAAsBC,GAAgBD,IAAa92F,OAAOs8B,KAAK45D,EAAoBS,GAAGM,OAAM,SAAS/9D,GAAO,OAAOg9D,EAAoBS,EAAEz9D,GAAK09D,EAAS5+E,GAAK,IAChK4+E,EAAS/zD,OAAO7qB,IAAK,IAErBg/E,GAAY,EACTF,EAAWC,IAAcA,EAAeD,IAG7C,GAAGE,EAAW,CACbN,EAAS7zD,OAAO/qB,IAAK,GACrB,IAAIwmE,EAAIuY,SACEx1E,IAANi9D,IAAiB/+D,EAAS++D,EAC/B,CACD,CACA,OAAO/+D,CArBP,CAJCu3E,EAAWA,GAAY,EACvB,IAAI,IAAIh/E,EAAI4+E,EAASp/E,OAAQQ,EAAI,GAAK4+E,EAAS5+E,EAAI,GAAG,GAAKg/E,EAAUh/E,IAAK4+E,EAAS5+E,GAAK4+E,EAAS5+E,EAAI,GACrG4+E,EAAS5+E,GAAK,CAAC8+E,EAAUC,EAAIC,EAwB/B,C,eC5BAZ,EAAoBz8D,EAAI,SAAS68D,GAChC,IAAIY,EAASZ,GAAUA,EAAOa,WAC7B,WAAa,OAAOb,EAAO,UAAY,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAJ,EAAoBnhD,EAAEmiD,EAAQ,CAAEp0E,EAAGo0E,IAC5BA,CACR,C,eCPA,IACIE,EADAC,EAAWr3F,OAAOs3F,eAAiB,SAASC,GAAO,OAAOv3F,OAAOs3F,eAAeC,EAAM,EAAI,SAASA,GAAO,OAAOA,EAAIC,SAAW,EAQpItB,EAAoB1nE,EAAI,SAASrqB,EAAOmjC,GAEvC,GADU,EAAPA,IAAUnjC,EAAQnD,KAAKmD,IAChB,EAAPmjC,EAAU,OAAOnjC,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPmjC,GAAanjC,EAAMgzF,WAAY,OAAOhzF,EAC1C,GAAW,GAAPmjC,GAAoC,oBAAfnjC,EAAMmW,KAAqB,OAAOnW,CAC5D,CACA,IAAIszF,EAAKz3F,OAAOynF,OAAO,MACvByO,EAAoB5X,EAAEmZ,GACtB,IAAIC,EAAM,CAAC,EACXN,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIM,EAAiB,EAAPrwD,GAAYnjC,EAAyB,iBAAXwzF,KAAyBP,EAAejlE,QAAQwlE,GAAUA,EAAUN,EAASM,GACxH33F,OAAO43F,oBAAoBD,GAAStpE,SAAQ,SAAS6K,GAAOw+D,EAAIx+D,GAAO,WAAa,OAAO/0B,EAAM+0B,EAAM,CAAG,IAI3G,OAFAw+D,EAAI,WAAa,WAAa,OAAOvzF,CAAO,EAC5C+xF,EAAoBnhD,EAAE0iD,EAAIC,GACnBD,CACR,C,eCxBAvB,EAAoBnhD,EAAI,SAASshD,EAASwB,GACzC,IAAI,IAAI3+D,KAAO2+D,EACX3B,EAAoBv1C,EAAEk3C,EAAY3+D,KAASg9D,EAAoBv1C,EAAE01C,EAASn9D,IAC5El5B,OAAO83F,eAAezB,EAASn9D,EAAK,CAAE6+D,YAAY,EAAM7jF,IAAK2jF,EAAW3+D,IAG3E,C,eCPAg9D,EAAoBlxE,EAAI,CAAC,EAGzBkxE,EAAoB9oD,EAAI,SAAS4qD,GAChC,OAAO/6B,QAAQC,IAAIl9D,OAAOs8B,KAAK45D,EAAoBlxE,GAAGi9C,QAAO,SAASjF,EAAU9jC,GAE/E,OADAg9D,EAAoBlxE,EAAEkU,GAAK8+D,EAASh7B,GAC7BA,CACR,GAAG,IACJ,C,eCPAk5B,EAAoBnqB,EAAI,SAASisB,GAEhC,MAAO,MAAQA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,YAAYA,GAAW,KAC/E,C,eCHA9B,EAAoB+B,SAAW,SAASD,GAGxC,C,eCJA9B,EAAoB/sB,EAAI,WACvB,GAA0B,kBAAf+uB,WAAyB,OAAOA,WAC3C,IACC,OAAOl3F,MAAQ,IAAI+B,SAAS,cAAb,EAGhB,CAFE,MAAOqqC,GACR,GAAsB,kBAAXvtC,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,eCAxBq2F,EAAoBiC,IAAM,SAAS7B,GASlC,OARAA,EAASt2F,OAAOynF,OAAO6O,GAClBA,EAAO9+B,WAAU8+B,EAAO9+B,SAAW,IACxCx3D,OAAO83F,eAAexB,EAAQ,UAAW,CACxCyB,YAAY,EACZnhF,IAAK,WACJ,MAAM,IAAIwhF,MAAM,0FAA4F9B,EAAO1vF,GACpH,IAEM0vF,CACR,C,eCVAJ,EAAoBv1C,EAAI,SAAS42C,EAAKxV,GAAQ,OAAO/hF,OAAOq4F,UAAUC,eAAe9B,KAAKe,EAAKxV,EAAO,C,eCAtG,IAAIwW,EAAa,CAAC,EACdC,EAAoB,WAExBtC,EAAoBl6D,EAAI,SAASze,EAAKk7E,EAAMv/D,EAAK8+D,GAChD,GAAGO,EAAWh7E,GAAQg7E,EAAWh7E,GAAKhX,KAAKkyF,OAA3C,CACA,IAAIl6F,EAAQm6F,EACZ,QAAWr3E,IAAR6X,EAEF,IADA,IAAIy/D,EAAUp5F,SAAS41F,qBAAqB,UACpCr9E,EAAI,EAAGA,EAAI6gF,EAAQrhF,OAAQQ,IAAK,CACvC,IAAI0uD,EAAImyB,EAAQ7gF,GAChB,GAAG0uD,EAAEoyB,aAAa,QAAUr7E,GAAOipD,EAAEoyB,aAAa,iBAAmBJ,EAAoBt/D,EAAK,CAAE36B,EAASioE,EAAG,KAAO,CACpH,CAEGjoE,IACHm6F,GAAa,EACbn6F,EAASgB,SAASC,cAAc,UAEhCjB,EAAOs6F,QAAU,QACjBt6F,EAAOu6F,QAAU,IACb5C,EAAoB6C,IACvBx6F,EAAOo2C,aAAa,QAASuhD,EAAoB6C,IAElDx6F,EAAOo2C,aAAa,eAAgB6jD,EAAoBt/D,GACxD36B,EAAOkH,IAAM8X,GAEdg7E,EAAWh7E,GAAO,CAACk7E,GACnB,IAAIO,EAAmB,SAASC,EAAM53F,GAErC9C,EAAO26F,QAAU36F,EAAOg/D,OAAS,KACjC7T,aAAaovC,GACb,IAAIK,EAAUZ,EAAWh7E,GAIzB,UAHOg7E,EAAWh7E,GAClBhf,EAAOM,YAAcN,EAAOM,WAAWC,YAAYP,GACnD46F,GAAWA,EAAQ9qE,SAAQ,SAASwoE,GAAM,OAAOA,EAAGx1F,EAAQ,IACzD43F,EAAM,OAAOA,EAAK53F,EACtB,EAEIy3F,EAAUj1F,WAAWm1F,EAAiBI,KAAK,UAAM/3E,EAAW,CAAEnf,KAAM,UAAWZ,OAAQ/C,IAAW,MACtGA,EAAO26F,QAAUF,EAAiBI,KAAK,KAAM76F,EAAO26F,SACpD36F,EAAOg/D,OAASy7B,EAAiBI,KAAK,KAAM76F,EAAOg/D,QACnDm7B,GAAcn5F,SAAS21F,KAAKv1F,YAAYpB,EApCkB,CAqC3D,C,eCxCA23F,EAAoB5X,EAAI,SAAS+X,GACX,qBAAXgD,QAA0BA,OAAOC,aAC1Ct5F,OAAO83F,eAAezB,EAASgD,OAAOC,YAAa,CAAEn1F,MAAO,WAE7DnE,OAAO83F,eAAezB,EAAS,aAAc,CAAElyF,OAAO,GACvD,C,eCNA+xF,EAAoBptC,EAAI,G,eCKxB,IAAIywC,EAAkB,CACrB,IAAK,GAGNrD,EAAoBlxE,EAAEhN,EAAI,SAASggF,EAASh7B,GAE1C,IAAIw8B,EAAqBtD,EAAoBv1C,EAAE44C,EAAiBvB,GAAWuB,EAAgBvB,QAAW32E,EACtG,GAA0B,IAAvBm4E,EAGF,GAAGA,EACFx8B,EAASz2D,KAAKizF,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIx8B,SAAQ,SAASsgB,EAASz1B,GAAU0xC,EAAqBD,EAAgBvB,GAAW,CAACza,EAASz1B,EAAS,IACzHkV,EAASz2D,KAAKizF,EAAmB,GAAKC,GAGtC,IAAIl8E,EAAM24E,EAAoBptC,EAAIotC,EAAoBnqB,EAAEisB,GAEpD55E,EAAQ,IAAIg6E,MACZsB,EAAe,SAASr4F,GAC3B,GAAG60F,EAAoBv1C,EAAE44C,EAAiBvB,KACzCwB,EAAqBD,EAAgBvB,GACX,IAAvBwB,IAA0BD,EAAgBvB,QAAW32E,GACrDm4E,GAAoB,CACtB,IAAIG,EAAYt4F,IAAyB,SAAfA,EAAMa,KAAkB,UAAYb,EAAMa,MAChE03F,EAAUv4F,GAASA,EAAMC,QAAUD,EAAMC,OAAOmE,IACpD2Y,EAAM2rC,QAAU,iBAAmBiuC,EAAU,cAAgB2B,EAAY,KAAOC,EAAU,IAC1Fx7E,EAAMle,KAAO,iBACbke,EAAMlc,KAAOy3F,EACbv7E,EAAMwpB,QAAUgyD,EAChBJ,EAAmB,GAAGp7E,EACvB,CAEF,EACA83E,EAAoBl6D,EAAEze,EAAKm8E,EAAc,SAAW1B,EAASA,EAE/D,CAEH,EAUA9B,EAAoBS,EAAE3+E,EAAI,SAASggF,GAAW,OAAoC,IAA7BuB,EAAgBvB,EAAgB,EAGrF,IAAI6B,EAAuB,SAASC,EAA4Bv2F,GAC/D,IAKI4yF,EAAU6B,EALVpB,EAAWrzF,EAAK,GAChBw2F,EAAcx2F,EAAK,GACnBy2F,EAAUz2F,EAAK,GAGIuU,EAAI,EAC3B,GAAG8+E,EAASv7D,MAAK,SAASz0B,GAAM,OAA+B,IAAxB2yF,EAAgB3yF,EAAW,IAAI,CACrE,IAAIuvF,KAAY4D,EACZ7D,EAAoBv1C,EAAEo5C,EAAa5D,KACrCD,EAAoBj9D,EAAEk9D,GAAY4D,EAAY5D,IAGhD,GAAG6D,EAAS,IAAIz6E,EAASy6E,EAAQ9D,EAClC,CAEA,IADG4D,GAA4BA,EAA2Bv2F,GACrDuU,EAAI8+E,EAASt/E,OAAQQ,IACzBkgF,EAAUpB,EAAS9+E,GAChBo+E,EAAoBv1C,EAAE44C,EAAiBvB,IAAYuB,EAAgBvB,IACrEuB,EAAgBvB,GAAS,KAE1BuB,EAAgBvB,GAAW,EAE5B,OAAO9B,EAAoBS,EAAEp3E,EAC9B,EAEI06E,EAAqBrO,KAAK,uBAAyBA,KAAK,wBAA0B,GACtFqO,EAAmB5rE,QAAQwrE,EAAqBT,KAAK,KAAM,IAC3Da,EAAmB1zF,KAAOszF,EAAqBT,KAAK,KAAMa,EAAmB1zF,KAAK6yF,KAAKa,G,ICpFvF,IAAIC,EAAsBhE,EAAoBS,OAAEt1E,EAAW,CAAC,MAAM,WAAa,OAAO60E,EAAoB,MAAQ,IAClHgE,EAAsBhE,EAAoBS,EAAEuD,E","sources":["webpack://webcnmp/./src/App.vue","webpack://webcnmp/./src/App.vue?7ccd","webpack://webcnmp/./src/js/helpers.js","webpack://webcnmp/./src/js/Component.vue","webpack://webcnmp/./src/js/trapFocusMixin.js","webpack://webcnmp/./src/loaders/spinner.vue","webpack://webcnmp/./src/loaders/spinner.vue?a560","webpack://webcnmp/./src/loaders/dots.vue","webpack://webcnmp/./src/loaders/dots.vue?a951","webpack://webcnmp/./src/loaders/bars.vue","webpack://webcnmp/./src/loaders/bars.vue?ed56","webpack://webcnmp/./src/loaders/index.js","webpack://webcnmp/./src/js/Component.vue?d6f2","webpack://webcnmp/./src/js/api.js","webpack://webcnmp/./src/index.js","webpack://webcnmp/./src/views/MainView.vue","webpack://webcnmp/./src/components/HeaderBar.vue","webpack://webcnmp/./src/components/HeaderBar.vue?482e","webpack://webcnmp/./src/components/LeftMenu.vue","webpack://webcnmp/./src/libs/myOpenLayers.js","webpack://webcnmp/./src/helper/DateHelper.js","webpack://webcnmp/./src/helper/CryptoHelper.js","webpack://webcnmp/./src/store/index.js","webpack://webcnmp/./src/components/LeftMenu.vue?56df","webpack://webcnmp/./src/components/RightButtons.vue","webpack://webcnmp/./src/components/RightButtons.vue?1ff6","webpack://webcnmp/./src/components/SessionPopup.vue","webpack://webcnmp/./src/components/SessionPopup.vue?1e1d","webpack://webcnmp/./src/components/Legend.vue","webpack://webcnmp/./src/components/Legend.vue?ec78","webpack://webcnmp/./src/views/MainView.vue?7ba4","webpack://webcnmp/./src/views/Menu1View/index.vue","webpack://webcnmp/./src/views/Menu1View/index.vue?646b","webpack://webcnmp/./src/views/LoginView.vue","webpack://webcnmp/./src/components/login module/Login.vue","webpack://webcnmp/./src/components/login module/Login.vue?e3d1","webpack://webcnmp/./src/components/login module/Register.vue","webpack://webcnmp/./src/components/login module/Register.vue?2ed7","webpack://webcnmp/./src/views/LoginView.vue?5755","webpack://webcnmp/./src/views/ResetPasswordView/index.vue","webpack://webcnmp/./src/views/ResetPasswordView/index.vue?f4e8","webpack://webcnmp/./src/views/ProjectView/index.vue","webpack://webcnmp/./src/components/project module/ProjectDialog.vue","webpack://webcnmp/./src/components/schedule module/Schedule.vue","webpack://webcnmp/./src/components/schedule module/GanttChart.vue","webpack://webcnmp/./src/components/schedule module/GanttChart.vue?6127","webpack://webcnmp/./src/components/UploadFile.vue","webpack://webcnmp/./src/components/UploadFile.vue?1c08","webpack://webcnmp/./src/components/schedule module/TaskTable.vue","webpack://webcnmp/./src/components/schedule module/TaskTable.vue?8614","webpack://webcnmp/./src/components/schedule module/Schedule.vue?6078","webpack://webcnmp/./src/components/project module/ProjectDialog.vue?40a0","webpack://webcnmp/./src/components/project module/Projects.vue","webpack://webcnmp/./src/components/project module/Projects.vue?35ee","webpack://webcnmp/./src/views/ProjectView/index.vue?179e","webpack://webcnmp/./src/views/EditProjectView/index.vue","webpack://webcnmp/./src/views/EditProjectView/index.vue?bd9a","webpack://webcnmp/./src/views/NeighborView/index.vue","webpack://webcnmp/./src/views/NeighborView/index.vue?a7d8","webpack://webcnmp/./src/views/EquipmentView/index.vue","webpack://webcnmp/./src/components/report module/SupportMaterialTable.vue","webpack://webcnmp/./src/components/report module/SupportMaterialTable.vue?bcd2","webpack://webcnmp/./src/views/EquipmentView/index.vue?a8ce","webpack://webcnmp/./src/views/EditUserView/index.vue","webpack://webcnmp/./src/views/EditUserView/index.vue?18ee","webpack://webcnmp/./src/views/MembersView/index.vue","webpack://webcnmp/./src/views/MembersView/index.vue?4ef3","webpack://webcnmp/./src/views/GuideView/index.vue","webpack://webcnmp/./src/views/GuideView/index.vue?f77f","webpack://webcnmp/./src/views/ReportView/index.vue","webpack://webcnmp/./src/components/report module/Report.vue","webpack://webcnmp/./src/components/report module/InputLabel.vue","webpack://webcnmp/./src/components/report module/InputLabel.vue?77f6","webpack://webcnmp/./src/components/report module/DropdownLabel.vue","webpack://webcnmp/./src/components/report module/DropdownLabel.vue?3362","webpack://webcnmp/./src/components/report module/Report.vue?5fdc","webpack://webcnmp/./src/components/report module/Appendix.vue","webpack://webcnmp/./src/components/report module/ReportGantt.vue","webpack://webcnmp/./src/components/report module/ReportGantt.vue?e0c6","webpack://webcnmp/./src/components/report module/ReportNoiseGantt.vue","webpack://webcnmp/./src/components/report module/ReportNoiseGantt.vue?b915","webpack://webcnmp/./src/components/report module/Appendix.vue?a05d","webpack://webcnmp/./src/views/ReportView/index.vue?4aac","webpack://webcnmp/./src/views/MitigationView/index.vue","webpack://webcnmp/./src/views/MitigationView/index.vue?03d6","webpack://webcnmp/./src/views/ApproveView.vue","webpack://webcnmp/./src/views/ApproveView.vue?2d06","webpack://webcnmp/./src/views/AdminView/index.vue","webpack://webcnmp/./src/components/chart/LineChart.vue","webpack://webcnmp/./src/components/chart/LineChart.vue?bed0","webpack://webcnmp/./src/components/chart/BarChart.vue","webpack://webcnmp/./src/components/chart/BarChart.vue?57da","webpack://webcnmp/./src/views/AdminView/index.vue?99ea","webpack://webcnmp/./src/views/SelectionView/index.vue","webpack://webcnmp/./src/views/SelectionView/index.vue?08a9","webpack://webcnmp/./src/views/CenterPointView/index.vue","webpack://webcnmp/./src/views/CenterPointView/index.vue?111a","webpack://webcnmp/./src/views/NotionalDistanceView/index.vue","webpack://webcnmp/./src/views/NotionalDistanceView/index.vue?4b98","webpack://webcnmp/./src/router/index.js","webpack://webcnmp/./src/components/virtualscroller/virtualscroller.esm.js","webpack://webcnmp/./src/main.js","webpack://webcnmp/webpack/bootstrap","webpack://webcnmp/webpack/runtime/amd options","webpack://webcnmp/webpack/runtime/chunk loaded","webpack://webcnmp/webpack/runtime/compat get default export","webpack://webcnmp/webpack/runtime/create fake namespace object","webpack://webcnmp/webpack/runtime/define property getters","webpack://webcnmp/webpack/runtime/ensure chunk","webpack://webcnmp/webpack/runtime/get javascript chunk filename","webpack://webcnmp/webpack/runtime/get mini-css chunk filename","webpack://webcnmp/webpack/runtime/global","webpack://webcnmp/webpack/runtime/harmony module decorator","webpack://webcnmp/webpack/runtime/hasOwnProperty shorthand","webpack://webcnmp/webpack/runtime/load script","webpack://webcnmp/webpack/runtime/make namespace object","webpack://webcnmp/webpack/runtime/publicPath","webpack://webcnmp/webpack/runtime/jsonp chunk loading","webpack://webcnmp/webpack/startup"],"sourcesContent":["\r\n\r\n\r\n","import { render } from \"./App.vue?vue&type=template&id=d387a1e6\"\nconst script = {}\n\nimport \"./App.vue?vue&type=style&index=0&id=d387a1e6&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {h, render} from 'vue';\r\n\r\nexport function removeElement(el) {\r\n if (typeof el.remove !== 'undefined') {\r\n el.remove()\r\n } else {\r\n el.parentNode?.removeChild(el)\r\n }\r\n}\r\n\r\n// Taken from https://github.com/moyoujun/vue3-loading-overlay/blob/master/src/index.ts\r\nexport function createComponent(component, props, parentContainer, slots = {}) {\r\n const vNode = h(component, props, slots)\r\n const container = document.createElement('div');\r\n container.classList.add('vld-container')\r\n parentContainer.appendChild(container);\r\n render(vNode, container);\r\n\r\n return vNode.component\r\n}\r\n\r\nexport function hasWindow() {\r\n return typeof window !== 'undefined';\r\n}\r\n\r\nexport const MayBeHTMLElement = hasWindow() ? window.HTMLElement : Object;\r\n","\r\n \r\n \r\n","export default {\r\n mounted() {\r\n if (this.enforceFocus) {\r\n document.addEventListener('focusin', this.focusIn)\r\n }\r\n },\r\n methods: {\r\n focusIn(event) {\r\n // Ignore when loading is not active\r\n if (!this.isActive) return;\r\n \r\n if (\r\n // Event target is the loading div element itself\r\n event.target === this.$el ||\r\n // Event target is inside the loading div\r\n this.$el.contains(event.target)\r\n ) return;\r\n \r\n // Use container as parent when available otherwise use parent element when isFullPage is false\r\n let parent = this.container ? this.container : (this.isFullPage ? null : this.$el.parentElement);\r\n \r\n if (\r\n // Always prevent when loading is full screen\r\n this.isFullPage ||\r\n // When a parent exist means loader is running inside a container\r\n // When loading is NOT full screen and event target is inside the given container\r\n (parent && parent.contains(event.target))\r\n ) {\r\n event.preventDefault();\r\n this.$el.focus()\r\n }\r\n }\r\n },\r\n beforeUnmount() {\r\n document.removeEventListener('focusin', this.focusIn)\r\n }\r\n }\r\n","\r\n \r\n\r\n","import { render } from \"./spinner.vue?vue&type=template&id=5d02df5e\"\nimport script from \"./spinner.vue?vue&type=script&lang=js\"\nexport * from \"./spinner.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n \r\n","import { render } from \"./dots.vue?vue&type=template&id=397485ba\"\nimport script from \"./dots.vue?vue&type=script&lang=js\"\nexport * from \"./dots.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n","import { render } from \"./bars.vue?vue&type=template&id=7df6d040\"\nimport script from \"./bars.vue?vue&type=script&lang=js\"\nexport * from \"./bars.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Spinner from './spinner.vue'\r\nimport Dots from './dots.vue'\r\nimport Bars from './bars.vue'\r\n\r\nexport default {\r\n Spinner,\r\n Dots,\r\n Bars,\r\n}\r\n","import { render } from \"./Component.vue?vue&type=template&id=3f21f145\"\nimport script from \"./Component.vue?vue&type=script&lang=js\"\nexport * from \"./Component.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {createComponent} from './helpers';\r\nimport LoadingComponent from './Component.vue';\r\n\r\nexport function useLoading(globalProps = {}, globalSlots = {}) {\r\n\r\n return {\r\n show(props = globalProps, slots = globalSlots) {\r\n const forceProps = {\r\n programmatic: true,\r\n lockScroll: true,\r\n isFullPage: false,\r\n active: true,\r\n }\r\n\r\n const propsData = {...globalProps, ...props, ...forceProps};\r\n let container = propsData.container;\r\n\r\n if (!propsData.container) {\r\n container = document.body;\r\n propsData.isFullPage = true;\r\n }\r\n\r\n const mergedSlots = {...globalSlots, ...slots};\r\n const instance = createComponent(LoadingComponent, propsData, container, mergedSlots);\r\n\r\n return {\r\n hide: instance.ctx.hide\r\n }\r\n },\r\n }\r\n}\r\n","import {useLoading} from './js/api';\r\nimport Component from './js/Component.vue';\r\nimport './css/index.css';\r\n\r\nconst LoadingPlugin = (app, props = {}, slots = {}) => {\r\n const instance = useLoading(props, slots);\r\n app.config.globalProperties.$loading = instance;\r\n app.provide('$loading', instance)\r\n};\r\n\r\nexport default Component;\r\nexport {useLoading, LoadingPlugin, Component}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","import { render } from \"./HeaderBar.vue?vue&type=template&id=5ba05d74\"\nimport script from \"./HeaderBar.vue?vue&type=script&lang=js\"\nexport * from \"./HeaderBar.vue?vue&type=script&lang=js\"\n\nimport \"./HeaderBar.vue?vue&type=style&index=0&id=5ba05d74&lang=less\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import \"ol/ol.css\";\r\nimport OLMap from \"ol/Map\";\r\nimport View from \"ol/View\";\r\nimport Draw from \"ol/interaction/Draw\";\r\nimport DoubleClickZoom from \"ol/interaction/DoubleClickZoom\";\r\nimport Modify from \"ol/interaction/Modify\";\r\nimport { DragBox, Select } from \"ol/interaction\";\r\nimport { platformModifierKeyOnly } from \"ol/events/condition\";\r\nimport Snap from \"ol/interaction/Snap\";\r\nimport { defaults as defaultControls, ScaleLine } from \"ol/control\";\r\nimport { Tile as TileLayer, Vector as VectorLayer } from \"ol/layer\";\r\nimport { OSM, Vector as VectorSource, XYZ, TileWMS } from \"ol/source\";\r\nimport { LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon } from \"ol/geom\";\r\nimport LinearRing from \"ol/geom/LinearRing\";\r\nimport Feature from \"ol/Feature\";\r\nimport { altKeyOnly, click, pointerMove } from \"ol/events/condition\";\r\nimport { Fill, Stroke, Style, Text, Circle, RegularShape } from \"ol/style\";\r\nimport GeoJSON from \"ol/format/GeoJSON\";\r\nimport { getUid } from \"ol/util\";\r\nimport { bbox as bboxStrategy } from \"ol/loadingstrategy\";\r\nimport WFS from \"ol/format/WFS\";\r\nimport GML from \"ol/format/GML\";\r\nimport { buffer, boundingExtent, extendFlatCoordinates } from \"ol/extent\";\r\nimport {\r\n and as andFilter,\r\n equalTo as equalToFilter,\r\n like as likeFilter,\r\n intersects as intersectsFilter,\r\n disjoint as disjointFilter,\r\n} from \"ol/format/filter\";\r\nimport Overlay from \"ol/Overlay\";\r\nimport DragOverlay from \"ol-ext/interaction/DragOverlay\";\r\nimport Projection from \"ol/proj/Projection\";\r\nimport { getArea, getLength } from \"ol/sphere\";\r\nimport { toStringXY } from \"ol/coordinate\";\r\n\r\nimport OL3Parser from \"jsts/org/locationtech/jts/io/OL3Parser\";\r\nimport Polygonizer from \"jsts/org/locationtech/jts/operation/polygonize/Polygonizer\";\r\nimport Union from \"jsts/org/locationtech/jts/operation/union/UnionOp\";\r\nimport GeoJSONReader from \"jsts/org/locationtech/jts/io/GeoJSONReader\";\r\nimport GeoJSONWriter from \"jsts/org/locationtech/jts/io/GeoJSONWriter\";\r\nimport { BufferOp } from \"jsts/org/locationtech/jts/operation/buffer\";\r\nimport { IsValidOp } from \"jsts/org/locationtech/jts/operation/valid\";\r\n\r\nimport * as turf from \"@turf/turf\";\r\nimport { getGeom, point } from \"@turf/turf\";\r\nimport axios from \"axios\";\r\n\r\nimport { register } from \"ol/proj/proj4\";\r\nimport { transform } from \"ol/proj\";\r\n\r\n//register EPSG:2326\r\nimport * as proj4x from \"proj4\";\r\nvar proj4 = proj4x.default;\r\nproj4.defs(\r\n \"EPSG:2326\",\r\n \"+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs\"\r\n);\r\n\r\nregister(proj4);\r\n//end of register\r\n\r\nlet map;\r\n// let siteDraw;\r\nlet SERVER_URL;\r\nlet SERVER_URL2;\r\nlet vecSource;\r\nlet cutZoneLine;\r\nlet queryVecSource;\r\nlet vecSource2;\r\nlet vecSource3; // ==> centroid to put zone label\r\nlet vector3;\r\nlet vecSource4; // ==> site buffer\r\nlet vecSource5; // ==> layer for equipment points for manual location / non-notional distance\r\nlet vecSource6; // ==> For site. Originally vecSource, but vecSource is now for Zones.\r\nlet vecSource7; // ==> For selection.\r\nlet vecSource8; // ==> For generated nsrPoints\r\nlet vecTestSource; // ==> only for testng\r\nlet vecSource9; // ==> unregsites\r\nlet vecSource10; // ==> unregsites buffers\r\nlet vecSource11; // ==> temp nsr points for modifying location ==> also used for add nsr point manually ==> also for temp center points for modifying location\r\nlet vecSource12; // ==> 1m buffer of nsr building to snap the points\r\nlet vecSource13; // ==> to show educational building polygon if 100m buffer extension contains the super sensitive nsr building\r\nlet vecSource14; // ==> show notional point when NSR point click\r\nlet defBuildingWMSSource; // ==> default building that only admin can change by changing the shp in GeoServer folder. ==> In the end choose WFS, because WMS has problem on selection (cannot select image).\r\nlet defBuildingWFSSource;\r\nlet nsrBuildingWFSSource;\r\nlet districtWFSSource;\r\nlet projBuildingWFSSource;\r\nlet projBuildingPointsWFSSource;\r\nlet projPMEWFSSource;\r\nlet zoneWFSSource;\r\nlet siteWFSSource;\r\nlet site2WFSSource;\r\nlet centerPtWFSSource;\r\nlet bufferWFSSource;\r\nlet buffer2WFSSource;\r\nlet unregSiteWFSSource;\r\nlet unregBufferWFSSource;\r\nlet approvedSiteWFSSource;\r\nlet approvedSite2WFSSource;\r\nlet approvedBufferWFSSource;\r\nlet approvedBuffer2WFSSource;\r\n\r\nlet vecLayerID;\r\nlet vecLayerID2;\r\nlet vecLayerID3;\r\nlet vecLayerID4;\r\nlet vecLayerID5;\r\nlet vecLayerID6;\r\nlet vecLayerID7;\r\nlet defBuildingWFSLayerID;\r\nlet nsrBuildingWFSLayerID;\r\nlet projBuildingWFSLayerID;\r\nlet siteDraw;\r\nlet snapDraw;\r\nlet nsrSelect;\r\nlet nsrSelectMode = 1;\r\nlet selectedNSRFeatures = [];\r\nlet deselectedNSRFeatures = [];\r\nlet nsrFeaturesToAdd = [];\r\nlet selectedNSRPointIds = [];\r\nlet oldSelectedNSRPointIds = [];\r\nlet highestNoiseNSRIds = [];\r\nlet dragBox;\r\nlet saveProjectFinish;\r\nlet projectObj;\r\nlet calculationResultNSRGlobal;\r\nlet isCalculatedGlobal2; //Added by Marvin Alex\r\n\r\nlet defBuildingWFSLayer;\r\nlet nsrBuildingWFSLayer;\r\nlet districtWFSLayer;\r\nlet projBuildingWFSLayer;\r\nlet projBuildingPointsWFSLayer;\r\nlet zoneWFSLayer;\r\nlet centerPtWFSLayer;\r\nlet siteWFSLayer;\r\nlet site2WFSLayer;\r\nlet bufferWFSLayer;\r\nlet buffer2WFSLayer;\r\nlet pmeWFSLayer;\r\nlet unregSiteWFSLayer;\r\nlet unregBufferWFSLayer;\r\nlet approvedSiteWFSLayer;\r\nlet approvedSite2WFSLayer;\r\nlet approvedBufferWFSLayer;\r\nlet approvedBuffer2WFSLayer;\r\n\r\nlet zonesInput;\r\nlet modifiedFeatureList = [];\r\nlet modifiedFeatureCloneList;\r\nlet siteDistrict;\r\nlet approvedNeighbourLayersLoaded = false;\r\n\r\nlet popupContainerElement;\r\nlet popupContentElement;\r\nlet popupCloserElement;\r\nlet popupOverlay;\r\n\r\nlet select = null;\r\nlet olMap = {\r\n //mySiteDraw: siteDraw\r\n};\r\nlet isZoneOrderMode = false;\r\nlet isAddNSRBuildingMode = false;\r\nlet isRemoveNSRBuildingMode = false;\r\nlet isChangeNoiseLevelNSRBuildingMode = false;\r\nlet isChangeNoiseNSRBuildingPointMode = false;\r\nlet isAddNSRPointsMode = false;\r\nlet isRemoveNSRPointsMode = false;\r\nlet isChangeCentralPointMode = false;\r\nlet isAfterCalculation = false;\r\nlet issitemultipolygon = false;\r\n\r\nlet eqpDrawEnded = false;\r\nlet eqpID;\r\nlet buildingIdsForQuery;\r\nlet buildingIdForMitigation = 0;\r\nlet zoneTaskIdsForMitigation = [];\r\nlet allBuildingsHeight = [];\r\n\r\nlet currentProjectID;\r\nlet approvedProjectIDs = [];\r\nlet approvedProjectScheduleTasks = [];\r\nlet approvedProjectCalculationResultNSR = [];\r\nlet movedNSRPointIds = [];\r\nlet movedNSRPointFeats = [];\r\nlet movedCenterPointIds = [];\r\nlet movedCenterPointFeats = [];\r\nlet radiusBuffer = 300;\r\nlet selectedNSRPointsForReport = [];\r\n\r\nlet globalCurrentSiteFeature;\r\nlet globalCurrentZoneFeatures = [];\r\nlet selectedDefaultBuildingFeats = [];\r\nlet thisProjectCalculatedNSRPointFeats = [];\r\nlet thisProjectCalculatedPMEFeats = [];\r\nlet thisProjectCalculateTask = [];\r\n\r\nlet unregisteredBufferArray = [];\r\nlet projectBuildingFeatArrayAfterReduced = [];\r\nlet calculationResultGroupArray = [];\r\nlet notionalPointsFeatArr = [];\r\n\r\n//show coordinate while drawing boundary\r\nlet drawing = false;\r\n\r\n//test\r\nlet outPointAtBorder;\r\nlet zoneCentroidTest;\r\nlet zoneCentroidTest2;\r\nlet zoneCentroidTest3;\r\n\r\nlet calcTypeTemp = \"A\";\r\nlet zoneNSRNotionalInfo = {};\r\n\r\nlet tempZoneFeatures = null;\r\nlet tempSiteFeatures = null;\r\n\r\n//style\r\nconst greenNSRPointStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 255, 0, 1)\",\r\n width: 3,\r\n }),\r\n radius: 3,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"rgba(0, 255, 0, 1)\" }),\r\n stroke: new Stroke({ color: \"black\", width: 3 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\nconst greenNSRPointWhiteStrokeStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 255, 0, 1)\",\r\n width: 3,\r\n }),\r\n radius: 3,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"rgba(0, 255, 0, 1)\" }),\r\n stroke: new Stroke({ color: \"white\", width: 2 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\n\r\nconst redNSRPointStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(255, 0, 0, 1)\",\r\n width: 3,\r\n }),\r\n radius: 3,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"red\" }),\r\n stroke: new Stroke({ color: \"white\", width: 2 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\nconst redNSRPointStyle2 = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(255, 0, 0, 1)\",\r\n width: 3,\r\n }),\r\n radius: 3,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"red\" }),\r\n stroke: new Stroke({ color: \"white\", width: 2 }),\r\n placement: \"Point\",\r\n }),\r\n});\r\nconst unselectedNSRPointStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(177, 182, 216, 1)\",\r\n width: 3,\r\n }),\r\n radius: 3,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"red\" }),\r\n stroke: new Stroke({ color: \"white\", width: 2 }),\r\n placement: \"Point\",\r\n }),\r\n});\r\n\r\nconst selectedNSRStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(100, 255, 255, 1)\",\r\n width: 4,\r\n }),\r\n radius: 3,\r\n }),\r\n fill: new Fill({\r\n color: \"rgba(255, 255, 255, 0.6)\",\r\n }),\r\n text: new Text({\r\n font: 'bold 15px \"Arial\"',\r\n fill: new Fill({ color: \"rgba(100, 255, 255, 1)\" }),\r\n stroke: new Stroke({ color: \"rgba(0, 0, 0, 1)\", width: 3 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\nconst selectedBuildingStyle = new Style({\r\n fill: new Fill({\r\n color: \"rgba(81, 255, 237, 0.7)\",\r\n //color: 'red'\r\n }),\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(81, 255, 237, 0.7)\",\r\n width: 2,\r\n }),\r\n radius: 3,\r\n }),\r\n});\r\nconst greenNSRPointStyle20Max = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 255, 0, 1)\",\r\n width: 20,\r\n }),\r\n radius: 7,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"rgba(0, 255, 0, 1)\" }),\r\n stroke: new Stroke({ color: \"black\", width: 3 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\nconst redNSRPointStyle20Max = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(255, 0, 0, 1)\",\r\n width: 20,\r\n }),\r\n radius: 7,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"red\" }),\r\n stroke: new Stroke({ color: \"white\", width: 2 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\nconst bufferStyle = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 255, 0, 1)\",\r\n lineDash: [10, 10],\r\n width: 5,\r\n }),\r\n});\r\nconst approvedBufferStyle = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 200, 0, 1)\",\r\n lineDash: [10, 10],\r\n width: 5,\r\n }),\r\n});\r\nconst zoneStyle = new Style({\r\n fill: new Fill({\r\n color: \"rgba(255, 255, 255, 0.1)\",\r\n }),\r\n stroke: new Stroke({\r\n color: \"rgba(255, 0, 0, 1)\",\r\n width: 3,\r\n }),\r\n});\r\nconst orderZoneTextStyle = new Style({\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"black\" }),\r\n stroke: new Stroke({ color: \"white\", width: 3 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\nconst eqpStyle = new Style({\r\n image: new RegularShape({\r\n fill: new Fill({ color: \"red\" }),\r\n stroke: new Stroke({ color: \"black\", width: 2 }),\r\n points: 3,\r\n radius: 10,\r\n rotation: Math.PI / 4,\r\n angle: 0,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"red\" }),\r\n stroke: new Stroke({ color: \"white\", width: 3 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\nconst siteStyle = new Style({\r\n fill: new Fill({\r\n color: \"rgba(255, 255, 255, 0.2)\",\r\n }),\r\n});\r\nconst nsrPointStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(255, 0, 255, 1)\",\r\n width: 2,\r\n }),\r\n radius: 3,\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"rgba(255, 0, 255, 1)\" }),\r\n stroke: new Stroke({ color: \"white\", width: 2 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n});\r\n//end of style\r\n\r\n//style function\r\n\r\nconst greenNSRPointStyleFunction = function (feature) {\r\n //console.log(feature.get('order'));\r\n if (feature.get(\"totalcnl\")) {\r\n greenNSRPointWhiteStrokeStyle.getText().setText(feature.get(\"totalcnl\").toFixed().toString());\r\n } else {\r\n greenNSRPointWhiteStrokeStyle.getText().setText(\"\");\r\n }\r\n\r\n return greenNSRPointWhiteStrokeStyle;\r\n};\r\nconst greenNSRPointStyleFunctionWithNSRName = function (feature) {\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n greenNSRPointStyle.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n greenNSRPointStyle.getText().setText(\"\");\r\n }\r\n\r\n return greenNSRPointStyle;\r\n};\r\nconst redNSRPointUnmitStyleFunction = function (feature) {\r\n if (feature.get(\"totalcnl\")) {\r\n redNSRPointStyle.getText().setText(feature.get(\"totalcnl\").toFixed().toString());\r\n } else {\r\n redNSRPointStyle.getText().setText(\"\");\r\n }\r\n\r\n return redNSRPointStyle;\r\n};\r\nconst redNSRPointMitStyleFunction = function (feature) {\r\n if (feature.get(\"totalcnl\")) {\r\n redNSRPointStyle.getText().setText(feature.get(\"totalcnlmit\").toFixed().toString());\r\n } else {\r\n redNSRPointStyle.getText().setText(\"\");\r\n }\r\n\r\n return redNSRPointStyle;\r\n};\r\nconst redNSRPointUnmitStyleFunctionWithNSRName = function (feature) {\r\n if (feature.get(\"totalcnl\")) {\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n redNSRPointStyle.getText().setText(feature.get(\"nsrname\") + \" - \" + feature.get(\"totalcnl\").toFixed().toString());\r\n } else {\r\n redNSRPointStyle.getText().setText(feature.get(\"totalcnl\").toFixed().toString());\r\n }\r\n } else {\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n redNSRPointStyle.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n redNSRPointStyle.getText().setText(\"\");\r\n }\r\n }\r\n\r\n return redNSRPointStyle;\r\n};\r\nconst redNSRPointMitStyleFunctionWithNSRName = function (feature) {\r\n if (feature.get(\"totalcnlmit\")) {\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n redNSRPointStyle.getText().setText(feature.get(\"nsrname\") + \" - \" + feature.get(\"totalcnlmit\").toFixed().toString());\r\n } else {\r\n redNSRPointStyle.getText().setText(feature.get(\"totalcnlmit\").toFixed().toString());\r\n }\r\n } else {\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n redNSRPointStyle.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n redNSRPointStyle.getText().setText(\"\");\r\n }\r\n }\r\n\r\n return redNSRPointStyle;\r\n};\r\nconst nsrPointStyleFunctionWithNSRName = function (feature) {\r\n if (\r\n feature.get(\"nsrname\")\r\n // &&\r\n // selectedNSRPointIds.includes(feature.get(\"id\"))\r\n ) {\r\n nsrPointStyle.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n nsrPointStyle.getText().setText(\"\");\r\n }\r\n\r\n return nsrPointStyle;\r\n};\r\nconst selectednsrPointStyleFunction = function (feature) {\r\n if (\r\n feature.get(\"nsrname\")\r\n // &&\r\n // selectedNSRPointIds.includes(feature.get(\"id\"))\r\n ) {\r\n selectedNSRStyle.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n selectedNSRStyle.getText().setText(\"\");\r\n }\r\n\r\n return selectedNSRStyle;\r\n};\r\nconst greenNSRPointWithWhiteStrokeStyleFunctionWithNSRName = function (feature) {\r\n //console.log(feature.get('order'));\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n greenNSRPointWhiteStrokeStyle.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n greenNSRPointWhiteStrokeStyle.getText().setText(\"\");\r\n }\r\n\r\n return greenNSRPointWhiteStrokeStyle;\r\n};\r\nconst redNSRPointMitStyle20MaxFunctionWithNSRName = function (feature) {\r\n //console.log(feature.get('order'));\r\n if (feature.get(\"totalcnl\")) {\r\n redNSRPointStyle20Max.getText().setText(feature.get(\"totalcnlmit\").toFixed().toString());\r\n if (feature.get(\"nsrname\")) {\r\n redNSRPointStyle20Max.getText().setText(feature.get(\"nsrname\") + \" - \" + feature.get(\"totalcnlmit\").toFixed().toString());\r\n } else {\r\n redNSRPointStyle20Max.getText().setText(feature.get(\"totalcnlmit\").toFixed().toString());\r\n }\r\n } else {\r\n if (feature.get(\"nsrname\")) {\r\n redNSRPointStyle20Max.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n redNSRPointStyle20Max.getText().setText(\"\");\r\n }\r\n }\r\n\r\n return redNSRPointStyle20Max;\r\n};\r\nconst greenNSRPointStyle20MaxFunctionWithNSRName = function (feature) {\r\n //console.log(feature.get('order'));\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n greenNSRPointStyle20Max.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n greenNSRPointStyle20Max.getText().setText(\"\");\r\n }\r\n\r\n return greenNSRPointStyle20Max;\r\n};\r\nconst redNSRPointUnmitStyle20MaxFunctionWithNSRName = function (feature) {\r\n //console.log(feature.get('order'));\r\n if (feature.get(\"totalcnl\")) {\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n redNSRPointStyle20Max.getText().setText(feature.get(\"nsrname\") + \" - \" + feature.get(\"totalcnl\").toFixed().toString());\r\n } else {\r\n redNSRPointStyle20Max.getText().setText(feature.get(\"totalcnl\").toFixed().toString());\r\n }\r\n } else {\r\n if (feature.get(\"nsrname\") && selectedNSRPointIds.includes(feature.get(\"id\"))) {\r\n redNSRPointStyle20Max.getText().setText(feature.get(\"nsrname\"));\r\n } else {\r\n redNSRPointStyle20Max.getText().setText(\"\");\r\n }\r\n }\r\n\r\n return redNSRPointStyle20Max;\r\n};\r\nconst selectionStyleFunction = function (feature) {\r\n var currentNoiseCriteria = feature.get(\"noisecriteria\");\r\n var maxMitigatedCNL = feature.get(\"totalcnlmit\");\r\n var maxOriginalCNL = feature.get(\"totalcnl\");\r\n if (feature.get(\"totalcnl\") !== feature.get(\"totalcnlmit\")) {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxMitigatedCNL)) {\r\n // if the result is red\r\n return redNSRPointMitStyle20MaxFunctionWithNSRName(feature);\r\n } else {\r\n return greenNSRPointStyle20MaxFunctionWithNSRName(feature);\r\n }\r\n } else {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxOriginalCNL)) {\r\n // if the result is red\r\n return redNSRPointUnmitStyle20MaxFunctionWithNSRName(feature);\r\n } else {\r\n return greenNSRPointStyle20MaxFunctionWithNSRName(feature);\r\n }\r\n }\r\n};\r\n//end of style function\r\n\r\n// ### This function is where all 'openlayers' begins. Prepares the map, layers (in-memory layers, Geoserver layers), and Map Click handler (e.g. layer click for pop-up, etc).\r\n// ### Called from: MainView.vue\r\nolMap.initOL = function (apiURL) {\r\n SERVER_URL = apiURL.replace(\"/api/\", \"\").replace(\"/API/\", \"\").replace(\"/Api/\", \"\");\r\n SERVER_URL2 = SERVER_URL;\r\n if (!SERVER_URL.includes(\"https\")) {\r\n SERVER_URL = SERVER_URL + \":8080\"; //### Only for dev\r\n }\r\n // console.log(\"SERVER_URL\",SERVER_URL);\r\n // console.log(\"apiURL\",apiURL);\r\n\r\n // create vector layer\r\n vecSource = new VectorSource();\r\n var vector = new VectorLayer({\r\n title: \"zoneLayer\",\r\n source: vecSource,\r\n style: zoneStyle,\r\n });\r\n\r\n // create title layer\r\n // var raster = new TileLayer({\r\n // source: new OSM(),\r\n // });\r\n // create line Cutter layer\r\n vecSource2 = new VectorSource();\r\n var vector2 = new VectorLayer({\r\n title: \"lineCutterLayer\",\r\n source: vecSource2,\r\n });\r\n var addFeatureVecSource2EventListener = vecSource2.on(\"addfeature\", keepVecSource2Clean);\r\n\r\n // create text layer for zone order\r\n var orderZoneTextStyleFunction = function (feature) {\r\n //console.log(feature.get('order'));\r\n if (feature.get(\"order\")) {\r\n orderZoneTextStyle.getText().setText(feature.get(\"order\"));\r\n //console.log(\"1111111\");\r\n } else {\r\n orderZoneTextStyle.getText().setText(\"\");\r\n //console.log(\"2222222\");\r\n }\r\n\r\n return orderZoneTextStyle;\r\n };\r\n vecSource3 = new VectorSource();\r\n vector3 = new VectorLayer({\r\n title: \"zoneOrderIDPointLayer\",\r\n source: vecSource3,\r\n style: orderZoneTextStyleFunction,\r\n });\r\n vector3.setVisible(false);\r\n\r\n // site buffer layer\r\n vecSource4 = new VectorSource();\r\n var vector4 = new VectorLayer({\r\n title: \"sitebufferLayer\",\r\n source: vecSource4,\r\n style: bufferStyle,\r\n });\r\n\r\n // manual equipment points layer\r\n var eqpTextStyleFunction = function (feature) {\r\n //console.log(feature.get('order'));\r\n if (feature.get(\"officialid\")) {\r\n if (feature.get(\"officialid\").trim() === \"\") {\r\n if (feature.get(\"othername\")) {\r\n var name = feature.get(\"othername\");\r\n eqpStyle.getText().setText(name);\r\n } else {\r\n eqpStyle.getText().setText(\"\");\r\n }\r\n }\r\n var offid = feature.get(\"officialid\");\r\n eqpStyle.getText().setText(offid);\r\n } else if (feature.get(\"othername\")) {\r\n var name = feature.get(\"othername\");\r\n if (feature.get(\"officialid\")) {\r\n var offid = feature.get(\"officialid\");\r\n name = offid + \"-\" + name;\r\n }\r\n eqpStyle.getText().setText(name);\r\n //console.log(\"1111111\");\r\n } else {\r\n eqpStyle.getText().setText(\"\");\r\n //console.log(\"2222222\");\r\n }\r\n\r\n return eqpStyle;\r\n };\r\n vecSource5 = new VectorSource();\r\n var vector5 = new VectorLayer({\r\n title: \"equipmentPointLayer\",\r\n source: vecSource5,\r\n style: eqpTextStyleFunction,\r\n });\r\n var addFeatureVecSource5EventListener = vecSource5.on(\"addfeature\", checkEqpInsideZone);\r\n\r\n //site layer. Originally vecSource, but it becomes Zone layer\r\n vecSource6 = new VectorSource();\r\n var vector6 = new VectorLayer({\r\n title: \"siteLayer\",\r\n source: vecSource6,\r\n style: siteStyle,\r\n });\r\n\r\n // selected feature. All features that are selected.\r\n vecSource7 = new VectorSource();\r\n var vector7 = new VectorLayer({\r\n title: \"selectedLayer\",\r\n source: vecSource7,\r\n style: selectedBuildingStyle,\r\n });\r\n\r\n vecSource8 = new VectorSource();\r\n var vector8 = new VectorLayer({\r\n title: \"nsrPointLayer\",\r\n source: vecSource8,\r\n style: nsrPointStyle,\r\n });\r\n\r\n var testStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 0, 0, 1)\",\r\n width: 3,\r\n }),\r\n radius: 3,\r\n }),\r\n stroke: new Stroke({\r\n color: \"black\",\r\n width: 4,\r\n }),\r\n fill: new Fill({\r\n //color: 'rgba(81, 255, 237, 0.7)',\r\n color: \"black\",\r\n }),\r\n });\r\n vecTestSource = new VectorSource();\r\n var vectorTest = new VectorLayer({\r\n title: \"testLayer\",\r\n source: vecTestSource,\r\n style: testStyle,\r\n });\r\n\r\n // unreg sites\r\n vecSource9 = new VectorSource();\r\n var vector9 = new VectorLayer({\r\n title: \"unregsiteLayer\",\r\n source: vecSource9,\r\n style: zoneStyle,\r\n });\r\n\r\n // unreg sites buffer\r\n vecSource10 = new VectorSource();\r\n var vector10 = new VectorLayer({\r\n title: \"unregsitebufferLayer\",\r\n source: vecSource10,\r\n style: bufferStyle,\r\n });\r\n\r\n // temp nsr points to modify location\r\n vecSource11 = new VectorSource();\r\n var vector11 = new VectorLayer({\r\n title: \"tempNSRPointsToMove\",\r\n source: vecSource11,\r\n style: nsrPointStyle,\r\n });\r\n\r\n // 1m buffer of nsr building to snap the points\r\n var snapBuildingStyle = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(200, 200, 200, 1)\",\r\n lineDash: [5, 5],\r\n width: 1,\r\n }),\r\n });\r\n vecSource12 = new VectorSource();\r\n var vector12 = new VectorLayer({\r\n title: \"snappedNSRBuilding\",\r\n source: vecSource12,\r\n style: snapBuildingStyle,\r\n });\r\n\r\n //to show educational building polygon if 100m buffer extension contains the super sensitive nsr building\r\n var eduBuildingStyle = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 127, 70, 1)\",\r\n width: 2,\r\n }),\r\n fill: new Fill({ color: \"rgba(255, 255, 255, 0.1)\" }),\r\n });\r\n vecSource13 = new VectorSource();\r\n var vector13 = new VectorLayer({\r\n title: \"notifEduNSRBuilding\",\r\n source: vecSource13,\r\n style: eduBuildingStyle,\r\n });\r\n\r\n //to show notional point when nsr point click\r\n var notionalStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(255, 165, 0, 1)\",\r\n width: 3,\r\n }),\r\n radius: 3,\r\n }),\r\n stroke: new Stroke({\r\n color: \"orange\",\r\n width: 4,\r\n }),\r\n fill: new Fill({\r\n //color: 'rgba(81, 255, 237, 0.7)',\r\n color: \"orange\",\r\n }),\r\n });\r\n var centerStyle = function (feature) {\r\n let style = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 0, 0, 1)\",\r\n width: 3,\r\n }),\r\n radius: 3,\r\n }),\r\n stroke: new Stroke({\r\n color: \"black\",\r\n width: 4,\r\n }),\r\n fill: new Fill({\r\n //color: 'rgba(81, 255, 237, 0.7)',\r\n color: \"black\",\r\n }),\r\n text: new Text({\r\n font: 'bold 12px \"Arial\"',\r\n fill: new Fill({ color: \"black\" }),\r\n stroke: new Stroke({ color: \"white\", width: 3 }),\r\n placement: \"Point\",\r\n offsetY: -12,\r\n }),\r\n });\r\n if (feature.get(\"zonename\")) {\r\n style.getText().setText(feature.get(\"zonename\"));\r\n } else {\r\n style.getText().setText(\"\");\r\n }\r\n\r\n return style;\r\n };\r\n vecSource14 = new VectorSource();\r\n var vector14 = new VectorLayer({\r\n title: \"notionalPoint\",\r\n source: vecSource14,\r\n style: notionalStyle,\r\n });\r\n\r\n // // Default building layer. Non-editable, only admin can change by changing the shp in GeoServer folder. Shapefile format in GeoServer data folder.\r\n // defBuildingWMSSource = new TileWMS({\r\n // url: 'http://localhost:8080/geoserver/hk_test/wms',\r\n // params: {'LAYERS': 'hk_test:Bld_HKSAR2011_hk80_nsr', 'TILED': false},\r\n // serverType: 'geoserver',\r\n // // Countries have transparency, so do not fade tiles:\r\n // //transition: 0,\r\n // });\r\n // var defBuildingWMSTileLayer = new TileLayer({\r\n // source: defBuildingWMSSource\r\n // });\r\n\r\n //################## WFS\r\n\r\n var districtStyle = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(60, 60, 60, 1)\",\r\n lineDash: [10, 10],\r\n width: 1,\r\n }),\r\n });\r\n var districtURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AHKDistrict_wgs84sp&outputFormat=application%2Fjson\";\r\n districtWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return districtURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n districtWFSLayer = new VectorLayer({\r\n title: \"districtWFSLayer\",\r\n source: districtWFSSource,\r\n style: districtStyle,\r\n });\r\n\r\n var defBuildingStyle = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 0, 0, 1)\",\r\n width: 1,\r\n }),\r\n fill: new Fill({ color: \"rgba(255, 255, 255, 0.2)\" }),\r\n });\r\n //var testURL = SERVER_URL + '/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3ABld_HKSAR2011_wgs84sp&outputFormat=application%2Fjson';\r\n //var testURL = SERVER_URL + '/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3ABuilding_2022_wgs84sp&outputFormat=application%2Fjson';\r\n var testURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3ABuilding_2022_wgs84sp_noZM&outputFormat=application%2Fjson\";\r\n //var testURL = 'http://localhost:8080/geoserver/hk_test/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=hk_test%3ABld_HKSAR2011_hk80_nsr&outputFormat=application%2Fjson';\r\n defBuildingWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return testURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n defBuildingWFSLayer = new VectorLayer({\r\n title: \"defaultBuildingLayer\",\r\n source: defBuildingWFSSource,\r\n style: defBuildingStyle,\r\n });\r\n\r\n var nsrBuildingStyle = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(255, 106, 0, 1)\",\r\n width: 2,\r\n }),\r\n fill: new Fill({ color: \"rgba(255, 255, 255, 0.5)\" }),\r\n });\r\n //var nsrBuidingURL = SERVER_URL + '/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3ABuilding_2022_nsr_wgs84sp&outputFormat=application%2Fjson';\r\n var nsrBuidingURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3ABuilding_2022_nsr_wgs84sp_noZM&outputFormat=application%2Fjson\";\r\n nsrBuildingWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return nsrBuidingURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n nsrBuildingWFSLayer = new VectorLayer({\r\n title: \"nsrBuildingLayer\",\r\n source: nsrBuildingWFSSource,\r\n style: nsrBuildingStyle,\r\n });\r\n\r\n var projBuildingStyle1 = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 0, 255, 1)\",\r\n width: 2,\r\n }),\r\n fill: new Fill({ color: \"rgba(255, 255, 255, 0.1)\" }),\r\n });\r\n var projBuildingStyle2 = new Style({\r\n stroke: new Stroke({\r\n color: \"rgba(0, 127, 70, 1)\",\r\n width: 2,\r\n }),\r\n fill: new Fill({ color: \"rgba(255, 255, 255, 0.1)\" }),\r\n });\r\n var projBuildingStyleFunction = function (feature) {\r\n //console.log(feature.get('order'));\r\n if (feature.get(\"type\")) {\r\n if (feature.get(\"type\").trim() === \"Accommodation\") {\r\n return projBuildingStyle1;\r\n } else {\r\n return projBuildingStyle2;\r\n }\r\n } else {\r\n return projBuildingStyle2;\r\n }\r\n };\r\n var projBuidingURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectNSRBuilding&outputFormat=application%2Fjson\";\r\n projBuildingWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return projBuidingURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n projBuildingWFSLayer = new VectorLayer({\r\n title: \"projectBuildingLayer\",\r\n source: projBuildingWFSSource,\r\n style: projBuildingStyleFunction,\r\n visible: false,\r\n });\r\n\r\n var projNSRPointsStyle = new Style({\r\n image: new Circle({\r\n stroke: new Stroke({\r\n color: \"rgba(255, 0, 255, 1)\",\r\n width: 2,\r\n }),\r\n radius: 3,\r\n }),\r\n });\r\n var projNSRPointsURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectNSRPoints&outputFormat=application%2Fjson\";\r\n projBuildingPointsWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return projNSRPointsURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n projBuildingPointsWFSLayer = new VectorLayer({\r\n title: \"projectBuildingPointsLayer\",\r\n source: projBuildingPointsWFSSource,\r\n style: projNSRPointsStyle,\r\n visible: false,\r\n });\r\n\r\n var siteWFSURL =\r\n SERVER_URL + \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites&outputFormat=application%2Fjson\";\r\n siteWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return siteWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n siteWFSLayer = new VectorLayer({\r\n title: \"siteWFSLayer\",\r\n source: siteWFSSource,\r\n style: siteStyle,\r\n visible: false,\r\n });\r\n var site2WFSURL =\r\n SERVER_URL + \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites2&outputFormat=application%2Fjson\";\r\n site2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return site2WFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n site2WFSLayer = new VectorLayer({\r\n title: \"site2WFSLayer\",\r\n source: site2WFSSource,\r\n style: siteStyle,\r\n visible: false,\r\n });\r\n\r\n var approvedSiteStyle = new Style({\r\n fill: new Fill({\r\n color: \"rgba(255, 255, 255, 0.1)\",\r\n }),\r\n stroke: new Stroke({\r\n color: \"rgba(255, 106, 0, 1)\",\r\n width: 3,\r\n }),\r\n });\r\n var approvedSiteWFSURL =\r\n SERVER_URL + \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites&outputFormat=application%2Fjson\";\r\n approvedSiteWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return approvedSiteWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n approvedSiteWFSLayer = new VectorLayer({\r\n title: \"approvedSiteWFSLayer\",\r\n source: approvedSiteWFSSource,\r\n style: approvedSiteStyle,\r\n visible: false,\r\n });\r\n var approvedSite2WFSURL =\r\n SERVER_URL + \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites2&outputFormat=application%2Fjson\";\r\n approvedSite2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return approvedSite2WFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n approvedSite2WFSLayer = new VectorLayer({\r\n title: \"approvedSite2WFSLayer\",\r\n source: approvedSite2WFSSource,\r\n style: approvedSiteStyle,\r\n visible: false,\r\n });\r\n\r\n var unregsiteWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Aunregsites&outputFormat=application%2Fjson\";\r\n unregSiteWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return unregsiteWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n unregSiteWFSLayer = new VectorLayer({\r\n title: \"unregSiteWFSLayer\",\r\n source: unregSiteWFSSource,\r\n style: zoneStyle,\r\n visible: false,\r\n });\r\n\r\n var zoneWFSURL =\r\n SERVER_URL + \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Azones&outputFormat=application%2Fjson\";\r\n zoneWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return zoneWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n zoneWFSLayer = new VectorLayer({\r\n title: \"zoneWFSLayer\",\r\n source: zoneWFSSource,\r\n style: zoneStyle,\r\n visible: false,\r\n });\r\n\r\n var centerPtWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AgeomCenter&outputFormat=application%2Fjson\";\r\n centerPtWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return centerPtWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n centerPtWFSLayer = new VectorLayer({\r\n title: \"centerPtWFSLayer\",\r\n source: centerPtWFSSource,\r\n style: centerStyle,\r\n visible: false,\r\n });\r\n\r\n var bufferWFSURL =\r\n SERVER_URL + \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers&outputFormat=application%2Fjson\";\r\n bufferWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return bufferWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n bufferWFSLayer = new VectorLayer({\r\n title: \"bufferWFSLayer\",\r\n source: bufferWFSSource,\r\n style: bufferStyle,\r\n visible: false,\r\n });\r\n var buffer2WFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers2&outputFormat=application%2Fjson\";\r\n buffer2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return buffer2WFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n buffer2WFSLayer = new VectorLayer({\r\n title: \"buffer2WFSLayer\",\r\n source: buffer2WFSSource,\r\n style: bufferStyle,\r\n visible: false,\r\n });\r\n\r\n var approvedBufferWFSURL =\r\n SERVER_URL + \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers&outputFormat=application%2Fjson\";\r\n approvedBufferWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return approvedBufferWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n approvedBufferWFSLayer = new VectorLayer({\r\n title: \"approvedBufferWFSLayer\",\r\n source: approvedBufferWFSSource,\r\n style: approvedBufferStyle,\r\n visible: false,\r\n });\r\n var approvedBuffer2WFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers2&outputFormat=application%2Fjson\";\r\n approvedBuffer2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return approvedBuffer2WFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n approvedBuffer2WFSLayer = new VectorLayer({\r\n title: \"approvedBuffer2WFSLayer\",\r\n source: approvedBuffer2WFSSource,\r\n style: approvedBufferStyle,\r\n visible: false,\r\n });\r\n\r\n var unregbufferWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Aunregbuffers&outputFormat=application%2Fjson\";\r\n unregBufferWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return unregbufferWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n unregBufferWFSLayer = new VectorLayer({\r\n title: \"unregBufferWFSLayer\",\r\n source: unregBufferWFSSource,\r\n style: bufferStyle,\r\n visible: false,\r\n });\r\n\r\n var pmeWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectPME&outputFormat=application%2Fjson\";\r\n projPMEWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return pmeWFSURL + \"&srsname=EPSG:3857&bbox=\" + extent.join(\",\") + \",EPSG:3857\";\r\n },\r\n strategy: bboxStrategy,\r\n });\r\n pmeWFSLayer = new VectorLayer({\r\n title: \"pmeWFSLayer\",\r\n source: projPMEWFSSource,\r\n style: eqpTextStyleFunction,\r\n visible: false,\r\n });\r\n\r\n // var raster = new TileLayer({\r\n // source: new XYZ({\r\n // url: 'https://mapapi.geodata.gov.hk/gs/api/v1.0.0/xyz/imagery/WGS84/{z}/{x}/{y}.png'\r\n // })\r\n // });\r\n var raster = new TileLayer({\r\n source: new XYZ({\r\n url: \"https://mapapi.geodata.gov.hk/gs/api/v1.0.0/xyz/basemap/WGS84/{z}/{x}/{y}.png\",\r\n crossOrigin: \"Anonymous\",\r\n }),\r\n });\r\n var mapLabel = new TileLayer({\r\n source: new XYZ({\r\n url: \"https://mapapi.geodata.gov.hk/gs/api/v1.0.0/xyz/label/hk/en/WGS84/{z}/{x}/{y}.png\",\r\n crossOrigin: \"Anonymous\",\r\n }),\r\n });\r\n\r\n popupContainerElement = document.getElementById(\"popup\");\r\n popupContentElement = document.getElementById(\"popup-content\");\r\n popupCloserElement = document.getElementById(\"popup-closer\");\r\n\r\n popupOverlay = new Overlay({\r\n element: popupContainerElement,\r\n // autoPan: {\r\n // animation: {\r\n // duration: 250,\r\n // },\r\n // },\r\n stopEvent: false,\r\n });\r\n\r\n popupCloserElement.onclick = function () {\r\n popupOverlay.setPosition(undefined);\r\n popupCloserElement.blur();\r\n return false;\r\n };\r\n\r\n const coordinatePopup = new Overlay({\r\n element: document.getElementById(\"popup2\"),\r\n });\r\n\r\n coordinatePopup.on(\"change:position\", function (evt) {\r\n this.setOffset([75, 90]);\r\n });\r\n\r\n document.getElementById(\"mapContainer\").innerHTML = \"\";\r\n\r\n // create map with 2 layer\r\n map = new OLMap({\r\n controls: defaultControls().extend([\r\n new ScaleLine({\r\n units: \"metric\",\r\n }),\r\n ]),\r\n target: \"mapContainer\",\r\n layers: [\r\n raster,\r\n mapLabel,\r\n projBuildingWFSLayer,\r\n approvedBuffer2WFSLayer,\r\n approvedBufferWFSLayer,\r\n unregBufferWFSLayer,\r\n buffer2WFSLayer,\r\n bufferWFSLayer,\r\n zoneWFSLayer,\r\n approvedSite2WFSLayer,\r\n approvedSiteWFSLayer,\r\n unregSiteWFSLayer,\r\n site2WFSLayer,\r\n siteWFSLayer,\r\n projBuildingPointsWFSLayer,\r\n pmeWFSLayer,\r\n vector13,\r\n vector14,\r\n vector12,\r\n vector10,\r\n vector4,\r\n vector9,\r\n vector6,\r\n vector,\r\n vector2,\r\n vector3,\r\n vector5,\r\n vector7,\r\n vector11,\r\n vector8,\r\n centerPtWFSLayer,\r\n vectorTest,\r\n ],\r\n //layers: [raster, vector4, vector, vector2, vector3, vector5],\r\n overlays: [popupOverlay, coordinatePopup],\r\n view: new View({\r\n //projection: \"EPSG:2326\",\r\n projection: \"EPSG:3857\",\r\n //projection: \"EPSG:4326\",\r\n //center: [114.1045311,22.35],\r\n center: [12709477.933, 2547688.963],\r\n //center: [835593.040, 818023.949],\r\n zoom: 11,\r\n }),\r\n });\r\n\r\n // var drag = new DragOverlay({\r\n // overlays: [popupOverlay],\r\n // });\r\n // map.addInteraction(drag);\r\n\r\n var buttonOn = document.getElementById(\"onoffneighbourlayeron\");\r\n //var buttonOff = document.getElementById(\"onoffneighbourlayeroff\");\r\n buttonOn.style.display = \"none\";\r\n //buttonOff.style.display= \"none\";\r\n\r\n vecLayerID = getUid(vector);\r\n vecLayerID2 = getUid(vector2);\r\n vecLayerID3 = getUid(vector3);\r\n vecLayerID4 = getUid(vector4);\r\n vecLayerID5 = getUid(vector5);\r\n vecLayerID6 = getUid(vector6);\r\n vecLayerID7 = getUid(vector7);\r\n defBuildingWFSLayerID = getUid(defBuildingWFSLayer);\r\n nsrBuildingWFSLayerID = getUid(nsrBuildingWFSLayer);\r\n projBuildingWFSLayerID = getUid(projBuildingWFSLayer);\r\n\r\n /// remove doubl clic zoom event\r\n var dblclickzoom;\r\n map.getInteractions().forEach(function (interaction) {\r\n if (interaction instanceof DoubleClickZoom) {\r\n dblclickzoom = interaction;\r\n }\r\n });\r\n // Remove the interaction from the map.\r\n if (dblclickzoom) {\r\n map.removeInteraction(dblclickzoom);\r\n }\r\n\r\n // // Selection\r\n // const selected = new Style({\r\n // fill: new Fill({\r\n // color: '#eeeeee',\r\n // }),\r\n // // stroke: new Stroke({\r\n // // color: 'rgba(255, 255, 255, 0.7)',\r\n // // width: 2,\r\n // // }),\r\n // // image: new RegularShape({\r\n // // fill: new Fill({color: 'red'}),\r\n // // points: 3,\r\n // // radius: 10,\r\n // // rotation: Math.PI / 4,\r\n // // angle: 0,\r\n // // })\r\n // });\r\n\r\n // function selectStyle(feature) {\r\n // //const color = feature.get('COLOR') || 'rgba(81, 255, 237, 0.1)';\r\n // const color = 'rgba(81, 255, 237, 0)';\r\n // selected.getFill().setColor(color);\r\n // return selected;\r\n // }\r\n // // select interaction working on \"singleclick\"\r\n // const selectSingleClick = new Select({style: selectStyle});\r\n // //const selectSingleClick = new Select();\r\n // if (select !== null) {\r\n // map.removeInteraction(select);\r\n // }\r\n // select = selectSingleClick;\r\n // map.addInteraction(select);\r\n // var zoneOrder;\r\n // var selectedZone = [];\r\n // select.on('select', function (e) {\r\n\r\n // // console.log(e.target.getFeatures().getLength() +\r\n // // ' selected features (last operation selected ' +\r\n // // e.selected.length +\r\n // // ' and deselected ' +\r\n // // e.deselected.length +\r\n // // ' features)');\r\n // console.log(\"Inside selection. This below is selected:\");\r\n // console.log(e.selected);\r\n // console.log(e.target);\r\n // console.log(select);\r\n\r\n // if (isSelectedLayerEqualLayerID(e.target,vecLayerID5)) { // if select equipment point, then do nothing.\r\n // console.log(\"vecLayerID5 is selected\");\r\n // return;\r\n // }\r\n // if (isSelectedLayerEqualLayerID(e.target,vecLayerID4)) { // if select buffer, then do nothing.\r\n // select.getFeatures().clear();\r\n // return;\r\n // }\r\n // if (isAddNSRBuildingMode) {\r\n // if(e.selected.length > 0){\r\n // var currentFeat = e.selected[0];\r\n // if(currentFeat.id_.indexOf(\"Bld_HKSAR2011_wgs84sp\") >=0 )\r\n // {\r\n // vecSource7.addFeature(currentFeat);\r\n // vecSource7.refresh();\r\n // }\r\n // }\r\n\r\n // // var loopIndex = 0;\r\n // // select.getFeatures().forEach((feature) => {\r\n // // console.log(feature.id_)\r\n // // if(feature.id_.indexOf(\"Bld_HKSAR2011_wgs84sp\") >=0 )\r\n // // {\r\n\r\n // // }\r\n // // else\r\n // // {\r\n // // select.getFeatures().splice(loopIndex,1);\r\n // // loopIndex = loopIndex - 1;\r\n // // }\r\n // // loopIndex = loopIndex + 1;\r\n // // });\r\n // }\r\n // else if (isRemoveNSRBuildingMode) {\r\n\r\n // }\r\n // else if (isChangeNoiseLevelNSRBuildingMode ) {\r\n\r\n // }\r\n\r\n // // if (isZoneOrderMode)\r\n // // {\r\n // // console.log(\"inside zoneordermode\");\r\n // // if(e.selected.length === 0)\r\n // // {\r\n // // return;\r\n // // }\r\n // // if(selectedZone.length === 0) {\r\n // // selectedZone.push(e.selected[0].getId());\r\n // // }\r\n // // else\r\n // // {\r\n // // if(selectedZone.indexOf(e.selected[0].getId()) !== -1)\r\n // // {\r\n // // return;\r\n // // }\r\n // // else\r\n // // {\r\n // // selectedZone.push(e.selected[0].getId());\r\n // // }\r\n // // }\r\n // // if(zoneOrder === 0)\r\n // // {\r\n // // vecSource3.clear();\r\n // // }\r\n // // zoneOrder = zoneOrder + 1;\r\n // // var currentFeat = e.selected[0];\r\n // // // console.log(\"zoneOrder\");\r\n // // // console.log(zoneOrder);\r\n // // // console.log(\"currentFeat\");\r\n // // // console.log(currentFeat);\r\n\r\n // // // create centroid\r\n // // //var centroidFeat = getCentroid(currentFeat);\r\n // // var centroidFeat = getCenterOfMass(currentFeat);\r\n // // centroidFeat.set('order', zoneOrder.toString());\r\n // // vecSource3.addFeature(centroidFeat);\r\n // // // console.log(\"centroidFeat\")\r\n // // // console.log(centroidFeat)\r\n // // // console.log(\"vecSource3.getFeatures().length\")\r\n // // // console.log(vecSource3.getFeatures().length)\r\n // // // console.log(e.target.getFeatures().getLength() +\r\n // // // ' selected features (last operation selected ' +\r\n // // // e.selected.length +\r\n // // // ' and deselected ' +\r\n // // // e.deselected.length +\r\n // // // ' features)');\r\n // // // console.log(e.selected.getId());\r\n // // }\r\n // // else{\r\n // // console.log(\"Inside -ELSE- of zoneordermode.\");\r\n // // zoneOrder = 0;\r\n // // selectedZone = [];\r\n // // }\r\n // });\r\n\r\n //showYesNoModal(\"No NSR building is found within the study are site buffer. Please try enlarging the study area. Do you want to enlarge the study area buffer?\");\r\n\r\n map.on(\"singleclick\", function (e) {\r\n console.log(\"isAddNSRBuildingMode\", isAddNSRBuildingMode);\r\n console.log(\"isRemoveNSRBuildingMode\", isRemoveNSRBuildingMode);\r\n console.log(\"isChangeNoiseLevelNSRBuildingMode\", isChangeNoiseLevelNSRBuildingMode);\r\n const clickedCoordinate = e.coordinate;\r\n vecSource14.clear(); // clear the notional points\r\n if (isAddNSRBuildingMode) {\r\n var nsrLayerClicked = false;\r\n map.forEachFeatureAtPixel(e.pixel, function (feature) {\r\n if (feature.id_.indexOf(\"Building_2022_nsr_wgs84sp_noZM\") >= 0) {\r\n nsrLayerClicked = true;\r\n }\r\n });\r\n\r\n if (nsrLayerClicked) {\r\n return;\r\n }\r\n\r\n map.forEachFeatureAtPixel(e.pixel, function (feature) {\r\n //if(feature.id_.indexOf(\"Bld_HKSAR2011_wgs84sp\") >=0 )\r\n if (feature.id_.indexOf(\"Building_2022_wgs84sp_noZM\") >= 0) {\r\n var selIndex = selectedDefaultBuildingFeats.indexOf(feature);\r\n if (selIndex < 0) {\r\n selectedDefaultBuildingFeats.push(feature);\r\n feature.setStyle(selectedBuildingStyle);\r\n } else {\r\n console.log(\"already exist\");\r\n console.log(selIndex);\r\n selectedDefaultBuildingFeats.splice(selIndex, 1);\r\n feature.setStyle(undefined);\r\n }\r\n }\r\n });\r\n console.log(selectedDefaultBuildingFeats);\r\n } else if (isRemoveNSRBuildingMode) {\r\n map.forEachFeatureAtPixel(e.pixel, function (feature) {\r\n console.log(\"feature.id_\", feature.id_);\r\n //if(feature.id_.indexOf(\"Bld_HKSAR2011_wgs84sp\") >=0 )\r\n if (feature.id_.indexOf(\"Building_2022_nsr_wgs84sp_noZM\") >= 0) {\r\n var selIndex = selectedDefaultBuildingFeats.indexOf(feature);\r\n if (selIndex < 0) {\r\n selectedDefaultBuildingFeats.push(feature);\r\n feature.setStyle(selectedBuildingStyle);\r\n } else {\r\n console.log(\"already exist\");\r\n console.log(selIndex);\r\n selectedDefaultBuildingFeats.splice(selIndex, 1);\r\n feature.setStyle(undefined);\r\n }\r\n }\r\n });\r\n } else if (isChangeNoiseLevelNSRBuildingMode) {\r\n map.forEachFeatureAtPixel(e.pixel, function (feature) {\r\n if (feature.id_.indexOf(\"projectNSRBuilding\") >= 0) {\r\n var selIndex = selectedDefaultBuildingFeats.indexOf(feature);\r\n if (selIndex < 0) {\r\n selectedDefaultBuildingFeats.push(feature);\r\n feature.setStyle(selectedBuildingStyle);\r\n } else {\r\n console.log(\"already exist\");\r\n console.log(selIndex);\r\n selectedDefaultBuildingFeats.splice(selIndex, 1);\r\n feature.setStyle(undefined);\r\n }\r\n }\r\n });\r\n } else if (isRemoveNSRPointsMode) {\r\n map.forEachFeatureAtPixel(e.pixel, function (feature) {\r\n console.log(\"feature\", feature);\r\n //if(feature.id_.indexOf(\"Bld_HKSAR2011_wgs84sp\") >=0 )\r\n if (feature.id_.indexOf(\"projectNSRPoints\") >= 0) {\r\n var selIndex = selectedDefaultBuildingFeats.indexOf(feature);\r\n if (selIndex < 0) {\r\n selectedDefaultBuildingFeats.push(feature);\r\n feature.setStyle(selectedBuildingStyle);\r\n } else {\r\n console.log(\"already exist\");\r\n console.log(selIndex);\r\n selectedDefaultBuildingFeats.splice(selIndex, 1);\r\n feature.setStyle(undefined);\r\n }\r\n }\r\n });\r\n } else if (isAfterCalculation) {\r\n //### this is to get the popup menu to show calculation results after calculation\r\n map.forEachFeatureAtPixel(e.pixel, function (feature) {\r\n // console.log(\"feature\");\r\n // console.log(feature);\r\n if (typeof feature.getId() === \"number\") {\r\n //do nothing\r\n } else if (feature.getId().indexOf(\"projectNSRPoints\") >= 0 && feature.style_ !== null) {\r\n // selection always has 2 feats at the same spot. only take the one that has style.\r\n console.log(\"feature\");\r\n console.log(feature);\r\n // return;\r\n if (feature.get(\"totalcnl\")) {\r\n //console.log(\"feature\", feature);\r\n var buildingid = feature.get(\"buildingid\");\r\n console.log(\"selected buildingid:\", buildingid);\r\n var aNSRName = feature.get(\"nsrname\");\r\n console.log(\"aNSRName\");\r\n console.log(aNSRName);\r\n if (!aNSRName) {\r\n aNSRName = \"\";\r\n }\r\n var criteriaVal = feature.get(\"noisecriteria\");\r\n var bldName = feature.get(\"BldName_E\");\r\n var ttlCNL = feature.get(\"totalcnl\");\r\n var ttlCNLMit = feature.get(\"totalcnlmit\");\r\n var detailInJSONString = feature.get(\"calcvalues\");\r\n var neighbor = feature.get(\"othernoisecriteria\") ? feature.get(\"othernoisecriteria\") : \"No Neighbor Site\";\r\n var neighbornoise = feature.get(\"totalcnlwithneighbor\") ? feature.get(\"totalcnlwithneighbor\") : feature.get(\"totalcnlmit\");\r\n var neighbor = feature.get(\"othernoisecriteria\") ? feature.get(\"othernoisecriteria\") : \"No Neighbor Site\";\r\n var neighbornoise = feature.get(\"totalcnlwithneighbor\") ? feature.get(\"totalcnlwithneighbor\") : feature.get(\"totalcnlmit\");\r\n var neighbor = feature.get(\"othernoisecriteria\") ? feature.get(\"othernoisecriteria\") : \"No Neighbor Site\";\r\n var neighbornoise = feature.get(\"totalcnlwithneighbor\") ? feature.get(\"totalcnlwithneighbor\") : feature.get(\"totalcnlmit\");\r\n var detailObj = JSON.parse(detailInJSONString);\r\n var conclusionText = \"\";\r\n var isExceed = false;\r\n var theTtlCNL = ttlCNL;\r\n if (ttlCNLMit > 0 && ttlCNLMit !== ttlCNL) {\r\n theTtlCNL = ttlCNLMit;\r\n }\r\n if (Math.round(theTtlCNL) <= Math.round(criteriaVal)) {\r\n conclusionText = \"Satisfy noise criteria\";\r\n } else {\r\n conclusionText = \"Exceed noise criteria\";\r\n isExceed = true;\r\n }\r\n\r\n // get the required elements\r\n var popupConclusionElement = document.getElementById(\"popup-conclusion\");\r\n var popupNSRNameElement = document.getElementById(\"popup-nsrname\");\r\n var popupMaxUnmitCNLElement = document.getElementById(\"popup-maxunmitcnl\");\r\n var popupMaxMitCNLElement = document.getElementById(\"popup-maxmitcnl\");\r\n var popupMaxDatesElement = document.getElementById(\"popup-maxdates\");\r\n var popupCriteriaElement = document.getElementById(\"popup-noisecriteria\");\r\n var popupBldNameElement = document.getElementById(\"popup-buildingname\");\r\n var popupNieghborElement = document.getElementById(\"popup-neighbor\");\r\n var popupNieghborNoiseElement = document.getElementById(\"popup-neighbornoise\");\r\n var popupDetailTableElement = document.getElementById(\"popup-listtable\");\r\n var popupMitigateButtonElement = document.getElementById(\"popup-mitButton\");\r\n var popupDistButtonElement = document.getElementById(\"popup-distButton\");\r\n var popupDistButtonElement = document.getElementById(\"popup-distButton\");\r\n\r\n //delete all TR in the table first (reset the table)\r\n while (popupDetailTableElement.hasChildNodes()) {\r\n popupDetailTableElement.removeChild(popupDetailTableElement.lastChild);\r\n }\r\n\r\n //recreate single title\r\n var tr0 = document.createElement(\"tr\");\r\n var th0 = document.createElement(\"th\");\r\n th0.setAttribute(\"colspan\", \"2\");\r\n th0.innerHTML = \"Mitigated\";\r\n tr0.appendChild(th0);\r\n popupDetailTableElement.appendChild(tr0);\r\n\r\n //recreate TH\r\n var tr1 = document.createElement(\"tr\");\r\n var th1 = document.createElement(\"th\");\r\n var th2 = document.createElement(\"th\");\r\n //var th3 = document.createElement(\"th\");\r\n //th1.innerHTML = \"Start Date\";\r\n th1.innerHTML = \"Task Code\";\r\n th2.innerHTML = \"Total CNL\";\r\n // th2.innerHTML = \"End Date\";\r\n // th3.innerHTML = \"Total CNL\";\r\n tr1.appendChild(th1);\r\n tr1.appendChild(th2);\r\n //tr1.appendChild(th3);\r\n popupDetailTableElement.appendChild(tr1);\r\n\r\n // create the remaining rows\r\n var maxVal = 0;\r\n var maxDates = \"\";\r\n detailObj = detailObj.filter((d) => d.totalCNL);\r\n for (let i = 0; i < detailObj.length; i++) {\r\n var itemObj = detailObj[i];\r\n\r\n if (itemObj.ismitigated == 0) {\r\n continue;\r\n }\r\n //var dateGroup = itemObj.dateGroup;\r\n var zonetask = itemObj.zonetask;\r\n var totCNL = itemObj.totalCNL.toFixed(1);\r\n // var dateArr = dateGroup.split(\"#\");\r\n // var sDate = new Date(dateArr[0]);\r\n // var eDate = new Date(dateArr[1]);\r\n // var taskArr = itemObj.tasks;\r\n\r\n // if(maxVal < totCNL) {\r\n // maxVal = totCNL;\r\n // maxDates = getSimpleDate(sDate) + \" - \" + getSimpleDate(eDate);\r\n // }\r\n\r\n var tr2 = document.createElement(\"tr\");\r\n var td1 = document.createElement(\"td\");\r\n td1.style.minWidth = \"70px\";\r\n var td2 = document.createElement(\"td\");\r\n //var td3 = document.createElement(\"td\");\r\n // td1.innerHTML = getSimpleDate(sDate);\r\n // td2.innerHTML = getSimpleDate(eDate);\r\n td1.innerHTML = zonetask;\r\n td2.innerHTML = totCNL;\r\n // td3.innerHTML = totCNL;\r\n if (Math.round(itemObj.totalCNL) <= Math.round(criteriaVal)) {\r\n td2.style.color = \"green\";\r\n } else {\r\n td2.style.color = \"red\";\r\n }\r\n tr2.appendChild(td1);\r\n tr2.appendChild(td2);\r\n // tr2.appendChild(td3);\r\n popupDetailTableElement.appendChild(tr2);\r\n\r\n // // insert tasks\r\n\r\n // for(let t=0; t < taskArr.length; t++) {\r\n // var currentTask = taskArr[t];\r\n // var tr3 = document.createElement(\"tr\");\r\n // var td31 = document.createElement(\"td\");\r\n // var td32 = document.createElement(\"td\");\r\n // td32.setAttribute(\"colspan\",\"2\");\r\n // td32.style.textAlign=\"left\";\r\n // td32.innerHTML = currentTask;\r\n // td32.style.minWidth=\"300px\";\r\n\r\n // tr3.appendChild(td31);\r\n // tr3.appendChild(td32);\r\n // popupDetailTableElement.appendChild(tr3);\r\n // }\r\n }\r\n\r\n //recreate single title\r\n var tr4 = document.createElement(\"tr\");\r\n var th4 = document.createElement(\"th\");\r\n th4.setAttribute(\"colspan\", \"2\");\r\n th4.innerHTML = \"Un-Mitigated\";\r\n tr4.appendChild(th4);\r\n popupDetailTableElement.appendChild(tr4);\r\n\r\n //recreate TH\r\n var tr5 = document.createElement(\"tr\");\r\n var th3 = document.createElement(\"th\");\r\n var th4 = document.createElement(\"th\");\r\n th3.innerHTML = \"Task Code\";\r\n th4.innerHTML = \"Total CNL\";\r\n tr5.appendChild(th3);\r\n tr5.appendChild(th4);\r\n popupDetailTableElement.appendChild(tr5);\r\n\r\n // create the remaining rows\r\n for (let i = 0; i < detailObj.length; i++) {\r\n var itemObj = detailObj[i];\r\n\r\n if (itemObj.ismitigated == 1) {\r\n continue;\r\n }\r\n\r\n var zonetask = itemObj.zonetask;\r\n var totCNL = itemObj.totalCNL.toFixed(1);\r\n\r\n var tr6 = document.createElement(\"tr\");\r\n var td3 = document.createElement(\"td\");\r\n td3.style.minWidth = \"70px\";\r\n var td4 = document.createElement(\"td\");\r\n td3.innerHTML = zonetask;\r\n td4.innerHTML = totCNL;\r\n if (Math.round(itemObj.totalCNL) <= Math.round(criteriaVal)) {\r\n td4.style.color = \"green\";\r\n } else {\r\n td4.style.color = \"red\";\r\n }\r\n tr6.appendChild(td3);\r\n tr6.appendChild(td4);\r\n popupDetailTableElement.appendChild(tr6);\r\n }\r\n\r\n popupConclusionElement.innerHTML = conclusionText;\r\n if (isExceed) {\r\n popupConclusionElement.style.color = \"red\";\r\n } else {\r\n popupConclusionElement.style.color = \"green\";\r\n }\r\n popupNSRNameElement.innerHTML = aNSRName;\r\n popupMaxUnmitCNLElement.innerHTML = ttlCNL.toFixed(1);\r\n popupMaxMitCNLElement.innerHTML = ttlCNLMit.toFixed(1);\r\n //popupMaxDatesElement.innerHTML = maxDates;\r\n popupCriteriaElement.innerHTML = criteriaVal;\r\n popupNieghborElement.innerHTML = neighbor.replace(\"#\", \", \");\r\n popupNieghborNoiseElement.innerHTML = neighbornoise.toFixed(1);\r\n popupNieghborElement.innerHTML = neighbor.replace(\"#\", \", \");\r\n popupNieghborNoiseElement.innerHTML = neighbornoise.toFixed(1);\r\n popupBldNameElement.innerHTML = bldName;\r\n\r\n //popupContentElement.innerHTML = feature.get(\"totalcnl\");\r\n popupOverlay.setPosition(clickedCoordinate);\r\n\r\n // mitigate button action\r\n popupMitigateButtonElement.onclick = function () {\r\n //store building id to global var\r\n buildingIdForMitigation = buildingid;\r\n // window.location.href = SERVER_URL2 + \"/#/Mitigation\";\r\n window.location.href = `${window.location.origin}/#/Mitigation/1`;\r\n\r\n //alert(\"works\");\r\n };\r\n\r\n // notional distance button action\r\n popupDistButtonElement.onclick = function () {\r\n //store building id to global var\r\n window.location.href = `${window.location.origin}/#/NotionalDistance/${feature.get(\"id\")}`;\r\n };\r\n console.log(\"notionalPointsFeatArr\", notionalPointsFeatArr);\r\n console.log(\r\n \"notionalPointsFeatArr\",\r\n notionalPointsFeatArr.filter((a) => a.get(\"buildingid\") === buildingid)\r\n );\r\n //show notional points of this nsr point's building id\r\n notionalPointsFeatArr.filter((a) => a.get(\"buildingid\") === buildingid).forEach((f) => vecSource14.addFeature(f));\r\n }\r\n }\r\n });\r\n } else {\r\n //console.log(\"else\");\r\n map.forEachFeatureAtPixel(e.pixel, function (feature) {\r\n console.log(\"feature.id_\", feature.id_);\r\n });\r\n }\r\n });\r\n\r\n map.on(\"pointermove\", function (e) {\r\n if (drawing) {\r\n const clickedCoordinate = e.coordinate;\r\n if (clickedCoordinate.length > 1) {\r\n coordinatePopup.setPosition(clickedCoordinate);\r\n let hkgrid = transform(clickedCoordinate, \"EPSG:3857\", \"EPSG:2326\");\r\n document.getElementById(\"northing\").innerHTML = Math.round(hkgrid[1] * 1000) / 1000;\r\n document.getElementById(\"easting\").innerHTML = Math.round(hkgrid[0] * 1000) / 1000;\r\n }\r\n } else {\r\n coordinatePopup.setPosition(undefined);\r\n }\r\n });\r\n};\r\n\r\n// ### This function is for VUE to obtain the selected building ID to show in the mitigation. The value is populated after clicking Mitigation button in\r\n// ### the calculated point's pop-up window.\r\nolMap.getBuildingIdForMitigation = function () {\r\n return buildingIdForMitigation;\r\n};\r\n\r\n// ### This function is for VUE to reset the selected building ID to show in the mitigation.\r\nolMap.resetBuildingIdForMitigation = function () {\r\n console.log(\"resetng buildingIdForMitigation\");\r\n buildingIdForMitigation = 0;\r\n};\r\n\r\n// ### This function handle the site drawing, after clicking draw button on VUE.\r\nolMap.switchOnSiteDraw = function (bufferRadius) {\r\n vector3.setVisible(true);\r\n centerPtWFSLayer.setVisible(false);\r\n drawing = true;\r\n var thisLayer = getLayerByTitle(\"siteWFSLayer\");\r\n thisLayer.values_.visible = false;\r\n var thisLayer = getLayerByTitle(\"site2WFSLayer\");\r\n thisLayer.values_.visible = false;\r\n\r\n if (bufferRadius) {\r\n if (bufferRadius > 0) {\r\n radiusBuffer = bufferRadius;\r\n }\r\n }\r\n\r\n siteDraw = new Draw({\r\n source: vecSource,\r\n type: \"Polygon\",\r\n });\r\n map.addInteraction(siteDraw);\r\n\r\n siteDraw.on(\"drawend\", function (e) {\r\n // // var newProjectPanel = document.getElementById(\"newProjectMenuPanel\");\r\n // // newProjectPanel.style.height = \"500px\";\r\n\r\n //clear zone Source\r\n vecSource.clear();\r\n\r\n // //clear zone order label\r\n // vecSource3.clear();\r\n\r\n // //clear buffer source\r\n // vecSource4.clear();\r\n\r\n // //clear site source\r\n // vecSource6.clear();\r\n\r\n // var currentFeat = e.feature;\r\n\r\n // var clonefeat = currentFeat.clone();\r\n // clonefeat.setId(currentFeat.getId());\r\n // vecSource6.addFeature(clonefeat);\r\n\r\n // // var jstsGeom = parser.read(e.feature.getGeometry());\r\n // // var buffered = jstsGeom.buffer(300);\r\n // // var bufferedFeat = parser.write(buffered);\r\n\r\n // // var cusGeoJSON = new GeoJSON();\r\n // // var cusfeatGeoJSON1 = cusGeoJSON.writeFeatureObject(currentFeat);\r\n // // var cusfeatTurfGeom1 = turf.getGeom(cusfeatGeoJSON1);\r\n // // var cusbufferredTurfGeom = turf.buffer(cusfeatTurfGeom1, 300, {units: 'meters'});\r\n // // //return geoJSON.readFeature(bufferredTurfGeom);\r\n // // var bufferedFeat = cusGeoJSON.readFeature(cusbufferredTurfGeom);\r\n\r\n // //var geoJSON = new GeoJSON();\r\n // //var featGeoJSON1 = geoJSON.writeFeatureObject(currentFeat);\r\n // //var jstsReader = new GeoJSONReader();\r\n\r\n // //var bufferedFeat = geoJSON.readFeature(featGeoJSON2);\r\n\r\n // console.log(\"Create buffer with radius: \",radiusBuffer );\r\n // var bufferedFeat = getPolygonBuffer(currentFeat, radiusBuffer);\r\n // // console.log(\"bufferedFeat\")\r\n // // console.log(bufferedFeat)\r\n // vecSource4.addFeature(bufferedFeat);\r\n\r\n // // // add site to the modifiedfeaturelist\r\n // // modifiedFeatureList.push(e.feature);\r\n // // var task = \"insert\";\r\n // // var geoserverWorkspace = \"webcnmpws\";\r\n // // var editLayer = \"sites\";\r\n // // console.log(\"about to save edits\");\r\n // // saveEdits(task, geoserverWorkspace, editLayer);\r\n\r\n // // add default index 1 after drawing site polygon. put the point to the label layer source (vecSource3), set the label to show on 'order' attribute.\r\n // var index = 1;\r\n // var centroidFeat = getCenterOfMass(currentFeat);\r\n // console.log(centroidFeat);\r\n // centroidFeat.set('order', \"zone \" + index.toString());\r\n // vecSource3.addFeature(centroidFeat);\r\n // currentFeat.set('id', index);\r\n\r\n // //determine the district from the centroid location\r\n // getDistrictBySiteCentroid(centroidFeat.getGeometry());\r\n\r\n tempZoneFeatures = null;\r\n tempSiteFeatures = e.feature;\r\n\r\n onSiteDrawProcess(e.feature, radiusBuffer);\r\n\r\n //console.log(vecSource.getFeatures())\r\n //console.log(vecSource2.getFeatures())\r\n map.removeInteraction(siteDraw);\r\n });\r\n};\r\n\r\n// ### clearing the site draw from the map.\r\nolMap.clearSiteDraw = function () {\r\n clearTempLayers();\r\n};\r\n\r\nolMap.updateBuffer = function (radiusBuffer) {\r\n if (tempSiteFeatures !== null) {\r\n console.log(\"tempSiteFeatures\");\r\n updateBuffer(tempSiteFeatures, radiusBuffer);\r\n }\r\n if (tempZoneFeatures !== null) {\r\n console.log(\"onZoneDrawProcess\");\r\n updateBuffer(tempZoneFeatures, radiusBuffer);\r\n }\r\n};\r\n\r\n// ### This function handle the unregistared site drawing, after clicking draw button on VUE.\r\nolMap.switchOnUnregSiteDraw = function (bufferRadius, affectDegree) {\r\n var thisLayer = getLayerByTitle(\"unregSiteWFSLayer\");\r\n thisLayer.values_.visible = false;\r\n\r\n if (bufferRadius) {\r\n if (bufferRadius > 0) {\r\n radiusBuffer = bufferRadius;\r\n }\r\n }\r\n\r\n siteDraw = new Draw({\r\n source: vecSource9,\r\n type: \"Polygon\",\r\n });\r\n map.addInteraction(siteDraw);\r\n\r\n siteDraw.on(\"drawend\", function (e) {\r\n var featNo = vecSource9.getFeatures().length + 1;\r\n\r\n var thisFeat = e.feature;\r\n thisFeat.setId(featNo);\r\n\r\n onUnregSiteDrawProcess(e.feature, radiusBuffer, featNo, affectDegree);\r\n\r\n map.removeInteraction(siteDraw);\r\n });\r\n};\r\n// ### clearing the site draw from the map.\r\nolMap.clearUnregSiteDraw = function () {\r\n clearUnregSiteTempLayers();\r\n};\r\n\r\n// ### reseting the in-memory layers.\r\nfunction clearTempLayers() {\r\n vecSource.clear(); //the zones\r\n vecSource3.clear(); // zone index label\r\n vecSource4.clear(); // buffer\r\n vecSource6.clear(); //site\r\n vecTestSource.clear(); //red / green calculated nsr point\r\n vecSource8.clear(); // uncalculated nsr point - purple\r\n vecSource7.clear(); //selected feature.\r\n vecSource5.clear(); // equipment points\r\n map.removeInteraction(siteDraw);\r\n isAfterCalculation = false;\r\n}\r\n// ### reseting the in-memory layers for unregistered sites.\r\nfunction clearUnregSiteTempLayers() {\r\n vecSource9.clear(); //unreg Site feature.\r\n vecSource10.clear(); // unregeg Site buffer\r\n}\r\n\r\n// ### reset the WFS Layers visibility\r\nfunction makeWFSLayersInvisible() {\r\n var thisLayer = getLayerByTitle(\"projectBuildingLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"projectBuildingPointsLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"siteWFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"site2WFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"zoneWFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"bufferWFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"buffer2WFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"pmeWFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"unregSiteWFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"unregBufferWFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n thisLayer = getLayerByTitle(\"centerPtWFSLayer\");\r\n if (thisLayer) {\r\n thisLayer.values_.visible = false;\r\n }\r\n}\r\n\r\n// ### site processes after site draw\r\nfunction onSiteDrawProcess(theFeature, radiusBuffer) {\r\n //clear zone order label\r\n vecSource3.clear();\r\n\r\n //clear buffer source\r\n vecSource4.clear();\r\n\r\n //clear site source\r\n vecSource6.clear();\r\n\r\n var currentFeat = theFeature;\r\n\r\n var clonefeat = currentFeat.clone();\r\n clonefeat.setId(currentFeat.getId());\r\n vecSource6.addFeature(clonefeat);\r\n\r\n console.log(\"Create buffer with radius: \", radiusBuffer);\r\n var bufferedFeat = getPolygonBuffer(currentFeat, radiusBuffer);\r\n vecSource4.addFeature(bufferedFeat);\r\n\r\n // add default index 1 after drawing site polygon. put the point to the label layer source (vecSource3), set the label to show on 'order' attribute.\r\n var index = 1;\r\n var centroidFeat = getCenterOfMass(currentFeat);\r\n console.log(centroidFeat);\r\n centroidFeat.set(\"order\", \"zone \" + index.toString());\r\n vecSource3.addFeature(centroidFeat);\r\n currentFeat.set(\"id\", index);\r\n\r\n //determine the district from the centroid location\r\n //getDistrictBySiteCentroid(centroidFeat.getGeometry());\r\n getDistrictBySitePolygon(currentFeat.getGeometry());\r\n\r\n checkWhetherBufferIntersectAnyNSRBuildings(bufferedFeat);\r\n}\r\n\r\n// ### unregisered site processes after site draw\r\nfunction onUnregSiteDrawProcess(theFeature, radiusBuffer, featNo, affectdegree) {\r\n // //clear unreg Site buffer source\r\n // vecSource10.clear();\r\n\r\n var currentFeat = theFeature;\r\n console.log(\"Create buffer with radius: \", radiusBuffer);\r\n var bufferedFeat = getPolygonBuffer(currentFeat, radiusBuffer);\r\n bufferedFeat.setId(featNo);\r\n bufferedFeat.set(\"affectdegree\", affectdegree);\r\n vecSource10.addFeature(bufferedFeat);\r\n}\r\n// ### validation for SHP upload.\r\nfunction uploadSHPValidationPass(theFeatures) {\r\n var resultMessage = [];\r\n //### check if feature at least 1\r\n console.log(\"theFeatures\");\r\n console.log(theFeatures.length);\r\n if (theFeatures.length < 1) {\r\n resultMessage.push(\"There is 0 polygon on your shapefile. Please upload another shapefile.\");\r\n }\r\n var testFeat = theFeatures[0];\r\n //### Only polygon is accepted\r\n if (testFeat.getGeometry().getType() !== \"Polygon\") {\r\n resultMessage.push(\"Your shapefile does not contain Polygon geometry type. Please upload another shapefile.\");\r\n }\r\n // //### check the projection ==> Cannot use because all features will have EPSG:4326\r\n // if(theGeoJSON.dataProjection.getCode() !== \"EPSG:4326\") {\r\n // resultMessage.push(\"Your shapefile does not have . Please upload another shapefile.\");\r\n // }\r\n\r\n return resultMessage;\r\n}\r\n\r\n// ### drawing site on map from shp upload\r\nolMap.siteDrawByGJSON = function (file, bufferRadius, callback) {\r\n console.log(\"enter siteDrawByGJSON\");\r\n //var wgs84sp = new Projection('EPSG:3857');\r\n var theRadius = bufferRadius;\r\n loadshp(\r\n { url: file, encoding: \"utf-8\" },\r\n function (geoJSON) {\r\n console.log(geoJSON);\r\n\r\n let testJson = new GeoJSON();\r\n const sitefeatures = testJson.readFeatures(geoJSON, {\r\n featureProjection: map.getView().getProjection(),\r\n });\r\n console.log(map.getView().getProjection());\r\n console.log(\"testJson\");\r\n console.log(testJson);\r\n // console.log(\"sitefeatures\");\r\n // console.log(sitefeatures);\r\n var valMsgs = uploadSHPValidationPass(sitefeatures);\r\n if (valMsgs.length > 0) {\r\n var msg = valMsgs.join(\"

\");\r\n showModal(msg);\r\n callback(false);\r\n } else {\r\n var siteFeatureFirst = sitefeatures[0];\r\n // console.log(siteFeatureFirst.getGeometry().getType());\r\n\r\n var thisLayer = getLayerByTitle(\"zoneLayer\");\r\n thisLayer.getSource().clear();\r\n thisLayer.getSource().addFeature(siteFeatureFirst);\r\n console.log(thisLayer.getSource());\r\n map.getView().fit(thisLayer.getSource().getExtent());\r\n\r\n tempZoneFeatures = null;\r\n tempSiteFeatures = siteFeatureFirst;\r\n\r\n onSiteDrawProcess(siteFeatureFirst, theRadius);\r\n\r\n callback(true);\r\n }\r\n },\r\n function (error) {\r\n alert(error);\r\n }\r\n );\r\n\r\n //\r\n // console.log(sitefeatures);\r\n // console.log(siteFeatureFirst);\r\n // var thisLayer = getLayerByTitle(\"siteWFSLayer\");\r\n // thisLayer.values_.visible = false;\r\n\r\n // var siteFeat = new Feature({\r\n // geometry: new Polygon(siteFeatureFirst.getGeometry().getCoordinates())\r\n // });\r\n // // var clonefeat = siteFeatureFirst.clone();\r\n // // clonefeat.setId(siteFeatureFirst.getId());\r\n\r\n // vecSource.addFeature(siteFeat);\r\n};\r\n\r\n// ### drawing zone on map from shp upload\r\nolMap.zoneDrawByGJSON = function (file, bufferRadius, callback) {\r\n console.log(\"enter zoneDrawByGJSON\");\r\n //var wgs84sp = new Projection('EPSG:3857');\r\n var theRadius = bufferRadius;\r\n loadshp(\r\n { url: file, encoding: \"utf-8\" },\r\n function (geoJSON) {\r\n console.log(geoJSON);\r\n let testJson = new GeoJSON();\r\n const zonefeatures = testJson.readFeatures(geoJSON, {\r\n featureProjection: map.getView().getProjection(),\r\n });\r\n console.log(map.getView().getProjection());\r\n console.log(\"testJson\");\r\n console.log(testJson);\r\n var valMsgs = uploadSHPValidationPass(zonefeatures);\r\n if (valMsgs.length > 0) {\r\n var msg = valMsgs.join(\"

\");\r\n showModal(msg);\r\n callback(0, [], false);\r\n } else {\r\n var thisLayer = getLayerByTitle(\"zoneLayer\");\r\n thisLayer.getSource().clear();\r\n // console.log(zonefeatures);\r\n //get all fields to set to field option combobox - get all except geometry\r\n var firstFeat = zonefeatures[0];\r\n var allFields = Object.keys(firstFeat.getProperties());\r\n var fieldsToReturn = [];\r\n for (let i = 0; i < allFields.length; i++) {\r\n var aField = allFields[i];\r\n if (!aField.toLocaleLowerCase().includes(\"geom\")) {\r\n fieldsToReturn.push(aField);\r\n }\r\n }\r\n\r\n // put all geojson features into zone layer\r\n for (let i = 0; i < zonefeatures.length; i++) {\r\n var zoneFeature = zonefeatures[i];\r\n zoneFeature.set(\"id\", i + 1);\r\n //console.log(Object.keys(zoneFeature.getProperties()));\r\n //console.log(zoneFeature.getGeometry().getCoordinates());\r\n thisLayer.getSource().addFeature(zoneFeature);\r\n }\r\n map.getView().fit(thisLayer.getSource().getExtent());\r\n\r\n callback(zonefeatures.length, fieldsToReturn, true);\r\n\r\n tempSiteFeatures = null;\r\n tempZoneFeatures = zonefeatures;\r\n\r\n onZoneDrawProcess(zonefeatures, theRadius);\r\n }\r\n },\r\n function (error) {\r\n alert(error);\r\n }\r\n );\r\n};\r\n\r\n// ### setting the zone name from shp's attribute table field, from shp upload\r\nolMap.getZoneNameByField = function (fieldName, callback) {\r\n var thisLayer = getLayerByTitle(\"zoneLayer\");\r\n var allZoneFeatures = thisLayer.getSource().getFeatures();\r\n var zoneNames = [];\r\n vecSource3.clear();\r\n for (let i = 0; i < allZoneFeatures.length; i++) {\r\n for (let j = 0; j < allZoneFeatures.length; j++) {\r\n var curFeat = allZoneFeatures[j];\r\n var curFeatId = curFeat.get(\"id\");\r\n var curZoneName = curFeat.get(fieldName);\r\n if (curFeatId === i + 1) {\r\n zoneNames.push(curZoneName);\r\n\r\n var centroidFeat = getCenterOfMass(curFeat);\r\n centroidFeat.set(\"order\", curZoneName);\r\n vecSource3.addFeature(centroidFeat);\r\n //curFeat.set('id', i+1);\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n callback(zoneNames);\r\n};\r\n\r\nolMap.setIsMultipolygon = function (ismultipgn) {\r\n issitemultipolygon = ismultipgn; //==> set the global variable.\r\n};\r\nolMap.getIsMultipolygon = function (ismultipgn) {\r\n return issitemultipolygon; //==> set the global variable.\r\n};\r\n\r\nfunction getGroupOfIntersectedIndex(theFeatures) {\r\n var currentFeat;\r\n var touchedIndexArr = [];\r\n var allTouchedIndexArr = [];\r\n var groupTouchedIndexArr = [];\r\n\r\n if (theFeatures.length > 1) {\r\n //try to make the union keep single polygon, order the polygon\r\n touchedIndexArr.push(0);\r\n allTouchedIndexArr.push(0);\r\n\r\n var allIndexDone = false;\r\n\r\n while (!allIndexDone) {\r\n for (let i = 0; i < touchedIndexArr.length; i++) {\r\n var currentIndex = touchedIndexArr[i];\r\n currentFeat = theFeatures[currentIndex];\r\n for (let j = 1; j < theFeatures.length; j++) {\r\n if (allTouchedIndexArr.includes(j)) {\r\n continue;\r\n }\r\n var checkedFeat = theFeatures[j];\r\n if (isIntersect(currentFeat, checkedFeat)) {\r\n if (!touchedIndexArr.includes(j)) {\r\n touchedIndexArr.push(j);\r\n allTouchedIndexArr.push(j);\r\n }\r\n }\r\n }\r\n }\r\n\r\n groupTouchedIndexArr.push(touchedIndexArr);\r\n var checkAllDone = true;\r\n for (let i = 0; i < theFeatures.length; i++) {\r\n if (!allTouchedIndexArr.includes(i)) {\r\n checkAllDone = false;\r\n touchedIndexArr = [];\r\n touchedIndexArr.push(i);\r\n allTouchedIndexArr.push(i);\r\n break;\r\n }\r\n }\r\n\r\n allIndexDone = checkAllDone;\r\n }\r\n }\r\n\r\n return groupTouchedIndexArr;\r\n}\r\n\r\n// ### Process when drawing the zone from shp upload\r\nfunction onZoneDrawProcess(theFeatures, radiusBuffer) {\r\n //clear zone order label\r\n vecSource3.clear();\r\n\r\n //clear buffer source\r\n vecSource4.clear();\r\n\r\n //clear site source\r\n vecSource6.clear();\r\n\r\n //union all zone polygons to get the site\r\n var currentFeat;\r\n var touchedIndexArr = [];\r\n var allTouchedIndexArr = [];\r\n var groupTouchedIndexArr = [];\r\n\r\n if (theFeatures.length > 1) {\r\n //try to make the union keep single polygon, order the polygon\r\n // touchedIndexArr.push(0);\r\n // allTouchedIndexArr.push(0);\r\n\r\n // var allIndexDone = false;\r\n\r\n // while (!allIndexDone)\r\n // {\r\n // for (let i=0; i < touchedIndexArr.length; i++){\r\n // var currentIndex = touchedIndexArr[i];\r\n // currentFeat = theFeatures[currentIndex];\r\n // for (let j=1; j < theFeatures.length; j++){\r\n // if(allTouchedIndexArr.includes(j)){\r\n // continue;\r\n // }\r\n // var checkedFeat = theFeatures[j];\r\n // if ( isIntersect(currentFeat, checkedFeat)) {\r\n // if(!touchedIndexArr.includes(j)){\r\n // touchedIndexArr.push(j);\r\n // allTouchedIndexArr.push(j);\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n // groupTouchedIndexArr.push(touchedIndexArr);\r\n // var checkAllDone = true;\r\n // for (let i=0; i < theFeatures.length; i++){\r\n // if(!allTouchedIndexArr.includes(i)){\r\n // checkAllDone = false;\r\n // touchedIndexArr = [];\r\n // touchedIndexArr.push(i);\r\n // allTouchedIndexArr.push(i);\r\n // break;\r\n // }\r\n // }\r\n\r\n // allIndexDone= checkAllDone;\r\n // }\r\n groupTouchedIndexArr = getGroupOfIntersectedIndex(theFeatures);\r\n console.log(\"groupTouchedIndexArr\");\r\n console.log(groupTouchedIndexArr);\r\n\r\n // union all individual polygon\r\n var groupUnionArr = [];\r\n\r\n for (let i = 0; i < groupTouchedIndexArr.length; i++) {\r\n var curTouchedIndexArr = groupTouchedIndexArr[i];\r\n\r\n for (let j = 0; j < curTouchedIndexArr.length; j++) {\r\n var currentIndex = curTouchedIndexArr[j];\r\n if (j === 0) {\r\n currentFeat = theFeatures[currentIndex];\r\n } else {\r\n currentFeat = getUnion(currentFeat, theFeatures[currentIndex]);\r\n }\r\n }\r\n groupUnionArr.push(currentFeat);\r\n }\r\n\r\n //union all grouped polygons (multipolygon), if more than 1.\r\n if (groupUnionArr.length > 1) {\r\n console.log(\"groupUnionArr.length\");\r\n console.log(groupUnionArr.length);\r\n issitemultipolygon = true; //==> set the global variable.\r\n for (let i = 0; i < groupUnionArr.length; i++) {\r\n console.log(\"i\");\r\n console.log(i);\r\n if (i === 0) {\r\n currentFeat = groupUnionArr[i];\r\n } else {\r\n currentFeat = getUnion(currentFeat, groupUnionArr[i]);\r\n // if (currentFeat.getGeometry().getType() === \"MultiPolygon\") {\r\n // console.log(\"getType() === 'MultiPolygon'\");\r\n // console.log(\"currentFeat.getGeometry()\");\r\n // console.log(currentFeat.getGeometry());\r\n // console.log(\"currentFeat.getGeometry().getPolygons()\");\r\n // console.log(currentFeat.getGeometry().getPolygons());\r\n // console.log(\"currentFeat.getGeometry().getPolygons()[0].getCoordinates()\");\r\n // console.log(currentFeat.getGeometry().getPolygons()[0].getCoordinates());\r\n // if (currentFeat.getGeometry().getPolygons().length > 1){\r\n // var bufferedFeat = getPolygonBuffer(currentFeat, radiusBuffer);\r\n // var minusBufferFeat = getPolygonBuffer(bufferedFeat, radiusBuffer * -1);\r\n // currentFeat = minusBufferFeat;\r\n // }\r\n\r\n // }\r\n }\r\n }\r\n } else {\r\n issitemultipolygon = false; //==> set the global variable.\r\n }\r\n\r\n // for (let i=0; i < theFeatures.length; i++)\r\n // {\r\n // if(i === 0 ) {\r\n // currentFeat = theFeatures[i];\r\n // }\r\n // else {\r\n // currentFeat = getUnion(currentFeat,theFeatures[i]);\r\n // if (currentFeat.getGeometry().getType() === \"MultiPolygon\") {\r\n // if (currentFeat.getGeometry().getPolygons().length > 1){\r\n // var bufferedFeat = getPolygonBuffer(currentFeat, radiusBuffer);\r\n // var minusBufferFeat = getPolygonBuffer(bufferedFeat, radiusBuffer * -1);\r\n // currentFeat = minusBufferFeat;\r\n // }\r\n\r\n // }\r\n // // console.log(\"currentFeat.getGeometry().getPolygons():\");\r\n // // console.log(currentFeat.getGeometry().getPolygons());\r\n // // console.log(\"currentFeat.getGeometry().getType():\");\r\n // // console.log(currentFeat.getGeometry().getType());\r\n // }\r\n // }\r\n } else {\r\n currentFeat = theFeatures[0];\r\n }\r\n\r\n var clonefeat = currentFeat.clone();\r\n clonefeat.setId(currentFeat.getId());\r\n vecSource6.addFeature(clonefeat);\r\n var centroidFeat = getCenterOfMass(currentFeat);\r\n //check again is the site multipolygon\r\n var testFeats = vecSource6.getFeatures();\r\n for (let i = 0; i < testFeats.length; i++) {\r\n var aFeat = testFeats[i];\r\n console.log(\"vecSource6 aFeat.getGeometry().getType()\");\r\n console.log(aFeat.getGeometry().getType());\r\n if (aFeat.getGeometry().getType() === \"MultiPolygon\") {\r\n issitemultipolygon = true; //==> set the global variable.\r\n break;\r\n }\r\n }\r\n\r\n console.log(\"Create buffer with radius: \", radiusBuffer);\r\n var bufferedFeat = getPolygonBuffer(currentFeat, radiusBuffer, theFeatures.length != groupTouchedIndexArr.length);\r\n vecSource4.addFeature(bufferedFeat);\r\n //check the geometry type of buffer. If issitemultipolygon = true, make sure buffer is also multipolygon.\r\n var bufferNeedToChangeToMultipolygon = false;\r\n if (issitemultipolygon) {\r\n testFeats = vecSource4.getFeatures();\r\n for (let i = 0; i < testFeats.length; i++) {\r\n var aFeat = testFeats[i];\r\n if (aFeat.getGeometry().getType() == \"Polygon\") {\r\n bufferNeedToChangeToMultipolygon = true;\r\n break;\r\n }\r\n }\r\n }\r\n var newBuffFeat = bufferedFeat;\r\n if (bufferNeedToChangeToMultipolygon) {\r\n var newCoordArr = [];\r\n newCoordArr.push(bufferedFeat.getGeometry().getCoordinates());\r\n newBuffFeat = new Feature({\r\n geometry: new MultiPolygon(newCoordArr),\r\n });\r\n vecSource4.clear();\r\n vecSource4.addFeature(newBuffFeat);\r\n }\r\n testFeats = vecSource4.getFeatures();\r\n for (let i = 0; i < testFeats.length; i++) {\r\n var aFeat = testFeats[i];\r\n console.log(\"vecSource4 aFeat.getGeometry().getType()\");\r\n console.log(aFeat.getGeometry().getType());\r\n }\r\n\r\n // console.log(\"theFeatures\");\r\n // console.log(theFeatures);\r\n // add indexes to the zones\r\n for (let i = 0; i < theFeatures.length; i++) {\r\n // var index = i+1;\r\n var currentZoneFeat = theFeatures[i];\r\n var anId = currentZoneFeat.get(\"id\");\r\n var index = anId;\r\n var centroidZoneFeat = getCenterOfMass(currentZoneFeat);\r\n centroidZoneFeat.set(\"order\", \"zone \" + index.toString());\r\n vecSource3.addFeature(centroidZoneFeat);\r\n // currentZoneFeat.set('id', index);\r\n }\r\n // console.log(\"theFeatures\");\r\n // console.log(theFeatures);\r\n\r\n // // add default index 1 after drawing site polygon. put the point to the label layer source (vecSource3), set the label to show on 'order' attribute.\r\n // var index = 1;\r\n // var centroidFeat = getCenterOfMass(currentFeat);\r\n // console.log(centroidFeat);\r\n // centroidFeat.set('order', \"zone \" + index.toString());\r\n // vecSource3.addFeature(centroidFeat);\r\n // currentFeat.set('id', index);\r\n\r\n //determine the district from the centroid location\r\n // getDistrictBySiteCentroid(centroidFeat.getGeometry());\r\n getDistrictBySitePolygon(currentFeat.getGeometry());\r\n //checkWhetherBufferIntersectAnyNSRBuildings(bufferedFeat);\r\n checkWhetherBufferIntersectAnyNSRBuildings(newBuffFeat);\r\n}\r\n\r\nfunction updateBuffer(theFeatures, radiusBuffer) {\r\n //clear buffer source\r\n vecSource4.clear();\r\n //union all zone polygons to get the site\r\n var currentFeat;\r\n var touchedIndexArr = [];\r\n var allTouchedIndexArr = [];\r\n var groupTouchedIndexArr = [];\r\n\r\n if (theFeatures.length > 1) {\r\n groupTouchedIndexArr = getGroupOfIntersectedIndex(theFeatures);\r\n console.log(\"groupTouchedIndexArr\");\r\n console.log(groupTouchedIndexArr);\r\n\r\n // union all individual polygon\r\n var groupUnionArr = [];\r\n\r\n for (let i = 0; i < groupTouchedIndexArr.length; i++) {\r\n var curTouchedIndexArr = groupTouchedIndexArr[i];\r\n\r\n for (let j = 0; j < curTouchedIndexArr.length; j++) {\r\n var currentIndex = curTouchedIndexArr[j];\r\n if (j === 0) {\r\n currentFeat = theFeatures[currentIndex];\r\n } else {\r\n currentFeat = getUnion(currentFeat, theFeatures[currentIndex]);\r\n }\r\n }\r\n groupUnionArr.push(currentFeat);\r\n }\r\n\r\n //union all grouped polygons (multipolygon), if more than 1.\r\n if (groupUnionArr.length > 1) {\r\n console.log(\"groupUnionArr.length\");\r\n console.log(groupUnionArr.length);\r\n issitemultipolygon = true; //==> set the global variable.\r\n for (let i = 0; i < groupUnionArr.length; i++) {\r\n console.log(\"i\");\r\n console.log(i);\r\n if (i === 0) {\r\n currentFeat = groupUnionArr[i];\r\n } else {\r\n currentFeat = getUnion(currentFeat, groupUnionArr[i]);\r\n }\r\n }\r\n } else {\r\n issitemultipolygon = false; //==> set the global variable.\r\n }\r\n // }\r\n // }\r\n } else {\r\n currentFeat = theFeatures.length ? theFeatures[0] : theFeatures;\r\n }\r\n console.log(\"Create buffer with radius: \", radiusBuffer);\r\n var bufferedFeat = getPolygonBuffer(currentFeat, radiusBuffer);\r\n vecSource4.addFeature(bufferedFeat);\r\n //check the geometry type of buffer. If issitemultipolygon = true, make sure buffer is also multipolygon.\r\n var bufferNeedToChangeToMultipolygon = false;\r\n if (issitemultipolygon) {\r\n let testFeats = vecSource4.getFeatures();\r\n for (let i = 0; i < testFeats.length; i++) {\r\n var aFeat = testFeats[i];\r\n if (aFeat.getGeometry().getType() == \"Polygon\") {\r\n bufferNeedToChangeToMultipolygon = true;\r\n break;\r\n }\r\n }\r\n }\r\n var newBuffFeat = bufferedFeat;\r\n if (bufferNeedToChangeToMultipolygon) {\r\n var newCoordArr = [];\r\n newCoordArr.push(bufferedFeat.getGeometry().getCoordinates());\r\n newBuffFeat = new Feature({\r\n geometry: new MultiPolygon(newCoordArr),\r\n });\r\n vecSource4.clear();\r\n vecSource4.addFeature(newBuffFeat);\r\n }\r\n checkWhetherBufferIntersectAnyNSRBuildings(bufferedFeat);\r\n}\r\n\r\nfunction getDistrictBySiteCentroid(siteCentroidGeom) {\r\n const districtFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"HKDistrict_wgs84sp\"],\r\n outputFormat: \"application/json\",\r\n filter: intersectsFilter(\"the_geom\", siteCentroidGeom, \"EPSG:3857\"),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(districtFeatRequest);\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"POST\");\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const districtfeatures = new GeoJSON().readFeatures(json);\r\n if (districtfeatures.length > 0) {\r\n var districtFeature = districtfeatures[0];\r\n var districtName = districtFeature.get(\"DISTRICT\");\r\n siteDistrict = districtName;\r\n }\r\n });\r\n}\r\n\r\n// ### Get district when creating new project with new site\r\nfunction getDistrictBySitePolygon(siteGeom) {\r\n console.log(\"Inside getDistrictBySitePolygon\");\r\n\r\n const districtFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"HKDistrict_wgs84sp\"],\r\n outputFormat: \"application/json\",\r\n filter: intersectsFilter(\"the_geom\", siteGeom, \"EPSG:3857\"),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(districtFeatRequest);\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"POST\");\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n // console.log(\"json\");\r\n // console.log(json);\r\n siteDistrict = \"\";\r\n const districtfeatures = new GeoJSON().readFeatures(json);\r\n if (districtfeatures.length > 0) {\r\n var districtArray = [];\r\n for (let i = 0; i < districtfeatures.length; i++) {\r\n var districtFeature = districtfeatures[i];\r\n var districtName = districtFeature.get(\"DISTRICT\");\r\n districtArray.push(districtName);\r\n }\r\n siteDistrict = districtArray.join(\",\");\r\n }\r\n // console.log(\"siteDistrict\");\r\n // console.log(siteDistrict);\r\n });\r\n}\r\n\r\n// ### show the popup notification.\r\nfunction showModal(modalContentText) {\r\n // Get the modal\r\n var modal = document.getElementById(\"myNotif\");\r\n modal.style.display = \"block\";\r\n modal.style.color = \"black\";\r\n var modalText = document.getElementById(\"myNotifText\");\r\n modalText.innerHTML = modalContentText;\r\n\r\n // Get the element that closes the modal\r\n var span = document.getElementsByClassName(\"modalClose\")[0];\r\n // When the user clicks on (x), close the modal\r\n span.onclick = function () {\r\n modal.style.display = \"none\";\r\n };\r\n // When the user clicks anywhere outside of the modal, close it\r\n window.onclick = function (event) {\r\n if (event.target == modal) {\r\n modal.style.display = \"none\";\r\n }\r\n };\r\n}\r\n\r\n// ### show notif popup with yes no and input action\r\nfunction showYesNoModal(modalContentText) {\r\n // Get the modal\r\n var modal = document.getElementById(\"myYesNoNotif\");\r\n modal.style.display = \"block\";\r\n var modalText = document.getElementById(\"myYesNoNotifText\");\r\n modalText.innerHTML = modalContentText;\r\n var modalNotif = document.getElementById(\"modalNotif\");\r\n modalNotif.style.display = \"block\";\r\n var modalInput = document.getElementById(\"modalInput\");\r\n modalInput.style.display = \"none\";\r\n\r\n // assign button onclick\r\n var modalYesButton = document.getElementById(\"yesNoButtonYes\");\r\n var modalNoButton = document.getElementById(\"yesNoButtonNo\");\r\n // When the user clicks on No button, close the modal\r\n modalNoButton.onclick = function () {\r\n modal.style.display = \"none\";\r\n };\r\n modalYesButton.onclick = function () {\r\n alert(\"yes is clicked\");\r\n };\r\n}\r\n\r\nfunction checkWhetherBufferIntersectAnyNSRBuildings(bufferFeat) {\r\n var bufferGeom = bufferFeat.getGeometry();\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n featureTypes: [\"Building_2022_nsr_wgs84sp_noZM\"],\r\n outputFormat: \"application/json\",\r\n filter: intersectsFilter(\"the_geom\", bufferGeom, \"EPSG:3857\"),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n // console.log(\"checkWhetherBufferIntersectAnyNSRBuildings response\");\r\n // console.log(response);\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const defaultBuildingfeatures = new GeoJSON().readFeatures(json);\r\n var thisLayer = getLayerByTitle(\"notifEduNSRBuilding\");\r\n thisLayer.getSource().clear();\r\n\r\n if (defaultBuildingfeatures.length === 0) {\r\n // buffer does not intersect with any nsr buildings.\r\n //alert(\"No NSR building is found within the construction site buffer. Please try enlarging the study area.\");\r\n // // Get the modal\r\n // var modal = document.getElementById(\"myNotif\");\r\n // modal.style.display = \"block\";\r\n // var modalText = document.getElementById(\"myNotifText\");\r\n // modalText.innerHTML=\"No NSR building is found within the construction site buffer. Please try enlarging the study area.\";\r\n\r\n // // Get the element that closes the modal\r\n // var span = document.getElementsByClassName(\"modalClose\")[0];\r\n // // When the user clicks on (x), close the modal\r\n // span.onclick = function() {\r\n // modal.style.display = \"none\";\r\n // }\r\n // // When the user clicks anywhere outside of the modal, close it\r\n // window.onclick = function(event) {\r\n // if (event.target == modal) {\r\n // modal.style.display = \"none\";\r\n // }\r\n // }\r\n showModal(\"No NSR building is found within the construction site buffer. Please try enlarging the study area.\");\r\n\r\n return false;\r\n } else {\r\n //CONTINUE WITH CHECKING 100m beyond the buffer for any educational building.\r\n // get current buildingids\r\n var initialBuildingIds = [];\r\n for (let i = 0; i < defaultBuildingfeatures.length; i++) {\r\n var aNSRBuildingFeat = defaultBuildingfeatures[i];\r\n var bdId = aNSRBuildingFeat.get(\"BUILDINGID\");\r\n if (!initialBuildingIds.includes(bdId)) {\r\n initialBuildingIds.push(bdId);\r\n }\r\n }\r\n //buffer the buffer polygon for 100m\r\n var extendRadius = 100;\r\n var bufferedBufferFeat = getPolygonBuffer(bufferFeat, extendRadius);\r\n var bufferedBufferGeom = bufferedBufferFeat.getGeometry();\r\n // var testLayer = getLayerByTitle(\"testLayer\");\r\n // testLayer.getSource().addFeature(bufferedBufferFeat);\r\n\r\n //query from the layer\r\n const extensionFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n featureTypes: [\"Building_2022_nsr_wgs84sp_noZM\"],\r\n outputFormat: \"application/json\",\r\n filter: intersectsFilter(\"the_geom\", bufferedBufferGeom, \"EPSG:3857\"),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(extensionFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n // console.log(\"checkWhetherBufferIntersectAnyNSRBuildings 2nd response\");\r\n //console.log(response);\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const extensionBuildingfeatures = new GeoJSON().readFeatures(json);\r\n var educationalFeat = [];\r\n var educationalBuildingIDs = [];\r\n\r\n for (let i = 0; i < extensionBuildingfeatures.length; i++) {\r\n var aNSRBuildingFeat = extensionBuildingfeatures[i];\r\n var bdId = aNSRBuildingFeat.get(\"BUILDINGID\");\r\n var bdType = aNSRBuildingFeat.get(\"NSR\");\r\n if (!initialBuildingIds.includes(bdId)) {\r\n // console.log(\"pass !initialBuildingIds.includes(bdId)\");\r\n if (bdType.toLowerCase() === \"educational\") {\r\n // console.log(\"pass bdType.toLowerCase() === 'educational'\");\r\n if (!educationalBuildingIDs.includes(bdId)) {\r\n // console.log(\"pass !educationalBuildingIDs.includes(bdId)\");\r\n educationalBuildingIDs.push(bdId);\r\n educationalFeat.push(aNSRBuildingFeat);\r\n }\r\n }\r\n }\r\n }\r\n // console.log(educationalFeat);\r\n // add feature to a layer to show ################################################## not yet\r\n thisLayer = getLayerByTitle(\"notifEduNSRBuilding\");\r\n if (educationalFeat.length > 0) {\r\n for (let i = 0; i < educationalFeat.length; i++) {\r\n var eduBuildingFeat = educationalFeat[i];\r\n thisLayer.getSource().addFeature(eduBuildingFeat);\r\n }\r\n\r\n showModal(\r\n \"At least one Educational NSR building is located within 100m outside the current assessment area. Would you consider enlarging assessment area to include the Educational NSR as well?\"\r\n );\r\n }\r\n });\r\n\r\n return true;\r\n }\r\n });\r\n}\r\n\r\nolMap.getSiteDistrict = function () {\r\n return siteDistrict;\r\n};\r\n\r\nolMap.switchOffSiteDraw = function () {\r\n drawing = false;\r\n map.removeInteraction(siteDraw);\r\n finishingMoveCenterPoints();\r\n};\r\n\r\nolMap.switchOnCutterLineDraw = function (callback) {\r\n drawing = true;\r\n siteDraw = new Draw({\r\n source: vecSource2,\r\n type: \"LineString\",\r\n });\r\n map.addInteraction(siteDraw);\r\n vector3.setVisible(true);\r\n centerPtWFSLayer.setVisible(false);\r\n\r\n siteDraw.on(\"drawend\", function (e) {\r\n //vecSource2.addFeature(e.feature);\r\n\r\n // console.log(vecSource)\r\n // console.log(vecSource2)\r\n\r\n // console.log(vecSource.getFeatures())\r\n // console.log(e.feature)\r\n\r\n const parser = new OL3Parser();\r\n parser.inject(Point, LineString, LinearRing, Polygon, MultiPoint, MultiLineString, MultiPolygon);\r\n // let jstsPolygon = parser.read(vecSource.getFeatures()[0].getGeometry());\r\n // let jstsPoline = parser.read(e.feature.getGeometry());\r\n\r\n //loop one by one polygon features\r\n // var geoJSON = new GeoJSON();\r\n // var lineGeoJSON = geoJSON.writeFeatureObject(e.feature);\r\n // var lineTurfGeom = turf.getGeom(lineGeoJSON);\r\n var index = 0;\r\n var zoneCount = 0;\r\n for (let i = 0; i < vecSource.getFeatures().length; i++) {\r\n var currentFeat = vecSource.getFeatures()[i];\r\n // var polygonGeoJSON = geoJSON.writeFeatureObject(currentFeat);\r\n // var polygonTurfGeom = turf.getGeom(polygonGeoJSON);\r\n //if (turf.booleanIntersects(lineTurfGeom, polygonTurfGeom)) //if intersect with the line\r\n if (isIntersect(e.feature, currentFeat)) {\r\n //if intersect with the line\r\n // get the splitted polygons\r\n var polygons = splitByLine(currentFeat, e.feature);\r\n if (polygons.array.length >= 2) {\r\n // cut happened\r\n // delete current feature first\r\n //vecSource.removeFeature(currentFeat);\r\n\r\n // insert all splitted polygons\r\n polygons.array.forEach((geom) => {\r\n let splitted_polygon = new Feature({\r\n geometry: new Polygon(parser.write(geom).getCoordinates()),\r\n });\r\n // console.log(\"splitted_polygon\")\r\n // console.log(splitted_polygon)\r\n\r\n if (isPolygonCentroidWithinPolygon(splitted_polygon, currentFeat)) {\r\n if (isGeomValid(splitted_polygon)) {\r\n vecSource.addFeature(splitted_polygon);\r\n index = index + 1;\r\n splitted_polygon.setId(index);\r\n // console.log(1);\r\n } else {\r\n vecSource.removeFeature(currentFeat);\r\n }\r\n } else {\r\n vecSource.removeFeature(currentFeat);\r\n }\r\n\r\n // console.log(vecSource.getFeatures().length)\r\n // console.log(\"isIntersect\");\r\n // console.log(isIntersect(splitted_polygon,currentFeat));\r\n // console.log(\"isContain\");\r\n // console.log(isContain(splitted_polygon,currentFeat));\r\n // console.log(\"isWithin\");\r\n // console.log(isWithin(splitted_polygon,currentFeat));\r\n });\r\n\r\n vecSource.removeFeature(currentFeat);\r\n } // cut not happen\r\n else {\r\n // do nothing\r\n\r\n // add id\r\n index = index + 1;\r\n currentFeat.setId(index);\r\n }\r\n } //if not intersect\r\n else {\r\n // do nothing\r\n\r\n // add id\r\n index = index + 1;\r\n currentFeat.setId(index);\r\n }\r\n }\r\n callback(index - 1);\r\n\r\n // //Perform union of Polygon and Line and use Polygonizer to split the polygon by line\r\n // // console.log(jstsPolygon)\r\n // // console.log(jstsPoline)\r\n // let union = Union.union(jstsPolygon.getExteriorRing(),jstsPoline);\r\n // let polygonizer = new Polygonizer();\r\n // polygonizer.add(union);\r\n\r\n // //Get splitted polygons\r\n // let polygons = polygonizer.getPolygons();\r\n\r\n // if(polygons.array.length >= 2) {\r\n // //Clear old splitted polygons and measurement overlays\r\n // vecSource.clear();\r\n // map.getOverlays().clear();\r\n\r\n // //Iterate through splitted polygons\r\n // polygons.array.forEach((geom) => {\r\n // let splitted_polygon = new Feature({\r\n // geometry: new Polygon(parser.write(geom).getCoordinates())\r\n // });\r\n // console.log(\"splitted_polygon\")\r\n // console.log(splitted_polygon)\r\n // vecSource.addFeature(splitted_polygon);\r\n // console.log(vecSource.getFeatures().length)\r\n\r\n // });\r\n // }\r\n // else{\r\n\r\n // }\r\n\r\n // #### indexing\r\n index = 0;\r\n vecSource3.clear();\r\n for (let i = 0; i < vecSource.getFeatures().length; i++) {\r\n var currentFeat = vecSource.getFeatures()[i];\r\n // console.log(\"zoneOrder\");\r\n // console.log(zoneOrder);\r\n // console.log(\"currentFeat\");\r\n // console.log(currentFeat);\r\n index = index + 1;\r\n\r\n // create centroid\r\n //var centroidFeat = getCentroid(currentFeat);\r\n var centroidFeat = getCenterOfMass(currentFeat);\r\n centroidFeat.set(\"order\", index.toString());\r\n vecSource3.addFeature(centroidFeat);\r\n currentFeat.set(\"id\", index);\r\n }\r\n\r\n map.removeInteraction(siteDraw);\r\n });\r\n};\r\n\r\nolMap.clearZoneDraw = function () {\r\n vecSource.clear();\r\n vecSource3.clear();\r\n\r\n vecTestSource.clear(); //red / green calculated nsr point\r\n vecSource8.clear(); // uncalculated nsr point - purple\r\n vecSource7.clear(); //selected feature.\r\n vecSource5.clear(); // equipment points\r\n isAfterCalculation = false;\r\n\r\n var siteFeats = vecSource6.getFeatures();\r\n var siteFeat = siteFeats[0]; //get the first feat. There is only 1 site.\r\n var clonefeat = siteFeat.clone();\r\n clonefeat.setId(siteFeat.getId());\r\n vecSource.addFeature(clonefeat);\r\n\r\n // add default index 1 after generating site polygon. put the point to the label layer source (vecSource3), set the label to show on 'order' attribute.\r\n var index = 1;\r\n var centroidFeat = getCenterOfMass(siteFeat);\r\n centroidFeat.set(\"order\", \"zone \" + index.toString());\r\n vecSource3.addFeature(centroidFeat);\r\n\r\n map.removeInteraction(siteDraw);\r\n};\r\n\r\nolMap.clearForNew = function () {\r\n clearTempLayers();\r\n makeWFSLayersInvisible();\r\n};\r\n\r\nolMap.switchOffCutterLineDraw = function () {\r\n drawing = false;\r\n map.removeInteraction(siteDraw);\r\n};\r\n\r\nolMap.switchZoneOrderDraw = function () {\r\n isZoneOrderMode = !isZoneOrderMode;\r\n};\r\n\r\nolMap.switchOnEquipDraw = function (pmedata) {\r\n if (siteDraw) {\r\n map.removeInteraction(siteDraw);\r\n }\r\n\r\n siteDraw = new Draw({\r\n source: vecSource5,\r\n type: \"Point\",\r\n });\r\n console.log(\"pmedata: \", pmedata);\r\n var idx = pmedata.projectPMEId;\r\n eqpID = idx;\r\n var eqpName = pmedata.pme;\r\n console.log(\"eqpName\", eqpName);\r\n var eqpZone = pmedata.zone;\r\n\r\n siteDraw.on(\"drawend\", function (e) {\r\n // remove only the feaature with current id\r\n deleteEquipmentPointByID(eqpID);\r\n\r\n // //clear eqp point draw Source\r\n // vecSource5.clear();\r\n\r\n // if (eqpDrawEnded === true)\r\n // {\r\n // e.preventDefault();\r\n // return;\r\n // }\r\n console.log(\"Current idx is:\", eqpID);\r\n console.log(e);\r\n var thisFeat = e.feature;\r\n thisFeat.setId(eqpID);\r\n thisFeat.set(\"othername\", eqpName);\r\n thisFeat.set(\"zone\", eqpZone);\r\n console.log(\"eqpName\", eqpName);\r\n console.log(\"new feature should be\");\r\n console.log(thisFeat);\r\n // eqpDrawEnded = true\r\n //eqpDraw.setActive(false);\r\n map.removeInteraction(siteDraw);\r\n console.log(\"after remove interacion\");\r\n });\r\n\r\n map.addInteraction(siteDraw);\r\n};\r\nolMap.switchOffEquipDraw = function () {\r\n map.removeInteraction(siteDraw);\r\n};\r\nolMap.deleteEquipPointByID = function (theId) {\r\n map.removeInteraction(siteDraw);\r\n deleteEquipmentPointByID(theId);\r\n};\r\n\r\nfunction checkEqpInsideZone() {\r\n var zoneFeat;\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"zones\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", currentProjectID),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const zonefeatures = new GeoJSON().readFeatures(json);\r\n var zoneFeatsOrderById = [];\r\n if (zonefeatures.length > 0) {\r\n for (let i = 0; i < zonefeatures.length; i++) {\r\n for (let j = 0; j < zonefeatures.length; j++) {\r\n zoneFeat = zonefeatures[j];\r\n if (zoneFeat.get(\"id\") === i + 1) {\r\n zoneFeatsOrderById.push(zoneFeat);\r\n }\r\n }\r\n }\r\n\r\n var deleteHappened = false;\r\n var notInsideZoneExist = true;\r\n while (notInsideZoneExist) {\r\n notInsideZoneExist = false;\r\n for (let i = 0; i < vecSource5.getFeatures().length; i++) {\r\n var aEqpFeat = vecSource5.getFeatures()[i];\r\n var eqpZoneId = aEqpFeat.get(\"zone\");\r\n if (!isIntersect(aEqpFeat, zoneFeatsOrderById[eqpZoneId - 1])) {\r\n notInsideZoneExist = true;\r\n deleteHappened = true;\r\n vecSource5.removeFeature(aEqpFeat);\r\n break;\r\n }\r\n }\r\n }\r\n if (deleteHappened) {\r\n console.log(\"Please draw the equipment inside its zone.\");\r\n map.addInteraction(siteDraw);\r\n }\r\n } else {\r\n console.log(\"Zone does not exist. Clearing all drawed equipment.\");\r\n vecSource5.clear();\r\n }\r\n });\r\n}\r\n\r\nolMap.saveEquipmentGeometries = function () {\r\n // console.log(\"eqpObj\");\r\n // console.log(eqpObjs);\r\n\r\n //call all pme features of current project ID (the rows that just inserted by the API without geometry)\r\n modifiedFeatureList = [];\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"projectPME\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", currentProjectID),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n console.log(\"All PME response with project id-\" + currentProjectID.toString() + \":\");\r\n console.log(response);\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const projPMEfeatures = new GeoJSON().readFeatures(json);\r\n if (projPMEfeatures.length > 0) {\r\n for (let i = 0; i < projPMEfeatures.length; i++) {\r\n var projPMEFeature = projPMEfeatures[i];\r\n var pmeId = projPMEFeature.get(\"pmeid\");\r\n console.log(\"pmeId\");\r\n console.log(pmeId);\r\n var isNotional = projPMEFeature.get(\"isnotional\");\r\n if (isNotional.toLowerCase().indexOf(\"notional\") >= 0) {\r\n //use notional distance\r\n projPMEFeature.setGeometry(null);\r\n } // use geometry\r\n else {\r\n projPMEFeature.setGeometry(getPointFromPMEVectorSourceByPMEID(pmeId));\r\n }\r\n\r\n modifiedFeatureList.push(projPMEFeature);\r\n }\r\n\r\n var task = \"update\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"projectPME\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", saveEquipmentGeometries2);\r\n }\r\n });\r\n};\r\nfunction saveEquipmentGeometries2() {\r\n //console.log(\"inside saveEquipmentGeometries2\");\r\n\r\n vecSource5.clear();\r\n\r\n //Non-notional PME\r\n var projectPMEWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectPME&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString() +\r\n \"%20AND%20isnotional='Fixed%20Location'\";\r\n projPMEWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return projectPMEWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"pmeWFSLayer\");\r\n thisLayer.setSource(projPMEWFSSource);\r\n thisLayer.values_.visible = true;\r\n projPMEWFSSource.refresh();\r\n\r\n updateIsCalculated(currentProjectID, 0, null);\r\n}\r\n\r\nfunction updateIsCalculated(projectId, value, callback) {\r\n var bodyObj = new ProjectIsCalculated(projectId, value);\r\n var postURL = SERVER_URL2 + \"/api/Project/iscalculated\";\r\n fetch(postURL, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n //mode: 'no-cors',\r\n body: JSON.stringify(bodyObj),\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish updateIsCalculated into: \" + value.toString());\r\n console.log(value);\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n}\r\n\r\n//below Marvin Alex\r\nolMap.hyun = function (projectId) {\r\n isCalculatedGlobal2 = 0;\r\n};\r\n//above Marvin Alex\r\n\r\nfunction getIsCalculated(projectId, callback) {\r\n var getURL = SERVER_URL2 + \"/api/Project/iscalculated/\" + projectId.toString();\r\n fetch(getURL, {\r\n method: \"GET\",\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n getSelectedNSR(projectId);\r\n })\r\n .then(function (json) {\r\n var isCalculated = JSON.parse(json);\r\n\r\n callback(isCalculated, projectId);\r\n //recalculate(isCalculated, projectId);\r\n });\r\n}\r\n\r\n//below Marvin Alex\r\nolMap.getIsCalculatedForVue2 = function (projectId) {\r\n return isCalculatedGlobal2;\r\n};\r\n//above Marvin Alex\r\n\r\nfunction getSelectedNSR(projectId, callback) {\r\n var getURL = SERVER_URL2 + \"/api/Project/selectednsr/\" + projectId.toString();\r\n //var getURL = 'https://localhost:44384/Project/selectednsr/' + projectId.toString();\r\n fetch(getURL, {\r\n method: \"GET\",\r\n })\r\n .then(function (response) {\r\n return response.text();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (selNSR) {\r\n var nsrIds = selNSR.split(\";\")[0];\r\n var nsrIdArr = nsrIds.split(\",\").filter((id) => id !== \"\");\r\n selectedNSRPointIds = nsrIdArr.map((id) => Number(id)); // store to global variable.\r\n\r\n // console.log(\"selectedNSRPointIds\");\r\n // console.log(selectedNSRPointIds);\r\n // var isCalculated = JSON.parse(json);\r\n // callback(isCalculated, projectId);\r\n // //recalculate(isCalculated, projectId);\r\n });\r\n}\r\n\r\nfunction getPMEObjectByPMEID(eqpObjs, pmeid) {\r\n for (let i = 0; i < eqpObjs.length; i++) {\r\n var pmeObj = eqpObjs[i];\r\n if (pmeObj.projectPMEId === pmeid) {\r\n return pmeObj;\r\n }\r\n }\r\n return null;\r\n}\r\nfunction getPointFromPMEVectorSourceByPMEID(pmeId) {\r\n console.log(\"trying to get eqp feat id: \", pmeId);\r\n console.log(\"from these features:\");\r\n console.log(vecSource5.getFeatures());\r\n var searchedFeat = vecSource5.getFeatureById(pmeId);\r\n var thePoint = searchedFeat.getGeometry();\r\n return thePoint;\r\n}\r\n\r\nolMap.saveProjectGISData = function (projectId, zones, isFinish, callback) {\r\n vector3.setVisible(false);\r\n centerPtWFSLayer.setVisible(true);\r\n vecSource5.clear();\r\n vecSource8.clear();\r\n vecSource13.clear();\r\n //buildingIdForMitigation = 0;\r\n //vecTestSource.clear();\r\n\r\n currentProjectID = projectId;\r\n zonesInput = zones;\r\n saveProjectFinish = isFinish;\r\n console.log(\"currentProjectID\");\r\n console.log(currentProjectID);\r\n console.log(\"zonesInput\");\r\n console.log(zonesInput);\r\n console.log(\"isFinish\");\r\n console.log(isFinish);\r\n\r\n newProjectSaveSite(projectId, callback); //### below got commmented because they run fomr inside this newProjectSaveSite function, so that they don't run in parallel.\r\n // newProjectSaveBuffer(projectId);\r\n // newProjectSaveZones(projectId);\r\n //getDefBuildingsIntersectBuffer(projectId);\r\n //getPointsOfProjNSRBuildings(projectId);\r\n};\r\n\r\nolMap.saveUnregSitesGISData = function (projectId) {\r\n newProjectSaveUnregSites(projectId);\r\n};\r\n\r\nolMap.prepareProjectTempLayers = function (clear) {\r\n if (clear) {\r\n //clear the temp layers\r\n vecSource6.clear(); //site\r\n vecSource4.clear(); //bufer\r\n vecSource.clear(); //zone\r\n vecSource9.clear(); //unreg site\r\n vecSource10.clear(); //unreg buffer\r\n }\r\n\r\n //copy site layer to temp layer\r\n var aSiteLayer = \"\";\r\n if (issitemultipolygon) {\r\n aSiteLayer = getLayerByTitle(\"site2WFSLayer\");\r\n } else {\r\n aSiteLayer = getLayerByTitle(\"siteWFSLayer\");\r\n }\r\n var aSiteFeatures = aSiteLayer.getSource().getFeatures();\r\n //console.log(aSiteFeatures);\r\n for (let i = 0; i < aSiteFeatures.length; i++) {\r\n var aSiteFeature = aSiteFeatures[i];\r\n\r\n vecSource6.addFeature(aSiteFeature);\r\n }\r\n aSiteLayer.values_.visible = false;\r\n //console.log(vecSource6.getFeatures());\r\n\r\n //copy buffer layer to temp layer\r\n var aBufferLayer = \"\";\r\n if (issitemultipolygon) {\r\n aBufferLayer = getLayerByTitle(\"buffer2WFSLayer\");\r\n } else {\r\n aBufferLayer = getLayerByTitle(\"bufferWFSLayer\");\r\n }\r\n var aBufferFeatures = aBufferLayer.getSource().getFeatures();\r\n //console.log(aBufferFeatures);\r\n for (let i = 0; i < aBufferFeatures.length; i++) {\r\n var aBufferFeature = aBufferFeatures[i];\r\n\r\n vecSource4.addFeature(aBufferFeature);\r\n }\r\n aBufferLayer.values_.visible = false;\r\n //console.log(vecSource4.getFeatures());\r\n\r\n //copy zone layer to temp layer\r\n var aZoneLayer = getLayerByTitle(\"zoneWFSLayer\");\r\n var aZoneFeatures = aZoneLayer.getSource().getFeatures();\r\n //console.log(aZoneFeatures);\r\n for (let i = 0; i < aZoneFeatures.length; i++) {\r\n var aZoneFeature = aZoneFeatures[i];\r\n\r\n vecSource.addFeature(aZoneFeature);\r\n }\r\n aZoneLayer.values_.visible = false;\r\n console.log(vecSource.getFeatures());\r\n\r\n //copy unreg site layer to temp layer\r\n var aUnregSiteLayer = getLayerByTitle(\"unregSiteWFSLayer\");\r\n var aUnregSiteFeatures = aUnregSiteLayer.getSource().getFeatures();\r\n //console.log(aSiteFeatures);\r\n for (let i = 0; i < aUnregSiteFeatures.length; i++) {\r\n var aUnregSiteFeature = aUnregSiteFeatures[i];\r\n\r\n vecSource9.addFeature(aUnregSiteFeature);\r\n }\r\n aUnregSiteLayer.values_.visible = false;\r\n //console.log(vecSource6.getFeatures());\r\n\r\n //copy unreg buffer layer to temp layer\r\n var aUnregBufferLayer = getLayerByTitle(\"unregBufferWFSLayer\");\r\n var aUnregBufferFeatures = aUnregBufferLayer.getSource().getFeatures();\r\n //console.log(aBufferFeatures);\r\n for (let i = 0; i < aUnregBufferFeatures.length; i++) {\r\n var aUnregBufferFeature = aUnregBufferFeatures[i];\r\n\r\n vecSource10.addFeature(aUnregBufferFeature);\r\n }\r\n aUnregBufferLayer.values_.visible = false;\r\n //console.log(vecSource4.getFeatures());\r\n};\r\n\r\nolMap.prepareEquipmentTempLayers = function () {\r\n console.log(\"inside prepareEquipmentTempLayers\");\r\n vecSource5.clear(); //eqp\r\n\r\n //copy unreg buffer layer to temp layer\r\n var aEqpLayer = getLayerByTitle(\"pmeWFSLayer\");\r\n var aEqpFeatures = aEqpLayer.getSource().getFeatures();\r\n console.log(\"aEqpFeatures.length\");\r\n console.log(aEqpFeatures.length);\r\n for (let i = 0; i < aEqpFeatures.length; i++) {\r\n var aEqpFeature = aEqpFeatures[i];\r\n\r\n vecSource5.addFeature(aEqpFeature);\r\n }\r\n aEqpLayer.values_.visible = false;\r\n //console.log(vecSource4.getFeatures());\r\n};\r\n\r\nolMap.clearEquipmentTempLayers = function () {\r\n console.log(\"inside clearEquipmentTempLayers\");\r\n vecSource5.clear(); //eqp\r\n\r\n var aEqpLayer = getLayerByTitle(\"pmeWFSLayer\");\r\n aEqpLayer.values_.visible = false;\r\n};\r\n\r\nfunction getZoneNameByIndex(index) {\r\n var resultName = \"\";\r\n for (let i = 0; i < zonesInput.length; i++) {\r\n var curId = zonesInput[i].id;\r\n if (curId === index) {\r\n resultName = zonesInput[i].name;\r\n break;\r\n }\r\n }\r\n return resultName;\r\n}\r\nfunction getZoneCalcTypeByIndex(index) {\r\n var result = \"\";\r\n for (let i = 0; i < zonesInput.length; i++) {\r\n var curId = zonesInput[i].id;\r\n if (curId === index) {\r\n result = zonesInput[i].calculationtype;\r\n break;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction getZoneStartDateByIndex(index) {\r\n console.log(\"startdate\");\r\n console.log(new Date(zonesInput[index - 1].startdate));\r\n console.log(getSimpleDate(new Date(zonesInput[index - 1].startdate)));\r\n return getSimpleDate(new Date(zonesInput[index - 1].startdate));\r\n}\r\nfunction getZoneEndDateByIndex(index) {\r\n console.log(\"enddate\");\r\n console.log(new Date(zonesInput[index - 1].enddate));\r\n console.log(getSimpleDate(new Date(zonesInput[index - 1].enddate)));\r\n return getSimpleDate(new Date(zonesInput[index - 1].enddate));\r\n}\r\n\r\nolMap.savePMEGSData = function (projectid, zoneid, actid) {};\r\n\r\nolMap.addNSRBuilding = function () {\r\n changeActionMode(1);\r\n\r\n //remove Not related layer\r\n removeLayerFromMap(\"projectBuildingLayer\");\r\n\r\n // add related layers\r\n map.addLayer(defBuildingWFSLayer);\r\n map.addLayer(nsrBuildingWFSLayer);\r\n\r\n selectedDefaultBuildingFeats = [];\r\n\r\n // Begin draw to select\r\n\r\n // From selection, copy data to NSR building layer\r\n\r\n // Chec if at least one building is intersects the buffer, then re-draw the project building layer and re-calculate.\r\n\r\n // remove the non-default layers\r\n\r\n // return bac the default layers\r\n};\r\n\r\nolMap.processAddNSRBuilding = function () {\r\n modifiedFeatureList = [];\r\n // overlay layer for site is: vector6 = \"sitelayer\"\r\n var index = 0;\r\n var destGeom;\r\n var newPolygon;\r\n for (let i = 0; i < selectedDefaultBuildingFeats.length; i++) {\r\n newPolygon = selectedDefaultBuildingFeats[i];\r\n console.log(newPolygon);\r\n // destGeom = selectedDefaultBuildingFeats[i].getGeometry();\r\n // newPolygon = new Feature({\r\n // geometry: destGeom\r\n // });\r\n modifiedFeatureList.push(newPolygon);\r\n }\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"Building_2022_nsr_wgs84sp_noZM\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"the_geom\", processAddNSRBuilding2);\r\n};\r\n\r\nfunction processAddNSRBuilding2() {\r\n // also update the project nsr building if within buffer\r\n //get buffer\r\n var bufferFeat;\r\n var featType = \"\";\r\n if (issitemultipolygon) {\r\n featType = \"buffers2\";\r\n } else {\r\n featType = \"buffers\";\r\n }\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n //featureTypes: ['buffers'],\r\n //featureTypes: ['buffers2'],\r\n featureTypes: [featType],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", currentProjectID),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const bufferfeatures = new GeoJSON().readFeatures(json);\r\n if (bufferfeatures.length > 0) {\r\n modifiedFeatureList = [];\r\n bufferFeat = bufferfeatures[0]; //buffer is only 1 per project id\r\n var featExist = false;\r\n // var loopIndex = 1;\r\n for (let i = 0; i < selectedDefaultBuildingFeats.length; i++) {\r\n var tempFeat = selectedDefaultBuildingFeats[i];\r\n if (isIntersect(bufferFeat, tempFeat)) {\r\n featExist = true;\r\n var mpGeom = tempFeat.getGeometry();\r\n var thePolygons = mpGeom.getPolygons();\r\n var buildingid = selectedDefaultBuildingFeats[i].get(\"BUILDINGID\");\r\n var noiseCrit = selectedDefaultBuildingFeats[i].get(\"noisecrit\");\r\n var buildName = selectedDefaultBuildingFeats[i].get(\"BldName_E\") == null ? \"\" : selectedDefaultBuildingFeats[i].get(\"BldName_E\");\r\n var bdtype = selectedDefaultBuildingFeats[i].get(\"NSR\");\r\n var bdHt =\r\n selectedDefaultBuildingFeats[i].get(\"Bld_Ht\") == null\r\n ? selectedDefaultBuildingFeats[i].get(\"ROOFLEVEL\") - selectedDefaultBuildingFeats[i].get(\"BASELEVEL\")\r\n : selectedDefaultBuildingFeats[i].get(\"Bld_Ht\");\r\n\r\n for (let j = 0; j < thePolygons.length; j++) {\r\n var aPolygon = thePolygons[j];\r\n let tempFeat = new Feature({\r\n geom: aPolygon,\r\n });\r\n tempFeat.set(\"projectid\", currentProjectID);\r\n tempFeat.set(\"buildingid\", buildingid);\r\n tempFeat.set(\"noisecriteria\", noiseCrit); //### either to generate by if else by time, or to generate one fixed value by nsr type, or just copy from the origin source\r\n tempFeat.set(\"BldName_E\", buildName);\r\n tempFeat.set(\"type\", bdtype);\r\n tempFeat.set(\"Bld_Ht\", bdHt);\r\n //tempFeat.set('noofshare', someAmount); ### find other projects that are approved and not yet end date\r\n tempFeat.set(\"modifiedAt\", new Date().toISOString());\r\n // tempFeat.set('id', maxid + loopIndex);\r\n modifiedFeatureList.push(tempFeat);\r\n // loopIndex = loopIndex + 1;\r\n }\r\n }\r\n }\r\n\r\n if (!featExist) {\r\n finishingAddNSRBuilding();\r\n } else {\r\n // console.log(\"modifiedFeatureList\");\r\n // console.log(modifiedFeatureList);\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"projectNSRBuilding\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", finishingAddNSRBuilding);\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction finishingAddNSRBuilding() {\r\n getPointsOfProjNSRBuildings(currentProjectID);\r\n\r\n nsrBuildingWFSSource.refresh();\r\n clearSelectedBuilding();\r\n\r\n // remove the non-default layers\r\n map.removeLayer(defBuildingWFSLayer);\r\n map.removeLayer(nsrBuildingWFSLayer);\r\n\r\n // return bac the default layers\r\n map.addLayer(projBuildingWFSLayer);\r\n projBuildingWFSSource.refresh();\r\n\r\n changeActionMode(-1);\r\n}\r\n\r\nfunction clearSelectedBuilding() {\r\n var tempFeat;\r\n for (let i = 0; i < selectedDefaultBuildingFeats.length; i++) {\r\n tempFeat = selectedDefaultBuildingFeats[i];\r\n tempFeat.setStyle(undefined);\r\n }\r\n selectedDefaultBuildingFeats = [];\r\n}\r\n\r\nolMap.removeNSRBuilding = function () {\r\n changeActionMode(2);\r\n\r\n //remove Not related layer\r\n removeLayerFromMap(\"projectBuildingLayer\");\r\n\r\n // add related layers\r\n map.addLayer(nsrBuildingWFSLayer);\r\n\r\n selectedDefaultBuildingFeats = [];\r\n};\r\n\r\nolMap.processRemoveNSRBuilding = function () {\r\n modifiedFeatureList = [];\r\n // overlay layer for site is: vector6 = \"sitelayer\"\r\n var index = 0;\r\n var destGeom;\r\n var newPolygon;\r\n buildingIdsForQuery = \"\";\r\n for (let i = 0; i < selectedDefaultBuildingFeats.length; i++) {\r\n newPolygon = selectedDefaultBuildingFeats[i];\r\n if (newPolygon.get(\"BUILDINGID\")) {\r\n buildingIdsForQuery = buildingIdsForQuery + newPolygon.get(\"BUILDINGID\").toString() + \",\";\r\n }\r\n console.log(newPolygon);\r\n // destGeom = selectedDefaultBuildingFeats[i].getGeometry();\r\n // newPolygon = new Feature({\r\n // geometry: destGeom\r\n // });\r\n modifiedFeatureList.push(newPolygon);\r\n }\r\n buildingIdsForQuery = buildingIdsForQuery.substring(0, buildingIdsForQuery.length - 1);\r\n var task = \"delete\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"Building_2022_nsr_wgs84sp_noZM\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"the_geom\", processRemoveNSRBuilding2);\r\n};\r\n\r\nfunction processRemoveNSRBuilding2() {\r\n console.log(\"inside processRemoveNSRBuilding2\");\r\n console.log(\"buildingIdsForQuery\", buildingIdsForQuery);\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/projectnsrbuilding/projectid/\" + currentProjectID + \"/buildingids/\" + buildingIdsForQuery; //##### later change with the that have projectid ==> DONE\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n processRemoveNSRBuilding3();\r\n });\r\n}\r\nfunction processRemoveNSRBuilding3() {\r\n console.log(\"inside processRemoveNSRBuilding3\");\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/ProjectNSRPoints/projectid/\" + currentProjectID + \"/buildingids/\" + buildingIdsForQuery; //##### later change with the that have projectid ==> DONE\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n finishingRemoveNSRBuilding();\r\n });\r\n}\r\n\r\nfunction finishingRemoveNSRBuilding() {\r\n console.log(\"inside finishingRemoveNSRBuilding\");\r\n nsrBuildingWFSSource.refresh();\r\n clearSelectedBuilding();\r\n projBuildingWFSSource.refresh();\r\n projBuildingPointsWFSSource.refresh();\r\n\r\n // remove the non-default layers\r\n map.removeLayer(nsrBuildingWFSLayer);\r\n\r\n // return bac the default layers\r\n map.addLayer(projBuildingWFSLayer);\r\n\r\n changeActionMode(-1);\r\n}\r\n\r\nolMap.changeNoiseLevelNSRBuilding = function () {\r\n changeActionMode(3);\r\n\r\n selectedDefaultBuildingFeats = [];\r\n\r\n var buildingFeat;\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"projectNSRBuilding\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", currentProjectID),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const bufferfeatures = new GeoJSON().readFeatures(json);\r\n console.log(\"bufferfeatures.length\", bufferfeatures.length);\r\n if (bufferfeatures.length > 0) {\r\n vecSource3.clear();\r\n for (let i = 0; i < bufferfeatures.length; i++) {\r\n var tempFeat = bufferfeatures[i];\r\n var noisecrit = tempFeat.get(\"noisecriteria\");\r\n var centroidFeat = getCenterOfMass(tempFeat);\r\n centroidFeat.set(\"order\", noisecrit.toString());\r\n vecSource3.addFeature(centroidFeat);\r\n }\r\n }\r\n });\r\n};\r\n\r\nolMap.processChangeNoiseLevelNSRBuilding = function (noiseLevel) {\r\n modifiedFeatureList = [];\r\n // overlay layer for site is: vector6 = \"sitelayer\"\r\n var index = 0;\r\n var destGeom;\r\n var newPolygon;\r\n for (let i = 0; i < selectedDefaultBuildingFeats.length; i++) {\r\n newPolygon = selectedDefaultBuildingFeats[i];\r\n newPolygon.set(\"noisecriteria\", noiseLevel);\r\n console.log(newPolygon);\r\n // destGeom = selectedDefaultBuildingFeats[i].getGeometry();\r\n // newPolygon = new Feature({\r\n // geometry: destGeom\r\n // });\r\n modifiedFeatureList.push(newPolygon);\r\n }\r\n var task = \"update\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"projectNSRBuilding\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", finishingChangeNoiseCriteriaBuilding);\r\n};\r\n\r\nfunction finishingChangeNoiseCriteriaBuilding() {\r\n nsrBuildingWFSSource.refresh();\r\n clearSelectedBuilding();\r\n vecSource3.clear();\r\n\r\n changeActionMode(-1);\r\n}\r\n\r\nolMap.moveNSRBuildingPoints = function (addNSRHistory) {\r\n changeActionMode(4);\r\n movedNSRPointIds = [];\r\n movedNSRPointFeats = [];\r\n //copy all projectnsrpoints to temp nsr point layer vector11\r\n vecSource11.clear();\r\n var nsrPointLayer = getLayerByTitle(\"projectBuildingPointsLayer\");\r\n for (let i = 0; i < nsrPointLayer.getSource().getFeatures().length; i++) {\r\n let pointFeat = nsrPointLayer.getSource().getFeatures()[i];\r\n let newPointGeom = new Point(pointFeat.getGeometry().getCoordinates());\r\n let currentid = pointFeat.get(\"id\");\r\n let currentNSRName = pointFeat.get(\"nsrname\");\r\n // console.log(\"currentid\");\r\n // console.log(currentid);\r\n let tempPointFeat = new Feature({\r\n geometry: newPointGeom,\r\n });\r\n tempPointFeat.setId(currentid);\r\n tempPointFeat.set(\"id\", currentid);\r\n if (currentNSRName != null) {\r\n console.log(\"nsrname\", currentNSRName);\r\n tempPointFeat.set(\"nsrname\", currentNSRName);\r\n }\r\n tempPointFeat.setStyle(nsrPointStyleFunctionWithNSRName);\r\n\r\n vecSource11.addFeature(tempPointFeat);\r\n }\r\n\r\n vecSource12.clear();\r\n var nsrBuildingLayer = getLayerByTitle(\"projectBuildingLayer\");\r\n for (let i = 0; i < nsrBuildingLayer.getSource().getFeatures().length; i++) {\r\n var buildingFeat = nsrBuildingLayer.getSource().getFeatures()[i];\r\n var bufferedBuilding = getPolygonBuffer(buildingFeat, 1, true);\r\n vecSource12.addFeature(bufferedBuilding);\r\n }\r\n\r\n nsrPointLayer.values_.visible = false;\r\n //make calculated green red points invisible first.\r\n var thisLayer = getLayerByTitle(\"testLayer\");\r\n thisLayer.values_.visible = false;\r\n\r\n if (siteDraw) {\r\n map.removeInteraction(siteDraw);\r\n }\r\n\r\n siteDraw = new Modify({\r\n source: vecSource11,\r\n });\r\n siteDraw.on(\"modifystart\", function (e) {\r\n e.features.getArray().forEach((f) => {\r\n f.set(\"initCoords\", f.getGeometry().getCoordinates());\r\n });\r\n });\r\n siteDraw.on(\"modifyend\", function (e) {\r\n if (!movedNSRPointIds.includes(e.features.getArray()[0].getId())) {\r\n movedNSRPointIds.push(e.features.getArray()[0].getId());\r\n movedNSRPointFeats.push(e.features.getArray()[0]);\r\n } else {\r\n var existingIndex = movedNSRPointIds.indexOf(e.features.getArray()[0].getId());\r\n movedNSRPointFeats[existingIndex] = e.features.getArray()[0];\r\n }\r\n addNSRHistory(e.features.getArray()[0]);\r\n });\r\n map.addInteraction(siteDraw);\r\n\r\n //var nsrBuldngLayer = getLayerByTitle(\"projectBuildingLayer\");\r\n snapDraw = new Snap({\r\n source: vecSource12,\r\n });\r\n map.addInteraction(snapDraw);\r\n};\r\n\r\nolMap.processMoveNSRBuildingPoints = function (callback) {\r\n map.removeInteraction(siteDraw);\r\n map.removeInteraction(snapDraw);\r\n vecSource12.clear();\r\n console.log(\"movedNSRPointIds\");\r\n console.log(movedNSRPointIds);\r\n modifiedFeatureList = [];\r\n let nsrPointLayer = getLayerByTitle(\"projectBuildingPointsLayer\");\r\n let thisLayer = getLayerByTitle(\"testLayer\");\r\n // console.log(\"nsrPointLayer.getSource().getFeatures()\");\r\n // console.log(nsrPointLayer.getSource().getFeatures());\r\n nsrPointLayer\r\n .getSource()\r\n .getFeatures()\r\n .filter((f) => movedNSRPointIds.includes(f.get(\"id\")))\r\n .forEach((f) => {\r\n let movedNSRPointFeat = movedNSRPointFeats.filter((f1) => f1.get(\"id\") == f.get(\"id\"));\r\n if (movedNSRPointFeat.length > 0) {\r\n f.setGeometry(movedNSRPointFeat[0].getGeometry());\r\n modifiedFeatureList.push(f);\r\n }\r\n });\r\n thisLayer\r\n .getSource()\r\n .getFeatures()\r\n .filter((f) => movedNSRPointIds.includes(f.get(\"id\")))\r\n .forEach((f) => {\r\n let movedNSRPointFeat = movedNSRPointFeats.filter((f1) => f1.get(\"id\") == f.get(\"id\"));\r\n if (movedNSRPointFeat.length > 0) {\r\n f.setGeometry(movedNSRPointFeat[0].getGeometry());\r\n modifiedFeatureList.push(f);\r\n }\r\n });\r\n console.log(\"modifiedFeatureList\");\r\n console.log(modifiedFeatureList);\r\n var task = \"update\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"projectNSRPoints\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", function () {\r\n finishingMoveNSRBuildingPoints();\r\n if (callback) callback();\r\n });\r\n};\r\n\r\nfunction finishingMoveNSRBuildingPoints() {\r\n movedNSRPointIds = [];\r\n movedNSRPointFeats = [];\r\n vecSource11.clear();\r\n //turn on visibility.\r\n var nsrPointLayer = getLayerByTitle(\"projectBuildingPointsLayer\");\r\n nsrPointLayer.values_.visible = true;\r\n var thisLayer = getLayerByTitle(\"testLayer\");\r\n thisLayer.values_.visible = true;\r\n\r\n changeActionMode(-1);\r\n console.log(\"finishingMoveNSRBuildingPoints\");\r\n}\r\n\r\nolMap.addNewNSRPoints = function (projectId, nsrNameRef, noiseCriteriaRef) {\r\n var pointIdToFill = 0;\r\n\r\n //Get max current projectnsrpoint ID first.\r\n var getURL = SERVER_URL2 + \"/api/ProjectNSRPoints/maxid/\" + projectId;\r\n fetch(getURL, {\r\n method: \"GET\",\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (maxid) {\r\n console.log(\"maxid\");\r\n console.log(maxid);\r\n\r\n changeActionMode(5);\r\n pointIdToFill = maxid + 1;\r\n\r\n siteDraw = new Draw({\r\n source: vecSource11,\r\n type: \"Point\",\r\n });\r\n map.addInteraction(siteDraw);\r\n\r\n siteDraw.on(\"drawend\", function (e) {\r\n vecSource11.clear();\r\n\r\n var thisFeat = e.feature;\r\n thisFeat.set(\"projectid\", projectId);\r\n thisFeat.set(\"buildingid\", pointIdToFill);\r\n console.log(\"nsrname\", nsrNameRef.modelValue);\r\n thisFeat.set(\"nsrname\", nsrNameRef.modelValue);\r\n thisFeat.set(\"noisecriteria\", parseFloat(noiseCriteriaRef.modelValue));\r\n thisFeat.set(\"Bld_Ht\", 0);\r\n thisFeat.set(\"id\", pointIdToFill);\r\n\r\n console.log(\"nsrName\", nsrNameRef);\r\n console.log(\"projectid\", projectId);\r\n console.log(\"nsrName\", nsrNameRef.modelValue);\r\n console.log(\"noisecriteria\", noiseCriteriaRef.modelValue);\r\n\r\n thisFeat.setStyle(nsrPointStyleFunctionWithNSRName);\r\n\r\n nsrFeaturesToAdd.push(thisFeat);\r\n console.log(nsrFeaturesToAdd);\r\n });\r\n });\r\n};\r\n\r\nolMap.processAddNewNSRPoints = function (callback) {\r\n map.removeInteraction(siteDraw);\r\n modifiedFeatureList = [];\r\n // overlay layer for site is: vector6 = \"sitelayer\"\r\n var index = 0;\r\n var destGeom;\r\n var aFeat;\r\n for (let i = 0; i < vecSource11.getFeatures().length; i++) {\r\n aFeat = vecSource11.getFeatures()[i];\r\n console.log(aFeat);\r\n // destGeom = selectedDefaultBuildingFeats[i].getGeometry();\r\n // newPolygon = new Feature({\r\n // geometry: destGeom\r\n // });\r\n modifiedFeatureList.push(aFeat);\r\n }\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"projectNSRPoints\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", finishingAddNewNSRPoints(callback));\r\n};\r\n\r\nfunction finishingAddNewNSRPoints(callback) {\r\n vecSource11.clear();\r\n var nsrPointLayer = getLayerByTitle(\"projectBuildingPointsLayer\");\r\n nsrPointLayer.getSource().refresh();\r\n changeActionMode(-1);\r\n console.log(\"finishingAddingNSRBuildingPoints\");\r\n if (callback) {\r\n callback();\r\n }\r\n}\r\n\r\nolMap.removeNSRPoints = function () {\r\n changeActionMode(6);\r\n\r\n selectedDefaultBuildingFeats = [];\r\n};\r\nolMap.processRemoveNSRPoints = function (projectId, addNSRHistory, callback) {\r\n buildingIdsForQuery = \"\";\r\n var aPoint;\r\n let added = [];\r\n for (let i = 0; i < selectedDefaultBuildingFeats.length; i++) {\r\n aPoint = selectedDefaultBuildingFeats[i];\r\n // if(aPoint.get('BUILDINGID'))\r\n // {\r\n // buildingIdsForQuery = buildingIdsForQuery + aPoint.get('BUILDINGID').toString() + \",\";\r\n // }\r\n // if(aPoint.get('buildingid'))\r\n // {\r\n // buildingIdsForQuery = buildingIdsForQuery + aPoint.get('buildingid').toString() + \",\";\r\n // }\r\n console.log(\"aPoint\", aPoint);\r\n if (!added.includes(aPoint.getId())) {\r\n aPoint.set(\"initCoords\", aPoint.getGeometry().getCoordinates());\r\n addNSRHistory(aPoint);\r\n added.push(aPoint.getId());\r\n }\r\n if (aPoint.getId()) {\r\n var curId = aPoint.getId().replace(\"projectNSRPoints.\", \"\");\r\n buildingIdsForQuery = buildingIdsForQuery + curId + \",\";\r\n }\r\n // console.log(aPoint);\r\n // console.log(aPoint.getId());\r\n // destGeom = selectedDefaultBuildingFeats[i].getGeometry();\r\n // newPolygon = new Feature({\r\n // geometry: destGeom\r\n // });\r\n // modifiedFeatureList.push(aPoint);\r\n let index = selectedNSRPointIds.indexOf(aPoint.get(\"id\"));\r\n if (index > -1) {\r\n selectedNSRPointIds.splice(index, 1);\r\n }\r\n }\r\n buildingIdsForQuery = buildingIdsForQuery.substring(0, buildingIdsForQuery.length - 1);\r\n console.log(\"buildingIdsForQuery\", buildingIdsForQuery);\r\n\r\n console.log(\"inside processRemoveNSRBuilding2\");\r\n console.log(\"buildingIdsForQuery\", buildingIdsForQuery);\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/ProjectNSRPoints/projectid/\" + projectId + \"/ids/\" + buildingIdsForQuery; //##### later change with the that have projectid\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n finishingRemoveNSRPoints();\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n};\r\n\r\nfunction finishingRemoveNSRPoints() {\r\n console.log(\"inside finishingRemoveNSRBuilding\");\r\n clearSelectedBuilding();\r\n projBuildingPointsWFSSource.refresh();\r\n\r\n changeActionMode(-1);\r\n}\r\n\r\nolMap.moveCenterPoints = function () {\r\n changeActionMode(7);\r\n movedCenterPointIds = [];\r\n movedCenterPointFeats = [];\r\n //copy all projectnsrpoints to temp nsr point layer vector11\r\n vecSource11.clear();\r\n var centerPointLayer = getLayerByTitle(\"centerPtWFSLayer\");\r\n for (let i = 0; i < centerPointLayer.getSource().getFeatures().length; i++) {\r\n var pointFeat = centerPointLayer.getSource().getFeatures()[i];\r\n var newPointGeom = new Point(pointFeat.getGeometry().getCoordinates());\r\n var currentid = pointFeat.get(\"id\");\r\n var currentProjid = pointFeat.get(\"projectid\");\r\n var currentzoneid = pointFeat.get(\"zoneid\");\r\n var currentzonename = pointFeat.get(\"zonename\");\r\n var currentremark = pointFeat.get(\"remark\");\r\n // console.log(\"currentid\");\r\n // console.log(currentid);\r\n var tempPointFeat = new Feature({\r\n geometry: newPointGeom,\r\n });\r\n tempPointFeat.setId(currentid);\r\n tempPointFeat.set(\"id\", currentid);\r\n tempPointFeat.set(\"projectid\", currentProjid);\r\n tempPointFeat.set(\"zoneid\", currentzoneid);\r\n tempPointFeat.set(\"zonename\", currentzonename);\r\n tempPointFeat.set(\"remark\", currentremark);\r\n // console.log(\"currentzoneid\",currentzoneid);\r\n\r\n vecSource11.addFeature(tempPointFeat);\r\n }\r\n\r\n centerPointLayer.values_.visible = false;\r\n\r\n if (siteDraw) {\r\n map.removeInteraction(siteDraw);\r\n }\r\n\r\n siteDraw = new Modify({\r\n source: vecSource11,\r\n });\r\n siteDraw.on(\"modifyend\", function (e) {\r\n // console.log(e.features.getArray());\r\n // console.log(e.features.getArray().length);\r\n // console.log(e.features.getArray()[0].getId());\r\n var modZoneId = e.features.getArray()[0].get(\"zoneid\");\r\n var modZoneCenterFeat = e.features.getArray()[0];\r\n\r\n //get the zone polygon to check. If outside zone polygon then should be ignored\r\n var zoneLayer = getLayerByTitle(\"zoneWFSLayer\");\r\n var zoneFeats = zoneLayer.getSource().getFeatures();\r\n var zoneFeat;\r\n // console.log(\"zoneFeats\",zoneFeats);\r\n for (let i = 0; i < zoneFeats.length; i++) {\r\n var zonePolygon = zoneFeats[i];\r\n // console.log(\"zonePolygon\",zonePolygon);\r\n var zoneId = zonePolygon.get(\"id\");\r\n console.log(\"zoneId\");\r\n console.log(zoneId);\r\n console.log(\"modZoneId\");\r\n console.log(modZoneId);\r\n if (modZoneId == zoneId) {\r\n console.log(\"enter \" + zoneId + \" \" + modZoneId);\r\n zoneFeat = zonePolygon;\r\n }\r\n }\r\n console.log(\"zoneFeat\", zoneFeat);\r\n if (isIntersect(zoneFeat, modZoneCenterFeat)) {\r\n if (!movedCenterPointIds.includes(modZoneId)) {\r\n console.log(\"enter 1\");\r\n movedCenterPointIds.push(modZoneId);\r\n movedCenterPointFeats.push(modZoneCenterFeat);\r\n } else {\r\n console.log(\"enter 2\");\r\n var existingIndex = movedCenterPointIds.indexOf(modZoneId);\r\n movedCenterPointFeats[existingIndex] = modZoneCenterFeat;\r\n }\r\n } else {\r\n console.log(\"enter 3\");\r\n var existingIndex = movedCenterPointIds.indexOf(modZoneId);\r\n if (existingIndex > -1) {\r\n movedCenterPointIds.splice(existingIndex, 1);\r\n movedCenterPointFeats.splice(existingIndex, 1);\r\n }\r\n }\r\n // console.log(\"movedCenterPointIds\");\r\n // console.log(movedCenterPointIds);\r\n });\r\n\r\n map.addInteraction(siteDraw);\r\n};\r\n\r\nolMap.processMoveCenterPoints = function () {\r\n map.removeInteraction(siteDraw);\r\n console.log(\"movedCenterPointIds\");\r\n console.log(movedCenterPointIds);\r\n modifiedFeatureList = [];\r\n var centerPointLayer = getLayerByTitle(\"centerPtWFSLayer\");\r\n // console.log(\"nsrPointLayer.getSource().getFeatures()\");\r\n // console.log(nsrPointLayer.getSource().getFeatures());\r\n for (let i = 0; i < movedCenterPointIds.length; i++) {\r\n var pointId = movedCenterPointIds[i];\r\n for (let j = 0; j < centerPointLayer.getSource().getFeatures().length; j++) {\r\n var pointFeat = centerPointLayer.getSource().getFeatures()[j];\r\n var ptId = pointFeat.get(\"zoneid\");\r\n if (ptId !== pointId) {\r\n continue;\r\n } else {\r\n pointFeat.setGeometry(movedCenterPointFeats[i].getGeometry());\r\n modifiedFeatureList.push(pointFeat);\r\n }\r\n }\r\n }\r\n\r\n console.log(\"modifiedFeatureList\");\r\n console.log(modifiedFeatureList);\r\n var task = \"update\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"geomCenter\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", finishingMoveCenterPoints);\r\n};\r\n\r\nfunction finishingMoveCenterPoints() {\r\n movedCenterPointIds = [];\r\n movedCenterPointFeats = [];\r\n vecSource11.clear();\r\n var centerPointLayer = getLayerByTitle(\"centerPtWFSLayer\");\r\n centerPointLayer.values_.visible = true;\r\n\r\n changeActionMode(-1);\r\n console.log(\"finishingMoveCenterPoints\");\r\n}\r\n\r\nolMap.clearSelectedNSRBuildings = function () {\r\n //FOR CLOSE BUTTON IN NSR WINDOW\r\n clearSelectedBuilding();\r\n\r\n //add remove layers...\r\n};\r\nolMap.isAddNSRBuildingMode = function () {\r\n return isAddNSRBuildingMode;\r\n};\r\nolMap.isRemoveNSRBuildingMode = function () {\r\n return isRemoveNSRBuildingMode;\r\n};\r\nolMap.isChangeNoiseNSRBuildingMode = function () {\r\n return isChangeNoiseLevelNSRBuildingMode;\r\n};\r\nolMap.isChangeNoiseNSRBuildingPointMode = function () {\r\n return isChangeNoiseNSRBuildingPointMode;\r\n};\r\nolMap.isAddNSRPointsMode = function () {\r\n return isAddNSRPointsMode;\r\n};\r\nolMap.isRemoveNSRPointsMode = function () {\r\n return isRemoveNSRPointsMode;\r\n};\r\nolMap.isChangeCentralPointLocationMode = function () {\r\n return isChangeCentralPointMode;\r\n};\r\n\r\nolMap.setProjectObject = function (projObj) {\r\n projectObj = projObj;\r\n projectObj.calculationResultNSR = calculationResultNSRGlobal;\r\n console.log(\"projectObj\");\r\n console.log(projectObj);\r\n console.log(\"projectObj.calculationResultNSR on setProjectObject\");\r\n console.log(projectObj.calculationResultNSR);\r\n};\r\n\r\nolMap.setBuildingIdForMitigation = function (bdid, zoneTaskIds) {\r\n buildingIdForMitigation = bdid;\r\n zoneTaskIdsForMitigation = zoneTaskIds;\r\n console.log(\"ths lne set the buildingIdForMitigation\");\r\n console.log(buildingIdForMitigation);\r\n};\r\n\r\nolMap.getCalculationResultNSR = function () {\r\n const ids = selectedNSRPointIds.map((id) => id.toString());\r\n return calculationResultNSRGlobal.filter((c) => ids.includes(c.nsrpointid.toString()));\r\n};\r\n\r\nolMap.openProjectGISData = function (projectid) {\r\n currentProjectID = projectid;\r\n vecSource3.clear(); // ==> centroid to put zone label\r\n vecSource4.clear(); // ==> site buffer\r\n vecSource5.clear(); // ==> layer for equipment points for manual location / non-notional distance\r\n vecSource6.clear(); // ==> For site. Originally vecSource, but vecSource is now for Zones.\r\n vecSource7.clear(); // ==> For selection.\r\n vecSource8.clear(); // ==> For generated nsrPoints\r\n vecSource9.clear(); // ==> unregsites\r\n vecSource10.clear(); // ==> unregsites buffers\r\n vecSource11.clear(); // ==> temp nsr points for modifying location ==> also used for add nsr point manually ==> also for temp center points for modifying location\r\n vecSource12.clear(); // ==> 1m buffer of nsr building to snap the points\r\n vecSource13.clear(); // ==> to show educational building polygon if 100m buffer extension contains the super sensitive nsr building\r\n vecSource14.clear(); // ==> show notional point when NSR point click\r\n vecTestSource.clear();\r\n zoneNSRNotionalInfo = {};\r\n notionalPointsFeatArr = [];\r\n isAfterCalculation = false;\r\n console.log(\"resetng buildingIdForMitigation\");\r\n buildingIdForMitigation = 0;\r\n\r\n //projectNSRBuilding\r\n var projectNSRBuildingWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectNSRBuilding&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n projBuildingWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return projectNSRBuildingWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"projectBuildingLayer\");\r\n thisLayer.setSource(projBuildingWFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n //unreg buffer\r\n var unregbufferWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Aunregbuffers&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n unregBufferWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return unregbufferWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"unregBufferWFSLayer\");\r\n thisLayer.setSource(unregBufferWFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n //buffer\r\n var bufferWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n bufferWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return bufferWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"bufferWFSLayer\");\r\n thisLayer.setSource(bufferWFSSource);\r\n thisLayer.values_.visible = true;\r\n var buffer2WFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers2&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n buffer2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return buffer2WFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"buffer2WFSLayer\");\r\n thisLayer.setSource(buffer2WFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n //unreg site\r\n var unregsiteWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Aunregsites&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n unregSiteWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return unregsiteWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"unregSiteWFSLayer\");\r\n thisLayer.setSource(unregSiteWFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n //site\r\n var siteWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n siteWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return siteWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"siteWFSLayer\");\r\n thisLayer.setSource(siteWFSSource);\r\n thisLayer.values_.visible = true;\r\n var site2WFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites2&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n site2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return site2WFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"site2WFSLayer\");\r\n thisLayer.setSource(site2WFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n getCurrentSiteFeaturePutOnGlobalVar(projectid, null);\r\n\r\n //zone\r\n var zoneWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Azones&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n zoneWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return zoneWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"zoneWFSLayer\");\r\n thisLayer.setSource(zoneWFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n //openZoneCentroidPoints(projectid); // ==> this will give labels to the zones. Changed to several lines below.\r\n\r\n //zone centroid\r\n var centerWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AgeomCenter&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n centerPtWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return centerWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"centerPtWFSLayer\");\r\n thisLayer.setSource(centerPtWFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n centerPtWFSSource.on(\"change\", function (evt) {\r\n var source = evt.target;\r\n if (source.getState() === \"ready\") {\r\n openZoneCentroidPoints(projectid); // ==> this will give labels to the zones.\r\n }\r\n });\r\n\r\n //NSR points\r\n var projectNSRPointsWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectNSRPoints&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString();\r\n projBuildingPointsWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return projectNSRPointsWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"projectBuildingPointsLayer\");\r\n thisLayer.setSource(projBuildingPointsWFSSource);\r\n thisLayer.values_.visible = true;\r\n projBuildingPointsWFSSource.refresh();\r\n\r\n //Non-notional PME\r\n var projectPMEWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectPME&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n projectid.toString() +\r\n \"%20AND%20isnotional='Fixed%20Location'\";\r\n projPMEWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return projectPMEWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"pmeWFSLayer\");\r\n thisLayer.setSource(projPMEWFSSource);\r\n thisLayer.values_.visible = true;\r\n projPMEWFSSource.refresh();\r\n\r\n getSelectedNSR(projectid);\r\n approvedProjectIDs = [];\r\n openApprovedSites(projectid);\r\n\r\n zoomToCurrentBuffer(projectid);\r\n\r\n getIsCalculated(projectid, recalculate);\r\n};\r\n\r\nfunction recalculate(isCalculated, projectid) {\r\n console.log(\"isCalculated\");\r\n console.log(isCalculated);\r\n if (isCalculated === 1) {\r\n calculateNoise1(projectid, null);\r\n }\r\n}\r\n\r\nfunction openApprovedSites(mainProjectId) {\r\n // var siteWFSURL = SERVER_URL + '/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites&outputFormat=application%2Fjson&cql_filter=projectid=' + projectid.toString();\r\n // siteWFSSource = new VectorSource({\r\n // format: new GeoJSON(),\r\n // url: function (extent) {\r\n // return (\r\n // siteWFSURL +\r\n // '&srsname=EPSG:3857'\r\n // );\r\n // },\r\n // });\r\n // var thisLayer = getLayerByTitle(\"siteWFSLayer\");\r\n // thisLayer.setSource(siteWFSSource);\r\n // thisLayer.values_.visible = true;\r\n\r\n approvedBufferWFSSource.clear();\r\n approvedSiteWFSSource.clear();\r\n approvedBuffer2WFSSource.clear();\r\n approvedSite2WFSSource.clear();\r\n\r\n //Get all approved ids\r\n //console.log(\"inside openApprovedSites\");\r\n var approvedURL = SERVER_URL2 + \"/api/project/approved/\" + mainProjectId.toString();\r\n //console.log(approvedURL);\r\n fetch(approvedURL, {\r\n method: \"GET\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"approved id\", json);\r\n\r\n //approved buffer\r\n var approvedBufferWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers&outputFormat=application%2Fjson&cql_filter=INTERSECTS(geom,%20querySingle(%27webcnmpws:buffers%27,%20%27geom%27,%27projectid=\" +\r\n mainProjectId.toString() +\r\n \"%27))and projectid%20IN(\" +\r\n json.join() +\r\n \")\";\r\n console.log(\"approvedBufferWFSURL\", approvedBufferWFSURL);\r\n approvedBufferWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return approvedBufferWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var approvedBuffer2WFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers2&outputFormat=application%2Fjson&cql_filter=INTERSECTS(geom,%20querySingle(%27webcnmpws:buffers%27,%20%27geom%27,%27projectid=\" +\r\n mainProjectId.toString() +\r\n \"%27))and projectid%20IN(\" +\r\n json.join() +\r\n \")\";\r\n console.log(\"approvedBuffer2WFSURL\", approvedBuffer2WFSURL);\r\n approvedBuffer2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return approvedBuffer2WFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var buttonOn = document.getElementById(\"onoffneighbourlayeron\");\r\n var buttonOff = document.getElementById(\"onoffneighbourlayeroff\");\r\n if (buttonOn) {\r\n buttonOn.style.display = \"none\";\r\n }\r\n if (buttonOff) {\r\n buttonOff.style.display = \"none\";\r\n }\r\n\r\n var tempSource;\r\n if (issitemultipolygon) {\r\n tempSource = approvedBuffer2WFSSource;\r\n } else {\r\n tempSource = approvedBufferWFSSource;\r\n }\r\n\r\n var getLoadedProjectIds = [];\r\n //approvedBufferWFSSource.on(\"featuresloadend\", function(a) {\r\n tempSource.on(\"featuresloadend\", function (a) {\r\n for (let j = 0; j < thisLayer.getSource().getFeatures().length; j++) {\r\n var aFeat = thisLayer.getSource().getFeatures()[j];\r\n getLoadedProjectIds.push(aFeat.get(\"projectid\"));\r\n }\r\n\r\n // console.log(\"getLoadedProjectIds.join()\");\r\n // console.log(getLoadedProjectIds.join());\r\n // store to global var\r\n approvedProjectIDs = getLoadedProjectIds;\r\n\r\n // after get the final projectid array, load the sites too\r\n //approved sites\r\n var approvedSitesWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites&outputFormat=application%2Fjson&cql_filter=projectid%20IN(\" +\r\n getLoadedProjectIds.join() +\r\n \")\";\r\n approvedSiteWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return approvedSitesWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var aLayer = getLayerByTitle(\"approvedSiteWFSLayer\");\r\n aLayer.setSource(approvedSiteWFSSource);\r\n aLayer.values_.visible = true;\r\n var approvedSites2WFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites2&outputFormat=application%2Fjson&cql_filter=projectid%20IN(\" +\r\n getLoadedProjectIds.join() +\r\n \")\";\r\n approvedSite2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return approvedSites2WFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var aLayer = getLayerByTitle(\"approvedSite2WFSLayer\");\r\n aLayer.setSource(approvedSite2WFSSource);\r\n aLayer.values_.visible = true;\r\n\r\n var tempSiteSource;\r\n if (issitemultipolygon) {\r\n tempSiteSource = approvedSite2WFSSource;\r\n } else {\r\n tempSiteSource = approvedSiteWFSSource;\r\n }\r\n\r\n //approvedSiteWFSSource.on(\"featuresloadend\", function(a) {\r\n tempSiteSource.on(\"featuresloadend\", function (a) {\r\n approvedNeighbourLayersLoaded = true;\r\n\r\n if (getLoadedProjectIds.length > 0) {\r\n var buttonOn = document.getElementById(\"onoffneighbourlayeron\");\r\n var buttonOff = document.getElementById(\"onoffneighbourlayeroff\");\r\n if (buttonOn) {\r\n buttonOn.style.display = \"inline\";\r\n }\r\n if (buttonOff) {\r\n buttonOff.style.display = \"inline\";\r\n }\r\n }\r\n\r\n // get required approved sites parameters\r\n // get dates of current main project\r\n var datesURL = SERVER_URL2 + \"/api/Project/getdates/\" + mainProjectId.toString();\r\n //console.log(approvedURL);\r\n fetch(datesURL, {\r\n method: \"GET\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.text();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (dateText) {\r\n var sDateAndEDates = dateText.split(\"#\");\r\n // console.log(\"sDateAndEDates\",sDateAndEDates);\r\n // console.log(\"getLoadedProjectIds\");\r\n // console.log(getLoadedProjectIds);\r\n\r\n var neibourTaskURL =\r\n SERVER_URL2 + \"/api/Task/multiprojects/\" + getLoadedProjectIds.join() + \"/\" + sDateAndEDates[0] + \"/\" + sDateAndEDates[1];\r\n //console.log(approvedURL);\r\n fetch(neibourTaskURL, {\r\n method: \"GET\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (result) {\r\n // console.log(\"task result\");\r\n // console.log(result);\r\n\r\n //store the approved sites' task schedule on global var\r\n approvedProjectScheduleTasks = result;\r\n\r\n //process for each approved projectid\r\n var calculationResultNSRPars = \"\";\r\n for (let a = 0; a < getLoadedProjectIds.length; a++) {\r\n var currentProjId = getLoadedProjectIds[a];\r\n var currentProjId_ZoneTask = getCombinedZoneTaskListArrayPerProjectid(\r\n currentProjId,\r\n new Date(sDateAndEDates[0]),\r\n new Date(sDateAndEDates[1]),\r\n result\r\n );\r\n var zoneTaskJoin = currentProjId_ZoneTask.join();\r\n calculationResultNSRPars = calculationResultNSRPars + currentProjId + \"a\" + zoneTaskJoin + \"d\";\r\n // console.log(\"currentProjId\",currentProjId);\r\n // console.log(\"zoneTaskJoin\",zoneTaskJoin);\r\n }\r\n calculationResultNSRPars = calculationResultNSRPars.slice(0, -1); //remove the # (d) char in the end.\r\n\r\n console.log(\"calculationResultNSRPars\", calculationResultNSRPars);\r\n\r\n //get neighbour resultnsr\r\n var neibourTaskURL = SERVER_URL2 + \"/api/CalculationResultNSR/projectzonetask/\" + calculationResultNSRPars;\r\n //console.log(approvedURL);\r\n fetch(neibourTaskURL, {\r\n method: \"GET\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (result) {\r\n console.log(\"CalculationResultNSR\");\r\n console.log(result);\r\n\r\n //store the calculationresultnsr on global var\r\n approvedProjectCalculationResultNSR = result;\r\n });\r\n });\r\n });\r\n });\r\n });\r\n\r\n var thisLayer = getLayerByTitle(\"approvedBufferWFSLayer\");\r\n thisLayer.setSource(approvedBufferWFSSource);\r\n thisLayer.values_.visible = true;\r\n var thisLayer = getLayerByTitle(\"approvedBuffer2WFSLayer\");\r\n thisLayer.setSource(approvedBuffer2WFSSource);\r\n thisLayer.values_.visible = true;\r\n });\r\n\r\n // var pmeFeat;\r\n\r\n // const defaultFeatRequest = new WFS().writeGetFeature({\r\n // srsName: 'EPSG:3857',\r\n // featureNS: 'webcnmpws',\r\n // //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n // featureTypes: ['projectPME'],\r\n // outputFormat: 'application/json',\r\n // filter: andFilter(equalToFilter('projectid', mainProjectId), intersectsFilter(\"the_geom\",mainBufferGeom,\"EPSG:3857\"))\r\n // })\r\n // var xs = new XMLSerializer();\r\n // var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n // fetch(SERVER_URL + '/geoserver/wfs', {\r\n // method:'POST',\r\n // body: payload\r\n // })\r\n // .then(function (response) {\r\n // return response.json();\r\n // })\r\n // .then(function (json) {\r\n // const pmefeatures = new GeoJSON().readFeatures(json);\r\n // if (pmefeatures.length > 0 )\r\n // {\r\n // thisProjectCalculatedPMEFeats = [];\r\n // for (let i = 0; i < pmefeatures.length; i++) {\r\n // pmeFeat = pmefeatures[i];\r\n // thisProjectCalculatedPMEFeats.push(pmeFeat);\r\n // }\r\n // console.log(\"PME Feats have been populated. \" + thisProjectCalculatedPMEFeats.length.toString() + \" feat exist.\");\r\n\r\n // console.log(\"Site feat is:\");\r\n // console.log(globalCurrentSiteFeature);\r\n\r\n // calculateNoise3(projectId, callback);\r\n // }\r\n\r\n // })\r\n}\r\n\r\nolMap.SwitchNeibourLayer = function (isOn) {\r\n console.log(isOn);\r\n var aLayer = getLayerByTitle(\"approvedSiteWFSLayer\");\r\n aLayer.values_.visible = isOn;\r\n aLayer.getSource().refresh();\r\n aLayer = getLayerByTitle(\"approvedBufferWFSLayer\");\r\n aLayer.values_.visible = isOn;\r\n aLayer.getSource().refresh();\r\n aLayer = getLayerByTitle(\"approvedSite2WFSLayer\");\r\n aLayer.values_.visible = isOn;\r\n aLayer.getSource().refresh();\r\n aLayer = getLayerByTitle(\"approvedBuffer2WFSLayer\");\r\n aLayer.values_.visible = isOn;\r\n aLayer.getSource().refresh();\r\n};\r\n\r\nolMap.IsApprovedNeighbourLayersLoaded = function () {\r\n return approvedNeighbourLayersLoaded;\r\n};\r\n\r\nfunction zoomToCurrentBuffer(projectid, callback) {\r\n // var featType = \"\";\r\n // if (issitemultipolygon) {\r\n // featType = \"buffers2\";\r\n // } else {\r\n // featType = \"buffers\";\r\n // }\r\n const bufferFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n // featureTypes: [\"buffers\"],\r\n featureTypes: [\"buffers\", \"buffers2\"],\r\n // featureTypes: [featType],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", projectid),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(bufferFeatRequest);\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const bufferfeatures = new GeoJSON().readFeatures(json);\r\n if (bufferfeatures.length > 0) {\r\n map.getView().fit(bufferfeatures[0].getGeometry().getExtent(), {\r\n callback: function () {\r\n console.log(\"zoomed\");\r\n if (callback) {\r\n callback();\r\n }\r\n },\r\n });\r\n }\r\n });\r\n}\r\n\r\nolMap.showPMEInitActions = function () {\r\n vecSource5.clear();\r\n console.log(\"inside showPMEInitActions\");\r\n // copy the projPMEWFSSource to vecSource5\r\n\r\n var thisLayer = getLayerByTitle(\"pmeWFSLayer\");\r\n var pmewfsSc = thisLayer.getSource();\r\n var pmeFeat;\r\n for (let i = 0; i < pmewfsSc.getFeatures().length; i++) {\r\n pmeFeat = pmewfsSc.getFeatures()[i];\r\n //console.log(pmeFeat);\r\n vecSource5.addFeature(pmeFeat);\r\n }\r\n for (let i = 0; i < vecSource5.getFeatures().length; i++) {\r\n pmeFeat = vecSource5.getFeatures()[i];\r\n pmeFeat.setId(pmeFeat.id_.split(\".\")[1]);\r\n pmeFeat.setId(pmeFeat.get(\"pmeid\"));\r\n console.log(pmeFeat.getId());\r\n }\r\n console.log(\"vecSource5.getFeatures()\");\r\n console.log(vecSource5.getFeatures());\r\n thisLayer.values_.visible = false;\r\n var tempLayer = getLayerByTitle(\"equipmentPointLayer\");\r\n};\r\nolMap.showPMEEndActions = function () {\r\n vecSource5.clear();\r\n console.log(\"inside showPMEEndActions\");\r\n // copy the projPMEWFSSource to vecSource5\r\n\r\n var thisLayer = getLayerByTitle(\"pmeWFSLayer\");\r\n thisLayer.values_.visible = true;\r\n};\r\n\r\nolMap.getBuildingHeight = function (bldid) {\r\n for (let j = 0; j < allBuildingsHeight.length; j++) {\r\n var bdHgObj = allBuildingsHeight[j];\r\n if (bdHgObj.key === bldid) {\r\n return bdHgObj.item;\r\n }\r\n }\r\n return 0;\r\n};\r\n\r\nolMap.newCustDictionary = function (key, item, remark) {\r\n var a = new CustDictionary(key, item, remark);\r\n return a;\r\n};\r\n\r\nolMap.calculateNoise = function (projectObject, callback) {\r\n projectObj = projectObject; //==> assign to global var.\r\n console.log(\"olMap.calculateNoise\");\r\n // console.log(\"projectObject\");\r\n // console.log(projectObject);\r\n calculateNoise1(projectObject.id, callback);\r\n};\r\n\r\n// ### pre calculation, get all nsrpoints for this projectid\r\nfunction calculateNoise1(projectid, callback) {\r\n // get all projectnsrpoints by projectid, store it in Array\r\n\r\n var pointsFeat;\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"projectNSRPoints\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", projectid),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const nsrPointfeatures = new GeoJSON().readFeatures(json);\r\n if (nsrPointfeatures.length > 0) {\r\n thisProjectCalculatedNSRPointFeats = [];\r\n for (let i = 0; i < nsrPointfeatures.length; i++) {\r\n pointsFeat = nsrPointfeatures[i];\r\n thisProjectCalculatedNSRPointFeats.push(pointsFeat);\r\n }\r\n console.log(\"NSRPointFeats have been populated. \" + thisProjectCalculatedNSRPointFeats.length.toString() + \" feat exist.\");\r\n calculateNoise2(projectid, callback);\r\n }\r\n });\r\n}\r\n\r\n// ### pre calculation, get all equipment for this projectid\r\nfunction calculateNoise2(projectId, callback) {\r\n // get all pme by projectid, store it in Array\r\n // console.log(\"calculateNoise2 callbac\");\r\n // console.log(callback);\r\n var pmeFeat;\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"projectPME\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", projectId),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const pmefeatures = new GeoJSON().readFeatures(json);\r\n if (pmefeatures.length > 0) {\r\n thisProjectCalculatedPMEFeats = [];\r\n for (let i = 0; i < pmefeatures.length; i++) {\r\n pmeFeat = pmefeatures[i];\r\n thisProjectCalculatedPMEFeats.push(pmeFeat);\r\n }\r\n console.log(\"PME Feats have been populated. \" + thisProjectCalculatedPMEFeats.length.toString() + \" feat exist.\");\r\n // console.log(thisProjectCalculatedPMEFeats);\r\n\r\n console.log(\"Site feat is:\");\r\n console.log(globalCurrentSiteFeature);\r\n\r\n calculateNoise3(projectId, callback);\r\n } else {\r\n alert(\"PME is not set for this Project. Please set the equipment first.\");\r\n }\r\n });\r\n}\r\n\r\n// ### pre calculation, get all zones for this projectid\r\nfunction calculateNoise3(projectId, callback) {\r\n //get zone geometry\r\n globalCurrentZoneFeatures = [];\r\n var zoneFeat;\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"zones\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", projectId),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const zonefeatures = new GeoJSON().readFeatures(json);\r\n if (zonefeatures.length > 0) {\r\n var aCentroid;\r\n for (let i = 0; i < zonefeatures.length; i++) {\r\n zoneFeat = zonefeatures[i];\r\n globalCurrentZoneFeatures.push(zoneFeat);\r\n }\r\n console.log(\"Zone Feats have been populated. \" + globalCurrentZoneFeatures.length.toString() + \" feat exist.\");\r\n\r\n calculateNoise4(projectId, callback);\r\n }\r\n });\r\n}\r\n\r\n// ### pre calculation, get all tasks for this projectid\r\nfunction calculateNoise4(projectId, callback) {\r\n //get zone geometry\r\n thisProjectCalculateTask = [];\r\n var zoneFeat;\r\n\r\n var taskURL = SERVER_URL2 + \"/api/task?id=\" + projectId.toString();\r\n //console.log(approvedURL);\r\n fetch(taskURL, {\r\n method: \"GET\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n thisProjectCalculateTask = json;\r\n //console.log(thisProjectCalculateTask);\r\n calculateNoise5(projectId, callback);\r\n });\r\n}\r\n\r\n// ### pre calculation, get all calculation result of all approved projects for this projectid\r\nfunction calculateNoise5(projectId, callback) {\r\n if (approvedProjectIDs.length > 0) {\r\n // if touches project sites\r\n var projectIdInComma = approvedProjectIDs.join();\r\n\r\n //Get all calculated data from db\r\n var getURL = SERVER_URL2 + \"/api/CalculationResultGroup/multiprojects/\" + projectIdInComma;\r\n fetch(getURL, {\r\n method: \"GET\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish calculateNoise5\");\r\n // console.log(json);\r\n\r\n calculateNoise6(projectId, json, callback);\r\n });\r\n } else {\r\n calculateNoise6(projectId, null, callback);\r\n }\r\n}\r\n\r\nfunction getZoneFeatFromArray(index) {\r\n let zone = globalCurrentZoneFeatures.filter((f) => f.get(\"id\") === index);\r\n if (zone.length > 0) {\r\n return zone[0];\r\n } else {\r\n return null;\r\n }\r\n}\r\nfunction getZoneCentroidFeatFromArray(index) {\r\n var theZoneFeat = getZoneFeatFromArray(index);\r\n if (theZoneFeat) {\r\n var aCentroid = getSavedCenterPointByZoneID(index);\r\n //return getCenterOfMass(theZoneFeat);\r\n if (aCentroid == null) {\r\n aCentroid = getCenterOfMass(theZoneFeat);\r\n }\r\n return aCentroid;\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction testgetZoneCenterOfMassFeatFromArray(index) {\r\n var theZoneFeat = getZoneFeatFromArray(index);\r\n if (theZoneFeat) {\r\n return getCenterOfMass(theZoneFeat);\r\n } else {\r\n return null;\r\n }\r\n}\r\nfunction testgetZoneCentroidFeatFromArray(index) {\r\n var theZoneFeat = getZoneFeatFromArray(index);\r\n if (theZoneFeat) {\r\n return getCentroid(theZoneFeat);\r\n } else {\r\n return null;\r\n }\r\n}\r\nfunction testgetZoneCenterFeatFromArray(index) {\r\n var theZoneFeat = getZoneFeatFromArray(index);\r\n if (theZoneFeat) {\r\n return getCenter(theZoneFeat);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nolMap.getCombinedNoiseLevelOL = function (numberArray) {\r\n return getCombinedNoiseLevel(numberArray);\r\n};\r\n\r\nfunction getCombinedNoiseLevel(numberArray) {\r\n var sumNumber = 0;\r\n for (let i = 0; i < numberArray.length; i++) {\r\n var furtheCalc = Math.pow(10, numberArray[i] / 10);\r\n sumNumber = sumNumber + furtheCalc;\r\n }\r\n var total = 10 * Math.log10(sumNumber);\r\n\r\n return total;\r\n}\r\n\r\n//Alex modified below\r\nfunction getExtendedLineAtTheEndForKilometerDistance(extensionDistance, linestringGeometry) {\r\n var linestringCoordinates = linestringGeometry.getCoordinates();\r\n var lastPointCoord = linestringCoordinates[linestringCoordinates.length - 1];\r\n var secondToLastPointCoord = linestringCoordinates[linestringCoordinates.length - 2];\r\n var lastPoint = new Feature(new Point(lastPointCoord));\r\n var secondToLastPoint = new Feature(new Point(secondToLastPointCoord));\r\n var lastPoint01 = lastPoint.getGeometry().getCoordinates();\r\n var lastPoint01 = [].concat.apply([], lastPoint01);\r\n var secondToLastPoint01 = secondToLastPoint.getGeometry().getCoordinates();\r\n var secondToLastPoint01 = [].concat.apply([], secondToLastPoint01);\r\n var lastPoint02 = JSON.stringify(lastPoint01);\r\n var secondToLastPoint02 = JSON.stringify(secondToLastPoint01);\r\n var lastPoint03 = epsg3857toEpsg4326(lastPoint01);\r\n var secondToLastPoint03 = epsg3857toEpsg4326(secondToLastPoint01);\r\n var pt1 = turf.point(lastPoint03);\r\n var pt2 = turf.point(secondToLastPoint03);\r\n\r\n var linestringBearing = turf.bearing(pt2, pt1);\r\n console.log(\"앵글\");\r\n console.log(linestringBearing);\r\n\r\n var destinationoptions = { units: \"kilometers\" };\r\n var destinationPoint = turf.destination(pt2, extensionDistance, linestringBearing, destinationoptions);\r\n\r\n var destinationPoint01 = destinationPoint.geometry.coordinates;\r\n\r\n var destinationPoint02 = epsg4326toEpsg3857(destinationPoint01);\r\n\r\n return destinationPoint02;\r\n}\r\n//Alex modified above and below\r\nfunction epsg4326toEpsg3857(coordinates) {\r\n let x = coordinates[0];\r\n let y = coordinates[1];\r\n x = (coordinates[0] * 20037508.34) / 180;\r\n y = Math.log(Math.tan(((90 + coordinates[1]) * Math.PI) / 360)) / (Math.PI / 180);\r\n y = (y * 20037508.34) / 180;\r\n return [x, y];\r\n}\r\n\r\nfunction epsg3857toEpsg4326(pos) {\r\n let x = pos[0];\r\n let y = pos[1];\r\n x = (x * 180) / 20037508.34;\r\n y = (y * 180) / 20037508.34;\r\n y = (Math.atan(Math.pow(Math.E, y * (Math.PI / 180))) * 360) / Math.PI - 90;\r\n return [x, y];\r\n}\r\n\r\nfunction getNotionalInfo(pointZoneId, nsrPointFeat) {\r\n var { notionalPoint, calcType } = getNotionalPoint(pointZoneId, nsrPointFeat);\r\n //console.log(outPointAtBorder);\r\n var notionalDistancePointArr = [notionalPoint.getCoordinates(), nsrPointFeat.getGeometry().getCoordinates()];\r\n //Alex modified Feb 23\r\n var notionalDistanceLine = new LineString(notionalDistancePointArr);\r\n var notionalDistance = getLength(notionalDistanceLine);\r\n return {\r\n notionalPoint: notionalPoint,\r\n notionalDistance: notionalDistance,\r\n calcType: calcType,\r\n };\r\n}\r\n\r\n//Alex modified below and above\r\nfunction getNotionalPoint(pointZoneId, nsrPointFeat) {\r\n //### check if this is calculation type A or B\r\n var zoneFeature = getZoneFeatFromArray(pointZoneId);\r\n var calcType = zoneFeature.get(\"calculationtype\");\r\n if (calcType) {\r\n if (calcType === \"B\") {\r\n calcTypeTemp = \"B\";\r\n var zoneCentroid = getZoneCentroidFeatFromArray(pointZoneId);\r\n zoneCentroidTest = zoneCentroid; // save to global var\r\n zoneCentroidTest2 = testgetZoneCentroidFeatFromArray(pointZoneId);\r\n zoneCentroidTest3 = testgetZoneCenterFeatFromArray(pointZoneId);\r\n var notionalPoint;\r\n //check if the centroid is outside of the polygon (not intersect)\r\n var longerCoordinateIndex = 0;\r\n if (isIntersect(zoneFeature, zoneCentroid)) {\r\n var maxCoorMembers = 0;\r\n if (zoneFeature.getGeometry().getCoordinates().length > 1) {\r\n for (let i = 0; i < zoneFeature.getGeometry().getCoordinates().length; i++) {\r\n var aCoorSet = zoneFeature.getGeometry().getCoordinates()[i];\r\n if (maxCoorMembers < aCoorSet.length) {\r\n maxCoorMembers = aCoorSet.length;\r\n longerCoordinateIndex = i;\r\n }\r\n }\r\n }\r\n }\r\n\r\n var bbb = zoneFeature.getGeometry().getCoordinates();\r\n\r\n var poly = turf.polygon(bbb);\r\n var aaa = turf.polygonToLine(poly);\r\n\r\n var zoneLine = new LineString(\r\n zoneFeature.getGeometry().getCoordinates()[longerCoordinateIndex],\r\n\r\n \"XY\"\r\n );\r\n var zoneLineFeat = new Feature({\r\n geometry: zoneLine,\r\n });\r\n var xxx = new LineString(bbb);\r\n var zzz = aaa.geometry.coordinates;\r\n var yyy = new Feature(zzz);\r\n\r\n var www = new Feature({\r\n geometry: xxx,\r\n });\r\n\r\n var david = nsrPointFeat.getGeometry().getCoordinates();\r\n\r\n var geoJSON = new GeoJSON();\r\n //var featGeoJSON1 = geoJSON.writeFeatureObject(zoneLineFeat);\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(zoneLineFeat);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var ddd = new Feature(featTurfGeom1);\r\n var featTurfGeom2 = zoneLineFeat.getGeometry().getCoordinates();\r\n ///var featTurfGeom2 = yyy.getGeometry().getCoordinates();\r\n //var featTurfGeom2 = bbb;\r\n featTurfGeom2 = [].concat.apply([], featTurfGeom2);\r\n\r\n var eee = new Feature(featTurfGeom1);\r\n\r\n var jesus = zoneLineFeat.getGeometry().transform(\"EPSG:3857\", \"EPSG:4326\");\r\n\r\n // var hhh = xxx.transform(\"EPSG:3857\", \"EPSG:4326\");\r\n\r\n // console.log('가자 가자 가자');\r\n // console.log(hhh)\r\n\r\n var christ = jesus.getCoordinates();\r\n\r\n var davidgood = epsg3857toEpsg4326(david);\r\n\r\n var line = turf.lineString(christ);\r\n var pt = turf.point(davidgood);\r\n\r\n var snapped = turf.nearestPointOnLine(line, pt);\r\n\r\n var snapped01 = snapped.geometry.coordinates;\r\n var snapped02 = epsg4326toEpsg3857(snapped01);\r\n\r\n var pointArr = [david, snapped02];\r\n var finalshortestline = new LineString(pointArr);\r\n\r\n var linestringCoordinates = finalshortestline.getCoordinates();\r\n var lastPointCoord = linestringCoordinates[linestringCoordinates.length - 1];\r\n var secondToLastPointCoord = linestringCoordinates[linestringCoordinates.length - 2];\r\n var lastPoint = new Feature(new Point(lastPointCoord));\r\n var secondToLastPoint = new Feature(new Point(secondToLastPointCoord));\r\n var lastPoint01 = lastPoint.getGeometry().getCoordinates();\r\n var lastPoint01 = [].concat.apply([], lastPoint01);\r\n var secondToLastPoint01 = secondToLastPoint.getGeometry().getCoordinates();\r\n var secondToLastPoint01 = [].concat.apply([], secondToLastPoint01);\r\n var lastPoint02 = JSON.stringify(lastPoint01);\r\n var secondToLastPoint02 = JSON.stringify(secondToLastPoint01);\r\n var lastPoint03 = epsg3857toEpsg4326(lastPoint01);\r\n var secondToLastPoint03 = epsg3857toEpsg4326(secondToLastPoint01);\r\n var pt1 = turf.point(lastPoint03);\r\n var pt2 = turf.point(secondToLastPoint03);\r\n\r\n var linestringBearing = turf.bearing(pt2, pt1);\r\n\r\n var destinationoptions = { units: \"kilometers\" };\r\n var extensionDistance = 20;\r\n var destinationPoint = turf.destination(pt2, extensionDistance, linestringBearing, destinationoptions);\r\n\r\n var destinationPoint01 = destinationPoint.geometry.coordinates;\r\n\r\n var destinationPoint02 = epsg4326toEpsg3857(destinationPoint01);\r\n\r\n var pointArr2 = [destinationPoint02, david];\r\n\r\n // var paul = getExtendedLineAtTheEndForKilometerDistance(\r\n // 20,\r\n // finalshortestline\r\n // );\r\n\r\n // connection from nsrPoint to destinationPoint //\r\n\r\n var line1 = turf.lineString([destinationPoint02, david]);\r\n\r\n var ans = turf.lineIntersect(line1, featTurfGeom1);\r\n\r\n if (ans.features.length < 2) {\r\n // var linestringCoordinates = finalshortestline.getCoordinates();\r\n\r\n // var lastPointCoord =\r\n // linestringCoordinates[linestringCoordinates.length - 2];\r\n var snapped03 = new Point(snapped02);\r\n var notionalPoint = snapped03;\r\n outPointAtBorder = snapped03;\r\n\r\n return {\r\n notionalPoint: notionalPoint,\r\n calcType: calcType,\r\n };\r\n } else {\r\n var Apoint = ans.features[0].geometry.coordinates;\r\n var Bpoint = ans.features[1].geometry.coordinates;\r\n\r\n // connection from Apoint to Bpoint\r\n var pointArr = [Apoint, Bpoint];\r\n var AToBLine = new LineString(pointArr);\r\n var AToBLineFeat = new Feature({\r\n geometry: AToBLine,\r\n });\r\n var AToBDistance = AToBLine.getLength();\r\n var fraction = 0.5;\r\n //notionalPoint = new Point(AToBLine.getCoordinateAt(fraction));\r\n var centralPoint;\r\n centralPoint = new Point(AToBLine.getCoordinateAt(fraction));\r\n //var newdavid = nsrPointFeat.getGeometry().getCoordinates();\r\n\r\n //var kkk = centralPoint.features.geometry.coordinates;\r\n var kkk = centralPoint.getCoordinates();\r\n\r\n // var newgeoJSON = new GeoJSON();\r\n // var newfeatGeoJSON1 = newgeoJSON.writeFeatureObject(zoneLineFeat);\r\n // var newfeatTurfGeom1 = turf.getGeom(newfeatGeoJSON1);\r\n\r\n // var newfeatTurfGeom2 = zoneLineFeat.getGeometry().getCoordinates();\r\n // newfeatTurfGeom2 = [].concat.apply([], newfeatTurfGeom2);\r\n // var newjesus = zoneLineFeat\r\n // .getGeometry()\r\n // .transform(\"EPSG:3857\", \"EPSG:4326\");\r\n // console.log('김정희2');\r\n // console.log(zoneLineFeat);\r\n // var newchrist = newjesus.getCoordinates();\r\n // console.log('김정희3');\r\n // console.log(newchrist);\r\n\r\n // var newdavidgood = epsg3857toEpsg4326(newdavid);\r\n // console.log('김정희4');\r\n // console.log(newdavidgood);\r\n\r\n // var newline = turf.lineString(newchrist);\r\n // var newpt = turf.point(newdavidgood);\r\n // console.log('김정희5');\r\n // console.log(newline);\r\n // console.log(newpt);\r\n\r\n // var newsnapped = turf.nearestPointOnLine(newline, newpt);\r\n // var newsnapped01 = newsnapped.geometry.coordinates;\r\n // var newsnapped02 = epsg4326toEpsg3857(newsnapped01);\r\n // var centralPoint;\r\n // centralPoint = new Point(AToBLine.getCoordinateAt(fraction));\r\n\r\n var pointArr007 = [kkk, snapped02];\r\n\r\n var fraction007 = 0.5;\r\n var CentralToSnappedLine = new LineString(pointArr007);\r\n notionalPoint = new Point(CentralToSnappedLine.getCoordinateAt(fraction007));\r\n\r\n //outPointAtBorder = Apoint; // save to global var, 위의 if처럼 시도\r\n var snapped03 = new Point(snapped02);\r\n\r\n //outPointAtBorder = Apoint;\r\n outPointAtBorder = snapped03;\r\n\r\n return {\r\n notionalPoint: notionalPoint,\r\n calcType: calcType,\r\n };\r\n }\r\n }\r\n }\r\n //### get notional point\r\n var zoneCentroid = getZoneCentroidFeatFromArray(pointZoneId);\r\n zoneCentroidTest = zoneCentroid; // save to global var\r\n zoneCentroidTest2 = testgetZoneCentroidFeatFromArray(pointZoneId);\r\n zoneCentroidTest3 = testgetZoneCenterFeatFromArray(pointZoneId);\r\n var notionalPoint;\r\n\r\n //check if the centroid is outside of the polygon (not intersect)\r\n if (isIntersect(zoneFeature, zoneCentroid)) {\r\n var longerCoordinateIndex = 0;\r\n var maxCoorMembers = 0;\r\n if (zoneFeature.getGeometry().getCoordinates().length > 1) {\r\n for (let i = 0; i < zoneFeature.getGeometry().getCoordinates().length; i++) {\r\n var aCoorSet = zoneFeature.getGeometry().getCoordinates()[i];\r\n if (maxCoorMembers < aCoorSet.length) {\r\n maxCoorMembers = aCoorSet.length;\r\n longerCoordinateIndex = i;\r\n }\r\n }\r\n }\r\n // change the zone to line\r\n var zoneLine = new LineString(zoneFeature.getGeometry().getCoordinates()[longerCoordinateIndex], \"XY\");\r\n var zoneLineFeat = new Feature({\r\n geometry: zoneLine,\r\n });\r\n // console.log(zoneCentroid.getGeometry().getCoordinates());\r\n var pointArr = [zoneCentroid.getGeometry().getCoordinates(), nsrPointFeat.getGeometry().getCoordinates()];\r\n var distanceLine = new LineString(pointArr);\r\n var distanceLineFeat = new Feature({\r\n geometry: distanceLine,\r\n });\r\n var currentDistance = distanceLine.getLength();\r\n //get notional point\r\n var pointAtSiteBorder = getIntesectedPoint(distanceLineFeat, zoneLineFeat, nsrPointFeat);\r\n var pointArr2 = [zoneCentroid.getGeometry().getCoordinates(), pointAtSiteBorder.getGeometry().getCoordinates()];\r\n var centroidToSiteBorderLine = new LineString(pointArr2);\r\n var fraction = 0.5;\r\n notionalPoint = new Point(centroidToSiteBorderLine.getCoordinateAt(fraction));\r\n outPointAtBorder = pointAtSiteBorder; // save to global var //Feb 22 Alex modified\r\n\r\n //check if the notional point has bigger distance than 50m from the site boundary\r\n var pointCheckArr = [pointAtSiteBorder.getGeometry().getCoordinates(), notionalPoint.getCoordinates()];\r\n var lineCheck = new LineString(pointCheckArr);\r\n //var bigSizeCheckDistance = getLength(lineCheck);\r\n var bigSizeCheckDistance = lineCheck.getLength();\r\n if (bigSizeCheckDistance > 50) {\r\n //fraction = 50 / getLength(centroidToSiteBorderLine);\r\n let fraction50 = 50 / centroidToSiteBorderLine.getLength();\r\n fraction = 1 - fraction50;\r\n notionalPoint = new Point(centroidToSiteBorderLine.getCoordinateAt(fraction));\r\n }\r\n\r\n return {\r\n notionalPoint: notionalPoint,\r\n calcType: calcType,\r\n };\r\n } else {\r\n //get the nearestpoint on the site/zone boundary. Will find a LineString first.\r\n var shortestLineGeom = getShortestLine(zoneFeature.getGeometry(), zoneCentroid.getGeometry());\r\n var firstCoord = shortestLineGeom.getFirstCoordinate();\r\n var lastCoord = shortestLineGeom.getLastCoordinate();\r\n var pointAtSiteBoundaryCoord;\r\n if (toStringXY(firstCoord, 4) === toStringXY(zoneCentroid.getGeometry().getCoordinates(), 4)) {\r\n pointAtSiteBoundaryCoord = lastCoord;\r\n } else {\r\n pointAtSiteBoundaryCoord = firstCoord;\r\n }\r\n notionalPoint = new Point(pointAtSiteBoundaryCoord);\r\n\r\n // save to global var\r\n outPointAtBorder = new Feature({\r\n geometry: notionalPoint,\r\n });\r\n\r\n //outPointAtBorder = outPointAtBorder.geometry.coordinates;\r\n\r\n return {\r\n notionalPoint: notionalPoint,\r\n calcType: calcType,\r\n };\r\n }\r\n}\r\n//Alex Modified above\r\n\r\nfunction isTwoDatesOverlaped(startA, endA, startB, endB) {\r\n return (startA < endB || isSameDay(startA, endB)) && (endA > startB || isSameDay(endA, startB));\r\n}\r\n\r\nfunction isSameDay(d1, d2) {\r\n return d1.getFullYear() === d2.getFullYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate();\r\n}\r\n\r\nfunction getCombinedZoneTaskListArrayPerProjectid(projectid, startDate, endDate, projectTaskObjArr) {\r\n var combinedZoneTaskListArr = [];\r\n\r\n //var currentStartDateCheckOverlap = startDate;\r\n var currentStartDateCheckOverlap = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate());\r\n\r\n while (currentStartDateCheckOverlap <= endDate) {\r\n // do we use dates in PME? or do we use tasks dates? Below is assume we use tasks dates. We assume PME dates do not exist.\r\n var zoneTaskToCombine = [];\r\n for (let i = 0; i < projectTaskObjArr.length; i++) {\r\n var currentTask = projectTaskObjArr[i];\r\n //console.log(currentTask);\r\n if (currentTask.projectId !== projectid) {\r\n continue;\r\n }\r\n var taskStartDate = new Date(currentTask.start);\r\n var taskEndDate = new Date(currentTask.end);\r\n var taskZoneId = currentTask.zone;\r\n var taskid = parseInt(currentTask.id);\r\n var currentZoneTask = \"\";\r\n\r\n if (isTwoDatesOverlaped(currentStartDateCheckOverlap, currentStartDateCheckOverlap, taskStartDate, taskEndDate)) {\r\n currentZoneTask = taskZoneId.toString() + \"-\" + taskid.toString();\r\n zoneTaskToCombine.push(currentZoneTask);\r\n }\r\n }\r\n var combinedZoneTaskId = \"\";\r\n if (zoneTaskToCombine.length > 1) {\r\n combinedZoneTaskId = zoneTaskToCombine.join(\"c\");\r\n } else if (zoneTaskToCombine.length === 1) {\r\n combinedZoneTaskId = zoneTaskToCombine[0];\r\n }\r\n combinedZoneTaskId = \"b\" + combinedZoneTaskId + \"b\";\r\n\r\n if (!combinedZoneTaskListArr.includes(combinedZoneTaskId) && combinedZoneTaskId !== \"bb\" && combinedZoneTaskId !== \"bundefinedb\") {\r\n combinedZoneTaskListArr.push(combinedZoneTaskId);\r\n }\r\n\r\n var beginingMonthDate = new Date(\r\n currentStartDateCheckOverlap.getFullYear(),\r\n currentStartDateCheckOverlap.getMonth(),\r\n currentStartDateCheckOverlap.getDate()\r\n );\r\n //set the date to the beginning of next month\r\n currentStartDateCheckOverlap = new Date(beginingMonthDate.setDate(beginingMonthDate.getDate() + 1));\r\n }\r\n\r\n return combinedZoneTaskListArr;\r\n}\r\n\r\n// ### the main noise calculation function\r\nfunction calculateNoise6(projectId, approvedData, callback) {\r\n // var siteCentroid = getCenterOfMass(globalCurrentSiteFeature);\r\n // var siteLine = new LineString(globalCurrentSiteFeature.getGeometry().getCoordinates()[0], 'XY');;\r\n // var siteLineFeat = new Feature({\r\n // geometry: siteLine\r\n // });\r\n console.log(selectedNSRPointIds);\r\n console.log(\"enter calculateNoise6\");\r\n let minDistance = 999999;\r\n\r\n let labelThreshold = 68;\r\n\r\n //vecTestSource.clear();\r\n var thisLayer = getLayerByTitle(\"testLayer\");\r\n thisLayer.values_.visible = true;\r\n thisLayer.getSource().clear();\r\n //thisLayer.getSource().addFeature(distanceLineFeat);\"endd\"\r\n\r\n // get the zone-task group first\r\n let zoneTaskIds = [...new Set(thisProjectCalculatedPMEFeats.map((f) => `${f.get(\"zone\")}-${f.get(\"taskid\")}`))];\r\n let minStartDate = new Date(projectObj.commencementDate);\r\n let maxEndDate = new Date(projectObj.completionDate);\r\n\r\n // console.log(projectObj.commencementDate);\r\n // console.log(projectObj.completionDate);\r\n // get overlapped dates for every zonetasks\r\n var combinedZoneTaskListArr = [];\r\n var combinedZoneTaskWithApprovedSitesArr = [];\r\n var currentStartDateCheckOverlap = minStartDate;\r\n var beginingMonthDate = new Date(\r\n currentStartDateCheckOverlap.getFullYear(),\r\n currentStartDateCheckOverlap.getMonth(),\r\n currentStartDateCheckOverlap.getDate()\r\n );\r\n while (currentStartDateCheckOverlap <= maxEndDate) {\r\n // do we use dates in PME? or do we use tasks dates? Below is assume we use tasks dates. We assume PME dates do not exist.\r\n var zoneTaskToCombine = [];\r\n thisProjectCalculateTask.forEach((currentTask) => {\r\n if (isTwoDatesOverlaped(currentStartDateCheckOverlap, currentStartDateCheckOverlap, new Date(currentTask.start), new Date(currentTask.end))) {\r\n zoneTaskToCombine.push(`${currentTask.zone}-${currentTask.id}`);\r\n }\r\n });\r\n //check approved neighbour sites\r\n var approvedZoneTaskCombined = [];\r\n approvedProjectIDs.forEach((curProjId) => {\r\n approvedProjectScheduleTasks\r\n .filter((t) => t.projectId == curProjId)\r\n .forEach((curProjTask) => {\r\n if (\r\n isTwoDatesOverlaped(currentStartDateCheckOverlap, currentStartDateCheckOverlap, new Date(curProjTask.start), new Date(curProjTask.end))\r\n ) {\r\n approvedZoneTaskCombined.push(`${curProjId}#${curProjTask.zone}-${curProjTask.id}`);\r\n }\r\n });\r\n });\r\n if (approvedProjectIDs.length > 0) {\r\n approvedZoneTaskCombined.push(...zoneTaskToCombine);\r\n }\r\n // console.log(\"approvedZoneTaskCombined\");\r\n // console.log(approvedZoneTaskCombined);\r\n\r\n let combinedZoneTaskId = zoneTaskToCombine.join(\"+\");\r\n if (!combinedZoneTaskListArr.includes(combinedZoneTaskId) && combinedZoneTaskId !== \"\") {\r\n combinedZoneTaskListArr.push(combinedZoneTaskId);\r\n }\r\n\r\n let approvedcombinedZoneTaskId = approvedZoneTaskCombined.join(\"+\");\r\n\r\n if (!combinedZoneTaskWithApprovedSitesArr.includes(approvedcombinedZoneTaskId) && approvedcombinedZoneTaskId !== \"\") {\r\n combinedZoneTaskWithApprovedSitesArr.push(approvedcombinedZoneTaskId);\r\n }\r\n\r\n beginingMonthDate = new Date(\r\n currentStartDateCheckOverlap.getFullYear(),\r\n currentStartDateCheckOverlap.getMonth(),\r\n currentStartDateCheckOverlap.getDate()\r\n );\r\n //set the date to the beginning of next month\r\n currentStartDateCheckOverlap = new Date(beginingMonthDate.setDate(beginingMonthDate.getDate() + 1));\r\n }\r\n\r\n //split type B zonetasks\r\n let combinedZoneTaskListArrSplit = [];\r\n let combinedZoneTaskWithApprovedSitesArrSplit = [];\r\n\r\n combinedZoneTaskListArr.forEach((combinedZoneTaskList) => {\r\n let zoneTask = combinedZoneTaskList.split(\"+\");\r\n let typeAZoneTasks = zoneTask.filter((zt) => getZoneFeatFromArray(parseInt(zt.split(\"-\")[0])).get(\"calculationtype\") != \"B\");\r\n let typeBZoneTasks = zoneTask.filter((zt) => getZoneFeatFromArray(parseInt(zt.split(\"-\")[0])).get(\"calculationtype\") == \"B\");\r\n\r\n typeBZoneTasks.forEach((zt) => {\r\n combinedZoneTaskListArrSplit.push([...typeAZoneTasks, zt].join(\"+\"));\r\n });\r\n if (typeBZoneTasks.length == 0) {\r\n combinedZoneTaskListArrSplit.push(typeAZoneTasks.join(\"+\"));\r\n }\r\n });\r\n // combinedZoneTaskListArr = combinedZoneTaskListArrSplit;\r\n\r\n //to check\r\n combinedZoneTaskListArr = combinedZoneTaskListArrSplit.filter((c) => c.includes(\"+\"));\r\n\r\n combinedZoneTaskWithApprovedSitesArr.forEach((combinedZoneTaskList) => {\r\n let zoneTask = combinedZoneTaskList.split(\"+\");\r\n let typeAZoneTasks = zoneTask.filter((zt) => getZoneFeatFromArray(parseInt(zt.split(\"-\")[0])).get(\"calculationtype\") != \"B\");\r\n let typeBZoneTasks = zoneTask.filter((zt) => getZoneFeatFromArray(parseInt(zt.split(\"-\")[0])).get(\"calculationtype\") == \"B\");\r\n typeBZoneTasks.forEach((zt) => {\r\n combinedZoneTaskWithApprovedSitesArrSplit.push([...typeAZoneTasks, zt].join(\"+\"));\r\n });\r\n if (typeBZoneTasks.length == 0) {\r\n combinedZoneTaskWithApprovedSitesArrSplit.push(typeAZoneTasks.join(\"+\"));\r\n }\r\n });\r\n // combinedZoneTaskWithApprovedSitesArr =\r\n // combinedZoneTaskWithApprovedSitesArrSplit;\r\n // to check\r\n combinedZoneTaskWithApprovedSitesArr = combinedZoneTaskWithApprovedSitesArrSplit.filter((c) => c.includes(\"+\"));\r\n\r\n // array for insert into calculation result detail database\r\n var calculationResultOriginalDetailArray = [];\r\n var calculationResultMitigatedDetailArray = [];\r\n var calculationResultDetailArray = [];\r\n // array for insert into calculation result detail database - end\r\n\r\n var totalCNLOriginalInZoneTask = [];\r\n var totalCNLMitigatedInZoneTask = [];\r\n var exclGroupNamesOriginalInZoneTask = [];\r\n var exclGroupNamesMitigatedInZoneTask = [];\r\n var pmeArrayForZoneTaskFromMaxExcGroup = [];\r\n\r\n //variable for considering the fixed location pme\r\n var zoneTask_ExclusiveGroupList = [];\r\n console.log(\"zoneTaskIds\");\r\n console.log(zoneTaskIds);\r\n\r\n zoneTaskIds.forEach((currentZoneTaskId) => {\r\n var oriCalculatonResultDetailGroupArr = [];\r\n var mitCalculatonResultDetailGroupArr = [];\r\n\r\n var fixedLocationExist = false;\r\n // list the exclusive group first\r\n var excGroupNames = [];\r\n var excGroupNamesMain = [];\r\n var bothExcGroupVersion = [];\r\n\r\n thisProjectCalculatedPMEFeats\r\n .filter((f) => `${f.get(\"zone\")}-${f.get(\"taskid\")}` == currentZoneTaskId)\r\n .forEach((currentFeat) => {\r\n let currentExclusiveGroup = currentFeat.get(\"exclusivegroup\") == null ? \"\" : currentFeat.get(\"exclusivegroup\").trim();\r\n if (!excGroupNamesMain.includes(currentExclusiveGroup) && currentExclusiveGroup != \"\") {\r\n excGroupNamesMain.push(currentExclusiveGroup);\r\n }\r\n\r\n let currentIsNotional = currentFeat.get(\"isnotional\");\r\n if (currentIsNotional.toLowerCase().includes(\"fix\")) {\r\n fixedLocationExist = true;\r\n //update currentExclusiveGroup for fix location equipment\r\n currentExclusiveGroup = `${currentExclusiveGroup}#${currentFeat.id_.split(\".\")[1]}`;\r\n }\r\n\r\n if (!excGroupNames.includes(currentExclusiveGroup) && currentExclusiveGroup != \"\") {\r\n excGroupNames.push(currentExclusiveGroup);\r\n }\r\n });\r\n if (excGroupNames.length > 0 && excGroupNamesMain.length === 0) {\r\n excGroupNames.push(\"\");\r\n excGroupNamesMain.push(\"\");\r\n }\r\n bothExcGroupVersion.push(excGroupNames);\r\n bothExcGroupVersion.push(excGroupNamesMain);\r\n // console.log(\"bothExcGroupVersion\");\r\n // console.log(bothExcGroupVersion);\r\n\r\n var zoneTask_ExcGrpDict = new CustDictionary(currentZoneTaskId, bothExcGroupVersion, fixedLocationExist);\r\n zoneTask_ExclusiveGroupList.push(zoneTask_ExcGrpDict);\r\n // console.log(\"zoneTask_ExclusiveGroupList\");\r\n // console.log(zoneTask_ExclusiveGroupList);\r\n\r\n var totalCNLOriginalInExcGroup = [];\r\n var totalCNLMitigatedInExcGroup = [];\r\n //put var array of pme here......\r\n var pmeArrayForAllExcGroups = [];\r\n\r\n // console.log(\"currentZoneTaskId\");\r\n // console.log(currentZoneTaskId);\r\n\r\n for (let j = 0; j < excGroupNames.length; j++) {\r\n var excGroupName = excGroupNames[j];\r\n\r\n var exclGroupOriNoiseTotal = 0;\r\n var exclGroupMitNoiseTotal = 0;\r\n var pmeOriginalSWLForThisExcGroup = [];\r\n var pmeMitigatedSWLForThisExcGroup = [];\r\n var pmeArrayForCurrentExcGroup = [];\r\n\r\n var oriCalculatonResultDetailOneExcGroupArr = [];\r\n var mitCalculatonResultDetailOneExcGroupArr = [];\r\n\r\n for (let k = 0; k < thisProjectCalculatedPMEFeats.length; k++) {\r\n var currentFeat = thisProjectCalculatedPMEFeats[k];\r\n var currentZone = currentFeat.get(\"zone\");\r\n var currenttaskid = parseInt(currentFeat.get(\"taskid\"));\r\n var zoneTask = currentZone.toString() + \"-\" + currenttaskid.toString();\r\n\r\n if (currentZoneTaskId !== zoneTask) {\r\n continue;\r\n }\r\n\r\n var currentExclusiveGroup = currentFeat.get(\"exclusivegroup\") == null ? \"\" : currentFeat.get(\"exclusivegroup\").trim();\r\n if (excGroupName.includes(\"#\")) {\r\n // var currentPMEId = currentFeat.get('pmeid');\r\n var currentPMEId_0 = currentFeat.id_.split(\".\")[1];\r\n var currentFixedLocationExclusiveGroup = currentExclusiveGroup + \"#\" + currentPMEId_0.toString();\r\n if (excGroupName === currentFixedLocationExclusiveGroup) {\r\n if (currentFeat.get(\"isnotional\").toLowerCase().includes(\"notional\")) {\r\n continue;\r\n }\r\n } else {\r\n continue;\r\n }\r\n } else {\r\n // special for notional source\r\n if (excGroupName === currentExclusiveGroup || currentExclusiveGroup === \"\") {\r\n if (currentFeat.get(\"isnotional\").toLowerCase().includes(\"fix\")) {\r\n continue;\r\n }\r\n } else {\r\n continue;\r\n }\r\n }\r\n var currStartDate = new Date(getHKDateStringFromZulu(currentFeat.get(\"startt\")));\r\n var currEndDate = new Date(getHKDateStringFromZulu(currentFeat.get(\"endd\")));\r\n var currPMEid = currentFeat.get(\"pmeid\");\r\n var currPMEName = currentFeat.get(\"othername\");\r\n var currOfficialid = currentFeat.get(\"officialid\") == null ? \"\" : currentFeat.get(\"officialid\");\r\n var combinedMitPMEName = currentFeat.get(\"qpmename\") == null ? \"\" : currentFeat.get(\"qpmename\");\r\n var currMitPMeName = combinedMitPMEName;\r\n var currMitOfficialid = \"\";\r\n if (combinedMitPMEName.toUpperCase().indexOf(\"CNP\") > -1) {\r\n var tempNameArr = combinedMitPMEName.split(\" - \");\r\n currMitOfficialid = tempNameArr[0];\r\n currMitPMeName = tempNameArr[1];\r\n }\r\n\r\n var timePecentage = currentFeat.get(\"timepercent\");\r\n // var isNotional = currentFeat.get('isnotional');\r\n var qty = currentFeat.get(\"qty\");\r\n var swl = currentFeat.get(\"swl\");\r\n // combined with mitigation + qpme\r\n var qpmeswl = currentFeat.get(\"qpmeswl\") == null ? 0 : currentFeat.get(\"qpmeswl\");\r\n\r\n //if pme not replaced by mitigation pme (like qpme or othe mitigated pme)\r\n if (!currMitPMeName || currMitPMeName?.trim() === \"\") {\r\n currMitPMeName = currPMEName;\r\n currMitOfficialid = currOfficialid;\r\n qpmeswl = swl;\r\n }\r\n\r\n const isQCM = currentFeat.get(\"isqcm\") || false;\r\n\r\n var enclosureMit = currentFeat.get(\"enclosuredba\") == null ? 0 : currentFeat.get(\"enclosuredba\");\r\n var barrierMit = currentFeat.get(\"barrierdba\") == null ? 0 : currentFeat.get(\"barrierdba\");\r\n var hammerMit = currentFeat.get(\"hammerdba\") == null ? 0 : currentFeat.get(\"hammerdba\");\r\n var customMit = currentFeat.get(\"custommethoddba\") == null ? 0 : currentFeat.get(\"custommethoddba\");\r\n var customName = currentFeat.get(\"custommethodname\") == null ? \"\" : currentFeat.get(\"custommethodname\");\r\n var mitMeasure = \"\";\r\n var minMit = 0;\r\n if (minMit > customMit) {\r\n mitMeasure = customName;\r\n minMit = customMit;\r\n }\r\n if (minMit > hammerMit) {\r\n mitMeasure = \"Hammer Bracket\";\r\n minMit = hammerMit;\r\n }\r\n if (minMit > barrierMit) {\r\n mitMeasure = \"Barrier\";\r\n minMit = barrierMit;\r\n }\r\n if (minMit > enclosureMit) {\r\n mitMeasure = \"Enclosure\";\r\n minMit = enclosureMit;\r\n }\r\n // console.log(\"mitMeasure\");\r\n // console.log(mitMeasure);\r\n // console.log(enclosureMit);\r\n // console.log(barrierMit);\r\n // console.log(hammerMit);\r\n // console.log(customMit);\r\n\r\n var timePercentageCorrection = 10 * Math.log10(timePecentage / 100);\r\n var oriCorrectedSWL = (swl <= 0 ? qpmeswl : swl) + timePercentageCorrection;\r\n var mitCorrectedSWL =\r\n qpmeswl <= 0 && !isQCM ? swl + timePercentageCorrection : (swl <= 0 ? qpmeswl : Math.min(swl, qpmeswl)) + timePercentageCorrection;\r\n mitCorrectedSWL = mitCorrectedSWL <= 0 ? 0 : mitCorrectedSWL;\r\n var swlAfterQTYMitigated = mitCorrectedSWL;\r\n var swlAfterQTYOriginal = oriCorrectedSWL;\r\n if (qty > 0) {\r\n //swlAfterQTY = unmitigatedSWL + (10 * Math.log10(qty));\r\n swlAfterQTYOriginal = oriCorrectedSWL + 10 * Math.log10(qty);\r\n swlAfterQTYMitigated = mitCorrectedSWL + (mitCorrectedSWL ? 10 * Math.log10(qty) : 0);\r\n }\r\n swlAfterQTYMitigated = swlAfterQTYMitigated <= 0 ? 0 : swlAfterQTYMitigated;\r\n var totalReduction = Math.min(enclosureMit, barrierMit, hammerMit);\r\n var mitigatedSWL = swlAfterQTYMitigated + totalReduction;\r\n mitigatedSWL = mitigatedSWL <= 0 ? 0 : mitigatedSWL;\r\n pmeOriginalSWLForThisExcGroup.push(swlAfterQTYOriginal);\r\n pmeMitigatedSWLForThisExcGroup.push(mitigatedSWL);\r\n pmeArrayForCurrentExcGroup.push(currentFeat);\r\n\r\n // var for insert into calculation result detail database\r\n // console.log(\"excGroupName for detail\");\r\n // console.log(excGroupName);\r\n var aOriCalResDet = new CalculationResultDetail(\r\n 0,\r\n projectId,\r\n false,\r\n currentZone,\r\n currenttaskid,\r\n excGroupName,\r\n currStartDate,\r\n currEndDate,\r\n currPMEid,\r\n currPMEName,\r\n currOfficialid,\r\n swl,\r\n timePecentage,\r\n timePercentageCorrection,\r\n qty,\r\n swlAfterQTYOriginal,\r\n \"\",\r\n 0,\r\n 0,\r\n 0,\r\n 0\r\n );\r\n var aMitCalResDet = new CalculationResultDetail(\r\n 0,\r\n projectId,\r\n true,\r\n currentZone,\r\n currenttaskid,\r\n excGroupName,\r\n currStartDate,\r\n currEndDate,\r\n currPMEid,\r\n currMitPMeName,\r\n currMitOfficialid,\r\n qpmeswl,\r\n timePecentage,\r\n timePercentageCorrection,\r\n qty,\r\n swlAfterQTYMitigated,\r\n mitMeasure,\r\n totalReduction,\r\n mitigatedSWL,\r\n 0,\r\n 0\r\n );\r\n //console.log(aMitCalResDet);\r\n oriCalculatonResultDetailOneExcGroupArr.push(aOriCalResDet);\r\n mitCalculatonResultDetailOneExcGroupArr.push(aMitCalResDet);\r\n }\r\n // console.log(\"pmeOriginalSWLForThisExcGroup for \"+ excGroupName);\r\n // console.log(pmeOriginalSWLForThisExcGroup);\r\n // console.log(\"oriCalculatonResultDetailOneExcGroupArr for \" + excGroupName);\r\n // console.log(oriCalculatonResultDetailOneExcGroupArr);\r\n // console.log(\"oriCalculatonResultDetailOneExcGroupArr\");\r\n // console.log(oriCalculatonResultDetailOneExcGroupArr);\r\n // console.log(\"thisProjectCalculatedPMEFeats\");\r\n // console.log(thisProjectCalculatedPMEFeats);\r\n exclGroupOriNoiseTotal = getCombinedNoiseLevel(pmeOriginalSWLForThisExcGroup);\r\n exclGroupMitNoiseTotal = getCombinedNoiseLevel(pmeMitigatedSWLForThisExcGroup);\r\n for (let k = 0; k < oriCalculatonResultDetailOneExcGroupArr.length; k++) {\r\n var oriCalc = oriCalculatonResultDetailOneExcGroupArr[k];\r\n var mitCalc = mitCalculatonResultDetailOneExcGroupArr[k];\r\n oriCalc.groupswl = exclGroupOriNoiseTotal;\r\n mitCalc.groupswl = exclGroupMitNoiseTotal;\r\n\r\n oriCalculatonResultDetailGroupArr.push(oriCalc);\r\n mitCalculatonResultDetailGroupArr.push(mitCalc);\r\n }\r\n\r\n totalCNLOriginalInExcGroup.push(exclGroupOriNoiseTotal);\r\n totalCNLMitigatedInExcGroup.push(exclGroupMitNoiseTotal);\r\n pmeArrayForAllExcGroups.push(pmeArrayForCurrentExcGroup);\r\n }\r\n // exactly the same as above steps but without exc group\r\n if (excGroupNames.length == 0) {\r\n var excGroupName = \"\";\r\n\r\n var exclGroupOriNoiseTotal = 0;\r\n var exclGroupMitNoiseTotal = 0;\r\n var pmeOriginalSWLForThisExcGroup = [];\r\n var pmeMitigatedSWLForThisExcGroup = [];\r\n var pmeArrayForCurrentExcGroup = [];\r\n\r\n var oriCalculatonResultDetailOneExcGroupArr = [];\r\n var mitCalculatonResultDetailOneExcGroupArr = [];\r\n\r\n for (let k = 0; k < thisProjectCalculatedPMEFeats.length; k++) {\r\n var currentFeat = thisProjectCalculatedPMEFeats[k];\r\n var currentZone = currentFeat.get(\"zone\");\r\n var currenttaskid = parseInt(currentFeat.get(\"taskid\"));\r\n var zoneTask = currentZone.toString() + \"-\" + currenttaskid.toString();\r\n\r\n if (currentZoneTaskId !== zoneTask) {\r\n continue;\r\n }\r\n\r\n var currentExclusiveGroup = currentFeat.get(\"exclusivegroup\") == null ? \"\" : currentFeat.get(\"exclusivegroup\").trim();\r\n if (excGroupName === currentExclusiveGroup || currentExclusiveGroup === \"\") {\r\n var currStartDate = new Date(getHKDateStringFromZulu(currentFeat.get(\"startt\")));\r\n var currEndDate = new Date(getHKDateStringFromZulu(currentFeat.get(\"endd\")));\r\n var currPMEid = currentFeat.get(\"pmeid\");\r\n var currPMEName = currentFeat.get(\"othername\");\r\n var currOfficialid = currentFeat.get(\"officialid\") == null ? \"\" : currentFeat.get(\"officialid\");\r\n var combinedMitPMEName = currentFeat.get(\"qpmename\") == null ? \"\" : currentFeat.get(\"qpmename\");\r\n var currMitPMeName = combinedMitPMEName;\r\n var currMitOfficialid = \"\";\r\n if (combinedMitPMEName.toUpperCase().indexOf(\"CNP\") > -1) {\r\n var tempNameArr = combinedMitPMEName.split(\" - \");\r\n currMitOfficialid = tempNameArr[0];\r\n currMitPMeName = tempNameArr[1];\r\n }\r\n\r\n var timePecentage = currentFeat.get(\"timepercent\");\r\n // var isNotional = currentFeat.get('isnotional');\r\n var qty = currentFeat.get(\"qty\");\r\n var swl = currentFeat.get(\"swl\");\r\n // combined with mitigation + qpme\r\n var qpmeswl = currentFeat.get(\"qpmeswl\") == null ? 0 : currentFeat.get(\"qpmeswl\");\r\n //if pme not replaced by mitigation pme (like qpme or othe mitigated pme)\r\n if (!currMitPMeName || currMitPMeName?.trim() === \"\") {\r\n currMitPMeName = currPMEName;\r\n currMitOfficialid = currOfficialid;\r\n qpmeswl = swl;\r\n }\r\n\r\n const isQCM = currentFeat.get(\"isqcm\") || false;\r\n\r\n var enclosureMit = currentFeat.get(\"enclosuredba\") == null ? 0 : currentFeat.get(\"enclosuredba\");\r\n var barrierMit = currentFeat.get(\"barrierdba\") == null ? 0 : currentFeat.get(\"barrierdba\");\r\n var hammerMit = currentFeat.get(\"hammerdba\") == null ? 0 : currentFeat.get(\"hammerdba\");\r\n var customMit = currentFeat.get(\"custommethoddba\") == null ? 0 : currentFeat.get(\"custommethoddba\");\r\n var customName = currentFeat.get(\"custommethodname\") == null ? \"\" : currentFeat.get(\"custommethodname\");\r\n var mitMeasure = \"\";\r\n var minMit = 0;\r\n if (minMit > customMit) {\r\n mitMeasure = customName;\r\n minMit = customMit;\r\n }\r\n if (minMit > hammerMit) {\r\n mitMeasure = \"Hammer Bracket\";\r\n minMit = hammerMit;\r\n }\r\n if (minMit > barrierMit) {\r\n mitMeasure = \"Barrier\";\r\n minMit = barrierMit;\r\n }\r\n if (minMit > enclosureMit) {\r\n mitMeasure = \"Enclosure\";\r\n minMit = enclosureMit;\r\n }\r\n var timePercentageCorrection = 10 * Math.log10(timePecentage / 100);\r\n var oriCorrectedSWL = (swl <= 0 ? qpmeswl : swl) + timePercentageCorrection;\r\n var mitCorrectedSWL =\r\n qpmeswl <= 0 && !isQCM ? swl + timePercentageCorrection : (swl <= 0 ? qpmeswl : Math.min(swl, qpmeswl)) + timePercentageCorrection;\r\n mitCorrectedSWL = mitCorrectedSWL <= 0 ? 0 : mitCorrectedSWL;\r\n var swlAfterQTYMitigated = mitCorrectedSWL;\r\n var swlAfterQTYOriginal = oriCorrectedSWL;\r\n if (qty > 0) {\r\n //swlAfterQTY = unmitigatedSWL + (10 * Math.log10(qty));\r\n swlAfterQTYOriginal = oriCorrectedSWL + 10 * Math.log10(qty);\r\n swlAfterQTYMitigated = mitCorrectedSWL + (mitCorrectedSWL ? 10 * Math.log10(qty) : 0);\r\n }\r\n swlAfterQTYMitigated = swlAfterQTYMitigated <= 0 ? 0 : swlAfterQTYMitigated;\r\n var totalReduction = Math.min(enclosureMit, barrierMit, hammerMit, customMit);\r\n var mitigatedSWL = swlAfterQTYMitigated + totalReduction;\r\n mitigatedSWL = mitigatedSWL <= 0 ? 0 : mitigatedSWL;\r\n pmeOriginalSWLForThisExcGroup.push(swlAfterQTYOriginal);\r\n pmeMitigatedSWLForThisExcGroup.push(mitigatedSWL);\r\n pmeArrayForCurrentExcGroup.push(currentFeat);\r\n\r\n // var for insert into calculation result detail database\r\n var aOriCalResDet = new CalculationResultDetail(\r\n 0,\r\n projectId,\r\n false,\r\n currentZone,\r\n currenttaskid,\r\n currentExclusiveGroup,\r\n currStartDate,\r\n currEndDate,\r\n currPMEid,\r\n currPMEName,\r\n currOfficialid,\r\n swl,\r\n timePecentage,\r\n timePercentageCorrection,\r\n qty,\r\n swlAfterQTYOriginal,\r\n \"\",\r\n 0,\r\n 0,\r\n 0,\r\n 0\r\n );\r\n var aMitCalResDet = new CalculationResultDetail(\r\n 0,\r\n projectId,\r\n true,\r\n currentZone,\r\n currenttaskid,\r\n currentExclusiveGroup,\r\n currStartDate,\r\n currEndDate,\r\n currPMEid,\r\n currMitPMeName,\r\n currMitOfficialid,\r\n qpmeswl,\r\n timePecentage,\r\n timePercentageCorrection,\r\n qty,\r\n swlAfterQTYMitigated,\r\n mitMeasure,\r\n totalReduction,\r\n mitigatedSWL,\r\n 0,\r\n 0\r\n );\r\n oriCalculatonResultDetailOneExcGroupArr.push(aOriCalResDet);\r\n mitCalculatonResultDetailOneExcGroupArr.push(aMitCalResDet);\r\n }\r\n }\r\n // console.log(\"oriCalculatonResultDetailOneExcGroupArr\");\r\n // console.log(oriCalculatonResultDetailOneExcGroupArr);\r\n // console.log(\"thisProjectCalculatedPMEFeats\");\r\n // console.log(thisProjectCalculatedPMEFeats);\r\n exclGroupOriNoiseTotal = getCombinedNoiseLevel(pmeOriginalSWLForThisExcGroup);\r\n exclGroupMitNoiseTotal = getCombinedNoiseLevel(pmeMitigatedSWLForThisExcGroup);\r\n for (let k = 0; k < oriCalculatonResultDetailOneExcGroupArr.length; k++) {\r\n var oriCalc = oriCalculatonResultDetailOneExcGroupArr[k];\r\n var mitCalc = mitCalculatonResultDetailOneExcGroupArr[k];\r\n oriCalc.groupswl = exclGroupOriNoiseTotal;\r\n mitCalc.groupswl = exclGroupMitNoiseTotal;\r\n\r\n oriCalculatonResultDetailGroupArr.push(oriCalc);\r\n mitCalculatonResultDetailGroupArr.push(mitCalc);\r\n }\r\n\r\n totalCNLOriginalInExcGroup.push(exclGroupOriNoiseTotal);\r\n totalCNLMitigatedInExcGroup.push(exclGroupMitNoiseTotal);\r\n pmeArrayForAllExcGroups.push(pmeArrayForCurrentExcGroup);\r\n }\r\n\r\n var maxExclusiveGroupNameOriginal = \"\";\r\n var maxExclusiveGroupNameMitigated = \"\";\r\n var maxExclusiveGroupSNLOriginal = 0;\r\n var maxExclusiveGroupSNLMitigated = 0;\r\n var maxExclusiveGroupPMESet = [];\r\n var listExclusiveGroupSNLOriginal = [];\r\n var listExclusiveGroupSNLMitigated = [];\r\n var listExclusiveGroupPMESet = [];\r\n //find the maximum swl between exclusive groups\r\n if (fixedLocationExist) {\r\n for (let j = 0; j < excGroupNames.length; j++) {\r\n var currentExcGroupName = excGroupNames[j];\r\n var currentExclusiveGroupSNLOriginal = totalCNLOriginalInExcGroup[j];\r\n var currentExclusiveGroupSNLMitigated = totalCNLMitigatedInExcGroup[j];\r\n var currentExclusiveGroupPMESet = pmeArrayForAllExcGroups[j];\r\n\r\n var dictOriginal = new CustDictionary(currentExcGroupName, currentExclusiveGroupSNLOriginal, null);\r\n var dictMitigated = new CustDictionary(currentExcGroupName, currentExclusiveGroupSNLMitigated, null);\r\n var dictPMESet = new CustDictionary(currentExcGroupName, currentExclusiveGroupPMESet, null);\r\n\r\n listExclusiveGroupSNLOriginal.push(dictOriginal);\r\n listExclusiveGroupSNLMitigated.push(dictMitigated);\r\n listExclusiveGroupPMESet.push(dictPMESet);\r\n }\r\n } else {\r\n for (let j = 0; j < excGroupNames.length; j++) {\r\n var currentExclusiveGroupSNLOriginal = totalCNLOriginalInExcGroup[j];\r\n var currentExclusiveGroupSNLMitigated = totalCNLMitigatedInExcGroup[j];\r\n var currentExclusiveGroupPMESet = pmeArrayForAllExcGroups[j];\r\n\r\n if (maxExclusiveGroupSNLOriginal < currentExclusiveGroupSNLOriginal) {\r\n maxExclusiveGroupSNLOriginal = currentExclusiveGroupSNLOriginal;\r\n maxExclusiveGroupNameOriginal = excGroupNames[j];\r\n maxExclusiveGroupPMESet = currentExclusiveGroupPMESet;\r\n }\r\n if (maxExclusiveGroupSNLMitigated < currentExclusiveGroupSNLMitigated) {\r\n maxExclusiveGroupSNLMitigated = currentExclusiveGroupSNLMitigated;\r\n maxExclusiveGroupNameMitigated = excGroupNames[j];\r\n maxExclusiveGroupPMESet = currentExclusiveGroupPMESet;\r\n }\r\n }\r\n }\r\n // console.log(\"listExclusiveGroupSNLOriginal\");\r\n // console.log(listExclusiveGroupSNLOriginal);\r\n //if no exclusive group, instead one anonimous group only\r\n if (excGroupNames.length === 0) {\r\n maxExclusiveGroupSNLOriginal = totalCNLOriginalInExcGroup[0];\r\n maxExclusiveGroupNameOriginal = \"\";\r\n maxExclusiveGroupSNLMitigated = totalCNLMitigatedInExcGroup[0];\r\n maxExclusiveGroupNameMitigated = \"\";\r\n maxExclusiveGroupPMESet = pmeArrayForAllExcGroups[0];\r\n }\r\n\r\n if (fixedLocationExist) {\r\n totalCNLOriginalInZoneTask.push(listExclusiveGroupSNLOriginal);\r\n exclGroupNamesOriginalInZoneTask.push(\"#\");\r\n totalCNLMitigatedInZoneTask.push(listExclusiveGroupSNLMitigated);\r\n exclGroupNamesMitigatedInZoneTask.push(\"#\");\r\n pmeArrayForZoneTaskFromMaxExcGroup.push(listExclusiveGroupPMESet);\r\n } else {\r\n totalCNLOriginalInZoneTask.push(maxExclusiveGroupSNLOriginal);\r\n exclGroupNamesOriginalInZoneTask.push(maxExclusiveGroupNameOriginal);\r\n totalCNLMitigatedInZoneTask.push(maxExclusiveGroupSNLMitigated);\r\n exclGroupNamesMitigatedInZoneTask.push(maxExclusiveGroupNameMitigated);\r\n pmeArrayForZoneTaskFromMaxExcGroup.push(maxExclusiveGroupPMESet);\r\n }\r\n\r\n for (let j = 0; j < oriCalculatonResultDetailGroupArr.length; j++) {\r\n var oriCalc = oriCalculatonResultDetailGroupArr[j];\r\n var mitCalc = mitCalculatonResultDetailGroupArr[j];\r\n if (!fixedLocationExist) {\r\n oriCalc.highestswl = maxExclusiveGroupSNLOriginal;\r\n mitCalc.highestswl = maxExclusiveGroupSNLMitigated;\r\n }\r\n calculationResultOriginalDetailArray.push(oriCalc);\r\n calculationResultMitigatedDetailArray.push(mitCalc);\r\n calculationResultDetailArray.push(oriCalc);\r\n calculationResultDetailArray.push(mitCalc);\r\n }\r\n });\r\n // console.log(\"calculationResultDetailArray\");\r\n // console.log(calculationResultDetailArray);\r\n //return;\r\n // array for insert into calculation result detail database\r\n var calculationResultOriginalNSRArray = [];\r\n var calculationResultMitigatedNSRArray = [];\r\n var calculationResultNSRArray = [];\r\n notionalPointsFeatArr = [];\r\n allBuildingsHeight = [];\r\n zoneNSRNotionalInfo = {};\r\n // array for insert into calculation result detail database - end\r\n // console.log(\"thisProjectCalculatedNSRPointFeats\");\r\n // console.log(thisProjectCalculatedNSRPointFeats);\r\n // console.log(\"zoneTask_ExclusiveGroupList\");\r\n // console.log(zoneTask_ExclusiveGroupList);\r\n\r\n let zoneIds = [...new Set(zoneTaskIds.map((z) => parseInt(z.split(\"-\")[0])))];\r\n\r\n // check whether there is nsr point that fall inside the zone area\r\n var nsrFallInsideZone = false;\r\n thisProjectCalculatedNSRPointFeats.forEach((nsrPointFeat) => {\r\n zoneIds.forEach((currentZoneIndex) => {\r\n var zoneFeature = getZoneFeatFromArray(currentZoneIndex);\r\n if (isIntersect(nsrPointFeat, zoneFeature)) {\r\n nsrFallInsideZone = true;\r\n nsrPointFeat.ignore = true;\r\n return;\r\n }\r\n nsrPointFeat.ignore = false;\r\n });\r\n });\r\n // get notional information\r\n thisProjectCalculatedNSRPointFeats\r\n .filter((f) => f.ignore === false)\r\n .forEach((nsrPointFeat) => {\r\n let currentPointId = nsrPointFeat.get(\"id\");\r\n zoneIds.forEach((currentZoneIndex) => {\r\n if (zoneNSRNotionalInfo[currentPointId]) {\r\n if (!zoneNSRNotionalInfo[currentPointId][currentZoneIndex]) {\r\n var { notionalPoint, notionalDistance, calcType } = getNotionalInfo(currentZoneIndex, nsrPointFeat);\r\n } else {\r\n var notionalPoint = zoneNSRNotionalInfo[currentPointId][currentZoneIndex].notionalPoint;\r\n var notionalDistance = zoneNSRNotionalInfo[currentPointId][currentZoneIndex].notionalDistance;\r\n var calcType = zoneNSRNotionalInfo[currentPointId][currentZoneIndex].calcType;\r\n }\r\n } else {\r\n var { notionalPoint, notionalDistance, calcType } = getNotionalInfo(currentZoneIndex, nsrPointFeat);\r\n }\r\n //var notionalDistance = notionalDistanceLine.getLength();\r\n\r\n // console.log(notionalPoint.getCoordinates());\r\n // console.log(outPointAtBorder);\r\n\r\n //store zone-nsr information for type B calculation\r\n if (!zoneNSRNotionalInfo[currentPointId]) {\r\n zoneNSRNotionalInfo[currentPointId] = {\r\n buildingid: nsrPointFeat.get(\"buildingid\"),\r\n nsrname: nsrPointFeat.get(\"nsrname\") ? nsrPointFeat.get(\"nsrname\") : \"\",\r\n buildingname: nsrPointFeat.get(\"BldName_E\") ? nsrPointFeat.get(\"BldName_E\") : \"\",\r\n };\r\n }\r\n zoneNSRNotionalInfo[currentPointId][currentZoneIndex] = {\r\n notionalPoint: notionalPoint,\r\n notionalDistance: notionalDistance,\r\n calcType: calcType,\r\n };\r\n if (!zoneNSRNotionalInfo[currentPointId].closestDistance && calcType == \"B\") {\r\n zoneNSRNotionalInfo[currentPointId].closestDistance = notionalDistance;\r\n zoneNSRNotionalInfo[currentPointId].closestZone = currentZoneIndex;\r\n }\r\n if (zoneNSRNotionalInfo[currentPointId].closestDistance > notionalDistance && calcType == \"B\") {\r\n zoneNSRNotionalInfo[currentPointId].closestDistance = notionalDistance;\r\n zoneNSRNotionalInfo[currentPointId].closestZone = currentZoneIndex;\r\n }\r\n });\r\n });\r\n\r\n // if(nsrFallInsideZone) {\r\n // showModal(\"At least an NSR point that is located inside the Zone/Site polygon is detected. These NSR points will be ignored and cannot be calculated.\");\r\n // }\r\n\r\n var currentNSROtherNoiseCriteriaNameArr = [];\r\n var currentNSROtherNoiseCriteriaValueArr = [];\r\n var currentNSROtherNoiseCriteriaStartDateArr = [];\r\n var currentNSROtherNoiseCriteriaEndDateArr = [];\r\n var currentNSROtherNoiseCriteriaSentenceArr = [];\r\n var currentNSROtherNoiseCriteriaExceedUnMitArr = [];\r\n var currentNSROtherNoiseCriteriaExceedUnMitMax = \"\";\r\n var currentNSROtherNoiseCriteriaExceedMitArr = [];\r\n var currentNSROtherNoiseCriteriaExceedMitMax = \"\";\r\n\r\n thisProjectCalculatedNSRPointFeats\r\n .filter((f) => f.ignore === false)\r\n .forEach((nsrPointFeat) => {\r\n // console.log('nsrPointFeat');\r\n // console.log(nsrPointFeat);\r\n currentNSROtherNoiseCriteriaNameArr = [];\r\n currentNSROtherNoiseCriteriaValueArr = [];\r\n currentNSROtherNoiseCriteriaStartDateArr = [];\r\n currentNSROtherNoiseCriteriaEndDateArr = [];\r\n currentNSROtherNoiseCriteriaSentenceArr = [];\r\n currentNSROtherNoiseCriteriaExceedUnMitArr = [];\r\n currentNSROtherNoiseCriteriaExceedUnMitMax = \"\";\r\n currentNSROtherNoiseCriteriaExceedMitArr = [];\r\n currentNSROtherNoiseCriteriaExceedMitMax = \"\";\r\n var floorHeightAssumption = 3; // 1 floor height = 3 meters.\r\n var currentBuildingId = nsrPointFeat.get(\"buildingid\");\r\n var currentNoiseCriteria = nsrPointFeat.get(\"noisecriteria\") ? nsrPointFeat.get(\"noisecriteria\") : 75;\r\n var currentOtherNoiseCriteria = nsrPointFeat.get(\"othernoisecriteria\") ? nsrPointFeat.get(\"othernoisecriteria\") : null;\r\n var currentlBuildingHeight = nsrPointFeat.get(\"Bld_Ht\");\r\n //var currentBuildingName = nsrPointFeat.get(\"BldName_E\") ? nsrPointFeat.get(\"BldName_E\") : \"\";\r\n var currentNSRName = nsrPointFeat.get(\"nsrname\") ? nsrPointFeat.get(\"nsrname\") : \"\";\r\n var currentBuildingName = nsrPointFeat.get(\"BldName_E\") ? nsrPointFeat.get(\"BldName_E\") : \"\";\r\n var currentPointId = nsrPointFeat.get(\"id\");\r\n var currentlBuildingTotalFloor = Math.floor(currentlBuildingHeight / floorHeightAssumption);\r\n\r\n if (currentOtherNoiseCriteria) {\r\n var otherCriteriaArr = currentOtherNoiseCriteria.split(\"#\");\r\n\r\n otherCriteriaArr.forEach((aCritSentence) => {\r\n var aCritWords = aCritSentence.split(\": \");\r\n var aCritValue = parseFloat(aCritWords[1]);\r\n var aCritName = aCritWords[0].split(\"@\")[0];\r\n var aCritDates = aCritWords[0].split(\"@\")[1].split(\" ~ \");\r\n var aCritStartDate = new Date(aCritDates[0]);\r\n var aCritEndDate = new Date(aCritDates[1]);\r\n currentNSROtherNoiseCriteriaNameArr.push(aCritName);\r\n currentNSROtherNoiseCriteriaValueArr.push(aCritValue);\r\n currentNSROtherNoiseCriteriaStartDateArr.push(aCritStartDate);\r\n currentNSROtherNoiseCriteriaEndDateArr.push(aCritEndDate);\r\n currentNSROtherNoiseCriteriaSentenceArr.push(aCritSentence);\r\n });\r\n }\r\n\r\n var buldHeghtObj = new CustDictionary(currentBuildingId, currentlBuildingHeight, null);\r\n allBuildingsHeight.push(buldHeghtObj); // ==>put in global var\r\n\r\n var originalCNLForCurrentNSR = {};\r\n var mitigatedCNLForCurrentNSR = {};\r\n\r\n var calculationResultNSROriginalForOneNSRArray = [];\r\n var calculationResultNSRMitigatedForOneNSRArray = [];\r\n\r\n var calcValArr = []; // for popup\r\n for (let j = 0; j < zoneTaskIds.length; j++) {\r\n var currentZoneTaskId = zoneTaskIds[j];\r\n var currentZoneIndex = parseInt(currentZoneTaskId.split(\"-\")[0]);\r\n var currentTaskid = parseInt(currentZoneTaskId.split(\"-\")[1]);\r\n\r\n var notionalPoint = zoneNSRNotionalInfo[currentPointId][currentZoneIndex].notionalPoint;\r\n var notionalDistance = zoneNSRNotionalInfo[currentPointId][currentZoneIndex].notionalDistance;\r\n\r\n //border to notional point distance\r\n var borderNotionalPointArr = [\r\n notionalPoint.getCoordinates(),\r\n //outPointAtBorder.getGeometry().getCoordinates(), //Feb 22 Alex deleted\r\n outPointAtBorder, //Feb 22 Alex modified\r\n ];\r\n\r\n //var borderNotionalDistanceLine = new LineString(borderNotionalPointArr);\r\n var borderNotionalDistanceLine = new LineString(notionalPoint.getCoordinates(), outPointAtBorder);\r\n var borderNotionalDistance = getLength(borderNotionalDistanceLine);\r\n //var borderNotionalDistance = borderNotionalDistanceLine.getLength();\r\n //border to nsr distance\r\n var borderNSRPointArr = [\r\n //outPointAtBorder.getGeometry().getCoordinates(), //Alex deleted\r\n outPointAtBorder, //Feb 22 Alex Modified\r\n nsrPointFeat.getGeometry().getCoordinates(),\r\n ];\r\n var borderNSRDistanceLine = new LineString(borderNSRPointArr);\r\n var borderNSRDistance = getLength(borderNSRDistanceLine);\r\n //var borderNSRDistance = borderNSRDistanceLine.getLength();\r\n //Alex modified above\r\n\r\n // if(currentNSRName)\r\n // {\r\n // console.log(currentNSRName);\r\n // console.log(notionalDistance);\r\n // console.log(notionalDistanceLine.getLength());\r\n // console.log(\"Border to notional\");\r\n // console.log(borderNotionalDistance);\r\n // console.log(borderNotionalDistanceLine.getLength());\r\n // console.log(\"Border to NSR\");\r\n // console.log(borderNSRDistance);\r\n // console.log(borderNSRDistanceLine.getLength());\r\n // }\r\n\r\n // populate all notionalPoints with attributes\r\n var notionalPointFeat = new Feature({\r\n geometry: notionalPoint,\r\n projectid: projectId,\r\n buildingid: currentBuildingId,\r\n zonetaskid: currentZoneTaskId,\r\n nsrname: currentNSRName,\r\n distance: notionalDistance,\r\n remark: \"notional\",\r\n calculationtype: getZoneFeatFromArray(currentZoneIndex).get(\"calculationtype\"),\r\n });\r\n // console.log(\"notionalPointFeat\");\r\n // console.log(notionalPointFeat);\r\n // if (currentNSRName) {\r\n notionalPointsFeatArr.push(notionalPointFeat);\r\n // }\r\n // notionalPointFeat = new Feature({\r\n // geometry: outPointAtBorder.getGeometry(),\r\n // projectid: projectId,\r\n // buildingid: currentBuildingId,\r\n // zonetaskid: currentZoneTaskId,\r\n // nsrname:currentNSRName,\r\n // distance:borderNSRDistance,\r\n // remark: \"zoneborder\",\r\n // });\r\n // if(currentNSRName){\r\n // notionalPointsFeatArr.push(notionalPointFeat);\r\n // }\r\n // notionalPointFeat = new Feature({\r\n // geometry: zoneCentroidTest.getGeometry(),\r\n // projectid: projectId,\r\n // buildingid: currentBuildingId,\r\n // zonetaskid: currentZoneTaskId,\r\n // nsrname:currentNSRName,\r\n // distance:borderNSRDistance,\r\n // remark: \"zonecenterofmass\",\r\n // });\r\n // if(currentNSRName){\r\n // notionalPointsFeatArr.push(notionalPointFeat);\r\n // }\r\n // notionalPointFeat = new Feature({\r\n // geometry: zoneCentroidTest2.getGeometry(),\r\n // projectid: projectId,\r\n // buildingid: currentBuildingId,\r\n // zonetaskid: currentZoneTaskId,\r\n // nsrname:currentNSRName,\r\n // distance:borderNSRDistance,\r\n // remark: \"zonecentroid\",\r\n // });\r\n // if(currentNSRName){\r\n // notionalPointsFeatArr.push(notionalPointFeat);\r\n // }\r\n // notionalPointFeat = new Feature({\r\n // geometry: zoneCentroidTest3.getGeometry(),\r\n // projectid: projectId,\r\n // buildingid: currentBuildingId,\r\n // zonetaskid: currentZoneTaskId,\r\n // nsrname:currentNSRName,\r\n // distance:borderNSRDistance,\r\n // remark: \"zonecenter\",\r\n // });\r\n // if(currentNSRName){\r\n // notionalPointsFeatArr.push(notionalPointFeat);\r\n // }\r\n\r\n // check if it's closest type B zone\r\n if (\r\n zoneNSRNotionalInfo[currentPointId].closestZone != currentZoneIndex &&\r\n getZoneFeatFromArray(currentZoneIndex).get(\"calculationtype\") == \"B\"\r\n ) {\r\n continue;\r\n }\r\n\r\n // check one by one pme for this zone task whether they are at notional location\r\n var currentZoneTask_ExclusiveGroup = zoneTask_ExclusiveGroupList[j];\r\n var currentZoneTaskIdHaveFixedLocationPME = currentZoneTask_ExclusiveGroup.remark;\r\n\r\n if (currentZoneTaskIdHaveFixedLocationPME) {\r\n var listExclusiveGroupSNLOriginal = totalCNLOriginalInZoneTask[j];\r\n var listExclusiveGroupSNLMitigated = totalCNLMitigatedInZoneTask[j];\r\n var listExclusiveGroupPMESet = pmeArrayForZoneTaskFromMaxExcGroup[j];\r\n\r\n var maxExclusiveGroupSNLOriginal = 0;\r\n var maxExclusiveGroupNameOriginal = \"\";\r\n var maxExclusiveGroupSNLMitigated = 0;\r\n var maxExclusiveGroupNameMitigated = \"\";\r\n\r\n var allOriSPLOfMainExcGroup = [];\r\n var allMitSPLOfMainExcGroup = [];\r\n\r\n var aOriCalResNSR = null;\r\n var aMitCalResNSR = null;\r\n\r\n var curOriNSRForDBParent = [];\r\n var curMitNSRForDBParent = [];\r\n //get the list of main exclusive group names (the one without '#')\r\n var mainExcGroupArray = currentZoneTask_ExclusiveGroup.item[1];\r\n for (let k = 0; k < mainExcGroupArray.length; k++) {\r\n var currentMainExcGroup = mainExcGroupArray[k];\r\n\r\n var oriSPLOfMainExcGroup = [];\r\n var mitSPLOfMainExcGroup = [];\r\n\r\n var curOriNSRForDB = [];\r\n var curMitNSRForDB = [];\r\n // console.log(\"currentMainExcGroup for NSR\");\r\n // console.log(currentMainExcGroup);\r\n // console.log(\"listExclusiveGroupSNLOriginal for NSR\");\r\n // console.log(listExclusiveGroupSNLOriginal);\r\n for (let m = 0; m < listExclusiveGroupSNLOriginal.length; m++) {\r\n var dictOriginal = listExclusiveGroupSNLOriginal[m];\r\n var dictMitigated = listExclusiveGroupSNLMitigated[m];\r\n var dictPMESet = listExclusiveGroupPMESet[m];\r\n var currentExcGroupName = dictOriginal.key;\r\n var totOriginalSWLForCurrentExclGroup = dictOriginal.item;\r\n var totMitigatedSWLForCurrentExclGroup = dictMitigated.item;\r\n var pmeListForCurrentExclGroup = dictPMESet.item;\r\n if (currentExcGroupName.includes(currentMainExcGroup)) {\r\n var currentExcGroupDistance = 0;\r\n if (currentExcGroupName.includes(\"#\")) {\r\n // this is fixed location PME, need to gt it's geometry\r\n var thisPMEId_0 = currentExcGroupName.split(\"#\")[1];\r\n var thisPointFeat = null;\r\n for (let n = 0; n < pmeListForCurrentExclGroup.length; n++) {\r\n var curPMEFeat = pmeListForCurrentExclGroup[n];\r\n if (curPMEFeat.id_.includes(thisPMEId_0)) {\r\n thisPointFeat = curPMEFeat;\r\n break;\r\n }\r\n }\r\n\r\n //get fixed point and the distance\r\n var fixedPoint = thisPointFeat.getGeometry();\r\n var fixedDistancePointArr = [fixedPoint.getCoordinates(), nsrPointFeat.getGeometry().getCoordinates()];\r\n var fixedDistanceLine = new LineString(fixedDistancePointArr);\r\n //var fixedDistance = getLength(fixedDistanceLine);\r\n var fixedDistance = fixedDistanceLine.getLength();\r\n\r\n currentExcGroupDistance = fixedDistance;\r\n // console.log(\"currentExcGroupDistance for \"+ currentExcGroupName + \"; zonetask: \" + currentZoneTaskId);\r\n // console.log(currentExcGroupDistance);\r\n } else {\r\n currentExcGroupDistance = notionalDistance;\r\n // console.log(\"currentExcGroupDistance notional for \"+ currentExcGroupName + \"; zonetask: \" + currentZoneTaskId);\r\n // console.log(currentExcGroupDistance);\r\n }\r\n var verticalDistance = 0;\r\n var slantDistance = Math.pow(Math.pow(currentExcGroupDistance, 2) + Math.pow(verticalDistance, 2), 0.5);\r\n var hemisphericalPropagation = -1 * (20 * Math.log10(slantDistance) + 8);\r\n var facadeCorrection = 3;\r\n\r\n var totalCNLOriginal =\r\n totOriginalSWLForCurrentExclGroup + hemisphericalPropagation + facadeCorrection > 0\r\n ? totOriginalSWLForCurrentExclGroup + hemisphericalPropagation + facadeCorrection\r\n : 0;\r\n var totalCNLMitigated =\r\n totMitigatedSWLForCurrentExclGroup + hemisphericalPropagation + facadeCorrection > 0\r\n ? totMitigatedSWLForCurrentExclGroup + hemisphericalPropagation + facadeCorrection\r\n : 0;\r\n // console.log(\"mainExclGroupOriNoiseTotal for \"+ currentExcGroupName + \"; zonetask: \" + currentZoneTaskId);\r\n // console.log(totalCNLOriginal);\r\n oriSPLOfMainExcGroup.push(totalCNLOriginal);\r\n mitSPLOfMainExcGroup.push(totalCNLMitigated);\r\n\r\n // var for insert into calculation result nsr database\r\n // console.log(\"currentExcGroupName for NSR\");\r\n // console.log(currentExcGroupName);\r\n aOriCalResNSR = new CalculationResultNSR(\r\n 0,\r\n projectId,\r\n false,\r\n currentBuildingId,\r\n currentBuildingName,\r\n currentPointId,\r\n currentNSRName,\r\n currentZoneTaskId,\r\n currentExcGroupName,\r\n totOriginalSWLForCurrentExclGroup,\r\n currentExcGroupDistance,\r\n hemisphericalPropagation,\r\n facadeCorrection,\r\n totalCNLOriginal,\r\n 0,\r\n 0,\r\n currentNoiseCriteria,\r\n \"\",\r\n 0,\r\n 0,\r\n currentlBuildingTotalFloor\r\n );\r\n aMitCalResNSR = new CalculationResultNSR(\r\n 0,\r\n projectId,\r\n true,\r\n currentBuildingId,\r\n currentBuildingName,\r\n currentPointId,\r\n currentNSRName,\r\n currentZoneTaskId,\r\n currentExcGroupName,\r\n totMitigatedSWLForCurrentExclGroup,\r\n currentExcGroupDistance,\r\n hemisphericalPropagation,\r\n facadeCorrection,\r\n totalCNLMitigated,\r\n 0,\r\n 0,\r\n currentNoiseCriteria,\r\n \"\",\r\n 0,\r\n 0,\r\n currentlBuildingTotalFloor\r\n );\r\n // calculationResultNSROriginalForOneNSRArray.push(aOriCalResNSR);\r\n // calculationResultNSRMitigatedForOneNSRArray.push(aMitCalResNSR);\r\n curOriNSRForDB.push(aOriCalResNSR);\r\n curMitNSRForDB.push(aMitCalResNSR);\r\n }\r\n }\r\n\r\n var mainExclGroupOriNoiseTotal = getCombinedNoiseLevel(oriSPLOfMainExcGroup);\r\n var mainExclGroupMitNoiseTotal = getCombinedNoiseLevel(mitSPLOfMainExcGroup);\r\n allOriSPLOfMainExcGroup.push(mainExclGroupOriNoiseTotal);\r\n allMitSPLOfMainExcGroup.push(mainExclGroupMitNoiseTotal);\r\n // console.log(\"mainExclGroupOriNoiseTotal for \"+ currentMainExcGroup + \"; zonetask: \" + currentZoneTaskId);\r\n // console.log(mainExclGroupOriNoiseTotal);\r\n\r\n //update var for insert into calculation result nsr database\r\n for (let m = 0; m < curOriNSRForDB.length; m++) {\r\n var aCalculationResultNSROri = curOriNSRForDB[m];\r\n var aCalculationResultNSRMit = curMitNSRForDB[m];\r\n aCalculationResultNSROri.totalspl = mainExclGroupOriNoiseTotal;\r\n aCalculationResultNSRMit.totalspl = mainExclGroupMitNoiseTotal;\r\n\r\n curOriNSRForDBParent.push(aCalculationResultNSROri);\r\n curMitNSRForDBParent.push(aCalculationResultNSRMit);\r\n }\r\n }\r\n\r\n //get the maximum cnl between main Exclusive group swl.\r\n for (let k = 0; k < mainExcGroupArray.length; k++) {\r\n var currentExclusiveGroupSNLOriginal = allOriSPLOfMainExcGroup[k];\r\n var currentExclusiveGroupSNLMitigated = allMitSPLOfMainExcGroup[k];\r\n\r\n if (maxExclusiveGroupSNLOriginal < currentExclusiveGroupSNLOriginal) {\r\n maxExclusiveGroupSNLOriginal = currentExclusiveGroupSNLOriginal;\r\n maxExclusiveGroupNameOriginal = mainExcGroupArray[k];\r\n }\r\n if (maxExclusiveGroupSNLMitigated < currentExclusiveGroupSNLMitigated) {\r\n maxExclusiveGroupSNLMitigated = currentExclusiveGroupSNLMitigated;\r\n maxExclusiveGroupNameMitigated = mainExcGroupArray[k];\r\n }\r\n }\r\n\r\n originalCNLForCurrentNSR[currentZoneTaskId] = maxExclusiveGroupSNLOriginal;\r\n mitigatedCNLForCurrentNSR[currentZoneTaskId] = maxExclusiveGroupSNLMitigated;\r\n\r\n //update var for insert into calculation result nsr database\r\n for (let k = 0; k < curOriNSRForDBParent.length; k++) {\r\n var aCalculationResultNSROri = curOriNSRForDBParent[k];\r\n var aCalculationResultNSRMit = curMitNSRForDBParent[k];\r\n aCalculationResultNSROri.cnl = maxExclusiveGroupSNLOriginal;\r\n aCalculationResultNSRMit.cnl = maxExclusiveGroupSNLMitigated;\r\n\r\n calculationResultNSROriginalForOneNSRArray.push(aCalculationResultNSROri);\r\n calculationResultNSRMitigatedForOneNSRArray.push(aCalculationResultNSRMit);\r\n }\r\n\r\n // var for pop up\r\n var calculatedPopup = new CalculatedValuesPopup(0, currentZoneTaskId, maxExclusiveGroupSNLOriginal);\r\n calcValArr.push(calculatedPopup);\r\n calculatedPopup = new CalculatedValuesPopup(1, currentZoneTaskId, maxExclusiveGroupSNLMitigated);\r\n calcValArr.push(calculatedPopup);\r\n } else {\r\n var isNotional = \"Notional Source\";\r\n\r\n var distance = 0;\r\n if (isNotional.toLowerCase().indexOf(\"notional\") >= 0) {\r\n //use notional distance\r\n distance = notionalDistance;\r\n } // use geometry\r\n else {\r\n // var realDistancePointArr = [currentFeat.getGeometry().getCoordinates(),nsrPointFeat.getGeometry().getCoordinates()]\r\n // var realDistanceLine = new LineString(realDistancePointArr);\r\n // var realDistance = getLength(realDistanceLine);\r\n // distance = realDistance;\r\n // // console.log('realDistance', realDistance);\r\n }\r\n var verticalDistance = 0;\r\n var slantDistance = Math.pow(Math.pow(distance, 2) + Math.pow(verticalDistance, 2), 0.5);\r\n var hemisphericalPropagation = -1 * (20 * Math.log10(slantDistance) + 8);\r\n var facadeCorrection = 3;\r\n\r\n //get current total swl for the zone-task\r\n var currentSWLOriginal = totalCNLOriginalInZoneTask[j];\r\n var currentSWLMitigated = totalCNLMitigatedInZoneTask[j];\r\n var totalCNLOriginal =\r\n currentSWLOriginal + hemisphericalPropagation + facadeCorrection > 0\r\n ? currentSWLOriginal + hemisphericalPropagation + facadeCorrection\r\n : 0;\r\n var totalCNLMitigated =\r\n currentSWLMitigated + hemisphericalPropagation + facadeCorrection > 0\r\n ? currentSWLMitigated + hemisphericalPropagation + facadeCorrection\r\n : 0;\r\n\r\n originalCNLForCurrentNSR[currentZoneTaskId] = totalCNLOriginal;\r\n mitigatedCNLForCurrentNSR[currentZoneTaskId] = totalCNLMitigated;\r\n\r\n // var for insert into calculation result nsr database\r\n var aOriCalResNSR = new CalculationResultNSR(\r\n 0,\r\n projectId,\r\n false,\r\n currentBuildingId,\r\n currentBuildingName,\r\n currentPointId,\r\n currentNSRName,\r\n currentZoneTaskId,\r\n \"\",\r\n currentSWLOriginal,\r\n distance,\r\n hemisphericalPropagation,\r\n facadeCorrection,\r\n 0,\r\n 0,\r\n totalCNLOriginal,\r\n currentNoiseCriteria,\r\n \"\",\r\n 0,\r\n 0,\r\n currentlBuildingTotalFloor\r\n );\r\n var aMitCalResNSR = new CalculationResultNSR(\r\n 0,\r\n projectId,\r\n true,\r\n currentBuildingId,\r\n currentBuildingName,\r\n currentPointId,\r\n currentNSRName,\r\n currentZoneTaskId,\r\n \"\",\r\n currentSWLMitigated,\r\n distance,\r\n hemisphericalPropagation,\r\n facadeCorrection,\r\n 0,\r\n 0,\r\n totalCNLMitigated,\r\n currentNoiseCriteria,\r\n \"\",\r\n 0,\r\n 0,\r\n currentlBuildingTotalFloor\r\n );\r\n calculationResultNSROriginalForOneNSRArray.push(aOriCalResNSR);\r\n calculationResultNSRMitigatedForOneNSRArray.push(aMitCalResNSR);\r\n\r\n // var for pop up\r\n var calculatedPopup = new CalculatedValuesPopup(0, currentZoneTaskId, totalCNLOriginal);\r\n calcValArr.push(calculatedPopup);\r\n calculatedPopup = new CalculatedValuesPopup(1, currentZoneTaskId, totalCNLMitigated);\r\n calcValArr.push(calculatedPopup);\r\n }\r\n }\r\n\r\n //now loop for each combined zone-task. Processing the combined Zone task.\r\n var originalCNLForCurrentCombinedNSR = [];\r\n var mitigatedCNLForCurrentCombinedNSR = [];\r\n // console.log(\"combinedZoneTaskWithApprovedSitesArr\");\r\n // console.log(combinedZoneTaskWithApprovedSitesArr);\r\n\r\n if (approvedProjectIDs.length > 0) {\r\n // if approved neighbour site(s) exist\r\n // if (nsrPointFeat.get(\"nsrname\") === \"N6\")\r\n // {\r\n // console.log(\"combinedZoneTaskWithApprovedSitesArr.length\");\r\n // console.log(combinedZoneTaskWithApprovedSitesArr.length);\r\n // }\r\n\r\n for (let j = 0; j < combinedZoneTaskWithApprovedSitesArr.length; j++) {\r\n var isEntryFound = false; //whether projectid, zonetask, and building id are found on the approved site\r\n var combinationHasHash = false;\r\n\r\n var currentCombinedZoneTask = combinedZoneTaskWithApprovedSitesArr[j];\r\n\r\n // if (nsrPointFeat.get(\"nsrname\") === \"N6\")\r\n // {\r\n // console.log(\"currentCombinedZoneTask\");\r\n // console.log(currentCombinedZoneTask);\r\n // }\r\n\r\n var individualZoneTaskArr = currentCombinedZoneTask.split(\"+\");\r\n\r\n //check if it's closest type b zone\r\n if (\r\n individualZoneTaskArr.some((zt) => {\r\n let currentZoneIndex = parseInt(zt.split(\"-\")[0]);\r\n return (\r\n zoneNSRNotionalInfo[currentPointId].closestZone != currentZoneIndex &&\r\n getZoneFeatFromArray(currentZoneIndex).get(\"calculationtype\") == \"B\"\r\n );\r\n })\r\n ) {\r\n continue;\r\n }\r\n\r\n var individualZoneTaskOriginalCNLArr = [];\r\n var individualZoneTaskMitigatedCNLArr = [];\r\n var currentCombinedZoneTaskForFoundBuilding = \"\";\r\n var currentCombinedZoneTaskForFoundBuildingArr = [];\r\n for (let m = 0; m < individualZoneTaskArr.length; m++) {\r\n var curProjZoneTask = individualZoneTaskArr[m];\r\n // if (nsrPointFeat.get(\"nsrname\") === \"N6\")\r\n // {\r\n // console.log(\"curProjZoneTask\");\r\n // console.log(curProjZoneTask);\r\n // }\r\n // console.log(\"curZoneTask\");\r\n // console.log(curProjZoneTask);\r\n var originalCNLForCurrentZoneTask = 0;\r\n var mitigatedCNLForCurrentZoneTask = 0;\r\n var buildingFound = false;\r\n // console.log(\"curProjZoneTask\");\r\n // console.log(curProjZoneTask);\r\n if (curProjZoneTask.includes(\"#\")) {\r\n // from neighbour approved sites\r\n combinationHasHash = true;\r\n var projIdAndRemaining = curProjZoneTask.split(\"#\");\r\n var curProjId = parseInt(projIdAndRemaining[0]);\r\n var curZoneTask = projIdAndRemaining[1];\r\n // if (nsrPointFeat.get(\"nsrname\") === \"N6\")\r\n // {\r\n // console.log(\"approvedProjectCalculationResultNSR.length\");\r\n // console.log(approvedProjectCalculationResultNSR.length);\r\n // }\r\n for (let l = 0; l < approvedProjectCalculationResultNSR.length; l++) {\r\n var curResultNSR = approvedProjectCalculationResultNSR[l];\r\n // if (nsrPointFeat.get(\"nsrname\") === \"N6\")\r\n // {\r\n // console.log(\"# curResultNSR\");\r\n // console.log(curResultNSR);\r\n\r\n // console.log(\"curResultNSR.projectid\");\r\n // console.log(curResultNSR.projectId);\r\n // console.log(\"curProjId\");\r\n // console.log(curProjId);\r\n // console.log(\"curZoneTask\");\r\n // console.log(curZoneTask);\r\n // console.log(\"curResultNSR.zonetaskorcombined\");\r\n // console.log(curResultNSR.zonetaskorcombined);\r\n // console.log(\"curResultNSR.buildingid\");\r\n // console.log(curResultNSR.buildingid);\r\n // console.log(\"currentBuildingId\");\r\n // console.log(currentBuildingId);\r\n // console.log(\"curResultNSR.ismitigated\");\r\n // console.log(curResultNSR.ismitigated);\r\n // }\r\n\r\n if (\r\n curResultNSR.projectId === curProjId &&\r\n curResultNSR.zonetaskorcombined === curZoneTask &&\r\n curResultNSR.buildingid === currentBuildingId &&\r\n curResultNSR.ismitigated === false\r\n ) {\r\n originalCNLForCurrentZoneTask = curResultNSR.cnl;\r\n } else if (\r\n curResultNSR.projectId === curProjId &&\r\n curResultNSR.zonetaskorcombined === curZoneTask &&\r\n curResultNSR.buildingid === currentBuildingId &&\r\n curResultNSR.ismitigated === true\r\n ) {\r\n mitigatedCNLForCurrentZoneTask = curResultNSR.cnl;\r\n }\r\n if (originalCNLForCurrentZoneTask > 0 && mitigatedCNLForCurrentZoneTask > 0) {\r\n currentCombinedZoneTaskForFoundBuildingArr.push(curProjZoneTask);\r\n buildingFound = true;\r\n isEntryFound = true;\r\n break;\r\n }\r\n }\r\n // if (nsrPointFeat.get(\"nsrname\") === \"N6\")\r\n // {\r\n // console.log(\"buildingFound\");\r\n // console.log(buildingFound);\r\n // }\r\n // console.log(\"originalCNLForCurrentZoneTask from curProjZoneTask.includes('#')\");\r\n // console.log(originalCNLForCurrentZoneTask);\r\n // console.log(\"mitigatedCNLForCurrentZoneTask from curProjZoneTask.includes('#')\");\r\n // console.log(mitigatedCNLForCurrentZoneTask);\r\n } // from main sites\r\n else {\r\n buildingFound = true;\r\n currentCombinedZoneTaskForFoundBuildingArr.push(curProjZoneTask);\r\n // var curZoneTaskIndex = zoneTaskIds.indexOf(curProjZoneTask);\r\n //get this zone task index\r\n // console.log(\"zoneTaskIds\");\r\n // console.log(zoneTaskIds);\r\n\r\n // if (curZoneTaskIndex < 0) {\r\n // //alert(\"zone task index not found\");\r\n // //console.log(\"zone task index not found\")\r\n // continue;\r\n // }\r\n\r\n originalCNLForCurrentZoneTask = originalCNLForCurrentNSR[curProjZoneTask];\r\n mitigatedCNLForCurrentZoneTask = mitigatedCNLForCurrentNSR[curProjZoneTask];\r\n }\r\n // console.log(\"originalCNLForCurrentZoneTask\");\r\n // console.log(originalCNLForCurrentZoneTask);\r\n // console.log(\"mitigatedCNLForCurrentZoneTask\");\r\n // console.log(mitigatedCNLForCurrentZoneTask);\r\n\r\n if (buildingFound) {\r\n individualZoneTaskOriginalCNLArr.push(originalCNLForCurrentZoneTask);\r\n individualZoneTaskMitigatedCNLArr.push(mitigatedCNLForCurrentZoneTask);\r\n }\r\n }\r\n // if ((combinationHasHash && isEntryFound) || (!combinationHasHash))\r\n // {\r\n\r\n // }\r\n // this is for fixing currentCombinedZoneTask -> not all nsr has the same combination for approved sites. Approved sites only cover 300m from that site.\r\n currentCombinedZoneTaskForFoundBuilding = currentCombinedZoneTaskForFoundBuildingArr.join(\"+\");\r\n\r\n var combinedZoneTaskOriginalCNL = getCombinedNoiseLevel(individualZoneTaskOriginalCNLArr);\r\n var combinedZoneTaskMitigatedCNL = getCombinedNoiseLevel(individualZoneTaskMitigatedCNLArr);\r\n\r\n originalCNLForCurrentCombinedNSR.push(combinedZoneTaskOriginalCNL);\r\n mitigatedCNLForCurrentCombinedNSR.push(combinedZoneTaskMitigatedCNL);\r\n\r\n // var for insert into calculation result nsr database\r\n // var aOriCalResNSR = new CalculationResultNSR(0,projectId,false,currentBuildingId,currentBuildingName,currentPointId,currentCombinedZoneTask,0,0,0,0,combinedZoneTaskOriginalCNL,currentNoiseCriteria,\"\",0,0);\r\n // var aMitCalResNSR = new CalculationResultNSR(0,projectId,true,currentBuildingId,currentBuildingName,currentPointId,currentCombinedZoneTask,0,0,0,0,combinedZoneTaskMitigatedCNL,currentNoiseCriteria,\"\",0,0);\r\n var aOriCalResNSR = new CalculationResultNSR(\r\n 0,\r\n projectId,\r\n false,\r\n currentBuildingId,\r\n currentBuildingName,\r\n currentPointId,\r\n currentNSRName,\r\n currentCombinedZoneTaskForFoundBuilding,\r\n \"\",\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n combinedZoneTaskOriginalCNL,\r\n currentNoiseCriteria,\r\n \"\",\r\n 0,\r\n 0,\r\n currentlBuildingTotalFloor\r\n );\r\n var aMitCalResNSR = new CalculationResultNSR(\r\n 0,\r\n projectId,\r\n true,\r\n currentBuildingId,\r\n currentBuildingName,\r\n currentPointId,\r\n currentNSRName,\r\n currentCombinedZoneTaskForFoundBuilding,\r\n \"\",\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n combinedZoneTaskMitigatedCNL,\r\n currentNoiseCriteria,\r\n \"\",\r\n 0,\r\n 0,\r\n currentlBuildingTotalFloor\r\n );\r\n calculationResultNSROriginalForOneNSRArray.push(aOriCalResNSR);\r\n calculationResultNSRMitigatedForOneNSRArray.push(aMitCalResNSR);\r\n\r\n // var for pop up\r\n // var calculatedPopup = new CalculatedValuesPopup(0, currentCombinedZoneTask, combinedZoneTaskOriginalCNL);\r\n var calculatedPopup = new CalculatedValuesPopup(0, currentCombinedZoneTaskForFoundBuilding, combinedZoneTaskOriginalCNL);\r\n calcValArr.push(calculatedPopup);\r\n // calculatedPopup = new CalculatedValuesPopup(1, currentCombinedZoneTask, combinedZoneTaskMitigatedCNL);\r\n calculatedPopup = new CalculatedValuesPopup(1, currentCombinedZoneTaskForFoundBuilding, combinedZoneTaskMitigatedCNL);\r\n calcValArr.push(calculatedPopup);\r\n }\r\n } else {\r\n // console.log(\"zoneTaskIds\");\r\n // console.log(zoneTaskIds);\r\n\r\n for (let j = 0; j < combinedZoneTaskListArr.length; j++) {\r\n var currentCombinedZoneTask = combinedZoneTaskListArr[j];\r\n var individualZoneTaskArr = currentCombinedZoneTask.split(\"+\");\r\n var individualZoneTaskOriginalCNLArr = [];\r\n var individualZoneTaskMitigatedCNLArr = [];\r\n\r\n //check if it's closest type b zone\r\n if (\r\n individualZoneTaskArr.some((zt) => {\r\n let currentZoneIndex = parseInt(zt.split(\"-\")[0]);\r\n return (\r\n zoneNSRNotionalInfo[currentPointId].closestZone != currentZoneIndex &&\r\n getZoneFeatFromArray(currentZoneIndex).get(\"calculationtype\") == \"B\"\r\n );\r\n })\r\n ) {\r\n if (selectedNSRPointIds.map((id) => id.toString()).includes(currentPointId.toString())) {\r\n console.log(\"didn't pass\");\r\n }\r\n continue;\r\n }\r\n\r\n for (let m = 0; m < individualZoneTaskArr.length; m++) {\r\n var curZoneTask = individualZoneTaskArr[m];\r\n // var curZoneTaskIndex = zoneTaskIds.indexOf(curZoneTask);\r\n\r\n // if (curZoneTaskIndex < 0) {\r\n // console.log(\"zone task index not found\");\r\n // continue;\r\n // }\r\n\r\n var originalCNLForCurrentZoneTask = originalCNLForCurrentNSR[curZoneTask];\r\n var mitigatedCNLForCurrentZoneTask = mitigatedCNLForCurrentNSR[curZoneTask];\r\n\r\n individualZoneTaskOriginalCNLArr.push(originalCNLForCurrentZoneTask);\r\n individualZoneTaskMitigatedCNLArr.push(mitigatedCNLForCurrentZoneTask);\r\n }\r\n\r\n var combinedZoneTaskOriginalCNL = getCombinedNoiseLevel(individualZoneTaskOriginalCNLArr);\r\n var combinedZoneTaskMitigatedCNL = getCombinedNoiseLevel(individualZoneTaskMitigatedCNLArr);\r\n\r\n originalCNLForCurrentCombinedNSR.push(combinedZoneTaskOriginalCNL);\r\n mitigatedCNLForCurrentCombinedNSR.push(combinedZoneTaskMitigatedCNL);\r\n\r\n // var for insert into calculation result nsr database\r\n var aOriCalResNSR = new CalculationResultNSR(\r\n 0,\r\n projectId,\r\n false,\r\n currentBuildingId,\r\n currentBuildingName,\r\n currentPointId,\r\n currentNSRName,\r\n currentCombinedZoneTask,\r\n \"\",\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n combinedZoneTaskOriginalCNL,\r\n currentNoiseCriteria,\r\n \"\",\r\n 0,\r\n 0,\r\n currentlBuildingTotalFloor\r\n );\r\n var aMitCalResNSR = new CalculationResultNSR(\r\n 0,\r\n projectId,\r\n true,\r\n currentBuildingId,\r\n currentBuildingName,\r\n currentPointId,\r\n currentNSRName,\r\n currentCombinedZoneTask,\r\n \"\",\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n combinedZoneTaskMitigatedCNL,\r\n currentNoiseCriteria,\r\n \"\",\r\n 0,\r\n 0,\r\n currentlBuildingTotalFloor\r\n );\r\n calculationResultNSROriginalForOneNSRArray.push(aOriCalResNSR);\r\n calculationResultNSRMitigatedForOneNSRArray.push(aMitCalResNSR);\r\n\r\n // var for pop up\r\n var calculatedPopup = new CalculatedValuesPopup(0, currentCombinedZoneTask, combinedZoneTaskOriginalCNL);\r\n calcValArr.push(calculatedPopup);\r\n calculatedPopup = new CalculatedValuesPopup(1, currentCombinedZoneTask, combinedZoneTaskMitigatedCNL);\r\n calcValArr.push(calculatedPopup);\r\n }\r\n }\r\n\r\n //get the maximum cnl\r\n var maxOriginalCNL = 0;\r\n var maxOriginalCNLZoneTaskId = \"\";\r\n var maxMitigatedCNL = 0;\r\n var maxMitigatedCNLZoneTaskId = \"\";\r\n Object.keys(originalCNLForCurrentNSR).forEach((key) => {\r\n var curCNL = originalCNLForCurrentNSR[key];\r\n if (maxOriginalCNL < curCNL) {\r\n maxOriginalCNL = curCNL;\r\n maxOriginalCNLZoneTaskId = key;\r\n }\r\n });\r\n for (let j = 0; j < originalCNLForCurrentCombinedNSR.length; j++) {\r\n var curCNL = originalCNLForCurrentCombinedNSR[j];\r\n if (maxOriginalCNL < curCNL) {\r\n maxOriginalCNL = curCNL;\r\n maxOriginalCNLZoneTaskId = combinedZoneTaskListArr[j];\r\n }\r\n }\r\n\r\n Object.keys(mitigatedCNLForCurrentNSR).forEach((key) => {\r\n var curCNL = mitigatedCNLForCurrentNSR[key];\r\n if (maxMitigatedCNL < curCNL) {\r\n maxMitigatedCNL = curCNL;\r\n maxMitigatedCNLZoneTaskId = key;\r\n }\r\n });\r\n\r\n for (let j = 0; j < mitigatedCNLForCurrentCombinedNSR.length; j++) {\r\n var curCNL = mitigatedCNLForCurrentCombinedNSR[j];\r\n if (maxMitigatedCNL < curCNL) {\r\n maxMitigatedCNL = curCNL;\r\n maxMitigatedCNLZoneTaskId = combinedZoneTaskListArr[j];\r\n }\r\n }\r\n\r\n //check the othernoisecriteria\r\n var maxOtherCritUnMit = 999;\r\n var maxOtherCritMit = 999;\r\n for (let j = 0; j < currentNSROtherNoiseCriteriaValueArr.length; j++) {\r\n var aCritName = currentNSROtherNoiseCriteriaNameArr[j];\r\n var aCritValue = currentNSROtherNoiseCriteriaValueArr[j];\r\n var aCritStartDate = currentNSROtherNoiseCriteriaStartDateArr[j];\r\n var aCritEndDate = currentNSROtherNoiseCriteriaEndDateArr[j];\r\n var aCritSentence = currentNSROtherNoiseCriteriaSentenceArr[j];\r\n\r\n // if(aCritValue < maxOriginalCNL)\r\n // {\r\n currentNSROtherNoiseCriteriaExceedUnMitArr.push(aCritSentence);\r\n if (maxOtherCritUnMit > aCritValue) {\r\n currentNSROtherNoiseCriteriaExceedUnMitMax = aCritSentence;\r\n maxOtherCritUnMit = aCritValue;\r\n }\r\n // }\r\n\r\n // if(aCritValue < maxMitigatedCNL){\r\n currentNSROtherNoiseCriteriaExceedMitArr.push(aCritSentence);\r\n if (maxOtherCritMit > aCritValue) {\r\n currentNSROtherNoiseCriteriaExceedMitMax = aCritSentence;\r\n maxOtherCritMit = aCritValue;\r\n }\r\n // }\r\n }\r\n\r\n //update variables for db\r\n for (let j = 0; j < calculationResultNSROriginalForOneNSRArray.length; j++) {\r\n var aOriCalResNSR = calculationResultNSROriginalForOneNSRArray[j];\r\n aOriCalResNSR.highestnoiselevel = maxOriginalCNL;\r\n aOriCalResNSR.othernoisecriteriaexceed = currentNSROtherNoiseCriteriaExceedUnMitArr.join(\"#\");\r\n aOriCalResNSR.othernoisecriteriaexceedmax = currentNSROtherNoiseCriteriaExceedUnMitMax;\r\n\r\n calculationResultOriginalNSRArray.push(aOriCalResNSR);\r\n calculationResultNSRArray.push(aOriCalResNSR);\r\n }\r\n\r\n for (let j = 0; j < calculationResultNSRMitigatedForOneNSRArray.length; j++) {\r\n var aMitCalResNSR = calculationResultNSRMitigatedForOneNSRArray[j];\r\n aMitCalResNSR.highestnoiselevel = maxMitigatedCNL;\r\n aMitCalResNSR.othernoisecriteriaexceed = currentNSROtherNoiseCriteriaExceedMitArr.join(\"#\");\r\n aMitCalResNSR.othernoisecriteriaexceedmax = currentNSROtherNoiseCriteriaExceedMitMax;\r\n aMitCalResNSR.highestnoiselevelwithneighbour = nsrPointFeat.get(\"totalcnlwithneighbor\") ? nsrPointFeat.get(\"totalcnlwithneighbor\") : 0;\r\n\r\n calculationResultMitigatedNSRArray.push(aMitCalResNSR);\r\n calculationResultNSRArray.push(aMitCalResNSR);\r\n }\r\n\r\n // if (calcTypeTemp == \"B\") {\r\n // let buildingids = [\r\n // ...new Set(calculationResultNSRArray.map((c) => c.buildingid)),\r\n // ];\r\n\r\n // let nsrMinDistance = [];\r\n\r\n // buildingids.forEach((id) => {\r\n // let nsrResult = calculationResultNSRArray.filter(\r\n // (c) => c.buildingid == id && c.distance != 0\r\n // );\r\n // let minDistance = Math.min(...nsrResult.map((n) => n.distance));\r\n // nsrMinDistance.push(\r\n // ...nsrResult.filter((c) => c.distance == minDistance)\r\n // );\r\n // });\r\n\r\n // calculationResultNSRArray = nsrMinDistance;\r\n // let nsrHighestNoise = [];\r\n\r\n // buildingids.forEach((id) => {\r\n // let nsrResultUnmitigated = calculationResultNSRArray.filter(\r\n // (c) => c.buildingid == id && !c.ismitigated\r\n // );\r\n // let highestNoiseUnmitigate = Math.max(\r\n // ...nsrResultUnmitigated.map((n) => n.cnl)\r\n // );\r\n // let nsrResultmitigated = calculationResultNSRArray.filter(\r\n // (c) => c.buildingid == id && c.ismitigated\r\n // );\r\n // let highestNoiseMitigate = Math.max(\r\n // ...nsrResultmitigated.map((n) => n.cnl)\r\n // );\r\n // nsrHighestNoise.push(\r\n // ...nsrResultUnmitigated.map((n) => {\r\n // return {\r\n // ...n,\r\n // highestnoiselevel: highestNoiseUnmitigate,\r\n // };\r\n // })\r\n // );\r\n // nsrHighestNoise.push(\r\n // ...nsrResultmitigated.map((n) => {\r\n // return {\r\n // ...n,\r\n // highestnoiselevel: highestNoiseMitigate,\r\n // };\r\n // })\r\n // );\r\n // });\r\n\r\n // calculationResultNSRArray = nsrHighestNoise;\r\n // }\r\n //update variables for db - end\r\n nsrPointFeat.set(\"totalcnl\", maxOriginalCNL);\r\n nsrPointFeat.set(\"totalcnlmit\", maxMitigatedCNL);\r\n nsrPointFeat.set(\"calcvalues\", JSON.stringify(calcValArr));\r\n // if(currentBuildingId === 1111111020) {\r\n // console.log(\"calcValArr for 1111111020\");\r\n // console.log(calcValArr);\r\n // console.log(\"nsrPointFeat.get('calcvalues')\");\r\n // console.log(nsrPointFeat.get('calcvalues'));\r\n // }\r\n\r\n var useMitigated = false;\r\n if (maxMitigatedCNL > 0 && maxMitigatedCNL !== maxOriginalCNL) {\r\n useMitigated = true;\r\n }\r\n // console.log(\"useMitigated\");\r\n // console.log(useMitigated);\r\n // console.log(\"maxOriginalCNL\");\r\n // console.log(maxOriginalCNL);\r\n // console.log(\"maxMitigatedCNL\");\r\n // console.log(maxMitigatedCNL);\r\n // console.log(\"currentNoiseCriteria\");\r\n // console.log(currentNoiseCriteria);\r\n\r\n if (useMitigated) {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxMitigatedCNL)) {\r\n // if the result is red\r\n nsrPointFeat.setStyle(redNSRPointMitStyleFunctionWithNSRName);\r\n //console.log(\"redNSRPointMitStyleFunctionWithNSRName\");\r\n //test below between calculationResultMitigatedNSRArray or calculationResultNSRArray\r\n calculateBarrierHeight(\r\n calculationResultMitigatedNSRArray,\r\n currentNoiseCriteria,\r\n currentlBuildingTotalFloor,\r\n currentlBuildingHeight,\r\n floorHeightAssumption\r\n );\r\n } else {\r\n nsrPointFeat.setStyle(greenNSRPointStyleFunctionWithNSRName);\r\n //console.log(\"greenNSRPointStyleFunctionWithNSRName\");\r\n }\r\n } else {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxOriginalCNL)) {\r\n // if the result is red\r\n nsrPointFeat.setStyle(redNSRPointUnmitStyleFunctionWithNSRName);\r\n //console.log(\"redNSRPointUnmitStyleFunctionWithNSRName\");\r\n } else {\r\n nsrPointFeat.setStyle(greenNSRPointStyleFunctionWithNSRName);\r\n //console.log(\"greenNSRPointStyleFunctionWithNSRName\");\r\n }\r\n }\r\n if (selectedNSRPointIds.length > 0) {\r\n var isThisNSRSelected = false;\r\n var isAllEmpty = true;\r\n for (let j = 0; j < selectedNSRPointIds.length; j++) {\r\n var selNSRId = selectedNSRPointIds[j];\r\n // console.log(\"selNSRId\");\r\n // console.log(\"#\" + selNSRId + \"#\");\r\n if (selNSRId !== \"\") {\r\n isAllEmpty = false;\r\n //continue;\r\n }\r\n // console.log(\"currentPointId\");\r\n // console.log(currentPointId);\r\n // console.log(\"selNSRId\");\r\n // console.log(selNSRId);\r\n // console.log(\"parseInt(currentPointId) === parseInt(selNSRId)\");\r\n // console.log(parseInt(currentPointId) === parseInt(selNSRId));\r\n if (parseInt(currentPointId) === parseInt(selNSRId)) {\r\n isThisNSRSelected = true;\r\n break;\r\n }\r\n }\r\n if (!isThisNSRSelected && !isAllEmpty) {\r\n //change here\r\n nsrPointFeat.setStyle(unselectedNSRPointStyle);\r\n }\r\n }\r\n // console.log(\"nsrPointFeat\");\r\n // console.log(nsrPointFeat);\r\n // if (nsrPointFeat.get(\"nsrname\") === \"N6\")\r\n // {\r\n // console.log('nsrPointFeat');\r\n // console.log(nsrPointFeat);\r\n // console.log(\"calcValArr\");\r\n // console.log(calcValArr);\r\n\r\n // }\r\n\r\n thisLayer.getSource().addFeature(nsrPointFeat);\r\n });\r\n // console.log(\"calculationResultNSRArray\");\r\n // console.log(calculationResultNSRArray);\r\n\r\n // var maxNoisevalue = 0;\r\n // var maxDateGroup = \"\";\r\n // var calculationResultGroupArr = [];\r\n // var floorHeightAssumption = 3; // 1 floor height = 3 meters.\r\n // var barrierDistFromEqp = 3; // barrier located fixed distance from equipment\r\n // var defaultEquipmentBaseHeight = 1; // 1 meter from ground;\r\n // var testRedFeatures = [];\r\n // for (let i = 0; i < thisProjectCalculatedNSRPointFeats.length; i++) {\r\n // var nsrPointFeat = thisProjectCalculatedNSRPointFeats[i];\r\n // // var pointArr = [siteCentroid.getGeometry().getCoordinates(), nsrPointFeat.getGeometry().getCoordinates()];\r\n // // var distanceLine = new LineString(pointArr);\r\n // // var distanceLineFeat = new Feature({\r\n // // geometry: distanceLine\r\n // // });\r\n // var currentBuildingId = nsrPointFeat.get(\"buildingid\");\r\n // var currentNoiseCriteria = nsrPointFeat.get(\"noisecriteria\");\r\n // var currentlBuildingHeight = nsrPointFeat.get(\"Bld_Ht\");\r\n // var currentBuildingName = nsrPointFeat.get(\"BldName_E\");\r\n // var currentlBuildingTotalFloor = Math.floor(currentlBuildingHeight / floorHeightAssumption);\r\n\r\n // //distanceLine.setId(nsrPointFeat.getId());\r\n // //var currentDistance = distanceLine.getLength();\r\n // // var currentDistance = getLength(distanceLine);\r\n\r\n // //if (currentDistance < minDistance) {\r\n\r\n // // minDistance = currentDistance;\r\n\r\n // // //get notional point\r\n // // // console.log(distanceLine);\r\n // // // console.log(siteLine);\r\n // // var pointAtSiteBorder = getIntesectedPoint(distanceLineFeat, siteLineFeat);\r\n // // // console.log(\"pointAtSiteBorder\");\r\n // // // console.log(pointAtSiteBorder);\r\n // // var pointArr2 = [siteCentroid.getGeometry().getCoordinates(), pointAtSiteBorder.getGeometry().getCoordinates()];\r\n // // var centroidToSiteBorderLine = new LineString(pointArr2);\r\n\r\n // // var fraction = 0.5;\r\n // // var notionalPoint = new Point(centroidToSiteBorderLine.getCoordinateAt(fraction));\r\n // // // var notionalPointFeat = new Feature({\r\n // // // geometry: notionalPoint\r\n // // // });\r\n // // var notionalDistancePointArr = [notionalPoint.getCoordinates(),nsrPointFeat.getGeometry().getCoordinates()]\r\n // // var notionalDistanceLine = new LineString(notionalDistancePointArr);\r\n // // //var notionalDistance = notionalDistanceLine.getLength();\r\n // // var notionalDistance = getLength(notionalDistanceLine);\r\n // // // console.log('notionalDistance', notionalDistance);\r\n\r\n // // create date groups and alternate groups\r\n // var dateArray = [];\r\n // var alternateGroupsArray = [];\r\n // for (let j = 0; j < thisProjectCalculatedPMEFeats.length; j++) {\r\n // var currentFeat = thisProjectCalculatedPMEFeats[j];\r\n // // console.log(\"currentFeat\");\r\n // // console.log(currentFeat);\r\n // // var startDate = getHKDateStringFromZulu(currentFeat.get('startdate')) ;\r\n // // var endDate = getHKDateStringFromZulu(currentFeat.get('enddate'));\r\n // var startDate = getHKDateStringFromZulu(currentFeat.get('startt')) ;\r\n // var endDate = getHKDateStringFromZulu(currentFeat.get('endd'));\r\n // var dateID = startDate.toString() + \"#\" + endDate.toString();\r\n // //console.log(\"dateID\");\r\n // //console.log(dateID);\r\n // if (dateArray.indexOf(dateID) === -1){\r\n // dateArray.push(dateID);\r\n // }\r\n // var excGroupName = (currentFeat.get('exclusivegroup') == null) ? \"\" : currentFeat.get('exclusivegroup');\r\n // // console.log(\"excGroupName\",excGroupName);\r\n // if(alternateGroupsArray.indexOf(excGroupName) === -1 && excGroupName !== \"\") {\r\n // alternateGroupsArray.push(excGroupName);\r\n // }\r\n // if(alternateGroupsArray.length === 0) {\r\n // alternateGroupsArray.push(\"\");\r\n // }\r\n // }\r\n // //console.log(dateArray);\r\n\r\n // //loop for each date groups\r\n // var dateArrayTotalvalue = [];\r\n // var dateArrayTasks = [];\r\n // maxNoisevalue = 0;\r\n // var calResultGroupCurrrentBuildingArr = [];\r\n // for (let j = 0; j < dateArray.length; j++) {\r\n // var datesStr = dateArray[j].split(\"#\");\r\n // var startDateGroup = new Date(datesStr[0]);\r\n // var endDateGroup = new Date(datesStr[1]);\r\n // //console.log(startDateGroup < endDateGroup);\r\n // //console.log(\"Date group:\", datesStr);\r\n // // console.log(\"startDateGroup\", startDateGroup);\r\n // // console.log(\"endDateGroup\", endDateGroup);\r\n // var grpTaskArray = [];\r\n // for (let t = 0; t < thisProjectCalculateTask.length ; t++) {\r\n // var taskFeat = thisProjectCalculateTask[t];\r\n // // console.log(\"taskFeat\");\r\n // // console.log(taskFeat);\r\n // var taskStartDate = new Date(taskFeat.start.split(\"T\")[0]);\r\n // var taskEndDate = new Date(taskFeat.end.split(\"T\")[0]);\r\n // // console.log(\"taskStartDate\", taskStartDate);\r\n // // console.log(\"taskEndDate\", taskEndDate);\r\n // if((startDateGroup <= taskStartDate && taskStartDate <= endDateGroup) || (startDateGroup <= taskEndDate && taskEndDate <= endDateGroup)) {\r\n // // console.log(\"task = \");\r\n // // console.log(taskFeat.group + \" - \" + taskFeat.name );\r\n // grpTaskArray.push(taskFeat.group + \" - \" + taskFeat.name);\r\n // }\r\n // }\r\n // dateArrayTasks.push(grpTaskArray);\r\n\r\n // var tempSNLPerDateGroup = 0;\r\n // var tempSNLPerDateGroupArr = [];\r\n // for (let excGrpIndex = 0; excGrpIndex < alternateGroupsArray.length; excGrpIndex++){\r\n // tempSNLPerDateGroupArr[excGrpIndex] = 0;\r\n // }\r\n\r\n // for (let l = 0; l < thisProjectCalculatedPMEFeats.length; l++) {\r\n // var currentFeat = thisProjectCalculatedPMEFeats[l];\r\n // var pmeName = currentFeat.get('othername');\r\n // // var startDate = new Date(getHKDateStringFromZulu(currentFeat.get('startdate')));\r\n // // var endDate = new Date(getHKDateStringFromZulu(currentFeat.get('enddate')));\r\n // var startDate = new Date(getHKDateStringFromZulu(currentFeat.get('startt')));\r\n // var endDate = new Date(getHKDateStringFromZulu(currentFeat.get('endd')));\r\n // var currentExcGroup = (currentFeat.get('exclusivegroup') == null) ? \"\" : currentFeat.get('exclusivegroup');\r\n // // var currentExcGroupIndex = alternateGroupsArray.indexOf(currentExcGroup);\r\n // var currentExcGroupIndex;\r\n // if (currentExcGroup == \"\") {\r\n // currentExcGroupIndex = -99;\r\n // }\r\n // else {\r\n // currentExcGroupIndex = alternateGroupsArray.indexOf(currentExcGroup);\r\n // }\r\n // // console.log(\"currentExcGroup\",currentExcGroup);\r\n // // console.log(\"currentExcGroupIndex\",currentExcGroupIndex);\r\n // // console.log(startDate);\r\n // if((startDateGroup <= startDate && startDate <= endDateGroup) || (startDateGroup <= endDate && endDate <= endDateGroup))\r\n // {\r\n // //### get notional point\r\n // var pointZoneId = currentFeat.get('zone');\r\n // var zoneFeature = getZoneFeatFromArray(pointZoneId);\r\n // var zoneCentroid = getZoneCentroidFeatFromArray(pointZoneId);\r\n // // thisLayer.getSource().addFeature(zoneCentroid);\r\n\r\n // // change the zone to line\r\n // var zoneLine = new LineString(zoneFeature.getGeometry().getCoordinates()[0], 'XY');\r\n // var zoneLineFeat = new Feature({\r\n // geometry: zoneLine\r\n // });\r\n\r\n // // connection from centroid to nsr\r\n // var pointArr = [zoneCentroid.getGeometry().getCoordinates(), nsrPointFeat.getGeometry().getCoordinates()];\r\n // var distanceLine = new LineString(pointArr);\r\n // var distanceLineFeat = new Feature({\r\n // geometry: distanceLine\r\n // });\r\n // var currentDistance = getLength(distanceLine);\r\n\r\n // //get notional point\r\n // var pointAtSiteBorder = getIntesectedPoint(distanceLineFeat, zoneLineFeat);\r\n // var pointArr2 = [zoneCentroid.getGeometry().getCoordinates(), pointAtSiteBorder.getGeometry().getCoordinates()];\r\n // var centroidToSiteBorderLine = new LineString(pointArr2);\r\n // var fraction = 0.5;\r\n // var notionalPoint = new Point(centroidToSiteBorderLine.getCoordinateAt(fraction));\r\n // var notionalDistancePointArr = [notionalPoint.getCoordinates(),nsrPointFeat.getGeometry().getCoordinates()];\r\n // var notionalDistanceLine = new LineString(notionalDistancePointArr);\r\n // var notionalDistance = getLength(notionalDistanceLine);\r\n\r\n // //### get notional point - end\r\n\r\n // // console.log(\"inside: \", getSimpleDate(startDate) + \" - \" + getSimpleDate(endDate));\r\n // // console.log(\"group: \", getSimpleDate(startDateGroup) + \" - \" + getSimpleDate(startDateGroup));\r\n // var timePecentage = currentFeat.get('timepercent') ;\r\n // var isNotional = currentFeat.get('isnotional');\r\n // var qty = currentFeat.get('qty');\r\n // var swl = currentFeat.get('swl');\r\n // // combined with mitigation + qpme\r\n // var qpmeswl = (currentFeat.get('qpmeswl') == null) ? 0 : currentFeat.get('qpmeswl');\r\n // var enclosureMit = (currentFeat.get('enclosuredba') == null) ? 0 : currentFeat.get('enclosuredba');\r\n // var barrierMit = (currentFeat.get('barrierdba') == null) ? 0 : currentFeat.get('barrierdba');\r\n // var hammerMit = (currentFeat.get('hammerdba') == null) ? 0 : currentFeat.get('hammerdba');\r\n\r\n // var timePercentageCorrection = 10 * Math.log10(timePecentage/100);\r\n // var correctedSWL = (qpmeswl <=0 ) ? swl + timePercentageCorrection : ((swl <= 0) ? qpmeswl : Math.min(swl, qpmeswl)) + timePercentageCorrection;\r\n\r\n // var totalReduction = Math.min(enclosureMit,barrierMit,hammerMit);\r\n // var mitigatedSWL = correctedSWL + totalReduction;\r\n\r\n // //var unmitigatedSWL = swl + timePercentageCorrection;\r\n // var swlAfterQTY = 0\r\n // if (qty > 0 ) {\r\n // //swlAfterQTY = unmitigatedSWL + (10 * Math.log10(qty));\r\n // swlAfterQTY = mitigatedSWL + (10 * Math.log10(qty));\r\n // }\r\n // var distance = 0;\r\n // if (isNotional.toLowerCase().indexOf(\"notional\") >= 0) { //use notional distance\r\n // distance = notionalDistance;\r\n // }\r\n // else // use geometry\r\n // {\r\n // var realDistancePointArr = [currentFeat.getGeometry().getCoordinates(),nsrPointFeat.getGeometry().getCoordinates()]\r\n // var realDistanceLine = new LineString(realDistancePointArr);\r\n // //var realDistance = realDistanceLine.getLength();\r\n // var realDistance = getLength(realDistanceLine);\r\n // distance = realDistance;\r\n // // console.log('realDistance', realDistance);\r\n // }\r\n // var slantDistance = Math.pow((Math.pow(distance, 2) + Math.pow(0, 2)), 0.5);\r\n // var hemisphericalPropagation = -1 * (20 * Math.log10(slantDistance) + 8);\r\n // var windowsEffect = -10;\r\n // var predSNL = 0;\r\n // if (qty > 0 ) {\r\n // predSNL = swlAfterQTY + hemisphericalPropagation + windowsEffect ;\r\n // }\r\n // var furtheCalc = Math.pow(10, (predSNL / 10));\r\n // //console.log('furtheCalc', furtheCalc);\r\n\r\n // // console.log(\"name:\" + pmeName + \";swl:\"+ swl.toString()+ \";%:\" + timePecentage.toString() + \";%Correction:\"\r\n // // + timePercentageCorrection.toString() + \";unmitSWL:\" + unmitigatedSWL.toString() + \";qty:\" + qty.toString() +\r\n // // \";swlAfterQty:\" + swlAfterQTY.toString() + \";slant:\" + slantDistance.toString() + \";hemProp:\" + hemisphericalPropagation +\";windowsEffect:-10;predictionSNL:\" +\r\n // // predSNL.toString() + \";tempCombined:\" + furtheCalc.toString() );\r\n\r\n // //tempSNLPerDateGroup = tempSNLPerDateGroup + furtheCalc;\r\n // if (currentExcGroupIndex = -99){ // if no group (group = \"\") then go to every groups\r\n // for (let excGrpIndex = 0; excGrpIndex < alternateGroupsArray.length; excGrpIndex++){\r\n // tempSNLPerDateGroupArr[excGrpIndex] = tempSNLPerDateGroupArr[excGrpIndex] + furtheCalc;\r\n // }\r\n // }\r\n // else\r\n // {\r\n // tempSNLPerDateGroupArr[currentExcGroupIndex] = tempSNLPerDateGroupArr[currentExcGroupIndex] + furtheCalc;\r\n // }\r\n\r\n // }\r\n // }\r\n\r\n // //### check max excGroup total\r\n // var totalCNLThisGroupAtNSRArr = [];\r\n // var maxExcGroupCNL = 0;\r\n // var maxExcGroupIndex = 99;\r\n // // console.log(\"alternateGroupsArray.length\", alternateGroupsArray.length)\r\n // // console.log(\"alternateGroupsArray[0]\", alternateGroupsArray[0]);\r\n // for (let excGrpIndex = 0; excGrpIndex < alternateGroupsArray.length; excGrpIndex++){\r\n // var currenttotalCNLThisGroupAtNSR = 10 * Math.log10(tempSNLPerDateGroupArr[excGrpIndex]);\r\n // if(maxExcGroupCNL < currenttotalCNLThisGroupAtNSR) {\r\n // maxExcGroupCNL = currenttotalCNLThisGroupAtNSR;\r\n // maxExcGroupIndex = excGrpIndex;\r\n // }\r\n // }\r\n // var maxExclusiveGroupName = alternateGroupsArray[maxExcGroupIndex];\r\n // //var totalCNLThisGroupAtNSR = 10 * Math.log10(tempSNLPerDateGroup);\r\n // var totalCNLThisGroupAtNSR = maxExcGroupCNL;\r\n // // console.log('tempSNLPerDateGroup', tempSNLPerDateGroup);\r\n // // console.log('totalCNLThisGroupAtNSR', totalCNLThisGroupAtNSR);\r\n // var totalCNLAlone = totalCNLThisGroupAtNSR;\r\n\r\n // // ### Here should be calculation of the approved sites\r\n // // ###\r\n // var aprMaxCNL = [];\r\n // var combinedCNL = totalCNLThisGroupAtNSR;\r\n // //add calculaton for approved site\r\n // if(approvedProjectIDs.length > 0)\r\n // {\r\n\r\n // // loop for each approvedProjId\r\n // for(let a=0; a < approvedProjectIDs.length; a++) {\r\n // var currentAprProjId = approvedProjectIDs[a];\r\n // var currentArrayForBdIdAprProjId = approvedData.filter(item => item.buildingid === currentBuildingId && item.projectId === currentAprProjId);\r\n // if(currentArrayForBdIdAprProjId.length === 0)\r\n // {\r\n // continue;\r\n // }\r\n // aprMaxCNL.push(Math.max(...currentArrayForBdIdAprProjId.map(item => item.totalcnl)));\r\n // }\r\n // // var custArr = json.filter(item => item.buildingid === 1100015168 && item.projectId === 164);\r\n // // var maxCnl = Math.max(...custArr.map(item => item.totalcnl));\r\n // // console.log(custArr);\r\n // // console.log(custArr.length == 0);\r\n // // console.log(maxCnl);\r\n\r\n // //calculate combined noise\r\n // if(aprMaxCNL.length>0){\r\n // var combinedInsideLog = 0;\r\n // for(let a=0; a comparedItem.dateGroup ) {\r\n // insertIndex = l;\r\n // insertFound = true;\r\n // break;\r\n // }\r\n // }\r\n // if (!insertFound) {\r\n // calcValArr.push(currentItem);\r\n // }\r\n // else\r\n // {\r\n // calcValArr.splice(insertIndex,0,currentItem);\r\n // }\r\n // }\r\n // }\r\n\r\n // // console.log('calcValArrTemp', calcValArrTemp);\r\n // // console.log('calcValArr', calcValArr);\r\n // //console.log('JSON.stringify(calcValArr)', JSON.stringify(calcValArr));\r\n // var currentCriteria = nsrPointFeat.get('noisecriteria');\r\n // nsrPointFeat.set('totalcnl',maxNoisevalue);\r\n // nsrPointFeat.set('calcvalues',JSON.stringify(calcValArr));\r\n // // console.log('currentCriteria', currentCriteria);\r\n // // console.log('maxNoisevalue', maxNoisevalue);\r\n // //console.log('calcvalues',JSON.stringify(calcValArr));\r\n\r\n // if (currentCriteria < maxNoisevalue) { // if the result is red\r\n // // if (maxNoisevalue > labelThreshold){\r\n // // nsrPointFeat.setStyle(redNSRPointStyleFunction);\r\n // // }\r\n // // else\r\n // // {\r\n // // nsrPointFeat.setStyle(redNSRPointStyle2);\r\n // // }\r\n // nsrPointFeat.setStyle(redNSRPointStyleFunction);\r\n // // console.log(\"maxNoisevalue\", maxNoisevalue);\r\n // // console.log(\"currentCriteria\", currentCriteria);\r\n\r\n // var datesStr = maxDateGroup.split(\"#\");\r\n // var startDateGroup = new Date(datesStr[0]);\r\n // var endDateGroup = new Date(datesStr[1]);\r\n\r\n // //try to get on which floor the totalcnl becomes green\r\n // var lastRedFloor = 0;\r\n // var previousBarrierHeight = 0;\r\n // var currentBarrierHeight = defaultEquipmentBaseHeight;\r\n // for (let f = 0; f < currentlBuildingTotalFloor; f++) {\r\n // lastRedFloor = f;\r\n\r\n // var tempSNLPerDateGroup = 0;\r\n // var tempSNLPerDateGroupArr = [];\r\n // for (let excGrpIndex = 0; excGrpIndex < alternateGroupsArray.length; excGrpIndex++){\r\n // tempSNLPerDateGroupArr[excGrpIndex] = 0;\r\n // }\r\n // for (let l = 0; l < thisProjectCalculatedPMEFeats.length; l++) {\r\n // var currentFeat = thisProjectCalculatedPMEFeats[l];\r\n // var startDate = new Date(getHKDateStringFromZulu(currentFeat.get('startt')));\r\n // var endDate = new Date(getHKDateStringFromZulu(currentFeat.get('endd')));\r\n // var currentExcGroup = (currentFeat.get('exclusivegroup') == null) ? \"\" : currentFeat.get('exclusivegroup');\r\n // // var currentExcGroupIndex = alternateGroupsArray.indexOf(currentExcGroup);\r\n // var currentExcGroupIndex;\r\n // if (currentExcGroup == \"\") {\r\n // currentExcGroupIndex = -99;\r\n // }\r\n // else {\r\n // currentExcGroupIndex = alternateGroupsArray.indexOf(currentExcGroup);\r\n // }\r\n\r\n // if((startDateGroup <= startDate && startDate <= endDateGroup) || (startDateGroup <= endDate && endDate <= endDateGroup))\r\n // {\r\n // //### get notional point\r\n // var pointZoneId = currentFeat.get('zone');\r\n // var zoneFeature = getZoneFeatFromArray(pointZoneId);\r\n // var zoneCentroid = getZoneCentroidFeatFromArray(pointZoneId);\r\n\r\n // // change the zone to line\r\n // var zoneLine = new LineString(zoneFeature.getGeometry().getCoordinates()[0], 'XY');\r\n // var zoneLineFeat = new Feature({\r\n // geometry: zoneLine\r\n // });\r\n\r\n // // connection from centroid to nsr\r\n // var pointArr = [zoneCentroid.getGeometry().getCoordinates(), nsrPointFeat.getGeometry().getCoordinates()];\r\n // var distanceLine = new LineString(pointArr);\r\n // var distanceLineFeat = new Feature({\r\n // geometry: distanceLine\r\n // });\r\n // var currentDistance = getLength(distanceLine);\r\n\r\n // //get notional point\r\n // var pointAtSiteBorder = getIntesectedPoint(distanceLineFeat, zoneLineFeat);\r\n // var pointArr2 = [zoneCentroid.getGeometry().getCoordinates(), pointAtSiteBorder.getGeometry().getCoordinates()];\r\n // var centroidToSiteBorderLine = new LineString(pointArr2);\r\n // var fraction = 0.5;\r\n // var notionalPoint = new Point(centroidToSiteBorderLine.getCoordinateAt(fraction));\r\n // var notionalDistancePointArr = [notionalPoint.getCoordinates(),nsrPointFeat.getGeometry().getCoordinates()];\r\n // var notionalDistanceLine = new LineString(notionalDistancePointArr);\r\n // var notionalDistanceOnGround = getLength(notionalDistanceLine);\r\n // var notionalDistance = notionalDistanceOnGround;\r\n // var currentFloorHeight = f * floorHeightAssumption;\r\n // currentBarrierHeight = (barrierDistFromEqp / notionalDistanceOnGround * currentFloorHeight) + defaultEquipmentBaseHeight;\r\n // if (f > 0 ) {\r\n // var prevFloorHeight = (f-1) * floorHeightAssumption;\r\n // previousBarrierHeight = (barrierDistFromEqp / notionalDistanceOnGround * prevFloorHeight) + defaultEquipmentBaseHeight;\r\n // }\r\n\r\n // //### get notional point - end\r\n\r\n // // console.log(\"inside: \", getSimpleDate(startDate) + \" - \" + getSimpleDate(endDate));\r\n // // console.log(\"group: \", getSimpleDate(startDateGroup) + \" - \" + getSimpleDate(startDateGroup));\r\n // var timePecentage = currentFeat.get('timepercent') ;\r\n // var isNotional = currentFeat.get('isnotional');\r\n // var qty = currentFeat.get('qty');\r\n // var swl = currentFeat.get('swl');\r\n // // combined with mitigation + qpme\r\n // var qpmeswl = (currentFeat.get('qpmeswl') == null) ? 0 : currentFeat.get('qpmeswl');\r\n // var enclosureMit = (currentFeat.get('enclosuredba') == null) ? 0 : currentFeat.get('enclosuredba');\r\n // var barrierMit = (currentFeat.get('barrierdba') == null) ? 0 : currentFeat.get('barrierdba');\r\n // var hammerMit = (currentFeat.get('hammerdba') == null) ? 0 : currentFeat.get('hammerdba');\r\n\r\n // var timePercentageCorrection = 10 * Math.log10(timePecentage/100);\r\n // var correctedSWL = (qpmeswl <=0 ) ? swl + timePercentageCorrection : ((swl <= 0) ? qpmeswl : Math.min(swl, qpmeswl)) + timePercentageCorrection;\r\n\r\n // var totalReduction = Math.min(enclosureMit,barrierMit,hammerMit);\r\n // var mitigatedSWL = correctedSWL + totalReduction;\r\n\r\n // //var unmitigatedSWL = swl + timePercentageCorrection;\r\n // var swlAfterQTY = 0\r\n // if (qty > 0 ) {\r\n // //swlAfterQTY = unmitigatedSWL + (10 * Math.log10(qty));\r\n // swlAfterQTY = mitigatedSWL + (10 * Math.log10(qty));\r\n // }\r\n // var distance = 0;\r\n // if (isNotional.toLowerCase().indexOf(\"notional\") >= 0) { //use notional distance\r\n // distance = notionalDistance;\r\n // }\r\n // else // use geometry\r\n // {\r\n // var realDistancePointArr = [currentFeat.getGeometry().getCoordinates(),nsrPointFeat.getGeometry().getCoordinates()]\r\n // var realDistanceLine = new LineString(realDistancePointArr);\r\n // //var realDistance = realDistanceLine.getLength();\r\n // var realDistance = getLength(realDistanceLine);\r\n // distance = realDistance;\r\n // // console.log('realDistance', realDistance);\r\n // }\r\n // var slantDistance = Math.pow((Math.pow(distance, 2) + Math.pow(currentFloorHeight, 2)), 0.5);\r\n // var hemisphericalPropagation = -1 * (20 * Math.log10(slantDistance) + 8);\r\n // var windowsEffect = -10;\r\n // var predSNL = 0;\r\n // if (qty > 0 ) {\r\n // predSNL = swlAfterQTY + hemisphericalPropagation + windowsEffect ;\r\n // }\r\n // var furtheCalc = Math.pow(10, (predSNL / 10));\r\n // //console.log('furtheCalc', furtheCalc);\r\n\r\n // // console.log(\"name:\" + pmeName + \";swl:\"+ swl.toString()+ \";%:\" + timePecentage.toString() + \";%Correction:\"\r\n // // + timePercentageCorrection.toString() + \";unmitSWL:\" + unmitigatedSWL.toString() + \";qty:\" + qty.toString() +\r\n // // \";swlAfterQty:\" + swlAfterQTY.toString() + \";slant:\" + slantDistance.toString() + \";hemProp:\" + hemisphericalPropagation +\";windowsEffect:-10;predictionSNL:\" +\r\n // // predSNL.toString() + \";tempCombined:\" + furtheCalc.toString() );\r\n\r\n // //tempSNLPerDateGroup = tempSNLPerDateGroup + furtheCalc;\r\n\r\n // if (currentExcGroupIndex = -99){ // if no group (group = \"\") then go to every groups\r\n // for (let excGrpIndex = 0; excGrpIndex < alternateGroupsArray.length; excGrpIndex++){\r\n // tempSNLPerDateGroupArr[excGrpIndex] = tempSNLPerDateGroupArr[excGrpIndex] + furtheCalc;\r\n // }\r\n // }\r\n // else\r\n // {\r\n // tempSNLPerDateGroupArr[currentExcGroupIndex] = tempSNLPerDateGroupArr[currentExcGroupIndex] + furtheCalc;\r\n // }\r\n // }\r\n // }\r\n // //### check max excGroup total\r\n // var totalCNLThisGroupAtNSRArr = [];\r\n // var maxExcGroupCNL = 0;\r\n // var maxExcGroupIndex = 99;\r\n // for (let excGrpIndex = 0; excGrpIndex < alternateGroupsArray.length; excGrpIndex++){\r\n // var currenttotalCNLThisGroupAtNSR = 10 * Math.log10(tempSNLPerDateGroupArr[excGrpIndex]);\r\n // if(maxExcGroupCNL < currenttotalCNLThisGroupAtNSR) {\r\n // maxExcGroupCNL = currenttotalCNLThisGroupAtNSR;\r\n // maxExcGroupIndex = excGrpIndex;\r\n // }\r\n // }\r\n // // var maxExclusiveGroupName = alternateGroupsArray[maxExcGroupIndex];\r\n // // var totalCNLThisGroupAtNSR = 10 * Math.log10(tempSNLPerDateGroup);\r\n // var totalCNLThisGroupAtNSR = maxExcGroupCNL;\r\n // var totalCNLAlone = totalCNLThisGroupAtNSR;\r\n\r\n // // ### Here should be calculation of the approved sites\r\n // // ###\r\n // var aprMaxCNL = [];\r\n // var combinedCNL = totalCNLThisGroupAtNSR;\r\n // //add calculaton for approved site\r\n // if(approvedProjectIDs.length > 0)\r\n // {\r\n\r\n // // loop for each approvedProjId\r\n // for(let a=0; a < approvedProjectIDs.length; a++) {\r\n // var currentAprProjId = approvedProjectIDs[a];\r\n // var currentArrayForBdIdAprProjId = approvedData.filter(item => item.buildingid === currentBuildingId && item.projectId === currentAprProjId);\r\n // if(currentArrayForBdIdAprProjId.length === 0)\r\n // {\r\n // continue;\r\n // }\r\n // aprMaxCNL.push(Math.max(...currentArrayForBdIdAprProjId.map(item => item.totalcnl)));\r\n // }\r\n // // var custArr = json.filter(item => item.buildingid === 1100015168 && item.projectId === 164);\r\n // // var maxCnl = Math.max(...custArr.map(item => item.totalcnl));\r\n // // console.log(custArr);\r\n // // console.log(custArr.length == 0);\r\n // // console.log(maxCnl);\r\n\r\n // //calculate combined noise\r\n // if(aprMaxCNL.length>0){\r\n // var combinedInsideLog = 0;\r\n // for(let a=0; a= totalCNLThisGroupAtNSR) {\r\n // lastRedFloor = lastRedFloor - 1;\r\n // currentBarrierHeight = previousBarrierHeight;\r\n // break;\r\n // }\r\n\r\n // }\r\n // for(let resGrpIndex=0; resGrpIndex < calResultGroupCurrrentBuildingArr.length; resGrpIndex++) {\r\n // var grpResult = calResultGroupCurrrentBuildingArr[resGrpIndex];\r\n // // console.log(\"grpResult.startDate\");\r\n // // console.log(grpResult.startDate.toString());\r\n // // console.log(\"startDateGroup\");\r\n // // console.log(startDateGroup.toString());\r\n // // console.log(\"grpResult.endDate\");\r\n // // console.log(grpResult.endDate.toString());\r\n // // console.log(\"endDateGroup\");\r\n // // console.log(endDateGroup.toString());\r\n\r\n // if((grpResult.startDate.toString() === startDateGroup.toString()) && (grpResult.endDate.toString() === endDateGroup.toString())) {\r\n // console.log(\"lastRedFloor\",lastRedFloor);\r\n // console.log(\"currentBarrierHeight\",currentBarrierHeight);\r\n // grpResult.lastredfloor = lastRedFloor;\r\n // grpResult.barrierheight = currentBarrierHeight;\r\n // grpResult.totalfloor = currentlBuildingTotalFloor;\r\n // }\r\n // else\r\n // {\r\n // console.log(\"ember\");\r\n // grpResult.lastredfloor = -1;\r\n // grpResult.barrierheight = -1;\r\n // grpResult.totalfloor = -1;\r\n // }\r\n\r\n // }\r\n\r\n // nsrPointFeat.set('lastredfloor',lastRedFloor);\r\n // nsrPointFeat.set('barrierheight',currentBarrierHeight);\r\n // nsrPointFeat.set('totalfloor',currentlBuildingTotalFloor);\r\n\r\n // // testRedFeatures.push(nsrPointFeat);\r\n\r\n // }\r\n // else\r\n // {\r\n // // if (maxNoisevalue > labelThreshold){\r\n // // nsrPointFeat.setStyle(greenNSRPointStyleFunction);\r\n // // }\r\n // // else\r\n // // {\r\n // // nsrPointFeat.setStyle(greenNSRPointStyle2);\r\n // // }\r\n // nsrPointFeat.setStyle(greenNSRPointStyle2);\r\n // nsrPointFeat.set('totalfloor',-1);\r\n // nsrPointFeat.set('lastredfloor', -1);\r\n // nsrPointFeat.set('barrierheight',-1);\r\n // }\r\n\r\n // for(let resGrpIndex=0; resGrpIndex < calResultGroupCurrrentBuildingArr.length; resGrpIndex++) {\r\n // var groupResult = calResultGroupCurrrentBuildingArr[resGrpIndex];\r\n // calculationResultGroupArr.push(groupResult);\r\n // }\r\n\r\n // thisLayer.getSource().addFeature(nsrPointFeat);\r\n\r\n // //break; //=> this only for testing one loop.\r\n // //}\r\n // }\r\n // // var thisLayer = getLayerByTitle(\"testLayer\");\r\n // // thisLayer.values_.visible = true;\r\n // //vecTestSource.refresh();\r\n\r\n // // thisLayer = getLayerByTitle(\"zoneWFSLayer\");\r\n // // thisLayer.values_.visible = false;\r\n // // thisLayer = getLayerByTitle(\"siteWFSLayer\");\r\n // // thisLayer.values_.visible = false;\r\n //saveCalculationResult(projectId, calculationResultGroupArr, callback);\r\n // console.log(\"calculationResultDetailArray\");\r\n // console.log(calculationResultDetailArray);\r\n // console.log(\"calculationResultNSRArray\");\r\n // console.log(calculationResultNSRArray);\r\n calculationResultNSRGlobal = calculationResultNSRArray; // put to global var.\r\n // console.log(\"calculationResultNSRGlobal from noise calculation\");\r\n // console.log(calculationResultNSRGlobal);\r\n console.log(projectObj);\r\n if (projectObj) {\r\n projectObj.calculationResultNSR = calculationResultNSRArray;\r\n console.log(\"projectObj.calculationResultNSR on calculatenose6\");\r\n console.log(projectObj.calculationResultNSR);\r\n }\r\n saveCalculationResultDetail(projectId, calculationResultDetailArray, calculationResultNSRArray, callback);\r\n // console.log(\"notionalPointsFeatArr\");\r\n // console.log(notionalPointsFeatArr);\r\n saveNotionalPoints(notionalPointsFeatArr);\r\n\r\n console.log(\"End Calculation\");\r\n // console.log(thisLayer.getSource().getFeatures());\r\n // console.log(testRedFeatures);\r\n isAfterCalculation = true;\r\n}\r\n\r\nfunction saveCalculationResult(projectId, calculationResultGroupArr, callback) {\r\n var deleteURL = SERVER_URL2 + \"/api/CalculationResultGroup/projectid/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish delete in saveCalculationResult\");\r\n saveCalculationResult2(projectId, calculationResultGroupArr, callback);\r\n });\r\n}\r\n\r\nfunction saveCalculationResult2(projectId, calculationResultGroupArr, callback) {\r\n console.log(\"calculationResultGroupArr\");\r\n // calculationResultGroupArr.forEach(item => {\r\n // console.log(item.buildingName);\r\n // })\r\n calculationResultGroupArray = calculationResultGroupArr; // ==> save to global so vue can get the value.\r\n //console.log(calculationResultGroupArr);\r\n var postURL = SERVER_URL2 + \"/api/CalculationResultGroup\";\r\n //var postURL = 'https://localhost:44384/CalculationResultGroup';\r\n // console.log(\"calculationResultGroupArr\");\r\n // console.log(calculationResultGroupArr);\r\n fetch(postURL, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n //mode: 'no-cors',\r\n body: JSON.stringify(calculationResultGroupArr),\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish saveCalculationResult2\");\r\n updateIsCalculated(projectId, 1, callback);\r\n console.log(\"Finish calculating\");\r\n //alert(\"Finish calculating\");\r\n });\r\n}\r\n\r\nfunction calculateBarrierHeight(\r\n calculationResultMitigatedNSRArray,\r\n currentNoiseCriteria,\r\n currentlBuildingTotalFloor,\r\n currentlBuildingHeight,\r\n heightPerFloor\r\n) {\r\n console.log(\"Entering calculateBarrierHeight\");\r\n //use buildingid and zonetaskid from global var: buildingIdForMitigation , zoneTaskIdsForMitigation\r\n\r\n var combinedZoneTaskArr = [];\r\n var barrieredZoneTaskArr = [];\r\n var cnlPerFloor = [];\r\n var nonBarrierCNL = [];\r\n var horizontalDistance = 0;\r\n // console.log(\"calculationResultMitigatedNSRArray\")\r\n // console.log(calculationResultMitigatedNSRArray)\r\n // console.log(\"buildingIdForMitigation\")\r\n // console.log(buildingIdForMitigation)\r\n for (let i = 0; i < calculationResultMitigatedNSRArray.length; i++) {\r\n var currentCalcResultNSR = calculationResultMitigatedNSRArray[i];\r\n\r\n var currentBuildingId = currentCalcResultNSR.buildingid;\r\n var currentIsmitigated = currentCalcResultNSR.ismitigated;\r\n var currentZonetaskorcombined = currentCalcResultNSR.zonetaskorcombined;\r\n\r\n if (currentIsmitigated === true && currentBuildingId === buildingIdForMitigation) {\r\n if (currentZonetaskorcombined.includes(\"+\")) {\r\n var zoneTaskDict = new CustDictionary(currentZonetaskorcombined, null, null);\r\n combinedZoneTaskArr.push(zoneTaskDict);\r\n } else {\r\n if (zoneTaskIdsForMitigation.includes(currentZonetaskorcombined)) {\r\n var zoneTaskDict = new CustDictionary(currentZonetaskorcombined, null, null);\r\n barrieredZoneTaskArr.push(zoneTaskDict);\r\n var currentSWL = currentCalcResultNSR.highestswl;\r\n var currentHorDistance = currentCalcResultNSR.distance;\r\n horizontalDistance = currentCalcResultNSR.distance;\r\n\r\n var currentFloor = 1;\r\n var currentHeight = currentFloor * heightPerFloor;\r\n while (currentHeight <= currentlBuildingHeight) {\r\n var verticalDistance = currentHeight;\r\n var slantDistance = Math.pow(Math.pow(currentHorDistance, 2) + Math.pow(verticalDistance, 2), 0.5);\r\n var hemisphericalPropagation = -1 * (20 * Math.log10(slantDistance) + 8);\r\n var facadeCorrection = 3;\r\n var totalCNLMitigated =\r\n currentSWL + hemisphericalPropagation + facadeCorrection > 0 ? currentSWL + hemisphericalPropagation + facadeCorrection : 0;\r\n\r\n var barrierCNLPerFloor = new CustDictionary(currentZonetaskorcombined, currentFloor, totalCNLMitigated);\r\n cnlPerFloor.push(barrierCNLPerFloor);\r\n\r\n currentFloor = currentFloor + 1;\r\n currentHeight = currentFloor * heightPerFloor;\r\n }\r\n } else {\r\n var currentCNL = currentCalcResultNSR.cnl;\r\n var nonBarrierFixedCNL = new CustDictionary(currentZonetaskorcombined, null, currentCNL);\r\n nonBarrierCNL.push(nonBarrierFixedCNL);\r\n }\r\n }\r\n }\r\n }\r\n // console.log(\"combinedZoneTaskArr\")\r\n // console.log(combinedZoneTaskArr)\r\n // console.log(\"barrieredZoneTaskArr\")\r\n // console.log(barrieredZoneTaskArr)\r\n // console.log(\"nonBarrierCNL\")\r\n // console.log(nonBarrierCNL)\r\n\r\n //check floor by floor\r\n var currentFloor = 1;\r\n var currentHeight = currentFloor * heightPerFloor;\r\n var greenFound = false;\r\n while (currentHeight <= currentlBuildingHeight) {\r\n var thisFloorCNLs = [];\r\n\r\n //check the barriered activities first\r\n for (let i = 0; i < barrieredZoneTaskArr.length; i++) {\r\n var zoneTaskObj = barrieredZoneTaskArr[i];\r\n var currentZoneTask = zoneTaskObj.key;\r\n\r\n for (let j = 0; j < cnlPerFloor.length; j++) {\r\n var cnlPerFloorObj = cnlPerFloor[j];\r\n if (cnlPerFloorObj.key === currentZoneTask && cnlPerFloorObj.item === currentFloor) {\r\n var thisFloorCNL = new CustDictionary(currentZoneTask, null, cnlPerFloorObj.remark);\r\n thisFloorCNLs.push(thisFloorCNL);\r\n }\r\n }\r\n }\r\n\r\n // add the non barriered activities\r\n for (let i = 0; i < nonBarrierCNL.length; i++) {\r\n var thisFloorCNL = new CustDictionary(nonBarrierCNL[i].key, null, nonBarrierCNL[i].remark);\r\n thisFloorCNLs.push(thisFloorCNL);\r\n }\r\n\r\n // add the combination\r\n var cnlsToCombine = [];\r\n for (let i = 0; i < combinedZoneTaskArr.length; i++) {\r\n var currentCombination = combinedZoneTaskArr[i];\r\n var combinations = currentCombination.key.split(\"+\");\r\n\r\n for (let j = 0; j < combinations.length; j++) {\r\n var currentZoneTask = combinations[j];\r\n\r\n for (let k = 0; k < thisFloorCNLs.length; k++) {\r\n var thisFloorObj = thisFloorCNLs[k];\r\n if (thisFloorObj.key === currentZoneTask) {\r\n var theCNL = thisFloorObj.remark;\r\n cnlsToCombine.push(theCNL);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n var thisCombinedCNL = getCombinedNoiseLevel(cnlsToCombine);\r\n var thisFloorCNL = new CustDictionary(currentCombination, null, thisCombinedCNL);\r\n thisFloorCNLs.push(thisFloorCNL);\r\n }\r\n\r\n // get the max CNL\r\n var maxCNL = 0;\r\n for (let i = 0; i < thisFloorCNLs.length; i++) {\r\n var aThisFloorCNL = thisFloorCNLs[i];\r\n var aCNL = aThisFloorCNL.remark;\r\n if (maxCNL < aCNL) {\r\n maxCNL = aCNL;\r\n }\r\n }\r\n\r\n //compare this floor's cnl with currentNoiseCriteria\r\n if (maxCNL <= currentNoiseCriteria) {\r\n greenFound = true;\r\n break;\r\n }\r\n\r\n currentFloor = currentFloor + 1;\r\n currentHeight = currentFloor * heightPerFloor;\r\n }\r\n if (!greenFound) {\r\n currentFloor = currentlBuildingTotalFloor;\r\n currentHeight = currentFloor * heightPerFloor;\r\n }\r\n\r\n //calculate barrier height\r\n var barrierDistFromEqp = 3; // barrier located fixed distance from equipment\r\n var defaultEquipmentBaseHeight = 1; // 1 meter from ground;\r\n var maxHeight = 7; // max barrier height = 7 meter\r\n var barHeight = (currentHeight * barrierDistFromEqp) / horizontalDistance + defaultEquipmentBaseHeight;\r\n if (barHeight > maxHeight) {\r\n barHeight = maxHeight;\r\n }\r\n\r\n //save back to calculationResultNSRArray\r\n for (let i = 0; i < calculationResultMitigatedNSRArray.length; i++) {\r\n var currentCalcResultNSR = calculationResultMitigatedNSRArray[i];\r\n\r\n var currentBuildingId = currentCalcResultNSR.buildingid;\r\n var currentIsmitigated = currentCalcResultNSR.ismitigated;\r\n if (currentIsmitigated === true && currentBuildingId === buildingIdForMitigation) {\r\n if (greenFound) {\r\n currentCalcResultNSR.lastredfloor = currentFloor - 1;\r\n } else {\r\n currentCalcResultNSR.lastredfloor = currentFloor;\r\n }\r\n currentCalcResultNSR.barrierheight = barHeight;\r\n currentCalcResultNSR.totalfloor = currentlBuildingTotalFloor;\r\n\r\n console.log(\"currentCalcResultNSR.lastredfloor\");\r\n console.log(currentCalcResultNSR.lastredfloor);\r\n console.log(\"currentCalcResultNSR.barrierheight\");\r\n console.log(currentCalcResultNSR.barrierheight);\r\n console.log(\"currentCalcResultNSR.totalfloor\");\r\n console.log(currentCalcResultNSR.totalfloor);\r\n }\r\n }\r\n}\r\n\r\nfunction saveCalculationResultDetail(projectId, calculationResultDetailArr, calculationResultNSRArr, callback) {\r\n var deleteURL = SERVER_URL2 + \"/api/CalculationResultDetail/projectid/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish delete result detail in saveCalculationDetail\");\r\n\r\n deleteURL = SERVER_URL2 + \"/api/CalculationResultNSR/projectid/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish delete result nsr in saveCalculationDetail\");\r\n\r\n saveCalculationResultDetail2(projectId, calculationResultDetailArr, calculationResultNSRArr, callback);\r\n });\r\n });\r\n}\r\n\r\nfunction saveCalculationResultDetail2(projectId, calculationResultDetailArr, calculationResultNSRArr, callback) {\r\n console.log(\"saveCalculationResultDetail2\");\r\n // calculationResultGroupArr.forEach(item => {\r\n // console.log(item.buildingName);\r\n // })\r\n calculationResultGroupArray = calculationResultDetailArr; // ==> save to global so vue can get the value.\r\n console.log(\"calculationResultDetailArr\");\r\n console.log(calculationResultDetailArr);\r\n console.log(JSON.stringify(calculationResultDetailArr));\r\n var postURL = SERVER_URL2 + \"/api/CalculationResultDetail\";\r\n //var postURL = 'https://localhost:44384/CalculationResultDetail';\r\n // console.log(\"calculationResultGroupArr\");\r\n // console.log(calculationResultGroupArr);\r\n fetch(postURL, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n //mode: 'no-cors',\r\n body: JSON.stringify(calculationResultDetailArr),\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish saveCalculationResult2\");\r\n saveCalculationResultDetail3(projectId, calculationResultNSRArr, callback);\r\n\r\n //updateIsCalculated(projectId,1,callback);\r\n console.log(\"Finish saveCalculationResultDetail2\");\r\n\r\n //alert(\"Finish calculating\");\r\n });\r\n}\r\nfunction saveCalculationResultDetail3(projectId, calculationResultNSRArr, callback) {\r\n console.log(\"saveCalculationResultDetail3\");\r\n //console.log(calculationResultNSRArr);\r\n // calculationResultNSRArr.forEach(item => {\r\n // if(item.nsrname){\r\n\r\n // }\r\n // })\r\n calculationResultGroupArray = calculationResultNSRArr\r\n .filter((c) => c.cnl)\r\n .filter((c) => selectedNSRPointIds.map((id) => id.toString()).includes(c.nsrpointid.toString())); // ==> save to global so vue can get the value.\r\n\r\n calculationResultGroupArray = calculationResultGroupArray.map((c) => {\r\n if (c.highestnoiselevel === 0) {\r\n return {\r\n ...c,\r\n highestnoiselevel: c.highestnoiselevelwithneighbour,\r\n };\r\n } else if (c.highestnoiselevelwithneighbour === 0) {\r\n return {\r\n ...c,\r\n highestnoiselevelwithneighbour: c.highestnoiselevel,\r\n };\r\n } else return c;\r\n });\r\n console.log(calculationResultNSRArr.filter((c) => !c.ismitigated));\r\n var postURL = SERVER_URL2 + \"/api/CalculationResultNSR\";\r\n //var postURL = 'https://localhost:44384/CalculationResultNSR';\r\n // console.log(\"calculationResultGroupArr\");\r\n // console.log(calculationResultGroupArr);\r\n fetch(postURL, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n //mode: 'no-cors',\r\n body: JSON.stringify(calculationResultGroupArray),\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish saveCalculationResultDetail3\");\r\n updateIsCalculated(projectId, 1, callback);\r\n isCalculatedGlobal2 = 1; //added by Marvin Alex\r\n console.log(\"Finish calculating\");\r\n //alert(\"Finish calculating\");\r\n });\r\n}\r\n\r\nolMap.calculatedNoiseGroupArray = function () {\r\n return calculationResultGroupArray;\r\n};\r\n\r\nolMap.getCalculationResult = function () {\r\n return calculationResultGroupArray;\r\n};\r\n\r\nolMap.getSelectedNSRPointIds = function () {\r\n return selectedNSRPointIds;\r\n};\r\n\r\nolMap.getHighestNoiseNSRIds = function () {\r\n return highestNoiseNSRIds;\r\n};\r\n\r\nolMap.isHighestNoiseNSRMoved = function () {\r\n let result = false;\r\n highestNoiseNSRIds.forEach((id) => {\r\n if (movedNSRPointIds.includes(id)) {\r\n result = true;\r\n }\r\n });\r\n return result;\r\n};\r\nolMap.isHighestNoiseNSRDeleted = function () {\r\n let result = false;\r\n let deletedNSRPointIds = selectedDefaultBuildingFeats.map((f) => f.get(\"id\"));\r\n highestNoiseNSRIds.forEach((id) => {\r\n if (deletedNSRPointIds.includes(id)) {\r\n result = true;\r\n }\r\n });\r\n return result;\r\n};\r\n\r\nolMap.getSelectedNSRPoints = function () {\r\n return selectedNSRFeatures.map((f) => {\r\n return {\r\n id: f.get(\"id\"),\r\n nsrName: f.get(\"nsrname\"),\r\n buildingName: f.get(\"BldName_E\"),\r\n noisecriteria: f.get(\"noisecriteria\"),\r\n contributionText: f.get(\"othernoisecriteria\"),\r\n contributions: f.get(\"othernoisecriteria\")\r\n ? f\r\n .get(\"othernoisecriteria\")\r\n .split(\"#\")\r\n .map((o) => {\r\n return { contributionText: o };\r\n })\r\n : [],\r\n feature: f,\r\n };\r\n });\r\n};\r\n\r\nolMap.setSelectedNSRPointsIDState = function () {\r\n oldSelectedNSRPointIds = selectedNSRPointIds;\r\n console.log(oldSelectedNSRPointIds);\r\n};\r\n\r\nolMap.getApprovedProjectIds = function () {\r\n return approvedProjectIDs;\r\n};\r\n\r\nolMap.getMapCanvas = function () {\r\n return map?.getTargetElement().querySelectorAll(\".ol-layer canvas\");\r\n};\r\n\r\nolMap.zoomToCurrentBuffer = function (projectid, callback) {\r\n vecSource14.clear();\r\n zoomToCurrentBuffer(projectid, callback);\r\n};\r\n\r\nfunction CalculatedValues(dateGroup, tasks, totalCNL) {\r\n this.dateGroup = dateGroup;\r\n this.tasks = tasks;\r\n this.totalCNL = totalCNL;\r\n}\r\n\r\nfunction CalculatedValuesPopup(ismitigated, zonetask, totalCNL) {\r\n this.ismitigated = ismitigated;\r\n this.zonetask = zonetask;\r\n this.totalCNL = totalCNL;\r\n}\r\n\r\nfunction CalculationResultGroup(\r\n id,\r\n projectId,\r\n startDate,\r\n endDate,\r\n totalCnl,\r\n buildingId,\r\n noiseCriteria,\r\n buildingName,\r\n totalcnlalone,\r\n approvedprojectid,\r\n approvedprojectidcnl,\r\n maxExclusiveGroup\r\n) {\r\n this.id = id;\r\n this.projectId = projectId;\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n this.totalcnl = totalCnl;\r\n this.buildingid = buildingId;\r\n this.noiseCriteria = noiseCriteria;\r\n this.buildingName = buildingName;\r\n this.totalcnlalone = totalcnlalone;\r\n this.approvedprojectid = approvedprojectid;\r\n this.approvedprojectidcnl = approvedprojectidcnl;\r\n this.maxExclusiveGroup = maxExclusiveGroup;\r\n this.lastredfloor = -1;\r\n this.barrierheight = -1;\r\n this.totalfloor = -1;\r\n}\r\n\r\nfunction CalculationResultDetail(\r\n id,\r\n projectid,\r\n ismitigated,\r\n zoneid,\r\n taskid,\r\n exclusivegroup,\r\n startdate,\r\n enddate,\r\n pmeid,\r\n pmename,\r\n pmeref,\r\n swl,\r\n timepercent,\r\n timecorrection,\r\n qty,\r\n totalswl,\r\n mitigationmeasure,\r\n mitigationeffect,\r\n mitigatedswl,\r\n groupswl,\r\n highestswl\r\n) {\r\n this.id = id;\r\n this.projectid = projectid;\r\n this.ismitigated = ismitigated;\r\n this.zoneid = zoneid;\r\n this.taskid = taskid;\r\n this.exclusivegroup = exclusivegroup;\r\n this.startDate = startdate;\r\n this.endDate = enddate;\r\n this.pmeid = pmeid;\r\n this.pmename = pmename;\r\n this.pmeref = pmeref;\r\n this.swl = swl;\r\n this.timepercent = timepercent;\r\n this.timecorrection = timecorrection;\r\n this.qty = qty;\r\n this.totalswl = totalswl;\r\n this.mitigationmeasure = mitigationmeasure;\r\n this.mitigationeffect = mitigationeffect;\r\n this.mitigatedswl = mitigatedswl;\r\n this.groupswl = groupswl;\r\n this.highestswl = highestswl;\r\n}\r\n\r\nfunction CalculationResultNSR(\r\n id,\r\n projectid,\r\n ismitigated,\r\n buildingid,\r\n bldname_e,\r\n nsrpointid,\r\n nsrname,\r\n zonetaskorcombined,\r\n excgroups,\r\n highestswl,\r\n distance,\r\n distancecorr,\r\n facadecorr,\r\n spl,\r\n totalspl,\r\n cnl,\r\n noisecriteria,\r\n approvedprojectid,\r\n highestnoiselevel,\r\n highestnoiselevelwithneighbour,\r\n totalFloor\r\n) {\r\n this.id = id;\r\n this.projectid = projectid;\r\n this.ismitigated = ismitigated;\r\n this.buildingid = buildingid;\r\n this.buildingName = bldname_e;\r\n this.nsrpointid = nsrpointid;\r\n this.nsrname = nsrname;\r\n this.zonetaskorcombined = zonetaskorcombined;\r\n this.excgroups = excgroups;\r\n this.highestswl = highestswl;\r\n this.distance = distance;\r\n this.distancecorr = distancecorr;\r\n this.facadecorr = facadecorr;\r\n this.spl = spl;\r\n this.totalspl = totalspl;\r\n this.cnl = cnl;\r\n this.noisecriteria = noisecriteria;\r\n this.approvedProjectId = approvedprojectid;\r\n this.lastredfloor = -1;\r\n this.barrierheight = -1;\r\n this.totalfloor = totalFloor;\r\n this.highestnoiselevel = highestnoiselevel;\r\n this.highestnoiselevelwithneighbour = highestnoiselevelwithneighbour;\r\n this.othernoisecriteriaexceed = \"\";\r\n this.othernoisecriteriaexceedmax = \"\";\r\n}\r\n\r\nfunction ProjectIsCalculated(projectId, isCalculated) {\r\n this.id = projectId;\r\n this.iscalculated = isCalculated;\r\n}\r\n\r\nfunction ProjectSelectedNSR(projectId, selectedNSR) {\r\n this.id = projectId;\r\n this.selectednsr = selectedNSR;\r\n}\r\n\r\nfunction CustDictionary(key, item, remark) {\r\n this.key = key;\r\n this.item = item;\r\n this.remark = remark;\r\n}\r\n\r\nolMap.getNSRNameAndBuildingNameFromNSRPointIDAndBuildingId = function (nsrPointId, buildingId) {\r\n var thisLayer = getLayerByTitle(\"testLayer\");\r\n var allFeatures = thisLayer.getSource().getFeatures();\r\n var nsrName = \"\";\r\n var buildingName = \"\";\r\n var returnValues = [];\r\n for (let i = 0; i < allFeatures.length; i++) {\r\n var currentFeat = allFeatures[i];\r\n var currentFeatId = currentFeat.get(\"id\");\r\n var currentBuildingId = currentFeat.get(\"buildingid\");\r\n var currentBuildingName = currentFeat.get(\"BldName_E\");\r\n var currentNSRName = currentFeat.get(\"nsrname\");\r\n\r\n if (currentFeatId === nsrPointId && currentBuildingId === buildingId) {\r\n nsrName = currentNSRName;\r\n buildingName = currentBuildingName;\r\n returnValues.push(nsrName);\r\n returnValues.push(buildingName);\r\n break;\r\n }\r\n }\r\n return returnValues;\r\n};\r\n\r\nolMap.changeNSRPointColorForSelection = function (update, callback) {\r\n var thisLayer = getLayerByTitle(\"testLayer\");\r\n // get all nsr point features\r\n var allCalculatedNSRPointFeats = thisLayer.getSource().getFeatures();\r\n\r\n // check whether using mitigated cnl or unmitigated cnl\r\n var isMitgated = false;\r\n // console.log(\"allCalculatedNSRPointFeats\");\r\n // console.log(allCalculatedNSRPointFeats);\r\n for (let i = 0; i < allCalculatedNSRPointFeats.length; i++) {\r\n var curFeat = allCalculatedNSRPointFeats[i];\r\n if (curFeat.get(\"totalcnl\") !== curFeat.get(\"totalcnlmit\")) {\r\n isMitgated = true;\r\n }\r\n }\r\n //get sorted array of colored-calculated-NSR Points\r\n var sortedPointArray = [];\r\n // var sortedPointArray = allCalculatedNSRPointFeats\r\n // .filter((p) => p.get(\"noisecriteria\"))\r\n // .sort((a, b) =>\r\n // isMitgated\r\n // ? b.get(\"totalcnlmit\") -\r\n // b.get(\"noisecriteria\") -\r\n // (a.get(\"totalcnlmit\") - a.get(\"noisecriteria\"))\r\n // : b.get(\"totalcnl\") -\r\n // b.get(\"noisecriteria\") -\r\n // (a.get(\"totalcnl\") - a.get(\"noisecriteria\"))\r\n // );\r\n for (let i = 0; i < allCalculatedNSRPointFeats.length; i++) {\r\n var pointFeatToProcess = allCalculatedNSRPointFeats[i];\r\n var pointFeatToProcessNoiseCrit = pointFeatToProcess.get(\"noisecriteria\");\r\n var pointFeatToProcessValToCompare = 0;\r\n if (isMitgated) {\r\n pointFeatToProcessValToCompare = pointFeatToProcess.get(\"totalcnlmit\");\r\n } else {\r\n pointFeatToProcessValToCompare = pointFeatToProcess.get(\"totalcnl\");\r\n }\r\n pointFeatToProcessValToCompare = pointFeatToProcessValToCompare - pointFeatToProcessNoiseCrit;\r\n\r\n var alreadyInserted = false;\r\n for (let j = 0; j < sortedPointArray.length; j++) {\r\n var curCheckFeat = sortedPointArray[j];\r\n var curCheckFeatNoiseCrit = curCheckFeat.get(\"noisecriteria\");\r\n var curCheckFeatValToCompare = 0;\r\n if (isMitgated) {\r\n curCheckFeatValToCompare = curCheckFeat.get(\"totalcnlmit\");\r\n } else {\r\n curCheckFeatValToCompare = curCheckFeat.get(\"totalcnl\");\r\n }\r\n curCheckFeatValToCompare = curCheckFeatValToCompare - curCheckFeatNoiseCrit;\r\n\r\n if (pointFeatToProcessValToCompare >= curCheckFeatValToCompare) {\r\n alreadyInserted = true;\r\n sortedPointArray.splice(j, 0, pointFeatToProcess);\r\n break;\r\n }\r\n }\r\n if (sortedPointArray.length === 0 || !alreadyInserted) {\r\n sortedPointArray.push(pointFeatToProcess);\r\n }\r\n }\r\n // color the points\r\n console.log(\"sortedPointArray\");\r\n console.log(sortedPointArray);\r\n let accommodationFound = false;\r\n let educationalFound = false;\r\n highestNoiseNSRIds = [];\r\n // if (selectedNSRPointIds.filter((p) => p).length === 0) {\r\n let sortByNoise = [...sortedPointArray].sort((a, b) => b.get(\"totalcnl\") - a.get(\"totalcnl\"));\r\n for (var i = 0; i < sortByNoise.length; i++) {\r\n let f = sortByNoise[i];\r\n let currentNoiseCriteria = f.get(\"noisecriteria\");\r\n let buildingId = f.get(\"buildingid\"); // default building nsr id starts from 1000001\r\n let id = f.get(\"id\");\r\n if (!accommodationFound && currentNoiseCriteria == 75 && buildingId > 1000000) {\r\n if (!selectedNSRPointIds.includes(id)) {\r\n selectedNSRPointIds.push(id);\r\n }\r\n highestNoiseNSRIds.push(id);\r\n accommodationFound = true;\r\n }\r\n if (!educationalFound && currentNoiseCriteria == 70 && buildingId > 1000000) {\r\n if (!selectedNSRPointIds.includes(id)) {\r\n selectedNSRPointIds.push(id);\r\n }\r\n highestNoiseNSRIds.push(id);\r\n educationalFound = true;\r\n }\r\n }\r\n // }\r\n nsrFeaturesToAdd.forEach((f) => {\r\n if (!selectedNSRPointIds.includes(f.get(\"id\"))) {\r\n selectedNSRPointIds.push(f.get(\"id\"));\r\n }\r\n });\r\n nsrFeaturesToAdd = [];\r\n for (let i = 0; i < sortedPointArray.length; i++) {\r\n var curCheckFeat = sortedPointArray[i];\r\n var currentNoiseCriteria = curCheckFeat.get(\"noisecriteria\");\r\n var maxMitigatedCNL = curCheckFeat.get(\"totalcnlmit\");\r\n var maxOriginalCNL = curCheckFeat.get(\"totalcnl\");\r\n\r\n if (isMitgated) {\r\n if (i >= 20) {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxMitigatedCNL)) {\r\n // if the result is red\r\n curCheckFeat.setStyle(redNSRPointMitStyleFunctionWithNSRName);\r\n } else {\r\n curCheckFeat.setStyle(greenNSRPointWithWhiteStrokeStyleFunctionWithNSRName);\r\n }\r\n } else {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxMitigatedCNL)) {\r\n // if the result is red\r\n curCheckFeat.setStyle(redNSRPointMitStyle20MaxFunctionWithNSRName);\r\n } else {\r\n curCheckFeat.setStyle(greenNSRPointStyle20MaxFunctionWithNSRName);\r\n }\r\n }\r\n } else {\r\n if (i >= 20) {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxOriginalCNL)) {\r\n // if the result is red\r\n curCheckFeat.setStyle(redNSRPointUnmitStyleFunctionWithNSRName);\r\n } else {\r\n curCheckFeat.setStyle(greenNSRPointWithWhiteStrokeStyleFunctionWithNSRName);\r\n }\r\n } else {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxOriginalCNL)) {\r\n // if the result is red\r\n curCheckFeat.setStyle(redNSRPointUnmitStyle20MaxFunctionWithNSRName);\r\n } else {\r\n curCheckFeat.setStyle(greenNSRPointStyle20MaxFunctionWithNSRName);\r\n }\r\n }\r\n }\r\n }\r\n\r\n initiateSelectNSRPoints(update);\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n};\r\n\r\nfunction initiateSelectNSRPoints(update) {\r\n // set default nsrname\r\n var thisLayer = getLayerByTitle(\"testLayer\");\r\n var allFeats = thisLayer.getSource().getFeatures();\r\n\r\n if (nsrSelect) {\r\n map.removeInteraction(nsrSelect);\r\n }\r\n if (dragBox) {\r\n map.removeInteraction(dragBox);\r\n }\r\n // console.log(\"check initial selectedNSRFeatures\");\r\n // console.log(selectedNSRFeatures);\r\n // a normal select interaction to handle click\r\n // nsrSelect = new Select({\r\n // style: function (feature) {\r\n // var theVal = \"Id: \" + feature.get(\"id\").toString();\r\n // var currentNSRName = feature.get(\"nsrname\");\r\n // if (currentNSRName) {\r\n // theVal = currentNSRName;\r\n // }\r\n\r\n // selectedNSRStyle.getText().setText(theVal.toString());\r\n\r\n // return selectedNSRStyle;\r\n // },\r\n // layers: [],\r\n // });\r\n // map.addInteraction(nsrSelect);\r\n\r\n // selectedNSRFeatures = nsrSelect.getFeatures();\r\n\r\n //get the table node\r\n // var nsrTableNode = document.getElementById(\"selectionViewSelectedNSRTable\");\r\n\r\n //reset table\r\n // while (nsrTableNode.hasChildNodes()) {\r\n // nsrTableNode.removeChild(nsrTableNode.lastChild);\r\n // }\r\n\r\n console.log(\"projectObj from select nsr\");\r\n console.log(projectObj);\r\n console.log(projectObj.commencementDate);\r\n console.log(projectObj.completionDate);\r\n // check if it has a stored selectedNSR\r\n if (selectedNSRPointIds.length > 0) {\r\n var allFeatures = thisLayer.getSource().getFeatures();\r\n console.log(\"allFeatures\");\r\n console.log(allFeatures);\r\n\r\n allFeatures.forEach((f) => {\r\n if (selectedNSRPointIds.map((id) => parseInt(id)).includes(f.get(\"id\"))) {\r\n if (selectedNSRFeatures.filter((f1) => f1.get(\"id\") == f.get(\"id\")).length == 0) {\r\n selectedNSRFeatures.push(f);\r\n f.setStyle(selectednsrPointStyleFunction);\r\n } else {\r\n f.setStyle(selectednsrPointStyleFunction);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // a DragBox interaction used to select features by drawing boxes\r\n dragBox = new DragBox({\r\n condition: platformModifierKeyOnly,\r\n });\r\n map.addInteraction(dragBox);\r\n\r\n let nsrNames = [...new Set(selectedNSRFeatures.map((f) => f.get(\"nsrname\")))];\r\n\r\n for (let m = 0; m < selectedNSRFeatures.length; m++) {\r\n var currentFeat = selectedNSRFeatures[m];\r\n var currentFeatId = currentFeat.get(\"id\");\r\n var currentNSRName = currentFeat.get(\"nsrname\");\r\n var currentBuildingName = currentFeat.get(\"BldName_E\");\r\n var currentNoiseCriteria = currentFeat.get(\"noisecriteria\");\r\n var currentOtherNoiseCriteria = currentFeat.get(\"othernoisecriteria\");\r\n var otherNoiseCriteriaArr = [];\r\n if (currentOtherNoiseCriteria) {\r\n otherNoiseCriteriaArr = currentOtherNoiseCriteria.split(\"#\");\r\n }\r\n if (!currentNSRName || currentNSRName === \"\" || nsrNames.filter((n) => n == currentNSRName).length > 1) {\r\n let index = m;\r\n while (nsrNames.includes(`N${index + 1}`)) {\r\n index++;\r\n }\r\n nsrNames.push(`N${index + 1}`);\r\n console.log(\"nsrname\", `N${index + 1}`);\r\n currentFeat.set(\"nsrname\", `N${index + 1}`);\r\n currentFeat.setStyle(selectednsrPointStyleFunction);\r\n }\r\n }\r\n dragBox.on(\"boxstart\", function () {\r\n console.log(\"boxstart\");\r\n });\r\n dragBox.on(\"boxend\", function () {\r\n const extent = dragBox.getGeometry().getExtent();\r\n const boxFeatures = thisLayer\r\n .getSource()\r\n .getFeaturesInExtent(extent)\r\n .filter((feature) => feature.getGeometry().intersectsExtent(extent));\r\n\r\n // features that intersect the box geometry are added to the\r\n // collection of selected features\r\n\r\n // if the view is not obliquely rotated the box geometry and\r\n // its extent are equalivalent so intersecting features can\r\n // be added directly to the collection\r\n const rotation = map.getView().getRotation();\r\n const oblique = rotation % (Math.PI / 2) !== 0;\r\n\r\n // when the view is obliquely rotated the box extent will\r\n // exceed its geometry so both the box and the candidate\r\n // feature geometries are rotated around a common anchor\r\n // to confirm that, with the box geometry aligned with its\r\n // extent, the geometries intersect\r\n console.log(\"nsrSelectMode\");\r\n console.log(nsrSelectMode);\r\n\r\n if (oblique) {\r\n const anchor = [0, 0];\r\n const geometry = dragBox.getGeometry().clone();\r\n geometry.rotate(-rotation, anchor);\r\n const extent = geometry.getExtent();\r\n boxFeatures.forEach(function (feature) {\r\n const geometry = feature.getGeometry().clone();\r\n geometry.rotate(-rotation, anchor);\r\n if (geometry.intersectsExtent(extent)) {\r\n if (nsrSelectMode === 1) {\r\n selectedNSRFeatures.push(feature);\r\n } else {\r\n for (let i = 0; i < selectedNSRFeatures.length; i++) {\r\n var curFeat = selectedNSRFeatures[i];\r\n if (curFeat == feature) {\r\n console.log(\"nsrname\", null);\r\n feature.set(\"nsrname\", null);\r\n curFeat.set(\"nsrname\", null);\r\n feature.setStyle(selectionStyleFunction);\r\n curFeat.setStyle(selectionStyleFunction);\r\n deselectedNSRFeatures.push(feature);\r\n deselectedNSRFeatures.push(curFeat);\r\n selectedNSRFeatures.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n if (nsrSelectMode === 1) {\r\n boxFeatures\r\n .filter((f) => !selectedNSRFeatures.map((f) => f.get(\"id\")).includes(f.get(\"id\")))\r\n .forEach((f) => {\r\n selectedNSRFeatures.push(f);\r\n f.setStyle(selectednsrPointStyleFunction);\r\n // selectedNSRPointIds.push(f.get(\"id\"));\r\n });\r\n //console.log(\"nsrSelectMode === 1\");\r\n } else {\r\n // console.log(\"selectedNSRFeatures\");\r\n // console.log(selectedNSRFeatures);\r\n // console.log(\"boxFeatures\");\r\n // console.log(boxFeatures);\r\n for (let i = 0; i < selectedNSRFeatures.length; i++) {\r\n var curSelectedFeat = selectedNSRFeatures[i];\r\n for (let j = 0; j < boxFeatures.length; j++) {\r\n var featToCheck = boxFeatures[j];\r\n if (curSelectedFeat.get(\"id\") == featToCheck.get(\"id\")) {\r\n console.log(\"nsrname\", null);\r\n featToCheck.set(\"nsrname\", null);\r\n curSelectedFeat.set(\"nsrname\", null);\r\n featToCheck.setStyle(selectionStyleFunction);\r\n curSelectedFeat.setStyle(selectionStyleFunction);\r\n deselectedNSRFeatures.push(featToCheck);\r\n deselectedNSRFeatures.push(curSelectedFeat);\r\n selectedNSRFeatures.splice(i, 1);\r\n i--;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n console.log(\"selectedNSRFeatures\");\r\n console.log(selectedNSRFeatures);\r\n\r\n //update the nsr table\r\n //reset table\r\n // while (nsrTableNode.hasChildNodes()) {\r\n // nsrTableNode.removeChild(nsrTableNode.lastChild);\r\n // }\r\n\r\n let nsrNames = selectedNSRFeatures.map((f) => f.get(\"nsrname\"));\r\n\r\n for (let m = 0; m < selectedNSRFeatures.length; m++) {\r\n var currentFeat = selectedNSRFeatures[m];\r\n var currentFeatId = currentFeat.get(\"id\");\r\n var currentNSRName = currentFeat.get(\"nsrname\");\r\n var currentBuildingName = currentFeat.get(\"BldName_E\");\r\n var currentNoiseCriteria = currentFeat.get(\"noisecriteria\");\r\n var currentOtherNoiseCriteria = currentFeat.get(\"othernoisecriteria\");\r\n var otherNoiseCriteriaArr = [];\r\n if (currentOtherNoiseCriteria) {\r\n otherNoiseCriteriaArr = currentOtherNoiseCriteria.split(\"#\");\r\n }\r\n if (!currentNSRName || currentNSRName === \"\" || nsrNames.filter((n) => n == currentNSRName).length > 1) {\r\n let index = m;\r\n while (nsrNames.includes(`N${index + 1}`)) {\r\n index++;\r\n }\r\n nsrNames.push(`N${index + 1}`);\r\n console.log(\"nsrname\", `N${index + 1}`);\r\n currentFeat.set(\"nsrname\", `N${index + 1}`);\r\n currentFeat.setStyle(selectednsrPointStyleFunction);\r\n }\r\n }\r\n if (update) {\r\n update();\r\n }\r\n });\r\n}\r\n\r\nolMap.changeNSRPointColorBackAfterSelection = function (selectedNSRData, save, callback, backstate) {\r\n console.log(\"inside changeNSRPointColorBackAfterSelection\");\r\n\r\n if (backstate) {\r\n selectedNSRPointIds = oldSelectedNSRPointIds;\r\n }\r\n\r\n if (nsrSelect) {\r\n map.removeInteraction(nsrSelect);\r\n }\r\n if (dragBox) {\r\n map.removeInteraction(dragBox);\r\n }\r\n\r\n var thisLayer = getLayerByTitle(\"testLayer\");\r\n // get all nsr point features\r\n var allCalculatedNSRPointFeats = thisLayer.getSource().getFeatures();\r\n\r\n // check whether using mitigated cnl or unmitigated cnl\r\n var isMitgated = false;\r\n for (let i = 0; i < allCalculatedNSRPointFeats.length; i++) {\r\n var curFeat = allCalculatedNSRPointFeats[i];\r\n if (curFeat.get(\"totalcnl\") !== curFeat.get(\"totalcnlmit\") && curFeat.get(\"totalcnlmit\") !== 0) {\r\n isMitgated = true;\r\n }\r\n }\r\n //get sorted array of colored-calculated-NSR Points\r\n var sortedPointArray = [];\r\n for (let i = 0; i < allCalculatedNSRPointFeats.length; i++) {\r\n var pointFeatToProcess = allCalculatedNSRPointFeats[i];\r\n var pointFeatToProcessNoiseCrit = pointFeatToProcess.get(\"noisecriteria\");\r\n var pointFeatToProcessValToCompare = 0;\r\n if (isMitgated) {\r\n pointFeatToProcessValToCompare = pointFeatToProcess.get(\"totalcnlmit\");\r\n } else {\r\n pointFeatToProcessValToCompare = pointFeatToProcess.get(\"totalcnl\");\r\n }\r\n pointFeatToProcessValToCompare = pointFeatToProcessValToCompare - pointFeatToProcessNoiseCrit;\r\n\r\n var alreadyInserted = false;\r\n for (let j = 0; j < sortedPointArray.length; j++) {\r\n var curCheckFeat = sortedPointArray[j];\r\n var curCheckFeatNoiseCrit = curCheckFeat.get(\"noisecriteria\");\r\n var curCheckFeatValToCompare = 0;\r\n if (isMitgated) {\r\n curCheckFeatValToCompare = curCheckFeat.get(\"totalcnlmit\");\r\n } else {\r\n curCheckFeatValToCompare = curCheckFeat.get(\"totalcnl\");\r\n }\r\n curCheckFeatValToCompare = curCheckFeatValToCompare - curCheckFeatNoiseCrit;\r\n\r\n if (pointFeatToProcessValToCompare >= curCheckFeatValToCompare) {\r\n sortedPointArray.splice(j, 0, pointFeatToProcess);\r\n alreadyInserted = true;\r\n break;\r\n }\r\n }\r\n if (sortedPointArray.length === 0 || !alreadyInserted) {\r\n sortedPointArray.push(pointFeatToProcess);\r\n }\r\n }\r\n // color the points\r\n for (let i = 0; i < sortedPointArray.length; i++) {\r\n var nsrPointFeat = sortedPointArray[i];\r\n var currentNoiseCriteria = nsrPointFeat.get(\"noisecriteria\");\r\n var maxMitigatedCNL = nsrPointFeat.get(\"totalcnlmit\");\r\n var maxOriginalCNL = nsrPointFeat.get(\"totalcnl\");\r\n var currentPointId = nsrPointFeat.get(\"id\");\r\n\r\n if (isMitgated) {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxMitigatedCNL)) {\r\n // if the result is red\r\n nsrPointFeat.setStyle(redNSRPointMitStyleFunctionWithNSRName);\r\n } else {\r\n nsrPointFeat.setStyle(greenNSRPointStyleFunctionWithNSRName);\r\n }\r\n } else {\r\n if (Math.round(currentNoiseCriteria) < Math.round(maxOriginalCNL)) {\r\n // if the result is red\r\n nsrPointFeat.setStyle(redNSRPointUnmitStyleFunctionWithNSRName);\r\n } else {\r\n nsrPointFeat.setStyle(greenNSRPointStyleFunctionWithNSRName);\r\n }\r\n }\r\n }\r\n\r\n //obtaining the nsr points parameters for db storing\r\n var nsrPointIds = [];\r\n var nsrPointBuildingIds = [];\r\n for (let i = 0; i < selectedNSRFeatures.length; i++) {\r\n var curSelectedFeat = selectedNSRFeatures[i];\r\n var curId = curSelectedFeat.get(\"id\");\r\n var curBuildingId = curSelectedFeat.get(\"buildingid\");\r\n nsrPointIds.push(curId);\r\n nsrPointBuildingIds.push(curBuildingId);\r\n\r\n let curNSRData = selectedNSRData.filter((d) => d.id == curId);\r\n\r\n if (curNSRData.length == 0) continue;\r\n\r\n curNSRData = curNSRData[0];\r\n\r\n // set nsr names\r\n console.log(\"nsrname\", curNSRData.nsrName);\r\n curSelectedFeat.set(\"nsrname\", curNSRData.nsrName);\r\n curSelectedFeat.set(\"noisecriteria\", curNSRData.noisecriteria);\r\n\r\n // set the building names\r\n curSelectedFeat.set(\"BldName_E\", curNSRData.buildingName);\r\n let otherCritArr = curNSRData.contributions;\r\n let combinedStringOtherCrit = otherCritArr.map((c) => c.contributionText).join(\"#\");\r\n //set the other noise criteria\r\n curSelectedFeat.set(\"othernoisecriteria\", combinedStringOtherCrit);\r\n\r\n // curSelectedFeat.set(\"othernoisecriteria\", combinedStringOtherCrit);\r\n // } else {\r\n // curSelectedFeat.set(\"othernoisecriteria\", \"\");\r\n // }\r\n\r\n //calculate neighbor site contribution\r\n let detailInJSONString = curSelectedFeat.get(\"calcvalues\");\r\n let calcvalues = JSON.parse(detailInJSONString);\r\n let totalcnlwithneighbor = curSelectedFeat.get(\"totalcnl\");\r\n if (combinedStringOtherCrit != \"\") {\r\n calcvalues.forEach((c) => {\r\n c.startDate = getStartDateFromZoneTask(c.zonetask);\r\n c.endDate = getEndDateFromZoneTask(c.zonetask);\r\n c.totalCNLInNeighbor = c.totalCNL;\r\n });\r\n for (let j = 0; j < otherCritArr.length; j++) {\r\n let start = Date.parse(otherCritArr[j].startDate);\r\n let end = Date.parse(otherCritArr[j].endDate);\r\n let contribution = parseFloat(otherCritArr[j].contribution);\r\n calcvalues.forEach((c) => {\r\n if (isTwoDatesOverlaped(start, end, c.startDate, c.endDate)) {\r\n c.totalCNLInNeighbor = getCombinedNoiseLevel([c.totalCNLInNeighbor, contribution]);\r\n totalcnlwithneighbor = c.totalCNLInNeighbor > totalcnlwithneighbor ? c.totalCNLInNeighbor : totalcnlwithneighbor;\r\n }\r\n });\r\n }\r\n }\r\n curSelectedFeat.set(\"totalcnlwithneighbor\", totalcnlwithneighbor);\r\n }\r\n if (!backstate) {\r\n selectedNSRPointIds = nsrPointIds; // store it to global var;\r\n }\r\n for (let i = 0; i < sortedPointArray.length; i++) {\r\n var nsrPointFeat = sortedPointArray[i];\r\n var currentPointId = nsrPointFeat.get(\"id\");\r\n\r\n if (selectedNSRPointIds.length > 0) {\r\n var isThisNSRSelected = false;\r\n var isAllEmpty = true;\r\n for (let j = 0; j < selectedNSRPointIds.length; j++) {\r\n var selNSRId = selectedNSRPointIds[j];\r\n if (selNSRId !== \"\") {\r\n isAllEmpty = false;\r\n // continue;\r\n }\r\n if (parseInt(currentPointId) === parseInt(selNSRId)) {\r\n isThisNSRSelected = true;\r\n break;\r\n }\r\n }\r\n if (!isThisNSRSelected && !isAllEmpty) {\r\n nsrPointFeat.setStyle(unselectedNSRPointStyle);\r\n }\r\n }\r\n }\r\n var selNSRVal = nsrPointIds.join() + \";\" + nsrPointBuildingIds.join();\r\n if (selNSRVal === \";\") {\r\n selNSRVal = \"\";\r\n }\r\n\r\n if (save) {\r\n updateSelectedNSR(currentProjectID, selNSRVal, function () {\r\n console.log(\"updateSelectedNSRNames\");\r\n updateSelectedNSRNames(function () {\r\n updateDeselectedNSRNames(function () {\r\n console.log(\"calculateNoise1\");\r\n calculateNoise1(currentProjectID, callback);\r\n });\r\n });\r\n });\r\n }\r\n\r\n //set the unselected style\r\n // console.log(\"sortedPointArray\");\r\n // console.log(sortedPointArray);\r\n if (callback && !save) {\r\n callback();\r\n }\r\n};\r\n\r\nolMap.clearNSRPointColorBackSelection = function (updateData) {\r\n selectedNSRFeatures.forEach((f) => {\r\n console.log(\"nsrname\", null);\r\n f.set(\"nsrname\", null);\r\n deselectedNSRFeatures.push(f);\r\n f.setStyle(selectionStyleFunction);\r\n });\r\n selectedNSRFeatures = [];\r\n updateData();\r\n};\r\n\r\nolMap.changeNSRPointSelectionModeToSelect = function () {\r\n nsrSelectMode = 1;\r\n};\r\nolMap.changeNSRPointSelectionModeToDeselect = function () {\r\n nsrSelectMode = 0;\r\n};\r\n\r\nfunction updateSelectedNSR(projectId, value, callback) {\r\n var bodyObj = new ProjectSelectedNSR(projectId, value);\r\n var postURL = SERVER_URL2 + \"/api/Project/selectednsr\";\r\n //var postURL = 'https://localhost:44384/Project/selectednsr';\r\n fetch(postURL, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n //mode: 'no-cors',\r\n body: JSON.stringify(bodyObj),\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n console.log(\"Finish updateSelectedNSR into: \" + value.toString());\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n}\r\n\r\nfunction updateDeselectedNSRNames(callback) {\r\n console.log(\"inside updateDeselectedNSRNames\");\r\n console.log(\"deselectedNSRFeatures\");\r\n console.log(deselectedNSRFeatures);\r\n\r\n modifiedFeatureList = [];\r\n for (let i = 0; i < deselectedNSRFeatures.length; i++) {\r\n var aFeat = deselectedNSRFeatures[i];\r\n //var theNSRName = aFeat.get('nsrname');\r\n modifiedFeatureList.push(aFeat);\r\n }\r\n if (modifiedFeatureList.length === 0) {\r\n callback();\r\n }\r\n\r\n var task = \"update\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"projectNSRPoints\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", callback);\r\n}\r\n\r\nfunction updateSelectedNSRNames(callback) {\r\n console.log(\"inside updateSelectedNSRNames\");\r\n console.log(\"selectedNSRFeatures\");\r\n console.log(selectedNSRFeatures);\r\n\r\n modifiedFeatureList = [];\r\n for (let i = 0; i < selectedNSRFeatures.length; i++) {\r\n var aFeat = selectedNSRFeatures[i];\r\n //var theNSRName = aFeat.get('nsrname');\r\n modifiedFeatureList.push(aFeat);\r\n }\r\n if (modifiedFeatureList.length === 0) {\r\n return;\r\n }\r\n\r\n var task = \"update\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"projectNSRPoints\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", callback);\r\n}\r\n\r\nfunction getHKDateStringFromZulu(zuluDate) {\r\n var aDate = new Date(zuluDate);\r\n //aDate.setDate(aDate.getDate() + 1);\r\n return getSimpleDate(aDate);\r\n}\r\n\r\nfunction getHKDateFromZulu(zuluDate) {\r\n var aDate = new Date(zuluDate);\r\n aDate.setDate(aDate.getDate() + 1);\r\n return aDate;\r\n}\r\n\r\nfunction getSimpleDate(aDate) {\r\n let month = (aDate.getMonth() + 1).toString().padStart(2, \"0\");\r\n let day = aDate.getDate().toString().padStart(2, \"0\");\r\n let year = aDate.getFullYear();\r\n return [year, month, day].join(\"-\");\r\n}\r\n\r\nfunction openZoneCentroidPoints(projectId) {\r\n //console.log(\"Enter openZoneCentroidPoints()\")\r\n\r\n var zoneFeat;\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"zones\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", projectId),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const zonefeatures = new GeoJSON().readFeatures(json);\r\n if (zonefeatures.length > 0) {\r\n for (let i = 0; i < zonefeatures.length; i++) {\r\n zoneFeat = zonefeatures[i];\r\n var curIndex = zoneFeat.get(\"id\");\r\n var curName = zoneFeat.get(\"name\");\r\n\r\n //var centroidFeat = getCenterOfMass(zoneFeat);\r\n var centroidFeat = getSavedCenterPointByZoneID(curIndex);\r\n if (centroidFeat == null) {\r\n centroidFeat = getCenterOfMass(zoneFeat);\r\n }\r\n var tempCentroidPoint = new Point(centroidFeat.getGeometry().getCoordinates());\r\n var tempCentroidPointFeat = new Feature({\r\n geometry: tempCentroidPoint,\r\n });\r\n tempCentroidPointFeat.set(\"order\", curName.toString());\r\n vecSource3.addFeature(tempCentroidPointFeat);\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction changeActionMode(index) {\r\n isAddNSRBuildingMode = false;\r\n isRemoveNSRBuildingMode = false;\r\n isChangeNoiseLevelNSRBuildingMode = false;\r\n isChangeNoiseNSRBuildingPointMode = false;\r\n isAddNSRPointsMode = false;\r\n isRemoveNSRPointsMode = false;\r\n isChangeCentralPointMode = false;\r\n\r\n switch (index) {\r\n case 1:\r\n isAddNSRBuildingMode = true;\r\n break;\r\n case 2:\r\n isRemoveNSRBuildingMode = true;\r\n break;\r\n case 3:\r\n isChangeNoiseLevelNSRBuildingMode = true;\r\n break;\r\n case 4:\r\n isChangeNoiseNSRBuildingPointMode = true;\r\n break;\r\n case 5:\r\n isAddNSRPointsMode = true;\r\n break;\r\n case 6:\r\n isRemoveNSRPointsMode = true;\r\n break;\r\n case 7:\r\n isChangeCentralPointMode = true;\r\n break;\r\n default:\r\n }\r\n}\r\n\r\nfunction saveNotionalPoints(niotionalFeatures) {\r\n //### for testing\r\n console.log(\"enter saveNotionalPoints\");\r\n console.log(\"niotionalFeatures\");\r\n console.log(niotionalFeatures);\r\n modifiedFeatureList = [];\r\n\r\n var notPointFeat;\r\n for (let i = 0; i < niotionalFeatures.length; i++) {\r\n notPointFeat = niotionalFeatures[i];\r\n modifiedFeatureList.push(notPointFeat);\r\n }\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"notionalPoints\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", null);\r\n}\r\n\r\nfunction newProjectSaveUnregSites(projectId) {\r\n console.log(\"inside newProjectSaveUnregSites\");\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/UnregSites/projectid/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n newProjectSaveUnregSites2(projectId);\r\n });\r\n}\r\nfunction newProjectSaveSite(projectId, callback) {\r\n selectedNSRPointIds = []; //reset global variable\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/sites/projectid/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/sites2/projectid/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n newProjectSaveSite2(projectId, callback);\r\n });\r\n });\r\n}\r\n\r\nfunction newProjectSaveUnregSites2(projectId) {\r\n console.log(\"inside newProjectSaveUnregSites2\");\r\n modifiedFeatureList = [];\r\n // overlay layer for site is: vector6 = \"sitelayer\"\r\n var index = 0;\r\n var siteFeat;\r\n for (let i = 0; i < vecSource9.getFeatures().length; i++) {\r\n siteFeat = vecSource9.getFeatures()[i];\r\n siteFeat.set(\"projectid\", projectId);\r\n modifiedFeatureList.push(siteFeat);\r\n }\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"unregsites\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", newProjectSaveUnregSites3);\r\n\r\n //vecSource.clear();\r\n //vecSource6.clear();\r\n}\r\n\r\nfunction newProjectSaveSite2(projectId, callback) {\r\n modifiedFeatureList = [];\r\n globalCurrentSiteFeature = null;\r\n // overlay layer for site is: vector6 = \"sitelayer\"\r\n console.log(\"vecSource6.getFeatures()\");\r\n console.log(vecSource6.getFeatures());\r\n var index = 0;\r\n var siteFeat;\r\n for (let i = 0; i < vecSource6.getFeatures().length; i++) {\r\n siteFeat = vecSource6.getFeatures()[i];\r\n console.log(\"siteFeat.getGeometry().getType()\");\r\n console.log(siteFeat.getGeometry().getType());\r\n siteFeat.set(\"projectid\", projectId);\r\n globalCurrentSiteFeature = siteFeat;\r\n modifiedFeatureList.push(siteFeat);\r\n console.log(siteFeat);\r\n }\r\n\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"\";\r\n if (issitemultipolygon) {\r\n editLayer = \"sites2\";\r\n } else {\r\n editLayer = \"sites\";\r\n }\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", function () {\r\n newProjectSaveSite3(callback);\r\n });\r\n\r\n //vecSource.clear();\r\n //vecSource6.clear();\r\n}\r\n\r\nfunction newProjectSaveUnregSites3() {\r\n console.log(\"inside newProjectSaveUnregSites3\");\r\n var siteWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Aunregsites&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n console.log(\"Trying to load: \" + siteWFSURL + \"&srsname=EPSG:3857\");\r\n siteWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return siteWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"unregSiteWFSLayer\");\r\n thisLayer.setSource(siteWFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n newProjectSaveUnregBuffer(currentProjectID);\r\n}\r\n\r\nfunction newProjectSaveSite3(callback) {\r\n //console.log(\"currentProjectID\", currentProjectID.toString());\r\n var siteWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n console.log(\"Trying to load: \" + siteWFSURL + \"&srsname=EPSG:3857\");\r\n siteWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return siteWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"siteWFSLayer\");\r\n thisLayer.setSource(siteWFSSource);\r\n thisLayer.values_.visible = true;\r\n console.log(\"siteWFSSource.getFeatures()\");\r\n console.log(siteWFSSource.getFeatures());\r\n var site2WFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Asites2&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n console.log(\"Trying to load: \" + site2WFSURL + \"&srsname=EPSG:3857\");\r\n site2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return site2WFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"site2WFSLayer\");\r\n thisLayer.setSource(site2WFSSource);\r\n thisLayer.values_.visible = true;\r\n console.log(\"site2WFSSource.getFeatures()\");\r\n console.log(site2WFSSource.getFeatures());\r\n\r\n newProjectSaveBuffer(currentProjectID, callback);\r\n}\r\n\r\nfunction newProjectSaveUnregBuffer(projectId) {\r\n console.log(\"inside newProjectSaveUnregBuffer\");\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/UnregSitesBuffers/projectId/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n newProjectSaveUnregBuffer2(projectId);\r\n });\r\n}\r\n\r\nfunction newProjectSaveBuffer(projectId, callback) {\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/buffers/projectId/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/buffers2/projectId/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n newProjectSaveBuffer2(projectId, callback);\r\n });\r\n });\r\n}\r\n\r\nfunction newProjectSaveUnregBuffer2(projectId) {\r\n console.log(\"inside newProjectSaveUnregBuffer2\");\r\n modifiedFeatureList = [];\r\n // overlay layer for buffer is: vector4 = \"sitebufferLayer\"\r\n var index = 0;\r\n var bufFeat;\r\n unregisteredBufferArray = []; // global par is for nsr noise criteria reduction process.\r\n for (let i = 0; i < vecSource10.getFeatures().length; i++) {\r\n bufFeat = vecSource10.getFeatures()[i];\r\n bufFeat.set(\"projectid\", projectId);\r\n modifiedFeatureList.push(bufFeat);\r\n unregisteredBufferArray.push(bufFeat);\r\n }\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"unregbuffers\";\r\n\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", newProjectSaveUnregBuffer3);\r\n\r\n vecSource9.clear();\r\n vecSource10.clear();\r\n}\r\n\r\nfunction newProjectSaveBuffer2(projectId, callback) {\r\n modifiedFeatureList = [];\r\n // overlay layer for buffer is: vector4 = \"sitebufferLayer\"\r\n var index = 0;\r\n var bufFeat;\r\n for (let i = 0; i < vecSource4.getFeatures().length; i++) {\r\n bufFeat = vecSource4.getFeatures()[i];\r\n bufFeat.set(\"projectid\", projectId);\r\n modifiedFeatureList.push(bufFeat);\r\n }\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"\";\r\n if (issitemultipolygon) {\r\n editLayer = \"buffers2\";\r\n } else {\r\n editLayer = \"buffers\";\r\n }\r\n //var editLayer = \"buffers\";\r\n // var editLayer = \"buffers2\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", function () {\r\n newProjectSaveBuffer3(callback);\r\n });\r\n\r\n //vecSource.clear();\r\n // vecSource4.clear();\r\n}\r\n\r\nfunction newProjectSaveUnregBuffer3() {\r\n console.log(\"inside newProjectSaveUnregBuffer3\");\r\n var bufferWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Aunregbuffers&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n console.log(\"Trying to load: \" + bufferWFSURL + \"&srsname=EPSG:3857\");\r\n unregBufferWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return bufferWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"unregBufferWFSLayer\");\r\n thisLayer.setSource(unregBufferWFSSource);\r\n thisLayer.values_.visible = true;\r\n\r\n checkNSRBuildingIntersectUnregBuffer(currentProjectID, unregisteredBufferArray);\r\n}\r\n\r\nfunction newProjectSaveBuffer3(callback) {\r\n //console.log(\"currentProjectID\", currentProjectID.toString());\r\n var bufferWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n console.log(\"Trying to load: \" + bufferWFSURL + \"&srsname=EPSG:3857\");\r\n bufferWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return bufferWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"bufferWFSLayer\");\r\n thisLayer.setSource(bufferWFSSource);\r\n if (saveProjectFinish) {\r\n thisLayer.values_.visible = true;\r\n }\r\n var buffer2WFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Abuffers2&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n console.log(\"Trying to load: \" + buffer2WFSURL + \"&srsname=EPSG:3857\");\r\n buffer2WFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return buffer2WFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n thisLayer = getLayerByTitle(\"buffer2WFSLayer\");\r\n thisLayer.setSource(buffer2WFSSource);\r\n if (saveProjectFinish) {\r\n thisLayer.values_.visible = true;\r\n }\r\n\r\n newProjectSaveZones(currentProjectID, callback);\r\n}\r\n\r\nfunction checkNSRBuildingIntersectUnregBuffer(projectId, bufferFeatArray) {\r\n console.log(\"inside checkNSRBuildingIntersectUnregBuffer\");\r\n\r\n //for each project nsr buildings, get the closest point to the site\r\n var buildingFeat;\r\n var bufferFeat;\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"projectNSRBuilding\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", projectId),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const defaultBuildingfeatures = new GeoJSON().readFeatures(json);\r\n if (defaultBuildingfeatures.length > 0) {\r\n modifiedFeatureList = [];\r\n projectBuildingFeatArrayAfterReduced = [];\r\n for (let i = 0; i < defaultBuildingfeatures.length; i++) {\r\n buildingFeat = defaultBuildingfeatures[i];\r\n var bldNoiseCrit = buildingFeat.get(\"noisecriteria\");\r\n\r\n // cek building intersect unreg buffer\r\n for (let j = 0; j < bufferFeatArray.length; j++) {\r\n bufferFeat = bufferFeatArray[j];\r\n if (isIntersect(buildingFeat, bufferFeat)) {\r\n var affectDeg = bufferFeat.get(\"affectdegree\");\r\n var reductionVal = 0;\r\n if (affectDeg === \"Slightly Affected\") {\r\n reductionVal = 3;\r\n } else if (affectDeg === \"Affected\") {\r\n reductionVal = 7;\r\n }\r\n\r\n bldNoiseCrit = bldNoiseCrit - reductionVal;\r\n }\r\n }\r\n\r\n buildingFeat.set(\"reducenoisecriteria\", bldNoiseCrit);\r\n\r\n modifiedFeatureList.push(buildingFeat);\r\n projectBuildingFeatArrayAfterReduced.push(buildingFeat);\r\n\r\n //vecTestSource.addFeature(pointFeat);\r\n //vecSource8.addFeature(pointFeat);\r\n }\r\n\r\n var task = \"update\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"projectNSRBuilding\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", updateNSRPointsIntersectUnregBuffer);\r\n }\r\n });\r\n}\r\nfunction updateNSRPointsIntersectUnregBuffer() {\r\n console.log(\"inside updateNSRPointsIntersectUnregBuffer\");\r\n\r\n //for each project nsr buildings, get the closest point to the site\r\n var pointFeat;\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"projectNSRPoints\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", currentProjectID),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const nsrPointsfeatures = new GeoJSON().readFeatures(json);\r\n if (nsrPointsfeatures.length > 0) {\r\n // var aProjectBuildingLayer = getLayerByTitle(\"projectBuildingLayer\");\r\n // var aProjectBuildingFeatures = aProjectBuildingLayer.getSource().getFeatures();\r\n\r\n modifiedFeatureList = [];\r\n for (let i = 0; i < nsrPointsfeatures.length; i++) {\r\n pointFeat = nsrPointsfeatures[i];\r\n var pointBuildingId = pointFeat.get(\"buildingid\");\r\n\r\n for (let j = 0; j < projectBuildingFeatArrayAfterReduced.length; j++) {\r\n var aProjectBuildingFeature = projectBuildingFeatArrayAfterReduced[j];\r\n var reducedNoiseCrit = aProjectBuildingFeature.get(\"reducenoisecriteria\");\r\n if (pointBuildingId === aProjectBuildingFeature.get(\"buildingid\")) {\r\n pointFeat.set(\"noisecriteria\", reducedNoiseCrit);\r\n break;\r\n }\r\n }\r\n\r\n modifiedFeatureList.push(pointFeat);\r\n\r\n //vecTestSource.addFeature(pointFeat);\r\n //vecSource8.addFeature(pointFeat);\r\n }\r\n\r\n var task = \"update\";\r\n var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n var editLayer = \"projectNSRPoints\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", null);\r\n\r\n alert(\"Finish\");\r\n }\r\n });\r\n}\r\n\r\nfunction newProjectSaveZones(projectId, callback) {\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/zones/projectId/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n newProjectSaveZones2(projectId, callback);\r\n });\r\n}\r\nfunction newProjectSaveZones2(projectId, callback) {\r\n modifiedFeatureList = [];\r\n // overlay layer for zone is: vector = \"zoneLayer\"\r\n var index = 0;\r\n var zoneFeat;\r\n console.log(\"getting zones from vecSource\");\r\n console.log(vecSource.getFeatures());\r\n for (let i = 0; i < vecSource.getFeatures().length; i++) {\r\n zoneFeat = vecSource.getFeatures()[i];\r\n zoneFeat.set(\"projectid\", projectId);\r\n if (zoneFeat.get(\"id\") === null) {\r\n zoneFeat.set(\"id\", index + 1);\r\n }\r\n index = zoneFeat.get(\"id\");\r\n console.log(\"ZoneIndex:\", index);\r\n var zoneName = getZoneNameByIndex(index);\r\n zoneFeat.set(\"name\", zoneName);\r\n var zoneType = getZoneCalcTypeByIndex(index);\r\n zoneFeat.set(\"calculationtype\", zoneType);\r\n modifiedFeatureList.push(zoneFeat);\r\n console.log(\"zoneFeat:\");\r\n console.log(zoneFeat);\r\n }\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"zones\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", function () {\r\n newProjectSaveZones3(callback);\r\n });\r\n\r\n // //\r\n // // // add site to the modifiedfeaturelist\r\n // // modifiedFeatureList.push(e.feature);\r\n // // var task = \"insert\";\r\n // // var geoserverWorkspace = \"webcnmpws\";\r\n // // var editLayer = \"sites\";\r\n // // console.log(\"about to save edits\");\r\n // // saveEdits(task, geoserverWorkspace, editLayer);\r\n // if(saveProjectFinish) { // don't clear yet, zone is still used below on getting centroid. moved this code to centroid.\r\n // vecSource.clear();\r\n // }\r\n}\r\nfunction newProjectSaveZones3(callback) {\r\n //console.log(\"currentProjectID\", currentProjectID.toString());\r\n var zoneWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3Azones&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n console.log(\"Trying to load: \" + zoneWFSURL + \"&srsname=EPSG:3857\");\r\n zoneWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return zoneWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"zoneWFSLayer\");\r\n thisLayer.setSource(zoneWFSSource);\r\n if (saveProjectFinish) {\r\n thisLayer.values_.visible = true;\r\n }\r\n\r\n //getDefBuildingsIntersectBuffer(currentProjectID);\r\n newProjectSaveCenterPoint(currentProjectID, callback);\r\n}\r\n\r\nfunction newProjectSaveCenterPoint(projectId, callback) {\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/geomcenter/projectid/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n newProjectSaveCenterPoint2(projectId, callback);\r\n });\r\n}\r\n\r\nfunction newProjectSaveCenterPoint2(projectId, callback) {\r\n modifiedFeatureList = [];\r\n // overlay layer for zone is: vector = \"zoneLayer\"\r\n var index = 0;\r\n var zoneFeat;\r\n var zoneCentroidFeat;\r\n console.log(\"getting zones from vecSource\");\r\n console.log(vecSource.getFeatures());\r\n for (let i = 0; i < vecSource.getFeatures().length; i++) {\r\n zoneFeat = vecSource.getFeatures()[i];\r\n zoneCentroidFeat = getCenterOfMass(zoneFeat);\r\n zoneCentroidFeat.set(\"projectid\", projectId);\r\n var index = zoneFeat.get(\"id\");\r\n console.log(\"ZoneIndex:\", index);\r\n zoneCentroidFeat.set(\"zoneid\", index.toString());\r\n var zoneName = getZoneNameByIndex(index);\r\n // var startDate = getZoneStartDateByIndex(index);\r\n // var endDate = getZoneEndDateByIndex(index);\r\n zoneCentroidFeat.set(\"zonename\", zoneName);\r\n var zoneType = getZoneCalcTypeByIndex(index);\r\n zoneCentroidFeat.set(\"calculationtype\", zoneType);\r\n // zoneFeat.set('startdate', startDate);\r\n // zoneFeat.set('enddate', endDate);\r\n // zoneFeat.set('index', index);\r\n // zoneFeat.unset('order');\r\n modifiedFeatureList.push(zoneCentroidFeat);\r\n }\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"geomCenter\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", function () {\r\n newProjectSaveCenterPoint3(callback);\r\n });\r\n}\r\n\r\nfunction newProjectSaveCenterPoint3(callback) {\r\n //console.log(\"currentProjectID\", currentProjectID.toString());\r\n var centerWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AgeomCenter&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n console.log(\"Trying to load: \" + centerWFSURL + \"&srsname=EPSG:3857\");\r\n centerPtWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return centerWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"centerPtWFSLayer\");\r\n thisLayer.setSource(centerPtWFSSource);\r\n if (saveProjectFinish) {\r\n vecSource.clear();\r\n thisLayer.values_.visible = true;\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n\r\n getDefBuildingsIntersectBuffer(currentProjectID);\r\n //newProjectSaveCenterPoint(currentProjectID);\r\n}\r\n\r\nfunction removeLayerFromMap(layertitle) {\r\n map.getLayers().forEach((layer) => {\r\n if (layer && layer.get(\"title\") === layertitle) {\r\n map.removeLayer(layer);\r\n }\r\n });\r\n}\r\n\r\nfunction saveEdits(taskType, geoserverWorkspace, editLayer, geometryFieldName, followUpFunction) {\r\n modifiedFeatureCloneList = [];\r\n\r\n for (var i = 0; i < modifiedFeatureList.length; i++) {\r\n let feature = modifiedFeatureList[i];\r\n // console.log(\"feature chec getProperties()\");\r\n // console.log(feature);\r\n // if (Array.isArray(feature))\r\n // {\r\n // feature = feature[0];\r\n // }\r\n let featProp = feature.getProperties();\r\n delete featProp.boundedBy;\r\n\r\n // try {\r\n let clone = feature.clone();\r\n clone.setId(feature.getId());\r\n modifiedFeatureCloneList.push(feature);\r\n // } catch {\r\n // modifiedFeatureCloneList.push(feature);\r\n // }\r\n }\r\n console.log(\"modifiedFeatureCloneList\");\r\n console.log(modifiedFeatureCloneList);\r\n\r\n if (taskType == \"update\") {\r\n transactionWFS(\"update_batch\", modifiedFeatureCloneList, geoserverWorkspace, editLayer, geometryFieldName, followUpFunction);\r\n }\r\n if (taskType == \"insert\") {\r\n transactionWFS(\"insert_batch\", modifiedFeatureCloneList, geoserverWorkspace, editLayer, geometryFieldName, followUpFunction);\r\n }\r\n if (taskType == \"delete\") {\r\n transactionWFS(\"delete_batch\", modifiedFeatureCloneList, geoserverWorkspace, editLayer, geometryFieldName, followUpFunction);\r\n }\r\n}\r\n\r\nfunction transactionWFS(mode, features, geoserverWorkspace, editLayer, geometryFieldName, followUpFunction) {\r\n var formatWFS = new WFS();\r\n\r\n var node;\r\n var formatGML = new GML({\r\n featureNS: geoserverWorkspace,\r\n featureType: editLayer,\r\n //version: '1.1.0',\r\n request: \"GetFeature\",\r\n srsName: \"EPSG:3857\",\r\n });\r\n switch (mode) {\r\n case \"insert\":\r\n node = formatWFS.writeTransaction([features], null, null, formatGML);\r\n break;\r\n case \"insert_batch\":\r\n node = formatWFS.writeTransaction(features, null, null, formatGML);\r\n break;\r\n case \"update\":\r\n node = formatWFS.writeTransaction(null, [features], null, formatGML);\r\n break;\r\n case \"update_batch\":\r\n node = formatWFS.writeTransaction(null, features, null, formatGML);\r\n break;\r\n case \"delete\":\r\n node = formatWFS.writeTransaction(null, null, [features], formatGML);\r\n break;\r\n case \"delete_batch\":\r\n node = formatWFS.writeTransaction(null, null, features, formatGML);\r\n break;\r\n }\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(node);\r\n\r\n // if (mode === 'insert_batch') {\r\n // payload = payload.split('geometry>').join('the_geom>');\r\n // }\r\n payload = payload.split(\"geometry>\").join(geometryFieldName + \">\");\r\n if (mode === \"update_batch\") {\r\n payload = payload.split(\"geometry\").join(geometryFieldName);\r\n }\r\n\r\n console.log(\"payload\");\r\n console.log(payload);\r\n // $.ajax('http://localhost:8080/geoserver/wfs', {\r\n // service: 'WFS',\r\n // type: 'POST',\r\n // dataType: 'xml',\r\n // processData: false,\r\n // contentType: 'text/xml',\r\n // data: payload\r\n // }).done(function() {\r\n\r\n // });\r\n let request = new XMLHttpRequest();\r\n request.open(\"POST\", SERVER_URL + \"/geoserver/wfs\");\r\n request.onreadystatechange = function () {\r\n if (request.readyState == 4) {\r\n console.log(\"Response\");\r\n console.log(request.responseXML);\r\n if (followUpFunction) {\r\n followUpFunction();\r\n }\r\n }\r\n // else\r\n // {\r\n // console.log('Response NOT readystate == 4');\r\n // console.log(request.responseXML);\r\n // }\r\n };\r\n\r\n request.setRequestHeader(\"Content-Type\", \"text/xml\");\r\n request.send(payload);\r\n\r\n console.log(\"features were posted to server\");\r\n}\r\n\r\nfunction deleteEquipmentPointByID(theID) {\r\n console.log(\"trying to delete id:\", theID);\r\n var searchedFeat = vecSource5.getFeatureById(theID);\r\n console.log(searchedFeat);\r\n vecSource5.removeFeature(searchedFeat);\r\n}\r\n\r\nfunction splitByLine(olPolygonFeature, olLineStringFeature) {\r\n const parser = new OL3Parser();\r\n parser.inject(Point, LineString, LinearRing, Polygon, MultiPoint, MultiLineString, MultiPolygon);\r\n\r\n // change to jsts features\r\n let jstsPolygon = parser.read(olPolygonFeature.getGeometry());\r\n let jstsPoline = parser.read(olLineStringFeature.getGeometry());\r\n\r\n //Perform union of Polygon and Line and use Polygonizer to split the polygon by line\r\n let union = Union.union(jstsPolygon.getExteriorRing(), jstsPoline);\r\n let polygonizer = new Polygonizer();\r\n polygonizer.add(union);\r\n\r\n //Get splitted polygons\r\n let polygons = polygonizer.getPolygons();\r\n return polygons;\r\n}\r\n\r\nfunction isIntersect(olFeature, olFeature2) {\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olFeature);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var featGeoJSON2 = geoJSON.writeFeatureObject(olFeature2);\r\n var featTurfGeom2 = turf.getGeom(featGeoJSON2);\r\n return turf.booleanIntersects(featTurfGeom1, featTurfGeom2);\r\n}\r\nfunction isContain(olFeature, olFeature2) {\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olFeature);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var featGeoJSON2 = geoJSON.writeFeatureObject(olFeature2);\r\n var featTurfGeom2 = turf.getGeom(featGeoJSON2);\r\n return turf.booleanContains(featTurfGeom1, featTurfGeom2);\r\n}\r\n\r\nfunction isWithin(olFeature, olFeature2) {\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olFeature);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var featGeoJSON2 = geoJSON.writeFeatureObject(olFeature2);\r\n var featTurfGeom2 = turf.getGeom(featGeoJSON2);\r\n return turf.booleanWithin(featTurfGeom1, featTurfGeom2);\r\n}\r\n\r\nfunction isPolygonCentroidWithinPolygon(olPolygonFeature, olPolygonFeature2) {\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olPolygonFeature);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var centroid = turf.centerOfMass(featTurfGeom1);\r\n var featGeoJSON2 = geoJSON.writeFeatureObject(olPolygonFeature2);\r\n var featTurfGeom2 = turf.getGeom(featGeoJSON2);\r\n return turf.booleanContains(featTurfGeom2, centroid);\r\n}\r\n\r\nfunction getCentroid(olPolygonFeature) {\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olPolygonFeature);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var centroid = turf.centroid(featTurfGeom1);\r\n return geoJSON.readFeature(centroid);\r\n}\r\n\r\nfunction getCenter(olPolygonFeature) {\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olPolygonFeature);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var centroid = turf.center(featTurfGeom1);\r\n return geoJSON.readFeature(centroid);\r\n}\r\n\r\nfunction getCenterOfMass(olPolygonFeature) {\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olPolygonFeature);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var centroid = turf.centerOfMass(featTurfGeom1);\r\n return geoJSON.readFeature(centroid);\r\n}\r\n\r\nfunction getSavedCenterPointByZoneID(zoneId) {\r\n var aCenterPtLayer = getLayerByTitle(\"centerPtWFSLayer\");\r\n // var aCenterPtFeatures = aCenterPtLayer.getSource().getFeatures();\r\n\r\n // aCenterPtLayer.getSource().on('change', function(evt) {\r\n // console.log(\"change\");\r\n // var source = evt.target;\r\n // if(source.getState() === 'ready'){\r\n // console.log(\"ready\");\r\n // var aCenterPtFeatures = aCenterPtLayer.getSource().getFeatures();\r\n // for(let i =0; i < aCenterPtFeatures.length; i++){\r\n // var aCenterPt = aCenterPtFeatures[i];\r\n // var zoneIdStr = aCenterPt.get(\"zoneid\");\r\n // if(zoneId.toString() === zoneIdStr) {\r\n // console.log(\"aCenterPt\");\r\n // console.log(aCenterPt);\r\n // return aCenterPt;\r\n // }\r\n // }\r\n // return null;\r\n // }\r\n // });\r\n\r\n var aCenterPtFeatures = aCenterPtLayer.getSource().getFeatures();\r\n for (let i = 0; i < aCenterPtFeatures.length; i++) {\r\n var aCenterPt = aCenterPtFeatures[i];\r\n var zoneIdStr = aCenterPt.get(\"zoneid\");\r\n if (zoneId.toString() === zoneIdStr) {\r\n // console.log(\"aCenterPt\");\r\n // console.log(aCenterPt);\r\n return aCenterPt;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction getIntesectedPoint(olLineString1, olLineString2, nsrPointFeat) {\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olLineString1);\r\n var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var featGeoJSON2 = geoJSON.writeFeatureObject(olLineString2);\r\n var featTurfGeom2 = turf.getGeom(featGeoJSON2);\r\n var pointColl = turf.lineIntersect(featTurfGeom1, featTurfGeom2);\r\n\r\n var featGeoJSONNSRPoint = geoJSON.writeFeatureObject(nsrPointFeat);\r\n var featTurfNSRPoint = turf.getGeom(featGeoJSONNSRPoint);\r\n\r\n if (pointColl.features.length > 0) {\r\n var dist = 999999999;\r\n var closestPointToNSR;\r\n for (let i = 0; i < pointColl.features.length; i++) {\r\n var curPoint = pointColl.features[i];\r\n var curPointGeom = turf.getGeom(curPoint);\r\n var curDistance = turf.distance(featTurfNSRPoint, curPointGeom);\r\n if (dist > curDistance) {\r\n dist = curDistance;\r\n closestPointToNSR = curPoint;\r\n }\r\n }\r\n return geoJSON.readFeature(closestPointToNSR);\r\n } else {\r\n return null;\r\n }\r\n}\r\nfunction getUnion(olPolygonFeature1, olPolygonFeature2) {\r\n // console.log(\"olPolygonFeature1\");\r\n // console.log(olPolygonFeature1);\r\n // console.log(\"olPolygonFeature2\");\r\n // console.log(olPolygonFeature2);\r\n var geoJSON = new GeoJSON();\r\n var featGeoJSON1 = geoJSON.writeFeatureObject(olPolygonFeature1);\r\n // var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n var featGeoJSON2 = geoJSON.writeFeatureObject(olPolygonFeature2);\r\n // var featTurfGeom2 = turf.getGeom(featGeoJSON2);\r\n // console.log(\"featGeoJSON1\");\r\n // console.log(featGeoJSON1);\r\n // console.log(\"featGeoJSON2\");\r\n // console.log(featGeoJSON2);\r\n //var union = turf.union(turf.featureCollection([featGeoJSON1, featGeoJSON2]));\r\n var union = turf.union(featGeoJSON1, featGeoJSON2);\r\n return geoJSON.readFeature(union);\r\n}\r\n\r\nfunction getPolygonBuffer(olFeature, meterRadius, forceSinglePolygon) {\r\n // var geoJSON = new GeoJSON();\r\n // var featGeoJSON1 = geoJSON.writeFeatureObject(olFeature);\r\n // var featTurfGeom1 = turf.getGeom(featGeoJSON1);\r\n // var bufferredTurfGeom = turf.buffer(featTurfGeom1, meterRadius, {units: 'meters'});\r\n // return geoJSON.readFeature(bufferredTurfGeom);\r\n\r\n // create buffer\r\n const parser = new OL3Parser();\r\n parser.inject(Point, LineString, LinearRing, Polygon, MultiPoint, MultiLineString, MultiPolygon);\r\n\r\n //check if it is multipolygons\r\n //if(olFeature.getGeometry().getPolygons().length > 1){\r\n if (issitemultipolygon && forceSinglePolygon === false) {\r\n console.log(\"enter the multipolygon\");\r\n console.log(olFeature.getGeometry().getType());\r\n console.log(olFeature);\r\n var allCoordArr = [];\r\n var allFeatArr = [];\r\n for (let i = 0; i < olFeature.getGeometry().getPolygons().length; i++) {\r\n var currentGeom = olFeature.getGeometry().getPolygons()[i];\r\n var jstsGeom = parser.read(currentGeom);\r\n var buffered = BufferOp.bufferOp(jstsGeom, meterRadius);\r\n var featGeoJSON2 = parser.write(buffered);\r\n var aPol = new Feature({\r\n geometry: new Polygon(featGeoJSON2.getCoordinates()),\r\n });\r\n allFeatArr.push(aPol);\r\n allCoordArr.push(featGeoJSON2.getCoordinates());\r\n }\r\n\r\n //check for feat intersections. union if intersects.\r\n var groupIndexArr = getGroupOfIntersectedIndex(allFeatArr);\r\n var processedCoord = [];\r\n for (let i = 0; i < groupIndexArr.length; i++) {\r\n var indexArr = groupIndexArr[i];\r\n\r\n if (indexArr.length > 1) {\r\n var currentFeat;\r\n for (let j = 0; j < indexArr.length; j++) {\r\n var curIndexVal = indexArr[j];\r\n if (j === 0) {\r\n currentFeat = allFeatArr[curIndexVal];\r\n } else {\r\n currentFeat = getUnion(currentFeat, allFeatArr[curIndexVal]);\r\n }\r\n }\r\n processedCoord.push(currentFeat.getGeometry().getCoordinates());\r\n } else {\r\n var indexVal = indexArr[0];\r\n var currentCoord = allCoordArr[indexVal];\r\n processedCoord.push(currentCoord);\r\n }\r\n }\r\n\r\n if (groupIndexArr.length > 1 || issitemultipolygon) {\r\n return new Feature({\r\n geometry: new MultiPolygon(processedCoord),\r\n });\r\n } else {\r\n return new Feature({\r\n geometry: new Polygon(processedCoord[0]),\r\n });\r\n }\r\n } else {\r\n var jstsGeom = parser.read(olFeature.getGeometry());\r\n var buffered = BufferOp.bufferOp(jstsGeom, meterRadius);\r\n var featGeoJSON2 = parser.write(buffered);\r\n return new Feature({\r\n geometry: new Polygon(featGeoJSON2.getCoordinates()),\r\n });\r\n }\r\n}\r\n\r\nfunction isGeomValid(olFeature) {\r\n const parser = new OL3Parser();\r\n parser.inject(Point, LineString, LinearRing, Polygon, MultiPoint, MultiLineString, MultiPolygon);\r\n var jstsGeom = parser.read(olFeature.getGeometry());\r\n return IsValidOp.isValid(jstsGeom);\r\n}\r\n\r\nfunction isSelectedLayerEqualLayerID(selectedTarget, layerId) {\r\n for (var testkey in selectedTarget.featureLayerAssociation_) {\r\n if (selectedTarget.featureLayerAssociation_[testkey]) {\r\n if (selectedTarget.featureLayerAssociation_[testkey].className_ === \"ol-layer\") {\r\n if (selectedTarget.featureLayerAssociation_[testkey].ol_uid === layerId) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction getDefBuildingsIntersectBuffer(projectId, callback) {\r\n //console.log(\"inside getDefBuildingsIntersectBuffer\");\r\n\r\n // let tempFeat;\r\n // for (let i = 0; i < projBuildingWFSSource.getFeatures().length; i++) {\r\n // tempFeat = projBuildingWFSSource.getFeatures()[i];\r\n // if (tempFeat.get('projectid') === projectId) {\r\n // console.log(\"tempFeat.get('projectid')\");\r\n // console.log(tempFeat.get('projectid'));\r\n // console.log(\"projectId\");\r\n // console.log(projectId);\r\n // projBuildingWFSSource.removeFeature(tempFeat);\r\n // }\r\n\r\n // }\r\n\r\n // console.log(\"inside getDefBuildingsIntersectBuffer END\");\r\n\r\n // // clear projBuildingWFSSource that has current Project first\r\n // const clearFeatRequest = new WFS().writeGetFeature({\r\n // srsName: 'EPSG:3857',\r\n // featureNS: 'webcnmpws',\r\n // featureTypes: ['projectNSRBuilding'],\r\n // outputFormat: 'application/json',\r\n // filter: equalToFilter('projectid', projectId)\r\n // })\r\n // var xs = new XMLSerializer();\r\n // var payload = xs.serializeToString(clearFeatRequest);\r\n\r\n // fetch(SERVER_URL + '/geoserver/wfs', {\r\n // method:'POST',\r\n // body: payload\r\n // })\r\n // .then(function (response) {\r\n // return response.json();\r\n // })\r\n // .then(function (json) {\r\n // const projectBuildingfeatures = new GeoJSON().readFeatures(json);\r\n // if (projectBuildingfeatures.length > 0 )\r\n // {\r\n // // var projectBuildingLayer = getLayerByTitle(\"projectBuildingLayer\");\r\n // // console.log(\"projectBuildingLayer\");\r\n // // console.log(projectBuildingLayer);\r\n // // projectBuildingLayer.removeFeatures(projectBuildingfeatures);\r\n\r\n // // console.log(\"inside getDefBuildingsIntersectBuffer DONE\");\r\n\r\n // modifiedFeatureList = [];\r\n // for (let i = 0; i < projectBuildingfeatures.length; i++) {\r\n // var tempFeat = projectBuildingfeatures[i];\r\n // modifiedFeatureList.push(tempFeat);\r\n // }\r\n\r\n // var task = \"delete\";\r\n // var geoserverWorkspace = \"http://www.abc.com/webcnmpws\";\r\n // var editLayer = \"projectNSRBuilding\";\r\n // saveEdits(task, geoserverWorkspace, editLayer,getDefBuildingsIntersectBuffer2);\r\n // //saveEdits(task, geoserverWorkspace, editLayer,null);\r\n // }\r\n // else\r\n // {\r\n // getDefBuildingsIntersectBuffer2();\r\n // }\r\n\r\n // })\r\n\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/projectnsrbuilding/projectId/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n getDefBuildingsIntersectBuffer2(callback);\r\n });\r\n\r\n // modifiedFeatureList = [];\r\n // var buildingFeat;\r\n // for (let i = 0; i < defBuildingWFSSource.getFeatures().length; i++) {\r\n // buildingFeat = defBuildingWFSSource.getFeatures()[i];\r\n // if (isIntersect(bufferFeat, buildingFeat)) {\r\n // buildingFeat.set('projectid', projectId);\r\n // modifiedFeatureList.push(buildingFeat);\r\n // }\r\n // }\r\n\r\n //getDefBuildingsIntersectBuffer2();\r\n}\r\n\r\nfunction getDefBuildingsIntersectBuffer2(callback) {\r\n console.log(\"inside getDefBuildingsIntersectBuffer2\");\r\n //projBuildingWFSSource.refresh();\r\n\r\n // get the buffer from vector4\r\n var index = 0;\r\n var bufferGeom;\r\n for (let i = 0; i < vecSource4.getFeatures().length; i++) {\r\n bufferGeom = vecSource4.getFeatures()[i].getGeometry(); // buffer feature should be only 1\r\n }\r\n // console.log(\"bufferGeom\");\r\n // console.log(bufferGeom);\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"Building_2022_nsr_wgs84sp_noZM\"],\r\n outputFormat: \"application/json\",\r\n //filter: andFilter(disjointFilter('the_geom', siteGeom, 'EPSG:3857'), intersectsFilter('the_geom', bufferGeom, 'EPSG:3857')),\r\n //filter: disjointFilter('the_geom', siteGeom, 'EPSG:3857'), // not sure why disjoint does not work and produce error\r\n filter: intersectsFilter(\"the_geom\", bufferGeom, \"EPSG:3857\"),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n console.log(\"getDefBuildingsIntersectBuffer2 response\");\r\n console.log(response);\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const defaultBuildingfeatures = new GeoJSON().readFeatures(json);\r\n if (defaultBuildingfeatures.length > 0) {\r\n if (saveProjectFinish) {\r\n vecSource4.clear();\r\n }\r\n\r\n var siteFeat;\r\n for (let i = 0; i < vecSource6.getFeatures().length; i++) {\r\n siteFeat = vecSource6.getFeatures()[i];\r\n }\r\n // console.log(\"siteFeat\");\r\n // console.log(siteFeat);\r\n\r\n modifiedFeatureList = [];\r\n\r\n for (let i = 0; i < defaultBuildingfeatures.length; i++) {\r\n if (isIntersect(defaultBuildingfeatures[i], siteFeat)) {\r\n continue;\r\n }\r\n\r\n var mpGeom = defaultBuildingfeatures[i].getGeometry();\r\n var thePolygons = mpGeom.getPolygons();\r\n var buildingid = defaultBuildingfeatures[i].get(\"BUILDINGID\");\r\n var noisecrit = defaultBuildingfeatures[i].get(\"noisecrit\");\r\n var buildName = defaultBuildingfeatures[i].get(\"BldName_E\") == null ? \"\" : defaultBuildingfeatures[i].get(\"BldName_E\");\r\n var bdtype = defaultBuildingfeatures[i].get(\"NSR\");\r\n var bdHt =\r\n defaultBuildingfeatures[i].get(\"Bld_Ht\") == null\r\n ? defaultBuildingfeatures[i].get(\"ROOFLEVEL\") - defaultBuildingfeatures[i].get(\"BASELEVEL\")\r\n : defaultBuildingfeatures[i].get(\"Bld_Ht\");\r\n\r\n for (let j = 0; j < thePolygons.length; j++) {\r\n var aPolygon = thePolygons[j];\r\n let tempFeat = new Feature({\r\n geom: aPolygon,\r\n });\r\n tempFeat.set(\"projectid\", currentProjectID);\r\n tempFeat.set(\"buildingid\", buildingid);\r\n tempFeat.set(\"noisecriteria\", noisecrit); //### either to generate by if else by time, or to generate one fixed value by nsr type, or just copy from the origin source\r\n tempFeat.set(\"BldName_E\", buildName);\r\n tempFeat.set(\"type\", bdtype);\r\n //tempFeat.set('noofshare', someAmount); ### find other projects that are approved and not yet end date\r\n tempFeat.set(\"modifiedAt\", new Date().toISOString());\r\n tempFeat.set(\"Bld_Ht\", bdHt);\r\n modifiedFeatureList.push(tempFeat);\r\n }\r\n }\r\n if (saveProjectFinish) {\r\n vecSource6.clear();\r\n }\r\n\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"projectNSRBuilding\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", function () {\r\n getDefBuildingsIntersectBuffer3(callback);\r\n });\r\n }\r\n });\r\n}\r\n\r\nfunction getDefBuildingsIntersectBuffer3(callback) {\r\n console.log(\"inside getDefBuildingsIntersectBuffer3\");\r\n\r\n var projectNSRBuildingWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectNSRBuilding&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n projBuildingWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return projectNSRBuildingWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"projectBuildingLayer\");\r\n thisLayer.setSource(projBuildingWFSSource);\r\n thisLayer.values_.visible = true;\r\n projBuildingWFSSource.refresh();\r\n\r\n getPointsOfProjNSRBuildings(currentProjectID, callback);\r\n}\r\n\r\nfunction getPointsOfProjNSRBuildings(projectId, callback) {\r\n console.log(\"Enter getPointsOfProjNSRBuildings()\");\r\n var header = new Headers();\r\n header.append(\"Access-Control-Allow-Origin\", \"*\");\r\n // header.append('Access-Control-Request-Headers', 'Content-Type');\r\n header.append(\"Access-Control-Request-Method\", \"DELETE\");\r\n var deleteURL = SERVER_URL2 + \"/api/projectnsrpoints/projectId/\" + projectId.toString();\r\n fetch(deleteURL, {\r\n method: \"DELETE\",\r\n //mode: 'no-cors',\r\n headers: header,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n })\r\n .then(function (json) {\r\n getPointsOfProjNSRBuildings2(projectId, callback);\r\n });\r\n}\r\n\r\nfunction getPointsOfProjNSRBuildings2(projectId, callback) {\r\n console.log(\"Enter getPointsOfProjNSRBuildings2()\");\r\n //get site\r\n var siteFeat;\r\n if (issitemultipolygon) {\r\n console.log(\"site2WFSSource.getFeatures()\");\r\n console.log(site2WFSSource.getFeatures());\r\n for (let i = 0; i < site2WFSSource.getFeatures().length; i++) {\r\n siteFeat = site2WFSSource.getFeatures()[i];\r\n if (siteFeat.get(\"projectid\") === projectId) {\r\n break;\r\n }\r\n }\r\n } else {\r\n console.log(\"siteWFSSource.getFeatures()\");\r\n console.log(siteWFSSource.getFeatures());\r\n for (let i = 0; i < siteWFSSource.getFeatures().length; i++) {\r\n siteFeat = siteWFSSource.getFeatures()[i];\r\n if (siteFeat.get(\"projectid\") === projectId) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!saveProjectFinish) {\r\n var thisLayer = getLayerByTitle(\"siteWFSLayer\");\r\n thisLayer.values_.visible = false;\r\n var thisLayer = getLayerByTitle(\"site2WFSLayer\");\r\n thisLayer.values_.visible = false;\r\n }\r\n\r\n //for each project nsr buildings, get the closest point to the site\r\n var buildingFeat;\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n featureTypes: [\"projectNSRBuilding\"],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", projectId),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const defaultBuildingfeatures = new GeoJSON().readFeatures(json);\r\n if (defaultBuildingfeatures.length > 0) {\r\n modifiedFeatureList = [];\r\n for (let i = 0; i < defaultBuildingfeatures.length; i++) {\r\n buildingFeat = defaultBuildingfeatures[i];\r\n var buildingid = defaultBuildingfeatures[i].get(\"buildingid\");\r\n var buildingHt = defaultBuildingfeatures[i].get(\"Bld_Ht\");\r\n //console.log(\"buildingHt\",buildingHt);\r\n var noiseCriteria = 0;\r\n if (defaultBuildingfeatures[i].get(\"reducenoisecriteria\")) {\r\n noiseCriteria = defaultBuildingfeatures[i].get(\"reducenoisecriteria\");\r\n } else {\r\n noiseCriteria = defaultBuildingfeatures[i].get(\"noisecriteria\");\r\n }\r\n var buildingName = defaultBuildingfeatures[i].get(\"BldName_E\");\r\n // console.log(\"siteFeat.getGeometry()\");\r\n // console.log(siteFeat.getGeometry());\r\n var shortestLineGeom = getShortestLine(siteFeat.getGeometry(), buildingFeat.getGeometry());\r\n\r\n // get 1m from the last, equals what fraction\r\n var lineLength = shortestLineGeom.getLength();\r\n var fraction = 1 - 1 / lineLength;\r\n var nsrPointGeom = new Point(shortestLineGeom.getCoordinateAt(fraction));\r\n //console.log(nsrPointGeom);\r\n // var firstPointGeom = new Point(shortestLineGeom.getFirstCoordinate());\r\n\r\n // var lineFeat = new Feature({\r\n // geometry: shortestLineGeom\r\n // });\r\n var pointFeat = new Feature({\r\n geometry: nsrPointGeom,\r\n });\r\n pointFeat.setId(i);\r\n pointFeat.set(\"id\", i);\r\n pointFeat.set(\"projectid\", projectId);\r\n pointFeat.set(\"buildingid\", buildingid);\r\n pointFeat.set(\"Bld_Ht\", buildingHt);\r\n pointFeat.set(\"noisecriteria\", noiseCriteria);\r\n pointFeat.set(\"BldName_E\", buildingName);\r\n modifiedFeatureList.push(pointFeat);\r\n\r\n //vecTestSource.addFeature(pointFeat);\r\n //vecSource8.addFeature(pointFeat);\r\n }\r\n\r\n var task = \"insert\";\r\n var geoserverWorkspace = \"webcnmpws\";\r\n var editLayer = \"projectNSRPoints\";\r\n saveEdits(task, geoserverWorkspace, editLayer, \"geom\", function () {\r\n getPointsOfProjNSRBuildings3(callback);\r\n });\r\n }\r\n });\r\n}\r\n\r\nfunction getPointsOfProjNSRBuildings3(callback) {\r\n console.log(\"inside getPointsOfProjNSRBuildings3\");\r\n\r\n var projectNSRPointsWFSURL =\r\n SERVER_URL +\r\n \"/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3AprojectNSRPoints&outputFormat=application%2Fjson&cql_filter=projectid=\" +\r\n currentProjectID.toString();\r\n projBuildingPointsWFSSource = new VectorSource({\r\n format: new GeoJSON(),\r\n url: function (extent) {\r\n return projectNSRPointsWFSURL + \"&srsname=EPSG:3857\";\r\n },\r\n });\r\n var thisLayer = getLayerByTitle(\"projectBuildingPointsLayer\");\r\n thisLayer.setSource(projBuildingPointsWFSSource);\r\n thisLayer.values_.visible = true;\r\n projBuildingPointsWFSSource.refresh();\r\n\r\n updateIsCalculated(currentProjectID, 0, null);\r\n approvedProjectIDs = [];\r\n openApprovedSites(currentProjectID);\r\n if (callback) {\r\n callback();\r\n }\r\n}\r\n\r\nolMap.getProjectPMEFeatures = function (callback) {\r\n var aEqpLayer = getLayerByTitle(\"pmeWFSLayer\");\r\n var aEqpFeatures = aEqpLayer.getSource().getFeatures();\r\n\r\n var zoneLayer = getLayerByTitle(\"zoneWFSLayer\");\r\n var zoneFeatures = zoneLayer.getSource().getFeatures();\r\n // console.log(\"zoneFeatures\");\r\n // console.log(zoneFeatures);\r\n var zoneCentroids = [];\r\n for (let i = 0; i < zoneFeatures.length; i++) {\r\n var aZoneFeat = zoneFeatures[i];\r\n var aZoneID = aZoneFeat.get(\"id\");\r\n //var centroidFeat = getCenterOfMass(aZoneFeat);\r\n var centroidFeat = getSavedCenterPointByZoneID(aZoneID);\r\n if (centroidFeat == null) {\r\n centroidFeat = getCenterOfMass(aZoneFeat);\r\n }\r\n var centroidDict = new CustDictionary(aZoneID, centroidFeat, null);\r\n zoneCentroids.push(centroidDict);\r\n }\r\n\r\n // console.log(\"aEqpFeatures\");\r\n // console.log(aEqpFeatures);\r\n callback(aEqpFeatures, zoneCentroids);\r\n};\r\n\r\nolMap.getZoneNSRNotionalInfo = function () {\r\n return zoneNSRNotionalInfo;\r\n};\r\n\r\nfunction getShortestLineAlex(geom1, geom2) {\r\n var result;\r\n var distanceSq = Infinity;\r\n\r\n (geom1.getLinearRing ? geom1.getLinearRing(0) : geom1).getCoordinates().forEach(function (coordinates) {\r\n var closest = geom2.getClosestPoint(coordinates);\r\n var distanceNew = Math.pow(closest[0] - coordinates[0], 2) + Math.pow(closest[1] - coordinates[1], 2);\r\n if (distanceNew < distanceSq) {\r\n distanceSq = distanceNew;\r\n //result = [coordinates, closest];\r\n result = [[coordinates], [closest]];\r\n }\r\n });\r\n\r\n (geom2.getLinearRing ? geom2.getLinearRing(0) : geom2).getCoordinates().forEach(function (coordinates) {\r\n var closest = geom1.getClosestPoint(coordinates);\r\n var distanceNew = Math.pow(closest[0] - coordinates[0], 2) + Math.pow(closest[1] - coordinates[1], 2);\r\n if (distanceNew < distanceSq) {\r\n distanceSq = distanceNew;\r\n //result = [closest, coordinates];\r\n result = [[closest], [coordinates]];\r\n }\r\n });\r\n\r\n return new LineString(result);\r\n}\r\n\r\nfunction getShortestLine(geom1, geom2) {\r\n var result;\r\n var distanceSq = Infinity;\r\n\r\n (geom1.getLinearRing ? geom1.getLinearRing(0) : geom1).getCoordinates().forEach(function (coordinates) {\r\n var closest = geom2.getClosestPoint(coordinates);\r\n var distanceNew = Math.pow(closest[0] - coordinates[0], 2) + Math.pow(closest[1] - coordinates[1], 2);\r\n if (distanceNew < distanceSq) {\r\n distanceSq = distanceNew;\r\n result = [coordinates, closest];\r\n //result = [[coordinates], [closest]];\r\n }\r\n });\r\n\r\n (geom2.getLinearRing ? geom2.getLinearRing(0) : geom2).getCoordinates().forEach(function (coordinates) {\r\n var closest = geom1.getClosestPoint(coordinates);\r\n var distanceNew = Math.pow(closest[0] - coordinates[0], 2) + Math.pow(closest[1] - coordinates[1], 2);\r\n if (distanceNew < distanceSq) {\r\n distanceSq = distanceNew;\r\n result = [closest, coordinates];\r\n //result = [[closest], [coordinates]];\r\n }\r\n });\r\n\r\n return new LineString(result);\r\n}\r\n\r\nfunction getLayerByTitle(layerTitle) {\r\n var resultLayer;\r\n map.getLayers().forEach(function (layer) {\r\n if (layer.get(\"title\") != undefined && layer.get(\"title\") === layerTitle) {\r\n resultLayer = layer;\r\n }\r\n });\r\n return resultLayer;\r\n}\r\n\r\nfunction keepVecSource2Clean(e) {\r\n vecSource2.clear();\r\n}\r\nfunction turnOffEqpDraw(e) {\r\n map.removeInteraction(siteDraw);\r\n}\r\n\r\nfunction doSplitPolygon(e) {\r\n // console.log(vecSource.getFeatures()[0].getGeometry())\r\n // console.log(vecSource2.getFeatures()[0].getGeometry())\r\n const parser = new OL3Parser();\r\n parser.inject(Point, LineString, Polygon);\r\n var jstsPolygon = parser.read(vecSource.getFeatures()[0].getGeometry());\r\n var jstsPoline = parser.read(vecSource2.getFeatures()[0].getGeometry());\r\n\r\n // //Perform union of Polygon and Line and use Polygonizer to split the polygon by line\r\n // let union = jstsPolygon.getExteriorRing().union(jstsPoline);\r\n // let polygonizer = new Polygonizer();\r\n // polygonizer.add(union);\r\n\r\n // //Get splitted polygons\r\n // let polygons = polygonizer.getPolygons();\r\n\r\n // if(polygons.array.length >= 2) {\r\n // //Clear old splitted polygons and measurement overlays\r\n // vecSource.clear();\r\n // //this.map.getOverlays().clear();\r\n\r\n // //Iterate through splitted polygons\r\n // polygons.array.forEach((geom) => {\r\n // let splitted_polygon = new ol.Feature({\r\n // geometry: new ol.geom.Polygon(parser.write(geom).getCoordinates())\r\n // });\r\n\r\n // vecSource.addFeature(splitted_polygon);\r\n\r\n // });\r\n // }\r\n // else{\r\n\r\n // }\r\n}\r\n\r\nfunction getCurrentSiteFeaturePutOnGlobalVar(projectid, followUpFunction) {\r\n var siteFeat;\r\n var featType = \"\";\r\n if (issitemultipolygon) {\r\n featType = \"sites2\";\r\n } else {\r\n featType = \"sites\";\r\n }\r\n\r\n const defaultFeatRequest = new WFS().writeGetFeature({\r\n srsName: \"EPSG:3857\",\r\n featureNS: \"webcnmpws\",\r\n //featureTypes: ['Bld_HKSAR2011_wgs84sp'],\r\n //featureTypes: ['sites'],\r\n //featureTypes: ['sites2'],\r\n featureTypes: [featType],\r\n outputFormat: \"application/json\",\r\n filter: equalToFilter(\"projectid\", projectid),\r\n });\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(defaultFeatRequest);\r\n\r\n fetch(SERVER_URL + \"/geoserver/wfs\", {\r\n method: \"POST\",\r\n body: payload,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n })\r\n .then(function (json) {\r\n const sitefeatures = new GeoJSON().readFeatures(json);\r\n if (sitefeatures.length > 0) {\r\n globalCurrentSiteFeature = null;\r\n for (let i = 0; i < sitefeatures.length; i++) {\r\n globalCurrentSiteFeature = sitefeatures[i];\r\n }\r\n\r\n if (followUpFunction) {\r\n followUpFunction();\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction getStartDateFromZoneTask(zonetask) {\r\n let startDates = zonetask\r\n .split(\"+\")\r\n .map((zt) => Date.parse(projectObj.tasks.filter((t) => t.zone.toString() == zt.split(\"-\")[0] && t.id == zt.split(\"-\")[1])[0].start));\r\n return new Date(Math.min(startDates));\r\n}\r\n\r\nfunction getEndDateFromZoneTask(zonetask) {\r\n let endDates = zonetask\r\n .split(\"+\")\r\n .map((zt) => Date.parse(projectObj.tasks.filter((t) => t.zone.toString() == zt.split(\"-\")[0] && t.id == zt.split(\"-\")[1])[0].end));\r\n return new Date(Math.max(endDates));\r\n}\r\n\r\nolMap.copyToProductionServer = async function (table, sourceId, targetId) {\r\n const url = `${SERVER_URL}/geoserver/webcnmpws/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=webcnmpws%3A${table}&outputFormat=application%2Fjson&cql_filter=projectid=${sourceId}&srsname=EPSG:3857`;\r\n const response = await axios.get(url);\r\n const sourceFeatures = new GeoJSON().readFeatures(response.data);\r\n let features = sourceFeatures.map((f) => {\r\n f.set(\"projectid\", targetId);\r\n return f;\r\n });\r\n console.log(features);\r\n var formatWFS = new WFS();\r\n\r\n var node;\r\n var formatGML = new GML({\r\n featureNS: \"webcnmpws\",\r\n featureType: table,\r\n //version: '1.1.0',\r\n request: \"GetFeature\",\r\n srsName: \"EPSG:3857\",\r\n });\r\n node = formatWFS.writeTransaction(features, null, null, formatGML);\r\n\r\n var xs = new XMLSerializer();\r\n var payload = xs.serializeToString(node);\r\n\r\n // if (mode === 'insert_batch') {\r\n // payload = payload.split('geometry>').join('the_geom>');\r\n // }\r\n payload = payload.split(\"geometry>\").join(\"geom\" + \">\");\r\n console.log(\"payload\");\r\n console.log(payload);\r\n let request = new XMLHttpRequest();\r\n request.open(\"POST\", \"https://web-cnmp.net/geoserver/wfs\");\r\n request.onreadystatechange = function () {\r\n if (request.readyState == 4) {\r\n console.log(\"Response\");\r\n console.log(request.responseXML);\r\n }\r\n // else\r\n // {\r\n // console.log('Response NOT readystate == 4');\r\n // console.log(request.responseXML);\r\n // }\r\n };\r\n\r\n request.setRequestHeader(\"Content-Type\", \"text/xml\");\r\n request.send(payload);\r\n\r\n console.log(\"features were posted to server\");\r\n};\r\n\r\nexport default olMap;\r\n","export default {\r\n getDate(dateString) {\r\n dateString =\r\n typeof dateString == \"object\" ? dateString : new Date(dateString);\r\n return dateString;\r\n },\r\n getDateString(date) {\r\n if (!date) return null;\r\n date = typeof date == \"object\" ? date : new Date(date);\r\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(\r\n 2,\r\n \"0\"\r\n )}-${String(date.getDate()).padStart(2, \"0\")}`;\r\n },\r\n getYearMonthString(date) {\r\n if (!date) return null;\r\n date = typeof date == \"object\" ? date : new Date(date);\r\n return date.toLocaleString(\"en-UK\", { year: \"numeric\", month: \"short\" });\r\n },\r\n fixUTCDate(project) {\r\n delete project.createdAt;\r\n delete project.modifiedAt;\r\n project.approvedDate = project.approvedDate\r\n ? this.getDateString(project.approvedDate)\r\n : project.approvedDate;\r\n project.commencementDate = this.getDateString(project.commencementDate);\r\n project.completionDate = this.getDateString(project.completionDate);\r\n project.tasks.forEach((t) => {\r\n t.start = this.getDateString(t.start);\r\n t.end = this.getDateString(t.end);\r\n });\r\n project.equipments.forEach((e) => {\r\n e.startDate = this.getDateString(e.startDate);\r\n e.endDate = this.getDateString(e.endDate);\r\n });\r\n return project;\r\n },\r\n};\r\n","import CryptoJS from \"crypto-js\";\r\n\r\nexport default {\r\n Encrypt(str, KEY) {\r\n var KEY = KEY ? KEY : \"c27788bcc8524edc86fbb2573559b43b\"; //32位\r\n var IV = \"8ab5a84cd244490f\"; //16位\r\n var key = CryptoJS.enc.Utf8.parse(KEY);\r\n var iv = CryptoJS.enc.Utf8.parse(IV);\r\n\r\n var encrypted = \"\";\r\n\r\n var srcs = CryptoJS.enc.Utf8.parse(str);\r\n encrypted = CryptoJS.AES.encrypt(srcs, key, {\r\n iv: iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7,\r\n });\r\n\r\n return encrypted.ciphertext.toString();\r\n },\r\n Decrypt(str, KEY) {\r\n var KEY = KEY ? KEY : \"c27788bcc8524edc86fbb2573559b43b\"; //32位\r\n var IV = \"8ab5a84cd244490f\"; //16位\r\n var key = CryptoJS.enc.Utf8.parse(KEY);\r\n var iv = CryptoJS.enc.Utf8.parse(IV);\r\n var encryptedHexStr = CryptoJS.enc.Hex.parse(str);\r\n var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);\r\n var decrypt = CryptoJS.AES.decrypt(srcs, key, {\r\n iv: iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7,\r\n });\r\n var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);\r\n return decryptedStr.toString();\r\n },\r\n};\r\n","import { setUserProjection } from \"ol/proj\";\r\nimport { createStore } from \"vuex\";\r\nimport CryptoHelper from \"@/helper/CryptoHelper\";\r\n\r\nexport default createStore({\r\n state: {\r\n PROJECTID: 0,\r\n ZONEID: \"\",\r\n currentUser: null,\r\n isLoggedIn: false,\r\n userProjects: [],\r\n districtProjects: [],\r\n currentProject: null,\r\n },\r\n getters: {\r\n ProjectId(state) {\r\n return state.PROJECTID;\r\n },\r\n ZoneId(state) {\r\n return state.ZONEID;\r\n },\r\n currentUser(state) {\r\n if (localStorage.getItem(\"epd-cnmp-user\")) {\r\n let user = localStorage.getItem(\"epd-cnmp-user\").startsWith(\"{\")\r\n ? localStorage.getItem(\"epd-cnmp-user\")\r\n : CryptoHelper.Decrypt(localStorage.getItem(\"epd-cnmp-user\"));\r\n if (user.includes(\"[object Object]\")) {\r\n return state.currentUser;\r\n }\r\n return state.currentUser || JSON.parse(user);\r\n }\r\n return state.currentUser;\r\n },\r\n isLoggedIn(state) {\r\n if (localStorage.getItem(\"epd-cnmp-user\")) {\r\n let user = localStorage.getItem(\"epd-cnmp-user\").startsWith(\"{\")\r\n ? localStorage.getItem(\"epd-cnmp-user\")\r\n : CryptoHelper.Decrypt(localStorage.getItem(\"epd-cnmp-user\"));\r\n if (user.includes(\"[object Object]\")) {\r\n return state.isLoggedIn;\r\n }\r\n return state.isLoggedIn || JSON.parse(user);\r\n }\r\n return state.isLoggedIn;\r\n },\r\n userProjects(state) {\r\n return state.userProjects;\r\n },\r\n districtProjects(state) {\r\n return state.districtProjects;\r\n },\r\n currentProject(state) {\r\n return state.currentProject;\r\n },\r\n },\r\n mutations: {\r\n setProjectId(state, payload) {\r\n state.PROJECTID = payload.value;\r\n },\r\n setZoneId(state, payload) {\r\n state.ZONEID = payload.value;\r\n },\r\n setCurrentUser(state, payload) {\r\n state.currentUser = payload.value;\r\n },\r\n setIsLoggedIn(state, payload) {\r\n state.isLoggedIn = payload.value;\r\n },\r\n setDistrictProjects(state, payload) {\r\n state.districtProjects = payload.value;\r\n },\r\n setUserProjects(state, payload) {\r\n state.userProjects = payload.value;\r\n },\r\n addUserProjects(state, payload) {\r\n state.userProjects.push(payload.value);\r\n },\r\n setCurrentProject(state, payload) {\r\n state.currentProject = payload.value;\r\n },\r\n },\r\n actions: {\r\n login(context, payload) {\r\n context.commit(\"setCurrentUser\", { value: payload.user });\r\n context.commit(\"setIsLoggedIn\", { value: true });\r\n },\r\n logout(context) {\r\n context.commit(\"setCurrentUser\", { value: null });\r\n context.commit(\"setIsLoggedIn\", { value: false });\r\n },\r\n generateNewProjectD(context) {\r\n var newProjectId = context.getters.ProjectId + 1;\r\n context.commit(\"setProjectId\", { value: newProjectId });\r\n },\r\n addeNewProject(context, payload) {\r\n //After get database: change context.getters.ProjectId with max ProjectId from DB.\r\n context.commit(\"addUserProjects\", { value: payload.project });\r\n context.commit(\"setCurrentProject\", { value: payload.project });\r\n },\r\n setUserProjects(context, payload) {\r\n context.commit(\"setUserProjects\", { value: payload.projects });\r\n },\r\n setDistrictProjects(context, payload) {\r\n context.commit(\"setDistrictProjects\", {\r\n value: payload.districtProjects,\r\n });\r\n },\r\n setCurrentProject(context, payload) {\r\n context.commit(\"setCurrentProject\", { value: payload.project });\r\n },\r\n },\r\n modules: {},\r\n});\r\n","import { render } from \"./LeftMenu.vue?vue&type=template&id=dbbd4dde&scoped=true\"\nimport script from \"./LeftMenu.vue?vue&type=script&lang=js\"\nexport * from \"./LeftMenu.vue?vue&type=script&lang=js\"\n\nimport \"./LeftMenu.vue?vue&type=style&index=0&id=dbbd4dde&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-dbbd4dde\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./RightButtons.vue?vue&type=template&id=6489d3b8&scoped=true\"\nimport script from \"./RightButtons.vue?vue&type=script&lang=js\"\nexport * from \"./RightButtons.vue?vue&type=script&lang=js\"\n\nimport \"./RightButtons.vue?vue&type=style&index=0&id=6489d3b8&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6489d3b8\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./SessionPopup.vue?vue&type=template&id=d2fddb00&scoped=true\"\nimport script from \"./SessionPopup.vue?vue&type=script&lang=js\"\nexport * from \"./SessionPopup.vue?vue&type=script&lang=js\"\n\nimport \"./SessionPopup.vue?vue&type=style&index=0&id=d2fddb00&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d2fddb00\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Legend.vue?vue&type=template&id=2d1af93c&scoped=true\"\nimport script from \"./Legend.vue?vue&type=script&lang=js\"\nexport * from \"./Legend.vue?vue&type=script&lang=js\"\n\nimport \"./Legend.vue?vue&type=style&index=0&id=2d1af93c&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2d1af93c\"]])\n\nexport default __exports__","import { render } from \"./MainView.vue?vue&type=template&id=af304890&scoped=true\"\nimport script from \"./MainView.vue?vue&type=script&lang=js\"\nexport * from \"./MainView.vue?vue&type=script&lang=js\"\n\nimport \"./MainView.vue?vue&type=style&index=0&id=af304890&scoped=true&lang=css\"\nimport \"./MainView.vue?vue&type=style&index=1&id=af304890&lang=less\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-af304890\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=512579b0\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=512579b0&lang=less\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Login.vue?vue&type=template&id=576c54f8&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\n\nimport \"./Login.vue?vue&type=style&index=0&id=576c54f8&scoped=true&lang=css\"\nimport \"./Login.vue?vue&type=style&index=1&id=576c54f8&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-576c54f8\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./Register.vue?vue&type=template&id=db243f7e&scoped=true\"\nimport script from \"./Register.vue?vue&type=script&lang=js\"\nexport * from \"./Register.vue?vue&type=script&lang=js\"\n\nimport \"./Register.vue?vue&type=style&index=0&id=db243f7e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-db243f7e\"]])\n\nexport default __exports__","import { render } from \"./LoginView.vue?vue&type=template&id=6f66d5a9&scoped=true\"\nimport script from \"./LoginView.vue?vue&type=script&lang=js\"\nexport * from \"./LoginView.vue?vue&type=script&lang=js\"\n\nimport \"./LoginView.vue?vue&type=style&index=0&id=6f66d5a9&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6f66d5a9\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=06b4f474&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=06b4f474&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-06b4f474\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./GanttChart.vue?vue&type=template&id=6577b535&scoped=true\"\nimport script from \"./GanttChart.vue?vue&type=script&lang=js\"\nexport * from \"./GanttChart.vue?vue&type=script&lang=js\"\n\nimport \"./GanttChart.vue?vue&type=style&index=0&id=6577b535&scoped=true&lang=css\"\nimport \"./GanttChart.vue?vue&type=style&index=1&id=6577b535&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6577b535\"]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./UploadFile.vue?vue&type=template&id=71118322\"\nimport script from \"./UploadFile.vue?vue&type=script&lang=js\"\nexport * from \"./UploadFile.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./TaskTable.vue?vue&type=template&id=54094e31\"\nimport script from \"./TaskTable.vue?vue&type=script&lang=js\"\nexport * from \"./TaskTable.vue?vue&type=script&lang=js\"\n\nimport \"./TaskTable.vue?vue&type=style&index=0&id=54094e31&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Schedule.vue?vue&type=template&id=a6b1ac72&scoped=true\"\nimport script from \"./Schedule.vue?vue&type=script&lang=js\"\nexport * from \"./Schedule.vue?vue&type=script&lang=js\"\n\nimport \"./Schedule.vue?vue&type=style&index=0&id=a6b1ac72&scoped=true&lang=css\"\nimport \"./Schedule.vue?vue&type=style&index=1&id=a6b1ac72&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a6b1ac72\"]])\n\nexport default __exports__","import { render } from \"./ProjectDialog.vue?vue&type=template&id=46928851&scoped=true\"\nimport script from \"./ProjectDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectDialog.vue?vue&type=script&lang=js\"\n\nimport \"./ProjectDialog.vue?vue&type=style&index=0&id=46928851&lang=less\"\nimport \"./ProjectDialog.vue?vue&type=style&index=1&id=46928851&scoped=true&lang=css\"\nimport \"./ProjectDialog.vue?vue&type=style&index=2&id=46928851&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-46928851\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Projects.vue?vue&type=template&id=7f740782\"\nimport script from \"./Projects.vue?vue&type=script&lang=js\"\nexport * from \"./Projects.vue?vue&type=script&lang=js\"\n\nimport \"./Projects.vue?vue&type=style&index=0&id=7f740782&lang=less\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=5e11b05a\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=8497a5ae\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=c1be3d9e&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=c1be3d9e&lang=less\"\nimport \"./index.vue?vue&type=style&index=1&id=c1be3d9e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c1be3d9e\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","import { render } from \"./SupportMaterialTable.vue?vue&type=template&id=69b7c8d8&scoped=true\"\nimport script from \"./SupportMaterialTable.vue?vue&type=script&lang=js\"\nexport * from \"./SupportMaterialTable.vue?vue&type=script&lang=js\"\n\nimport \"./SupportMaterialTable.vue?vue&type=style&index=0&id=69b7c8d8&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-69b7c8d8\"]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=4b734450&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=4b734450&lang=less\"\nimport \"./index.vue?vue&type=style&index=1&id=4b734450&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b734450\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=386dc557\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=386dc557&scope=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=787b5316&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=787b5316&scoped=true&lang=css\"\nimport \"./index.vue?vue&type=style&index=1&id=787b5316&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-787b5316\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=bd2fcd9e&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=bd2fcd9e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-bd2fcd9e\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","\r\n \r\n \r\n \r\n \r\n \r\n
20 && mitigationList.length > 0\">\r\n
\r\n
Version No.:{{ userInput.general.versionNo }} (Date: {{\r\n userInput.general.date\r\n }})\r\n
\r\n
\r\n
Reason(s) of Last Update:{{ userInput.general.lastUpdate }}
\r\n
\r\n
\r\n
\r\n List of Construction Noise Mitigation identified\r\n
\r\n
\r\n
\r\n
Activity
\r\n
Construction Noise Mitigation
\r\n
\r\n \r\n
\r\n
\r\n

CONSTRUCTION NOISE MITIGATION MEASURES

\r\n
\r\n
\r\n List of Construction Noise Mitigation Measures identified\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
0\" aria-label=\"Use of Quieter Construction Method\">Use of\r\n Quieter\r\n Construction Method
\r\n
0\" aria-label=\"Use\r\n of Quality\r\n Powered Mechanical\r\n Equipment (QPME)\">Use\r\n of Quality\r\n Powered Mechanical\r\n Equipment (QPME)
\r\n
e.enclosureDba != 0).length > 0\">Construction\r\n Noise Enclosure
\r\n
e.barrierDba != 0).length > 0\">Noise\r\n Barrier\r\n
\r\n e.custommethodname).map(e => e.custommethodname).flat())]\">\r\n
\r\n {{ customMethod.trim() }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
20 && qpmeList.length + mitigationList.length <= 20) || (qcmList.length + qpmeList.length > 20 && mitigationList.length <= 20)) || (qcmList.length == 0 && qpmeList.length == 0 && mitigationList.length == 0)\">\r\n
\r\n
Version No.:{{ userInput.general.versionNo }} (Date: {{\r\n userInput.general.date\r\n }})\r\n
\r\n
\r\n
Reason(s) of Last Update:{{ userInput.general.lastUpdate }}
\r\n
\r\n

CONSTRUCTION NOISE MITIGATION MEASURES

\r\n
\r\n
\r\n List of Construction Noise Mitigation Measures identified\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
0\" aria-label=\"Use of Quieter Construction Method\">Use of\r\n Quieter\r\n Construction Method
\r\n
0\" aria-label=\"Use\r\n of Quality\r\n Powered Mechanical\r\n Equipment (QPME)\">Use\r\n of Quality\r\n Powered Mechanical\r\n Equipment (QPME)
\r\n
e.enclosureDba != 0).length > 0\">Construction\r\n Noise Enclosure
\r\n
e.barrierDba != 0).length > 0\">Noise\r\n Barrier\r\n
\r\n e.custommethodname).map(e => e.custommethodname).flat())]\">\r\n
\r\n {{ customMethod.trim() }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Version No.:{{ userInput.general.versionNo }} (Date: {{\r\n userInput.general.date\r\n }})\r\n
\r\n
\r\n
Reason(s) of Last Update:{{ userInput.general.lastUpdate }}
\r\n
\r\n
\r\n
\r\n

CONSTRUCTION WORK SCHEDULE

\r\n
\r\n
\r\n Construction work schedule determines the noise impacts to the surrounding community. Therefore, it\r\n is\r\n important to consider the construction time, number of powered mechanical equipment used and the\r\n construction location at the same time, so that cumulative noise impacts by the construction\r\n activity\r\n could\r\n be\r\n minimised. It is important to prevent the use of the noisy construction equipment or construction\r\n activity,\r\n if\r\n infeasible, scheduling construction work at less noise sensitive time is highly recommended.\r\n
\r\n
\r\n Construction Project\r\n
\r\n
\r\n
\r\n
Construction Activity
\r\n
Phase of Work
\r\n
Zoning
\r\n
Date
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
100 ? 22 : 28, getMaxConstructionActivityTaskLength(calcResultDetailsUnmitigatedCleaned) > 100 ? 22 : 28)\">\r\n
\r\n
Version No.:{{ userInput.general.versionNo }} (Date: {{\r\n userInput.general.date\r\n }})\r\n
\r\n
\r\n
Reason(s) of Last Update:{{ userInput.general.lastUpdate }}
\r\n
\r\n
\r\n
\r\n Cumulative Impact of PMEs in each phase of work\r\n
\r\n
\r\n
\r\n
100 ? 300 : 200) + 'px'\r\n }\">\r\n Construction Activity
\r\n
Types of PME
\r\n
Sound Power Level
\r\n
Qty
\r\n
Time %
\r\n
Cumulative Noise Impact
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
(nsrMitigated[a].nsrname.localeCompare(nsrMitigated[b].nsrname, undefined, { numeric: true, sensitivity: 'base' }))), 32, 35)\">\r\n
\r\n
Version No.:{{ userInput.general.versionNo }} (Date: {{\r\n userInput.general.date\r\n }})\r\n
\r\n
\r\n
Reason(s) of Last Update:{{ userInput.general.lastUpdate }}
\r\n
\r\n
\r\n
\r\n

CONSTRUCTION NOISE IMPACTS AND ITS COMPLIANCE

\r\n
\r\n
\r\n
\r\n
\r\n
NSR Label
\r\n
Descriptions
\r\n
n.othernoisecriteriaexceedmax).filter(n => n != '').length > 0 ? 150 : 70) + 'px' }\">\r\n Noise Criteria, dB(A)
\r\n
Mitigated Noise Level, dB(A)
\r\n
Exceedance, dB(A)
\r\n
Duration of Exceedance
\r\n
Reason
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
(nsrMitigated[a].nsrname.localeCompare(nsrMitigated[b].nsrname, undefined, { numeric: true, sensitivity: 'base' }))), 32, 35)\">\r\n
\r\n
Version No.:{{ userInput.general.versionNo }} (Date: {{\r\n userInput.general.date\r\n }})\r\n
\r\n
\r\n
Reason(s) of Last Update:{{ userInput.general.lastUpdate }}
\r\n
\r\n
\r\n
\r\n

NOISE SENSITIVE RECEIVER CHANGES ON THE MOVEMENT AND DELETION

\r\n
\r\n
\r\n
\r\n
\r\n
NSR Label
\r\n
Descriptions
\r\n
Original Location
\r\n
Current Location
\r\n
\r\n \r\n h.oldx === h.x && h.oldy === h.y)\">\r\n
\r\n
-
\r\n
{{ history.buildingName || history.id }}
\r\n
\r\n {{ `${Math.round(history.oldx * 100) /\r\n 100}, ${Math.round(history.oldy * 100) / 100} ` }}\r\n
\r\n
Deleted
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

CONSTRUCTION NOISE MONITORING

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CONSTRUCTION NOISE MONITORING
Construction Noise Monitoring\r\n
\r\n
\r\n \r\n Regular Monitoring\r\n
\r\n
\r\n \r\n Continuous Monitoring\r\n
\r\n
\r\n \r\n Site Inspection\r\n
\r\n
\r\n \r\n Others:\r\n userInput.cnm.cnm.others = e\" />\r\n
\r\n
\r\n
Public Engagement and Advance Notification\r\n
\r\n
\r\n \r\n Newsletter\r\n
\r\n
\r\n \r\n Mail Drop-off\r\n
\r\n
\r\n \r\n Project Website\r\n
\r\n
\r\n \r\n Phone Call\r\n
\r\n
\r\n \r\n Individual Briefing\r\n
\r\n
\r\n \r\n Billboards\r\n
\r\n
\r\n \r\n Community Meeting\r\n
\r\n
\r\n \r\n Others:\r\n userInput.cnm.pean.others = e\" />\r\n
\r\n
\r\n
Complaint Handling Mechanism\r\n
\r\n
\r\n \r\n Organisation Chart\r\n
\r\n
\r\n \r\n Complaint Hotline\r\n
\r\n
\r\n \r\n Liaison Office\r\n
\r\n
\r\n \r\n Others:\r\n userInput.cnm.cnm.others = e\" />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","import { render } from \"./InputLabel.vue?vue&type=template&id=21eacde6&scoped=true\"\nimport script from \"./InputLabel.vue?vue&type=script&lang=js\"\nexport * from \"./InputLabel.vue?vue&type=script&lang=js\"\n\nimport \"./InputLabel.vue?vue&type=style&index=0&id=21eacde6&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-21eacde6\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./DropdownLabel.vue?vue&type=template&id=0bc4b080&scoped=true\"\nimport script from \"./DropdownLabel.vue?vue&type=script&lang=js\"\nexport * from \"./DropdownLabel.vue?vue&type=script&lang=js\"\n\nimport \"./DropdownLabel.vue?vue&type=style&index=0&id=0bc4b080&scoped=true&lang=css\"\nimport \"./DropdownLabel.vue?vue&type=style&index=1&id=0bc4b080&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0bc4b080\"]])\n\nexport default __exports__","import { render } from \"./Report.vue?vue&type=template&id=72261058&scoped=true\"\nimport script from \"./Report.vue?vue&type=script&lang=js\"\nexport * from \"./Report.vue?vue&type=script&lang=js\"\n\nimport \"./Report.vue?vue&type=style&index=0&id=72261058&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-72261058\"]])\n\nexport default __exports__","\r\n \r\n \r\n \r\n
(nsrUnmitigated[a].nsrname > nsrUnmitigated[b].nsrname) ? 1 : -1), Math.ceil(30 / getAvgNSRTasksCount(nsrUnmitigated)), Math.ceil(30 / getAvgNSRTasksCount(nsrUnmitigated)))\">\r\n
\r\n
\r\n Appendix B-5 Calculation of Construction Noise Level (Unmitigated Scenario)\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NSR LabelConstruction ActivityTotal SWL, dB(A)Horz. Distance, mDist. Corr., dB(A)Façade Corr., dB(A)CNL, dB(A)
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

Appendix C

\r\n

Calculation of Construction Noise Impact Assessment

\r\n

(Mitigated Scenario with QPMEs and Noise Barriers)

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Appendix C-1 Summary Table of Construction Activity Code\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CodeZoneConstruction Activity
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Appendix C-2 Summary Table of Construction Activity Combination Code\r\n
\r\n \r\n
\r\n
\r\n
(nsrMitigated[a].nsrname > nsrMitigated[b].nsrname) ? 1 : -1), 25, 26)\">\r\n
\r\n
\r\n Appendix C-3 Summary Table of Calculated Construction Noise Level at NSRs (Mitigated\r\n Scenario\r\n with\r\n QPMEs and Movable Noise Barriers)\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NSR LabelDescriptionsConstruction Noise Level from\r\n Each Work Group 0\">\r\n Cumulative\r\n Construction Noise Due to\r\n Concurrent WorksHighest Noise Level, dB(A) (with Neighbor Site\r\n Contribution)\r\n Noise Criteria, dB(A)
nsrMitigated[id].noiseCriteria ? 'bold' : 'normal'\r\n }\">\r\n
{{ Math.round(nsrMitigated[id].highestnoiselevel) }}
\r\n
\r\n ({{\r\n Math.round(nsrMitigated[id].highestnoiselevelwithneighbour)\r\n }})
\r\n
\r\n {{ nsrMitigated[id].noiseCriteria }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Appendix C-4 Plant Inventory and Calculated SWLs for Construction Noise Impact Assessment\r\n (with\r\n QPMEs, Movable\r\n Noise Barriers)\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Construction Activity 1\">Sub. Work GroupPowered Mechanical EquipmentTM Ref.SWL per unit, dB(A)Qty% Operating TimeTime Correction, dB(A)Total, SWLAt-source Noise Mitigation MeasureMitigation EffectTotal SWL (Mitigated)Total SWL, dB(A)Highest SWL of Each Construction Activity, dB(A)
\r\n
\r\n
\r\n
30\"\r\n v-for=\"(buildingids, page) in splitToPages(Object.keys(nsrMitigated).flatMap(id => Array(Math.ceil(getNSRTasks(nsrMitigated, [id]).length / 30)).fill(id)).sort((a, b) => (nsrMitigated[a].nsrname > nsrMitigated[b].nsrname) ? 1 : -1), Math.ceil(30 / getAvgNSRTasksCount(nsrMitigated)), Math.ceil(30 / getAvgNSRTasksCount(nsrMitigated)))\">\r\n
\r\n
\r\n Appendix C-5 Calculation of Construction Noise Level (Mitigated Scenario with QPMEs and\r\n Movable\r\n Noise Barriers)\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NSR LabelConstruction ActivityTotal SWL, dB(A)Horz. Distance, mDist. Corr., dB(A)Façade Corr., dB(A)CNL, dB(A)
\r\n
\r\n
\r\n
nsrMitigated[a].nsrname.localeCompare(nsrMitigated[b].nsrname, undefined, { numeric: true, sensitivity: 'base' })), Math.ceil(30 / getAvgNSRTasksCount(nsrMitigated)), Math.ceil(30 / getAvgNSRTasksCount(nsrMitigated)))\">\r\n
\r\n
\r\n Appendix C-5 Calculation of Construction Noise Level (Mitigated Scenario with QPMEs and\r\n Movable\r\n Noise Barriers)\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NSR LabelConstruction ActivityTotal SWL, dB(A)Horz. Distance, mDist. Corr., dB(A)Façade Corr., dB(A)CNL, dB(A)
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0 && item == 'Appendix_D'\">\r\n
\r\n
\r\n

Appendix D

\r\n

Project Implementation Program Due to Planned Site

\r\n
\r\n
\r\n p.commencementDate)\"\r\n :end=\"neighborProjects.map(p => p.completionDate)\"\r\n legend=\"Construction activities that will be construct concurrently with neighbor projects\">\r\n \r\n \r\n
\r\n \r\n \r\n\r\n\r\n\r\n\r\n","\r\n \r\n \r\n Contrction Activity\r\n \r\n d.getFullYear() === month.getFullYear() && d.getMonth() === month.getMonth())\">\r\n {{ day.getDate().toString().padStart(2, '0') }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n w.getFullYear() === month.getFullYear() && w.getMonth() === month.getMonth()).length\">\r\n {{ month.getFullYear() }}/{{ month.getMonth() + 1 }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n w.getFullYear() === month.getFullYear() && w.getMonth() === month.getMonth())\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Contrction Activity{{ day.getDate().toString().padStart(2, '0') }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Contrction Activity
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ legend }}\r\n
\r\n
\r\n \r\n \r\n\r\n\r\n\r\n\r\n","import { render } from \"./ReportGantt.vue?vue&type=template&id=e60501d4&scoped=true\"\nimport script from \"./ReportGantt.vue?vue&type=script&lang=js\"\nexport * from \"./ReportGantt.vue?vue&type=script&lang=js\"\n\nimport \"./ReportGantt.vue?vue&type=style&index=0&id=e60501d4&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e60501d4\"]])\n\nexport default __exports__","\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ legend }}\r\n
\r\n
\r\n \r\n \r\n\r\n\r\n\r\n\r\n","import { render } from \"./ReportNoiseGantt.vue?vue&type=template&id=6873b3fa&scoped=true\"\nimport script from \"./ReportNoiseGantt.vue?vue&type=script&lang=js\"\nexport * from \"./ReportNoiseGantt.vue?vue&type=script&lang=js\"\n\nimport \"./ReportNoiseGantt.vue?vue&type=style&index=0&id=6873b3fa&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6873b3fa\"]])\n\nexport default __exports__","import { render } from \"./Appendix.vue?vue&type=template&id=4a8d93a1&scoped=true\"\nimport script from \"./Appendix.vue?vue&type=script&lang=js\"\nexport * from \"./Appendix.vue?vue&type=script&lang=js\"\n\nimport \"./Appendix.vue?vue&type=style&index=0&id=4a8d93a1&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4a8d93a1\"]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=1d1cff7c&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=1d1cff7c&lang=less\"\nimport \"./index.vue?vue&type=style&index=1&id=1d1cff7c&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1d1cff7c\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=3b629750&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3b629750&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3b629750\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./ApproveView.vue?vue&type=template&id=4f41227a&scoped=true\"\nimport script from \"./ApproveView.vue?vue&type=script&lang=js\"\nexport * from \"./ApproveView.vue?vue&type=script&lang=js\"\n\nimport \"./ApproveView.vue?vue&type=style&index=0&id=4f41227a&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4f41227a\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","import { render } from \"./LineChart.vue?vue&type=template&id=48afe938\"\nimport script from \"./LineChart.vue?vue&type=script&lang=js\"\nexport * from \"./LineChart.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./BarChart.vue?vue&type=template&id=25b21e4f\"\nimport script from \"./BarChart.vue?vue&type=script&lang=js\"\nexport * from \"./BarChart.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=3be9b071&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3be9b071&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3be9b071\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=623b6ca4&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=623b6ca4&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-623b6ca4\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=20eead01\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=20eead01&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./index.vue?vue&type=template&id=45d17fdc&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=45d17fdc&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\Iris.Yang\\\\Documents\\\\CNMP Website\\\\EDP-CNMP-Web\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-45d17fdc\"]])\n\nexport default __exports__","import { createRouter, createWebHashHistory } from \"vue-router\";\r\nimport MainView from \"../views/MainView.vue\";\r\nimport Menu1 from \"../views/Menu1View/index.vue\";\r\nimport LoginView from \"../views/LoginView.vue\";\r\nimport ResetPasswordView from \"../views/ResetPasswordView/index.vue\";\r\nimport MenuProject from \"../views/ProjectView/index.vue\";\r\nimport MenuEditProject from \"../views/EditProjectView/index.vue\";\r\nimport MenuNeighbor from \"../views/NeighborView/index.vue\";\r\nimport MenuEquipment from \"../views/EquipmentView/index.vue\";\r\nimport EditUser from \"../views/EditUserView/index.vue\";\r\nimport Members from \"../views/MembersView/index.vue\";\r\nimport Guide from \"../views/GuideView/index.vue\";\r\nimport Report from \"../views/ReportView/index.vue\";\r\nimport MenuMitigation from \"../views/MitigationView/index.vue\";\r\nimport ApproveView from \"../views/ApproveView.vue\";\r\nimport AdminView from \"../views/AdminView/index.vue\";\r\nimport SelectionView from \"../views/SelectionView/index.vue\";\r\nimport MenuCenterPoint from \"../views/CenterPointView/index.vue\";\r\nimport NotionalDistanceView from \"../views/NotionalDistanceView/index.vue\";\r\nimport store from \"../store/index\";\r\nimport CryptoHelper from \"@/helper/CryptoHelper\";\r\n\r\nfunction hasCurrentProject(to, from, next) {\r\n if (store.getters.currentProject?.id) {\r\n next();\r\n } else {\r\n next(\"/\");\r\n }\r\n}\r\n\r\nconst routes = [\r\n /*{\r\n path: '/',\r\n name: 'home',\r\n component: HomeView\r\n },*/\r\n {\r\n path: \"/\",\r\n name: \"home\",\r\n component: MainView,\r\n children: [\r\n {\r\n path: \"/Menu1\",\r\n name: \"menu1\",\r\n component: Menu1,\r\n },\r\n {\r\n path: \"/Projects\",\r\n name: \"projects\",\r\n component: MenuProject,\r\n },\r\n {\r\n path: \"/EditProjects\",\r\n name: \"editProjects\",\r\n component: MenuEditProject,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n {\r\n path: \"/CenterPoint\",\r\n name: \"centerpoint\",\r\n component: MenuCenterPoint,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n {\r\n path: \"/Neighbor\",\r\n name: \"neighbor\",\r\n component: MenuNeighbor,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n {\r\n path: \"/Equipment\",\r\n name: \"equipment\",\r\n component: MenuEquipment,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n {\r\n path: \"/EditUser\",\r\n name: \"editUser\",\r\n component: EditUser,\r\n },\r\n {\r\n path: \"/Members\",\r\n name: \"members\",\r\n component: Members,\r\n },\r\n {\r\n path: \"/Guide\",\r\n name: \"guider\",\r\n component: Guide,\r\n },\r\n {\r\n path: \"/Report\",\r\n name: \"report\",\r\n component: Report,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n {\r\n path: \"/Mitigation\",\r\n name: \"mitigation\",\r\n component: MenuMitigation,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n {\r\n path: \"/Mitigation/:page\",\r\n name: \"mitigation\",\r\n component: MenuMitigation,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n {\r\n path: \"/Select\",\r\n name: \"selection\",\r\n component: SelectionView,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n {\r\n path: \"/NotionalDistance/:buildingid\",\r\n name: \"notionalDistance\",\r\n component: NotionalDistanceView,\r\n beforeEnter: hasCurrentProject,\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/Login\",\r\n name: \"login\",\r\n component: LoginView,\r\n },\r\n {\r\n path: \"/Reset\",\r\n name: \"reset\",\r\n component: ResetPasswordView,\r\n },\r\n {\r\n path: \"/UserApproval\",\r\n name: \"approve\",\r\n component: ApproveView,\r\n },\r\n {\r\n path: \"/Admin\",\r\n name: \"admin\",\r\n component: AdminView,\r\n },\r\n // {\r\n // path: '/about',\r\n // name: 'about',\r\n // // route level code-splitting\r\n // // this generates a separate chunk (about.[hash].js) for this route\r\n // // which is lazy-loaded when the route is visited.\r\n // component: function () {\r\n // return import(/* webpackChunkName: \"about\" */ '../views/AboutView.vue')\r\n // }\r\n // }\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHashHistory(),\r\n routes,\r\n});\r\n\r\nexport default router;\r\n","import { openBlock, createElementBlock, normalizeClass, normalizeStyle, renderSlot, createElementVNode, Fragment, renderList, createCommentVNode } from 'vue';\n\nvar script = {\n name: 'VirtualScroller',\n emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],\n props: {\n id: {\n type: String,\n default: null\n },\n style: null,\n class: null,\n items: {\n type: Array,\n default: null\n },\n itemSize: {\n type: [Number,Array],\n default: 0\n },\n scrollHeight: null,\n scrollWidth: null,\n orientation: {\n type: String,\n default: 'vertical'\n },\n numToleratedItems: {\n type: Number,\n default: null\n },\n delay: {\n type: Number,\n default: 0\n },\n lazy: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n loaderDisabled: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Array,\n default: null\n },\n loading: {\n type: Boolean,\n default: false\n },\n showSpacer: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n first: this.isBoth() ? { rows: 0, cols: 0 } : 0,\n last: this.isBoth() ? { rows: 0, cols: 0 } : 0,\n numItemsInViewport: this.isBoth() ? { rows: 0, cols: 0 } : 0,\n lastScrollPos: this.isBoth() ? { top: 0, left: 0 } : 0,\n d_numToleratedItems: this.numToleratedItems,\n d_loading: this.loading,\n loaderArr: [],\n spacerStyle: {},\n contentStyle: {}\n }\n },\n element: null,\n content: null,\n lastScrollPos: null,\n scrollTimeout: null,\n mounted() {\n this.init();\n\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n },\n watch: {\n numToleratedItems(newValue) {\n this.d_numToleratedItems = newValue;\n },\n loading(newValue) {\n this.d_loading = newValue;\n },\n items(newValue, oldValue) {\n if (!oldValue || oldValue.length !== (newValue || []).length) {\n this.init();\n }\n },\n orientation() {\n this.lastScrollPos = this.isBoth() ? { top: 0, left: 0 } : 0;\n }\n },\n methods: {\n init() {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n },\n isVertical() {\n return this.orientation === 'vertical';\n },\n isHorizontal() {\n return this.orientation === 'horizontal';\n },\n isBoth() {\n return this.orientation === 'both';\n },\n scrollTo(options) {\n this.element && this.element.scrollTo(options);\n },\n scrollToIndex(index, behavior = 'auto') {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const first = this.first;\n const { numToleratedItems } = this.calculateNumItems();\n const itemSize = this.itemSize;\n const contentPos = this.getContentPosition();\n const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first, _size, _cpos) => (_first * _size) + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n\n if (both) {\n const newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };\n if (newFirst.rows !== first.rows || newFirst.cols !== first.cols) {\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n this.first = newFirst;\n }\n }\n else {\n const newFirst = calculateFirst(index, numToleratedItems);\n\n if (newFirst !== first) {\n horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), 0) : scrollTo(0, calculateCoord(newFirst, itemSize, contentPos.top));\n this.first = newFirst;\n }\n }\n },\n scrollInView(index, to, behavior = 'auto') {\n if (to) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);\n }\n else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n }\n else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * this.itemSize;\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n else if (isToEnd) {\n if (both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);\n }\n else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n }\n else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * this.itemSize;\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n }\n else {\n this.scrollToIndex(index, behavior);\n }\n },\n getRenderedRange() {\n const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n\n let firstInViewport = this.first;\n let lastInViewport = 0;\n\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const scrollTop = this.element.scrollTop;\n const scrollLeft = this.element.scrollLeft;\n\n if (both) {\n firstInViewport = { rows: calculateFirstInViewport(scrollTop, this.itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this.itemSize[1]) };\n lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };\n }\n else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n },\n calculateNumItems() {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const itemSize = this.itemSize;\n const contentPos = this.getContentPosition();\n const contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;\n const contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;\n const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));\n const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);\n const numItemsInViewport = both ?\n { rows: calculateNumItemsInViewport(contentHeight, itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, itemSize[1]) } :\n calculateNumItemsInViewport((horizontal ? contentWidth : contentHeight), itemSize);\n\n const numToleratedItems = this.d_numToleratedItems || (both ?\n [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] :\n calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n },\n calculateOptions() {\n const both = this.isBoth();\n const first = this.first;\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first, _num, _numT, _isCols) => this.getLast(_first + _num + ((_first < _numT ? 2 : 3) * _numT), _isCols);\n const last = both ?\n { rows: calculateLast(first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(first.cols, numItemsInViewport.cols, numToleratedItems[1], true) } :\n calculateLast(first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n this.$emit('update:numToleratedItems', this.d_numToleratedItems);\n\n if (this.showLoader) {\n this.loaderArr = both ?\n Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) :\n Array.from({ length: numItemsInViewport });\n }\n\n if (this.lazy) {\n this.$emit('lazy-load', { first, last });\n }\n },\n getLast(last = 0, isCols) {\n if (this.items) {\n return Math.min((isCols ? (this.columns || this.items[0]).length : this.items.length), last);\n }\n\n return 0;\n },\n getContentPosition() {\n if (this.content) {\n const style = getComputedStyle(this.content);\n const left = parseInt(style.paddingLeft, 10) + Math.max(parseInt(style.left, 10), 0);\n const right = parseInt(style.paddingRight, 10) + Math.max(parseInt(style.right, 10), 0);\n const top = parseInt(style.paddingTop, 10) + Math.max(parseInt(style.top, 10), 0);\n const bottom = parseInt(style.paddingBottom, 10) + Math.max(parseInt(style.bottom, 10), 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n },\n setSize() {\n if (this.element) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const parentElement = this.element.parentElement;\n const width = this.scrollWidth || `${(this.element.offsetWidth || parentElement.offsetWidth)}px`;\n const height = this.scrollHeight || `${(this.element.offsetHeight || parentElement.offsetHeight)}px`;\n const setProp = (_name, _value) => this.element.style[_name] = _value;\n\n if (both || horizontal) {\n setProp('height', height);\n setProp('width', width);\n }\n else {\n setProp('height', height);\n }\n }\n },\n setSpacerSize() {\n const items = this.items;\n\n if (items) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const setProp = (_name, _value, _size, _cpos = 0) => this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (((_value || []).length * _size) + _cpos) + 'px' } };\n\n if (both) {\n setProp('height', items, this.itemSize[0], contentPos.y);\n setProp('width', (this.columns || items[1]), this.itemSize[1], contentPos.x);\n }\n else {\n horizontal ? setProp('width', (this.columns || items), this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);\n }\n }\n },\n setContentPosition(pos) {\n if (this.content) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first, _size) => (_first * _size);\n const setTransform = (_x = 0, _y = 0) => {\n this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } };\n };\n\n if (both) {\n setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));\n }\n else {\n const translateVal = calculateTranslateVal(first, this.itemSize);\n horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n },\n onScrollPositionChange(event) {\n const target = event.target;\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos, _cpos) => _pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0;\n const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));\n const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n return (_currentIndex <= _numT ? _numT : (_isScrollDownOrRight ? (_last - _num - _numT) : (_first + _numT - 1)))\n };\n const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {\n if (_currentIndex <= _numT)\n return 0;\n else\n return Math.max(0, _isScrollDownOrRight ?\n (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) :\n (_currentIndex > _triggerIndex ? _first : _currentIndex - (2 * _numT)));\n };\n const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols) => {\n let lastValue = _first + _num + (2 * _numT);\n\n if (_currentIndex >= _numT) {\n lastValue += (_numT + 1);\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n\n let newFirst = 0;\n let newLast = this.last;\n let isRangeChanged = false;\n\n if (both) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n const currentIndex = { rows: calculateCurrentIndex(scrollTop, this.itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this.itemSize[1]) };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = (newFirst.rows !== this.first.rows && newLast.rows !== this.last.rows) || (newFirst.cols !== this.first.cols && newLast.cols !== this.last.cols);\n\n this.lastScrollPos = { top: scrollTop, left: scrollLeft };\n }\n else {\n const scrollPos = horizontal ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n const currentIndex = calculateCurrentIndex(scrollPos, this.itemSize);\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first && newLast !== this.last;\n\n this.lastScrollPos = scrollPos;\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged\n }\n },\n onScrollChange(event) {\n const { first, last, isRangeChanged } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n\n this.$emit('scroll-index-change', newState);\n\n if (this.lazy) {\n this.$emit('lazy-load', newState);\n }\n }\n },\n onScroll(event) {\n this.$emit('scroll', event);\n\n if (this.delay) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.d_loading && this.showLoader) {\n const { isRangeChanged: changed } = this.onScrollPositionChange(event);\n changed && (this.d_loading = true);\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this.showLoader && !this.lazy) {\n this.d_loading = false;\n }\n }, this.delay);\n }\n else {\n this.onScrollChange(event);\n }\n },\n getOptions(renderedIndex) {\n const count = (this.items || []).length;\n const index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n return {\n index,\n count,\n first: index === 0,\n last: index === (count - 1),\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n },\n getLoaderOptions(index, extOptions) {\n let count = this.loaderArr.length;\n return {\n index,\n count,\n first: index === 0,\n last: index === (count - 1),\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n ...extOptions\n }\n },\n elementRef(el) {\n this.element = el;\n },\n contentRef(el) {\n this.content = el;\n }\n },\n computed: {\n containerClass() {\n return ['p-virtualscroller', {\n 'p-both-scroll': this.isBoth(),\n 'p-horizontal-scroll': this.isHorizontal()\n }, this.class];\n },\n contentClass() {\n return ['p-virtualscroller-content', {\n 'p-virtualscroller-loading': this.d_loading\n }];\n },\n loaderClass() {\n return ['p-virtualscroller-loader', {\n 'p-component-overlay': !this.$slots.loader\n }];\n },\n loadedItems() {\n const items = this.items;\n if (items && !this.d_loading) {\n if (this.isBoth()) {\n return items.slice(this.first.rows, this.last.rows).map(item => this.columns ? item : item.slice(this.first.cols, this.last.cols));\n }\n else if (this.isHorizontal() && this.columns)\n return items;\n else\n return items.slice(this.first, this.last);\n }\n\n return [];\n },\n loadedRows() {\n return this.d_loading ? (this.loaderDisabled ? this.loaderArr : []) : this.loadedItems;\n },\n loadedColumns() {\n if (this.columns) {\n const both = this.isBoth();\n const horizontal = this.isHorizontal();\n\n if (both || horizontal) {\n return this.d_loading && this.loaderDisabled ?\n (both ? this.loaderArr[0] : this.loaderArr):\n this.columns.slice((both ? this.first.cols : this.first), (both ? this.last.cols : this.last));\n }\n }\n\n return this.columns;\n }\n }\n};\n\nconst _hoisted_1 = {\n key: 1,\n class: \"p-virtualscroller-loading-icon pi pi-spinner pi-spin\"\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (!$props.disabled)\n ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: $options.elementRef,\n class: normalizeClass($options.containerClass),\n tabindex: 0,\n style: normalizeStyle($props.style),\n onScroll: _cache[0] || (_cache[0] = (...args) => ($options.onScroll && $options.onScroll(...args)))\n }, [\n renderSlot(_ctx.$slots, \"content\", {\n styleClass: $options.contentClass,\n items: $options.loadedItems,\n getItemOptions: $options.getOptions,\n loading: $data.d_loading,\n getLoaderOptions: $options.getLoaderOptions,\n itemSize: $props.itemSize,\n rows: $options.loadedRows,\n columns: $options.loadedColumns,\n contentRef: $options.contentRef,\n spacerStyle: $data.spacerStyle,\n contentStyle: $data.contentStyle,\n vertical: $options.isVertical(),\n horizontal: $options.isHorizontal(),\n both: $options.isBoth()\n }, () => [\n createElementVNode(\"div\", {\n ref: $options.contentRef,\n class: normalizeClass($options.contentClass),\n style: normalizeStyle($data.contentStyle)\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.loadedItems, (item, index) => {\n return renderSlot(_ctx.$slots, \"item\", {\n key: index,\n item: item,\n options: $options.getOptions(index)\n })\n }), 128))\n ], 6)\n ]),\n ($props.showSpacer)\n ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"p-virtualscroller-spacer\",\n style: normalizeStyle($data.spacerStyle)\n }, null, 4))\n : createCommentVNode(\"\", true),\n (!$props.loaderDisabled && $props.showLoader && $data.d_loading)\n ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: normalizeClass($options.loaderClass)\n }, [\n (_ctx.$slots && _ctx.$slots.loader)\n ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList($data.loaderArr, (_, index) => {\n return renderSlot(_ctx.$slots, \"loader\", {\n key: index,\n options: $options.getLoaderOptions(index, $options.isBoth() && { numCols: _ctx.d_numItemsInViewport.cols })\n })\n }), 128))\n : (openBlock(), createElementBlock(\"i\", _hoisted_1))\n ], 2))\n : createCommentVNode(\"\", true)\n ], 38))\n : (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n renderSlot(_ctx.$slots, \"default\"),\n renderSlot(_ctx.$slots, \"content\", {\n items: $props.items,\n rows: $props.items,\n columns: $options.loadedColumns\n })\n ], 64))\n}\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \"\\n.p-virtualscroller {\\n position: relative;\\n overflow: auto;\\n contain: strict;\\n -webkit-transform: translateZ(0);\\n transform: translateZ(0);\\n will-change: scroll-position;\\n outline: 0 none;\\n}\\n.p-virtualscroller-content {\\n position: absolute;\\n top: 0;\\n left: 0;\\n contain: content;\\n min-height: 100%;\\n min-width: 100%;\\n will-change: transform;\\n}\\n.p-virtualscroller-spacer {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 1px;\\n width: 1px;\\n -webkit-transform-origin: 0 0;\\n transform-origin: 0 0;\\n pointer-events: none;\\n}\\n.p-virtualscroller .p-virtualscroller-loader {\\n position: sticky;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.p-virtualscroller-loader.p-component-overlay {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n\";\nstyleInject(css_248z);\n\nscript.render = render;\n\nexport { script as default };\n","\"use strict\"; //Alex\r\nimport { ref, createApp } from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport { LoadingPlugin } from \"./index\"; //Alex\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport PrimeVue from \"primevue/config\";\r\n\r\n// For accessibility reasons. Same as saga-green, but light\r\n// greens are modified to be #00632C - yigit.sen\r\n// import \"primevue/resources/themes/saga-green/theme.css\";\r\nimport \"./style/theme.css\";\r\nimport \"primevue/resources/primevue.min.css\";\r\nimport \"primeflex/primeflex.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport \"./main.css\";\r\nimport \"primeflex/primeflex.css\";\r\n\r\nimport Toolbar from \"primevue/toolbar\";\r\nimport Button from \"primevue/button\";\r\nimport Sidebar from \"primevue/sidebar\";\r\nimport Card from \"primevue/card\";\r\nimport InputText from \"primevue/inputtext\";\r\nimport InputNumber from \"primevue/inputnumber\";\r\nimport Password from \"primevue/password\";\r\nimport SelectButton from \"primevue/selectbutton\";\r\nimport ScrollPanel from \"primevue/scrollpanel\";\r\nimport Calendar from \"primevue/calendar\";\r\nimport Listbox from \"primevue/listbox\";\r\nimport Dropdown from \"primevue/dropdown\";\r\nimport RadioButton from \"primevue/radiobutton\";\r\nimport DataTable from \"primevue/datatable\";\r\nimport Column from \"primevue/column\";\r\nimport FileUpload from \"primevue/fileupload\";\r\nimport AutoComplete from \"primevue/autocomplete\";\r\nimport InputMask from \"primevue/inputmask\";\r\nimport Tooltip from \"primevue/tooltip\";\r\nimport MultiSelect from \"primevue/multiselect\";\r\nimport TabView from \"primevue/tabview\";\r\nimport TabPanel from \"primevue/tabpanel\";\r\nimport Divider from \"primevue/divider\";\r\nimport PanelMenu from \"primevue/panelmenu\";\r\nimport ConfirmationService from \"primevue/confirmationservice\";\r\nimport ConfirmPopup from \"primevue/confirmpopup\";\r\nimport ConfirmDialog from \"primevue/confirmdialog\";\r\nimport ProgressBar from \"primevue/progressbar\";\r\nimport Image from \"primevue/image\";\r\nimport Dialog from \"primevue/dialog\";\r\nimport Checkbox from \"primevue/checkbox\";\r\nimport CascadeSelect from \"primevue/cascadeselect\";\r\nimport VirtualScroller from \"./components/virtualscroller\";\r\n\r\nimport axios from \"axios\";\r\nimport VueAxios from \"vue-axios\";\r\n\r\nconst app = createApp({\r\n extends: App,\r\n mounted() {\r\n window.onbeforeunload = this.handleBeforeUnload;\r\n document.addEventListener(\r\n \"contextmenu\",\r\n (e) => {\r\n e.preventDefault();\r\n },\r\n false\r\n );\r\n // document.addEventListener(\"keydown\", (e) => {\r\n // if (e.ctrlKey && e.keyCode == 123) {\r\n // e.stopPropagation();\r\n // e.preventDefault();\r\n // }\r\n // });\r\n },\r\n methods: {\r\n handleBeforeUnload(event) {\r\n if (this.$store.getters.currentProject?.id) {\r\n event.preventDefault();\r\n event.returnValue = \"\";\r\n this.axios.post(`${this.apiEndpoint}project/close?id=${this.$store.getters.currentProject.id}`);\r\n }\r\n },\r\n },\r\n});\r\n\r\napp.use(store);\r\napp.use(router);\r\n\r\napp.use(PrimeVue);\r\napp.use(ConfirmationService);\r\napp.component(\"Toolbar\", Toolbar);\r\napp.component(\"Button\", Button);\r\napp.component(\"Sidebar\", Sidebar);\r\napp.component(\"Card\", Card);\r\napp.component(\"InputText\", InputText);\r\napp.component(\"InputNumber\", InputNumber);\r\napp.component(\"Password\", Password);\r\napp.component(\"SelectButton \", SelectButton);\r\napp.component(\"ScrollPanel\", ScrollPanel);\r\napp.component(\"Calendar\", Calendar);\r\napp.component(\"Listbox\", Listbox);\r\napp.component(\"Dropdown\", Dropdown);\r\napp.component(\"RadioButton\", RadioButton);\r\napp.component(\"DataTable\", DataTable);\r\napp.component(\"Column\", Column);\r\napp.component(\"FileUpload\", FileUpload);\r\napp.component(\"AutoComplete\", AutoComplete);\r\napp.component(\"InputMask\", InputMask);\r\napp.component(\"MultiSelect\", MultiSelect);\r\napp.component(\"TabView\", TabView);\r\napp.component(\"TabPanel\", TabPanel);\r\napp.component(\"Divider\", Divider);\r\napp.component(\"PanelMenu\", PanelMenu);\r\napp.component(\"ConfirmPopup\", ConfirmPopup);\r\napp.component(\"ConfirmDialog\", ConfirmDialog);\r\napp.component(\"ProgressBar\", ProgressBar);\r\napp.component(\"Image\", Image);\r\napp.component(\"Dialog\", Dialog);\r\napp.component(\"Checkbox\", Checkbox);\r\napp.component(\"CascadeSelect\", CascadeSelect);\r\napp.component(\"VirtualScroller\", VirtualScroller);\r\n\r\napp.directive(\"tooltip\", Tooltip);\r\n\r\napp.use(VueAxios, axios);\r\napp.use(LoadingPlugin); //Alex\r\n\r\n//app.config.globalProperties.apiEndpoint = 'api/' //publish\r\n//app.config.globalProperties.fileEndpoint = 'files/' //publish\r\n// app.config.globalProperties.apiEndpoint =\r\n// \"http://ec2-16-163-54-111.ap-east-1.compute.amazonaws.com/api/\"; //server prod\r\napp.config.globalProperties.apiEndpoint = \"https://web-cnmp.net/api/\"; //server https\r\n// app.config.globalProperties.apiEndpoint = \"http://ec2-18-167-243-150.ap-east-1.compute.amazonaws.com/api/\"; //server dev\r\n// app.config.globalProperties.apiEndpoint = \"https://localhost:44384/\"; //dev\r\n// app.config.globalProperties.fileEndpoint =\r\n// \"http://ec2-16-163-54-111.ap-east-1.compute.amazonaws.com/files/\"; //server prod\r\napp.config.globalProperties.fileEndpoint = \"https://web-cnmp.net/files/\"; //server prod\r\n// app.config.globalProperties.fileEndpoint = \"http://ec2-18-167-243-150.ap-east-1.compute.amazonaws.com/files/\"; //server dev\r\n\r\napp.config.globalProperties.version = \"v2025.03.13\";\r\n\r\napp.mount(\"#app\");\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return 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(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"494\":\"9caa714e\",\"856\":\"a98a19cf\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"webcnmp:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(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 = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkwebcnmp\"] = self[\"webpackChunkwebcnmp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(77407); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["script","__exports__","render","removeElement","el","remove","parentNode","removeChild","createComponent","component","props","parentContainer","slots","vNode","h","container","document","createElement","classList","add","appendChild","hasWindow","window","MayBeHTMLElement","HTMLElement","Object","class","name","transition","tabindex","isFullPage","isActive","style","zIndex","cancel","bgStyle","loader","color","width","height","mounted","this","enforceFocus","addEventListener","focusIn","methods","event","target","$el","contains","parent","parentElement","preventDefault","focus","beforeUnmount","removeEventListener","viewBox","xmlns","stroke","type","String","default","Number","fill","Spinner","Dots","Bars","mixins","trapFocusMixin","active","Boolean","programmatic","Function","lockScroll","canCancel","onCancel","backgroundColor","opacity","components","emits","data","keyPress","hide","apply","arguments","$emit","setTimeout","disableScroll","body","enableScroll","keyCode","watch","value","computed","background","useLoading","globalProps","globalSlots","show","forceProps","propsData","mergedSlots","instance","ctx","LoadingPlugin","app","config","globalProperties","$loading","provide","_imin","_MIN","countDown","extendSession","src","alt","start","getCurrentProjectTitle","replaceAll","end","getUser","icon","editUser","editMembers","openHelp","logout","openProjectsMenu","$router","push","openEditProjectsMenu","$store","getters","currentProject","id","axios","post","apiEndpoint","dispatch","localStorage","removeItem","currentUser","firstName","getIsDisctrictRole","userRole","getIsLoggedIn","isLoggedIn","projectTitle","opening","disabled","hasCurrentProject","label","openCenterPointMenu","openEquipmentMenu","isLoading","whenCancelled","fullPage","bgColor","openCalculationMenu","openNeighborMenu","disabledBeforeCalculate","openSelectionnMenu","confirmDirectToSelectNSR","hasMitigation","openReportMenu","suggestMitigation","$event","disabledApprove","confirmApproveProject","getApproveStatus","header","visible","dialogDisplay","modal","footer","dialogButton","navigate","autofocus","dialogContent","map","SERVER_URL","SERVER_URL2","vecSource","vecSource2","vecSource3","vector3","vecSource4","vecSource5","vecSource6","vecSource7","vecSource8","vecTestSource","vecSource9","vecSource10","vecSource11","vecSource12","vecSource13","vecSource14","defBuildingWFSSource","nsrBuildingWFSSource","districtWFSSource","projBuildingWFSSource","projBuildingPointsWFSSource","projPMEWFSSource","zoneWFSSource","siteWFSSource","site2WFSSource","centerPtWFSSource","bufferWFSSource","buffer2WFSSource","unregSiteWFSSource","unregBufferWFSSource","approvedSiteWFSSource","approvedSite2WFSSource","approvedBufferWFSSource","approvedBuffer2WFSSource","vecLayerID","vecLayerID2","vecLayerID3","vecLayerID4","vecLayerID5","vecLayerID6","vecLayerID7","defBuildingWFSLayerID","nsrBuildingWFSLayerID","projBuildingWFSLayerID","siteDraw","snapDraw","nsrSelect","defs","dragBox","saveProjectFinish","projectObj","calculationResultNSRGlobal","isCalculatedGlobal2","defBuildingWFSLayer","nsrBuildingWFSLayer","districtWFSLayer","projBuildingWFSLayer","projBuildingPointsWFSLayer","zoneWFSLayer","centerPtWFSLayer","siteWFSLayer","site2WFSLayer","bufferWFSLayer","buffer2WFSLayer","pmeWFSLayer","unregSiteWFSLayer","unregBufferWFSLayer","approvedSiteWFSLayer","approvedSite2WFSLayer","approvedBufferWFSLayer","approvedBuffer2WFSLayer","zonesInput","modifiedFeatureCloneList","siteDistrict","popupContainerElement","popupContentElement","popupCloserElement","popupOverlay","eqpID","buildingIdsForQuery","currentProjectID","globalCurrentSiteFeature","outPointAtBorder","zoneCentroidTest","zoneCentroidTest2","zoneCentroidTest3","nsrSelectMode","selectedNSRFeatures","deselectedNSRFeatures","nsrFeaturesToAdd","selectedNSRPointIds","oldSelectedNSRPointIds","highestNoiseNSRIds","modifiedFeatureList","approvedNeighbourLayersLoaded","olMap","isZoneOrderMode","isAddNSRBuildingMode","isRemoveNSRBuildingMode","isChangeNoiseLevelNSRBuildingMode","isChangeNoiseNSRBuildingPointMode","isAddNSRPointsMode","isRemoveNSRPointsMode","isChangeCentralPointMode","isAfterCalculation","issitemultipolygon","buildingIdForMitigation","zoneTaskIdsForMitigation","allBuildingsHeight","approvedProjectIDs","approvedProjectScheduleTasks","approvedProjectCalculationResultNSR","movedNSRPointIds","movedNSRPointFeats","movedCenterPointIds","movedCenterPointFeats","radiusBuffer","globalCurrentZoneFeatures","selectedDefaultBuildingFeats","thisProjectCalculatedNSRPointFeats","thisProjectCalculatedPMEFeats","thisProjectCalculateTask","unregisteredBufferArray","projectBuildingFeatArrayAfterReduced","calculationResultGroupArray","notionalPointsFeatArr","drawing","calcTypeTemp","zoneNSRNotionalInfo","tempZoneFeatures","tempSiteFeatures","greenNSRPointStyle","Style","image","Circle","Stroke","radius","text","Text","font","Fill","placement","offsetY","greenNSRPointWhiteStrokeStyle","redNSRPointStyle","unselectedNSRPointStyle","selectedNSRStyle","selectedBuildingStyle","greenNSRPointStyle20Max","redNSRPointStyle20Max","bufferStyle","lineDash","approvedBufferStyle","zoneStyle","orderZoneTextStyle","eqpStyle","RegularShape","points","rotation","Math","PI","angle","siteStyle","nsrPointStyle","greenNSRPointStyleFunctionWithNSRName","feature","get","includes","getText","setText","redNSRPointUnmitStyleFunctionWithNSRName","toFixed","toString","redNSRPointMitStyleFunctionWithNSRName","nsrPointStyleFunctionWithNSRName","selectednsrPointStyleFunction","greenNSRPointWithWhiteStrokeStyleFunctionWithNSRName","redNSRPointMitStyle20MaxFunctionWithNSRName","greenNSRPointStyle20MaxFunctionWithNSRName","redNSRPointUnmitStyle20MaxFunctionWithNSRName","selectionStyleFunction","currentNoiseCriteria","maxMitigatedCNL","maxOriginalCNL","round","clearTempLayers","clear","removeInteraction","clearUnregSiteTempLayers","makeWFSLayersInvisible","thisLayer","getLayerByTitle","values_","onSiteDrawProcess","theFeature","currentFeat","clonefeat","clone","setId","getId","addFeature","console","log","bufferedFeat","getPolygonBuffer","index","centroidFeat","getCenterOfMass","set","getDistrictBySitePolygon","getGeometry","checkWhetherBufferIntersectAnyNSRBuildings","onUnregSiteDrawProcess","featNo","affectdegree","uploadSHPValidationPass","theFeatures","resultMessage","length","testFeat","getType","getGroupOfIntersectedIndex","touchedIndexArr","allTouchedIndexArr","groupTouchedIndexArr","allIndexDone","i","currentIndex","j","checkedFeat","isIntersect","checkAllDone","onZoneDrawProcess","groupUnionArr","curTouchedIndexArr","getUnion","testFeats","getFeatures","aFeat","bufferNeedToChangeToMultipolygon","newBuffFeat","newCoordArr","getCoordinates","geometry","MultiPolygon","currentZoneFeat","anId","centroidZoneFeat","updateBuffer","siteGeom","districtFeatRequest","writeGetFeature","srsName","featureNS","featureTypes","outputFormat","filter","xs","XMLSerializer","payload","serializeToString","Headers","append","fetch","method","headers","then","response","json","districtfeatures","readFeatures","districtArray","districtFeature","districtName","join","showModal","modalContentText","getElementById","display","modalText","innerHTML","span","getElementsByClassName","onclick","bufferFeat","bufferGeom","defaultFeatRequest","defaultBuildingfeatures","getSource","initialBuildingIds","aNSRBuildingFeat","bdId","extendRadius","bufferedBufferFeat","bufferedBufferGeom","extensionFeatRequest","extensionBuildingfeatures","educationalFeat","educationalBuildingIDs","bdType","toLowerCase","eduBuildingFeat","checkEqpInsideZone","zoneFeat","zonefeatures","zoneFeatsOrderById","deleteHappened","notInsideZoneExist","aEqpFeat","eqpZoneId","removeFeature","addInteraction","saveEquipmentGeometries2","projectPMEWFSURL","format","url","extent","setSource","refresh","updateIsCalculated","projectId","callback","bodyObj","ProjectIsCalculated","postURL","JSON","stringify","catch","error","getIsCalculated","getURL","getSelectedNSR","isCalculated","parse","selNSR","nsrIds","split","nsrIdArr","getPointFromPMEVectorSourceByPMEID","pmeId","searchedFeat","getFeatureById","thePoint","getZoneNameByIndex","resultName","curId","getZoneCalcTypeByIndex","result","calculationtype","processAddNSRBuilding2","featType","bufferfeatures","featExist","tempFeat","mpGeom","thePolygons","getPolygons","buildingid","noiseCrit","buildName","bdtype","bdHt","aPolygon","geom","Date","toISOString","task","geoserverWorkspace","editLayer","saveEdits","finishingAddNSRBuilding","getPointsOfProjNSRBuildings","clearSelectedBuilding","removeLayer","addLayer","changeActionMode","setStyle","undefined","processRemoveNSRBuilding2","deleteURL","processRemoveNSRBuilding3","finishingRemoveNSRBuilding","finishingChangeNoiseCriteriaBuilding","finishingMoveNSRBuildingPoints","nsrPointLayer","finishingAddNewNSRPoints","finishingRemoveNSRPoints","finishingMoveCenterPoints","centerPointLayer","recalculate","projectid","calculateNoise1","openApprovedSites","mainProjectId","approvedURL","approvedBufferWFSURL","approvedBuffer2WFSURL","tempSource","buttonOn","buttonOff","getLoadedProjectIds","on","a","approvedSitesWFSURL","aLayer","approvedSites2WFSURL","tempSiteSource","datesURL","dateText","sDateAndEDates","neibourTaskURL","calculationResultNSRPars","currentProjId","currentProjId_ZoneTask","getCombinedZoneTaskListArrayPerProjectid","zoneTaskJoin","slice","zoomToCurrentBuffer","bufferFeatRequest","getView","fit","getExtent","pointsFeat","nsrPointfeatures","calculateNoise2","pmeFeat","pmefeatures","calculateNoise3","alert","calculateNoise4","taskURL","calculateNoise5","projectIdInComma","calculateNoise6","getZoneFeatFromArray","zone","f","getZoneCentroidFeatFromArray","theZoneFeat","aCentroid","getSavedCenterPointByZoneID","testgetZoneCentroidFeatFromArray","getCentroid","testgetZoneCenterFeatFromArray","getCenter","getCombinedNoiseLevel","numberArray","sumNumber","furtheCalc","pow","total","log10","epsg4326toEpsg3857","coordinates","x","y","tan","epsg3857toEpsg4326","pos","atan","E","getNotionalInfo","pointZoneId","nsrPointFeat","notionalPoint","calcType","getNotionalPoint","notionalDistancePointArr","notionalDistanceLine","notionalDistance","zoneFeature","zoneCentroid","longerCoordinateIndex","maxCoorMembers","aCoorSet","bbb","poly","aaa","zoneLine","zoneLineFeat","xxx","zzz","david","geoJSON","featGeoJSON1","writeFeatureObject","featTurfGeom1","featTurfGeom2","concat","jesus","transform","christ","davidgood","line","pt","snapped","snapped01","snapped02","pointArr","finalshortestline","linestringCoordinates","lastPointCoord","secondToLastPointCoord","lastPoint","secondToLastPoint","lastPoint01","secondToLastPoint01","lastPoint03","secondToLastPoint03","pt1","pt2","linestringBearing","destinationoptions","units","extensionDistance","destinationPoint","destinationPoint01","destinationPoint02","pointArr2","line1","ans","features","snapped03","centralPoint","Apoint","Bpoint","AToBLine","fraction","getLength","getCoordinateAt","kkk","pointArr007","fraction007","CentralToSnappedLine","distanceLine","distanceLineFeat","pointAtSiteBorder","getIntesectedPoint","centroidToSiteBorderLine","pointCheckArr","lineCheck","bigSizeCheckDistance","fraction50","pointAtSiteBoundaryCoord","shortestLineGeom","getShortestLine","firstCoord","getFirstCoordinate","lastCoord","getLastCoordinate","isTwoDatesOverlaped","startA","endA","startB","endB","isSameDay","d1","d2","getFullYear","getMonth","getDate","startDate","endDate","projectTaskObjArr","combinedZoneTaskListArr","currentStartDateCheckOverlap","zoneTaskToCombine","currentTask","taskStartDate","taskEndDate","taskZoneId","taskid","parseInt","currentZoneTask","combinedZoneTaskId","beginingMonthDate","setDate","approvedData","zoneTaskIds","Set","minStartDate","commencementDate","maxEndDate","completionDate","combinedZoneTaskWithApprovedSitesArr","forEach","approvedZoneTaskCombined","curProjId","t","curProjTask","approvedcombinedZoneTaskId","combinedZoneTaskListArrSplit","combinedZoneTaskWithApprovedSitesArrSplit","combinedZoneTaskList","zoneTask","typeAZoneTasks","zt","typeBZoneTasks","c","calculationResultOriginalDetailArray","calculationResultMitigatedDetailArray","calculationResultDetailArray","totalCNLOriginalInZoneTask","totalCNLMitigatedInZoneTask","exclGroupNamesOriginalInZoneTask","exclGroupNamesMitigatedInZoneTask","pmeArrayForZoneTaskFromMaxExcGroup","zoneTask_ExclusiveGroupList","currentZoneTaskId","oriCalculatonResultDetailGroupArr","mitCalculatonResultDetailGroupArr","fixedLocationExist","excGroupNames","excGroupNamesMain","bothExcGroupVersion","currentExclusiveGroup","trim","currentIsNotional","id_","zoneTask_ExcGrpDict","CustDictionary","totalCNLOriginalInExcGroup","totalCNLMitigatedInExcGroup","pmeArrayForAllExcGroups","excGroupName","exclGroupOriNoiseTotal","exclGroupMitNoiseTotal","pmeOriginalSWLForThisExcGroup","pmeMitigatedSWLForThisExcGroup","pmeArrayForCurrentExcGroup","oriCalculatonResultDetailOneExcGroupArr","mitCalculatonResultDetailOneExcGroupArr","k","currentZone","currenttaskid","currentPMEId_0","currentFixedLocationExclusiveGroup","currStartDate","getHKDateStringFromZulu","currEndDate","currPMEid","currPMEName","currOfficialid","combinedMitPMEName","currMitPMeName","currMitOfficialid","toUpperCase","indexOf","tempNameArr","timePecentage","qty","swl","qpmeswl","isQCM","enclosureMit","barrierMit","hammerMit","customMit","customName","mitMeasure","minMit","timePercentageCorrection","oriCorrectedSWL","mitCorrectedSWL","min","swlAfterQTYMitigated","swlAfterQTYOriginal","totalReduction","mitigatedSWL","aOriCalResDet","CalculationResultDetail","aMitCalResDet","oriCalc","mitCalc","groupswl","maxExclusiveGroupNameOriginal","maxExclusiveGroupNameMitigated","maxExclusiveGroupSNLOriginal","maxExclusiveGroupSNLMitigated","maxExclusiveGroupPMESet","listExclusiveGroupSNLOriginal","listExclusiveGroupSNLMitigated","listExclusiveGroupPMESet","currentExcGroupName","currentExclusiveGroupSNLOriginal","currentExclusiveGroupSNLMitigated","currentExclusiveGroupPMESet","dictOriginal","dictMitigated","dictPMESet","highestswl","calculationResultOriginalNSRArray","calculationResultMitigatedNSRArray","calculationResultNSRArray","zoneIds","z","currentZoneIndex","ignore","currentPointId","nsrname","buildingname","closestDistance","closestZone","currentNSROtherNoiseCriteriaNameArr","currentNSROtherNoiseCriteriaValueArr","currentNSROtherNoiseCriteriaStartDateArr","currentNSROtherNoiseCriteriaEndDateArr","currentNSROtherNoiseCriteriaSentenceArr","currentNSROtherNoiseCriteriaExceedUnMitArr","currentNSROtherNoiseCriteriaExceedUnMitMax","currentNSROtherNoiseCriteriaExceedMitArr","currentNSROtherNoiseCriteriaExceedMitMax","floorHeightAssumption","currentBuildingId","currentOtherNoiseCriteria","currentlBuildingHeight","currentNSRName","currentBuildingName","currentlBuildingTotalFloor","floor","otherCriteriaArr","aCritSentence","aCritWords","aCritValue","parseFloat","aCritName","aCritDates","aCritStartDate","aCritEndDate","buldHeghtObj","originalCNLForCurrentNSR","mitigatedCNLForCurrentNSR","calculationResultNSROriginalForOneNSRArray","calculationResultNSRMitigatedForOneNSRArray","calcValArr","borderNotionalDistanceLine","borderNSRPointArr","borderNSRDistanceLine","notionalPointFeat","zonetaskid","distance","remark","currentZoneTask_ExclusiveGroup","currentZoneTaskIdHaveFixedLocationPME","allOriSPLOfMainExcGroup","allMitSPLOfMainExcGroup","aOriCalResNSR","aMitCalResNSR","curOriNSRForDBParent","curMitNSRForDBParent","mainExcGroupArray","item","currentMainExcGroup","oriSPLOfMainExcGroup","mitSPLOfMainExcGroup","curOriNSRForDB","curMitNSRForDB","m","key","totOriginalSWLForCurrentExclGroup","totMitigatedSWLForCurrentExclGroup","pmeListForCurrentExclGroup","currentExcGroupDistance","thisPMEId_0","thisPointFeat","n","curPMEFeat","fixedPoint","fixedDistancePointArr","fixedDistanceLine","fixedDistance","verticalDistance","slantDistance","hemisphericalPropagation","facadeCorrection","totalCNLOriginal","totalCNLMitigated","CalculationResultNSR","mainExclGroupOriNoiseTotal","mainExclGroupMitNoiseTotal","aCalculationResultNSROri","aCalculationResultNSRMit","totalspl","cnl","calculatedPopup","CalculatedValuesPopup","isNotional","currentSWLOriginal","currentSWLMitigated","originalCNLForCurrentCombinedNSR","mitigatedCNLForCurrentCombinedNSR","currentCombinedZoneTask","individualZoneTaskArr","some","individualZoneTaskOriginalCNLArr","individualZoneTaskMitigatedCNLArr","currentCombinedZoneTaskForFoundBuilding","currentCombinedZoneTaskForFoundBuildingArr","curProjZoneTask","originalCNLForCurrentZoneTask","mitigatedCNLForCurrentZoneTask","buildingFound","projIdAndRemaining","curZoneTask","l","curResultNSR","zonetaskorcombined","ismitigated","combinedZoneTaskOriginalCNL","combinedZoneTaskMitigatedCNL","keys","curCNL","maxOtherCritUnMit","maxOtherCritMit","highestnoiselevel","othernoisecriteriaexceed","othernoisecriteriaexceedmax","highestnoiselevelwithneighbour","useMitigated","calculateBarrierHeight","isThisNSRSelected","isAllEmpty","selNSRId","calculationResultNSR","saveCalculationResultDetail","saveNotionalPoints","heightPerFloor","combinedZoneTaskArr","barrieredZoneTaskArr","cnlPerFloor","nonBarrierCNL","horizontalDistance","currentCalcResultNSR","currentIsmitigated","currentZonetaskorcombined","zoneTaskDict","currentSWL","currentHorDistance","currentFloor","currentHeight","barrierCNLPerFloor","currentCNL","nonBarrierFixedCNL","greenFound","thisFloorCNLs","zoneTaskObj","cnlPerFloorObj","thisFloorCNL","cnlsToCombine","currentCombination","combinations","thisFloorObj","theCNL","thisCombinedCNL","maxCNL","aThisFloorCNL","aCNL","barrierDistFromEqp","defaultEquipmentBaseHeight","maxHeight","barHeight","lastredfloor","barrierheight","totalfloor","calculationResultDetailArr","calculationResultNSRArr","saveCalculationResultDetail2","saveCalculationResultDetail3","nsrpointid","zonetask","totalCNL","zoneid","exclusivegroup","startdate","enddate","pmeid","pmename","pmeref","timepercent","timecorrection","totalswl","mitigationmeasure","mitigationeffect","mitigatedswl","bldname_e","excgroups","distancecorr","facadecorr","spl","noisecriteria","approvedprojectid","totalFloor","buildingName","approvedProjectId","iscalculated","ProjectSelectedNSR","selectedNSR","selectednsr","initiateSelectNSRPoints","update","allFeatures","f1","DragBox","condition","nsrNames","boxFeatures","getFeaturesInExtent","intersectsExtent","getRotation","oblique","anchor","rotate","curFeat","splice","curSelectedFeat","featToCheck","updateSelectedNSR","updateDeselectedNSRNames","updateSelectedNSRNames","zuluDate","aDate","getSimpleDate","month","padStart","day","year","openZoneCentroidPoints","curIndex","curName","tempCentroidPoint","tempCentroidPointFeat","niotionalFeatures","notPointFeat","newProjectSaveUnregSites","newProjectSaveUnregSites2","newProjectSaveSite","newProjectSaveSite2","siteFeat","newProjectSaveUnregSites3","newProjectSaveSite3","siteWFSURL","newProjectSaveUnregBuffer","site2WFSURL","newProjectSaveBuffer","newProjectSaveUnregBuffer2","newProjectSaveBuffer2","bufFeat","newProjectSaveUnregBuffer3","newProjectSaveBuffer3","bufferWFSURL","checkNSRBuildingIntersectUnregBuffer","buffer2WFSURL","newProjectSaveZones","bufferFeatArray","buildingFeat","bldNoiseCrit","affectDeg","reductionVal","updateNSRPointsIntersectUnregBuffer","pointFeat","nsrPointsfeatures","pointBuildingId","aProjectBuildingFeature","reducedNoiseCrit","newProjectSaveZones2","zoneName","zoneType","newProjectSaveZones3","zoneWFSURL","newProjectSaveCenterPoint","newProjectSaveCenterPoint2","zoneCentroidFeat","newProjectSaveCenterPoint3","centerWFSURL","getDefBuildingsIntersectBuffer","removeLayerFromMap","layertitle","getLayers","layer","taskType","geometryFieldName","followUpFunction","featProp","getProperties","boundedBy","transactionWFS","mode","node","formatWFS","formatGML","GML","featureType","request","writeTransaction","XMLHttpRequest","open","onreadystatechange","readyState","responseXML","setRequestHeader","send","deleteEquipmentPointByID","theID","splitByLine","olPolygonFeature","olLineStringFeature","parser","inject","LinearRing","MultiPoint","MultiLineString","jstsPolygon","read","jstsPoline","union","getExteriorRing","polygonizer","Polygonizer","polygons","olFeature","olFeature2","featGeoJSON2","isPolygonCentroidWithinPolygon","olPolygonFeature2","centroid","readFeature","zoneId","aCenterPtLayer","aCenterPtFeatures","aCenterPt","zoneIdStr","olLineString1","olLineString2","pointColl","featGeoJSONNSRPoint","featTurfNSRPoint","closestPointToNSR","dist","curPoint","curPointGeom","curDistance","olPolygonFeature1","meterRadius","forceSinglePolygon","allCoordArr","allFeatArr","currentGeom","jstsGeom","buffered","write","aPol","groupIndexArr","processedCoord","indexArr","curIndexVal","indexVal","currentCoord","isGeomValid","getDefBuildingsIntersectBuffer2","noisecrit","getDefBuildingsIntersectBuffer3","projectNSRBuildingWFSURL","getPointsOfProjNSRBuildings2","buildingHt","noiseCriteria","lineLength","nsrPointGeom","getPointsOfProjNSRBuildings3","projectNSRPointsWFSURL","geom1","geom2","distanceSq","Infinity","getLinearRing","closest","getClosestPoint","distanceNew","layerTitle","resultLayer","keepVecSource2Clean","e","getCurrentSiteFeaturePutOnGlobalVar","sitefeatures","getStartDateFromZoneTask","startDates","tasks","getEndDateFromZoneTask","endDates","max","initOL","apiURL","replace","vector","Vector","title","source","vector2","orderZoneTextStyleFunction","setVisible","vector4","eqpTextStyleFunction","offid","vector5","vector6","vector7","vector8","testStyle","vectorTest","vector9","vector10","vector11","snapBuildingStyle","vector12","eduBuildingStyle","vector13","notionalStyle","centerStyle","vector14","districtStyle","districtURL","strategy","defBuildingStyle","testURL","nsrBuildingStyle","nsrBuidingURL","projBuildingStyle1","projBuildingStyle2","projBuildingStyleFunction","projBuidingURL","projNSRPointsStyle","projNSRPointsURL","approvedSiteStyle","approvedSiteWFSURL","approvedSite2WFSURL","unregsiteWFSURL","centerPtWFSURL","unregbufferWFSURL","pmeWFSURL","raster","Tile","XYZ","crossOrigin","mapLabel","Overlay","element","stopEvent","setPosition","blur","coordinatePopup","evt","setOffset","controls","extend","ScaleLine","layers","overlays","view","View","projection","center","zoom","dblclickzoom","getInteractions","interaction","DoubleClickZoom","clickedCoordinate","coordinate","nsrLayerClicked","forEachFeatureAtPixel","pixel","selIndex","style_","aNSRName","criteriaVal","bldName","ttlCNL","ttlCNLMit","detailInJSONString","neighbor","neighbornoise","detailObj","conclusionText","isExceed","theTtlCNL","popupConclusionElement","popupNSRNameElement","popupMaxUnmitCNLElement","popupMaxMitCNLElement","popupCriteriaElement","popupBldNameElement","popupNieghborElement","popupNieghborNoiseElement","popupDetailTableElement","popupMitigateButtonElement","popupDistButtonElement","hasChildNodes","lastChild","tr0","th0","setAttribute","tr1","th1","th2","d","itemObj","totCNL","tr2","td1","minWidth","td2","tr4","th4","tr5","th3","tr6","td3","td4","location","href","origin","hkgrid","getBuildingIdForMitigation","resetBuildingIdForMitigation","switchOnSiteDraw","bufferRadius","Draw","clearSiteDraw","switchOnUnregSiteDraw","affectDegree","thisFeat","clearUnregSiteDraw","siteDrawByGJSON","file","theRadius","loadshp","encoding","testJson","featureProjection","getProjection","valMsgs","msg","siteFeatureFirst","zoneDrawByGJSON","firstFeat","allFields","fieldsToReturn","aField","toLocaleLowerCase","getZoneNameByField","fieldName","allZoneFeatures","zoneNames","curFeatId","curZoneName","setIsMultipolygon","ismultipgn","getIsMultipolygon","getSiteDistrict","switchOffSiteDraw","switchOnCutterLineDraw","array","splitted_polygon","clearZoneDraw","siteFeats","clearForNew","switchOffCutterLineDraw","switchZoneOrderDraw","switchOnEquipDraw","pmedata","idx","projectPMEId","eqpName","pme","eqpZone","switchOffEquipDraw","deleteEquipPointByID","theId","saveEquipmentGeometries","projPMEfeatures","projPMEFeature","setGeometry","hyun","getIsCalculatedForVue2","saveProjectGISData","zones","isFinish","saveUnregSitesGISData","prepareProjectTempLayers","aSiteLayer","aSiteFeatures","aSiteFeature","aBufferLayer","aBufferFeatures","aBufferFeature","aZoneLayer","aZoneFeatures","aZoneFeature","aUnregSiteLayer","aUnregSiteFeatures","aUnregSiteFeature","aUnregBufferLayer","aUnregBufferFeatures","aUnregBufferFeature","prepareEquipmentTempLayers","aEqpLayer","aEqpFeatures","aEqpFeature","clearEquipmentTempLayers","savePMEGSData","actid","addNSRBuilding","processAddNSRBuilding","newPolygon","removeNSRBuilding","processRemoveNSRBuilding","substring","changeNoiseLevelNSRBuilding","processChangeNoiseLevelNSRBuilding","noiseLevel","moveNSRBuildingPoints","addNSRHistory","newPointGeom","currentid","tempPointFeat","nsrBuildingLayer","bufferedBuilding","Modify","getArray","existingIndex","Snap","processMoveNSRBuildingPoints","movedNSRPointFeat","addNewNSRPoints","nsrNameRef","noiseCriteriaRef","pointIdToFill","maxid","modelValue","processAddNewNSRPoints","removeNSRPoints","processRemoveNSRPoints","aPoint","added","moveCenterPoints","currentProjid","currentzoneid","currentzonename","currentremark","modZoneId","modZoneCenterFeat","zoneLayer","zoneFeats","zonePolygon","processMoveCenterPoints","pointId","ptId","clearSelectedNSRBuildings","isChangeNoiseNSRBuildingMode","isChangeCentralPointLocationMode","setProjectObject","projObj","setBuildingIdForMitigation","bdid","getCalculationResultNSR","ids","openProjectGISData","getState","SwitchNeibourLayer","isOn","IsApprovedNeighbourLayersLoaded","showPMEInitActions","pmewfsSc","showPMEEndActions","getBuildingHeight","bldid","bdHgObj","newCustDictionary","calculateNoise","projectObject","getCombinedNoiseLevelOL","calculatedNoiseGroupArray","getCalculationResult","getSelectedNSRPointIds","getHighestNoiseNSRIds","isHighestNoiseNSRMoved","isHighestNoiseNSRDeleted","deletedNSRPointIds","getSelectedNSRPoints","nsrName","contributionText","contributions","o","setSelectedNSRPointsIDState","getApprovedProjectIds","getMapCanvas","getTargetElement","querySelectorAll","getNSRNameAndBuildingNameFromNSRPointIDAndBuildingId","nsrPointId","buildingId","returnValues","currentFeatId","changeNSRPointColorForSelection","allCalculatedNSRPointFeats","isMitgated","sortedPointArray","pointFeatToProcess","pointFeatToProcessNoiseCrit","pointFeatToProcessValToCompare","alreadyInserted","curCheckFeat","curCheckFeatNoiseCrit","curCheckFeatValToCompare","accommodationFound","educationalFound","sortByNoise","sort","b","changeNSRPointColorBackAfterSelection","selectedNSRData","save","backstate","nsrPointIds","nsrPointBuildingIds","curBuildingId","curNSRData","otherCritArr","combinedStringOtherCrit","calcvalues","totalcnlwithneighbor","totalCNLInNeighbor","contribution","selNSRVal","clearNSRPointColorBackSelection","updateData","changeNSRPointSelectionModeToSelect","changeNSRPointSelectionModeToDeselect","getProjectPMEFeatures","zoneFeatures","zoneCentroids","aZoneFeat","aZoneID","centroidDict","getZoneNSRNotionalInfo","copyToProductionServer","async","table","sourceId","targetId","sourceFeatures","dateString","getDateString","date","getYearMonthString","toLocaleString","fixUTCDate","project","createdAt","modifiedAt","approvedDate","equipments","Encrypt","str","KEY","IV","iv","encrypted","srcs","padding","ciphertext","Decrypt","encryptedHexStr","decrypt","decryptedStr","state","PROJECTID","ZONEID","userProjects","districtProjects","ProjectId","ZoneId","getItem","user","startsWith","CryptoHelper","mutations","setProjectId","setZoneId","setCurrentUser","setIsLoggedIn","setDistrictProjects","setUserProjects","addUserProjects","setCurrentProject","actions","login","context","commit","generateNewProjectD","newProjectId","addeNewProject","projects","modules","useSlot","showProject","showComponents","reject","dialogTarget","mitigationMessage","mitigationPage","Loading","isReadonly","readonly","isContractor","userType","approved","hasSelectedNSR","exceed","getProjectId","checkSteps","openHome","getProjects","p","openingReadonly","deleting","getDistrictProjects","district","path","userId","successCallback","jacob","timerId","setInterval","clearInterval","clearTimeout","openMitigationMenu","$confirm","require","currentTarget","message","accept","rejectLabel","acceptLabel","approveProject","rejectProject","DateHelper","now","step","success","isApprovedNeighbourSiteOn","switchNeighbourLayers","isApprovedNeighbourSiteLoaded","HeaderBar","LeftMenu","RightButtons","SessionPopup","Legend","_isec","IDLE_TIME","getIdleTime","_minute","_sec","_nmin","_nsec","handleSession","getCurrentUser","userObject","registerOnClick","registered","newUser","activeLoginView","for","version","content","notActive","waitingEPD","username","password","feedback","attempFailed","link","resetOnClick","loginOnClick","loading","iconPos","email","twoFactor1","inputId","twoFactor2","twoFactor3","twoFactor4","twoFactor5","twoFactor6","submitTwoFactor","backOnClick","reset","submitting","hasAccount","incorrectCredencials","invalidTwoFactor","setItem","attempts","isAdmin","failCallback","notActiveCallback","cipherPassword","isNaN","guid","checkValidPassword","confirmPassword","checkPassword","company","suggestions","filteredCompanies","searchCompany","dropdown","emptySearchMessage","checkEmail","emailInvalid","emailExists","cancelOnClick","buttonLabel","lastName","usernameExists","passwordNotMatch","passwordNotValid","companies","phoneNumber","getExistingCompanies","hasSpecialCharacters","test","re","isUsernameExist","register","updateUser","isEmailExist","query","phone","Login","Register","setProject","newProject","activeIndex","minimizeWin","close","lazy","proponent","agreement","mainContractor","engineerConsultant","eiaReference","description","rows","specialFeature","checkInfo","projectTitleExists","switchSiteDraw","switchZoneCutterDraw","uploadFileSite","shpfileName","multiple","uploadFileZone","shpzonefileName","scrollable","editMode","onZoneEditComplete","scrollHeight","sortField","sortOrder","field","sortable","editor","options","typeOptions","optionLabel","optionValue","localeCompare","numeric","sensitivity","groups","projectStart","projectEnd","constructionWorks","activities","setTasks","addTask","ref","selectedZone","downloadTemplate","uploadFile","fileName","confirmOverwriteProject","showImport","align","setSelectedZone","updateEquipmentGroup","openCWAct","prevPage","savingProject","saveProject","nextPage","savingProject2","saveUnregSites","siteDrawMode","unregSiteDrawMode","exitDrawMode","importZoneName","importZoneNameFieldOptions","placeholder","zoneNameFieldChange","exitUnregDrawMode","switchUnregSiteDraw","showCWAct","filterTasks","selectedActivities","selectedCw","cwActs","listStyle","groupName","groupDuration","showIcon","dateFormat","selectionMode","importActivities","taskFiltered","gantt","setGantt","setSelectedGroups","showTaskTable","selectedTask","dates","Array","modes","selectedMode","selectedGroups","minDate","maxDate","getTime","header_height","column_width","view_modes","bar_height","bar_corner_radius","arrow_curve","view_mode","date_format","draggable","hasArrows","custom_popup_html","on_click","showPopup","on_date_change","on_progress_change","progress","on_view_change","taskTable","children","ganttChart","scrollTop","updated","new_height","offsetHeight","$svg","selectedGroupNames","clientWidth","files","isImage","filename","endpoint","download","preview","deleteFile","selectFile","object","click","delete","selectedZoneTemplate","importTasks","newTask","group","filteredGroups","searchGroup","newTaskDuration","addNewTask","option","slotProps","custom_class","change_view_mode","updateHeight","onTaskEditComplete","deleteTasksFromZone","deleteTaskFromZone","GanttChart","cwModel","activityModel","cwOrActivityModel","taskImported","maxId","id_0","groupNames","newValue","UploadFile","TaskTable","showGantt","beforeMount","Moveable","Schedule","setup","scheduleRef","taskChanged","selectedTemplate","districtOptions","calculationType","panelHeight","importing","showImport2","unregSiteName","unregSiteAffectDegree","unregSiteRadus","oldZones","computedHeight","check","projectTitleWithoutVersion","updateProjectDate","getUserName","targetDistrict","ownerUserId","ownerCompany","owner","updatedBy","submitted","ismultipolygon","projectCopied","switchPanel","zoneCount","onDrag","$refs","uploadOk","zoneNameFields","findIndex","oldZoneId","oldIndex","zoneSwitchId","ac","promises","Promise","all","importSchedule","reader","FileReader","readAsBinaryString","onload","lines","zoneIndex","groupIndex","taskIndex","startIndex","endIndex","cells","newData","tempData","charAt","findSimilarTextWithCWAndActivity","currentCW","currentAct","cwWords","word","initGroups","initCWActPMEs","allActs","cw","flat","officialId","hasNeighbors","unregisteredNeighbours","$route","searchProject","empty","selectedVersion","versions","openedBy","readonlyUserIds","openProject","adminUserIds","memberUserIds","targetProject","confirmDeleteProject","projectVersion","saving","saveAsNewProject","projectName","otherName","isNewVersion","sourceProjectId","targetProjectId","copyToProduction","copyToProduction2","acceptClass","deleteProject","index2","Projects","ProjectDialog","projectsRaw","filtered","p1","districtProjectsRaw","getCurrentProject","binary","deleteNeighbor","confirmClose","model","taskTree","expandedKeys","selectedObject","selectedExclusiveGroup","exclusiveGroups","editable","newEquipment","exclusiveGroup","changeExclusiveGroup","selectedEquipments","selectedActivity","activityOptions","optionGroupLabel","optionGroupChildren","reduce","importEquipment","selectedZoneActivity","importEquipmentFromActivity","selectedZoneActivities","confirmOverwriteEquipment","filteredEquipments","filterDisplay","globalFilterFields","frozen","noisePower","defaultNoisePower","showUploadDialog","selectedEquipment","frozenValue","rowGroupMode","groupRowsBy","expandableRowGroups","expandedRowGroups","selection","groupheader","headerStyle","searchAutoCompletePME","selectAutoCompletePME","filteredPMEs","showEquipmentList","quantity","updateTaskTreeStatus","noisePowerMin","noisePowerMax","showButtons","getStartDate","getEndDate","timePercent","percentMin","suffix","locationOptions","onChange","locationChange","isclicked","addnewEquipment","deleteEquipment","saving1","saving2","equipmentDraw","searchPME","search","selectedPMEs","selectedQPMEs","searchedPMEs","setCurrentSelect","addnewEquipments","fe","showRequiredPMEDialog","currentSelected","required1","$data","emptyMessage","addRequiredEquipments","fromAutoComplete","closeEqpDraw","uploadSupportMaterials","supportMaterials","fileEndpoint","equipment","supportMaterial","formData","FormData","onUploadProgress","progressEvent","loaded","s","SupportMaterialTable","selected","newEquipmentAutoComplete","pmes","searchedQPMEs","selectedRequired1","selectedRequired2","selectedRequired3","columns","activitiesData","timePeriodOptions","timePeriodModel","pmeOptions","selectedGroup","zoneActivityOptions","initialEquipment","saved","sortedEquipments","eq","duplicate","isqpme","qpmename","qpmeNoisePower","filterEquipment","editPMEPosition","pmeIndex","slotProp","initEquipments","required2","required3","isQPME","initTaskTree","zoneLevel","command","select","originalEvent","items","getTaskStatus","maxPMEId","projectactid","timePeriod","isqcm","g","getGroupStatus","taskItems","completed","isNullUndefEmptyStr","groupTree","expandNode","child","initActivityOptions","innerText","equipmentList","e2","isQPM","copyEquipmentToActivities","overwrite","querySelector","li","searchMember","projectRole","showAddMemberDialog","projectMembers","updateMemberRole","roleUpdating","projectDeleting","deleteMember","organizationMembers","role","updateUserRole","activating","activateUser","removeUser","membersToAdd","members","adding","addMembers","newAddedMembers","getProjectMembers","initProjectMember","adminUsers","memberUsers","readonlyUsers","getCurrentUserProjectRole","getOrganizationMembers","existingMemberIds","u","member","printMode","reports","neighborProjects","appendix","roleInProject","checkSupportMaterial","userDefinedEquipments","attachments","uploadAttachments","togglePrintMode","submitLabel","saveReport","saveAppendix","submit","pointSelectMode","changeSelectionMode","clearSelection","doneSelect","totalProgress","showSubmit","colspan","checked","itemSize","showLoader","userInput","general","versionNo","lastUpdate","cpoa","cnp","status","details","ep","exp","dp","other","cna","reason","rtp","additionalInfo","prepared","by","qcmList","qpmeList","mitigationList","qpme","activity","enclosureDba","barrierDba","custommethodname","customMethod","splitToPages","page","calcResultDetailsUnmitigatedCleaned","getMaxConstructionActivityTaskLength","calcResultDetailsUnmitigated","calcResultDetail","getConstructionActivityTask","nsrMitigated","buildingids","values","getExceeding","exceedReason","nsrPointHistory","oldx","oldy","history","cnm","others","pean","chm","nsrUnmitigated","getTotalDays","getTotalWeeks","getTotalMonths","months","getCredit","qcm","buildingIds","getConstructionActivity","taskId","getTaskName","calcResultDetails","building","criteria","getExceedingDuration","zoneTasks","list","firstPageCount","otherPageCount","pages","sublist","custommethoddba","rowData","constructionActivity","constructionActivityA","pmeA","qtyA","timePercentA","constructionActivityB","pmeB","qtyB","timePercentB","calcResultNSRUnmitigated","calcResultNSRMitigated","InputLabel","DropdownLabel","rowspan","scrollWidth","siteImage","crossorigin","getZoneName","taskCombination","combination","combinationString","getNSRTasks","getNSRZones","exclusiveGroupCount","getAvgNSRTasksCount","flatMap","ceil","nsrData","calcResultDetailsMitigated","legend","getMonthsBetweenDates","getDaysBetweenDates","setHours","isDateBetweenDates","getWeeksBetweenDates","w","getYearBetweenDates","days","weeks","setMonth","years","setYear","numberToLetter","num","fromCharCode","getCombinationString","getNoiseCriteriaBetweenDates","getCombineTasksBetweenDates","longestCombination","getTotalNSRTasks","count","tc","longest","ReportGantt","ReportNoiseGantt","Report","Appendix","blobs","isCustomQCM","isCustomEquipment","isCustomQPME","isCustomMethod","attachment","div","scaleBy","clientHeight","canvasTemp","getContext","scale","report","html","doc","output","windowWidth","tables","appendixList","onbeforeunload","blob","selectNSRPointsToReport","cleanCalcDetails","calcDetails","cleaned1","calcDetail","exclusivegroups","cleanedDetail","cleaned2","c2","exists","ex","filtered2","pme2","final","inputs","input","customQCMName","qpmeDefaultNoisePower","toDataURL","calcResult","calc","totalcnl","results","taskIds","calcResultDetailsMitigatedCleaned","fullPath","tabActiveIndex","selectedRank","nsrRankOption","rankChange","getCurrentTotalUnmitigatedCnl","getCurrentNoiseResultText","updatedMitigatedEquipments","lastRedFloor","getStage","getIsReadOnly","getIsCustomMethod","updateQCMNoisePower","updateCustomQCMNoisePower","updateQPMENoisePower","allowEmpty","correctedSWL","copyMitigationForEquipment","barrierHeight","updatedMitigatedEquipmentsAll","paginator","paginatorTemplate","responsiveLayout","currentPageReportTemplate","stage","isCalculating","fillQPME","fillMitigation","mitigatedEquipments","mitigatedEquipmentsAll","groupResultList","groupResultListForDistances","calculationResultList","currentGroupResult","currentGroupResultUnmitigated","rankOption","qpmeRelPMEList","relatedPMEList","zoneTaskList","filteredGroupResultList","fixedLocationFeatures","zoneCentroidDictionary","savedStartDate","savedEndDate","currentRankNSRBuildingId","currentRankNSRBuildingName","currentSelectedBuildingId","currentSelectedZoneTaskArr","qcmEquipmentList","getCurrentTotalCnl","getCurrentNoiseCriteria","getCurrentStartDate","getCurrentEndDate","getCurrentBuildingid","getCurrentBuildingName","getCurrentNSRName","getCurrentNSRPointId","curProj","calculationResult","groupTask","taskname","timePercentCorrection","hammerDba","getQPMEOption","rowdata","currentOption","formatDate","onShow","onHide","aMitEqp","taskName","zoneTaskId","updateIsCalculatedOnProject","save2","waitUntilIsCalculatedIsOne","initMitigatedEquipments","theName","names","getPMESWLByName","updateQPMENoisePowerAll","reCalculatePromise","resolve","frl","groupResultListFiltered","testcurrentGroupResult","firstStartDate","firstEndDate","objToSent","checkCalculationDone","getCalculationGroupsResult","buildingidToShow","tempResultList","tempResultList2","iniQPMERelPME","getCalculationGroupsResult2","tempRank","r","r1","initQPME","q","allEqpList","theFields","dynamicSortMultiple","eqpWithTaskArr","getTaskFromTaskId","tempMitAllSorted","setCurrentRankParameters","getPMEByID","theObj","getPMENameByID","getQPMERelByName","theObjArr","getQPMERelNameByName","checkGroupResultIndexByDates","dx","currItem","rankIndex","zoneTaskArr","zoneOrTaskArr","aZone","aTask","tempMit","eqp","tempMitSorted","selectedBuildingId","selectedzonetaskorcombined","selectedzonetaskorcombinedArr","selectedBuildingNoiseCriteria","bldHeight","assumptionHeightPerFloor","minFiveBarFound","curEqpObj","filteredCalcResultListForDistances","theSortFields","anItem","zoneTaskItem","notFound","aDistanceResult","filteredResultList","filteredDateList","currentDateSignature","getTaskFromStartAndEndDate","startDateString","endDateString","taskObjArr","found","dynamicSort","property","substr","properties","propA","propB","args","prop","obj1","obj2","numberOfProperties","currentPME","currentQPMEName","currentQPMENoisePower","currentEnclosureDBA","currentBarrierDBA","currentHammerDBA","currentcustommethoddba","currentcustommethodname","currentIsQCM","anObj","params","projectPMEFeatures","flexDirection","userByMonth","companyByMonth","projectByMonth","projectByDistrict","projectAccumulative","districtAdmins","editingRows","adminEditingRows","onAdminRowEditSave","mask","rowEditor","bodyStyle","searchUser","searchUsers","allUsers","removableSort","targetUser","confirmDeleteUser","downloadCWActPME","updateCWActPME","cwActPMEUpdateResult","downloadEquipment","updateEquipment","EquipmentUpdateResult","dataKey","pmeEditingRows","onEquipmentRowEditSave","Line","Bar","LineChart","BarChart","filteredUsers","cwActPMERaw","allProjects","labels","datasets","getDistrictAdmins","getAllUsers","registerDate","createdDate","initUserLineChart","getAllProjects","initProjectLineChart","initProjectBarChart","lowerSearch","deleteUser","cwAct","newAct","getEquipment","encodedUri","encodeURI","editEquipment","deletedEquipment","dataString","newEquipments","readAsText","getCWActPMERaw","cwName","activityName","pmeName","pmeOfficialId","newCWActPME","editCWActPME","deletedCWActPME","newCWActPMEs","companyCreatedDate","userAccumulative","companyAccumulative","lastUserCount","lastCompanyCount","currentMonth","targetMonth","borderColor","create","approve","createAccumulative","submitAccumulative","approveAccumulative","lastCreatedCount","lastSubmittedCount","lastApprovedCount","created","districts","newNSRName","newNSRCriteria","selectAndMoveNSRPoints","changeProjectNSRPointButtonLabel","doneNSRBuildingPointsMove","selectNSRPointsToDelete","addPointNSRButtonLabel","doneSelectNSRPointsToDelete","addNSRPointsMode","doneAddNewNSRPoints","selectedNSRPoints","onRowEditSave","selectedContribution","showContributionWindow","editingRow","deleteContribution","recalculating","newContribution","addContribution","showAlert","critProjectName","critStartDate","critEndDate","criteriaValue","testText","mainWinHeigh","mainWinTop","minMode","changeProjectNSRPointPositionMode","deleteNSRPointsMode","buttonLabelChangeProjectNSRPointOrDone","buttonLabelAddPointNSROrDone","buttonLabelDeletePointNSROrDone","isTableVisible","isAllModeReleased","deletePointNSRButtonLabel","updateNSRPoints","getContributionText","switchMode","addNSRBuildingMode","removeNSRBuildingMode","changeNoiseNSRBuildingMode","switchButtonLabel","textLabel","buttonLabelAddNSRProcessingOrDone","buttonLabelRemoveNSRProcessingOrDone","buttonLabelChangeNoiseProcessingOrDone","newNSRNameRef","newNSRCriteriaRef","isClosest","editCenterPointMode","centerPointEdit","changeSaveButtonLabel","centerPointSave","closeMenu","saveButtonText","switchSaveButtonLabel","self","self2","self3","self4","notionalDistances","getDistance","to","from","next","store","routes","MainView","beforeEnter","SelectionView","NotionalDistanceView","LoginView","ResetPasswordView","ApproveView","AdminView","router","orientation","numToleratedItems","delay","loaderDisabled","showSpacer","first","isBoth","cols","last","numItemsInViewport","lastScrollPos","top","left","d_numToleratedItems","d_loading","loaderArr","spacerStyle","contentStyle","scrollTimeout","init","oldValue","setSize","calculateOptions","setSpacerSize","isVertical","isHorizontal","scrollTo","scrollToIndex","behavior","both","horizontal","calculateNumItems","contentPos","getContentPosition","calculateFirst","_index","_numT","calculateCoord","_first","_size","_cpos","newFirst","scrollInView","viewport","getRenderedRange","isToStart","isToEnd","calculateFirstInViewport","_pos","firstInViewport","lastInViewport","scrollLeft","scrollPos","contentWidth","offsetWidth","contentHeight","calculateNumItemsInViewport","_contentSize","_itemSize","calculateNumToleratedItems","_numItems","calculateLast","_num","_isCols","getLast","isCols","getComputedStyle","paddingLeft","right","paddingRight","paddingTop","bottom","paddingBottom","setProp","_name","_value","setContentPosition","calculateTranslateVal","setTransform","_x","_y","translateVal","onScrollPositionChange","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","_currentIndex","_last","_isScrollDownOrRight","_triggerIndex","lastValue","newLast","isRangeChanged","isScrollDown","isScrollRight","triggerIndex","isScrollDownOrRight","onScrollChange","newState","onScroll","changed","getOptions","renderedIndex","even","odd","getLoaderOptions","extOptions","elementRef","contentRef","containerClass","contentClass","loaderClass","$slots","loadedItems","loadedRows","loadedColumns","_ctx","_cache","$props","$setup","$options","styleClass","getItemOptions","vertical","_","numCols","d_numItemsInViewport","styleInject","css","insertAt","head","getElementsByTagName","firstChild","insertBefore","styleSheet","cssText","createTextNode","css_248z","extends","App","handleBeforeUnload","returnValue","use","directive","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","fulfilled","every","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","ns","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","chunkId","miniCssF","globalThis","hmd","Error","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","doneFns","bind","Symbol","toStringTag","installedChunks","installedChunkData","promise","loadingEnded","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}