{"version":3,"file":"DashboardPage.0dfd49f78dc93c695e30.js","mappings":"uLAGO,MAAMA,EAAsB,KAAM,CACvCC,KAAM,QACNC,MAAO,CAAEC,OAAQ,CAAC,IAAK,KAAM,QAC7BC,QAAS,CAAEH,KAAM,MAAOE,OAAQ,IAChCE,UAAW,CAAEJ,KAAM,KAAME,OAAQ,CAAC,OAClCG,SAAU,CAAEL,KAAM,SAGPM,EAA+BC,MAC1CC,EACAC,EACAC,EACAC,KAEA,GAAuB,IAAnBF,EAAQG,OACV,MAAO,oCAGT,GAAIJ,GAAmBA,EAAgBI,OACrC,MAAO,qDAGT,IAAIC,EAAuB,EACvBC,EAAgC,EAEpC,IAAK,MAAMC,KAAUN,EAAS,CAC5B,MAAMO,EAAQD,EAAOJ,YAAcA,EAC7BM,QAAWP,EAAcQ,IAAIF,GAC9BC,EAAGE,KAAKC,SAEFH,EAAGI,wBAA0BJ,EAAGI,uBAAuBN,IAChED,IAFAD,IAMJ,OAAIA,IAAyBJ,EAAQG,OAC5B,mDAGLE,IAAkCL,EAAQG,OACrC,wDAGF,K,gqBCnCF,MAAMU,EAA6B,IAGA,IAHmB,sBAC3DC,GAEwC,EADrCC,E,oIACqC,MACxC,MAAMC,GAASC,EAAAA,EAAAA,YAAWC,GAC1B,OACE,SAAC,IAAD,eACEJ,sBACEA,EACI,CAACK,EAAMC,EAAOC,KACZ,kCACKD,IAAUC,EAAMlB,OAAS,KAAM,gBAAKmB,WAAWC,EAAAA,EAAAA,IAAGP,EAAOQ,iBAAkBR,EAAOS,aACpFX,EAAsBK,EAAMC,EAAOC,WAGxCK,EAENC,mBAAoB,KAClB,gBAAKL,UAAWN,EAAOY,SAAvB,UACE,gBAAKN,WAAWC,EAAAA,EAAAA,IAAGP,EAAOa,gBAAiBb,EAAOS,eAGtDK,iBAAkB,CAACC,EAAGX,EAAOC,KAC3B,iBAAKC,UAAWN,EAAOY,SAAvB,WACE,gBAAKN,WAAWC,EAAAA,EAAAA,IAAGP,EAAOgB,aAAchB,EAAOS,eAC5CL,IAAUC,EAAMlB,OAAS,KAAM,gBAAKmB,WAAWC,EAAAA,EAAAA,IAAGP,EAAOiB,gBAAiBjB,EAAOS,iBAGpFV,KAKGG,EAAagB,IAAD,CACvBN,SAAUO,EAAAA,GAAI;;;IAIdV,UAAWU,EAAAA,GAAI;;6BAEYD,EAAME,OAAOC,OAAOC;;;MAG3CJ,EAAMK,YAAYC,KAAK;;;IAI3BR,aAAcG,EAAAA,GAAI;;+BAEWD,EAAME,OAAOC,OAAOC;;;IAIjDL,gBAAiBE,EAAAA,GAAI;;;IAIrBX,iBAAkBW,EAAAA,GAAI;;;;IAKtBN,gBAAiBM,EAAAA,GAAI;;;wXChEvB,MAAMM,EAAsC,IAA0B,IAAzB,UAAEC,EAAF,MAAaC,GAAY,EACpE,OAAKA,GAKH,gCACGD,EADH,WACc,SAAC,EAAAE,KAAD,CAAMC,KAAK,iBADzB,IAC2CF,MALpC,8BAAGD,M,s/CCSP,MAAMI,EAAyB,IAAc,IAAb,KAAEC,GAAW,EAClD,MAAM/B,GAASC,EAAAA,EAAAA,YAAWC,IACpB,SACJ8B,EACAN,WAAW,YAAEO,IACXF,EAEEG,EAAcC,OAAOC,QAAQL,EAAKG,aAAaG,QAAO,QAAEtB,EAAGuB,GAAL,UAAkBA,EAAMC,UAEpF,OACE,4BACE,SAACC,EAAA,EAAD,CAA0BT,KAAMA,EAAME,YAAaA,KACnD,iBAAK3B,UAAWN,EAAOyC,QAAvB,WACE,iBAAKnC,UAAWN,EAAO0C,SAAvB,YACKX,EAAKY,UAAYR,OAAOS,KAAKb,EAAKY,QAAQxD,SAC3C,SAAC0D,EAAA,EAAD,CAAcC,MAAM,SAASC,YAAY,EAAzC,UACE,SAACC,EAAA,EAAD,CAAaL,OAAQZ,EAAKY,YAG9B,SAACM,EAAA,EAAD,CAAuBhB,YAAaA,EAAaF,KAAMA,EAAMG,YAAaA,KAC1E,SAACgB,EAAA,EAAD,CAAwBhB,YAAaA,QAEvC,gBAAK5B,UAAWN,EAAOmD,UAAvB,UACE,SAACC,EAAA,EAAD,CAAwBnB,YAAaA,EAAaF,KAAMA,UAG5D,SAACsB,EAAA,EAAD,CAA8BrB,SAAUA,QAKjC9B,EAAagB,IAAD,CACvBuB,QAAStB,EAAAA,GAAI;;;MAGTD,EAAMK,YAAYC,KAAK;;;IAI3BkB,SAAUvB,EAAAA,GAAI;;IAGdgC,UAAWhC,EAAAA,GAAI;MACXD,EAAMK,YAAY+B,GAAG;;;;qKClCpB,MAAMC,EAAwB,IAO/B,IAPgC,MACpCC,EADoC,UAEpClD,EAFoC,eAGpCmD,GAAiB,EAHmB,aAIpCC,EAAe,kBAJqB,gBAKpCC,GAAkB,EALkB,kBAMpCC,GAAoB,GAChB,EACJ,MAAM5D,GAASC,EAAAA,EAAAA,YAAWC,GAEpB2D,GAAetD,EAAAA,EAAAA,IAAGP,EAAOyC,QAASnC,EAAW,CAAE,CAACN,EAAO8D,eAAgBL,IAEvEpD,GAAQ0D,EAAAA,EAAAA,UAAQ,KACpB,MAAMC,EAAqB,GAC3B,OAAOR,EAAMS,KAAI,CAAClC,EAAMmC,KAAY,MAClC,IAAIC,EAAMC,KAAKC,UAAU,WAACtC,EAAKC,gBAAN,aAAC,EAAezD,KAAMwD,EAAKY,OAAQZ,EAAKvD,MAAOuD,EAAKF,KAAME,EAAKG,cAKxF,OAJI8B,EAASM,SAASH,KACpBA,GAAQ,IAAGD,KAEbF,EAASO,KAAKJ,GACP,CACLK,GAAIL,EACJM,KAAM1C,QAGT,CAACyB,IAEEkB,EAoCR,SAAoBd,EAA4BD,GAC9C,MAAMgB,GAAWC,EAAAA,EAAAA,KAEjB,OAAOb,EAAAA,EAAAA,UAAQ,KACb,MAAMW,EAAkC,CACtC,CACEF,GAAI,QACJ1B,MAAO,QAEP+B,WAAY,IAAoB,IAAjBJ,KAAM1C,GAAW,EAC9B,MAAM,UAAEL,GAAcK,GAChB,YAAEE,GAAgBP,GAClB,SAAEM,EAAF,UAAY8C,GAAc/C,EAC1BgD,KAAgBJ,EAAS1C,KAAgBD,GAAa8C,GACtDE,KAAgBL,EAAS1C,KAAgB6C,GAAc9C,GAC7D,OAAO,SAACiD,EAAA,EAAD,CAAWlD,KAAMA,EAAMgD,WAAYA,EAAYC,WAAYA,KAEpEE,KAAM,SAER,CACEV,GAAI,OACJ1B,MAAO,OAEP+B,WAAY,QAAGJ,KAAM1C,GAAT,SAAoBA,EAAKF,MACrCqD,KAAM,GAER,CACEV,GAAI,SACJ1B,MAAO,SAEP+B,WAAY,QAAGJ,MAAM,SAAEzC,IAAX,SAA6BA,GAAW,SAACmD,EAAA,EAAD,CAAYpD,KAAMC,IAAe,MACrFkD,KAAM,SAgCV,OA7BItB,GACFc,EAAQH,KAAK,CACXC,GAAI,UACJ1B,MAAO,UAEP+B,WAAY,cAAGJ,KAAM1C,GAAT,mBAAoBA,EAAKG,YAAYkD,EAAAA,GAAAA,gBAArC,QAA4D,IACxEF,KAAM,IAGNvB,GACFe,EAAQH,KAAK,CACXC,GAAI,QACJ1B,MAAO,QAEP+B,WAAY,IAAoB,IAAjBJ,KAAM1C,GAAW,EAC9B,MAAM,UAAEL,EAAF,MAAaC,GAAUI,EAS7B,MAPmC,YAAfJ,EAAME,MAExB,SAACJ,EAAA,EAAD,CAAcC,UAAWA,EAAUG,QAEnC,SAACJ,EAAA,EAAD,CAAcC,UAAWA,EAAUG,KAAMF,MAAOA,EAAME,QAK1DqD,KAAM,IAGHR,IACN,CAACC,EAAUf,EAAmBD,IApGjB0B,CAAWzB,EAAmBD,GAE9C,IAAKH,EAAMrE,OACT,OAAO,gBAAKmB,WAAWC,EAAAA,EAAAA,IAAGsD,EAAc7D,EAAO0D,cAAxC,SAAwDA,IAGjE,MAAM4B,EAAiB7B,EAAiB5D,EAAAA,EAA6B0F,EAAAA,EAErE,OACE,gBAAKjF,UAAWuD,EAAc,cAAY,cAA1C,UACE,SAACyB,EAAD,CACEE,KAAMd,EACNe,cAAc,EACdpF,MAAOA,EACPP,sBAAuB,QAAG2E,KAAM1C,GAAT,SAAoB,SAACD,EAAD,CAAaC,KAAMA,UAMzD7B,EAAagB,IAAD,CACvB4C,cAAe3C,EAAAA,GAAI;MACfD,EAAMK,YAAY+B,GAAG;;;IAIzBI,aAAcvC,EAAAA,GAAI;eACLD,EAAMwE,QAAQ;IAE3BjD,QAAStB,EAAAA,GAAI;;wBAESD,EAAME,OAAOuE,WAAWC;qBAC3B1E,EAAM2E,MAAMC;6WC/E1B,SAASlB,IACd,MAAMmB,GAAaC,EAAAA,EAAAA,IAA4BC,GAAUA,EAAMF,aAC/D,OAAOG,EAAAA,EAAAA,cACJjE,IAAsC,MACrC,MAAMkE,EAAyC,iBAAhBlE,EAA2BA,EAAcA,EAAYJ,KACpF,OAAOsE,IAAoBC,EAAAA,MAA8B,UAACL,EAAWI,UAAZ,QAAC,EAA6BE,UAEzF,CAACN,M,wiDCJE,MAAMO,EAAkB,IAA0B,IAAzB,UAAEC,GAAuB,EACvD,MAAMvG,GAASwG,EAAAA,EAAAA,WAAUtG,GACzB,OAAKqG,GAKH,gBAAKjG,UAAWN,EAAOyG,iBAAvB,UACE,SAAC,EAAAC,MAAD,CAAOC,SAAUC,EAAAA,GAAAA,MAA+BC,MAAON,EAAUO,QAAjE,UACGC,EAAAA,EAAAA,GAAoBR,EAAUS,WAN5B,MAYE9G,EAAagB,IACjB,CACLuF,iBAAkBtF,EAAAA,GAAI;;;;;cCjBnB,MAAM8F,EAAmB,IAA0B,IAAzB,UAAEC,GAAuB,EACxD,MAAMlH,GAASwG,EAAAA,EAAAA,WAAUtG,GAKzB,OACE,gBAAKI,UAAWN,EAAOyG,iBAAvB,UACE,gBAAKnG,UAAWN,EAAOmH,qBAAvB,UACE,UAAC,EAAAC,cAAD,CAAe1B,QAAQ,KAAvB,WACE,UAAC,EAAA2B,gBAAD,CAAiBC,MAAM,SAASC,QAAQ,SAAS7B,QAAQ,KAAzD,iBACE,SAAC,EAAA8B,QAAD,CAASC,QAAQ,KADnB,IAC6BP,KACV,KACnB,SAAC,EAAAG,gBAAD,CAAiBC,MAAM,SAASC,QAAQ,SAAxC,UACE,SAAC,EAAAG,OAAD,CAAQC,QAAQ,YAAYzC,KAAK,KAAK0C,KAAK,SAASC,QAZtC,KACtBC,EAAAA,gBAAAA,KAAqB,MAWb,gDAUC5H,EAAagB,IAExB,MAEM6G,EAAqBC,EAAAA,SAAU;;;IAKrC,MAAO,CACLvB,iBAAkBtF,EAAAA,GAAI;;;;;;mBAMP4G,iBAdU;MAgBzBZ,qBAAsBhG,EAAAA,GAAI;mBACXD,EAAM+G,WAAW/C,KAAKgD;k4BCpClC,MAAMC,EAAyC,IAOhD,IAPiD,MACrDC,EADqD,SAErDC,EAFqD,gBAGrDC,EAHqD,UAIrDC,EAJqD,UAKrDC,EALqD,UAMrDC,GACI,EACJ,MAAOC,EAAcC,IAAmBC,EAAAA,EAAAA,UAAS,IAC3CC,GAAYC,EAAAA,EAAAA,IAAShK,UACzB,MAAMiK,QAAmBC,EAAAA,EAAAA,IAAuBZ,EAAMa,aAAaC,KACnE,OAAIH,EAAW5J,OAAS,EACf4J,EAAW9E,KAAKkF,GAASA,EAAKtC,QAGhC,KACN,CAACuB,EAAMa,aAAaC,OAEhBE,EAAoBC,IAAyBT,EAAAA,EAAAA,UAAmB,KACvEU,EAAAA,EAAAA,IACE,IACOT,EAAUvG,MAIR+G,EACLR,EAAUvG,MAAMD,QAAQkH,GAAaA,EAASC,cAAclF,SAASoE,EAAac,kBAJ3EH,EAAsB,KAOjC,IACA,CAACR,EAAUvG,MAAOoG,IAGpB,MAAM,iBAAEe,IAAqBC,EAAAA,EAAAA,KACvB1J,GAASwG,EAAAA,EAAAA,WAAUmD,EAAAA,GACnBC,GAAkB1D,EAAAA,EAAAA,cAAY,KAClCuC,MACC,CAACA,IAEE5B,EAAQyB,EAAkB,gCAAkC,qBAElE,OACE,SAAC,EAAAuB,MAAD,CAAOhD,MAAOA,EAAOe,KAAK,OAAOW,UAAWA,EAAWuB,QAAQ,EAA/D,UACE,4BACE,eAAGxJ,UAAWN,EAAO+J,SAArB,UACG,4BACD,8BACG3B,EAAMa,aAAavJ,KAAKsK,oBAAqB,IACG,IAAhD5B,EAAMa,aAAavJ,KAAKsK,oBAA4B,YAAc,aAFrE,OAFF,iEAQA,SAAC,EAAAC,MAAD,CACE3J,UAAWN,EAAOkK,gBAClBC,OAAM,OAAE,SAAC,EAAAvI,KAAD,CAAMC,KAAK,YACnBuI,YAAY,6BACZ9H,MAAOoG,EACP2B,SAAWC,GAAM3B,EAAgB2B,EAAEC,cAAcjI,SAElDuG,EAAU2B,QAAV,OACC,6DAEA,mBAAOlK,UAAWN,EAAOyK,QAAzB,iBACE,4BACE,yBACE,iDAGJ,2BACGrB,EAAmBnF,KAAI,CAACsF,EAAUmB,KACjC,yBACE,wBAAKnB,KADG,WAAUmB,aAO5B,UAAC,EAAAb,MAAA,UAAD,YACE,SAAC,EAAAnC,OAAD,CAAQC,QAAQ,YAAYE,QAASU,EAAWoC,KAAK,UAArD,oBAGCrC,IACC,SAAC,EAAAZ,OAAD,CAAQC,QAAQ,cAAcE,QAAS+B,EAAvC,sBAIF,SAAC,EAAAlC,OAAD,CACEG,QAAS,KACP4B,EAAiBrB,EAAOC,GAAUuC,MAAK,KACrCpC,QAHN,iC,8RCxEH,SAASqC,IACd,OAAO/L,MAAOgM,EAAUC,KACtB,MAAM,SAAEC,GAAaD,IAAWE,YAChCD,IAAWE,UAAY,EACvBJ,GAASK,EAAAA,EAAAA,KAAkB,KAoDxB,SAASC,EAAgBC,EAA2BC,GAAoC,MAE7F,OAAI,UAAAA,EAAcrC,oBAAd,eAA4BC,OAAQmC,EAAcpC,aAAcC,SAKhEoC,EAAc9G,IAAM8G,EAAc9G,KAAO6G,EAAc7G,OAKvD8G,EAAcC,eAOb,SAASC,IACd,OAAO1M,MAAOgM,EAAUC,KACtB,MAAMU,EAAYV,IAAWU,UAAUC,YACjC,SAAEV,EAAF,eAAYW,EAAZ,qBAA4BC,GAAyBb,IAAWE,YAChE7C,EAAQ4C,IAMd,GAJIS,GACFA,EAAUD,mBAGPI,EAAsB,CACzB,MAAMC,EAAoBzD,EAAM0D,eAC1BC,EAAcJ,IACdK,EAAmBD,EAAYxN,OAAS6J,EAAM7J,KAOpD,GALAuM,EAlFC,SACLO,EACAI,GAEA,OAAQX,IAAa,MACnB,QAAwCpK,KAApC,UAAA2K,EAAcpC,oBAAd,eAA4BC,OAAsBuC,EACpD,OAGF,MAAMI,EAAoBR,EAAcS,eACxC,IAAK,MAAM1D,KAASqD,EAAUQ,OAAQ,SACpC,GAAIb,EAAgBC,EAAejD,GACjC,SAGFA,EAAM8D,aAAN,iBACKL,GACAM,EAAAA,EAAAA,MAAK/D,EAAO,UAAW,QAK5B,MAAMgE,GAAgB,UAAAhE,EAAMiE,cAAN,eAAc3M,KAAK8E,OAAnB,UAA0B6G,EAAcgB,cAAxC,aAA0B,EAAsB3M,KAAK8E,IAI3E,GAHA4D,EAAMiE,OAAShB,EAAcgB,OAC7BjE,EAAM8C,YAEFkB,EAAe,CACjB,MAAME,EAAalE,EAAMjE,IACzBiE,EAAMmE,iBAENzB,GAAS0B,EAAAA,EAAAA,IAAyB,CAAErI,IAAKiE,EAAMjE,IAAKkI,OAAQjE,EAAMiE,OAASC,WAAAA,KAK7EG,YAAW,KACTrE,EAAMsE,iBAAiBC,kBAAkBtB,EAAcqB,oBACtD,IAGDrB,EAAcuB,QAGhBH,YAAW,IAAMhB,EAAUoB,kBAAkB,KAuCpCC,CAA6B1E,EAAOqD,IAE7CM,EAAYG,aAAaL,GACzBE,EAAYb,YAERc,EAAkB,CAEpBD,EAAYM,OAASjE,EAAMiE,OAC3B,MAAMC,EAAaP,EAAY5H,IAC/B4H,EAAYQ,uBAENzB,GAAS0B,EAAAA,EAAAA,IAAyB,CAAErI,IAAK4H,EAAY5H,IAAKkI,OAAQjE,EAAMiE,OAASC,WAAAA,KAKzFG,YAAW,KACTV,EAAYW,iBAAiBC,kBAAkBvE,EAAMsE,kBACrDX,EAAYgB,WACX,IAGLjC,GAASkC,EAAAA,EAAAA,IAAkB5E,EAAMjE,MACjC2G,GAASmC,EAAAA,EAAAA,Q,8FClIN,MAAMC,EAA0D,IAKjE,IALkE,UACtEzB,EADsE,cAEtE0B,EAFsE,UAGtE1E,EAHsE,UAItEF,GACI,EACJ,OACE,UAAC,EAAAsB,MAAD,CACEC,QAAQ,EACRjD,MAAM,kBACN0B,UAAWA,EACXX,KAAK,uBACLtH,UAAWa,EAAAA,GAAI;;QALjB,iBASE,gEACA,UAAC,EAAA0I,MAAA,UAAD,YACE,SAAC,EAAAnC,OAAD,CAAQC,QAAQ,YAAYE,QAASU,EAAWoC,KAAK,UAArD,qBAGA,SAAC,EAAAjD,OAAD,CAAQC,QAAQ,cAAcE,QAASY,EAAvC,sBAGA,SAAC2E,EAAA,EAAD,CAAqB3B,UAAWA,EAAW0B,cAAeA,WCbrDE,EAAkBC,EAAAA,MAAW,IAA0B,IAAzB,UAAE7B,GAAuB,EAClE,MAAOxF,EAAOsH,IAAY3E,EAAAA,EAAAA,UAAgB,CAAE4E,SAAU,OAChD1C,GAAW2C,EAAAA,EAAAA,gBACX,SAAED,EAAF,aAAYE,GAAiBzH,GAC7B,UAAE0H,EAAF,UAAaC,IAAcC,EAAAA,EAAAA,YAAWC,EAAAA,gBAE5CC,EAAAA,EAAAA,YAAU,KAGR,MAAMC,EAAYvB,YAAW,KAC3B,MAAMiB,EAAe5F,EAAAA,gBAAAA,cAA8BmG,SAC7CT,EAAW/B,EAAUyC,oBAC3BX,EAAS,CAAEG,aAAAA,EAAcF,SAAAA,MACxB,KAEGW,EAAkBC,EAAAA,EAAAA,UAAoBC,EAAAA,IAAqB,KAC/D,MAAMb,EAAW/B,EAAUyC,oBAC3BX,EAAS,CAAEG,aAAAA,EAAcF,SAAAA,OAG3B,MAAO,KACLc,aAAaN,GACbG,EAAgBI,iBAEjB,CAAC9C,EAAWiC,KAEfK,EAAAA,EAAAA,YAAU,KACR,MAAMS,EAAgBC,IAChBC,GAAcjD,EAAW+B,IAGzBmB,GAAWlD,EAAW+B,KACxBiB,EAAMG,iBAGNH,EAAMI,YAAc,KAIxB,OADAC,OAAOC,iBAAiB,eAAgBP,GACjC,IAAMM,OAAOE,oBAAoB,eAAgBR,KACvD,CAAC/C,EAAW+B,IA6Df,OAAO,SAAC,KAAD,CAAQyB,MAAM,EAAMnI,QA3DHoI,IACtB,MAAMC,EAAc1D,EAAU0D,YACxBC,EAAS,IAAIC,gBAAgBH,EAASE,QAG5C,OAAID,GAAeA,EAAYlG,cAAgBkG,EAAYG,aAAeF,EAAOG,IAAI,cACnF5B,EAAUxF,EAAuB,CAC/BG,iBAAiB,EACjBF,MAAOqD,EAAU0D,YACjB9G,SAAUoD,EAAU/L,KAAK2I,SACzBG,UAAW,KACToF,IACA4B,EAA2CN,IAE7CzG,UAAW,KACTqC,EAASD,KACT2E,EAA2CN,GAC3CtB,KAEFrF,UAAWqF,KAEN,GAILF,IAAiBwB,EAASjB,UAAaT,IASvCkB,GAAcjD,EAAW+B,MAIxBmB,GAAWlD,EAAW+B,KAI3BG,EAAUT,EAAqB,CAC7BzB,UAAWA,EACX0B,cAAe,KACbS,IACA4B,EAA2CN,IAE7CzG,UAAW,KACT8E,EAAS,OAAD,UAAMtH,EAAN,CAAauH,SAAU,QAC/BI,IACA4B,EAA2CN,IAE7C3G,UAAWqF,KAGN,KA7BDuB,IAAgBC,EAAOG,IAAI,cAC7BzE,EAASU,MAGJ,SAiCb,SAASgE,EAA2CN,GAC9CA,GACFzC,YAAW,IAAM3E,EAAAA,gBAAAA,KAAqBoH,IAAW,IAO9C,SAASR,GAAce,EAAyBjC,GACrD,IAAKA,EACH,OAAO,EAIT,IAAKkC,EAAAA,GAAAA,WACH,OAAO,EAGT,IAAKD,IAAYA,EAAQ/P,KACvB,OAAO,EAGT,MAAM,QAAEiQ,EAAF,WAAWC,EAAX,SAAuBC,GAAaJ,EAAQ/P,KAClD,OAAKgQ,EAAAA,GAAAA,WAAwBC,KAIrBA,GAAWC,GAAcC,GAMnC,SAASC,GAAiCC,GAExC,MAAMC,EAAQ,IAAIC,EAAAA,EAAeF,GAIjCC,EAAME,aAEN,MAAM/G,EAAO6G,EAAM9B,oBAmCnB,OAhCA/E,EAAKgH,KAAO,EACZhH,EAAKiH,QAAU,EACfjH,EAAKkH,cAAgB,EACrBlH,EAAKmH,SAAW,SAGTnH,EAAKoH,UAEZpH,EAAK8C,QAAS5J,EAAAA,EAAAA,QAAO8G,EAAK8C,QAAS7D,IAC7BA,EAAMmD,gBAKVnD,EAAMoI,gBAAa9P,EAGf0H,EAAMqI,gBACDrI,EAAMqI,OAAOC,YACbtI,EAAMqI,OAAOE,WAGf,MAITC,EAAAA,EAAAA,MAAKzH,EAAK0H,gBAAiBC,IACzBA,EAASrB,QAAU,KACnBqB,EAASC,QAAU,KACnBD,EAASE,QAAU,QAGd7H,EAGF,SAASwF,GAAWc,EAAyBjC,GAClD,MAAMyD,EAAenB,GAAiCL,EAAQvB,qBACxDgD,EAAgBpB,GAAiCtC,GAEjD2D,GAAyBC,EAAAA,EAAAA,MAAMH,EAAqBI,IAAK,CAAE9S,KAAM,eACjE+S,GAA0BF,EAAAA,EAAAA,MAAMF,EAAsBG,IAAK,CAAE9S,KAAM,eAErE4S,GAAqBG,IACvBH,EAAkBI,IAAMD,EAAmBC,KAM7C,OAHoBnN,KAAKC,UAAU4M,EAAc,QAC5B7M,KAAKC,UAAU6M,EAAe,MA9FrD7D,EAAgBmE,YAAc,kB,sLCjHvB,MAAMC,GAAqB,CAChCrJ,EACA2I,EACAW,KAEA,MAAMC,GAAoBC,EAAAA,EAAAA,WACnBC,EAAYC,IAAiBlJ,EAAAA,EAAAA,YAsCpC,OApCAmF,EAAAA,EAAAA,YAAU,KACR,IAAIgE,GAAW,EACXC,EAAa,EAsBjB,OApBAL,EAAkBlC,QAAUrH,EACzBsE,iBACAuF,QAAQlB,GACRmB,UAAU,CACTC,KAAO1N,IACL,GAAIiN,EAAa,OACf,GAAIK,IAAYtN,EAAK2N,aAAc,CACjC,MAAMb,EAAMc,KAAKd,MAEjB,GADgBA,EAAMS,EACR,IACZ,OAEFA,EAAaT,EAEfQ,EAAO,UAAGtN,EAAK2N,oBAAR,SAAyB,EAElCN,EAAcrN,MAIb,KACDkN,EAAkBlC,SACpBkC,EAAkBlC,QAAQlB,iBAQ7B,CAACnG,EAAO2I,EAAQuB,gBAAiBvB,EAAQwB,iBAErC,CACL9N,KAAMoN,EACN7K,MAAO6K,GAAcA,EAAW7K,MAChCwL,WAAWX,GAAaA,EAAW5L,QAAUwM,GAAAA,aAAAA,QAC7CC,YAAWb,KAAeA,EAAWc,S,yLC1DlC,MAAMC,GAAwD,IAAkC,UAAjC,KAAEnO,EAAF,mBAAQoO,GAAyB,EACrG,OAAKA,GAAsB,UAACA,EAAmBC,kBAApB,OAAC,EAA+BC,mBAGpD,SAACF,EAAmBC,WAAWC,kBAA/B,CAAiD7T,WAAY2T,EAAoBpO,KAAMA,EAAKkO,SAFjG,SAAO,qD,4KCsBJ,MAAMK,GAAkC,IAYzC,IAZ0C,MAC9C5K,EAD8C,OAE9CiE,EAF8C,UAG9CZ,EAH8C,KAI9CwH,EAJ8C,KAK9CxO,EAL8C,cAM9CyO,EAN8C,YAO9CC,EAP8C,mBAQ9CN,EAR8C,WAS9CO,EAT8C,oBAU9CC,EAV8C,QAW9CC,GACI,EACJ,MAAOC,EAAYC,IAAiB5K,EAAAA,EAAAA,UAASwK,MAAAA,EAAAA,EAAcK,GAAAA,EAAAA,MAE3D,IAAKpH,EACH,OAAO,KAGT,MAAMrF,EAAQvC,MAAAA,OAAH,EAAGA,EAAMuC,MAGpB,IAAI0M,EAAYH,EACXN,EAAK7B,MAAMjR,GAASA,EAAKmC,QAAUiR,MACtCG,EAAYD,GAAAA,EAAAA,MAGd,MAAM5M,GAAQ8M,EAAAA,EAAAA,kBAAiBC,QAAQxL,EAAMvB,MAAOuB,EAAMoI,WAAY,QAEtE,OACE,UAAC,EAAAqD,OAAD,CACEhN,MAAQ,YAAWA,GAAS,UAC5BiN,SAAUrP,GAAQsP,GAAYtP,GAC9BuP,MAAM,MACNV,QAASA,EACTW,YAAU,EACVC,mBAAiB,EACjBjB,MACE,SAAC,EAAAkB,QAAD,UACGlB,EAAKhP,KAAI,CAACmQ,EAAGhU,KAEV,SAAC,EAAAiU,IAAD,CAEEvR,MAAOsR,EAAEtR,MACTwR,OAAQF,EAAE9R,QAAUoR,EACpBa,YAAa,IAAMf,EAAcY,EAAE9R,OAASmR,GAAAA,EAAAA,OAHtC,GAAEW,EAAE9R,SAASlC,SAZ/B,UAsBGsT,IAAcD,GAAAA,EAAAA,OACb,SAACe,GAAA,EAAD,CACEpM,MAAOA,EACP3D,KAAMA,GAAQA,EAAKkO,OACnBH,UAAWU,EACXnC,QAASoC,EACTsB,gBAAiBpB,EACjBqB,SAAUjJ,EAAU6E,WAGvB7L,GAAQiP,IAAcD,GAAAA,EAAAA,OACrB,SAACb,GAAD,CAAoBnO,KAAMA,EAAMoO,mBAAoBA,IAGrDa,IAAcD,GAAAA,EAAAA,OACb,SAACkB,GAAA,EAAD,CAAgBvM,MAAOA,EAAOqD,UAAWA,EAAWhH,KAAMA,EAAM6O,QAASA,IAE1EI,IAAcD,GAAAA,EAAAA,QAAoB,SAACmB,GAAA,EAAD,CAAiB5N,MAAOA,IAC1DvC,GAAQiP,IAAcD,GAAAA,EAAAA,QAAoB,SAACoB,GAAA,EAAD,CAAiBpQ,KAAMA,EAAMiQ,SAAUjJ,EAAUqJ,gBAC3FrQ,GAAQiP,IAAcD,GAAAA,EAAAA,QACrB,SAACsB,GAAA,EAAD,CAAgB3M,MAAOA,EAAO3D,KAAMA,EAAKkO,OAAQqC,eAAgB,IAAM5M,EAAMgI,gBAMrF,SAAS2D,GAAYtP,GACnB,MAAM,QAAEwQ,GAAYxQ,EACpB,IAAKwQ,EACH,MAAO,GAGT,MAAMC,EAAaD,EAAQjW,QAAQG,OAC7BgW,EAAcF,EAAQG,QAAUH,EAAQG,QAAUH,EAAQI,UAAY,EAG5E,MAAQ,GAAEH,uCAFQI,EAAAA,GAAAA,yBAAuBC,EAAAA,GAAAA,gBAAe,KAAfA,CAAqBJ,M,iPCvGzD,MCgEMK,IAAiBC,EAAAA,EAAAA,UAXiD,CAACxP,EAAOlG,KACrF,MAAM2V,GAAaC,EAAAA,GAAAA,GAAsB1P,EAAOlG,EAAMqI,OACtD,OAAKsN,EAIE,CACLrJ,OAAQqJ,EAAWrJ,QAJZ,CAAEA,OAAQ,QAQSoJ,EAnDqB,IAAkC,IAAjC,MAAErN,EAAF,UAASqD,EAAT,OAAoBY,GAAa,EACnF,MAAO8G,EAAayC,IAAkBhN,EAAAA,EAAAA,UAAyB,CAC7D2J,gBAAgB,EAChBD,iBAAiB,IAGbpD,GAAW2G,EAAAA,EAAAA,OACX,KAAEpR,EAAF,UAAQ+N,EAAR,MAAmBxL,GAAUyK,GAAmBrJ,EAAO+K,GAAa,GACpE2C,EDrB8BrR,CAAAA,IACtBqE,EAAAA,GAAAA,IAAShK,UAAY,MACjC,MAAME,GAAUyF,MAAAA,GAAA,UAAAA,EAAMwQ,eAAN,eAAejW,UAAW,GAE1C,GAAIyF,GAAQA,EAAKkO,QAAU3T,EAAQG,OACjC,IAAK,MAAM4W,KAAStR,EAAKkO,OACvB,GAAIoD,EAAMrW,MAAQqW,EAAMrW,KAAKsW,OAAQ,OAEnC,MAAMC,QAAmBC,EAAAA,EAAAA,oBAAmBzW,IAAIT,EAAQ,GAAGE,YAC3D,GAAI+W,GAAU,UAAIA,EAAWnD,kBAAf,OAAI,EAAuBC,kBACvC,OAAOkD,KAOd,CAACxR,IACSnC,MCGE6T,CAAsB1R,GAC/BwO,EDEsB,EAC5B7K,EACAqD,EACAY,EACArF,EACA8O,KAEO/R,EAAAA,EAAAA,UAAQ,KACb,MAAMkP,EAAO,IACTmD,EAAAA,GAAAA,IAAkB/J,KACpB4G,EAAK1O,KAAK,CAAEzB,MAAO,OAAQR,MAAOmR,GAAAA,EAAAA,OAClCR,EAAK1O,KAAK,CAAEzB,MAAO,QAASR,MAAOmR,GAAAA,EAAAA,SAGjCqC,GACF7C,EAAK1O,KAAK,CAAEzB,MAAO,YAAaR,MAAOmR,GAAAA,EAAAA,OAGzCR,EAAK1O,KAAK,CAAEzB,MAAO,OAAQR,MAAOmR,GAAAA,EAAAA,OAE9BzM,GAASA,EAAMF,SACjBmM,EAAK1O,KAAK,CAAEzB,MAAO,QAASR,MAAOmR,GAAAA,EAAAA,QAKrC,MAAM4C,EAAYvH,OAAewH,kCAQjC,OAPID,GAAYA,EAASE,WAAWnO,IAClC6K,EAAK1O,KAAK,CAAEzB,MAAO,UAAWR,MAAOmR,GAAAA,EAAAA,UAGnChI,EAAU/L,KAAK8W,UAAWJ,EAAAA,GAAAA,IAAkB/J,IAC9C4G,EAAK1O,KAAK,CAAEzB,MAAO,QAASR,MAAOmR,GAAAA,EAAAA,QAE9BR,IACN,CAAC7K,EAAOiE,EAAQyJ,EAAQrK,EAAWzE,ICrCzByP,CAAerO,EAAOqD,EAAWY,EAAQrF,EAAO8O,GACvD1C,EAAa,IAAI/D,gBAAgBH,EAASE,QAAQ3P,IAAI,cAS5D,OAAK4M,GAKH,SAAC2G,GAAD,CACEvH,UAAWA,EACXrD,MAAOA,EACPiE,OAAQA,EACR+G,WAAYA,EACZH,KAAMA,EACNxO,KAAMA,EACNyO,cAAeV,EACfW,YAAaA,EACbE,oBAAqBuC,EACrB/C,mBAAoBiD,EACpBxC,QAvBY,KACdxL,EAAAA,gBAAAA,QAAwB,CACtB4O,QAAS,KACTC,WAAY,UAKP,Q,uxBC3CX,SAASC,GAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,SAASC,GAAkB1X,EAAQS,GACjC,IAAK,IAAI2K,EAAI,EAAGA,EAAI3K,EAAMZ,OAAQuL,IAAK,CACrC,IAAIuM,EAAalX,EAAM2K,GACvBuM,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDjV,OAAOkV,eAAe/X,EAAQ2X,EAAW9S,IAAK8S,IAIlD,SAASK,GAAaR,EAAaS,EAAYC,GAG7C,OAFID,GAAYP,GAAkBF,EAAYW,UAAWF,GACrDC,GAAaR,GAAkBF,EAAaU,GACzCV,EAGT,SAASY,GAAgBC,EAAKxT,EAAK7B,GAYjC,OAXI6B,KAAOwT,EACTxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAC9B7B,MAAOA,EACP4U,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZO,EAAIxT,GAAO7B,EAGNqV,EAGT,SAASC,GAAQC,EAAQC,GACvB,IAAIlV,EAAOT,OAAOS,KAAKiV,GAEvB,GAAI1V,OAAO4V,sBAAuB,CAChC,IAAIC,EAAU7V,OAAO4V,sBAAsBF,GACvCC,IAAgBE,EAAUA,EAAQ3V,QAAO,SAAU4V,GACrD,OAAO9V,OAAO+V,yBAAyBL,EAAQI,GAAKf,eAEtDtU,EAAK2B,KAAK4T,MAAMvV,EAAMoV,GAGxB,OAAOpV,EAGT,SAASwV,GAAe9Y,GACtB,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CACzC,IAAI4N,EAAyB,MAAhBD,UAAU3N,GAAa2N,UAAU3N,GAAK,GAE/CA,EAAI,EACNkN,GAAQzV,OAAOmW,IAAS,GAAMC,SAAQ,SAAUpU,GAC9CuT,GAAgBpY,EAAQ6E,EAAKmU,EAAOnU,OAE7BhC,OAAOqW,0BAChBrW,OAAOsW,iBAAiBnZ,EAAQ6C,OAAOqW,0BAA0BF,IAEjEV,GAAQzV,OAAOmW,IAASC,SAAQ,SAAUpU,GACxChC,OAAOkV,eAAe/X,EAAQ6E,EAAKhC,OAAO+V,yBAAyBI,EAAQnU,OAKjF,OAAO7E,EAGT,SAASoZ,GAAUC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7B,UAAU,sDAGtB4B,EAASlB,UAAYtV,OAAO0W,OAAOD,GAAcA,EAAWnB,UAAW,CACrEqB,YAAa,CACXxW,MAAOqW,EACPvB,UAAU,EACVD,cAAc,KAGdyB,GAAYG,GAAgBJ,EAAUC,GAG5C,SAASI,GAAgBC,GAIvB,OAHAD,GAAkB7W,OAAO+W,eAAiB/W,OAAOgX,eAAiB,SAAyBF,GACzF,OAAOA,EAAEG,WAAajX,OAAOgX,eAAeF,IAEvCD,GAAgBC,GAGzB,SAASF,GAAgBE,EAAGI,GAM1B,OALAN,GAAkB5W,OAAO+W,gBAAkB,SAAyBD,EAAGI,GAErE,OADAJ,EAAEG,UAAYC,EACPJ,GAGFF,GAAgBE,EAAGI,GAG5B,SAASC,KACP,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,mBAAVC,MAAsB,OAAO,EAExC,IAEE,OADArH,KAAKoF,UAAUkC,SAASC,KAAKL,QAAQC,UAAUnH,KAAM,IAAI,iBAClD,EACP,MAAO/H,GACP,OAAO,GAIX,SAASuP,GAAuBC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAGT,SAASE,GAA2BF,EAAMF,GACxC,OAAIA,GAAyB,iBAATA,GAAqC,mBAATA,EAIzCC,GAAuBC,GAHrBF,EAMX,SAASK,GAAaC,GACpB,OAAO,WACL,IACI7T,EADA8T,EAAQnB,GAAgBkB,GAG5B,GAAIZ,KAA6B,CAC/B,IAAIc,EAAYpB,GAAgBqB,MAAMvB,YAEtCzS,EAASkT,QAAQC,UAAUW,EAAO9B,UAAW+B,QAE7C/T,EAAS8T,EAAMhC,MAAMkC,KAAMhC,WAG7B,OAAO2B,GAA2BK,KAAMhU,IAI5C,IAAIiU,GAAoB,SAAUC,GAChC7B,GAAU4B,EAAMC,GAEhB,IAAIC,EAASP,GAAaK,GAE1B,SAASA,IAGP,OAFA1D,GAAgByD,KAAMC,GAEfE,EAAOrC,MAAMkC,KAAMhC,WAwC5B,OArCAf,GAAagD,EAAM,CAAC,CAClBnW,IAAK,SACL7B,MAAO,WACL,IAAImY,EAAcJ,KAAKta,MACnB2a,EAAWD,EAAYC,SACvBpa,EAAYma,EAAYna,UACxBqa,EAAQF,EAAYE,MACpBC,EAAaH,EAAYI,MACzB3V,EAAOuV,EAAYvV,KACnB4V,EAASL,EAAYK,OACrBC,EAAU,CAAC,OAAQJ,EAAOra,GAC1Bua,EAAQ,CACVG,KAAM,EACNC,SAAU,WACVC,QAAS,QAeX,YAZaxa,IAATwE,IACY,aAAVyV,EACFE,EAAM7G,MAAQ9O,GAEd2V,EAAMM,OAASjW,EACf2V,EAAMO,QAAU,QAGlBP,EAAMG,KAAO,QAGfH,EAAQ1Y,OAAOkZ,OAAO,GAAIR,EAAOD,GAAc,IAC3B,gBAAoB,MAAO,CAC7CU,IAAKR,EACLxa,UAAWya,EAAQQ,KAAK,KACxBV,MAAOA,GACNH,OAIAJ,EAhDe,CAiDtB,iBAEFA,GAAKkB,UAAY,CACflb,UAAW,uBACXoa,SAAU,qBACVxV,KAAM,eAAoB,CAAC,YAAkB,cAC7CyV,MAAO,WAAgB,CAAC,WAAY,eACpCE,MAAO,KACPC,OAAQ,WAEVR,GAAKmB,aAAe,GAEpB,IAAIC,GAA4B,UAE5BC,GAAuB,SAAUC,GACnClD,GAAUiD,EAASC,GAEnB,IAAIpB,EAASP,GAAa0B,GAE1B,SAASA,IAGP,OAFA/E,GAAgByD,KAAMsB,GAEfnB,EAAOrC,MAAMkC,KAAMhC,WAoD5B,OAjDAf,GAAaqE,EAAS,CAAC,CACrBxX,IAAK,SACL7B,MAAO,WACL,IAAImY,EAAcJ,KAAKta,MACnBO,EAAYma,EAAYna,UACxBub,EAAWpB,EAAY5S,QACvBiU,EAAiBrB,EAAYsB,cAC7BC,EAAevB,EAAYwB,YAC3BC,EAAczB,EAAY0B,WAC1BC,EAAgB3B,EAAY4B,aAC5BC,EAAmB7B,EAAY6B,iBAC/B3B,EAAQF,EAAYE,MACpBE,EAAQJ,EAAYI,MACpBE,EAAU,CAACuB,EAAkB3B,EAAOra,GACxC,OAAoB,gBAAoB,OAAQ,CAC9Cic,KAAM,eACNjc,UAAWya,EAAQQ,KAAK,KACxBV,MAAOA,EACPoB,YAAa,SAAqBxN,GAChC,OAAOuN,EAAavN,IAEtB4N,aAAc,SAAsB5N,GAClCA,EAAMG,iBAENwN,EAAc3N,IAEhB0N,WAAY,SAAoB1N,GAC9BA,EAAMG,iBAENsN,EAAYzN,IAEd5G,QAAS,SAAiB4G,GACpBoN,IACFpN,EAAMG,iBAENiN,EAASpN,KAGbsN,cAAe,SAAuBtN,GAChCqN,IACFrN,EAAMG,iBAENkN,EAAerN,WAOlBkN,EA5DkB,CA6DzB,aAiBF,SAASa,GAAQC,EAAU3N,GACzB,GAAI2N,EAASC,UACXD,EAASC,UAAUC,aAEnB,IACE7N,EAAO8N,eAAeC,kBACtB,MAAOvS,KAIb,SAASwS,GAAeC,EAAaC,EAASC,EAASC,GACrD,GAA2B,iBAAhBA,EAA0B,CACnC,IAAIC,EAAyB,iBAAZH,EAAuBA,EAAU,EAC9CI,EAAyB,iBAAZH,GAAwBA,GAAW,EAAIA,EAAUI,EAAAA,EAClE,OAAOC,KAAKF,IAAID,EAAKG,KAAKH,IAAIC,EAAKF,IAGrC,YAAoBxc,IAAhBqc,EACKA,EAGFC,EApCTrB,GAAQH,UAAY,CAClBlb,UAAW,uBACXuH,QAAS,UACTkU,cAAe,UACfE,YAAa,qBACbI,aAAc,qBACdF,WAAY,qBACZxB,MAAO,WAAgB,CAAC,WAAY,eACpCE,MAAO,KACPyB,iBAAkB,wBAEpBX,GAAQF,aAAe,CACrBa,iBAAkBZ,IAiCpB,IAAI6B,GAAyB,SAAU3B,GACrClD,GAAU6E,EAAW3B,GAErB,IAAIpB,EAASP,GAAasD,GAE1B,SAASA,EAAUxd,GACjB,IAAIyd,EAEJ5G,GAAgByD,KAAMkD,IAEtBC,EAAQhD,EAAOZ,KAAKS,KAAMta,IACpBkc,YAAcuB,EAAMvB,YAAYwB,KAAK5D,GAAuB2D,IAClEA,EAAMnB,aAAemB,EAAMnB,aAAaoB,KAAK5D,GAAuB2D,IACpEA,EAAME,YAAcF,EAAME,YAAYD,KAAK5D,GAAuB2D,IAClEA,EAAMG,YAAcH,EAAMG,YAAYF,KAAK5D,GAAuB2D,IAClEA,EAAMI,UAAYJ,EAAMI,UAAUH,KAAK5D,GAAuB2D,IAI9D,IAAItY,EAAOnF,EAAMmF,KACb6X,EAAchd,EAAMgd,YACpBC,EAAUjd,EAAMid,QAChBC,EAAUld,EAAMkd,QAChBY,EAAU9d,EAAM8d,QAChBC,OAAuBpd,IAATwE,EAAqBA,EAAO4X,GAAeC,EAAaC,EAASC,EAAS,MAW5F,OAVAO,EAAMvX,MAAQ,CACZqO,QAAQ,EACRyJ,SAAS,EACTC,UAAuB,UAAZH,EAAsBC,OAAcpd,EAC/Cud,UAAuB,WAAZJ,EAAuBC,OAAcpd,EAEhDwd,cAAe,CACbhZ,KAAMA,IAGHsY,EA2ST,OAxSAlG,GAAaiG,EAAW,CAAC,CACvBpZ,IAAK,oBACL7B,MAAO,WACLma,SAAS1N,iBAAiB,UAAWsL,KAAKuD,WAC1CnB,SAAS1N,iBAAiB,YAAasL,KAAKqD,aAC5CjB,SAAS1N,iBAAiB,YAAasL,KAAKsD,aAC5CtD,KAAK9M,SAASgQ,EAAUY,cAAc9D,KAAKta,MAAOsa,KAAKpU,UAExD,CACD9B,IAAK,uBACL7B,MAAO,WACLma,SAASzN,oBAAoB,UAAWqL,KAAKuD,WAC7CnB,SAASzN,oBAAoB,YAAaqL,KAAKqD,aAC/CjB,SAASzN,oBAAoB,YAAaqL,KAAKsD,eAEhD,CACDxZ,IAAK,cACL7B,MAAO,SAAqBmM,GAC1B,IAAI2P,EAAmBjc,OAAOkZ,OAAO,GAAI5M,EAAO,CAC9C4P,QAAS,CAAC,CACRC,QAAS7P,EAAM6P,QACfC,QAAS9P,EAAM8P,YAGnBlE,KAAKgC,aAAa+B,KAEnB,CACDja,IAAK,eACL7B,MAAO,SAAsBmM,GAC3B,IAAIgM,EAAcJ,KAAKta,MACnBye,EAAc/D,EAAY+D,YAC1BC,EAAgBhE,EAAYgE,cAC5B9D,EAAQF,EAAYE,MAExB,GAAI6D,EAAa,CACfhC,GAAQC,SAAU3N,QAClB,IAAImM,EAAqB,aAAVN,EAAuBlM,EAAM4P,QAAQ,GAAGC,QAAU7P,EAAM4P,QAAQ,GAAGE,QAErD,mBAAlBE,GACTA,IAGFpE,KAAK9M,SAAS,CACZ+G,QAAQ,EACR2G,SAAUA,OAIf,CACD9W,IAAK,cACL7B,MAAO,SAAqBmM,GAC1B,IAAI2P,EAAmBjc,OAAOkZ,OAAO,GAAI5M,EAAO,CAC9C4P,QAAS,CAAC,CACRC,QAAS7P,EAAM6P,QACfC,QAAS9P,EAAM8P,YAGnBlE,KAAKsD,YAAYS,KAElB,CACDja,IAAK,cACL7B,MAAO,SAAqBmM,GAC1B,IAAIiQ,EAAerE,KAAKta,MACpBye,EAAcE,EAAaF,YAC3BvB,EAAUyB,EAAazB,QACvBD,EAAU0B,EAAa1B,QACvB3S,EAAWqU,EAAarU,SACxBsQ,EAAQ+D,EAAa/D,MACrBgE,EAAOD,EAAaC,KACpBC,EAAcvE,KAAKpU,MACnBqO,EAASsK,EAAYtK,OACrB2G,EAAW2D,EAAY3D,SAE3B,GAAIuD,GAAelK,EAAQ,CACzBkI,GAAQC,SAAU3N,QAClB,IAAI+P,EAAwC,UAAvBxE,KAAKta,MAAM8d,QAC5BvC,EAAMuD,EAAiBxE,KAAKyE,MAAQzE,KAAK0E,MACzCC,EAAOH,EAAiBxE,KAAK0E,MAAQ1E,KAAKyE,MAE9C,GAAIxD,EAAK,CACP,IAAI2D,EAAO3D,EACP4D,EAAQF,EAEZ,GAAIC,EAAKE,sBAAuB,CAC9B,IAAInL,EAAQiL,EAAKE,wBAAwBnL,MACrCmH,EAAS8D,EAAKE,wBAAwBhE,OAEtCjW,EAAiB,aAAVyV,EAAuB3G,EAAQmH,EACtCiE,EAAgBnE,GAFI,aAAVN,EAAuBlM,EAAM4P,QAAQ,GAAGC,QAAU7P,EAAM4P,QAAQ,GAAGE,SAIjF,GAAII,EAAM,CACR,GAAIrB,KAAK+B,IAAID,GAAiBT,EAC5B,OAKFS,KAAmBA,EAAgBT,GAAQA,EAG7C,IAAIW,EAAYT,EAAiBO,GAAiBA,EACjCG,SAASzQ,OAAO0Q,iBAAiBP,GAAMQ,OACvCF,SAASzQ,OAAO0Q,iBAAiBN,GAAOO,SAGvDH,GAAaA,GAGf,IAAII,EAAazC,EAEjB,QAAgBvc,IAAZuc,GAAyBA,GAAW,EAAG,CACzC,IAAI0C,EAAYtF,KAAKsF,UAGnBD,EADY,aAAV/E,EACWgF,EAAUR,wBAAwBnL,MAAQiJ,EAE1C0C,EAAUR,wBAAwBhE,OAAS8B,EAI5D,IAAI2C,EAAU1a,EAAOoa,EACjBO,EAAc5E,EAAWmE,EAEzBQ,EAAU5C,EACZ4C,EAAU5C,OACWtc,IAAZuc,GAAyB2C,EAAUF,EAC5CE,EAAUF,EAEVrF,KAAK9M,SAAS,CACZ0N,SAAU4E,EACV9B,SAAS,IAIT1T,GAAUA,EAASuV,GACvBvF,KAAK9M,SAASmK,GAAgB,CAC5BwF,YAAa0C,GACZf,EAAiB,YAAc,YAAae,SAKtD,CACDzb,IAAK,YACL7B,MAAO,WACL,IAAIwd,EAAezF,KAAKta,MACpBye,EAAcsB,EAAatB,YAC3BuB,EAAiBD,EAAaC,eAC9BC,EAAe3F,KAAKpU,MACpBqO,EAAS0L,EAAa1L,OACtB4I,EAAc8C,EAAa9C,YAE3BsB,GAAelK,IACa,mBAAnByL,GACTA,EAAe7C,GAGjB7C,KAAK9M,SAAS,CACZ+G,QAAQ,OAKb,CACDnQ,IAAK,SACL7B,MAAO,WACL,IAAI2d,EAAS5F,KAET6F,EAAe7F,KAAKta,MACpBye,EAAc0B,EAAa1B,YAC3B9D,EAAWwF,EAAaxF,SACxBpa,EAAY4f,EAAa5f,UACzB6f,EAAiBD,EAAaC,eAC9BC,EAAuBF,EAAaE,qBACpCC,EAAgBH,EAAaG,cAC7BC,EAAiBJ,EAAaI,eAC9BC,EAAiBL,EAAaK,eAC9BC,EAAYN,EAAaM,UACzBC,EAAkBP,EAAaQ,WAC/BC,EAAkBT,EAAaU,WAC/BtE,EAAmB4D,EAAa5D,iBAChCuE,EAAeX,EAAaW,aAC5BlG,EAAQuF,EAAavF,MACrBC,EAAasF,EAAarF,MAC1BiG,EAAezG,KAAKpU,MACpB+X,EAAY8C,EAAa9C,UACzBC,EAAY6C,EAAa7C,UACzB8C,EAAgBvC,EAAc,GAAK,WACnCwC,EAAoC1E,EAAmB,GAAG2E,OAAO3E,EAAkB,KAAK2E,OAAOvF,IAA6BY,EAC5H4E,EAzOV,SAA4BxG,GAC1B,OAAO,mBAAuBA,GAAUrY,QAAO,SAAU8e,GACvD,OAAOA,KAuOiBC,CAAmB1G,GAErCG,EAAQzC,GAAe,CACzBgD,QAAS,OACTJ,KAAM,EACNG,OAAQ,OACRF,SAAU,WACVC,QAAS,OACTmG,SAAU,SACVC,cAAe,OACfC,iBAAkB,OAClBC,aAAc,OACdC,WAAY,QACX7G,GAEW,aAAVD,EACFxY,OAAOkZ,OAAOR,EAAO,CACnB6G,cAAe,MACfC,KAAM,EACNC,MAAO,IAGTzf,OAAOkZ,OAAOR,EAAO,CACnBgH,OAAQ,EACRH,cAAe,SACfI,UAAW,OACXC,IAAK,EACL/N,MAAO,SAIX,IAAI+G,EAAU,CAAC,YAAaza,EAAWqa,EAAOoG,GAE1CL,EAAatI,GAAe,GAAIoI,EAAW,GAAIC,GAE/CG,EAAaxI,GAAe,GAAIoI,EAAW,GAAIG,GAE/CqB,EAAe,CAAC,QAAS3B,EAAeC,GAAgB/E,KAAK,KAC7D0G,EAAe,CAAC,QAAS5B,EAAeE,GAAgBhF,KAAK,KACjE,OAAoB,gBAAoB,MAAO,CAC7Cjb,UAAWya,EAAQQ,KAAK,KACxBD,IAAK,SAAa2D,GAChBgB,EAAON,UAAYV,GAErBpE,MAAOA,GACO,gBAAoBP,GAAM,CACxCha,UAAW0hB,EACX7d,IAAK,QACL2W,OAAQ,SAAgBmE,GACtBgB,EAAOnB,MAAQG,GAEjB/Z,KAAM8Y,EACNrD,MAAOA,EACPE,MAAO6F,GACNQ,EAAgB,IAAkB,gBAAoBvF,GAAS,CAChErb,UAAWygB,EACXlZ,QAASsY,EACTpE,cAAeqE,EACfnE,YAAa5B,KAAK4B,YAClBI,aAAchC,KAAKgC,aACnBF,WAAY9B,KAAKuD,UACjBzZ,IAAK,UACLmY,iBAAkB0E,EAClBrG,MAAOA,EACPE,MAAOgG,GAAgB,KACR,gBAAoBvG,GAAM,CACzCha,UAAW2hB,EACX9d,IAAK,QACL2W,OAAQ,SAAgBmE,GACtBgB,EAAOlB,MAAQE,GAEjB/Z,KAAM+Y,EACNtD,MAAOA,EACPE,MAAO+F,GACNM,EAAgB,QAEnB,CAAC,CACH/c,IAAK,2BACL7B,MAAO,SAAkC4f,EAAWC,GAClD,OAAO5E,EAAUY,cAAc+D,EAAWC,KAE3C,CACDhe,IAAK,gBACL7B,MAAO,SAAuBvC,EAAOkG,GACnC,IAAImc,EAAW,GAGf,GAFoBnc,EAAMiY,cAERhZ,OAASnF,EAAMmF,WAAuBxE,IAAfX,EAAMmF,KAC7C,MAAO,GAGT,IAAI0a,OAAyBlf,IAAfX,EAAMmF,KAAqBnF,EAAMmF,KAAO4X,GAAe/c,EAAMgd,YAAahd,EAAMid,QAASjd,EAAMkd,QAAShX,EAAMiX,kBAEzGxc,IAAfX,EAAMmF,OACRkd,EAASlF,YAAc0C,GAGzB,IAAIyC,EAAoC,UAAlBtiB,EAAM8d,QAM5B,OALAuE,EAASC,EAAkB,YAAc,aAAezC,EACxDwC,EAASC,EAAkB,YAAc,kBAAe3hB,EACxD0hB,EAASlE,cAAgB,CACvBhZ,KAAMnF,EAAMmF,MAEPkd,MAIJ7E,EA9UoB,CA+U3B,aAEFA,GAAU/B,UAAY,CACpBgD,YAAa,UACb9D,SAAU,aAAkB,WAAgB4H,WAC5ChiB,UAAW,YACXud,QAAS,WAAgB,CAAC,QAAS,WACnCb,QAAS,eAAoB,CAAC,YAAkB,cAChDC,QAAS,eAAoB,CAAC,YAAkB,cAEhDF,YAAa,eAAoB,CAAC,YAAkB,cACpD7X,KAAM,eAAoB,CAAC,YAAkB,cAC7CyV,MAAO,WAAgB,CAAC,WAAY,eACpC8D,cAAe,UACfsB,eAAgB,UAChB1V,SAAU,UACV8V,eAAgB,UAChBC,qBAAsB,UACtBvF,MAAO,KACPgG,aAAc,KACdR,cAAe,YACfC,eAAgB,YAChBC,eAAgB,YAChBC,UAAW,KACXE,WAAY,KACZE,WAAY,KACZtE,iBAAkB,YAClBqC,KAAM,aAERpB,GAAU9B,aAAe,CACvB+C,aAAa,EACbxB,QAAS,GACTa,QAAS,QACTlD,MAAO,WACP0F,cAAe,GACfC,eAAgB,GAChBC,eAAgB,KAElB,QAAShD,IAET,Y,ICnrBKjD,G,uKAAAA,GAAAA,EAAAA,EAAAA,MAAAA,GAAAA,QAAAA,EAAAA,EAAAA,IAAAA,GAAAA,M,CAAAA,KAAAA,GAAAA,KAaE,MAAMiI,WAAyBC,EAAAA,cAAqB,sDACbC,EAAAA,EAAAA,cADa,+BAcnC,UACU/hB,IAA1B2Z,KAAKqI,SAASjT,SAChBX,OAAO6T,qBAAqBtI,KAAKqI,SAASjT,SAE5C4K,KAAKqI,SAASjT,QAAUX,OAAO8T,uBAAsB,KACnDvI,KAAKwI,oBAnBgD,0BAuBxC,CAACC,EAAY5d,KAI5B,GAHAuX,SAASsG,KAAKlI,MAAMmI,OAAS,QAGxB9d,EACH,OAGF,MAAM,cAAE+d,GAAkB5I,KAAKta,MAC3B+iB,IAASxI,GAAK4I,IAChBD,EAAc,CACZE,YAAaje,EAAO4J,OAAOsU,cAG7BH,EAAc,CACZI,cAAene,EAAO4J,OAAOwU,gBAtCsB,yBA2CzC,KACd7G,SAASsG,KAAKlI,MAAMmI,OAAS,gBAtC/BO,oBACEzU,OAAOC,iBAAiB,SAAUsL,KAAKmJ,qBAGzCC,uBACE3U,OAAOE,oBAAoB,SAAUqL,KAAKmJ,qBAoC5CE,wBACE,MAAM,mBAAEC,EAAF,QAAsBC,GAAYvJ,KAAKta,MACvCC,EAASE,GAAU2jB,GAAAA,GAAAA,OACnBV,EAAcS,EAAQT,aAAe,EAAIS,EAAQT,YAAcS,EAAQT,YAAcrU,OAAOsU,YAQlG,OAAIU,MAAMC,QAAQJ,IAEd,SAAC,GAAD,CACEhJ,MAAM,aACNsC,SAAU,IACVY,QAAQ,QACR3Y,KAAMie,EACNvC,WAAY,CAAEkB,UAAW,GACzBxF,iBAAkBtc,EAAOgkB,SACzBvF,cAAepE,KAAKoE,cACpBsB,eAAiB7a,GAASmV,KAAK0F,eAAezF,GAAK4I,IAAKhe,GAR1D,SAUGye,IAKAA,EAGT5W,SACE,MAAM,iBAAEkX,EAAF,oBAAoBC,EAApB,QAAyCN,GAAYvJ,KAAKta,MAE1DC,EAASE,GAAU2jB,GAAAA,GAAAA,OAGnBR,EACJO,EAAQP,eAAiB,EAAIO,EAAQP,cAAgBvU,OAAOwU,WAAaM,EAAQP,cAEnF,OAAKY,GAKH,UAAC,GAAD,CACEtJ,MAAM,WACNsC,SAAU,IACV/X,KAAMme,EACNxF,QAAQ,SACRvB,iBAAkBtc,EAAOmkB,SACzB1F,cAAe,IAAOhC,SAASsG,KAAKlI,MAAMmI,OAAS,aACnDjD,eAAiB7a,GAASmV,KAAK0F,eAAezF,GAAK8J,MAAOlf,GAP5D,UASGmV,KAAKqJ,wBACLQ,KAdI7J,KAAKqJ,yB,GAxFLnB,GAAAA,eAEW,CACpB0B,kBAAkB,IAyGtB,MAAM/jB,IAAYmkB,EAAAA,EAAAA,gBAAenjB,IAC/B,MAAMojB,EAAcpjB,EAAMqjB,QAAQC,OAC5BC,EAAcvjB,EAAMwE,QAAQgf,GAE5BC,EAAUxjB,EAAAA,GAAI;;;;;;;;;;oBAUFD,EAAME,OAAOwjB;;;;;;;;;;;;wBAYTN;;;;sBAIFA;;;IAKpB,MAAO,CACLH,UAAU5jB,EAAAA,EAAAA,IACRokB,EACAxjB,EAAAA,GAAI;;iBAEOsjB;;;;;;;;;;;;;SAebT,UAAUzjB,EAAAA,EAAAA,IACRokB,EACAxjB,EAAAA,GAAI;kBACQsjB;;uBAEKA;;;;;;;;;;;;;2JCjLhB,MAAMI,GAA4C9kB,IACvD,MAAM+kB,GAAiB/gB,EAAAA,EAAAA,UAAQ,IAAMghB,GAAAA,EAAAA,IAAqBhlB,EAAM+Q,SAASvS,MAAMymB,QAAQ,CAACjlB,EAAM+Q,WAE9F,OAAK/Q,EAAM+Q,UAKT,iBAAKxQ,UAAU,UAAf,WACE,SAAC2kB,GAAD,CAAanU,SAAU/Q,EAAM+Q,WAC5B/Q,EAAM+Q,SAASoU,OAASC,GAAAA,GAAAA,cAA6BL,IACpD,SAACA,EAAD,CAAgBhU,SAAU/Q,EAAM+Q,cAPpC,SAAO,sDAaX,SAASmU,GAAT,GAAkF,IAA7D,SAAEnU,GAA2D,EAChF,MAAMsU,GAAcrhB,EAAAA,EAAAA,UAAQ,IAAM+M,EAAShO,OAASgO,EAASjP,MAAM,CAACiP,IAEpE,GAAIA,EAASoU,OAASC,GAAAA,GAAAA,SACpB,OAAO,KAGT,MAAME,EAAa,OAAMvU,EAAStM,KAClC,OAAIsM,EAASwU,aAET,SAAC,EAAAC,QAAD,CAASC,QAAS1U,EAASwU,YAAaG,UAAW,SAAnD,UACE,kBACEnlB,UAAU,wCACV,cAAaolB,EAAAA,GAAAA,MAAAA,UAAAA,QAAAA,kBAAoDN,GACjEO,QAASN,EAHX,SAKGD,OAOP,kBACE9kB,UAAU,wCACV,cAAaolB,EAAAA,GAAAA,MAAAA,UAAAA,QAAAA,kBAAoDN,GACjEO,QAASN,EAHX,SAKGD,IC9CA,MAAMQ,GAAyC,IAAmB,IAAlB,UAAEC,GAAgB,EACvE,MAAOC,EAAkBC,IAAuBnd,EAAAA,EAAAA,UAA0B,IAM1E,OAJAmF,EAAAA,EAAAA,YAAU,KACRgY,EAAoBF,EAAUxjB,QAAQ4D,GAAUA,EAAMif,OAASC,GAAAA,GAAAA,kBAC9D,CAACU,IAE4B,IAA5BC,EAAiB3mB,OACZ,MAIP,8BACG2mB,EAAiB7hB,KAAK6M,IAEnB,gBAEExQ,UAAU,8BACV,cAAaolB,EAAAA,GAAAA,MAAAA,UAAAA,QAAAA,YAHf,UAKE,SAACb,GAAD,CAAgB/T,SAAUA,KAJrBA,EAAStM,S,+pBCP1B,MAAMwhB,GAAkB,CAAC/f,EAAmBlG,KAApB,YAAyC,CAC/DkmB,sBAAqB,WAAEtQ,EAAAA,GAAAA,GAAsB1P,EAAOlG,EAAMqI,cAArC,aAAE,EAA2C8d,mBAG9DC,GAAqB,CAAEC,kBAAiBA,EAAAA,KAE5B3Q,EAAAA,EAAAA,SAAQuQ,GAAiBG,IAGpC,MAAME,WAAuC7D,EAAAA,cAIlD1J,YAAY/Y,GACVumB,MAAMvmB,GADkB,2DAI1BwjB,oBACElJ,KAAKkM,qBAGPC,mBAAmBC,GAEfpM,KAAKta,MAAMsM,SAAWoa,EAAUpa,QAChCgO,KAAKta,MAAMkmB,wBAA0BQ,EAAUR,uBAE/C5L,KAAKqM,wBAGPrM,KAAKkM,qBAGP9C,uBACEpJ,KAAKqM,wBAGPA,wBACMrM,KAAKsM,iBACPtM,KAAKsM,eAAeC,UACpBvM,KAAKsM,eAAiB,MAI1BJ,qBACE,MAAM,MAAEne,EAAF,sBAAS6d,EAAT,kBAAgCG,GAAsB/L,KAAKta,MAEjE,IAAKsa,KAAKwM,UAAYZ,GAAyB5L,KAAKsM,eAClD,OAGF,MAAMG,EAAQb,EAAsBc,WAGpC,IAAKD,EAAME,YAIT,YAHAva,YAAW,KACT4N,KAAKwI,iBAKT,MAAMoE,EAAuBH,EAAME,YAAYE,KAC/CD,EAAUE,eACVF,EAAUG,mBAAsB/a,IAC9B+Z,EAAkB,CAAEhe,MAAAA,EAAOif,SAAUhb,EAAO7H,MAG9C,IAAI8iB,EAAW,GACf,IAAK,IAAI5c,EAAI,EAAGA,EAAIuc,EAAUM,WAAWpoB,OAAQuL,IAAK,CACpD,MAAM8c,EAAMP,EAAUM,WAAW7c,GACjC8c,EAAI1d,QCnF0BtF,EDmFGgjB,EAAI3gB,MCnFK4gB,EDmFQ,IAAN/c,EClFzCgd,EAAAA,EAAAA,QAAe,sBAAqBljB,IAAMijB,IDoF7CH,GAAa,oIAE4D5c,mBAAmB8c,EAAI3gB,+GAE5D6D,0HAEU8c,EAAI3gB,sGAEgB6D,wEACdA,4EC9FnD,IAA6BlG,EAAYijB,EDoG5C,MAAME,GAASC,EAAAA,EAAAA,oBACTC,EAAa,CACjBX,KAAMD,EACNa,kBAAoB1nB,IAClB,MAAMonB,EAAMP,EAAUM,WAAWnnB,GACjConB,EAAI1d,QAAU0d,EAAI1d,OC7GnB,SAA8BtF,EAAYsF,GAC/C4d,EAAAA,EAAAA,IAAW,sBAAqBljB,IAAMsF,EAAS,OAAS,SD6GlDie,CAAqBP,EAAI3gB,MAAO2gB,EAAI1d,UAIxCuQ,KAAKsM,eAAiBgB,EAAOK,KAAK3N,KAAKwM,QAASgB,EAAYP,GAC5DjN,KAAKsM,eAAesB,SAGtBlb,SACE,OAAO,gBAAKuO,IAAM4M,GAAU7N,KAAKwM,QAAUqB,KAIxC,MAAMC,IAAsB1S,EAAAA,EAAAA,SAAQuQ,GAAiBG,GAAzB1Q,CAA6C4Q,I,uWEpGzE,MAAM+B,GAAoE,IAQ3E,YAR4E,SAChFC,EADgF,QAEhFC,EAFgF,SAGhFC,EAHgF,SAIhFle,EAJgF,SAKhFme,EALgF,iBAMhFC,EANgF,YAOhFC,GACI,EACJ,MAAMxnB,GAAQynB,EAAAA,EAAAA,YACR3oB,EAASE,GAAUgB,GACnBf,EAAOooB,MAAAA,OAAH,EAAGA,EAAUK,YAAYP,EAAS7jB,IAE5C,IAAKrE,EACH,OAAO,KAGT,MAAM0oB,EACJ/E,MAAMC,QAAQsE,EAAS/lB,QACvB+lB,EAAS7jB,KAAOskB,GAAAA,oBAAAA,YAChBT,EAAS7jB,KAAOskB,GAAAA,oBAAAA,OAChBT,EAAS7jB,KAAOskB,GAAAA,oBAAAA,SAEZC,EAAa,UAAG5oB,EAAK6oB,gBAAR,aAAG,EAAe3mB,QAAQ8e,GAAMA,IAAMhhB,EAAK0B,OAC9D,IAAIonB,EAGJ,MAAMC,EACJ,eAACC,IAAD,yDAA4BC,EAA5B,+DACA,eAACC,EAAD,+DAEI,UAAC,EAAAhiB,gBAAD,CAAiBE,QAAQ,gBAAzB,WACE,UAAC,EAAA+hB,MAAD,CAAON,SAAUD,EAAezD,YAAa6D,EAAqBhpB,EAAKmlB,iBAAc5kB,EAArF,WACE,SAAC,KAAD,CACE6oB,gBAAiBppB,EAAK0B,KACtB2nB,YAAa,CAACd,GACde,mBAAoB,+BAEpBJ,GAAcD,GAAkBjpB,EAAKupB,gBACrC,SAAC,EAAAC,QAAD,CAASrnB,MAAOnC,EAAKupB,cAAcrB,EAAS/lB,aAG9CmmB,IAAD,OACC,0BACE,SAAC,EAAAmB,WAAD,CAAY/nB,KAAK,QAAQgG,QAAS2gB,aA8C9C,OAtCES,EADEJ,GAEA,SAACgB,GAAA,EAAD,CACErlB,GAAIrE,EAAK0B,KACTioB,YAAaZ,GAAY,GAAO,GAChC5oB,UAAWa,EAAAA,GAAI;;;UAIf4oB,UAAQ,EACRC,mBAAkCtpB,IAAnB2nB,EAAS/lB,MAR1B,UAUE,SAACnC,EAAK8pB,SAAN,CACE3nB,MAAO+lB,EAAS/lB,MAChB+H,SAAW/H,IACT+H,EAAS/H,IAEXnC,KAAMA,EACNmoB,QAASA,OAMb,0BACE,SAAC,EAAA4B,MAAD,CAAOpnB,MAAOomB,GAAAA,GAAiB5D,YAAanlB,EAAKmlB,YAAjD,UACE,SAACnlB,EAAK8pB,SAAN,CACE3nB,MAAO+lB,EAAS/lB,MAChB+H,SAAW/H,IACT+H,EAAS/H,IAEXnC,KAAMA,EACNmoB,QAASA,SAQjB,gBACEhoB,WAAWC,EAAAA,EAAAA,IACTsoB,GAAiB7oB,EAAOmqB,2BACvBtB,GAAiB,4CAHtB,SAMGI,KAKD/oB,IAAYmkB,EAAAA,EAAAA,gBAAenjB,IACxB,CACLipB,0BAA2BhpB,EAAAA,GAAI;;;sBAGbD,EAAMwE,QAAQ0kB;;+MCrH7B,MAAMC,GAAwD,IAO/D,IAPgE,WACpEhB,EADoE,SAEpEd,EAFoE,UAGpE+B,EAHoE,aAIpEC,EAJoE,SAKpEN,EALoE,iBAMpEO,GACI,EACJ,MAAMxqB,GAASwG,EAAAA,EAAAA,WAAUtG,IAEnBuqB,EADaR,EAASS,WAAWzmB,KAAKoV,GAAMkP,EAASK,YAAYvP,EAAE7U,MAAKnC,QAAQsoB,KAAWA,IAChE1mB,KAAKoV,GAAMA,MAAAA,OAAP,EAAOA,EAAGxX,OAAM0Z,KAAK,MACpDqP,EAAiBN,EAAUO,eAAeZ,EAASa,QAAQ/Z,SAEjE,OACE,4BACE,UAAC,EAAA1J,gBAAD,CAAiBE,QAAQ,gBAAzB,WACE,yBAAMgjB,KACN,SAAC,EAAAX,WAAD,CAAY/nB,KAAK,YAAYgG,QAAS2iB,EAAkB3jB,MAAM,wBAE9DwiB,IACA,gBAAK/oB,UAAWN,EAAO+qB,gBAAvB,UACE,iBAAKzqB,UAAWN,EAAO+Q,QAASlK,MAAO+jB,EAAvC,UACGA,EADH,aACmB,SAAC,EAAAhpB,KAAD,CAAMC,KAAK,iBAD9B,IACgD4oB,WAQ1DJ,GAAsB7Y,YAAc,gBAEpC,MAAMtR,GAAagB,IACV,CACLopB,UAAWnpB,EAAAA,GAAI;iBACFD,EAAMwE,QAAQslB;MAE3BC,sBAAuB9pB,EAAAA,GAAI;oBACqB,EAAhCD,EAAMwE,QAAQ0kB;MAE9BW,gBAAiB5pB,EAAAA,GAAI;mBACND,EAAM+G,WAAW/C,KAAK8lB;eAC1B9pB,EAAME,OAAO8pB;qBACPhqB,EAAM+G,WAAWkjB,OAAOC;MAEzCra,QAAS5P,EAAAA,GAAI;;uBAEMD,EAAMwE,QAAQ2lB;MAEjCC,aAAcnqB,EAAAA,GAAI;;QC1Cf,SAASoqB,GACdxrB,EACA2oB,GACiC,QACjC,MAAM8C,EAA8C,GAC9CC,EAAqB1rB,EAAMqI,MAAMsjB,YACjCnD,EAAWxoB,EAAMsM,OAAOsf,oBACxBlnB,EAAI,oBAAG1E,EAAM0E,YAAT,aAAG,EAAYkO,cAAf,QAAyB,GAEnC,GAAI4V,EAASqD,UACX,MAAO,GAGT,MAAMC,EAAmB,CAACzrB,EAAe6pB,KACvC,IAAI6B,GAAYC,EAAAA,EAAAA,WAAUN,EAAmBK,WAC7CA,EAAU1rB,GAAS6pB,EACnBlqB,EAAMisB,qBAAN,iBAAgCP,EAAhC,CAAoDK,UAAAA,MAGhDtB,EAAoByB,IACxB,IAAIH,GAAYC,EAAAA,EAAAA,WAAUN,EAAmBK,WAC7CA,EAAUI,OAAOD,EAAe,GAChClsB,EAAMisB,qBAAN,iBAAgCP,EAAhC,CAAoDK,UAAAA,MAkBhDxD,EAAU,CACd7jB,KAAAA,EACA0nB,eAAiBrF,IAAqCsF,EAAAA,GAAAA,IAAgC3nB,EAAMqiB,GAC5FuF,YAAY,GAMd,IAAK,IAAIC,EAAM,EAAGA,EAAMb,EAAmBK,UAAU3sB,OAAQmtB,IAAO,CAClE,MAAMrC,EAAWwB,EAAmBK,UAAUQ,GACxC/B,EAAgB,YAAW+B,EAAM,IACjChC,EAAYiC,EAAAA,gBAAAA,IAAoBtC,EAASa,QAAQtmB,IACjDgoB,EAA0BC,GAAsBlE,GAChDE,GAAmBiE,EAAAA,GAAAA,kBAAsBzC,GAEzC0C,EAA2C,IAA/B1C,EAASS,WAAWvrB,OAAe,EAAI,EAEnD6pB,EAAW,IAAI4D,GAAAA,EAA8B,CACjD/lB,MAAO0jB,EACP/lB,GAAI+lB,EACJoC,UAAAA,EACA7C,YAAa,SAA6BT,GACxC,OACE,SAACgB,GAAD,CACEJ,SAAUA,EACVZ,WAAYA,EACZd,SAAUA,EACVgC,aAAcA,EACdD,UAAWA,EACXE,iBAAkB,IAAMA,EAAiB8B,QAM3CO,EAAyB9b,IAC7BkZ,EAASa,QAAQ/Z,QAAUA,EAC3B8a,EAAiBS,EAAKrC,IAGlB6C,EAA0B,CAAC7T,EAAuB3W,KACtD,MAAMyqB,EAAexE,EAAS9oB,IAAI6C,EAAMA,OAClC0qB,EAAqC,CACzCxoB,GAAIuoB,EAAavoB,GACjBlC,MAAOyqB,EAAatF,cAGlBwC,EAASS,WACXzR,EAAEyR,WAAWnmB,KAAKyoB,GAElB/T,EAAEyR,WAAa,CAACsC,GAGlBnB,EAAiBS,EAAKrT,IAMxB+P,EAASiE,QACP,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAOyjB,EAAUzoB,KACjBkL,OAAQ,WAA2B,QACjC,OACE,SAACud,EAAU6C,UAAX,CACE3oB,GAAK,GAAE8lB,EAAUQ,QAAQtmB,MAAM8nB,IAC/BxB,QAASR,EAAUQ,QACnBrmB,KAAI,oBAAE1E,EAAM0E,YAAR,aAAE,EAAYkO,cAAd,QAAwB,GAC5B5B,QAASkZ,EAASa,QAAQ/Z,QAC1B1G,SAAUwiB,QAUpB,IAAK,IAAIO,EAAU,EAAGA,EAAUnD,EAASS,WAAWvrB,OAAQiuB,IAAW,CACrE,MAAM/E,EAAW4B,EAASS,WAAW0C,GAC/BC,EAA0B9E,EAASK,YAAYP,EAAS7jB,IAE9D,IAAK6oB,EACH,SAGF,MAAMC,EAAoBhrB,IACxB2nB,EAASS,WAAW0C,GAAS9qB,MAAQA,EACrCupB,EAAiBS,EAAKrC,IAGlBsD,EAAmB,KACvBtD,EAASS,WAAWwB,OAAOkB,EAAS,GACpCvB,EAAiBS,EAAKrC,IAMxBjB,EAASiE,QACP,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAOwmB,EAAwBxrB,KAC/B2rB,WAAW,EACXzgB,OAAQ,WACN,OACE,SAACqb,GAAD,CAEEK,iBAAkBA,EAClBpe,SAAUijB,EACV9E,SAAU+E,EACVlF,SAAUA,EACVE,SAAUA,EACVD,QAASA,EACTI,YAAaA,GAPP,GAAEL,EAAS7jB,MAAM4oB,UAkB9B3E,GAAoBwB,EAASa,QAAQ/Z,SACxCiY,EAASiE,QACP,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,aACP2mB,WAAW,EACXzgB,OAAQ,WACN,OACE,SAAC,EAAA0gB,YAAD,CAEE3qB,MAAM,wBACN6E,QAAQ,YACR+lB,aAAa,EACb9lB,KAAK,OACL+lB,cAAc,OACd5c,QAASyb,EACTniB,SAAWujB,GAAMd,EAAwB7C,EAAU2D,IAP/C,6BAehBpC,EAAWjnB,KAAKykB,GA6BlB,OA1BAwC,EAAWjnB,KACT,IAAIqoB,GAAAA,EAA8B,CAChC/lB,MAAO,aACPrC,GAAI,aACJqpB,aAAc,WACZ,OACE,SAACC,GAAD,WACE,SAAC,EAAAL,YAAD,CACE7lB,KAAK,OACL9E,MAAM,qBACN6E,QAAQ,YACRgmB,cAAc,OACdD,aAAa,EACbxoB,KAAK,KACL6L,QAASwb,EAAAA,gBAAAA,OAENlqB,QAAQ4W,IAAOA,EAAE8U,oBACjB9pB,KAA8ByG,IAAD,CAAU5H,MAAO4H,EAAE7I,KAAMS,MAAOoI,EAAElG,GAAI8gB,YAAa5a,EAAE4a,gBACrFjb,SAAW/H,GAzLAA,CAAAA,IACrBvC,EAAMisB,qBAAN,iBACKP,EADL,CAEEK,UAAW,IACNL,EAAmBK,UACtB,CACEhB,QAAS,CACPtmB,GAAIlC,EAAMA,OAEZooB,WAAY,SAgLasD,CAAc1rB,MAZP,oBAoBjCkpB,EAGT,SAASiB,GAAsBlE,GAC7B,OAAOA,EACJ0F,OACA5rB,QAAQ4W,IAAOA,EAAEiV,oBACjBjqB,KAAK9D,IACJ,IAAI2C,EAAQ3C,EAAK0B,KAIjB,OAHI1B,EAAK6oB,WACPlmB,EAAQ,IAAI3C,EAAK6oB,SAAU7oB,EAAK0B,MAAM0Z,KAAK,QAEtC,CACLzY,MAAAA,EACAR,MAAOnC,EAAKqE,GACZ8gB,YAAanlB,EAAKmlB,gBAK1B,SAASwI,GAAT,GAAiF,IAA7C,SAAEpT,GAA2C,EAC/E,MAAM1a,GAASC,EAAAA,EAAAA,YAAWkuB,IAC1B,OAAO,gBAAK7tB,UAAWN,EAAhB,SAAyB0a,IAGlC,SAASyT,GAAmBjtB,GAC1B,OAAOC,EAAAA,EAAAA,KAAI,CACTitB,UAAY,aAAYltB,EAAME,OAAOC,OAAOgtB,OAC5CC,QAAU,GAAEptB,EAAMwE,QAAQ,KAC1B0V,QAAS,SC/PN,MAAMmT,GAA2C,IAA2B,UAA1B,MAAEnmB,EAAF,WAASomB,GAAiB,EACjF,MAAMxuB,GAASwG,EAAAA,EAAAA,WAAUtG,IAEzB,OAAKuuB,EAAAA,GAAAA,GAAyBrmB,IAK5B,iBAAK9H,UAAWN,EAAO0uB,KAAvB,WACE,iBAAKpuB,UAAWN,EAAO2uB,iBAAvB,UACI,WAAUvmB,EAAMa,aAAavJ,KAAKsK,uBACa,IAAhD5B,EAAMa,aAAavJ,KAAKsK,oBAA4B,YAAc,iBAErE,iBAAK1J,UAAWN,EAAO2uB,iBAAvB,sCACkBH,MAAAA,OADlB,EACkBA,EAAapmB,EAAMa,aAAavJ,KAAKkvB,QAAS,YADhE,QACwExmB,EAAMa,aAAavJ,KAAKkvB,QADhG,MAEGxmB,EAAMa,aAAavJ,KAAKmvB,UAAUC,YACjC,gBACE9a,MAAM,KACNmH,OAAO,KACP7a,UAAWN,EAAO+uB,WAClBC,IAAK5mB,EAAMa,aAAavJ,KAAKmvB,UAAUC,UACvCG,IAAM,cAAa7mB,EAAMa,aAAavJ,KAAKmvB,UAAUhtB,SAGxDuG,EAAMa,aAAavJ,KAAKmvB,UAAUhtB,WApBhC,MA0BL3B,GAAagB,IACV,CACLwtB,KAAMvtB,EAAAA,GAAI;;MAGVwtB,iBAAkBxtB,EAAAA,GAAI;eACXD,EAAME,OAAO8tB;mBACThuB,EAAM+G,WAAW/C,KAAK8lB;MAErC+D,WAAY5tB,EAAAA,GAAI;;;;;sBAKED,EAAMwE,QAAQslB;uBACb9pB,EAAMwE,QAAQslB;QChD9B,SAASmE,GAA+BpvB,GAC7C,MAAM,MAAEqI,EAAF,oBAASgnB,EAAT,UAA8B3jB,GAAc1L,EAC5CkX,EAAa,IAAI2V,GAAAA,EAA8B,CACnD/lB,MAAO,wBACPrC,GAAI,wBACJwlB,eAAe,IAiCjB,OA9BIyE,EAAAA,GAAAA,GAAyBrmB,IAC3B6O,EACGgW,QACC,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,OACPvE,MAAO8F,EAAMa,aAAapH,KAC1BwtB,YAAa,EACbtiB,OAAQ,WACN,OACE,SAAC,EAAA9C,MAAD,CACEzF,GAAG,wBACHijB,aAAcrf,EAAMa,aAAapH,KACjCytB,OAAShlB,GACP8kB,EAAoB,eAAD,iBAAsBhnB,EAAMa,aAA5B,CAA0CpH,KAAMyI,EAAEC,cAAcjI,eAO9F2qB,QACC,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,cACPkG,OAAQ,WACN,OAAO,SAACwhB,GAAD,CAAyBnmB,MAAOA,EAAOomB,WAAY/iB,EAAU+iB,iBAMvEvX,EClCF,MAAMsY,GAA6B,IAA8B,IAA7B,OAAE3iB,EAAF,SAAUvC,EAAV,GAAoB7F,GAAS,EACtE,MAAMqhB,GAAY2J,EAAAA,EAAAA,cAAavpB,IACtBwpB,EAAAA,GAAAA,KAAkBC,EAAAA,GAAAA,IAAWzpB,GAAQA,KAGxC0pB,GAAkB5rB,EAAAA,EAAAA,UAAQ,KAC9B,MAAMgN,EAAU8U,EAAU5hB,KAAK9D,IACtB,CAAE2C,MAAO3C,EAAK0B,KAAMS,MAAOnC,EAAK0B,SAezC,OAZuB,IAAnBkP,EAAQ5R,QACV4R,EAAQ6e,QAAQ,CACd9sB,MAAO,8BACPR,MAAO,OAIXyO,EAAQ6e,QAAQ,CACd9sB,MAAO,oBACPR,MAAO,OAGFyO,IACN,CAAC8U,IAEEgK,GAAiB3pB,EAAAA,EAAAA,cAAa4pB,GAA2CzlB,EAASylB,EAAOxtB,QAAS,CAAC+H,IAEzG,OAAO,SAAC,EAAA0lB,OAAD,CAAQC,QAASxrB,EAAIyrB,kBAAgB,EAAC3tB,MAAOsK,EAAQvC,SAAUwlB,EAAgB9e,QAAS4e,KC/B1F,SAASO,GAAsBnwB,GAA6D,MACjG,MAAM,MAAEqI,EAAF,oBAASgnB,GAAwBrvB,EAOvC,OANmB,IAAI6sB,GAAAA,EAA8B,CACnD/lB,MAAO,gBACPrC,GAAI,gBACJwlB,eAAe,IAIdiD,QACC,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,QACPvE,MAAO8F,EAAMvB,MACbwoB,YAAa,EACbtiB,OAAQ,WACN,OACE,SAAC,EAAA9C,MAAD,CACEzF,GAAG,kBACHijB,aAAcrf,EAAMvB,MACpByoB,OAAShlB,GAAM8kB,EAAoB,QAAS9kB,EAAEC,cAAcjI,aAMrE2qB,QACC,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,cACPye,YAAald,EAAMkd,YACnBhjB,MAAO8F,EAAMkd,YACbvY,OAAQ,WACN,OACE,SAAC,EAAAojB,SAAD,CACE3rB,GAAG,wBACHijB,aAAcrf,EAAMkd,YACpBgK,OAAShlB,GAAM8kB,EAAoB,cAAe9kB,EAAEC,cAAcjI,aAM3E2qB,QACC,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,yBACPkG,OAAQ,WACN,OACE,SAAC,EAAAqjB,OAAD,CACE9tB,MAAO8F,EAAMioB,YACb7rB,GAAG,yBACH6F,SAAWC,GAAM8kB,EAAoB,cAAe9kB,EAAEC,cAAc+lB,eAM7EC,YACC,IAAI3D,GAAAA,EAA8B,CAChC/lB,MAAO,cACPrC,GAAI,cACJwlB,eAAe,EACfwG,WAAU,UAAEpoB,EAAMqoB,aAAR,aAAE,EAAatxB,SACxB8tB,QACD,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,cACPkG,OAAQ,WACN,OACE,SAAC,EAAA2jB,sBAAD,CACED,MAAOroB,EAAMqoB,MACbpmB,SAAWomB,GAAUrB,EAAoB,QAASqB,GAClDtE,eAAgBwE,GAAAA,GAChBlsB,KAAM,UAOjB8rB,YACC,IAAI3D,GAAAA,EAA8B,CAChC/lB,MAAO,iBACPrC,GAAI,iBACJwlB,eAAe,IAEdiD,QACC,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,qBACPye,YACE,4LACFvY,OAAQ,WACN,OACE,SAACwiB,GAAD,CACE/qB,GAAG,4BACHoI,OAAQxE,EAAMwE,OACdvC,SAAW/H,IACT8sB,EAAoB,SAAU9sB,UAOzC2qB,QACC,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,mBACP+pB,OAAQ,MAAQxoB,EAAMwE,OACtBG,OAAQ,WAMN,OACE,SAAC,EAAA8jB,iBAAD,CACE9f,QAPqB,CACvB,CAAEjO,MAAO,aAAcR,MAAO,KAC9B,CAAEQ,MAAO,WAAYR,MAAO,MAM1BA,MAAO8F,EAAM0oB,iBAAmB,IAChCzmB,SAAW/H,GAAU8sB,EAAoB,kBAAmB9sB,SAMrE2qB,QACC,IAAIC,GAAAA,EAA0B,CAC5BrmB,MAAO,cACP+pB,OAAQ,IAAMG,QAAQ3oB,EAAMwE,QAAoC,MAA1BxE,EAAM0oB,iBAC5C/jB,OAAQ,WACN,MAAMikB,EAAmB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAAI/sB,KAAK3B,IAAD,CAAcQ,MAAOR,EAAMqX,WAAYrX,MAAAA,MACxF,OACE,SAAC,EAAAytB,OAAD,CACEE,kBAAgB,EAChBlf,QAASigB,EACT1uB,MAAO8F,EAAM6oB,UACb5mB,SAAW/H,GAAU8sB,EAAoB,YAAa9sB,EAAMA,c,+FCtIvE,MAAM4uB,GACXpY,YACU0S,EACAM,GACR,KAFQN,WAAAA,EAER,KADQM,UAAAA,EACR,KAFQN,WAAAA,EAER,KADQM,UAAAA,EAGV1c,OAAO5Q,GACL,MAAM2yB,EAAc,IAAIC,OAAO5yB,EAAO,KAGhC6yB,EADahX,KAAKiX,YAAYjX,KAAKmR,WAAY2F,EAAa,IACpCzgB,KAAK6gB,IAAYttB,KAAKutB,GAAMA,EAAErxB,OAGtDsxB,EADepX,KAAKiX,YAAYjX,KAAKyR,UAAWqF,EAAa,IAC1BzgB,KAAK6gB,IAAYttB,KAAKutB,GAAMA,EAAErxB,OAEvE,MAAO,CACLuxB,WAAYL,EACZM,aAActX,KAAKuX,2BAA2BH,GAC9CI,WAAYxX,KAAKyX,mBAAmBzX,KAAKmR,aAIrC8F,YAAY9F,EAA6C2F,EAAqBY,GACpF,IAAK,MAAM/I,KAAYwC,EAAY,CACjC,MAAMwG,EAAoBb,EAAYc,KAAKjJ,EAASjpB,MAAM8G,OAE1D,IAAK,MAAM1G,KAAQ6oB,EAAS3oB,MACtB8wB,EAAYc,KAAK9xB,EAAKJ,MAAM8G,OAC9BkrB,EAAKxtB,KAAK,CAAEpE,KAAMA,EAAM+xB,KAAM,IAG5B/xB,EAAKJ,MAAMulB,aAAe6L,EAAYc,KAAK9xB,EAAKJ,MAAMulB,aACxDyM,EAAKxtB,KAAK,CAAEpE,KAAMA,EAAM+xB,KAAM,IAG5BF,GACFD,EAAKxtB,KAAK,CAAEpE,KAAMA,EAAM+xB,KAAM,IAI9BlJ,EAASwC,WAAWrsB,OAAS,GAC/Bkb,KAAKiX,YAAYtI,EAASwC,WAAY2F,EAAaY,GAIvD,OAAOA,EAGTD,mBAAmBtG,GACjB,IAAI2G,EAAQ,EAEZ,IAAK,MAAMnJ,KAAYwC,EACrB2G,GAASnJ,EAAS3oB,MAAMlB,OAEpB6pB,EAASwC,WAAWrsB,OAAS,IAC/BgzB,GAAS9X,KAAKyX,mBAAmB9I,EAASwC,aAI9C,OAAO2G,EAGTP,2BAA2BG,GACzB,MAAMvG,EAA4D,GAElE,IAAK,MAAM4G,KAAOL,EAAM,CACtB,IAAI/I,EAAWwC,EAAW4G,EAAIC,OAAOtyB,MAAM8G,OAEtCmiB,IACHA,EAAWwC,EAAW4G,EAAIC,OAAOtyB,MAAM8G,OAAS,IAAI+lB,GAAAA,EAA8BwF,EAAIC,OAAOtyB,OAE7FipB,EAASiE,QAAQmF,EAAIC,OAAOhyB,MAAM,KAIhC2oB,EAAS3oB,MAAM,GAAGN,MAAM8G,QAAUurB,EAAIryB,MAAM8G,OAC9CmiB,EAASiE,QAAQmF,GAIrB,OAAOjwB,OAAOmwB,OAAO9G,IASzB,SAAS+F,GAAW5P,EAAiBC,GACnC,OAAOD,EAAKuQ,KAAOtQ,EAAMsQ,KChGpB,SAASK,GAAiBC,GAC/B,MAAMC,EAA8C,GAEpD,IAAK,MAAMzJ,KAAYwJ,EACrB,IAAK,MAAMryB,KAAQ6oB,EAAS3oB,MACD,SAArBF,EAAKJ,MAAM8G,QACb1G,EAAKJ,MAAMsvB,YAAc,GAEF,QAArBlvB,EAAKJ,MAAM8G,QACb1G,EAAKJ,MAAMsvB,YAAc,GAEF,QAArBlvB,EAAKJ,MAAM8G,QACb1G,EAAKJ,MAAMsvB,YAAc,GAEF,iBAArBlvB,EAAKJ,MAAM8G,QACb1G,EAAKJ,MAAMsvB,YAAc,GAGvBlvB,EAAKJ,MAAMsvB,aACboD,EAAeluB,KAAKpE,GAK1B,OAAOsyB,EAAe/hB,MAAK,CAACiR,EAAMC,IAAUD,EAAK5hB,MAAMsvB,YAAezN,EAAM7hB,MAAMsvB,cCR7E,MAAMqD,GAAuD3yB,IAClE,MAAM,OAAEsM,EAAF,UAAUZ,EAAV,MAAqBrD,GAAUrI,GAC9B2oB,EAAaiK,IAAkB/pB,EAAAA,EAAAA,UAAS,KACxCgqB,EAAUC,IAAejqB,EAAAA,EAAAA,UAASkqB,GAAaC,KAChD/yB,GAASC,EAAAA,EAAAA,YAAWC,KAEnB8yB,EAAmBC,EAAYC,IAAuBnvB,EAAAA,EAAAA,UAC3D,IAAM,CAACmsB,GAAsBnwB,IAAQozB,EAAAA,GAAAA,IAAwBpzB,GAAQovB,GAA+BpvB,KAGpG,CAACqI,EAAM8C,UAAWnL,EAAM0E,KAAM1E,EAAMqzB,cAAe1K,IAG/C2K,GAAgBtvB,EAAAA,EAAAA,UACpB,IAAMwnB,GAA2BxrB,EAAO2oB,IAExC,CAACtgB,EAAM8C,UAAWnL,EAAM0E,KAAM1E,EAAMqzB,cAAe1K,IAG/C4K,EAAqC,GACrCC,EAAc7K,EAAYvpB,OAAS,EACnCq0B,GAAqBzvB,EAAAA,EAAAA,SAAQ0vB,GAAuB,IAEpDjB,GAAa/D,EAAAA,GAAAA,GAAyBrmB,GACxC,CAAC8qB,EAAqBF,KAAsBC,GAC5C,CAACD,KAAsBC,GAE3B,GAAIM,EACFD,EAAgB/uB,KAsFpB,SACEiuB,EACA1G,EACApD,GAEA,MAAMgL,EAAS,IAAIxC,GAAmBsB,EAAY1G,IAC5C,WAAE4F,EAAF,WAAcG,EAAd,aAA0BF,GAAiB+B,EAAOtkB,OAAOsZ,GAE/D,OACE,4BACE,SAACmB,GAAA,EAAD,CACErlB,GAAG,gBACHqC,MAAQ,WAAU6qB,EAAWvyB,UAAU0yB,YAEvClF,UAAW,EAJb,SAMG+E,EAAWztB,KAAKmuB,GAAQA,EAAIrlB,OAAO2b,MAHhC,kBAKLiJ,EAAa1tB,KAAKgmB,GAAaA,EAASld,OAAO2b,OATzC,kBA/FYiL,CAAiBnB,EAAYa,EAAe3K,IAG7D3oB,EAAMsM,OAAOunB,kBACfN,EAAgB/uB,MACd,gBAAKjE,UAAWN,EAAO6zB,aAAvB,2FAAyC,uBAM7C,OAAQjB,GACN,KAAKE,GAAaC,KACZtE,EAAAA,GAAAA,GAAyBrmB,IAE3BkrB,EAAgB/uB,KAAK2uB,EAAoBnmB,UAG3CumB,EAAgB/uB,KAAKyuB,EAAkBjmB,UAEnChN,EAAMsM,OAAOunB,kBACfN,EAAgB/uB,MACd,SAAC4jB,GAAD,CAAqB9b,OAAQA,EAAQZ,UAAWA,EAAWrD,MAAOA,GAAW,mBAIjF,IAAK,MAAMjI,KAAQ8yB,EACjBK,EAAgB/uB,KAAKpE,EAAK4M,UAG5B,IAAK,MAAM5M,KAAQkzB,EACjBC,EAAgB/uB,KAAKpE,EAAK4M,UAE5B,MACF,KAAK+lB,GAAagB,UAChB,IAAK,MAAM7J,KAAYoJ,EACrBC,EAAgB/uB,KAAK0lB,EAASld,UAEhC,MACF,KAAK+lB,GAAaiB,OAChBT,EAAgB/uB,MACd,SAACslB,GAAA,EAAD,CAAqBrlB,GAAG,iBAAiBqC,MAAM,iBAAsC8lB,UAAW,EAAhG,SACG4F,GAAiBC,GAAYvuB,KAAK9D,GAASA,EAAK4M,YADiB,mBAS5E,MAAMinB,GAA0BT,IAAgBlnB,EAAOsf,oBAAoBC,UAE3E,OACE,iBAAKtrB,UAAWN,EAAOyC,QAAvB,WACE,iBAAKnC,UAAWN,EAAOi0B,QAAvB,WACE,gBAAK3zB,UAAWN,EAAOk0B,QAAvB,UACE,SAAC,EAAAC,YAAD,CAAangB,MAAO,EAAG1R,MAAOomB,EAAare,SAAUsoB,EAAgBvoB,YAAa,qBAEnF4pB,IACC,gBAAK1zB,UAAWN,EAAOk0B,QAAvB,UACE,SAAC,EAAArD,iBAAD,CAAkB9f,QAASyiB,EAAoBlxB,MAAOswB,EAAUwB,WAAS,EAAC/pB,SAAUwoB,UAI1F,gBAAKvyB,UAAWN,EAAOq0B,cAAvB,UACE,SAAC,EAAAC,gBAAD,CAAiBC,cAAc,OAA/B,UACE,gBAAKj0B,UAAWN,EAAOw0B,QAAvB,SAAiClB,YAO3C,SAASG,KACP,MAAO,CACL,CAAE3wB,MAAOgwB,GAAaC,IAAKzwB,MAAOwwB,GAAaC,KAC/C,CAAEjwB,MAAOgwB,GAAagB,UAAWxxB,MAAOwwB,GAAagB,YAIlD,IAAKhB,I,SAAAA,GAAAA,EAAAA,IAAAA,MAAAA,EAAAA,UAAAA,YAAAA,EAAAA,OAAAA,S,CAAAA,KAAAA,GAAAA,KA6BZ,MAAM5yB,GAAagB,IAAD,CAChBuB,QAAStB,EAAAA,GAAI;;;;;;;eAOAD,EAAME,OAAOqzB,QAAQC;;;IAIlCC,UAAWxzB,EAAAA,GAAI;;;;IAKf+yB,QAAS/yB,EAAAA,GAAI;qBACMD,EAAMwE,QAAQ;IAEjCuuB,QAAS9yB,EAAAA,GAAI;eACAD,EAAMwE,QAAQ;kBACXxE,EAAME,OAAOuE,WAAWkY;wBAClB3c,EAAM4R,WAAW1K,MAAMwsB;8BACjB1zB,EAAM2E,MAAMC,aAAa;;IAGrD+uB,YAAa1zB,EAAAA,GAAI;mBACAD,EAAMwE,QAAQ;IAE/BqD,WAAY5H,EAAAA,GAAI;eACHD,EAAMwE,QAAQ,EAAG,EAAG,EAAG;IAEpC2uB,cAAelzB,EAAAA,GAAI;;;IAInB0yB,aAAc1yB,EAAAA,GAAI;iBACHD,EAAM+G,WAAW/C,KAAK8lB;aAC1B9pB,EAAME,OAAOszB,KAAK9uB;eAChB1E,EAAMwE,QAAQ;;IAG3B8uB,QAASrzB,EAAAA,GAAI;kBACGD,EAAME,OAAOuE,WAAWkY;wBAClB3c,EAAM4R,WAAW1K,MAAMwsB;;;8ECpMxC,MAAME,GACVC,GACA9uB,GACgBA,EAAM+uB,QAAQ/oB,OAAO8oB,KACnBE,EAAAA,GAAAA,GAAwB,2BAA0BF,MAAc,GCSxEG,GAAiC,IAAe,IAAd,MAAE9sB,GAAY,EAC3D,MAAMpI,GAASwG,EAAAA,EAAAA,WAAUtG,IACnB4K,GAAW2C,EAAAA,EAAAA,eACXpB,GAASmjB,EAAAA,EAAAA,aAAYsF,GAA2B1sB,EAAM7J,OACtD42B,GAAwB3F,EAAAA,EAAAA,cAAavpB,GAAsBA,EAAMgF,YAAYmqB,GAAGD,wBAChFE,GAAkB7F,EAAAA,EAAAA,cAAavpB,GAAsBA,EAAMgF,YAAYoqB,kBAU7E,OAAKhpB,GAKH,gBAAK/L,UAAWN,EAAOyC,QAAvB,UACE,UAAC,EAAA6yB,YAAD,YACE,SAAC,EAAAC,cAAD,CACEj1B,UAAWN,EAAOw1B,UAClBC,QAAQ,gCACRC,OAAQrpB,EAAO3M,KAAKgvB,KAAKiH,MAAMC,MAC/B9rB,OAAQurB,EACRxtB,QApBa,KACnBiD,GAAS+qB,EAAAA,EAAAA,KAAiBR,KAoBpB,aAAY3P,EAAAA,GAAAA,WAAAA,YAAAA,gBACZ0O,WAAS,EAPX,SASG/nB,EAAO3M,KAAKmC,QAEf,SAAC,EAAA0zB,cAAD,CACEE,QAASN,EAAwB,qBAAuB,oBACxDvtB,KAAMutB,EAAwB,cAAgB,aAC9CttB,QAzBoB,KAC1BiD,GAASgrB,EAAAA,EAAAA,IAAsB,CAAEX,uBAAwBA,MAyBnD,aAAYzP,EAAAA,GAAAA,WAAAA,YAAAA,wBArBX,MA4BXwP,GAAoB1jB,YAAc,mBAElC,MAAMtR,GAAagB,IACV,CACLuB,QAAStB,EAAAA,GAAI;;;MAIbq0B,UAAWr0B,EAAAA,GAAI;;4gBCzDZ,MAAM40B,GAA0B,IAAgF,IAA/E,UAAEvtB,EAAF,UAAaD,EAAb,MAAwBH,GAAuD,EACrH,MAAM4tB,GAAiBvH,EAAAA,GAAAA,GAAyBrmB,GAC1CvB,GAAWmvB,EAAiB,WAAa,gBAAhC,iBACTjT,GACJiT,EAAiB,WAAa,oBADlB,0DAGd,OACE,SAAC,EAAAC,aAAD,CACEztB,UAAWA,EACXD,UAAWA,EACX2tB,YAAaF,EAAiB,SAAW,UACzCnvB,MAAOA,EACPkc,KAAMA,EACNoT,YAAY,SACZrsB,QAAQ,K,oGCNP,MAAMssB,GAAsC,IAA4B,UAA3B,MAAEhuB,EAAF,YAASsgB,GAAkB,EAC7E,MAAM1oB,GAASC,EAAAA,EAAAA,YAAWC,KACnBm2B,EAAsBC,IAA2B1tB,EAAAA,EAAAA,WAAS,IAC1D2tB,EAAeC,IAAoB5tB,EAAAA,EAAAA,eAAwClI,IAC3E+1B,EAAaC,IAAkB9tB,EAAAA,EAAAA,UAAmB,IACnD+tB,GAAsBzwB,EAAAA,EAAAA,cACzB8uB,IACC0B,EAAe1B,EAAQ/wB,KAAKoV,GAAMA,EAAE7U,QAEtC,CAACkyB,IAEGjrB,GAAYmrB,EAAAA,GAAAA,MAAkBC,aAC9B/rB,GAAW2C,EAAAA,EAAAA,eAwBjB,OACE,UAAC,EAAArG,cAAD,CAAe1B,QAAQ,KAAvB,WACI0C,EAAMa,eACN,SAAC,EAAA7B,cAAD,CAAeE,MAAM,SAArB,UACE,SAAC,EAAAI,OAAD,CAAQE,KAAK,OAAOC,QAhBA,KAC1ByuB,GAAwB,IAegC3uB,QAAQ,YAAYysB,WAAS,EAA/E,yCAMJ,SAAC0C,GAAA,EAAD,CAAiBzsB,SAAUssB,KAE3B,gBAAKr2B,UAAWN,EAAO+2B,kBAAvB,UACE,SAACC,GAAA,EAAD,CACEC,eAAc,UAAE7uB,EAAMa,oBAAR,aAAE,EAAoBC,IACpCR,aAAcggB,EACd+N,YAAaA,EACbS,YAzBsB9uB,IAC5BouB,EAAiBpuB,IAyBX+uB,sBAAoB,MAIvBd,IACC,SAACe,GAAA,EAAD,CACEhvB,MAAOA,EACPG,UAAW,IAAM+tB,GAAwB,GACzCe,gBAAiB5rB,MAAAA,OAAF,EAAEA,EAAW/L,KAAK2I,SACjCyB,OAAQusB,IAIXE,IACC,SAACR,GAAD,CAAyB3tB,MAAOA,EAAOG,UApCd,KAC7BiuB,OAAiB91B,IAmC6D8H,UAtDxD1J,UACjBy3B,IAILC,OAAiB91B,GAEjBoK,GAASwsB,EAAAA,EAAAA,IAAqBlvB,EAAOmuB,YAqDnCr2B,GAAagB,IACV,CACL61B,kBAAmB51B,EAAAA,GAAI;;uECvFpB,MAAMo2B,GAAqB,CAChC,aACA,WACA,QACA,OACA,WACA,WACA,QACA,iBACA,iBACA,OACA,e,qECDK,SAASC,GAAT,GAA8F,YAAzD,KAAE/yB,EAAF,WAAQgzB,EAAR,SAAoBptB,EAApB,MAA8B2J,EAA9B,UAAqC0jB,GAAoB,EACnG,MAAM13B,GAASC,EAAAA,EAAAA,YAAWC,KACpB,YAAEy3B,EAAF,YAAeC,EAAf,YAA4BC,EAA5B,aAAyCC,GA2HjD,SAAuC9jB,GACrC,MAAM+jB,EAAc,IAEdC,EAAahkB,GAAS,EAAI+jB,GAC1BF,EAAc,IACdC,EAAeD,GAAe,EAAIE,GAElCzJ,EAAU,EAIhB,MAAO,CACLwJ,aAAAA,EACAD,YAAAA,EACAD,YAAa,CAAE5jB,MAZCA,EAYiBmH,OAAQ6c,GACzCL,YAAa,CACX3jB,MAAO6jB,EACP1c,OAAQ2c,EACRG,UAAY,UAhBEjkB,EAMyB,EAAVsa,GAAeuJ,OAC1BG,EAAuB,EAAV1J,GAAewJ,OApIcI,CAA8BlkB,GACxFmkB,EAAW,UAAGV,EAAWU,mBAAd,QAA6B,GAExCC,EAAoB,CACxB,aAAcX,EAAW51B,KACzBvB,UAAWN,EAAOq4B,OAClB,cAAe3S,EAAAA,GAAAA,WAAAA,qBAAAA,KAA+C+R,EAAW51B,MACzEgZ,MAAO+c,EACP/vB,QAAS,KACPwC,EAAS,CACPgd,SAAUoQ,EAAWpQ,SACrBtW,QAAS0mB,EAAW1mB,QACpB2a,YAAa+L,EAAW/L,gBAKN,MAAxB,GAAIyM,EAAYzC,OACd,OACE,SAAC,EAAAnQ,QAAD,CAASC,QAAO,UAAEiS,EAAWnS,mBAAb,QAA4BmS,EAAW51B,KAAvD,UACE,oCAAYu2B,EAAZ,CAA+B93B,WAAWC,EAAAA,EAAAA,IAAGP,EAAOq4B,OAAQr4B,EAAOs4B,QAAnE,WACE,gBAAKh4B,UAAWN,EAAO6B,KAAvB,SAA8B41B,EAAW51B,QACzC,gBAAKvB,UAAWN,EAAOu4B,IAAKvJ,IAAKmJ,EAAYzC,OAAQzG,IAAKwI,EAAW51B,aAM7E,IAAI22B,EAAUf,EAMd,OALA,UAAIA,EAAWU,mBAAf,OAAI,EAAwBM,kBAC1BD,GAAUzM,EAAAA,EAAAA,WAAU0L,GACpBA,EAAWU,YAAYM,gBAAgBD,KAIvC,mCAAYJ,EAAZ,WACE,SAAC,EAAA7S,QAAD,CAASC,QAASiS,EAAW51B,KAA7B,UACE,iBAAKgZ,MAAO8c,EAAar3B,UAAWN,EAAO04B,gBAA3C,WACE,SAACC,GAAA,EAAD,CACE9xB,MAAM,GACNpC,KAAMA,EACN4iB,SAAUoQ,EAAWpQ,SACrBrT,MAAO6jB,EACP1c,OAAQ2c,EACR/mB,QAASynB,EAAQznB,QACjB2a,YAAa8M,EAAQ9M,eAEvB,gBAAKprB,UAAWN,EAAO44B,oBAOjC,MAAM14B,GAAagB,IACV,CACL03B,WAAWz3B,EAAAA,EAAAA,KAAI,CACb8Z,SAAU,WACV8G,IAAK,EACLH,MAAO,EACPD,KAAM,EACN7b,aAAc5E,EAAMwE,QAAQ,GAC5Bmc,OAAQ,IAEVwW,OAAQl3B,EAAAA,GAAI;;;uBAGOD,EAAM2E,MAAMC,aAAa;;0BAEtB5E,EAAME,OAAOC,OAAOC;;oBAE1BJ,EAAM23B,YAAYhgB,OAAO,CAAC,cAAe,CACrDigB,SAAU53B,EAAM23B,YAAYC,SAASC;;;sBAIvB73B,EAAME,OAAOuE,WAAWC;;MAG1C0yB,OAAQn3B,EAAAA,GAAI;;;;;;eAMDD,EAAME,OAAOszB,KAAK7W;;;;;;;MAQ7Bhc,KAAMV,EAAAA,GAAI;wBACUD,EAAMwE,QAAQ;oBAClBxE,EAAMwE,SAAS;mBAChBxE,EAAM+G,WAAW+wB,UAAUC;;;eAG/B/3B,EAAME,OAAOszB,KAAK9uB;qBACZ1E,EAAM+G,WAAWixB;;MAGlCX,IAAKp3B,EAAAA,GAAI;mBACMD,EAAMwE,QAAQ;oBACbxE,EAAMwE,QAAQ;MAE9BgzB,gBAAiBv3B,EAAAA,GAAI;;;;;QC3GlB,SAASg4B,GAAT,GAAiF,IAA/C,SAAE9uB,EAAF,KAAY5F,EAAZ,MAAkB2D,EAAlB,YAAyBsgB,GAAsB,EACtF,MAAM1oB,GAASC,EAAAA,EAAAA,YAAWC,KAClBoC,MAAO82B,IAAgBtwB,EAAAA,EAAAA,IAAS,IFAnChK,eAAiC2F,EAAkB2D,GACxD,MAAMixB,EAAU,IAAIC,GAAAA,gCAAgC70B,EAAM2D,GAE1D,IAAK,MAAMif,KAAYkQ,GAAoB,CACzC,MACMlhB,SADekjB,EAAAA,GAAAA,GAAkBlS,IACfmS,yBAEpBnjB,GACFA,EAASojB,sBAAsBJ,GAInC,MAAMpL,EAAOoL,EAAQK,UAErB,GAAuC,IAAnCL,EAAQM,YAAYC,WACtB,IAAK,MAAMvtB,KAAUlK,OAAOmwB,OAAOzO,EAAAA,OAAAA,QAC5BxX,EAAOwtB,gBAAiBxtB,EAAOytB,cAIpC7L,EAAK1pB,KAAK,CACR1C,KAAMwK,EAAOxK,KACbwlB,SAAUhb,EAAO7H,GACjB8gB,YAAajZ,EAAOqiB,KAAKpJ,YACzB6S,YAAa,CACXzC,OAAQrpB,EAAOqiB,KAAKiH,MAAMC,SAMlC,OAAO3H,EAAKvd,MAAK,CAACqpB,EAAGC,KAAM,QACzB,OAAO,UAACA,EAAEC,aAAH,QAAYC,GAAAA,6BAAAA,KAAZ,UAAgDH,EAAEE,aAAlD,QAA2DC,GAAAA,6BAAAA,OEhCtBC,CAAkB11B,EAAM2D,IAAQ,CAAC3D,EAAM2D,KAE9EsvB,EAAW0C,IAAgBC,EAAAA,GAAAA,GAAiB,sCAAqC,GAClFC,EA0CR,SACE5R,EACA0Q,GAEA,IAAK1Q,IAAgB0Q,EACnB,OAAOA,GAAe,GAGxB,MAAMmB,EAAQ,IAAInJ,OAAO1I,EAAa,KAEtC,OAAO0Q,EAAY/2B,QAAQm4B,GAAMD,EAAMtI,KAAKuI,EAAE34B,OAAS04B,EAAMtI,KAAKuI,EAAEnT,YApDxCoT,CAA0B/R,EAAa0Q,GAEnE,OACE,SAAC,KAAD,CAAWsB,eAAa,EAAC7f,MAAO,CAAE7G,MAAO,OAAQmH,OAAQ,QAAzD,SACG,IAAe,IAAd,MAAEnH,GAAY,EACd,IAAKA,EACH,OAAO,KAGT,MAAM2mB,EAAcrd,KAAKsd,MAAM5mB,EAAQ,KAEjC6mB,GAAgB7mB,EADD,GAAK2mB,EAAe,IACKA,EAE9C,OACE,4BACE,gBAAKr6B,UAAWN,EAAO86B,UAAvB,UACE,gBAAKx6B,UAAWN,EAAO+6B,SAAUlzB,QAAS,IAAMuyB,GAAc1C,GAA9D,sCAIF,iBAAKp3B,UAAWN,EAAOg7B,KAAMngB,MAAO,CAAEogB,oBAAsB,qBAAoBJ,EAAe,QAA/F,UACGP,EAAoBr2B,KAAI,CAACwzB,EAAYr3B,KACpC,SAACo3B,GAAD,CAEE/yB,KAAMA,EACNgzB,WAAYA,EACZptB,SAAUA,EACV2J,MAAO6mB,EACPnD,UAAWA,GALNt3B,KAQRsoB,GAA8C,IAA/B4R,EAAoBn7B,SAClC,gBAAKmB,UAAWN,EAAO+6B,SAAvB,oDAuBhB,MAAM76B,GAAagB,IACV,CACLg6B,SAAS/5B,EAAAA,EAAAA,KAAI,OAAD,UACPD,EAAM+G,WAAWkzB,GADV,CAEVC,OAAQl6B,EAAMwE,QAAQ,EAAG,GAAK,MAEhCo1B,WAAW35B,EAAAA,EAAAA,KAAI,CACbia,QAAS,OACTsG,cAAe,MACf2Z,eAAgB,eAChBC,WAAY,SACZC,cAAe,QAEjBR,UAAU55B,EAAAA,EAAAA,KAAI,CACZ83B,SAAU/3B,EAAM+G,WAAW+wB,UAAUC,SACrCuC,MAAOt6B,EAAME,OAAOszB,KAAK9uB,UACzB61B,UAAW,WAEbT,MAAM75B,EAAAA,EAAAA,KAAI,CACRia,QAAS,OACTsgB,QAASx6B,EAAMwE,QAAQ,GACvBu1B,oBAAqB,2BACrBU,aAAcz6B,EAAMwE,QAAQ,GAC5B21B,eAAgB,mB,qIC5Ff,MAAMO,GAAuC,IAA8C,IAA7C,UAAEC,EAAF,OAAaxvB,EAAb,QAAqBxE,EAArB,SAA8Bi0B,GAAe,EAChG,OACE,SAACC,GAAA,EAAD,CACEl1B,MAAOwF,EAAOxK,KACdwK,OAAQA,EACRiZ,YAAajZ,EAAOqiB,KAAKpJ,YACzBzd,QAASA,EACTg0B,UAAWA,EACXC,SAAUA,EACVE,WAAW,K,OCHV,SAASC,GAAT,GAAwE,IAAjD,YAAEvT,EAAF,SAAere,EAAf,QAAyBoF,EAAzB,KAAkChL,GAAe,EAC7E,MAAMzE,GAASC,EAAAA,EAAAA,YAAWC,IACpBg8B,GAAiCn4B,EAAAA,EAAAA,UAAQ,KACtCo4B,EAAAA,GAAAA,MACN,IAEGC,GAAsBr4B,EAAAA,EAAAA,UAAQ,KAC3Bs4B,EAAAA,GAAAA,GAAiBH,EAAaxT,EAAajZ,IACjD,CAACA,EAASysB,EAAaxT,IAE1B,OAAmC,IAA/B0T,EAAoBj9B,OACtB,SAAO,SAAC,EAAAm9B,kBAAD,4DAIP,gBAAKh8B,UAAWN,EAAOg7B,KAAvB,SACGoB,EAAoBn4B,KAAI,CAACoI,EAAQjM,KAChC,SAACw7B,GAAD,CACEE,UAAU,EAEVD,UAAWxvB,EAAO7H,KAAOiL,EAAQjL,GACjC6H,OAAQA,EACRxE,QAAUyC,GACRD,EAAS,CACPgd,SAAUhb,EAAO7H,GACjB+3B,WAAYxL,QAAQzmB,EAAEkyB,SAAWlyB,EAAEmyB,SAAWnyB,EAAEoyB,WAN/CrwB,EAAO7H,QDXtBo3B,GAAoBpqB,YAAc,sBC0BlC,MAAMtR,GAAagB,IACV,CACL85B,KAAM75B,EAAAA,GAAI;;;kBAGID,EAAMwE,QAAQ;MAE5Bw1B,SAAS/5B,EAAAA,EAAAA,KAAI,OAAD,UACPD,EAAM+G,WAAWkzB,GADV,CAEVC,OAAQl6B,EAAMwE,QAAQ,EAAG,GAAK,Q,4ECnC7B,MAAMi3B,GAAqC,IAAqB,IAApB,MAAEv0B,EAAF,KAAS3D,GAAW,EACrE,MAAM4H,GAASmjB,EAAAA,EAAAA,aAAYsF,GAA2B1sB,EAAM7J,QACrDmqB,EAAaiK,IAAkB/pB,EAAAA,EAAAA,UAAS,KACxCgqB,EAAUC,IAAewH,EAAAA,GAAAA,GAC9BuC,GAAAA,GACAC,GAAAA,GAAAA,gBAGI/xB,GAAW2C,EAAAA,EAAAA,eACXzN,GAASwG,EAAAA,EAAAA,WAAUtG,IACnB48B,GAAYlrB,EAAAA,EAAAA,QAAgC,MAE5CmrB,GAAc72B,EAAAA,EAAAA,cACjB82B,IACClyB,GAASsb,EAAAA,EAAAA,IAAkB,OAAD,QAAGhe,MAAOA,GAAU40B,KAGzCA,EAAaT,YAChBzxB,GAAS+qB,EAAAA,EAAAA,KAAgB,MAG7B,CAAC/qB,EAAU1C,KAIb2F,EAAAA,EAAAA,YAAU,KACJ+uB,EAAUrtB,SACZqtB,EAAUrtB,QAAQwtB,UAEnB,CAACrK,IAMJ,IAAKvmB,EACH,OAAO,KAGT,MAAM6wB,EAAmE,CACvE,CAAEp6B,MAAO,iBAAkBR,MAAOu6B,GAAAA,GAAAA,gBAClC,CAAE/5B,MAAO,cAAeR,MAAOu6B,GAAAA,GAAAA,aAC/B,CACE/5B,MAAO,iBACPR,MAAOu6B,GAAAA,GAAAA,cACPvX,YAAa,+DAIjB,OACE,iBAAKhlB,UAAWN,EAAOm9B,YAAvB,WACE,iBAAK78B,UAAWN,EAAOi0B,QAAvB,WACE,iBAAK3zB,UAAWN,EAAOo9B,UAAvB,WACE,SAAC,EAAAjJ,YAAD,CACE7xB,MAAOomB,EACPre,SAAUsoB,EACVrX,IAAKwhB,EACLO,WAAW,EACXjzB,YAAY,mBAEd,SAAC,EAAA1C,OAAD,CACEb,MAAM,QACNc,QAAQ,YACRC,KAAK,WACLtH,UAAWN,EAAO60B,YAClB,aAAYnP,EAAAA,GAAAA,WAAAA,YAAAA,gBACZ7d,QAnCe,KACvBiD,GAAS+qB,EAAAA,EAAAA,KAAgB,WAqCrB,SAAC3L,GAAA,EAAD,CAAO5pB,UAAWN,EAAOs9B,kBAAzB,UACE,SAAC,EAAAzM,iBAAD,CAAkB9f,QAASmsB,EAAc56B,MAAOswB,EAAUvoB,SAAUwoB,EAAauB,WAAS,UAG9F,gBAAK9zB,UAAWN,EAAOq0B,cAAvB,UACE,SAAC,EAAAC,gBAAD,CAAiBC,cAAc,OAA/B,UACE,iBAAKj0B,UAAWN,EAAOu9B,cAAvB,UACG3K,IAAaiK,GAAAA,GAAAA,iBACZ,SAACZ,GAAD,CACExsB,QAASpD,EAAO3M,KAChB2K,SAAU0yB,EACVrU,YAAaA,EACbjkB,KAAMA,EACN6O,QAAS,SAGZsf,IAAaiK,GAAAA,GAAAA,cACZ,SAAC1D,GAAD,CACE1pB,QAASpD,EAAO3M,KAChB2K,SAAU0yB,EACVrU,YAAaA,EACbtgB,MAAOA,EACP3D,KAAMA,EACN6O,QAAS,SAGZsf,IAAaiK,GAAAA,GAAAA,gBACZ,SAACzG,GAAD,CAA0B1N,YAAaA,EAAatgB,MAAOA,GAAW,4BASpFu0B,GAAwBnrB,YAAc,0BAEtC,MAAMtR,GAAagB,IACV,CACL0G,KAAMzG,EAAAA,GAAI;eACCD,EAAMqjB,QAAQiZ;MAEzB/6B,QAAStB,EAAAA,GAAI;;;;;MAMbq0B,UAAWr0B,EAAAA,GAAI;;MAGfkzB,cAAelzB,EAAAA,GAAI;;;MAInBo8B,cAAep8B,EAAAA,GAAI;iBACND,EAAMwE,QAAQslB;MAE3BmS,YAAah8B,EAAAA,GAAI;;;;;oBAKDD,EAAME,OAAOq8B;0BACPv8B,EAAME,OAAOs8B;MAEnCN,UAAWj8B,EAAAA,GAAI;;uBAEID,EAAMwE,QAAQslB;MAEjC6J,YAAa1zB,EAAAA,GAAI;qBACAD,EAAMwE,QAAQslB;MAE/BsS,kBAAmBn8B,EAAAA,GAAI;uBACJD,EAAMwE,QAAQslB;MAEjCiJ,QAAS9yB,EAAAA,GAAI;iBACAD,EAAMwE,QAAQslB;;QC/JlB2S,GAA+C,IAQtD,IARuD,OAC3DtxB,EAD2D,MAE3DjE,EAF2D,qBAG3D4jB,EAH2D,sBAI3D4R,EAJ2D,oBAK3DxO,EAL2D,UAM3D3jB,EAN2D,cAO3D2nB,GACI,EACJ,MAAMpzB,GAASwG,EAAAA,EAAAA,WAAUtG,IACnBm1B,GAAkB7F,EAAAA,EAAAA,cAAavpB,GAAsBA,EAAMgF,YAAYoqB,mBACvE,KAAE5wB,GAASgN,GAAmBrJ,EAAO,CAAEmK,gBAAgB,EAAMD,iBAAiB,IAAS,GAE7F,OACE,iBAAKhS,UAAWN,EAAOyC,QAAS,aAAYijB,EAAAA,GAAAA,WAAAA,YAAAA,YAAAA,QAA5C,WACI2P,IACA,iCACE,gBAAK/0B,UAAWN,EAAO69B,iBAAvB,UACE,SAAC3I,GAAD,CAAqB9sB,MAAOA,OAE9B,gBAAK9H,UAAWN,EAAO89B,eAAvB,UACE,SAACpL,GAAD,CACEtqB,MAAOA,EACPqD,UAAWA,EACXY,OAAQA,EACR+mB,cAAeA,EACf3uB,KAAMA,EACNunB,qBAAsBA,EACtB4R,sBAAuBA,EACvBxO,oBAAqBA,SAK5BiG,IAAmB,SAACsH,GAAD,CAAyBv0B,MAAOA,EAAO3D,KAAMA,QAKjEvE,GAAagB,IACV,CACLuB,QAAStB,EAAAA,GAAI;;;;;;;MAQb28B,eAAgB38B,EAAAA,GAAI;;;MAIpB08B,iBAAkB18B,EAAAA,GAAI;mBACPD,EAAMwE,QAAQgf,MAAMxjB,EAAMwE,QAAQgf;MAEjDqZ,cAAe58B,EAAAA,GAAI;;;;;;;;;;mBAUJD,EAAMwE,QAAQgf;;;;;kBAKfxjB,EAAMwE,QAAQgf;;;;;;kNCjEzB,SAASsZ,GAAT,GAA0E,IAA5C,MAAEhqB,EAAF,OAASmH,EAAT,MAAiB/S,EAAjB,UAAwBqD,GAAoB,EAC/E,MAAM,KAAEhH,GAASgN,GAAmBrJ,EAAO,CAAEmK,gBAAgB,EAAMD,iBAAiB,IAAS,IACtFvB,EAASktB,IAAcr1B,EAAAA,EAAAA,UAAuB,CACnDs1B,WAAY,EACZC,YAAY,EACZC,eAAe,IAgBjB,OAZArwB,EAAAA,EAAAA,YAAU,KACR,MAAMswB,GAAUC,EAAAA,GAAAA,MACVC,GAAWC,EAAAA,GAAAA,IAAwBp2B,EAAOi2B,EAAQI,aAElDC,EAAMt2B,EAAMu2B,OAAOzsB,UAAU0sB,EAAAA,cAAc,KAC/Cx2B,EAAMy2B,mBAAmBpzB,EAAUjH,GAAIiH,EAAUqJ,cAAeypB,EAAUvqB,MAE5E,MAAO,KACL0qB,EAAInwB,iBAEL,CAACnG,EAAOqD,EAAWuI,IAEjBvP,GAKH,SAAC,EAAAq6B,YAAD,CAAa9qB,MAAOA,EAAOmH,OAAQA,EAAQmT,QAAQ,OAAnD,SACG,CAAChL,EAAYF,KAAb,aACC,iCACE,SAAC2b,GAAA,EAAD,CAAmB32B,MAAOA,EAAOpB,MAAOvC,MAAAA,GAAF,UAAEA,EAAMuC,aAAR,aAAE,EAAaF,WACrD,SAAC6xB,GAAA,EAAD,CACE9xB,MAAM,WACNwgB,SAAS,QACTrT,MAAOsP,EACPnI,OAAQiI,EACR3e,KAAMA,EACNsM,QAASA,EACT0D,gBAAiBwpB,UAflB,K,sIC/BJ,SAASe,GAAT,GAA4D,IAAjC,QAAEl4B,GAA+B,EACjE,MAAMm4B,GAAkB/4B,EAAAA,EAAAA,cAAY,KAClC4B,EAAAA,gBAAAA,QAAwB,CAAE0f,IAAK0X,GAAAA,GAAAA,UAC9B,IAEH,OACE,SAACC,GAAA,GAAD,CAAQ53B,QAAQ,SAASsT,MAAO,CAAEukB,UAAW,SAA7C,UACE,UAAC,EAAAh4B,cAAD,CAAe1B,QAAQ,KAAvB,WACE,wBAAKoB,KACL,0BACE,SAAC,EAAAY,OAAD,CAAQxC,KAAK,KAAKyC,QAAQ,YAAYC,KAAK,aAAaC,QAASo3B,EAAjE,uC,4LCFV,MAAMI,WAAqB7c,EAAAA,cAA4B,kDACtC,CACb8c,kBAAmB,KAFgC,wBA6BtCxgC,UACb,MAAM,UAAE2M,EAAF,QAAa8zB,EAAb,UAAsBC,GAAcnlB,KAAKta,YAEzC0/B,EAAAA,EAAAA,iBAAgBC,KAAK,+BAAgC,CACzDC,YAAal0B,EAAUjH,GACvB+6B,QAASA,IAGXllB,KAAK9M,SAAS,CAAE+xB,kBAAmB,KACnCE,OAjCFjc,oBACE,MAAM,UAAE9X,EAAF,QAAa8zB,GAAYllB,KAAKta,OAEpC0/B,EAAAA,EAAAA,iBACGhgC,IACE,gCAA+BgM,EAAUjH,cAAc+6B,wBACxD,GACC,iBAAgB9zB,EAAUjH,MAAM+6B,KAElC30B,MAAMnG,IACL,MAAMpE,EAAQoE,EAAKR,KAAK9D,IACf,CACLy/B,WAAYC,GAAAA,EAAAA,qBAA8B1/B,EAAKiiB,UAC/CjS,KAAM1E,EAAU+iB,WAAWruB,EAAKgQ,KAAM,wBACtCue,KAAMmR,GAAAA,EAAAA,uBAAgC1/B,OAI1Cka,KAAK9M,SAAS,CACZ+xB,kBAAmBj/B,OAiB3B0M,SACE,MAAM,kBAAEuyB,GAAsBjlB,KAAKpU,MAEnC,OACE,2BACGq5B,EAAkBngC,OAAS,IAC1B,iBAAKmB,UAAU,QAAf,mBACE,iBAAMA,UAAU,QAAhB,qCACA,SAAC,EAAAw/B,cAAD,CAAet3B,UAAW6R,KAAK0lB,aAAcC,eAAe,cAAc9J,YAAY,QAAtF,UACE,SAAC,EAAAxuB,OAAD,CACEpH,UAAWa,EAAAA,GAAI;;kBAGfwG,QAAQ,cACRC,KAAK,YALP,iCAYN,eAAItH,UAAU,kBAAd,SACGg/B,EAAkBngC,OAAS,EAC1BmgC,EAAkBr7B,KAAI,CAAC9D,EAAMC,KAEzB,gBAAIE,UAAU,kBAAd,WACE,gBAAKA,UAAY,yBAAwBH,EAAKy/B,WAAWK,aAAzD,UACE,SAAC,EAAAr+B,KAAD,CAAMC,KAAM1B,EAAKy/B,WAAWM,UAAWh7B,KAAK,UAE9C,iBAAK5E,UAAU,wBAAf,WACE,iBAAKA,UAAU,0BAAf,WACE,cAAGA,UAAU,wBAAb,SAAsCH,EAAKggC,aAC3C,gBAAK7/B,UAAU,wBAAf,UACE,iBAAMA,UAAY,GAAEH,EAAKy/B,WAAWK,aAApC,SAAmD9/B,EAAKy/B,WAAWlL,YAGtEv0B,EAAKuuB,SAER,gBAAKpuB,UAAU,wBAAf,SAAwCH,EAAKgQ,SAbT,GAAEhQ,EAAKgQ,QAAQ/P,OAH1D,SAqBC,4DAQZ,Y,sIC5FO,MAAMggC,WAAuB5d,EAAAA,cAA4B,kDACtC,CACtBhQ,WAAW,EACX6tB,iBAAkB,KAClBC,iBAAkB,KAJ0C,wFAgC1CC,IAClBlmB,KAAKkmB,cAAgBA,KAjCuC,+BAoCxC,IACbn8B,KAAKC,UAAUgW,KAAKkmB,cAAe,KAAM,KArCY,8BAwCzC,KACnBnyB,EAAAA,EAAAA,KAAeoyB,GAAAA,UAAAA,aAAwB,CAAC,mCAzCoB,0BA4C7C,KACfnmB,KAAK9M,UAAU4U,GAAD,iBACTA,EADS,CAEZke,kBAAmBhmB,KAAKpU,MAAMo6B,wBA/C4B,4BAmD3C,IACmB,OAAhChmB,KAAKpU,MAAMo6B,iBACN,EACEhmB,KAAKpU,MAAMo6B,iBACb,GAEF,IAzDqD,gCA4DvC,KACrB,MAAM,iBAAEA,GAAqBhmB,KAAKpU,MAE5Bw6B,GACJ,yCACE,SAAC,EAAA7+B,KAAD,CAAMC,KAAK,kBADb,mBAII6+B,GACJ,yCACE,SAAC,EAAA9+B,KAAD,CAAMC,KAAK,iBADb,iBAIF,OAAOw+B,EAAmBI,EAAWC,KA/DvCnd,oBACElJ,KAAKsmB,WAGO,iBACZ,MAAM,UAAEl1B,EAAF,MAAarD,GAAUiS,KAAKta,MAG5BiQ,EAAQvE,EAAUyC,oBAGxB8B,EAAM/D,OAAS+D,EAAM/D,OAAOhI,KAAK28B,GACxBA,EAAUp8B,KAAO4D,EAAM5D,GAAK4D,EAAM0D,eAAiB80B,IAG5D,MAAMC,EAAU,CAAEp1B,UAAWuE,EAAOuvB,QAASn3B,EAAM5D,IAEnD6V,KAAK9M,SAAS,CAAEiF,WAAW,IAC3B,MAAM8tB,QAAyBb,EAAAA,EAAAA,iBAAgBC,KAAM,mBAAmBmB,GACxExmB,KAAK9M,SAAS,CAAEiF,WAAW,EAAO8tB,iBAAAA,IA+CpCvzB,SACE,MAAM,iBAAEuzB,EAAF,UAAoB9tB,GAAc6H,KAAKpU,MAE7C,IAAkB,IAAduM,EACF,gBAAO,SAAC,EAAAsuB,mBAAD,CAAoBpM,KAAK,qBAGlC,MAAMqM,EAAY1mB,KAAK2mB,mBAEvB,OACE,iCACE,gBAAK1gC,UAAU,aAAf,UACE,UAAC,EAAA+G,gBAAD,CAAiB3B,QAAQ,KAAzB,WACE,gBAAKmC,QAASwS,KAAK4mB,eAAnB,SAAoC5mB,KAAK6mB,0BACzC,SAAC,EAAAC,gBAAD,CAAiBC,QAAS/mB,KAAKgnB,oBAAqBC,gBAAiBjnB,KAAKknB,mBAAoB35B,KAAK,OAAnG,qCAMJ,SAAC,EAAA45B,cAAD,CAAeC,KAAMnB,EAAkBoB,KAAMX,EAAWY,YAAatnB,KAAKunB,uB,uMCrElF,MAAMC,WAA4Brf,EAAAA,cAA4B,oIAK7C,CACbsf,kBAAmB,GACnBC,kBAAkB,EAClBC,wBAAwB,EACxBC,cAAc,IAT4C,iCAsBpC,KACtB5nB,KAAKwI,iBAvBqD,sBAuF/C,KAAM,QACjB,UAAAxI,KAAK4M,iBAAL,SAAgBib,eAChB,UAAA7nB,KAAK8S,iBAAL,SAAgBlF,SAChB5N,KAAKwI,iBA1FqD,yBA6F3C8H,IACf,MAAMroB,EAAQ+X,KAAKpU,MAAM0kB,GACzBtQ,KAAK9M,SAAL,iBAAmB8M,KAAKpU,MAAxB,CAA+B,CAAC0kB,IAAQroB,QA/FkB,0BAkG3C,KACf,IAAK+X,KAAKpU,MAAMg8B,aACd,OAAO,KAGT,MAAM,MAAE75B,EAAF,UAASqD,GAAc4O,KAAKta,MAC5BwI,EAAY,IAAM8R,KAAK8nB,cAAc,gBAE3C,OACE,SAAC,EAAAt4B,MAAD,CAAOC,QAAQ,EAAMlC,KAAK,MAAMf,MAAM,eAAe0B,UAAWA,EAAW65B,gBAAiB75B,EAA5F,UACE,SAAC63B,GAAD,CAAgBh4B,MAAOA,EAAOqD,UAAWA,SA5Ga,oCAiHjC,KACzB,IAAK4O,KAAKpU,MAAM+7B,uBACd,OAAO,KAGT,MAAM,MAAE55B,GAAUiS,KAAKta,MACjBwI,EAAY,IAAM8R,KAAK8nB,cAAc,0BAE3C,OACE,SAAC,EAAAlM,aAAD,CACEnsB,QAAQ,EACRlC,KAAK,YACLf,MAAM,SACNkc,KAAI,SACF,+EAEE,mBACA,6FAGJmT,YAAY,eACZ3tB,UAAWA,EACXC,UAAW,KAAM,aACRJ,EAAMi6B,MACbj6B,EAAMk6B,WAAa,GACfjoB,KAAK4M,YACP5M,KAAK4M,UAAUsb,WAAa,KAC5BloB,KAAK4M,UAAUla,UAEjB,UAAAsN,KAAK8S,iBAAL,SAAgBlF,SAChB1f,UA/IoD,8BAqJvC,KACnB,IAAK8R,KAAKpU,MAAM87B,iBACd,OAAO,KAGT,MAAM,MAAE35B,EAAF,UAASqD,GAAc4O,KAAKta,MAC5BwI,EAAY,IAAM8R,KAAK8nB,cAAc,oBAE3C,OACE,SAAC,EAAAt4B,MAAD,CAAOC,QAAQ,EAAMlC,KAAK,UAAUf,MAAM,gBAAgB0B,UAAWA,EAAW65B,gBAAiB75B,EAAjG,UACE,SAAC,GAAD,CAAckD,UAAWA,EAAW8zB,QAASn3B,EAAM5D,GAAIg7B,UAAW,4BAAMnlB,KAAK4M,iBAAX,aAAM,EAAgB7W,kBAnJvE,0BACjByT,EAAAA,OAAAA,6BACI,oGACNxJ,KAAKmoB,gBAGLH,MAAM,qFAQV7b,mBAAmBC,GACjBpM,KAAKmoB,eAGP/e,uBACMpJ,KAAK8S,WACP9S,KAAK8S,UAAUvG,UAID,qBAChB,MAAM,MAAExe,EAAF,sBAAS6d,GAA0B5L,KAAKta,MAE9C,IAAKsa,KAAKwM,SAAWxM,KAAK8S,UACxB,OAGF,GAAIlH,EAAuB,CACzB,MAAMa,EAAQb,EAAsBc,WAGpC,IAAKD,EAAME,YAIT,YAHAva,YAAW,KACT4N,KAAKwI,iBAKTxI,KAAK4M,UAAYH,EAAME,YAAYE,UAEnC7M,KAAK4M,UAAY5M,KAAKooB,yBAGxB,MAAM9a,GAASC,EAAAA,EAAAA,oBAETC,EAAa,CAAEX,KAAM7M,KAAK4M,WAEhC5M,KAAK8S,UAAYxF,EAAOK,KAAK3N,KAAKwM,QAASgB,EAH1B,iBAKjB,MAAMia,QAA0BjjC,EAAAA,GAAAA,GAC9BuJ,EAAMrJ,gBACNqJ,EAAMpJ,SACNkX,EAAAA,EAAAA,oBACA9N,EAAMlJ,YAGJ4iC,GACFznB,KAAK9M,SAAS,CAAEu0B,kBAAAA,IAIpBW,yBACE,MAAO,CACLr6B,MAAOiS,KAAKta,MAAMqI,MAClBu2B,OAAQ,IAAI+D,GAAAA,YACZ31B,OAAQ,KACNsN,KAAKta,MAAMqI,MAAM2E,WAkFvBA,SACE,MAAM,MAAEs1B,EAAF,gBAAStjC,GAAoBsb,KAAKta,MAAMqI,OACxC,kBAAE05B,GAAsBznB,KAAKpU,MAC7B08B,EAAqB5jC,GAAmBA,EAAgBI,OAAS,EAEvE,IAAKkjC,GAASP,EACZ,OAAO,SAAC9C,GAAD,CAAmBl4B,QAASg7B,IAGrC,MAAM9xB,EAAQ,CACZnJ,MAAO,kCACP+7B,WAAY,OACZ/6B,QAASwS,KAAKwoB,WACdC,YAAa,gBAGf,OACE,iCACE,SAAC,EAAAxO,gBAAD,CAAiBC,cAAc,OAA/B,UACE,SAAC,EAAAwO,UAAD,CAAWzU,QAAQ,KAAnB,UACE,iBAAK,aAAY5I,EAAAA,GAAAA,WAAAA,SAAAA,QAAjB,UACG2c,GAASM,IACR,SAAC,EAAAj8B,MAAD,CACEC,SAAUC,EAAAA,GAAAA,MACVC,MAAM,wDAIV,gBAAKyU,IAAMuL,GAAaxM,KAAKwM,QAAUA,IACtCwb,IACC,UAAC,EAAAh7B,gBAAD,YACE,SAAC,EAAAK,OAAD,CAAQG,QAAS,IAAMwS,KAAK8nB,cAAc,oBAAqBx6B,QAAQ,YAAvE,4BAGA,SAAC,EAAAD,OAAD,CAAQG,QAAS,IAAMwS,KAAK8nB,cAAc,gBAAiBx6B,QAAQ,YAAnE,wBAGA,SAAC,EAAAD,OAAD,CAAQG,QAAS,IAAMwS,KAAK8nB,cAAc,0BAA2Bx6B,QAAQ,cAA7E,wBAKF06B,IAAUP,IAAqB,SAACkB,GAAA,EAAD,iBAAkBhzB,WAKxDqK,KAAK4oB,iBACL5oB,KAAK6oB,2BACL7oB,KAAK8oB,yBAMd,MAQaC,IAAW3tB,EAAAA,EAAAA,UARuD,CAACxP,EAAOlG,KAAU,MAC/F,MAAO,CACLkmB,sBAAqB,WAAEtQ,EAAAA,GAAAA,GAAsB1P,EAAOlG,EAAMqI,cAArC,aAAE,EAA2C8d,oBAIE,GAEhDzQ,CAA6CosB,I,4EClQ9D,MAAMwB,GAAoC,IAAqC,IAApC,UAAE53B,EAAF,MAAarD,EAAb,UAAoB9H,GAAgB,EACpF,MAAM,QAAEkK,EAASlI,MAAOghC,IAAex6B,EAAAA,EAAAA,IAAS,KAAMy6B,EAAAA,GAAAA,IAAsBn7B,EAAOqD,IAAY,CAACrD,EAAOqD,IACjGyD,GAAW2G,EAAAA,EAAAA,MACjB,GAAIrL,EACF,gBAAO,SAAC,EAAA9C,OAAD,CAAQo0B,UAAU,EAAlB,gDAGT,IAAKwH,EACH,gBACE,SAAC,EAAA58B,MAAD,CAAOC,SAAS,OAAOE,MAAM,kCAA7B,gHAMJ,MAAM28B,EAAcC,GAAAA,QAAAA,UAAkB,eAAgB,CACpDC,SAAUt/B,KAAKC,UAAUi/B,GACzBK,SAAUz0B,EAASjB,SAAWiB,EAASE,SAGzC,OACE,SAAC,EAAAw0B,WAAD,CAAYh8B,KAAK,OAAOi8B,KAAML,EAAaljC,UAAWA,EAAW,cAAY,2BAA7E,gD,2fCRG,SAASwjC,GAAT,GAAuF,YAAxD,UAAEr4B,EAAF,MAAarD,EAAb,KAAoB27B,GAAO,GAA6B,EAC5F,MAAMj5B,GAAW2C,EAAAA,EAAAA,eAEXu2B,EAAe,WACnBh+B,EAAAA,GAAAA,IAA4BC,GAAUA,EAAMg+B,UAAU79B,GAAAA,aADnC,QACkE89B,GAAAA,GACjFC,EAAgB,WACpBn+B,EAAAA,GAAAA,IAA4BC,GAAUA,EAAMF,WAAWK,GAAAA,aADnC,QACkE89B,GAAAA,IAGxFn2B,EAAAA,EAAAA,YAAU,KACR,MAAMq2B,EAAQ,KACZt5B,GACEu5B,EAAAA,GAAAA,IAAqB,CACnBl+B,gBAAiBC,GAAAA,GACjB/D,OAAQ,CAAEiiC,aAAc74B,EAAUvC,IAAKq2B,QAASn3B,EAAM5D,OAG1DsG,GACEy5B,EAAAA,GAAAA,IAAsB,CACpBp+B,gBAAiBC,GAAAA,GACjB/D,OAAQ,CAAEiiC,aAAc74B,EAAUvC,IAAKq2B,QAASn3B,EAAM5D,QAK5D,GADA4/B,IACIL,EAAM,CACR,MAAMS,EAAWC,YAAYL,EAAOM,GAAAA,IACpC,MAAO,KACLC,cAAcH,IAGlB,MAAO,SACN,CAAC15B,EAAUi5B,EAAM37B,EAAM5D,GAAIiH,EAAUvC,MAExC,MAAMsB,EAAUw5B,EAAgBx5B,SAAW25B,EAAiB35B,QACtDo6B,EAAS,CAACZ,EAAgBh9B,MAAOm9B,EAAiBn9B,OAAO3E,QAC5DwiC,KAA+DA,IAG5DC,GAAqBC,EAAAA,GAAAA,IAA0B3+B,GAAAA,IAgBrD,MAAO,CACL5C,OAdYO,EAAAA,EAAAA,UACZ,IACE+gC,EACGE,SAASC,GAAOA,EAAGC,SACnBF,SAASrjC,GAAUA,EAAM6B,QACzBnB,QACEN,GACCA,EAAKG,YAAYkD,GAAAA,GAAAA,gBAA6BqG,EAAUvC,KACxDnH,EAAKG,YAAYkD,GAAAA,GAAAA,WAAwB+/B,OAAO/8B,EAAM5D,OAE9D,CAACsgC,EAAoBr5B,EAAWrD,IAKhCw8B,OAAAA,EACAp6B,QAAAA,G,oFCpEG,MA2DDtK,GAAagB,IAAD,CAChBkkC,UAAWjkC,EAAAA,GAAI;kBACCD,EAAMwE,QAAQ;IAE9B2/B,aAAclkC,EAAAA,GAAI;eACLD,EAAMwE,QAAQ;IAE3B4/B,eAAgBnkC,EAAAA,GAAI;cACRD,EAAMwE,QAAQ;wBACJxE,EAAME,OAAOuE,WAAWC;eACjC1E,EAAMwE,QAAQ;MCjF7B,GAAeme,EAAAA,OAAAA,uBDYgC,IAA0B,UAAzB,UAAEpY,EAAF,MAAarD,GAAY,EACvE,MAAMpI,GAASC,EAAAA,EAAAA,YAAWC,KACpB,OAAE0kC,EAAF,QAAUp6B,EAAV,MAAmBhH,GAAUsgC,GAAsB,CACvDr4B,UAAAA,EACArD,MAAAA,EACA27B,MAAM,IAEFwB,GAAcC,EAAAA,GAAAA,IAAoB,WAClCC,EAAiB/1B,EAAAA,GAAAA,cAAyB61B,EAAY1sB,QAEtDwpB,EAAQuC,EAAOzlC,QACnB,SAAC,EAAAuH,MAAD,CAAOG,MAAM,uBAAuBF,SAAS,QAA7C,SACGi+B,EAAO3gC,KAAI,CAAC+C,EAAO5G,KAClB,kEAAsD4G,EAAMF,SAAW,mBAA7D1G,OAGZ,KAEJ,OAAIoK,IAAYhH,EAAMrE,QAElB,iBAAKmB,UAAWN,EAAOqlC,aAAvB,UACGhD,EADH,SAEE,SAAC,EAAAvB,mBAAD,CAAoBpM,KAAK,yBAK3BlxB,EAAMrE,QAEN,SAAC,EAAAm1B,gBAAD,CAAiBC,cAAc,OAA/B,UACE,iBAAKj0B,UAAWN,EAAOqlC,aAAvB,UACGhD,EADH,OAEE,SAAC9+B,GAAA,EAAD,CAAYC,MAAOA,OAChBiI,EAAU/L,KAAKiQ,SAAW81B,IAC3B,SAACpC,GAAD,CAAwB/iC,UAAWN,EAAOolC,UAAWh9B,MAAOA,EAAOqD,UAAWA,UAQtF,iBAAK,aAAYia,EAAAA,GAAAA,WAAAA,qBAAAA,QAAmDplB,UAAWN,EAAOslC,eAAtF,UACGjD,IACE52B,EAAUvC,MACX,yCACE,6EACGuC,EAAU/L,KAAKiQ,SAAW81B,IAAkB,SAACpC,GAAD,CAAwBj7B,MAAOA,EAAOqD,UAAWA,QAGlGA,EAAUvC,OAASuC,EAAU/L,KAAKiQ,UAAnC,SACC,SAAC,EAAAjJ,MAAD,CAAOC,SAAS,OAAOE,MAAM,sBAA7B,uEC/D8Du8B,G,6FCM/D,MAAMsC,GAA2B,IAAyC,IAAxC,MAAEt9B,EAAF,UAASqD,GAA+B,EAAjBk6B,E,oIAAiB,OAC/E,MAAM,MAAEniC,EAAF,QAASgH,GAAYs5B,GAAsB,CAAE17B,MAAAA,EAAOqD,UAAAA,IAC1D,OAAO,SAAC4I,GAAA,EAAD,iBAASsxB,EAAT,CAAqBC,QAASp7B,EAAU,KAAOhH,EAAMrE,W,gSCZ9D,MAAM0mC,GAAqC,CACzC,CAACC,GAAAA,OAAAA,iBAAyB,iEAC1B,CAACA,GAAAA,OAAAA,aAAqB,8EACtB,CAACA,GAAAA,OAAAA,sBACC,gG,imBCkBG,MAAMC,GAAuB,IAOH,IAPI,UACnCC,EADmC,MAEnC5lC,EAFmC,KAGnCqE,EAHmC,SAInCwhC,EAJmC,QAKnCC,EALmC,SAMnC77B,GAC+B,EAC/B,MAAMrK,GAASwG,EAAAA,EAAAA,WAAUtG,KAClBimC,EAAOC,IAAYx9B,EAAAA,EAAAA,UAAsB,KACzCy9B,EAAQC,IAAa19B,EAAAA,EAAAA,UAAsB,IAC5Cib,GAAS9f,EAAAA,EAAAA,UAAQ,IAAMmiC,EAAQ9lC,IAAQ,CAAC8lC,EAAS9lC,KAEvD2N,EAAAA,EAAAA,YAAU,KACR,MAAMw4B,EAAkBL,EAAQM,MAAM,EAAGpmC,GAAO6D,KAAKmQ,GAAMA,EAAEqyB,iBACvDC,EAAmBR,EAAQM,MAAMpmC,EAAOA,EAAQ,GAAG6D,KAAKmQ,GAAMA,EAAEqyB,iBAChEE,GAAoBC,EAAAA,GAAAA,oBAAmBL,EAAiB9hC,GAAMyN,UAAUk0B,GACxES,GAAqBD,EAAAA,GAAAA,oBAAmBL,EAAiB9hC,GAC5DqiC,MAAKC,EAAAA,GAAAA,IAAUC,IAAWJ,EAAAA,GAAAA,oBAAmBF,EAAkBM,MAC/D90B,UAAUo0B,GAEb,OAAO,WACLK,EAAkBp4B,cAClBs4B,EAAmBt4B,iBAEpB,CAACnO,EAAOqE,EAAMyhC,IAEjB,MAAMjd,GAASllB,EAAAA,EAAAA,UACb,IACEuJ,EAAAA,cAAoB24B,EAAShd,OAAQ,CACnClY,QAAS,OAAF,UAAOk1B,EAASQ,eAAeQ,eAAmBpjB,EAAO4iB,eAAe11B,SAC/Eo1B,MAAAA,EACA97B,SAAW68B,IACT78B,EAASjK,EAAO,CAAEoE,GAAIqf,EAAO4iB,eAAejiC,GAAIuM,QAASm2B,QAG/D,CACEjB,EAAShd,OACTgd,EAASQ,eAAeQ,eACxBpjB,EAAO4iB,eAAe11B,QACtB8S,EAAO4iB,eAAejiC,GACtB2hC,EACA97B,EACAjK,IAIJ,OACE,iBAAKE,UAAWN,EAAOipB,OAAQ,aAAYvD,EAAAA,GAAAA,WAAAA,aAAAA,qBAAuDugB,EAASpkC,MAA3G,UACGonB,EACA+c,IACC,iBACE1lC,UAAWN,EAAOmnC,aAClB,aAAYzhB,EAAAA,GAAAA,WAAAA,aAAAA,6BAA+DugB,EAASpkC,MAFtF,WAIE,iBAAKvB,UAAWN,EAAOonC,MAAvB,WACE,gBAAK9mC,UAAWN,EAAOqnC,WAAvB,wCACA,gBAAK/mC,UAAWN,EAAOsnC,UAAvB,UACE,SAAC,EAAA9F,cAAD,CAAeC,KAAM0E,UAGzB,gBAAK7lC,UAAWN,EAAOunC,eAAvB,kBACE,SAAC,EAAA3lC,KAAD,CAAMC,KAAK,oBAEb,iBAAKvB,UAAWN,EAAOonC,MAAvB,WACE,gBAAK9mC,UAAWN,EAAOqnC,WAAvB,yCACA,gBAAK/mC,UAAWN,EAAOsnC,UAAvB,SAAmCjB,IAAU,SAAC,EAAA7E,cAAD,CAAeC,KAAM4E,gBAQxEnmC,GAAagB,IACjB,MAAMsmC,EAActmC,EAAMumC,QAAUvmC,EAAMqjB,QAAQmjB,OAASxmC,EAAMqjB,QAAQojB,OAEzE,MAAO,CACL9gC,MAAO1F,EAAAA,GAAI;;;;;;;;;MAUXU,KAAMV,EAAAA,GAAI;qBACOD,EAAM+G,WAAWkjB,OAAOyc;eAC9B1mC,EAAME,OAAOymC;MAExBC,QAAS3mC,EAAAA,GAAI;;MAGbyG,KAAMzG,EAAAA,GAAI;;;;;eAKCD,EAAME,OAAO8pB;qBACPhqB,EAAMwE,QAAQslB;;iBAElB9pB,EAAME,OAAOszB;;MAG1BzL,OAAQ9nB,EAAAA,GAAI,GACZgmC,aAAchmC,EAAAA,GAAI;;;MAIlBomC,eAAgBpmC,EAAAA,GAAI;;;;;;;kBAOND,EAAMwE,QAAQqiC;eACjB7mC,EAAME,OAAOymC;MAExBR,WAAYlmC,EAAAA,GAAI;iBACHD,EAAMwE,QAAQslB,MAAM9pB,EAAMwE,QAAQsiC;qBAC9B9mC,EAAM+G,WAAWggC,WAAWC;mBAC9BhnC,EAAM+G,WAAW/C,KAAK8lB;eAC1B9pB,EAAME,OAAOszB;iCACK8S;;;MAK7BJ,MAAOjmC,EAAAA,GAAI;oBACKD,EAAMwE,QAAQslB;mBACf9pB,EAAMwE,QAAQslB,MAAM9pB,EAAMwE,QAAQslB,MAAM9pB,EAAMwE,QAAQslB;0BAC/Cwc;oBACNtmC,EAAMumC,QAAUvmC,EAAMqjB,QAAQ4jB,MAAQjnC,EAAMqjB,QAAQ6jB;uBACjDlnC,EAAMG,OAAOgnC,OAAOrd;;;;;;MAOvCsc,UAAWnmC,EAAAA,GAAI;;;;iBAIFD,EAAMwE,QAAQqiC;QClJlBO,GAAwE,IAQ/E,UARgF,SACpF9f,EADoF,MAEpFpoB,EAFoF,GAGpFoE,EAHoF,KAIpFC,EAJoF,QAKpFyhC,EALoF,SAMpFD,EANoF,SAOpF57B,GACI,EACJ,MAAOk+B,EAAWC,IAAeC,EAAAA,GAAAA,IAAU,IACpCC,EAAUC,IAAcF,EAAAA,GAAAA,IAAU,GACnC3M,EAAWoK,EAAQ9lC,GAAOqmC,eAAe3K,SAEzC8M,GAAkB1iC,EAAAA,EAAAA,cACrB9F,IACC,MAAMqP,EAAUy2B,EAAQ9lC,GAAOqmC,eAC/Bp8B,EAASjK,EAAD,iBACHqP,EADG,CAENqsB,UAAUrsB,EAAQqsB,eAAWp7B,OAGjC,CAAC2J,EAAU67B,IAyBb,OACE,UAAC2C,GAAA,EAAD,CACErkC,GAAIA,EACJpE,MAAOA,EACPyG,MAAOo/B,EAASpkC,KAChBinC,WAAS,EACTC,QA5BkB,IAA8C,IAA7C,OAAEj/B,GAA2C,EAClE,OACE,UAAC,EAAAzC,gBAAD,CAAiBC,MAAM,SAAS0M,MAAM,OAAtC,UACGiyB,EAAShgC,QAAS,SAAC+iC,GAAA,EAAD,CAAiB/iC,MAAOggC,EAAShgC,QADtD,OAEE,SAACgjC,GAAA,EAAD,CACEpiC,MAAM,2BACNe,KAAK,cACLC,QAAS8gC,EACTr0B,OAAQo0B,MAEV,SAACO,GAAA,EAAD,CAAsBpiC,MAAM,QAAQi1B,UAAWhyB,EAAQlC,KAAK,MAAMC,QAAS2gC,EAAal0B,OAAQi0B,KAChG,SAACU,GAAA,EAAD,CACEpiC,MAAM,gCACNe,KAAMk0B,EAAW,YAAc,MAC/Bj0B,QAAS,IAAM+gC,EAAgBxoC,GAC/BkU,OAAQwnB,KAEV,SAACmN,GAAA,EAAD,CAAsBpiC,MAAM,SAASe,KAAK,YAAYC,QAAS,IAAM2gB,EAASpoB,SAYhF07B,SAAUA,EANZ,UAQG4M,IAAY,SAACQ,GAAA,EAAD,CAAkBC,SAAUC,GAAanD,MACtD,SAACF,GAAD,CACEC,UAAWuC,EACXnoC,MAAOA,EACPqE,KAAMA,EACNyhC,QAASA,EACTD,SAAUA,EACV57B,SAAUA,QAMlB,SAAS++B,GAAanD,GAAwC,MAG5D,MAAQ,KAFQ,UAAGA,EAASoD,YAAZ,QAAoBpD,EAAS3gB,uMCjFxC,MAAMgkB,GAA0E,IAKjF,IALkF,KACtF7kC,EADsF,SAEtF4F,EAFsF,SAGtFme,EAHsF,QAItF0d,GACI,EACJ,OACE,8BACGA,EAAQjiC,KAAI,CAACmQ,EAAG1J,KACf,MAAMu7B,EAAWsD,GAAAA,6BAAAA,YAAyCn1B,EAAEqyB,eAAejiC,IAC3E,OAAKyhC,GAKH,SAACqC,GAAD,CACEloC,MAAOsK,EACPlG,GAAK,GAAE4P,EAAE5P,KAETC,KAAMA,EACNyhC,QAASA,EACTD,SAAUA,EACVzd,SAAUA,EACVne,SAAUA,GALJ,GAAE+J,EAAE5P,MAPL,W,mIC4BjB,MAAMglC,WAAsCl8B,EAAAA,cAG1CwL,YAAY/Y,GACVumB,MAAMvmB,GADuC,yDAe7B0O,IAChB4L,KAAK9M,SAAS,CAAE6B,OAAQX,EAAMnP,OAAOgD,WAhBQ,2BAmB5BmM,IACjB,GAAkB,UAAdA,EAAMtK,IAAiB,CACzB,MAAM,OAAEiL,GAAWiL,KAAKpU,MACxB,GAAImJ,EAAQ,CACV,MAAMq6B,EAAQr6B,EAAO5F,cACfkgC,EAAWH,GAAAA,6BAAAA,OAAoClnC,QAAQ+R,IAC9CA,EAAEvS,KAAOuS,EAAEkR,aAAa9b,cAC1BmgC,QAAQF,IAAU,IAE3BC,EAASvqC,OAAS,GACpBkb,KAAKuvB,oBAAoB,CAAEtnC,MAAOonC,EAAS,GAAGllC,WAGvB,KAAlBiK,EAAMo7B,UAEfxvB,KAAK9M,SAAS,CAAE6B,OAAQ,GAAI06B,YAAY,IACxCr7B,EAAMs7B,sBAnCqC,mCA6EpBloC,IACzB,MAAM,gBAAE9C,GAAoBsb,KAAKpU,MACjC,IAAI+jC,EAAS,EACb,MAAMC,EAAclrC,EAAgBsD,QAAQ+R,GAAMA,EAAE5P,GAAG0lC,WAAWroC,KAAOoC,KAAKmQ,GAAMA,EAAE5P,KAMtF,OAJ2B,IAAvBylC,EAAY9qC,SACd6qC,EAAS1sB,KAAKF,OAAO6sB,EAAYhmC,KAAKyG,GAAM6U,SAAS7U,EAAEy/B,MAAM,OAAQ,GAAI,OAAQ,GAG3E,GAAEtoC,KAAQmoC,OAtF2B,+BAyFxBI,IACrB,MAAM,gBAAErrC,GAAoBsb,KAAKpU,MAE3B+jC,EAAS3vB,KAAKgwB,wBAAwBD,EAAW9nC,OACvD+X,KAAK9M,SAAS,CAAE6B,OAAQ,GAAI06B,YAAY,IACxCzvB,KAAKhQ,SAAS,IACTtL,EACH,CACEyF,GAAIwlC,EACJvD,eAAgB,CACdjiC,GAAI4lC,EAAW9nC,MACfyO,QAAS,UApG8B,kCA0GtB,CAACub,EAAazI,KACrC,MAAM,gBAAE9kB,GAAoBsb,KAAKpU,MAC3BkM,EAAO2R,MAAMwmB,KAAKvrC,GACxBoT,EAAKma,GAAKma,eAAiB5iB,EAC3BxJ,KAAKhQ,SAAS8H,MA9G+B,kCAiHrBma,IACxB,MAAM,gBAAEvtB,GAAoBsb,KAAKpU,MAC3BkM,EAAO2R,MAAMwmB,KAAKvrC,GACxBoT,EAAK+Z,OAAOI,EAAK,GACjBjS,KAAKhQ,SAAS8H,MArH+B,qBAwHlC9L,IACX,MAAM,gBAAEtH,GAAoBsb,KAAKpU,MAEjC,IAAKI,IAAWA,EAAOkkC,YACrB,OAGF,MAAMC,EAAankC,EAAOiS,OAAOlY,MAC3BqqC,EAAWpkC,EAAOkkC,YAAYnqC,MACpC,GAAIoqC,IAAeC,EACjB,OAEF,MAAMC,EAAS5mB,MAAMwmB,KAAKvrC,IACnB4rC,GAAWD,EAAOxe,OAAOse,EAAY,GAC5CE,EAAOxe,OAAOue,EAAU,EAAGE,GAC3BtwB,KAAKhQ,SAASqgC,MAvI+B,uCA0IjB,KAC5B,MAAM,KAAEjmC,EAAF,gBAAQ1F,GAAoBsb,KAAKpU,MAEvC,OACE,SAAC,MAAD,CAAiB2kC,UAAWvwB,KAAKuwB,UAAjC,UACE,SAAC,MAAD,CAAWC,YAAY,uBAAuBC,UAAU,WAAxD,SACIC,IAEE,+BAAKzvB,IAAKyvB,EAASC,UAAcD,EAASE,eAA1C,YACE,SAAC3B,GAAD,CACEpD,QAASnnC,EACT0F,KAAMA,EACN+jB,SAAUnO,KAAK6wB,uBACf7gC,SAAUgQ,KAAK8wB,yBAEhBJ,EAAS3gC,uBAvJtB,MAAMrL,EAAkBgB,EAAMqI,MAAMrJ,iBAAmB,GAEjDqsC,EAAM/wB,KAAKgxB,uBAAuBtsC,GACxCsb,KAAKpU,MAAQ,CACXlH,gBAAiBA,EAAgBkF,KAAI,CAACmQ,EAAG1J,KAAJ,CACnC+7B,eAAgBryB,EAChB5P,GAAI4mC,EAAI1gC,OAEVjG,KAAM,GACN2K,OAAQ,IA4BZi8B,uBAAuBtsC,GACrB,MAAMusC,EAAiD,GACjDC,EAA8B,GAEpC,IAAK,IAAI7gC,EAAI,EAAGA,EAAI3L,EAAgBI,OAAQuL,IAAK,CAC/C,MAAM+7B,EAAiB1nC,EAAgB2L,QACWhK,IAA9C4qC,EAAuB7E,EAAejiC,IACxC8mC,EAAuB7E,EAAejiC,IAAM,EAE5C8mC,EAAuB7E,EAAejiC,KAAO,EAE/C+mC,EAAkBhnC,KAAM,GAAExF,EAAgB2L,GAAGlG,MAAM8mC,EAAuBvsC,EAAgB2L,GAAGlG,OAE/F,OAAO+mC,EAGThoB,oBACElJ,KAAKmxB,aAAenxB,KAAKta,MAAMqI,MAC5BsE,iBACAuF,QAAQ,CAAEM,gBAAgB,EAAOD,iBAAiB,IAClDJ,UAAU,CACTC,KAAOs5B,GAAyBpxB,KAAK9M,SAAS,CAAE9I,KAAMgnC,EAAU94B,WAItE8Q,uBACMpJ,KAAKmxB,cACPnxB,KAAKmxB,aAAaj9B,cAItBlE,SAAStL,GACPsb,KAAK9M,SAAS,CAAExO,gBAAAA,IAChBsb,KAAKta,MAAMqI,MAAMsjC,mBAAmB3sC,EAAgBkF,KAAKmQ,GAAMA,EAAEqyB,kBA0FnEkF,yBACE,MAAM,gBAAE5sC,EAAF,OAAmBqQ,GAAWiL,KAAKpU,MACzC,IAAI2lC,EAA0B,KAC1BC,EAAStC,GAAAA,6BAAAA,OAAoC74B,MAAK,CAACqpB,EAAGC,IAAOD,EAAEl4B,KAAOm4B,EAAEn4B,KAAO,EAAIm4B,EAAEn4B,KAAOk4B,EAAEl4B,MAAQ,EAAI,IAE9G,GAAIuN,EAAQ,CACV,MAAMq6B,EAAQr6B,EAAO5F,cACfkgC,EAAWmC,EAAOxpC,QAAQ+R,IACjBA,EAAEvS,KAAOuS,EAAEkR,aAAa9b,cAC1BmgC,QAAQF,IAAU,IAG/BmC,GACE,gCACGlC,EAASvqC,OADZ,MACuB0sC,EAAO1sC,OAD9B,OAEE,SAAC,EAAAyqB,WAAD,CACE/nB,KAAK,QACLiqC,QAAQ,SACRjkC,QAAS,KACPwS,KAAK9M,SAAS,CAAE6B,OAAQ,WAMhCy8B,EAASnC,EAGX,MAAMqC,IAAgBhtC,MAAAA,GAAAA,EAAiBI,QACjC2qC,EAAaiC,GAAgB1xB,KAAKpU,MAAM6jC,WAc9C,OAZK8B,IAAU9B,GAAeiC,IAC5BH,GACE,SAAC,EAAAhiB,WAAD,CACE/nB,KAAK,QACLiqC,QAAQ,SACRjkC,QAAS,KACPwS,KAAK9M,SAAS,CAAEu8B,YAAY,SAOlC,gCACGiC,IACC,SAAC,EAAAhJ,UAAD,CAAWiJ,KAAM,EAAjB,UACE,SAACC,GAAA,EAAD,CAAoCC,WAjOtB,uEAiOqDzkB,cAAc,EAAjF,SACG,CAAC0kB,EAAa5jC,KACb,OAAI4jC,EACK,MAIP,UAAC,EAAAzlC,MAAD,CACEG,MAAM,kBACNF,SAAS,OACT6hB,SAAU,KACRjgB,GAAU,IAJd,mBAOE,qJAEuB,kBAFvB,8HAIkC,kBAJlC,iGAKiG,SAEjG,cACEs7B,MJrRMr/B,EIqRYshC,GAAAA,OAAAA,gBJrRGD,GAAWrhC,IIsRhClE,UAAU,gBACVhB,OAAO,SACP8sC,IAAI,aAJN,0BJpRQ5nC,IAAAA,OIkSnBslC,GACC,UAAC,EAAA1iC,cAAD,YACE,SAAC,EAAA6C,MAAD,CACE,aAAYyb,EAAAA,GAAAA,WAAAA,WAAAA,YACZpjB,MAAO8M,MAAAA,EAAAA,EAAU,GACjBiuB,WAAY0O,EACZ3hC,YAAY,qBACZC,SAAUgQ,KAAKgyB,eACfC,UAAWjyB,KAAKkyB,gBAChBX,OAAQA,IAGTC,EAAO5nC,KAAKmQ,IAET,SAACo4B,GAAD,CAEEvU,UAAW7jB,EACXvM,QAAS,KACPwS,KAAKuvB,oBAAoB,CAAEtnC,MAAO8R,EAAE5P,OAHjC4P,EAAEvS,YAUf,SAAC,EAAA6F,OAAD,CACEE,KAAK,OACLD,QAAQ,YACRE,QAAS,KACPwS,KAAK9M,SAAS,CAAEu8B,YAAY,KAJhC,mCAcR/8B,SACE,MACE3E,OAAO,MAAEi6B,IACPhoB,KAAKta,OACH,gBAAEhB,GAAoBsb,KAAKpU,MAE3BwmC,EAAgB1tC,EAAgBI,OAAS,EAE/C,OAAKstC,GAAiBpK,EACpB,SAAO,SAACrD,GAAD,CAAmBl4B,QAAQ,oEAIlC,SAAC,EAAAwtB,gBAAD,CAAiBC,cAAc,OAA/B,UACE,SAAC,EAAAwO,UAAD,CAAWzU,QAAQ,KAAnB,UACE,iBAAK,aAAY5I,EAAAA,GAAAA,WAAAA,aAAAA,QAAjB,UACG+mB,GAAiBpK,GAChB,SAAC,EAAA37B,MAAD,CACEC,SAAUC,EAAAA,GAAAA,MACVC,MAAM,yDAEN,KACH4lC,GAAiBpyB,KAAKqyB,8BACtBryB,KAAKsxB,iCAalB,SAASa,GAAT,GAA6E,IAAjD,UAAEvU,EAAF,QAAapwB,GAAoC,EAC3E,MAAM7H,GAASC,EAAAA,EAAAA,YAAWC,IAC1B,OACE,UAAC,EAAAysC,KAAD,CACErsC,UAAWN,EAAO4sC,KAClB,aAAYlnB,EAAAA,GAAAA,WAAAA,aAAAA,aAA+CuS,EAAUp2B,MACrEgG,QAASA,EAHX,WAKE,SAAC,EAAA8kC,KAAA,QAAD,UAAe1U,EAAUp2B,QACzB,SAAC,EAAA8qC,KAAA,KAAD,UAAY1U,EAAU3S,cACrB2S,EAAUhyB,QACT,SAAC,EAAA0mC,KAAA,KAAD,WACE,SAAC3D,GAAA,EAAD,CAAiB/iC,MAAOgyB,EAAUhyB,aAO5C,MAAM/F,GAAagB,IACV,CACL0rC,KAAMzrC,EAAAA,GAAI;;iBAEGD,EAAMwE,QAAQ;QAKlBmnC,IAAwBC,EAAAA,EAAAA,WAAUtD,I,mPClYxC,MAAMuD,WAA2BvqB,EAAAA,cACtC1J,YAAY/Y,GACVumB,MAAMvmB,GADkB,wBAwCX,KACbsa,KAAKta,MAAMqI,MAAMgI,aAzCO,gCA4CH,KACrBtI,EAAAA,gBAAAA,QAAwB,CACtB4O,QAAS2D,KAAKta,MAAMqI,MAAM5D,GAC1BmS,WAAY,aA/CU,2BAmDP5F,IAA+B,MAChD,MAAM,MAAE3I,GAAUiS,KAAKta,MAEvBqI,EAAM4kC,cAAcj8B,GAEhBA,EAAQkF,WAAW/M,OAAnB,UAA2Bd,EAAMlJ,kBAAjC,aAA2B,EAAkBgK,MAE/CuD,WAAW4N,KAAK4yB,aAAc,IAGhC5yB,KAAKwI,iBAzDPqqB,kBAAkB9kC,GAAsC,QACtD,MAAM6N,EAAgC,UAAG7N,EAAMlJ,kBAAT,QAAuB,CAC3DiuC,SAAS,GAELC,GAAqBC,EAAAA,GAAAA,MAAmBC,oBAAoBr3B,GAElE,MAAO,CACLs3B,aAAcH,MAAAA,GAAA,UAAAA,EAAoB1tC,KAAK8tC,oBAAzB,SAAuCD,aAAenlC,EAAMmlC,kBAAe7sC,EACzFuV,WAAY,CACVk3B,QAASC,MAAAA,OAAF,EAAEA,EAAoBK,UAC7BlvC,KAAM6uC,MAAAA,OAAF,EAAEA,EAAoB7uC,KAC1B2K,IAAKkkC,MAAAA,OAAF,EAAEA,EAAoBlkC,KAE3BwkC,QAAStlC,EAAMpJ,QACf2uC,cAAevlC,EAAMulC,cACrBC,YAAaxlC,EAAMo8B,SACnB/F,UAAW,CACT6L,KAAMliC,EAAMylC,SACZC,MAAO1lC,EAAM2lC,UACb7oB,KAAM9c,EAAM4lC,mBAKK,0BACrB,MAAM,MAAE5lC,GAAUiS,KAAKta,MAIvB,IAAKqI,EAAMlJ,WAAY,CACrB,MAAMM,GAAK6tC,EAAAA,GAAAA,MAAmBC,oBAAoB,MAClDllC,EAAMlJ,YAAa+uC,EAAAA,GAAAA,kBAAiBzuC,GACpC6a,KAAKwI,eA4BT9V,SACE,MAAM,MAAE3E,GAAUiS,KAAKta,MAGvB,IAAKqI,EAAMlJ,WACT,OAAO,KAGT,MAAM6R,EAAUsJ,KAAK6yB,kBAAkB9kC,GAEvC,OACE,SAAC8lC,GAAA,EAAD,CACEn9B,QAASA,EACTo9B,YAAa/lC,EAAMsE,iBACnBugC,aAAc5yB,KAAK4yB,aACnBmB,qBAAsB/zB,KAAK+zB,qBAC3B35B,gBAAiB4F,KAAK5F,mBC1EvB,MAAM45B,GAA4C/gC,EAAAA,MAAW,IAA6C,IAA5C,MAAElF,EAAF,UAASqD,EAAT,KAAoBwH,EAApB,YAA0BsB,GAAkB,EAC/G,MAAMsO,GAAcyrB,EAAAA,EAAAA,kBACdtuC,GAASC,EAAAA,EAAAA,YAAWC,KAE1B6N,EAAAA,EAAAA,YAAU,KACR,MAAMwgC,EAAY,IAAIC,GAAAA,GAGtB,OAFAD,EAAUE,IAAIrmC,EAAMu2B,OAAOzsB,UAAUw8B,EAAAA,GAA0B7rB,IAC/D0rB,EAAUE,IAAIrmC,EAAMu2B,OAAOzsB,UAAUy8B,EAAAA,GAAkC9rB,IAChE,IAAM0rB,EAAUhgC,gBACtB,CAACnG,EAAOya,IAEX,MAAMnP,EAAYT,EAAK7B,MAAMjR,GAASA,EAAKmU,SAE3C,OAAoB,IAAhBrB,EAAK9T,OACA,MAIP,iBAAKmB,UAAWN,EAAOyC,QAAvB,WACE,SAAC,EAAA0R,QAAD,CAAS7T,UAAWN,EAAO4uC,OAAQC,YAAU,EAA7C,SACG57B,EAAKhP,KAAKujB,GACLA,EAAIhjB,KAAO06B,GAAAA,GAAAA,MAwCzB,SACE1X,EACApf,EACAqD,EACA8I,GAIA,IAF0BsP,EAAAA,OAAAA,kBAA2BA,EAAAA,OAAAA,uBAGnD,OAAO,KAGT,GAAIA,EAAAA,OAAAA,uBACF,OACE,SAAC6hB,GAAD,CAEE5iC,MAAO0kB,EAAIkN,KACXpgB,OAAQkT,EAAIlT,OACZC,YAAa,IAAMA,EAAYiT,GAC/B5f,KAAM4f,EAAI5f,KACVQ,MAAOA,EACPqD,UAAWA,GANN+b,EAAIhjB,IAWf,GAAIqf,EAAAA,OAAAA,gBACF,OACE,SAAC,EAAAxP,IAAD,CAEEvR,MAAO0kB,EAAIkN,KACXpgB,OAAQkT,EAAIlT,OACZC,YAAa,IAAMA,EAAYiT,GAC/B5f,KAAM4f,EAAI5f,KACVg+B,QAASkJ,GAAW1mC,EAAOof,IALtBA,EAAIhjB,IAUf,OAAO,KA9EUuqC,CAAevnB,EAAKpf,EAAOqD,EAAW8I,IAG7C,SAAC,EAAAF,IAAD,CAEEvR,MAAO0kB,EAAIkN,KACXpgB,OAAQkT,EAAIlT,OACZC,YAAa,IAAMA,EAAYiT,GAC/B5f,KAAM4f,EAAI5f,KACVg+B,QAASkJ,GAAW1mC,EAAOof,IALtBA,EAAIhjB,SAUjB,UAAC,EAAAwqC,WAAD,CAAY1uC,UAAWN,EAAOivC,WAA9B,UACGv7B,EAAUlP,KAAO06B,GAAAA,GAAAA,QAA0B,SAAC6N,GAAD,CAAoB3kC,MAAOA,EAAOslC,QAAStlC,EAAMpJ,UAC5F0U,EAAUlP,KAAO06B,GAAAA,GAAAA,QAA0B,SAACgQ,GAAD,CAAe9mC,MAAOA,EAAOqD,UAAWA,IACnFiI,EAAUlP,KAAO06B,GAAAA,GAAAA,YAA8B,SAAC2N,GAAD,CAAuBzkC,MAAOA,aAQtF,SAAS0mC,GAAW1mC,EAAmBof,GAAqB,MAC1D,OAAQA,EAAIhjB,IACV,KAAK06B,GAAAA,GAAAA,MACH,OAAO92B,EAAMpJ,QAAQG,OACvB,KAAK+/B,GAAAA,GAAAA,MACH,OAAO92B,EAAMi6B,MAAQ,EAAI,EAC3B,KAAKnD,GAAAA,GAAAA,UAEH,OADqB,UAAG92B,EAAM+mC,4BAAT,QAAiC,IAC/BhwC,OAG3B,OAAO,KAbTkvC,GAAgB78B,YAAc,kBA0D9B,MAAMtR,GAAagB,IACV,CACLuB,QAAStB,EAAAA,GAAI;;;;MAKbytC,OAAQztC,EAAAA,GAAI;sBACMD,EAAMwE,QAAQ;MAEhCupC,WAAY9tC,EAAAA,GAAI;;;;;;oBAMAD,EAAME,OAAOuE,WAAWkY;0BAClB3c,EAAM4R,WAAW1K,MAAMwsB;;;iCAGhB1zB,EAAM2E,MAAMC,aAAa;QCzInD,MAAMspC,IAAqBC,E,gIAAAA,IAAW,CAAC7nB,EAAcnb,KAAyB,MACnF,MAAM4G,EAAyB,GAE/B,IAAK5G,EACH,OAAO4G,EAGT,IAAIG,EAAa8rB,GAAAA,GAAAA,UAEjB,GAAI7yB,EAAO3M,KAAKm6B,cACd,MAAO,GAGJxtB,EAAO3M,KAAKm6B,gBACfzmB,EAAa8rB,GAAAA,GAAAA,MAEbjsB,EAAK1O,KAAK,CACRC,GAAI06B,GAAAA,GAAAA,MACJxK,KAAM,QACN9sB,KAAM,WACN0M,QAAQ,IAGVrB,EAAK1O,KAAK,CACRC,GAAI06B,GAAAA,GAAAA,UACJxK,KAAM,YACN9sB,KAAM,UACN0M,QAAQ,KAIZ,MAAM,gBAAEg7B,EAAF,uBAAmBC,IAA2BC,EAAAA,GAAAA,MAC9CC,EAAyB//B,EAAAA,GAAAA,eAAyB81B,EAAAA,GAAAA,IAAoBp/B,GAAAA,IAA2BspC,MACjGC,EAAsBL,GAAoBC,GAA0BE,EAEpEG,EAA6B,UAAnBvjC,EAAO3M,KAAK8E,GACtBqrC,EAAkC,eAAnBxjC,EAAO3M,KAAK8E,IAE5BmrC,GAAuBC,GAAYC,IACtC58B,EAAK1O,KAAK,CACRC,GAAI06B,GAAAA,GAAAA,MACJxK,KAAM,QACN9sB,KAAM,OACN0M,QAAQ,IAOZ,OAHe,UAAGrB,EAAK7B,MAAMjR,GAASA,EAAKqE,MAAQgjB,GAAOpU,YAA3C,QAA2DH,EAAK,IACrEqB,QAAS,EAEZrB,K,gICAT,MAeMkT,GAAqB,CACzB2pB,gBrD1DK,SAAyB/jC,EAAyBN,GACvD,OAAO3M,MAAAA,IACL,MAAMsJ,EAAQqD,EAAUskC,cAAchkC,SAEhCjB,GAASklC,EAAAA,EAAAA,IAAe5nC,IAE9B0C,GACEmlC,EAAAA,EAAAA,IAAsB,CACpB7nC,MAAAA,EACA2D,YAAAA,OqDkDNlB,oBAFyB,EAGzBqlC,yBrDwEK,SAAkCtsB,GACvC,MAAO,CAAC9Y,EAAUC,KAChB,MAAMolC,EAAY,OAAH,UAAQplC,IAAWE,YAAYmqB,GAAOxR,GACrD9Y,GAASgrB,EAAAA,EAAAA,IAAsBqa,IAC/B,IACEzoB,EAAAA,EAAAA,UAAgB0oB,EAAAA,GAAmCD,GACnD,MAAOnpC,GACPqpC,QAAQrpC,MAAMA,MqD9ElBspC,yBAJyB,MAKzBC,gBALyB,KAMzBC,UAASA,EAAAA,IAGLC,IAAYh7B,EAAAA,EAAAA,UAxBM,CAACxP,EAAmByqC,KAC1C,MAAMtoC,EAAQnC,EAAMgF,YAAYD,WAC1B0K,GAAaC,EAAAA,GAAAA,GAAsB1P,EAAOmC,GAEhD,MAAO,CACLA,MAAAA,EACAiE,OAAQqJ,MAAAA,OAAF,EAAEA,EAAYrJ,OACpB+mB,cAAe1d,MAAAA,OAAF,EAAEA,EAAY0d,cAC3Bud,SAAU1qC,EAAMgF,YAAY0lC,SAC5B/sB,QAAS3d,EAAMgF,YAAYmqB,GAC3Bwb,iBAAkB3qC,EAAMgF,YAAY2lC,iBACpC/qB,WAAW4J,EAAAA,GAAAA,IAAkBihB,EAASjlC,UAAUvC,IAAKjD,MAadkgB,IAQpC,MAAM0qB,WAA+BruB,EAAAA,cAAqB,8EAGhD,CACbsuB,2BAA2B,IAJkC,8BAyB1C,KACnBz2B,KAAKwI,iBA1BwD,kBA6BtD,KACP/a,EAAAA,gBAAAA,QAAwB,CACtBipC,UAAW,KACXvpB,IAAK,KACLwpB,aAAc,UAjC6C,qBAqCnD,KACV32B,KAAKta,MAAM8K,sBACXwP,KAAK42B,YAvCwD,mCA0CrC,KACxBnpC,EAAAA,gBAAAA,QAAwB,CACtBopC,SAAU,gBA5CiD,2BAgD7C,KAChB9iC,GAAAA,GAAAA,QACE,IAAI+iC,EAAAA,GAAoB,CACtBhkB,UAAWikB,GAAAA,EACXrxC,MAAO,CAAE0L,UAAW4O,KAAKta,MAAM0L,iBApD0B,8BAyD1C3M,UACnB,KAAK2vB,EAAAA,GAAAA,GAAyBpU,KAAKta,MAAMqI,OAEvC,OAGF,MAAM4B,QAA4BqnC,EAAAA,EAAAA,IAAmCh3B,KAAKta,MAAMqI,MAAMa,aAAaC,KACnG,GACiC,IAA/Bc,EAAoB7K,QACY,IAA/B6K,EAAoB7K,QAAgB6K,EAAoB1F,SAAS+V,KAAKta,MAAM0L,UAAUjH,IAEvF,UACQ8sC,EAAAA,GAAAA,IAA2Bj3B,KAAKta,MAAMqI,MAAOiS,KAAKta,MAAM0L,UAAU/L,KAAK2I,UAC7EgS,KAAKta,MAAMywC,WAAUe,EAAAA,GAAAA,IAAsC,wBAC3D,MAAO1M,GACPxqB,KAAKta,MAAMywC,WAAUgB,EAAAA,GAAAA,IAAqC,gCAA+B3M,EAAI4M,qBAKjGp3B,KAAK9M,SAAS,CAAEujC,2BAA2B,OA7EkB,uBAgFhDtpB,IACb1f,EAAAA,gBAAAA,QAAwB,CACtB0f,IAAKA,EAAIhjB,QAlFkD,+BAsFxCqf,IAGrBxJ,KAAKta,MAAMqI,MAAMspC,kBAAjB,iBACK7tB,OA1FwD,iCA8FtC9S,IAGvBsJ,KAAKta,MAAMqI,MAAMupC,cAAc5gC,MAjG8B,gCAoGxC,CAAC6gC,EAA6BtvC,KACnD+X,KAAKta,MAAMqI,MAAMypC,YAAYD,EAAWtvC,GACxC+X,KAAKta,MAAMqI,MAAM2E,SACjBsN,KAAKwI,iBAvGwD,+BA0GxCivB,IACrB,MAAM,yBAAE5B,GAA6B71B,KAAKta,MACtCsa,KAAKta,MAAM6wC,kBACbv2B,KAAKta,MAAMwwC,kBAEbL,EAAyB,CACvB4B,KAAMA,OAhHqD,6BAoH3C,KAClBz3B,KAAKta,MAAMwwC,qBArHkD,gCAwHxC,KACrB,MAAM,QAAE3sB,EAAF,yBAAWssB,GAA6B71B,KAAKta,MACnDmwC,EAAyB,CAAE/a,uBAAwBvR,EAAQuR,2BA1HE,+BA4UzC,KACpBrtB,EAAAA,gBAAAA,QAAwB,CAAEipC,UAAW,KAAMvpB,IAAK,KAAMwpB,aAAc,UA7UP,gDAgVxB,KACrC32B,KAAK9M,SAAS,CAAEujC,2BAA2B,OA1U7CvtB,oBACElJ,KAAKta,MAAM+vC,gBAAgBz1B,KAAKta,MAAMgM,YAAasO,KAAKta,MAAM0L,WAGhE+a,qBACE,MAAM,MAAEpe,EAAF,SAASuoC,GAAat2B,KAAKta,MAE7B4wC,IAAat2B,KAAKk0B,YACpBl0B,KAAKk0B,UAAY,IAAIC,GAAAA,GACrBn0B,KAAKk0B,UAAUE,IAAIrmC,EAAMu2B,OAAOzsB,UAAU6/B,EAAAA,GAA0B13B,KAAK23B,sBAI7EvuB,uBAAuB,MAErB,UAAApJ,KAAKk0B,iBAAL,SAAgBhgC,cAuGlB0jC,YAAYjyC,EAAsBkyC,GAChC,MAAM,UAAEzmC,EAAF,MAAarD,EAAb,QAAoBwb,EAApB,iBAA6BgtB,GAAqBv2B,KAAKta,MAE7D,OACE,iBAAKO,UAAWN,EAAOmyC,gBAAvB,UACG93B,KAAK+3B,mBAAmBpyC,IACzB,gBAAKM,UAAWN,EAAOqyC,aAAvB,UACE,SAAC,KAAD,UACG,IAAuB,IAAtB,MAAEr+B,EAAF,OAASmH,GAAa,EACtB,GAAInH,EAAQ,GAAKmH,EAAS,EACxB,OAAO,KAQT,GAJI+2B,IACF/2B,GAA2C,EAAjC0I,GAAAA,GAAAA,OAAAA,QAAAA,UAGR+sB,EACF,OAAO,SAAC5S,GAAD,CAAsBhqB,MAAOA,EAAOmH,OAAQA,EAAQ/S,MAAOA,EAAOqD,UAAWA,IAGtF,MAAM6mC,GAAYC,EAAAA,GAAAA,IAAmB3uB,EAAQkuB,KAAM99B,EAAOmH,EAAQ/S,GAElE,OACE,gBAAK9H,UAAWN,EAAOwyC,mBAAoB33B,MAAO,CAAE7G,MAAAA,EAAOmH,OAAAA,GAA3D,UACE,gBAAKN,MAAOy3B,EAAW,eAAclqC,EAAM5D,GAA3C,UACE,SAACiuC,GAAA,EAAD,CAEEC,SAAUtqC,EAAMjE,IAChBsH,UAAWA,EACXrD,MAAOA,EACPuqC,WAAW,EACXC,WAAW,EACXC,MAAM,EACN7+B,MAAOs+B,EAAUt+B,MACjBmH,OAAQm3B,EAAUn3B,QARb/S,EAAMjE,gBAxBiB,SA4ChD2uC,qBAAqB9yC,GACnB,MAAM,MAAEoI,EAAF,UAASqD,EAAT,OAAoBY,EAApB,IAA4Bmb,GAAQnN,KAAKta,MACzCkT,EAAOm8B,GAAmB5nB,EAAKnb,GAC/B6lC,EAA8B,IAAhBj/B,EAAK9T,OACnB4zC,EAAY14B,KAAK43B,YAAYjyC,EAAQkyC,GAE3C,OAAoB,IAAhBj/B,EAAK9T,OACA4zC,EAGF,CACLA,GACA,gBACEzyC,UAAWN,EAAOgzC,YAClB,aAAYttB,EAAAA,GAAAA,WAAAA,YAAAA,SAAAA,QAFd,UAKE,SAAC2oB,GAAD,CAEEjmC,MAAOA,EACPqD,UAAWA,EACXwH,KAAMA,EACNsB,YAAa8F,KAAK9F,aAJbnM,EAAMjE,MAHT,sBAaV8uC,wBAAwBjzC,GACtB,MAAM,UAAE6lB,GAAcxL,KAAKta,MAE3B,OAAK8lB,EAAU1mB,QAKb,gBAAKmB,UAAWN,EAAOkzC,iBAAvB,UACE,SAACttB,GAAD,CAAcC,UAAWA,MALpB,KAUXusB,mBAAmBpyC,GACjB,MAAM,UAAEyL,EAAF,QAAamY,EAAb,UAAsBiC,EAAtB,yBAAiCyqB,EAAjC,MAA2DloC,EAA3D,iBAAkEwoC,GAAqBv2B,KAAKta,MAElG,OACE,gBAAKO,UAAWN,EAAOmzC,aAAvB,UACE,UAAC,EAAA9rC,gBAAD,CAAiBE,QAASse,EAAU1mB,OAAS,EAAI,gBAAkB,WAAYmI,MAAM,aAArF,UACG+S,KAAK44B,wBAAwBjzC,IAC9B,UAAC,EAAAqH,gBAAD,YACE,SAAC,EAAA+rC,aAAD,CACEtwC,MAAM,aACNuwC,WAAW,EACX7uC,GAAG,aACHlC,MAAOsuC,EACP/oC,QAASwS,KAAKi5B,kBACd,aAAY5tB,EAAAA,GAAAA,WAAAA,YAAAA,mBAEd,SAAC,EAAAmL,iBAAD,CAAkBvuB,MAAOshB,EAAQkuB,KAAM/gC,QAASwiC,GAAAA,GAAclpC,SAAUgQ,KAAKm5B,uBAC7E,SAACC,GAAA,EAAD,CAAqBhoC,UAAWA,EAAWioC,iBAAkBpD,KAC3D1sB,EAAQuR,wBAAyB,SAACD,GAAD,CAAqB9sB,MAAOA,YAOzEurC,sBACE,IAAIC,EAAgB,EAClB,SAAC,EAAAre,cAAD,CACE3tB,KAAK,MACLC,QAASwS,KAAKw5B,wBACdhtC,MAAM,2BACF,aAEN,SAAC,EAAA0uB,cAAD,CAAe1tB,QAASwS,KAAK5R,UAAW5B,MAAM,mBAA9C,oBAAqE,WAGrEwT,KAAKta,MAAMqI,MAAMa,cACf,SAAC,EAAAssB,cAAD,CACE1tB,QAASwS,KAAKy5B,mBACdnsC,QAAQ,UACRd,MAAM,uCAHR,+BAIM,eAKN,SAAC,EAAA0uB,cAAD,CAAe1tB,QAASwS,KAAK05B,gBAAiBltC,MAAM,mCAApD,iBAA2F,SAI7F,SAAC,EAAA0uB,cAAD,CACE1tB,QAASwS,KAAK42B,OACdtpC,QAAQ,UACRd,MAAM,yCAEN,aAAY6e,EAAAA,GAAAA,WAAAA,YAAAA,YALd,kBAIM,UAwCR,OAjCIrL,KAAKta,MAAMqI,MAAMa,eACnB2qC,EAAc1nB,OACZ,EACA,GACA,SAAC,EAAA8nB,iBAAD,UACG,IAA8B,IAA7B,UAAErmC,EAAF,UAAaC,GAAgB,EAC7B,OACE,SAAC,EAAA2nB,cAAD,CACE1tB,QAAS,KACP8F,EAAUsmC,GAAAA,EAAa,CACrBzrC,UAAW,YACF6R,KAAKta,MAAMqI,MAAMa,aACxBoR,KAAKta,MAAMqI,MAAM2E,SACjBsN,KAAKwI,eAEPta,UAAWqF,EACX9D,QAAQ,KAGZjD,MAAM,mFAZR,mBAaM,YAhBU,sBA0BxB+sC,EAAcM,OAGTN,EAGTO,oBACE,MAAM,OAAE9nC,EAAF,UAAUZ,EAAV,MAAqBrD,EAArB,cAA4BgrB,GAAkB/Y,KAAKta,MAEzD,OAAKsM,GAKH,SAACsxB,GAAD,CACEtxB,OAAQA,EACRZ,UAAWA,EACXrD,MAAOA,EACPgrB,cAAeA,EACfpH,qBAAsB3R,KAAK+5B,oBAC3BxW,sBAAuBvjB,KAAKujB,sBAC5BxO,oBAAqB/U,KAAKg6B,uBAX5B,SAAO,oBAwBXtnC,SACE,MAAM,UAAEtB,EAAF,SAAaklC,EAAb,yBAAuBT,EAAvB,QAAiDtsB,GAAYvJ,KAAKta,MAClEC,EAASE,GAAU2jB,GAAAA,GAAAA,MAAcxJ,KAAKta,OAE5C,OAAK4wC,GAKH,iBAAKrwC,UAAWN,EAAOyC,QAAS,aAAYijB,EAAAA,GAAAA,WAAAA,YAAAA,QAAAA,QAA5C,WACE,SAAC,EAAA4uB,YAAD,CAAaztC,MAAQ,GAAE4E,EAAU5E,qBAAsB0tC,SAAUl6B,KAAKm6B,oBAAtE,SACGn6B,KAAKs5B,yBAER,gBAAKrzC,UAAWN,EAAOy0C,0BAAvB,UACE,SAAClyB,GAAD,CACEoB,mBAAoBtJ,KAAKy4B,qBAAqB9yC,GAC9CkkB,oBAAqB7J,KAAK85B,oBAC1BvwB,QAASA,EACTX,cAAeitB,EACfjsB,iBAAkBL,EAAQuR,0BAG7B9a,KAAKpU,MAAM6qC,4BACV,SAAC3oC,EAAD,CACEC,MAAOiS,KAAKta,MAAMqI,MAClBC,SAAUgS,KAAKta,MAAM0L,UAAU/L,KAAK2I,SACpCG,UAAW6R,KAAKq6B,qCAChBjsC,UAAW4R,KAAK5R,UAChBF,UAAW8R,KAAKq6B,0CAvBf,MA+BN,MAAMC,GAAclE,GAAUI,IAKxB3wC,IAAYmkB,EAAAA,EAAAA,gBAAc,CAACnjB,EAAqBnB,KAC3D,MAAM,QAAE6jB,GAAY7jB,EACd0kB,EAAcvjB,EAAMwE,QAAQgf,GAElC,MAAO,CACLjiB,QAAStB,EAAAA,GAAI;;;;iBAIAD,EAAM0zC,OAAOC;;;;;oBAKV3zC,EAAME,OAAO0zC;;;MAI7BL,0BAA2BtzC,EAAAA,GAAI;;;;;;MAO/BgxC,gBAAiBhxC,EAAAA,GAAI;;;;;uBAKFyiB,EAAQuR,sBAAwB,EAAI1Q;MAEvDyuB,iBAAkB/xC,EAAAA,GAAI;;;;;MAMtBkxC,aAAclxC,EAAAA,GAAI;;;;sBAIAsjB;MAElBuuB,YAAa7xC,EAAAA,GAAI;;;MAIjBgyC,aAAchyC,EAAAA,GAAI;;qBAEDsjB,KAAeA;;;MAIhCswB,YAAa5zC,EAAAA,GAAI;sBACCD,EAAMwE,QAAQslB;MAEhCwnB,mBAAoBrxC,EAAAA,GAAI;;;;;;mLClgBrB,MAAM6zC,GAAmB,IAAkF,IAAjF,WAAEC,EAAF,OAActW,EAAd,iBAAsBuW,GAA2D,EAChH,MAAO1qC,EAAS2qC,IAAcvsC,EAAAA,EAAAA,WAAS,GACjC5I,GAASC,EAAAA,EAAAA,YAAWC,IAyB1B,OAtBA6N,EAAAA,EAAAA,YAAU,KACR,MAAMqnC,EAAUzW,EAAO0W,UAAUC,EAAAA,GAAwBpjC,UAAU,CACjEC,KAAO1D,IACDA,EAAMoyB,UAAYoU,GACpBE,GAAW,MAIXI,EAAU5W,EAAO0W,UAAUG,EAAAA,IAAyBtjC,UAAU,CAClEC,KAAO1D,IACDA,EAAMoyB,UAAYoU,GACpBE,GAAW,MAKjB,MAAO,KACLC,EAAQ7mC,cACRgnC,EAAQhnC,mBAKV,gBAA2BjO,UAAWN,EAAOi1C,WAA7C,UACE,UAAC,EAAAQ,eAAD,YACE,SAAC,EAAAC,YAAD,CAAa5yC,MAAOmyC,EAAWpzC,KAAMi6B,SAAUtxB,EAA/C,UACE,SAAC,EAAA4oC,aAAD,CAAc9wC,MAAO2yC,EAAWU,OAAQtrC,SAAU,IAAM6qC,EAAiBD,GAAanZ,SAAUtxB,OAElG,gBAAKlK,UAAWN,EAAO41C,UAAvB,UACE,SAACC,GAAA,EAAD,CAAkBrrC,QAASA,EAASsrC,SA/B3B,KAAMC,EAAAA,GAAAA,MAA0BC,OAAOf,WAyB5CA,EAAWpzC,OAazB,SAAS3B,GAAUgB,GACjB,MAAO,CACL+zC,WAAY9zC,EAAAA,GAAI;;sBAEED,EAAMwE,QAAQ;;;;wBAIZxE,EAAMwE,QAAQ;;;;;;MAOlCkwC,UAAWz0C,EAAAA,GAAI;;mBAEAD,EAAMwE,QAAQ;OC9D1B,MAAMuwC,GAAwC,IAAkD,IAAjD,YAAE/zC,EAAF,oBAAeg0C,EAAf,OAAoCvX,GAAa,EACrG,MAAOwX,EAAoBC,IAAyBxtC,EAAAA,EAAAA,UAA4B,IAKhF,OAJAmF,EAAAA,EAAAA,YAAU,KACRqoC,EAAsBl0C,EAAYG,QAAQ4yC,IAAmC,IAApBA,EAAW/vB,UACnE,CAAChjB,IAE8B,IAA9Bi0C,EAAmBh3C,OACd,MAIP,8BACGg3C,EAAmBlyC,KAAKgxC,IACvB,SAACD,GAAD,CACErW,OAAQA,EACRsW,WAAYA,EACZC,iBAAkBgB,GACbjB,EAAWpzC,W,wYCVnB,MAAMw0C,GAA4Ct2C,IACvD,MAAM,KAAEu2C,EAAF,SAAQC,GAAax2C,EACrBy2C,GAAU5kC,EAAAA,EAAAA,QAAyB,OAClC6kC,EAAkBC,IAAuB9tC,EAAAA,EAAAA,UAAS,cAClD+tC,EAAQC,IAAahuC,EAAAA,EAAAA,UAAS,GAC/BiuC,EAAgBC,GAAiB/2C,EAAO42C,GAExCI,GAAc92C,EAAAA,EAAAA,aACjBiB,GACCC,EAAAA,GAAI;iBACOD,EAAME,OAAOszB,KAAK7W;UAQjC,OAJAm5B,EAAAA,EAAAA,kBAAgB,KACdN,EAuIJ,SAAqC7vB,GACnC,IAAKA,EACH,MAAO,YAGT,MAAMowB,EAAapwB,EAAQqwB,cAAe/3B,wBACpCg4B,EAAMtwB,EAAQ1H,wBAEpB,GAAkB,IAAdg4B,EAAInjC,MACN,MAAO,YAGT,OAAIijC,EAAWt1B,KAAOw1B,EAAInjC,MAAQ,GAAKlF,OAAOwU,WACrC,YAEA,aAtJa8zB,CAA4BZ,EAAQ/mC,YACvD,CAAConC,IAEAP,EAAKe,YAEL,SAACC,GAAD,CAAahB,KAAMA,EAA+B,cAAa5wB,EAAAA,GAAAA,WAAAA,eAAAA,SAA/D,UACE,iCACE,UAAC,EAAA6P,cAAD,CACE1tB,QAAS,IAAM+uC,EAAUvkC,KAAKd,OAC9BjR,WAAWC,EAAAA,EAAAA,IAAG,wCAAyCw2C,GACvD,iBAAe,SACf,cAAY,WACZ,kBAAiBJ,EACjB,gBAAc,gBACd,gBAAc,OAPhB,WASE,SAAC,EAAA/0C,KAAD,CAAM,iBAAYC,KAAK,OAAOgZ,MAAO,CAAE08B,YAAa,UACpD,0BAAOhB,EAAS1vC,YAElB,eAAIrC,GAAG,gBAAgBlE,UAAY,iBAAgBm2C,IAAoBl6B,KAAK,OAAOjB,IAAKk7B,EAAxF,SACGK,EAAc13C,OAAS,GACtB03C,EAAc5yC,KAAI,CAACuzC,EAAcp3C,KAE7B,eAAImc,KAAK,OAAT,UACE,cACEA,KAAK,WACLsnB,KAAM2T,EAAaC,IACnBn4C,OAAQg3C,EAAKoB,YAAc,cAAWh3C,EACtC0rC,IAAI,aACJ,cAAa1mB,EAAAA,GAAAA,WAAAA,eAAAA,KACb,aAAa,GAAE8xB,EAAa3wC,kBAN9B,SAQG2wC,EAAa3wC,SATI,2BAA0B2wC,EAAahzC,MAAMpE,aAlBlD,uBAuC/B,8BACGy2C,EAAc13C,OAAS,GACtB03C,EAAc5yC,KAAI,CAACuzC,EAAcp3C,KAE7B,SAACk3C,GAAD,CACEhB,KAAMA,EAEN,cAAa5wB,EAAAA,GAAAA,WAAAA,eAAAA,UAHf,UAKE,eACEplB,UAAU,wCACVujC,KAAM2T,EAAaC,IACnBn4C,OAAQg3C,EAAKoB,YAAc,cAAWh3C,EACtC0rC,IAAI,aACJ,cAAa1mB,EAAAA,GAAAA,WAAAA,eAAAA,KACb,aAAa,GAAE8xB,EAAa3wC,kBAN9B,WAQE,SAAC,EAAAjF,KAAD,CAAM,iBAAYC,KAAK,OAAOgZ,MAAO,CAAE08B,YAAa,UACpD,0BAAOC,EAAa3wC,YAZhB,uBAAsB2wC,EAAahzC,MAAMpE,UA2BvDk3C,GAA2Cv3C,IAC/C,MAAM,KAAEu2C,EAAF,SAAQ57B,GAAsB3a,EAAT43C,E,oIAA3B,CAAoC53C,EAApC,IAEA,OACE,iCAAS43C,EAAT,CAAer3C,UAAU,UAAzB,UACGg2C,EAAK7gB,UAAW,SAAC,EAAAlQ,QAAD,CAASC,QAAS8wB,EAAK7gB,QAAvB,SAAiC/a,KAChD47B,EAAK7gB,UAAW,8BAAG/a,SAKrBo8B,GAAmB,CAAC,EAA8BH,KAAsC,IAApE,KAAEL,EAAF,YAAQ3W,GAA4D,EAC5F,MAAM,KAAEiY,GAAStB,EACXjwC,GAASyC,EAAAA,EAAAA,IAAS,IAanBhK,eACL84C,GAE+B,IAD/BC,EAC+B,uDADyB,CAAEpY,cAAaA,GAAAA,GAEvE,MAAMqY,EAAQ,IAGd,aAF+CD,EAAapY,gBAAgBrwB,OAAO,CAAE2oC,IAAKH,EAAME,MAAAA,IAlBlEE,CAAcJ,IAAO,CAACA,EAAMjB,IAC1D,OAAKtwC,EAAO/D,MAsBP,SACLq9B,EACA2W,EACAvtC,GAMmB,IALnB8uC,EAKmB,uDAL2F,CAC5GI,WAD4G,MAE5GC,SAF4G,MAG5GC,YAAWA,GAAAA,IAGb,OAAOpvC,EACJ1G,QAAQ+1C,GAAcA,EAAU5zC,KAAOm7B,IACvC17B,KAAKm0C,IACJ,MAAM5zC,EAAK4zC,EAAU5zC,GACfqC,EAAQgxC,EAAaK,SAASE,EAAUvxC,OACxC2wC,EAAeK,EAAaI,aAAaI,WAA1B,iBAA0C/B,EAA1C,CAAgDmB,IAAKW,EAAUX,OAGpF,MAAO,CAAEjzC,GAAAA,EAAIqC,MAAAA,EAAO4wC,IAFRI,EAAaM,YAAYX,OAnClCc,CAAa3Y,EAAa2W,EAAMjwC,EAAO/D,OAFrC,IC1GJ,MAAMi2C,GAA4B,IAA0B,IAAzB,UAAE9sC,EAAF,MAAaglB,GAAY,EACjE,MAAM5N,GAAcyrB,EAAAA,EAAAA,kBAOpB,OALAkK,EAAAA,GAAAA,IAAc,KACZ,MAAM9Z,EAAMjzB,EAAUkzB,OAAOzsB,UAAUumC,EAAAA,sBAAuB51B,GAC9D,MAAO,IAAM6b,EAAInwB,iBAGdkiB,EAAMtxB,QAKT,8BACGsxB,EAAMxsB,KAAI,CAACqyC,EAAqBl2C,KAC/B,MAAMm2C,GAAW0B,EAAAA,GAAAA,MAAaS,cAAcpC,GACtCnyC,EAAO,GAAEmyC,EAAKzvC,UAAUzG,IAE9B,GAAkB,eAAdk2C,EAAK/3C,KACP,OAAO,SAAC83C,GAAD,CAAmCC,KAAMA,EAAMC,SAAUA,EAAU5W,YAAal0B,EAAUjH,IAA5DL,GAGvC,MAAMw0C,GACJ,eACEr4C,UAAU,wCACVujC,MAAMsU,EAAAA,GAAAA,IAAY5B,EAAS1S,MAC3BvkC,OAAQg3C,EAAKoB,YAAc,cAAWh3C,EACtC0rC,IAAI,aACJ,cAAa1mB,EAAAA,GAAAA,WAAAA,eAAAA,KALf,WAOE,SAAC,EAAA9jB,KAAD,CAAM,iBAAYC,KAAM+2C,GAAAA,GAAYtC,EAAK1uC,MAAmBiT,MAAO,CAAE08B,YAAa,UAClF,0BAAOhB,EAAS1vC,WAIpB,OACE,gBAAevG,UAAU,UAAU,cAAaolB,EAAAA,GAAAA,WAAAA,eAAAA,UAAhD,SACG4wB,EAAK7gB,SAAU,SAAC,EAAAlQ,QAAD,CAASC,QAAS+wB,EAAS9gB,QAA3B,SAAqCkjB,IAAyBA,GADtEx0C,QA3BT,M,UCCX,MAAM00C,WAA2Br2B,EAAAA,cAAqB,c,UAAA,oB,EACxBs2B,IAE1B,IAAK,IAAI14C,EAAQ,EAAGA,EAAQia,KAAKta,MAAM0L,UAAUvJ,YAAY+rB,KAAK9uB,OAAQiB,IAAS,CACjF,MAAM60C,EAAa56B,KAAKta,MAAM0L,UAAUvJ,YAAY+rB,KAAK7tB,GACzD,GAAI60C,EAAWpzC,OAASi3C,EAAkBj3C,KAAM,CAC9CozC,EAAWU,QAAUV,EAAWU,OAChC,OAGJt7B,KAAKta,MAAM0L,UAAUstC,eACrB1+B,KAAKwI,gB,EAX6C,8B,EAAA,M,sFAcpD9V,SACE,MAAM,UAAEtB,EAAF,UAAaoa,EAAb,MAAwB4K,EAAxB,YAA+BvuB,GAAgBmY,KAAKta,MAE1D,OAAK0L,EAAUutC,oBAKb,iBAAK14C,UAAU,mBAAf,WACE,iBAAM,aAAW,qBAAqBA,UAAWN,GAAjD,UACE,SAAC4lB,GAAD,CAAcC,UAAWA,OAE3B,SAACowB,GAAD,CACE/zC,YAAaA,EACbg0C,oBAAqB77B,KAAK4+B,yBAC1Bta,OAAQlzB,EAAUkzB,SAPtB,SASE,gBAAKr+B,UAAU,2BACdmL,IAAa,SAAC8sC,GAAD,CAAgB9sC,UAAWA,EAAWglB,MAAOA,IAV7D,SAWE,gBAAKnwB,UAAU,iBAfV,MAqBb,MAQMN,GAASmB,EAAAA,GAAI;;;;EAMN+3C,IAAUzjC,EAAAA,EAAAA,UAdwD,CAACxP,EAAOyqC,KACrF,MAAM,IAAExnC,GAAQwnC,EAASjlC,UACnB0tC,GAAkBC,EAAAA,GAAAA,IAAkBlwC,EAAKjD,GAC/C,MAAO,CACL4f,WAAWwzB,EAAAA,GAAAA,IAAoBnwC,EAAKiwC,EAAgBtzB,cAUjCpQ,CAAyBojC,IAEhDK,GAAQ1nC,YAAc,U,6hBChDtB,MAiKM2U,GAAkE,CAAEmzB,SAAQA,GAAAA,IAErEC,IAAiB9jC,EAAAA,EAAAA,cAAQ/U,EAAWylB,GAAnB1Q,EA5I4B,IAA0B,IAAzB,MAAErN,EAAF,UAASqD,GAAgB,EAClF,MAAO+tC,EAAcC,IAAmB7wC,EAAAA,EAAAA,WAAS,GA2E3C5I,GAASC,EAAAA,EAAAA,YAAWC,IACpBw5C,GAAqB31C,EAAAA,EAAAA,UAAQ,IApGP,MAC5B,MAAMkI,GAAS0tC,EAAAA,EAAAA,OAAM91B,GAAAA,GAAAA,QAClBxhB,OAAO,CAAEy3B,cAAc,IACvB71B,KAAK9D,GAASA,IACdmC,QACGs3C,EAAe,GAEfC,EAAkBnyB,EAAAA,EAAAA,IAAUoyB,GAAAA,IAClC,GAAID,EAAiB,CACnB,MAAME,EAAc31C,KAAK41C,MAAMH,GACzBI,GAAkB7oC,EAAAA,EAAAA,MAAKnF,EAAQ,CAAEzH,GAAIu1C,EAAYx7C,OACvD,GAAI07C,EAAY,CACd,MAAMC,GAAanuB,EAAAA,EAAAA,WAAUkuB,GAC7BC,EAAWr4C,KAAOk4C,EAAYlzC,MAC9BqzC,EAAWxpC,MAAQ,EACnBwpC,EAAWxW,SAAWqW,EACtBH,EAAar1C,KAAK21C,IAItB,OAAOC,EAAAA,EAAAA,QAAOP,EAAc,SAgFaQ,IAAyB,IAElE,OACE,gBAAK95C,UAAWN,EAAOyC,QAAvB,UACE,iBAAKnC,WAAWC,EAAAA,EAAAA,IAAG,kBAAmBP,EAAOq6C,cAA7C,WACE,SAACC,GAAD,CAAsBxE,SA/EFyE,IACxBA,EAAI3rC,iBACJnD,EAAU+uC,YAAYpyC,IA6EgC6oC,OAAQuI,EA1EjD,KACbC,GAAgB,SAyEsE/4C,EAAWV,OAAQA,EAArG,SACGw5C,EAAe,+BAAiC,cAElDA,GACC,SAACiB,GAAA,EAAD,CAAqB5yC,QAlCF6yC,IACzB,MAAM,QAAEC,GAAYvyC,EAEdwyC,EAAuB,OAAH,UACrBF,EAAU1qC,MADW,CAExB2qC,QAAAA,EACA1xC,cAAc4xC,EAAAA,GAAAA,IAAyBH,KAGzCjvC,EAAU6tC,SAASsB,GACnBnvC,EAAU+uC,YAAYpyC,IAwBiCT,QAASmzC,GAAAA,EAAAA,MAAkCC,iBAAe,KAE3G,iBAAKz6C,UAAWN,EAAOg7C,eAAvB,WACE,SAACC,GAAA,EAAD,CACErzC,KAAK,aACL,aAAY8d,EAAAA,GAAAA,MAAAA,aAAAA,YACZ7d,QAAS,MACPqzC,EAAAA,EAAAA,mBAAkB,oBAjFP,MACvB,MAAM,QAAEP,GAAYvyC,EAEdwyC,EAAgC,CACpCr8C,KAAM,aACNsI,MAAO,cACP8zC,QAAS,CAAEnpB,EAAGmpB,EAAQnpB,EAAG2pB,EAAGR,EAAQQ,EAAGC,EAAGT,EAAQS,EAAGC,EAAGV,EAAQU,IAGlE5vC,EAAU6tC,SAASsB,GACnBnvC,EAAU+uC,YAAYpyC,GAEtBN,EAAAA,gBAAAA,QAAwB,CAAEipC,UAAW6J,EAASp2C,MAsElC82C,IALJ,8BAUA,SAACL,GAAA,EAAD,CACErzC,KAAK,YACL,aAAY8d,EAAAA,GAAAA,MAAAA,aAAAA,UACZ7d,QAAS,MACPqzC,EAAAA,EAAAA,mBAAkB,kBA/B9BzvC,EAAU6tC,SANU,CAClB/6C,KAAM,MACNsI,MAAO,YACP8zC,QAAS,CAAEnpB,EAAG,EAAG2pB,EAAG,KAItB1vC,EAAU+uC,YAAYpyC,IA0Bd,4BAUA,SAAC6yC,GAAA,EAAD,CACErzC,KAAK,YACL,aAAY8d,EAAAA,GAAAA,MAAAA,aAAAA,mBACZ7d,QAAS,MACPqzC,EAAAA,EAAAA,mBAAkB,sCAClBzB,GAAgB,IALpB,gDAU+B,IAA9BC,EAAmBv6C,SAClB,SAAC87C,GAAA,EAAD,CACErzC,KAAK,gBACL,aAAY8d,EAAAA,GAAAA,MAAAA,aAAAA,mBACZ7d,QAAS,MACPqzC,EAAAA,EAAAA,mBAAkB,8BAjGNK,CAAAA,IAC1B,MAAM,QAAEZ,GAAYvyC,EAEdwyC,EAAgB,CACpBr8C,KAAMg9C,EAAgB/2C,GACtBqC,MAAO,cACP8zC,QAAS,CACPnpB,EAAGmpB,EAAQnpB,EACX2pB,EAAGR,EAAQQ,EACXC,EAAGG,EAAgB7X,SAASiX,QAAQS,EACpCC,EAAGE,EAAgB7X,SAASiX,QAAQU,IAKpCE,EAAgB7X,YAClBA,EAAAA,EAAAA,UAASkX,EAAUW,EAAgB7X,UACnCkX,EAAS/zC,MAAQ00C,EAAgB7X,SAAS78B,MAC1C6gB,EAAAA,EAAAA,OAAaoyB,GAAAA,KAGfruC,EAAU6tC,SAASsB,GACnBnvC,EAAU+uC,YAAYpyC,IA4ERozC,CAAmB9B,EAAmB,KAL1C,mDA6BRY,GAA4D,IAA4C,IAA3C,SAAE5/B,EAAF,OAAYu2B,EAAZ,SAAoB6E,EAApB,OAA8B91C,GAAa,EAC5G,OACE,iBAAKM,WAAWC,EAAAA,EAAAA,IAAGP,EAAOy7C,UAAW,oBAArC,UACGxK,IACC,gBAAK3wC,UAAWN,EAAO07C,WAAvB,UACE,SAAC,EAAA9xB,WAAD,CAAY,aAAW,UAAU/nB,KAAK,aAAagG,QAASopC,EAAQnF,QAAQ,SAAS5mC,KAAK,UAG5F+rC,IACA,gBAAK3wC,UAAWN,EAAO07C,WAAvB,kBACE,SAAC,EAAA95C,KAAD,CAAMC,KAAK,YAAYqD,KAAK,UAG/BwV,IAAY,0BAAOA,IAXtB,SAYE,gBAAKpa,UAAU,kBACf,SAAC,EAAAspB,WAAD,CAAY,aAAW,2BAA2B/nB,KAAK,QAAQgG,QAASiuC,EAAUhK,QAAQ,eAK1F5rC,GAAagB,IACjB,MAAMy6C,EAAU3zC,EAAAA,SAAU;gCACI9G,EAAME,OAAOuE,WAAWi2C,uBAAuB16C,EAAME,OAAOyc,QAAQg+B;iCACnE36C,EAAM4R,WAAWrH,UAAU9F,2BAA2Bm2C,IAAAA,CACnF56C,EAAME,OAAOyc,QAAQg+B,MAEpBE,OAAO,IACPC;kCAC6B96C,EAAM4R,WAAWrH,UAAU9F,4BAA4BzE,EAAME,OAAOyc,QAAQg+B;IAG5G,MAAO,CAELp5C,QAAStB,EAAAA,GAAI;;qBAEID,EAAMwE,QAAQ;MAE/B20C,aAAcl5C,EAAAA,GAAI;;;;;mBAKHw6C;MAEfX,eAAgB75C,EAAAA,GAAI;;;;oBAIJD,EAAMwE,QAAQ;iBACjBxE,EAAMwE,QAAQ;iBACdxE,EAAMwE,QAAQ,EAAG,EAAG,EAAG;;;;;;MAOpC+1C,UAAWt6C,EAAAA,GAAI;;;;;;mBAMAD,EAAM+G,WAAWgxB;qBACf/3B,EAAM+G,WAAWixB;sBAChBh4B,EAAMwE,QAAQ;;;;;sBAKdxE,EAAME,OAAOuE,WAAWC;;MAG1C81C,WAAYv6C,EAAAA,GAAI;;;;sBAIED,EAAMwE,QAAQ;eACrBxE,EAAMwE,QAAQ;MAEzBu2C,SAAU96C,EAAAA,GAAI;;eClRX,MAAM+6C,GAA4B,IAA2C,YAA1C,OAAEtvC,EAAF,MAAU/F,EAAV,SAAiBs1C,EAAjB,SAA2BrG,GAAe,EAClF,MAAOsG,EAAWC,IAAgBzzC,EAAAA,EAAAA,UAAoCgE,GAChE0vC,GAAiBp2C,EAAAA,EAAAA,cAAarE,GAAyBw6C,EAAax6C,IAAO,CAACw6C,IAElF,OACE,SAAC,EAAAE,KAAD,CACEC,cAAe,CAAE31C,MAAAA,GACjB41C,SAAWC,IACTP,EAASO,EAAS71C,MAAOu1C,IAH7B,SAMG,QAAC,SAAEO,GAAH,SACC,iCACE,SAAC,EAAAzyB,MAAD,CAAOpnB,MAAM,QAAb,UACE,SAAC,EAAAmH,MAAD,iBAAW0yC,EAAS,SAApB,CAA8Bp+C,KAAK,YAFvC,OAKE,SAAC,EAAA2rB,MAAD,CAAOpnB,MAAM,aAAb,UACE,SAACysB,GAAD,CAAiB3iB,OAAQwvC,EAAW/xC,SAAUiyC,OANlD,OASE,UAAC,EAAAzyC,MAAA,UAAD,YACE,SAAC,EAAAnC,OAAD,CAAQnJ,KAAK,SAASoJ,QAAQ,YAAYE,QAASiuC,EAAUnrC,KAAK,UAAlE,oBADF,SAIE,SAAC,EAAAjD,OAAD,CAAQnJ,KAAK,SAAb,gCC1BCq+C,GAA4C,IAA4C,IAA3C,OAAEhwC,EAAF,MAAU/F,EAAV,UAAiB0B,EAAjB,SAA4B4zC,GAAe,EACnG,MAAMn8C,EAASE,KACf,OACE,SAAC,EAAA2J,MAAD,CAAOC,QAAQ,EAAMjD,MAAM,cAAce,KAAK,OAAOW,UAAWA,EAAWjI,UAAWN,EAAO68C,MAA7F,UACE,SAACX,GAAD,CAAgBtvC,OAAQA,EAAQ/F,MAAOA,EAAOivC,SAAUvtC,EAAW4zC,SAAUA,OAK7Ej8C,IAAYmkB,EAAAA,EAAAA,gBAAc,KACvB,CACLw4B,MAAO17C,EAAAA,GAAI;;;iBCZR,MAAM27C,GAA8C,IAAiC,IAAhC,OAAElwC,EAAF,MAAU/F,EAAV,SAAiBs1C,GAAe,EAC1F,MAAMY,EAAkBnvC,GAA0B,CAAC/G,EAAe+F,KAChEuvC,EAASt1C,EAAO+F,GAChBgB,KAGF,OACE,SAAC,EAAAomC,iBAAD,UACG,IAA8B,IAA7B,UAAErmC,EAAF,UAAaC,GAAgB,EAC7B,OACE,cACEtN,UAAU,UACVuH,QAAS,KACP8F,EAAUivC,GAAiB,CAAE/1C,MAAAA,EAAO+F,OAAAA,EAAQrE,UAAWqF,EAAWuuC,SAAUY,EAAenvC,MAH/F,kBAME,SAAC,EAAAhM,KAAD,CAAMC,KAAK,e,mIAQvBi7C,GAAiBtrC,YAAc,mBClBxB,MAAMwrC,WAAqB1vC,EAAAA,UAEhCwL,YAAY/Y,GACVumB,MAAMvmB,GAD8B,mDAkBlB,KAClBsa,KAAKwI,iBAnB+B,oBAsB3B,KACTxI,KAAKta,MAAM0L,UAAUwxC,UAAU5iC,KAAKta,MAAMqI,OAE1CiS,KAAK9M,UAAU4U,IACN,CAAE+6B,WAAY/6B,EAAU+6B,iBA1BG,oBA8B3B,CAACr2C,EAAe+F,KACzByN,KAAKta,MAAMqI,MAAX,MAA4BvB,EAC5BwT,KAAKta,MAAMqI,MAAX,OAA6BwE,MAAAA,EAAAA,OAAUlM,EACvC2Z,KAAKta,MAAMqI,MAAM2E,SACjBsN,KAAKta,MAAM0L,UAAUoB,iBACrBwN,KAAKwI,iBAnC+B,oBAsC3B,KACTzU,EAAAA,EAAAA,QACE,IAAI+uC,EAAAA,GAAsB,CACxBt2C,MAAO,aACP6tB,KAAM,+DACN0oB,cAAe,kBACfx1C,KAAM,YACNY,UAAW,KACT6R,KAAKta,MAAM0L,UAAU4xC,UAAUhjC,KAAKta,MAAMqI,OAAO,IAEnDk1C,YAAa,KACXjjC,KAAKta,MAAM0L,UAAU4xC,UAAUhjC,KAAKta,MAAMqI,OAAO,UA9CvDiS,KAAKpU,MAAQ,CACXi3C,UAAW7iC,KAAKta,MAAMqI,MAAM80C,WAIhC35B,oBACElJ,KAAKqkB,IAAMrkB,KAAKta,MAAM0L,UAAUkzB,OAAOzsB,UAAU0sB,EAAAA,aAAcvkB,KAAKkjC,mBAGtE95B,uBACMpJ,KAAKqkB,KACPrkB,KAAKqkB,IAAInwB,cAyCbxB,SACE,MAAMgO,EAAUyiC,GAAAA,CAAW,CACzB,iBAAiB,EACjB,2BAA4BnjC,KAAKpU,MAAMi3C,YAGnCr2C,GAAQ8M,EAAAA,EAAAA,kBAAiBC,QAAQyG,KAAKta,MAAMqI,MAAMvB,MAAOwT,KAAKta,MAAMqI,MAAMoI,WAAY,QACtFitC,EAAQpjC,KAAKta,MAAMqI,MAAM6D,OAASoO,KAAKta,MAAMqI,MAAM6D,OAAO9M,OAAS,EACnE8M,EAAmB,IAAVwxC,EAAc,QAAU,SACjCjnC,GAAgD,IAAtC6D,KAAKta,MAAM0L,UAAU/L,KAAK8W,QAE1C,OACE,iBAAKlW,UAAWya,EAAhB,WACE,eACEza,UAAU,+BACV,cAAaolB,EAAAA,GAAAA,WAAAA,aAAAA,MAAwC7e,GACrDgB,QAASwS,KAAKqjC,SAHhB,WAKE,SAAC,EAAA97C,KAAD,CAAMC,KAAMwY,KAAKpU,MAAMi3C,UAAY,cAAgB,eAClDr2C,GACD,kBAAMvG,UAAU,6BAAhB,cACIm9C,EADJ,IACYxxC,EADZ,UAIDuK,IACC,iBAAKlW,UAAU,yBAAf,WACE,SAACw8C,GAAD,CACEj2C,MAAOwT,KAAKta,MAAMqI,MAAMvB,MACxB+F,OAAQyN,KAAKta,MAAMqI,MAAMwE,OACzBuvC,SAAU9hC,KAAK8hC,YAEjB,cAAG77C,UAAU,UAAUuH,QAASwS,KAAKsjC,SAArC,kBACE,SAAC,EAAA/7C,KAAD,CAAMC,KAAK,qBAIS,IAAzBwY,KAAKpU,MAAMi3C,YACV,gBAAK58C,UAAU,+BAA+BuH,QAASwS,KAAKqjC,SAA5D,eAIDlnC,IAAO,SAAI,gBAAKlW,UAAU,+C,mMCxFnC,MAAM6lB,GAAqB,CACzBy3B,mBAAkBA,EAAAA,GAGdnN,IAAYh7B,EAAAA,EAAAA,SAAQ,KAAM0Q,IAIzB,MAAM03B,WAAiCr7B,EAAAA,cAS5C1J,YAAY/Y,GACVumB,MAAMvmB,GADkB,mBARwB,IAQxB,oBAPN,IAAIyuC,GAAAA,IAOE,uBANH,MAMG,sBALJ,MAKI,oBAJN,GAIM,0BAFA,GAEA,0BAsDRsP,IAChB,IAAK,MAAMC,KAAUD,EACnBzjC,KAAK2jC,SAASD,EAAOrzC,GAAIuzC,cAAcF,GAGzC1jC,KAAKta,MAAM0L,UAAUyyC,sBAGhB7jC,KAAKpU,MAAMk4C,qBACd9jC,KAAK9M,SAAS,CAAE4wC,qBAAqB,OA/Df,8BAmEL,KACnB9jC,KAAKwI,iBApEmB,yBAuEV,CAAC1iB,EAA8Bi+C,KAC7C/jC,KAAK2jC,SAAS79C,EAAKuK,GAAIuzC,cAAc99C,MAxEb,oBA2ED,CAACi+C,EAAQC,EAASC,KACzC,MAAMl2C,EAAQiS,KAAK2jC,SAASM,EAAQ5zC,GACpCtC,EAAM61C,cAAcK,GACpBl2C,EAAM8C,eA9EkB,wBAiFG,CAACkzC,EAAQC,EAASC,KAC7CjkC,KAAK4jC,cAAcK,EAASF,MAlFJ,sBAqFC,CAACA,EAAQC,EAASC,KAC3CjkC,KAAK4jC,cAAcK,EAASF,MAnF5B/jC,KAAKpU,MAAQ,CACXk4C,qBAAqB,GAIzB56B,oBACE,MAAM,UAAE9X,GAAc4O,KAAKta,MAC3Bsa,KAAKk0B,UAAUE,IAAIhjC,EAAUkzB,OAAOzsB,UAAUqsC,EAAAA,GAA6BlkC,KAAK23B,qBAGlFvuB,uBACEpJ,KAAKk0B,UAAUhgC,cACf8L,KAAKta,MAAM69C,mBAAmBz7C,OAAOS,KAAKyX,KAAK2jC,WAGjDQ,cACE,MAAMJ,EAAS,GACf/jC,KAAK2jC,SAAW,GAEhB,IAAK,MAAM51C,KAASiS,KAAKta,MAAM0L,UAAUQ,OAAQ,CAM/C,GALK7D,EAAMjE,MACTiE,EAAMjE,IAAO,SAAQiE,EAAM5D,MAAM6N,KAAKd,SAExC8I,KAAK2jC,SAAS51C,EAAMjE,KAAOiE,GAEtBA,EAAMuyC,QAAS,CAClBtK,QAAQoO,IAAI,yBACZ,SAGF,MAAMC,EAAgB,CACpBh0C,EAAGtC,EAAMjE,IACTqtB,EAAGppB,EAAMuyC,QAAQnpB,EACjB2pB,EAAG/yC,EAAMuyC,QAAQQ,EACjBC,EAAGhzC,EAAMuyC,QAAQS,EACjBC,EAAGjzC,EAAMuyC,QAAQU,GAGA,QAAfjzC,EAAM7J,OACRmgD,EAAStD,EAAIuD,GAAAA,GACbD,EAASrD,EAAI,EACbqD,EAASE,aAAc,EACvBF,EAASG,YAAcz2C,EAAM80C,WAG/BkB,EAAO75C,KAAKm6C,GAGd,OAAON,EAsCTU,kBAAkB12C,EAAmB22C,GACnC,IAAIh9B,EAAM,EAaV,OAREA,EAFEg9B,EAAYl7B,EAAAA,OAAAA,OAAAA,YAAAA,OAAAA,GAERxJ,KAAK2kC,gBAAkBC,GAAAA,GAGvBC,GAAkC92C,EAAMuyC,QAAQQ,GAAK8D,GAAAA,GAG7D5kC,KAAK2kC,gBAAkBj9B,EAAMm9B,GAAkC92C,EAAMuyC,QAAQU,GAEtE,CAAEt5B,IAAAA,EAAKF,OAAQxH,KAAK2kC,iBAG7BG,aAAaJ,GACX,MAAMK,EAAgB,GAOY,OAJlC/kC,KAAK2kC,gBAAkB,EAInB3kC,KAAK0kC,YAAcA,KACrB1kC,KAAKglC,aAAL,UAAoBvwC,OAAOsU,mBAA3B,QAA0C,IAC1C/I,KAAKilC,YAAcxwC,OAAOwU,WAC1BjJ,KAAK0kC,UAAYA,GAGnB,IAAK,MAAM32C,KAASiS,KAAKta,MAAM0L,UAAUQ,OAAQ,CAC/C,MAAMszC,EAAe/B,GAAAA,CAAW,CAAE,8BAA+Bp1C,EAAMwqC,YAEvEwM,EAAc76C,MACZ,SAACi7C,GAAD,CAEEl/C,UAAWi/C,EACX,eAAcn3C,EAAM5D,GACpBm2C,QAASvyC,EAAMuyC,QACfoE,UAAWA,EACXM,aAAchlC,KAAKglC,aACnBC,YAAajlC,KAAKilC,YAClB1M,UAAWxqC,EAAMwqC,UARnB,SAUG,CAAC5+B,EAAemH,IACRd,KAAK43B,YAAY7pC,EAAO4L,EAAOmH,IAVnC/S,EAAMjE,MAgBjB,OAAOi7C,EAGTnN,YAAY7pC,EAAmB4L,EAAYmH,GACzC,MAAmB,QAAf/S,EAAM7J,MACD,SAACy+C,GAAD,CAA8B50C,MAAOA,EAAOqD,UAAW4O,KAAKta,MAAM0L,WAA/CrD,EAAMjE,KAGf,cAAfiE,EAAM7J,MACD,SAACg7C,GAAD,CAAgCnxC,MAAOA,EAAOqD,UAAW4O,KAAKta,MAAM0L,WAA/CrD,EAAMjE,MAIlC,SAACsuC,GAAA,EAAD,CAEEC,SAAUtqC,EAAMjE,IAChBiE,MAAOA,EACPqD,UAAW4O,KAAKta,MAAM0L,UACtBknC,UAAWvqC,EAAMuqC,UACjBC,UAAWxqC,EAAMwqC,UACjB5+B,MAAOA,EACPmH,OAAQA,GAPH/S,EAAMjE,KAYjB4I,SACE,MAAM,UAAEtB,GAAc4O,KAAKta,MAO3B,OACE,gBAAK8a,MAAO,CAAEG,KAAM,WAAYI,QAASf,KAAKta,MAAMgxC,UAAY,YAASrwC,GAAzE,UACE,SAAC,KAAD,CAAWg6B,eAAa,EAAxB,SACG,IAAe,IAAd,MAAE1mB,GAAY,EACd,GAAc,IAAVA,EACF,OAAO,KAGT,MAAM80B,IAAY90B,GAAS,MAAcvI,EAAU/L,KAAK8W,QAQxD,OAME,gBAAKqE,MAAO,CAAE7G,MAAQ,GAAEA,MAAWmH,OAAQ,QAA3C,UACE,SAAC,KAAD,CACEnH,MAAOA,EACP6qC,YAAa/V,EACb8V,YAAanzC,EAAU/L,KAAK8W,QAC5BipC,iBAAkB,CAAC,EAAG,GACtBC,kBAAkB,EAClBtkB,OAAQ,CAAC6jB,GAAAA,GAAmBA,GAAAA,IAC5Bz5C,KAAMm5C,GAAAA,GACNgB,UAAWC,GAAAA,GACXC,gBAAgB,oBAChBzB,OAAQ/jC,KAAKmkC,cACbsB,WAAYzlC,KAAKylC,WACjBC,SAAU1lC,KAAK0lC,SACfC,aAAc3lC,KAAK2lC,aACnBC,eAAgB5lC,KAAK4lC,eAdvB,SAgBG5lC,KAAK8kC,aAAanrC,aAuBrC,MAAMwrC,GAAkBlyC,EAAAA,YAAuD,CAACvN,EAAOub,KAAQ,MAC7F,MAAMpa,EAAQ2iB,EAAAA,OAAAA,OACd,IAAI7P,EAAQ,IACRmH,EAAS,IAEb,MAAM,UAAE4jC,EAAF,QAAapE,EAAb,UAAsB/H,EAAtB,aAAiCyM,EAAjC,YAA+CC,GAA6Bv/C,EAAbmgD,E,oIAArE,CAAkFngD,EAAlF,IACM8a,EAAoB,UAAG9a,EAAM8a,aAAT,QAAkB,GAqB5C,OAnBI+3B,GAEF5+B,EAAQ+qC,EACR5jC,EAAwB,IAAfkkC,EACTxkC,EAAMM,OAASA,EACfN,EAAM7G,MAAQ,QACLsrC,EAAcp+C,EAAMK,YAAY+wB,OAAO5N,IAEhD1Q,EAAQjU,EAAMg/C,UACd5jC,EAAS+jC,GAAkCvE,EAASU,GACpDxgC,EAAMM,OAASA,EACfN,EAAM7G,MAAQ,SAGdA,EAAQmsC,WAAWpgD,EAAM8a,MAAM7G,OAC/BmH,EAASglC,WAAWpgD,EAAM8a,MAAMM,UAKhC,gCAAS+kC,EAAT,CAAmB5kC,IAAKA,EAAxB,SAEG,CAACvb,EAAM2a,SAAS,GAAG1G,EAAOmH,GAASpb,EAAM2a,SAAS8rB,MAAM,UAQ/D,SAAS0Y,GAAkCkB,GACzC,OAAOA,GAAcR,GAAAA,GAAmBX,GAAAA,IAAqBA,GAAAA,GAG/DO,GAAgBhuC,YAAc,yBAEvB,MAAM6uC,GAAgB5P,GAAUoN,I,sTClRhC,MAAM73B,GAAmB/f,IAAD,CAC7BiB,UAAWjB,EAAMwF,UAAUvE,UAC3BX,UAAWN,EAAMwF,UAAUlF,UAC3BkF,UAAWxF,EAAMwF,UAAUC,aAGvBya,GAAqB,CACzBm6B,cADyB,MAEzBC,6BAFyB,MAGzB/P,UAHyB,KAIzBgQ,gBAJyB,KAKzBC,yBAAwBA,EAAAA,IAGpBhQ,IAAYh7B,EAAAA,EAAAA,SAAQuQ,GAAiBG,IAiBpC,MAAMu6B,WAA8Bl+B,EAAAA,cAA4B,oEACnC,GADmC,gBAEtDnI,KAAKsmC,iBAFiD,2BAsHnD,KAAM,MACtB,IAAIC,EACJ,UAAIvmC,KAAKta,MAAM0L,iBAAf,OAAI,EAAsBo1C,UACxBD,GAAKtiB,EAAAA,GAAAA,MAAaG,aAEpBqiB,GAAAA,EAAAA,iBAA2BF,MA3HwC,sBAwLxD,KACX,MAAM,UAAEn1C,GAAc4O,KAAKta,MAEtB0L,IAKDA,EAAUQ,OAAO9M,OAAS,GAAkC,cAA7BsM,EAAUQ,OAAO,GAAG1N,OAIvDkN,EAAU6tC,SAAS,CACjB/6C,KAAM,YACNo8C,QAAS,CAAEnpB,EAAG,EAAG2pB,EAAG,EAAGC,EAAG,GAAIC,EAAG,GACjCx0C,MAAO,gBAITwT,KAAK9M,SAAS,CAAEwzC,gBAAiB,SA3MkC,wBA8MrDC,IACd3mC,KAAK9M,SAAS,CAAEyzC,cAAAA,OA3MlBL,gBACE,MAAO,CACL5P,UAAW,KACXkQ,UAAW,KACXC,kBAAkB,EAClBC,kBAAmB,EACnBC,eAAe,EACfC,uBAAuB,GAI3B99B,oBAAoB,MAClBlJ,KAAKimC,gBACLjmC,KAAKinC,yBAA0B,UAACjnC,KAAKta,MAAMwhD,QAAQryC,SAASjJ,aAA7B,eAA4Cu7C,qBAAsB,EAGnG/9B,uBACEpJ,KAAKonC,iBAGPA,iBACEpnC,KAAKta,MAAMwgD,+BACXlmC,KAAK9M,SAAS8M,KAAKsmC,iBAGrBL,gBACE,MAAM,UAAE70C,EAAF,MAAa0+B,EAAb,YAAoBuX,GAAgBrnC,KAAKta,MAE3C0L,GACF4O,KAAKonC,iBAGPpnC,KAAKta,MAAMugD,cAAc,CACvBqB,QAASxX,EAAM1rC,OAAOmjD,KACtBC,OAAQ1X,EAAM1rC,OAAOyK,IACrB44C,QAAS3X,EAAM1rC,OAAOF,KACtBwjD,YAAaL,EAAYr5C,SACzB25C,UAAW3nC,KAAKta,MAAMkiD,MAAMD,UAC5BE,QAAQ,IAIVz1C,WAAW4N,KAAK8nC,gBAAiB,KAGnC37B,mBAAmBC,EAAkBtE,GAAkB,MACrD,MAAM,UAAE1W,EAAF,MAAa0+B,EAAb,yBAAoBsW,GAA6BpmC,KAAKta,MACtDyhD,EAAkB,QAAI,EAAAnnC,KAAKta,MAAMwhD,QAAQryC,SAASjJ,aAAhC,aAAG,EAA4Cu7C,mBAEvE,GAAK/1C,EAAL,CASA,GAJIgb,EAAUhb,YAAcA,IAC1BgR,SAAS5V,MAAQ4E,EAAU5E,MAAQ,MAAQu7C,EAAAA,EAAAA,UAI3C37B,EAAU0jB,MAAM1rC,OAAOyK,MAAQihC,EAAM1rC,OAAOyK,UACpBxI,IAAvB8gD,GAAoCnnC,KAAKinC,0BAA4BE,EAItE,OAFAnnC,KAAKimC,qBACLjmC,KAAKinC,wBAA0BE,GAIjC,GAAI/6B,EAAUvX,SAASE,SAAWiL,KAAKta,MAAMmP,SAASE,OAAQ,CAC5D,MAAMizC,EAAgB57B,EAAUi7B,YAC1BY,EAAYjoC,KAAKta,MAAM2hD,aAEzBY,MAAAA,OAAA,EAAAA,EAAWhY,SAAS+X,MAAAA,OAApB,EAAoBA,EAAe/X,QAAQgY,MAAAA,OAAA,EAAAA,EAAWC,OAAOF,MAAAA,OAAlB,EAAkBA,EAAeE,OAC9EjkB,EAAAA,GAAAA,MAAakkB,yBACbnoC,KAAK8nC,mBAGFE,MAAAA,GAAAA,EAAejyC,SAAhB,MAA2BkyC,IAAAA,EAAWlyC,UACxCkuB,EAAAA,GAAAA,MAAamkB,eAAeH,EAAUlyC,SAGxC,MAAMsyC,GAAqBC,EAAAA,EAAAA,IAAuBtoC,KAAKta,MAAM2hD,YAAaj7B,EAAUi7B,aAEhFgB,GACFjC,EAAyBh1C,EAAUvC,IAAKw5C,GAKM,MAQA,EARlD,GAAIroC,KAAKpU,MAAM8qC,YAAc5uB,EAAU4uB,UACrC6R,EAAAA,EAAAA,iBAAiC,GAGjC,UAAAvoC,KAAKta,MAAM0L,iBAAX,SAAsBkzB,OAAOkkB,QAAQ,IAAIC,EAAAA,GAAsBzoC,KAAKpU,MAAM8qC,UAAUvsC,KAItF,IAAK6V,KAAKpU,MAAM8qC,WAAa5uB,EAAU4uB,UACrC6R,EAAAA,EAAAA,iBAAiC,GAGjC,UAAAvoC,KAAKta,MAAM0L,iBAAX,SAAsBkzB,OAAOkkB,QAAQ,IAAIE,EAAAA,GAAqB5gC,EAAU4uB,UAAUvsC,KAGhF6V,KAAKpU,MAAMo7C,wBACbhnC,KAAKta,MAAMywC,WAAUwS,EAAAA,EAAAA,IAAwB,oCAC7Cl7C,EAAAA,gBAAAA,QAAwB,CAAEipC,UAAW,QAGnC12B,KAAKpU,MAAMm7C,gBACb/mC,KAAKta,MAAMywC,WAAUwS,EAAAA,EAAAA,IAAyB,oBAC9Cl7C,EAAAA,gBAAAA,QAAwB,CAAEipC,UAAW,KAAMkQ,UAAW,SAY3B,gCAAClhD,EAAckG,GAC5C,MAAM,UAAEwF,EAAF,YAAai2C,GAAgB3hD,EAE7BkjD,EAAiBvB,EAAY3Q,UAC7BmS,EAAiBxB,EAAYT,UAEnC,IAAKx1C,EACH,OAAOxF,EAIT,IAAKA,EAAM8qC,WAAakS,EAAgB,CACtC,MAAM76C,EAAQqD,EAAU03C,gBAAgBF,GACxC,OAAK76C,EAIDqD,EAAU23C,aAAah7C,GACzB,iBAAYnC,EAAZ,CAAmB8qC,UAAW3oC,EAAO+4C,kBAAiB,UAAEl7C,EAAM+6C,qBAAR,aAAE,EAAqBqC,YAE7E,iBAAYp9C,EAAZ,CAAmBo7C,uBAAuB,IAN1C,iBAAYp7C,EAAZ,CAAmBm7C,eAAe,IAGD,MAOhC,GAAIn7C,EAAM8qC,YAAckS,EAC3B,wBAAYh9C,EAAZ,CAAmB8qC,UAAW,KAAMgQ,gBAAiB96C,EAAMk7C,oBAI7D,IAAKl7C,EAAMg7C,WAAaiC,EAAgB,OACtC,MAAM96C,EAAQqD,EAAU03C,gBAAgBD,GACxC,OAAK96C,GAMLqD,EAAU63C,cAAcl7C,GAExB,iBAAYnC,EAAZ,CAAmBg7C,UAAW74C,EAAO+4C,kBAAiB,UAAEl7C,EAAM+6C,qBAAR,aAAE,EAAqBqC,UAAWtC,gBAAiB,KAPvG,iBAAY96C,EAAZ,CAAmBm7C,cAAe6B,IAUjC,OAAIh9C,EAAMg7C,YAAciC,GAG3Bz3C,EAAU83C,cAAct9C,EAAMg7C,WAE9B,iBAAYh7C,EAAZ,CAAmBg7C,UAAW,KAAMF,gBAAiB96C,EAAMk7C,qBAIzDl7C,EAAMm7C,eAAkBn7C,EAAMo7C,wBAA0B4B,EAC1D,iBAAYh9C,EAAZ,CAAmBm7C,eAAe,EAAOC,uBAAuB,IAG3Dp7C,EA6BTu9C,kBACE,MAAM,UAAE/3C,EAAF,YAAai2C,GAAgBrnC,KAAKta,MAElC0jD,EAAiB/B,EAAYhrC,QAEnC,IAAKjL,IAAcg4C,EACjB,OAAO,KAGT,MAAMC,EAAej4C,EAAUk4C,aAAapkC,SAASkkC,EAAgB,KAGrE,OAAKC,GACI,KAMX32C,SACE,MAAM,UAAEtB,EAAF,UAAalF,EAAb,YAAwBm7C,EAAxB,MAAqCxgD,GAAUmZ,KAAKta,OACpD,UAAEgxC,EAAF,UAAakQ,EAAb,gBAAwBF,GAAoB1mC,KAAKpU,MACjD29C,GAAYC,EAAAA,EAAAA,MACZ7jD,EAASE,GAAUgB,EAAO0iD,GAEhC,IAAKn4C,EACH,OAAO,SAACxE,EAAD,CAAkBC,UAAWmT,KAAKta,MAAMmH,YAGjD,MAAMw8C,EAAerpC,KAAKmpC,kBACpBM,EAAsBC,GAAAA,CAAW/jD,EAAOgkD,mBAAoB,CAChE,sBAAuB/C,IAEnBgD,GAAelT,GAAa6S,IAAcM,EAAAA,GAAAA,MAAkB7pC,KAAKta,MAAM2hD,YAAYxQ,SAEzF,OACE,iBAAK5wC,UAAWwjD,EAAhB,UACGF,IAAcM,EAAAA,GAAAA,OACb,mBAAQ,cAAax+B,EAAAA,GAAAA,MAAAA,UAAAA,QAAAA,MAArB,UACE,SAACy+B,EAAA,EAAD,CACE14C,UAAWA,EACX5E,MAAO4E,EAAU5E,MACjBu9C,YAAa34C,EAAU/L,KAAK0kD,YAC5BC,eAAgBpD,EAChBqD,WAAYjqC,KAAKiqC,WACjBV,UAAWA,EACXW,eAAgB94C,EAAU+4C,WAAWC,YAK3C,SAACp3C,EAAD,CAAiB5B,UAAWA,KAE5B,gBAAKnL,UAAWN,EAAO0kD,gBAAvB,UACE,SAAC,EAAApwB,gBAAD,CACEC,cAAc,OACdowB,kBAAmBtqC,KAAKuqC,aACxBvB,UAAWtC,EACX8D,qBAAqB,EACrBC,mBAAoB,IALtB,UAOE,iBAAKxkD,UAAWN,EAAO+kD,iBAAvB,UACGx+C,IAAS,SAAI,SAACD,EAAD,MACb29C,IACC,oBAAS,aAAYv+B,EAAAA,GAAAA,MAAAA,UAAAA,QAAAA,QAArB,UACE,SAACwzB,GAAD,CAASztC,UAAWA,EAAWvJ,YAAauJ,EAAUvJ,YAAY+rB,KAAMwC,MAAOhlB,EAAUglB,WAI7F,SAAC4vB,GAAD,CAAe50C,UAAWA,EAAWw1C,UAAWA,EAAWlQ,UAAWA,WAK3E2S,IAAgB,SAACluC,GAAD,CAAgB/J,UAAWA,EAAWrD,MAAOs7C,IAC7D3S,IAAa,SAAC4D,GAAD,CAAalpC,UAAWA,EAAWM,YAAaglC,EAAWvpB,IAAKnN,KAAKta,MAAM2hD,YAAYl6B,MACpGk6B,EAAYxQ,WAAY,SAAC8T,GAAAC,EAAD,CAAmBx5C,UAAWA,EAAWylC,SAAUwQ,EAAYxQ,eASzF,MAAMhxC,IAAYmkB,EAAAA,EAAAA,gBAAc,CAACnjB,EAAsB0iD,KAC5D,MAAMsB,EAAiBtB,IAAcM,EAAAA,GAAAA,KAAiBhjD,EAAMwE,QAAQ,EAAG,EAAG,GAAKxE,EAAMwE,QAAQ,GAC7F,MAAO,CACLs+C,mBAAoB7iD,EAAAA,GAAI;;;;;;;MAQxBujD,gBAAiBvjD,EAAAA,GAAI;;;;;MAMrB4jD,iBAAkB5jD,EAAAA,GAAI;iBACT+jD;;;UAOJC,IAAgBC,EAAAA,EAAAA,YAAW1E,IACxCyE,GAAc3zC,YAAc,gBAC5B,SAAei/B,GAAU0U,K,+MCpZzB,SAASE,EAAQ1tC,GAAkC,OAAO0tC,EAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAU5tC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqB2tC,QAAU3tC,EAAImB,cAAgBwsC,QAAU3tC,IAAQ2tC,OAAO7tC,UAAY,gBAAkBE,GAAQ0tC,EAAQ1tC,GAEzUxV,OAAOkV,eAAemuC,EAAS,aAAc,CAC3CljD,OAAO,IAETkjD,EAAA,aAAkB,EAElB,IAAIC,EAASC,EAAuB,EAAQ,qGAExCC,EAAaD,EAAuB,EAAQ,+GAE5CE,EAAkB,EAAQ,kLAE1BC,EAAkB,EAAQ,0KAE1BC,EAAS,EAAQ,sLAEjBC,EAAkB,EAAQ,+LAE1BC,EAA4B,EAAQ,yMAEpCC,EAAQP,EAAuB,EAAQ,wGAE3C,SAASA,EAAuB/tC,GAAO,OAAOA,GAAOA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAEvF,SAASC,EAAQC,EAAQC,GAAkB,IAAIlV,EAAOT,OAAOS,KAAKiV,GAAS,GAAI1V,OAAO4V,sBAAuB,CAAE,IAAIC,EAAU7V,OAAO4V,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQ3V,QAAO,SAAU4V,GAAO,OAAO9V,OAAO+V,yBAAyBL,EAAQI,GAAKf,eAAiBtU,EAAK2B,KAAK4T,MAAMvV,EAAMoV,GAAY,OAAOpV,EAE9U,SAASujD,EAAc7mD,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAAS,MAAQD,UAAU3N,GAAK2N,UAAU3N,GAAK,GAAIA,EAAI,EAAIkN,EAAQzV,OAAOmW,IAAS,GAAIC,SAAQ,SAAUpU,GAAOuT,EAAgBpY,EAAQ6E,EAAKmU,EAAOnU,OAAYhC,OAAOqW,0BAA4BrW,OAAOsW,iBAAiBnZ,EAAQ6C,OAAOqW,0BAA0BF,IAAWV,EAAQzV,OAAOmW,IAASC,SAAQ,SAAUpU,GAAOhC,OAAOkV,eAAe/X,EAAQ6E,EAAKhC,OAAO+V,yBAAyBI,EAAQnU,OAAa,OAAO7E,EAEjf,SAASsX,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAASC,EAAkB1X,EAAQS,GAAS,IAAK,IAAI2K,EAAI,EAAGA,EAAI3K,EAAMZ,OAAQuL,IAAK,CAAE,IAAIuM,EAAalX,EAAM2K,GAAIuM,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMjV,OAAOkV,eAAe/X,EAAQ2X,EAAW9S,IAAK8S,IAM7S,SAAS8B,EAAgBE,EAAGI,GAA+G,OAA1GN,EAAkB5W,OAAO+W,gBAAkB,SAAyBD,EAAGI,GAAsB,OAAjBJ,EAAEG,UAAYC,EAAUJ,GAAaF,EAAgBE,EAAGI,GAErK,SAASY,EAAaC,GAAW,IAAIksC,EAMrC,WAAuC,GAAuB,oBAAZ7sC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFqX,QAAQtZ,UAAU4uC,QAAQzsC,KAAKL,QAAQC,UAAUuX,QAAS,IAAI,iBAAyB,EAAQ,MAAOzmB,GAAK,OAAO,GAN9PgP,GAA6B,OAAO,WAAkC,IAAsCjT,EAAlC8T,EAAQnB,EAAgBkB,GAAkB,GAAIksC,EAA2B,CAAE,IAAIhsC,EAAYpB,EAAgBqB,MAAMvB,YAAazS,EAASkT,QAAQC,UAAUW,EAAO9B,UAAW+B,QAAqB/T,EAAS8T,EAAMhC,MAAMkC,KAAMhC,WAAc,OAAO2B,EAA2BK,KAAMhU,IAE5Z,SAAS2T,EAA2BF,EAAMF,GAAQ,GAAIA,IAA2B,WAAlByrC,EAAQzrC,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI7C,UAAU,4DAA+D,OAAO8C,EAAuBC,GAExR,SAASD,EAAuBC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAI/J,SAASd,EAAgBC,GAAwJ,OAAnJD,EAAkB7W,OAAO+W,eAAiB/W,OAAOgX,eAAiB,SAAyBF,GAAK,OAAOA,EAAEG,WAAajX,OAAOgX,eAAeF,IAAcD,EAAgBC,GAExM,SAASvB,EAAgBC,EAAKxT,EAAK7B,GAAiK,OAApJ6B,KAAOwT,EAAOxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAAE7B,MAAOA,EAAO4U,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBO,EAAIxT,GAAO7B,EAAgBqV,EAK3M,IAAI2uC,EAAwB,SAAU1qC,IAnBtC,SAAmBjD,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7B,UAAU,sDAAyD4B,EAASlB,UAAYtV,OAAO0W,OAAOD,GAAcA,EAAWnB,UAAW,CAAEqB,YAAa,CAAExW,MAAOqW,EAAUvB,UAAU,EAAMD,cAAc,KAAWhV,OAAOkV,eAAesB,EAAU,YAAa,CAAEvB,UAAU,IAAcwB,GAAYG,EAAgBJ,EAAUC,GAoBpbF,CAAU4tC,EAAU1qC,GAEpB,IAxBoB9E,EAAaS,EAAYC,EAwBzCgD,EAASP,EAAaqsC,GAE1B,SAASA,IACP,IAAI9oC,EAEJ5G,EAAgByD,KAAMisC,GAEtB,IAAK,IAAIC,EAAOluC,UAAUlZ,OAAQqnD,EAAO,IAAI1iC,MAAMyiC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQpuC,UAAUouC,GAoKzB,OA/JA/uC,EAAgBmC,EAFhB2D,EAAQhD,EAAOZ,KAAKzB,MAAMqC,EAAQ,CAACH,MAAM4G,OAAOulC,KAED,QAAS,CACtDE,SAAU,KACVC,SAAU,KACVrmD,UAAW,KAGboX,EAAgBmC,EAAuB2D,GAAQ,aAA2BioC,EAAOtY,QAAQ1qB,aAEzF/K,EAAgBmC,EAAuB2D,GAAQ,eAAe,SAAUlT,EAAGs8C,GACzE,IAAI3nC,EAAO2nC,EAAK3nC,KACZxE,EAAc+C,EAAMzd,MACpB8mD,EAAcpsC,EAAYosC,YAC1BC,EAAiBrsC,EAAYqsC,eACjC,GAAKD,EAAL,CACA,IAAIhnC,EAEF,CACAkC,IAAK,EACLJ,KAAM,GAGJolC,EAAe9nC,EAAK8nC,aACxB,GAAKA,EAAL,CACA,IAAIC,EAAaD,EAAa5nC,wBAC1B8nC,EAAahoC,EAAKE,wBAClB+nC,EAAQD,EAAWtlC,KAAOmlC,EAC1BK,EAAQH,EAAWrlC,KAAOmlC,EAC1BM,EAAOH,EAAWllC,IAAM+kC,EACxBO,EAAOL,EAAWjlC,IAAM+kC,EAC5BjnC,EAAY8B,KAAOulC,EAAQC,EAAQJ,EAAaO,WAChDznC,EAAYkC,IAAMqlC,EAAOC,EAAON,EAAa1D,UAE7C7lC,EAAMjQ,SAAS,CACbo5C,SAAU9mC,IAIZ,IAAI0nC,GAAU,EAAIxB,EAAgByB,QAAQhqC,EAAMiqC,oBAAqB5nC,EAAYkC,IAAKlC,EAAY8B,KAAMnE,EAAMzd,MAAMq7C,EAAG59B,EAAMzd,MAAMs7C,GAC/H7pB,EAAI+1B,EAAQ/1B,EACZ2pB,EAAIoM,EAAQpM,EAEhB,OAAO0L,EAAYjtC,KAAKC,EAAuB2D,GAAQA,EAAMzd,MAAM2K,EAAG8mB,EAAG2pB,EAAG,CAC1E7wC,EAAGA,EACH2U,KAAMA,EACNY,YAAaA,SAIjBnI,EAAgBmC,EAAuB2D,GAAQ,UAAU,SAAUlT,EAAGo9C,GACpE,IAAIzoC,EAAOyoC,EAAMzoC,KACb0oC,EAASD,EAAMC,OACfC,EAASF,EAAME,OACfC,EAASrqC,EAAMzd,MAAM8nD,OACzB,GAAKA,EAAL,CAEA,IAAKrqC,EAAMvX,MAAM0gD,SACf,MAAM,IAAImB,MAAM,qCAGlB,IAAI/lC,EAAMvE,EAAMvX,MAAM0gD,SAAS5kC,IAAM6lC,EACjCjmC,EAAOnE,EAAMvX,MAAM0gD,SAAShlC,KAAOgmC,EACnCjpC,EAAelB,EAAMzd,MACrBgoD,EAAYrpC,EAAaqpC,UACzBr9C,EAAIgU,EAAahU,EACjB0wC,EAAI18B,EAAa08B,EACjBC,EAAI38B,EAAa28B,EACjB2M,EAAiBtpC,EAAaspC,eAE9BC,EAAiBzqC,EAAMiqC,oBAG3B,GAAIM,EAAW,CACb,IAAIhB,EAAe9nC,EAAK8nC,aAExB,GAAIA,EAAc,CAChB,IAAIjnC,EAAetC,EAAMzd,MACrBq7B,EAAStb,EAAasb,OACtBukB,EAAY7/B,EAAa6/B,UACzBuI,EAAiBnB,EAAaoB,cAAe,EAAIpC,EAAgBqC,kBAAkB/M,EAAGsE,EAAWvkB,EAAO,IAC5GrZ,GAAM,EAAIgkC,EAAgBsC,OAAOtmC,EAAK,EAAGmmC,GACzC,IAAII,GAAW,EAAIvC,EAAgBwC,kBAAkBN,GACjDO,EAAgBR,GAAiB,EAAIjC,EAAgBqC,kBAAkBhN,EAAGkN,EAAUltB,EAAO,IAC/FzZ,GAAO,EAAIokC,EAAgBsC,OAAO1mC,EAAM,EAAG6mC,IAI/C,IAAI3oC,EAEF,CACAkC,IAAKA,EACLJ,KAAMA,GAGRnE,EAAMjQ,SAAS,CACbo5C,SAAU9mC,IAIZ,IAAI4oC,GAAW,EAAI1C,EAAgByB,QAAQS,EAAgBlmC,EAAKJ,EAAMy5B,EAAGC,GACrE7pB,EAAIi3B,EAASj3B,EACb2pB,EAAIsN,EAAStN,EAEjB,OAAO0M,EAAOjuC,KAAKC,EAAuB2D,GAAQ9S,EAAG8mB,EAAG2pB,EAAG,CACzD7wC,EAAGA,EACH2U,KAAMA,EACNY,YAAaA,QAIjBnI,EAAgBmC,EAAuB2D,GAAQ,cAAc,SAAUlT,EAAGo+C,GACxE,IAAIzpC,EAAOypC,EAAMzpC,KACb6gC,EAAatiC,EAAMzd,MAAM+/C,WAC7B,GAAKA,EAAL,CAEA,IAAKtiC,EAAMvX,MAAM0gD,SACf,MAAM,IAAImB,MAAM,wCAGlB,IAAI5nC,EAAe1C,EAAMzd,MACrBq7C,EAAIl7B,EAAak7B,EACjBC,EAAIn7B,EAAam7B,EACjB3wC,EAAIwV,EAAaxV,EACjBi+C,EAAuBnrC,EAAMvX,MAAM0gD,SACnChlC,EAAOgnC,EAAqBhnC,KAC5BI,EAAM4mC,EAAqB5mC,IAC3BlC,EAEF,CACAkC,IAAKA,EACLJ,KAAMA,GAGRnE,EAAMjQ,SAAS,CACbo5C,SAAU,OAGZ,IAAIiC,GAAW,EAAI7C,EAAgByB,QAAQhqC,EAAMiqC,oBAAqB1lC,EAAKJ,EAAMy5B,EAAGC,GAChF7pB,EAAIo3B,EAASp3B,EACb2pB,EAAIyN,EAASzN,EAEjB,OAAO2E,EAAWlmC,KAAKC,EAAuB2D,GAAQ9S,EAAG8mB,EAAG2pB,EAAG,CAC7D7wC,EAAGA,EACH2U,KAAMA,EACNY,YAAaA,QAIjBnI,EAAgBmC,EAAuB2D,GAAQ,gBAAgB,SAAUlT,EAAGu+C,GAC1ErrC,EAAMsrC,gBAAgBx+C,EAAGu+C,EAAc,mBAGzCnxC,EAAgBmC,EAAuB2D,GAAQ,iBAAiB,SAAUlT,EAAGu+C,GAC3ErrC,EAAMsrC,gBAAgBx+C,EAAGu+C,EAAc,oBAGzCnxC,EAAgBmC,EAAuB2D,GAAQ,YAAY,SAAUlT,EAAGu+C,GACtErrC,EAAMsrC,gBAAgBx+C,EAAGu+C,EAAc,eAGlCrrC,EA+ST,OAnfoB1G,EAuMPwvC,EAvMoB/uC,EAuMV,CAAC,CACtBpT,IAAK,wBACL7B,MAAO,SAA+B4f,EAEpCiuB,GAOA,GAAI91B,KAAKta,MAAM2a,WAAawH,EAAUxH,SAAU,OAAO,EACvD,GAAIL,KAAKta,MAAMgpD,mBAAqB7mC,EAAU6mC,iBAAkB,OAAO,EAEvE,IAAIC,GAAc,EAAIjD,EAAgBkD,sBAAsB5uC,KAAKotC,kBAAkBptC,KAAKta,OAAQsa,KAAKta,MAAMyxB,EAAGnX,KAAKta,MAAMo7C,EAAG9gC,KAAKta,MAAMq7C,EAAG/gC,KAAKta,MAAMs7C,EAAGhhC,KAAKpU,OACzJ4Z,GAAc,EAAIkmC,EAAgBkD,sBAAsB5uC,KAAKotC,kBAAkBvlC,GAAYA,EAAUsP,EAAGtP,EAAUi5B,EAAGj5B,EAAUk5B,EAAGl5B,EAAUm5B,EAAGlL,GACnJ,QAAQ,EAAI2V,EAAOoD,mBAAmBF,EAAanpC,IAAgBxF,KAAKta,MAAM2/C,mBAAqBx9B,EAAUw9B,mBAE9G,CACDv7C,IAAK,oBACL7B,MAAO,WACL+X,KAAK8uC,iBAAiB,MAEvB,CACDhlD,IAAK,qBACL7B,MAAO,SAA4BmkB,GAGjCpM,KAAK8uC,iBAAiB1iC,KAIvB,CACDtiB,IAAK,mBACL7B,MAAO,SAA0BmkB,GAG/B,IAAIsiC,EAAmB1uC,KAAKta,MAAMgpD,iBAClC,GAAKA,EAAL,CACA,IAAI9pC,EAAO5E,KAAK+uC,WAAW35C,QAE3B,GAAKwP,EAAL,CACA,IAAIoqC,EAAuB5iC,EAAUsiC,kBAAoB,CACvDpnC,KAAM,EACNI,IAAK,GAEH4kC,EAAWtsC,KAAKpU,MAAM0gD,SACtB2C,EAAa3C,GAAYoC,EAAiBpnC,OAAS0nC,EAAqB1nC,MAAQonC,EAAiBhnC,MAAQsnC,EAAqBtnC,IAElI,GAAK4kC,GAME,GAAI2C,EAAY,CACrB,IAAI3B,EAASoB,EAAiBpnC,KAAOglC,EAAShlC,KAC1CimC,EAASmB,EAAiBhnC,IAAM4kC,EAAS5kC,IAC7C1H,KAAKwtC,OAAOkB,EAAiBz+C,EAAG,CAC9B2U,KAAMA,EACN0oC,OAAQA,EACRC,OAAQA,UAXVvtC,KAAKwsC,YAAYkC,EAAiBz+C,EAAG,CACnC2U,KAAMA,EACN0oC,OAAQoB,EAAiBpnC,KACzBimC,OAAQmB,EAAiBhnC,UAY9B,CACD5d,IAAK,oBACL7B,MAAO,WAGL,IAAIvC,EAEFsY,UAAUlZ,OAAS,QAAsBuB,IAAjB2X,UAAU,GAAmBA,UAAU,GAAKgC,KAAKta,MAC3E,MAAO,CACLyF,KAAMzF,EAAMyF,KACZi6C,iBAAkB1/C,EAAM0/C,iBACxBuI,eAAgBjoD,EAAMioD,eACtB5sB,OAAQr7B,EAAMq7B,OACdmuB,QAASxpD,EAAMwpD,QACf5J,UAAW5/C,EAAM4/C,aAcpB,CACDx7C,IAAK,cACL7B,MAAO,SAAqB60C,GAK1B,IAIIt8B,EAJA2uC,EAAenvC,KAAKta,MACpB0pD,EAAiBD,EAAaC,eAC9BzB,EAAiBwB,EAAaxB,eAgBlC,OAfuBwB,EAAa9J,iBAIlC7kC,GAAQ,EAAIirC,EAAO4D,cAAcvS,IAGjCt8B,GAAQ,EAAIirC,EAAO6D,YAAYxS,GAE3BsS,IACF5uC,EAAM8G,MAAO,EAAImkC,EAAO8D,MAAMzS,EAAIx1B,KAAOqmC,GACzCntC,EAAM7G,OAAQ,EAAI8xC,EAAO8D,MAAMzS,EAAInjC,MAAQg0C,KAIxCntC,IAQR,CACD1W,IAAK,iBACL7B,MAAO,SAAwBunD,EAE7BhL,GAKA,OAAoB4G,EAAOtY,QAAQ2c,cAAclE,EAAgBmE,cAAe,CAC9EjuB,UAAW+iB,EACXmL,QAAS3vC,KAAKwsC,YACdgB,OAAQxtC,KAAKwtC,OACboC,OAAQ5vC,KAAKylC,WACboK,OAAQ7vC,KAAKta,MAAMmqD,OACnBlU,OAAQ,2BAA6B37B,KAAKta,MAAMi2C,OAAS,IAAM37B,KAAKta,MAAMi2C,OAAS,IACnFmU,MAAO9vC,KAAKta,MAAM+mD,eAClBsD,QAAS/vC,KAAK+uC,YACbS,KASJ,CACD1lD,IAAK,iBACL7B,MAAO,SAAwBunD,EAE7B5uC,EAEA2jC,GAKA,IAAIyL,EAAehwC,KAAKta,MACpByF,EAAO6kD,EAAa7kD,KACpBgsB,EAAI64B,EAAa74B,EACjB84B,EAAOD,EAAaC,KACpBC,EAAOF,EAAaE,KACpBC,EAAOH,EAAaG,KACpBC,EAAOJ,EAAaI,KACpB3D,EAAiBuD,EAAavD,eAC9B4D,EAAgBL,EAAaK,cAC7BC,EAAeN,EAAaM,aAC5B1C,EAAiB5tC,KAAKotC,oBAEtBmD,GAAW,EAAI7E,EAAgBkD,sBAAsBhB,EAAgB,EAAG,EAAGziD,EAAOgsB,EAAG,GAAGxd,MAExF62C,GAAO,EAAI9E,EAAgBkD,sBAAsBhB,EAAgB,EAAG,EAAGqC,EAAMC,GAC7EO,GAAQ,EAAI/E,EAAgBkD,sBAAsBhB,EAAgB,EAAG,EAAGuC,EAAMC,GAC9EM,EAAiB,CAACF,EAAK72C,MAAO62C,EAAK1vC,QACnC6vC,EAAiB,CAAC1tC,KAAKH,IAAI2tC,EAAM92C,MAAO42C,GAAWttC,KAAKH,IAAI2tC,EAAM3vC,OAAQkC,EAAAA,IAC9E,OAAoBooC,EAAOtY,QAAQ2c,cAAcjE,EAAgBoF,UAC/D,CACAC,cAAe,CACbpvB,UAAW8iB,GAEbt+C,UAAWs+C,OAAcl+C,EAAY,uBACrCsT,MAAOiH,EAASjH,MAChBmH,OAAQF,EAASE,OACjB4vC,eAAgBA,EAChBC,eAAgBA,EAChBhL,aAAc3lC,KAAK2lC,aACnBmL,cAAe9wC,KAAK8wC,cACpBpL,SAAU1lC,KAAK0lC,SACf+G,eAAgBA,EAChB4D,cAAeA,EACfR,OAAQS,GACPd,KAQJ,CACD1lD,IAAK,kBACL7B,MASA,SAAyBgI,EAEvB8gD,EAAOC,GAKP,IAAIpsC,EAAOmsC,EAAMnsC,KACb/Z,EAAOkmD,EAAMlmD,KACbomD,EAAUjxC,KAAKta,MAAMsrD,GACzB,GAAKC,EAAL,CACA,IAAIC,EAAelxC,KAAKta,MACpByF,EAAO+lD,EAAa/lD,KACpBgsB,EAAI+5B,EAAa/5B,EACjB2pB,EAAIoQ,EAAapQ,EACjBzwC,EAAI6gD,EAAa7gD,EACjB+/C,EAAOc,EAAad,KACpBF,EAAOgB,EAAahB,KACpBiB,EAAenxC,KAAKta,MACpBuqD,EAAOkB,EAAalB,KACpBE,EAAOgB,EAAahB,KAEpBiB,GAAU,EAAI1F,EAAgB2F,QAAQrxC,KAAKotC,oBAAqBviD,EAAK8O,MAAO9O,EAAKiW,OAAQqW,EAAG2pB,GAC5FC,EAAIqQ,EAAQrQ,EACZC,EAAIoQ,EAAQpQ,EAGhBiP,EAAOhtC,KAAKF,IAAIktC,EAAM,GAEtBE,EAAOltC,KAAKH,IAAIqtC,EAAMhlD,EAAOgsB,GAE7B4pB,GAAI,EAAI2K,EAAgBsC,OAAOjN,EAAGkP,EAAME,GACxCnP,GAAI,EAAI0K,EAAgBsC,OAAOhN,EAAGkP,EAAME,GACxCpwC,KAAK9M,SAAS,CACZm5C,SAA0B,iBAAhB2E,EAAiC,KAAOnmD,IAEpDomD,EAAQ1xC,KAAKS,KAAM3P,EAAG0wC,EAAGC,EAAG,CAC1B/wC,EACA2U,KAAMA,EACN/Z,KAAMA,OAGT,CACDf,IAAK,SACL7B,MAAO,WAGL,IAAIqpD,EAAetxC,KAAKta,MACpByxB,EAAIm6B,EAAan6B,EACjB2pB,EAAIwQ,EAAaxQ,EACjBC,EAAIuQ,EAAavQ,EACjBC,EAAIsQ,EAAatQ,EACjBwD,EAAc8M,EAAa9M,YAC3BD,EAAc+M,EAAa/M,YAC3BmK,EAAmB4C,EAAa5C,iBAChCrJ,EAAmBiM,EAAajM,iBAChCvI,GAAM,EAAI4O,EAAgBkD,sBAAsB5uC,KAAKotC,oBAAqBj2B,EAAG2pB,EAAGC,EAAGC,EAAGhhC,KAAKpU,OAE3F4jD,EAAQpE,EAAOtY,QAAQye,SAASC,KAAKxxC,KAAKta,MAAM2a,UAGhDoxC,EAAwBrG,EAAOtY,QAAQ4e,aAAalC,EAAO,CAC7DvuC,IAAKjB,KAAK+uC,WACV9oD,WAAW,EAAI2lD,EAAM9Y,SAAS,kBAAmB0c,EAAM9pD,MAAMO,UAAW+Z,KAAKta,MAAMO,UAAW,CAC5F0rD,OAAQ3xC,KAAKta,MAAMisD,OACnBtF,SAAU31B,QAAQ1W,KAAKpU,MAAMygD,UAC7B,kBAAmB7H,EACnB,2BAA4B9tB,QAAQ1W,KAAKpU,MAAM0gD,UAC/CsF,SAAUl7B,QAAQg4B,GAClBmD,cAAexM,IAGjB7kC,MAAOsrC,EAAcA,EAAcA,EAAc,GAAI9rC,KAAKta,MAAM8a,OAAQgvC,EAAM9pD,MAAM8a,OAAQR,KAAK8xC,YAAYhV,MAO/G,OAHA2U,EAAWzxC,KAAK+xC,eAAeN,EAAU3U,EAAKyH,GAE9CkN,EAAWzxC,KAAKgyC,eAAeP,EAAUjN,MA9emBtnC,GAAYP,EAAkBF,EAAYW,UAAWF,GAAiBC,GAAaR,EAAkBF,EAAaU,GAAcrV,OAAOkV,eAAeP,EAAa,YAAa,CAAEM,UAAU,IAmfrPkvC,EA9dmB,CA+d1Bb,EAAOtY,QAAQmf,WAEjB9G,EAAA,QAAkBc,EAElB5uC,EAAgB4uC,EAAU,YAAa,CAErC5rC,SAAUirC,EAAWxY,QAAQtmB,QAE7BrhB,KAAMmgD,EAAWxY,QAAQof,OAAOjqC,WAChC0lC,eAAgBrC,EAAWxY,QAAQof,OAAOjqC,WAC1Cq9B,UAAWgG,EAAWxY,QAAQof,OAAOjqC,WACrC8Y,OAAQuqB,EAAWxY,QAAQqf,MAAMlqC,WACjCinC,QAAS5D,EAAWxY,QAAQof,OAAOjqC,WACnCm9B,iBAAkBkG,EAAWxY,QAAQqf,MAAMlqC,WAE3CkP,EAAGm0B,EAAWxY,QAAQof,OAAOjqC,WAC7B64B,EAAGwK,EAAWxY,QAAQof,OAAOjqC,WAC7B84B,EAAGuK,EAAWxY,QAAQof,OAAOjqC,WAC7B+4B,EAAGsK,EAAWxY,QAAQof,OAAOjqC,WAE7BgoC,KAAM,SAAcvqD,EAElB0sD,GAGA,IAAInqD,EAAQvC,EAAM0sD,GAClB,MAAqB,iBAAVnqD,EAA2B,IAAIwlD,MAAM,uBAC5CxlD,EAAQvC,EAAMq7C,GAAK94C,EAAQvC,EAAMyqD,KAAa,IAAI1C,MAAM,iDAA5D,GAEF0C,KAAM,SAAczqD,EAElB0sD,GAGA,IAAInqD,EAAQvC,EAAM0sD,GAClB,MAAqB,iBAAVnqD,EAA2B,IAAIwlD,MAAM,uBAC5CxlD,EAAQvC,EAAMq7C,GAAK94C,EAAQvC,EAAMuqD,KAAa,IAAIxC,MAAM,kDAA5D,GAEFyC,KAAM,SAAcxqD,EAElB0sD,GAGA,IAAInqD,EAAQvC,EAAM0sD,GAClB,MAAqB,iBAAVnqD,EAA2B,IAAIwlD,MAAM,wBAC5CxlD,EAAQvC,EAAMs7C,GAAK/4C,EAAQvC,EAAM0qD,KAAa,IAAI3C,MAAM,oDAA5D,GAEF2C,KAAM,SAAc1qD,EAElB0sD,GAGA,IAAInqD,EAAQvC,EAAM0sD,GAClB,MAAqB,iBAAVnqD,EAA2B,IAAIwlD,MAAM,wBAC5CxlD,EAAQvC,EAAMs7C,GAAK/4C,EAAQvC,EAAMwqD,KAAa,IAAIzC,MAAM,qDAA5D,GAGFp9C,EAAGi7C,EAAWxY,QAAQuf,OAAOpqC,WAE7BooC,cAAe1E,EAA0B2G,qBACzChC,aAAc3E,EAA0B4G,iBAExC9M,WAAY6F,EAAWxY,QAAQ0f,KAC/BhG,YAAalB,EAAWxY,QAAQ0f,KAChChF,OAAQlC,EAAWxY,QAAQ0f,KAC3B7M,aAAc2F,EAAWxY,QAAQ0f,KACjC1B,cAAexF,EAAWxY,QAAQ0f,KAClC9M,SAAU4F,EAAWxY,QAAQ0f,KAE7BhO,YAAa8G,EAAWxY,QAAQ2f,KAAKxqC,WACrCs8B,YAAa+G,EAAWxY,QAAQ2f,KAAKxqC,WACrCylC,UAAWpC,EAAWxY,QAAQ2f,KAAKxqC,WACnC0pC,OAAQrG,EAAWxY,QAAQ2f,KAE3BpN,iBAAkBiG,EAAWxY,QAAQ2f,KAAKxqC,WAC1CwkC,eAAgBnB,EAAWxY,QAAQof,OAEnCjsD,UAAWqlD,EAAWxY,QAAQuf,OAE9BxC,OAAQvE,EAAWxY,QAAQuf,OAE3B1W,OAAQ2P,EAAWxY,QAAQuf,OAE3B3D,iBAAkBpD,EAAWxY,QAAQtnC,MAAM,CACzCyE,EAAGq7C,EAAWxY,QAAQt1B,OAAOyK,WAC7BX,KAAMgkC,EAAWxY,QAAQof,OAAOjqC,WAChCP,IAAK4jC,EAAWxY,QAAQof,OAAOjqC,eAInC5K,EAAgB4uC,EAAU,eAAgB,CACxChmD,UAAW,GACX01C,OAAQ,GACRkU,OAAQ,GACRK,KAAM,EACND,KAAM,EACNG,KAAMptC,EAAAA,EACNmtC,KAAMntC,EAAAA,EACNypC,eAAgB,K,sNCvnBlB,SAASzB,EAAQ1tC,GAAkC,OAAO0tC,EAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAU5tC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqB2tC,QAAU3tC,EAAImB,cAAgBwsC,QAAU3tC,IAAQ2tC,OAAO7tC,UAAY,gBAAkBE,GAAQ0tC,EAAQ1tC,GAEzUxV,OAAOkV,eAAemuC,EAAS,aAAc,CAC3CljD,OAAO,IAETkjD,EAAA,aAAkB,EAElB,IAAIl4C,EAkBJ,SAAiCqK,EAAKo1C,GAAe,IAAKA,GAAep1C,GAAOA,EAAIuuC,WAAc,OAAOvuC,EAAO,GAAY,OAARA,GAAiC,WAAjB0tC,EAAQ1tC,IAAoC,mBAARA,EAAsB,MAAO,CAAEw1B,QAASx1B,GAAS,IAAIq1C,EAAQC,EAAyBF,GAAc,GAAIC,GAASA,EAAMz9C,IAAIoI,GAAQ,OAAOq1C,EAAMvtD,IAAIkY,GAAQ,IAAIu1C,EAAS,GAAQC,EAAwBhrD,OAAOkV,gBAAkBlV,OAAO+V,yBAA0B,IAAK,IAAI/T,KAAOwT,EAAO,GAAY,YAARxT,GAAqBhC,OAAOsV,UAAU21C,eAAexzC,KAAKjC,EAAKxT,GAAM,CAAE,IAAIkpD,EAAOF,EAAwBhrD,OAAO+V,yBAAyBP,EAAKxT,GAAO,KAAUkpD,IAASA,EAAK5tD,KAAO4tD,EAAKC,KAAQnrD,OAAOkV,eAAe61C,EAAQ/oD,EAAKkpD,GAAgBH,EAAO/oD,GAAOwT,EAAIxT,GAAY+oD,EAAO/f,QAAUx1B,EAASq1C,GAASA,EAAMM,IAAI31C,EAAKu1C,GAAW,OAAOA,EAlBjxBK,CAAwB,EAAQ,qGAExCC,EAAU9H,EAAuB,EAAQ,sHAEzCO,EAAQP,EAAuB,EAAQ,wGAEvCI,EAAS,EAAQ,sLAEjBC,EAAkB,EAAQ,+LAE1B0H,EAAY/H,EAAuB,EAAQ,0LAE3CM,EAA4BN,EAAuB,EAAQ,0MAE/D,SAASA,EAAuB/tC,GAAO,OAAOA,GAAOA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAEvF,SAASs1C,EAAyBF,GAAe,GAAuB,mBAAZW,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQT,EAA2B,SAAkCF,GAAe,OAAOA,EAAca,EAAmBD,IAAsBZ,GAIhU,SAASc,EAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIhqC,MAAMC,QAAQ+pC,GAAM,OAAOC,EAAkBD,GAN1CE,CAAmBF,IAI7D,SAA0BG,GAAQ,GAAsB,oBAAX3I,QAAmD,MAAzB2I,EAAK3I,OAAOC,WAA2C,MAAtB0I,EAAK,cAAuB,OAAOnqC,MAAMwmB,KAAK2jB,GAJjFC,CAAiBJ,IAAQK,EAA4BL,IAE1H,WAAgC,MAAM,IAAI/2C,UAAU,wIAF8Eq3C,GAQlI,SAASx2C,EAAQC,EAAQC,GAAkB,IAAIlV,EAAOT,OAAOS,KAAKiV,GAAS,GAAI1V,OAAO4V,sBAAuB,CAAE,IAAIC,EAAU7V,OAAO4V,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQ3V,QAAO,SAAU4V,GAAO,OAAO9V,OAAO+V,yBAAyBL,EAAQI,GAAKf,eAAiBtU,EAAK2B,KAAK4T,MAAMvV,EAAMoV,GAAY,OAAOpV,EAE9U,SAASujD,EAAc7mD,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAAS,MAAQD,UAAU3N,GAAK2N,UAAU3N,GAAK,GAAIA,EAAI,EAAIkN,EAAQzV,OAAOmW,IAAS,GAAIC,SAAQ,SAAUpU,GAAOuT,EAAgBpY,EAAQ6E,EAAKmU,EAAOnU,OAAYhC,OAAOqW,0BAA4BrW,OAAOsW,iBAAiBnZ,EAAQ6C,OAAOqW,0BAA0BF,IAAWV,EAAQzV,OAAOmW,IAASC,SAAQ,SAAUpU,GAAOhC,OAAOkV,eAAe/X,EAAQ6E,EAAKhC,OAAO+V,yBAAyBI,EAAQnU,OAAa,OAAO7E,EAEjf,SAAS+uD,EAAeP,EAAKpjD,GAAK,OAUlC,SAAyBojD,GAAO,GAAIhqC,MAAMC,QAAQ+pC,GAAM,OAAOA,EAVtBQ,CAAgBR,IAQzD,SAA+BA,EAAKpjD,GAAK,IAAI6jD,EAAY,MAAPT,EAAc,KAAyB,oBAAXxI,QAA0BwI,EAAIxI,OAAOC,WAAauI,EAAI,cAAe,GAAU,MAANS,EAAY,OAAQ,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG30C,KAAKk0C,KAAQa,GAAMH,EAAKD,EAAGp8C,QAAQ08C,QAAoBH,EAAKnqD,KAAKiqD,EAAGlsD,QAAYoI,GAAKgkD,EAAKvvD,SAAWuL,GAA3DikD,GAAK,IAAoE,MAAO9pB,GAAO+pB,GAAK,EAAMH,EAAK5pB,EAAO,QAAU,IAAW8pB,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,EARzbI,CAAsBhB,EAAKpjD,IAAMyjD,EAA4BL,EAAKpjD,IAEnI,WAA8B,MAAM,IAAIqM,UAAU,6IAFuFg4C,GAIzI,SAASZ,EAA4Bl1C,EAAG+1C,GAAU,GAAK/1C,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO80C,EAAkB90C,EAAG+1C,GAAS,IAAIC,EAAI9sD,OAAOsV,UAAUkC,SAASC,KAAKX,GAAGutB,MAAM,GAAI,GAAiE,MAAnD,WAANyoB,GAAkBh2C,EAAEH,cAAam2C,EAAIh2C,EAAEH,YAAYjX,MAAgB,QAANotD,GAAqB,QAANA,EAAoBnrC,MAAMwmB,KAAKrxB,GAAc,cAANg2C,GAAqB,2CAA2Ch9B,KAAKg9B,GAAWlB,EAAkB90C,EAAG+1C,QAAzG,GAE7S,SAASjB,EAAkBD,EAAKoB,IAAkB,MAAPA,GAAeA,EAAMpB,EAAI3uD,UAAQ+vD,EAAMpB,EAAI3uD,QAAQ,IAAK,IAAIuL,EAAI,EAAGykD,EAAO,IAAIrrC,MAAMorC,GAAMxkD,EAAIwkD,EAAKxkD,IAAOykD,EAAKzkD,GAAKojD,EAAIpjD,GAAM,OAAOykD,EAMhL,SAASv4C,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAASC,EAAkB1X,EAAQS,GAAS,IAAK,IAAI2K,EAAI,EAAGA,EAAI3K,EAAMZ,OAAQuL,IAAK,CAAE,IAAIuM,EAAalX,EAAM2K,GAAIuM,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMjV,OAAOkV,eAAe/X,EAAQ2X,EAAW9S,IAAK8S,IAM7S,SAAS8B,EAAgBE,EAAGI,GAA+G,OAA1GN,EAAkB5W,OAAO+W,gBAAkB,SAAyBD,EAAGI,GAAsB,OAAjBJ,EAAEG,UAAYC,EAAUJ,GAAaF,EAAgBE,EAAGI,GAErK,SAASY,EAAaC,GAAW,IAAIksC,EAMrC,WAAuC,GAAuB,oBAAZ7sC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFqX,QAAQtZ,UAAU4uC,QAAQzsC,KAAKL,QAAQC,UAAUuX,QAAS,IAAI,iBAAyB,EAAQ,MAAOzmB,GAAK,OAAO,GAN9PgP,GAA6B,OAAO,WAAkC,IAAsCjT,EAAlC8T,EAAQnB,EAAgBkB,GAAkB,GAAIksC,EAA2B,CAAE,IAAIhsC,EAAYpB,EAAgBqB,MAAMvB,YAAazS,EAASkT,QAAQC,UAAUW,EAAO9B,UAAW+B,QAAqB/T,EAAS8T,EAAMhC,MAAMkC,KAAMhC,WAAc,OAAO2B,EAA2BK,KAAMhU,IAE5Z,SAAS2T,EAA2BF,EAAMF,GAAQ,GAAIA,IAA2B,WAAlByrC,EAAQzrC,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI7C,UAAU,4DAA+D,OAAO8C,EAAuBC,GAExR,SAASD,EAAuBC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAI/J,SAASd,EAAgBC,GAAwJ,OAAnJD,EAAkB7W,OAAO+W,eAAiB/W,OAAOgX,eAAiB,SAAyBF,GAAK,OAAOA,EAAEG,WAAajX,OAAOgX,eAAeF,IAAcD,EAAgBC,GAExM,SAASvB,EAAgBC,EAAKxT,EAAK7B,GAAiK,OAApJ6B,KAAOwT,EAAOxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAAE7B,MAAOA,EAAO4U,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBO,EAAIxT,GAAO7B,EAAgBqV,EAG3M,IAAIy3C,EAAkB,oBAClBC,GAAY,EAEhB,IACEA,EAAY,WAAWp9B,KAAKq9B,UAAUC,WACtC,MAAOjlD,IAQT,IAAIklD,EAA+B,SAAU5zC,IA9B7C,SAAmBjD,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7B,UAAU,sDAAyD4B,EAASlB,UAAYtV,OAAO0W,OAAOD,GAAcA,EAAWnB,UAAW,CAAEqB,YAAa,CAAExW,MAAOqW,EAAUvB,UAAU,EAAMD,cAAc,KAAWhV,OAAOkV,eAAesB,EAAU,YAAa,CAAEvB,UAAU,IAAcwB,GAAYG,EAAgBJ,EAAUC,GA+BpbF,CAAU82C,EAAiB5zC,GAE3B,IAnCoB9E,EAAaS,EAAYC,EAmCzCgD,EAASP,EAAau1C,GAE1B,SAASA,IACP,IAAIhyC,EAEJ5G,EAAgByD,KAAMm1C,GAEtB,IAAK,IAAIjJ,EAAOluC,UAAUlZ,OAAQqnD,EAAO,IAAI1iC,MAAMyiC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQpuC,UAAUouC,GA4WzB,OAvWA/uC,EAAgBmC,EAFhB2D,EAAQhD,EAAOZ,KAAKzB,MAAMqC,EAAQ,CAACH,MAAM4G,OAAOulC,KAED,QAAS,CACtDiJ,WAAY,KACZrR,QAAQ,EAAI0H,EAAO4J,+BAA+BlyC,EAAMzd,MAAMq+C,OAAQ5gC,EAAMzd,MAAM2a,SAAU8C,EAAMzd,MAAMyF,MACxG,EAAIsgD,EAAO6J,aAAanyC,EAAMzd,OAAQyd,EAAMzd,MAAM6vD,cAClDC,SAAS,EACTC,YAAa,KACbC,UAAW,KACXC,cAAe,KACfC,gBAAiB,KACjBv1C,SAAU,KAGZhD,EAAgBmC,EAAuB2D,GAAQ,mBAAoB,GAEnE9F,EAAgBmC,EAAuB2D,GAAQ,eAAe,SAAU9S,EAEtE8mB,EAEA2pB,EAEAyL,GACA,IAAIt8C,EAAIs8C,EAAKt8C,EACT2U,EAAO2nC,EAAK3nC,KACZm/B,EAAS5gC,EAAMvX,MAAMm4C,OACrB8R,GAAI,EAAIpK,EAAOqK,eAAe/R,EAAQ1zC,GAC1C,GAAKwlD,EAOL,OALA1yC,EAAMjQ,SAAS,CACbuiD,aAAa,EAAIhK,EAAOsK,iBAAiBF,GACzCH,UAAW3R,IAGN5gC,EAAMzd,MAAM8mD,YAAYzI,EAAQ8R,EAAGA,EAAG,KAAM5lD,EAAG2U,MAGxDvH,EAAgBmC,EAAuB2D,GAAQ,UAAU,SAAU9S,EAAG8mB,EAAG2pB,EAAGuM,GAC1E,IAAIp9C,EAAIo9C,EAAMp9C,EACV2U,EAAOyoC,EAAMzoC,KACb6wC,EAActyC,EAAMvX,MAAM6pD,YAC1B1R,EAAS5gC,EAAMvX,MAAMm4C,OACrB3jC,EAAc+C,EAAMzd,MACpByF,EAAOiV,EAAYjV,KACnBoqD,EAAen1C,EAAYm1C,aAC3BS,EAAmB51C,EAAY41C,iBAC/BH,GAAI,EAAIpK,EAAOqK,eAAe/R,EAAQ1zC,GAC1C,GAAKwlD,EAAL,CAEA,IAAI9lD,EAAc,CAChBgxC,EAAG8U,EAAE9U,EACLC,EAAG6U,EAAE7U,EACL7pB,EAAG0+B,EAAE1+B,EACL2pB,EAAG+U,EAAE/U,EACL/wC,aAAa,EACbM,EAAGA,GAIL0zC,GAAS,EAAI0H,EAAOwK,aAAalS,EAAQ8R,EAAG1+B,EAAG2pB,GAD5B,EAC6CkV,GAAkB,EAAIvK,EAAO6J,aAAanyC,EAAMzd,OAAQyF,EAAMoqD,GAE9HpyC,EAAMzd,MAAM8nD,OAAOzJ,EAAQ0R,EAAaI,EAAG9lD,EAAaE,EAAG2U,GAE3DzB,EAAMjQ,SAAS,CACb6wC,OAAQwR,EAAexR,GAAS,EAAI0H,EAAOyK,SAASnS,GAAQ,EAAI0H,EAAO6J,aAAanyC,EAAMzd,OAAQyF,GAClGiqD,WAAYrlD,QAIhBsN,EAAgBmC,EAAuB2D,GAAQ,cAAc,SAAU9S,EAAG8mB,EAAG2pB,EAAGuN,GAC9E,IAAIp+C,EAAIo+C,EAAMp+C,EACV2U,EAAOypC,EAAMzpC,KACjB,GAAKzB,EAAMvX,MAAMwpD,WAAjB,CACA,IAAIK,EAActyC,EAAMvX,MAAM6pD,YAC1B1R,EAAS5gC,EAAMvX,MAAMm4C,OACrB1/B,EAAelB,EAAMzd,MACrByF,EAAOkZ,EAAalZ,KACpB6qD,EAAmB3xC,EAAa2xC,iBAChCT,EAAelxC,EAAakxC,aAC5BM,GAAI,EAAIpK,EAAOqK,eAAe/R,EAAQ1zC,GAC1C,GAAKwlD,EAAL,CAGA9R,GAAS,EAAI0H,EAAOwK,aAAalS,EAAQ8R,EAAG1+B,EAAG2pB,GAD5B,EAC6CkV,GAAkB,EAAIvK,EAAO6J,aAAanyC,EAAMzd,OAAQyF,EAAMoqD,GAE9HpyC,EAAMzd,MAAM+/C,WAAW1B,EAAQ0R,EAAaI,EAAG,KAAM5lD,EAAG2U,GAGxD,IAAI6+B,EAAY8R,EAAexR,GAAS,EAAI0H,EAAOyK,SAASnS,GAAQ,EAAI0H,EAAO6J,aAAanyC,EAAMzd,OAAQyF,GACtGuqD,EAAYvyC,EAAMvX,MAAM8pD,UAE5BvyC,EAAMjQ,SAAS,CACbkiD,WAAY,KACZrR,OAAQN,EACRgS,YAAa,KACbC,UAAW,OAGbvyC,EAAMgzC,qBAAqB1S,EAAWiS,QAGxCr4C,EAAgBmC,EAAuB2D,GAAQ,iBAAiB,SAAU9S,EAAG0wC,EAAGC,EAAG+P,GACjF,IAAI9gD,EAAI8gD,EAAM9gD,EACV2U,EAAOmsC,EAAMnsC,KACbm/B,EAAS5gC,EAAMvX,MAAMm4C,OACrB8R,GAAI,EAAIpK,EAAOqK,eAAe/R,EAAQ1zC,GACrCwlD,IAEL1yC,EAAMjQ,SAAS,CACbyiD,eAAe,EAAIlK,EAAOsK,iBAAiBF,GAC3CH,UAAWvyC,EAAMvX,MAAMm4C,SAGzB5gC,EAAMzd,MAAMorD,cAAc/M,EAAQ8R,EAAGA,EAAG,KAAM5lD,EAAG2U,OAGnDvH,EAAgBmC,EAAuB2D,GAAQ,YAAY,SAAU9S,EAAG0wC,EAAGC,EAAGoV,GAC5E,IAAInmD,EAAImmD,EAAMnmD,EACV2U,EAAOwxC,EAAMxxC,KACbL,EAAcpB,EAAMvX,MACpBm4C,EAASx/B,EAAYw/B,OACrB4R,EAAgBpxC,EAAYoxC,cAC5BlwC,EAAetC,EAAMzd,MACrByF,EAAOsa,EAAata,KACpB6qD,EAAmBvwC,EAAauwC,iBAChCT,EAAe9vC,EAAa8vC,aAE5Bc,GAAkB,EAAI5K,EAAO6K,gBAAgBvS,EAAQ1zC,GAAG,SAAUwlD,GAGpE,IAAIU,EAEJ,GAAIP,IAAqBT,EAAc,CACrC,IAAIiB,GAAa,EAAI/K,EAAOgL,kBAAkB1S,EAAQ+H,EAAcA,EAAc,GAAI+J,GAAI,GAAI,CAC5F9U,EAAGA,EACHC,EAAGA,KACDh5C,QAAO,SAAU0uD,GACnB,OAAOA,EAAWrmD,IAAMwlD,EAAExlD,KAK5B,GAHAkmD,EAAgBC,EAAW1xD,OAAS,EAGjB,CAEjB,IAAI6xD,EAAS3zC,EAAAA,EACT4zC,EAAS5zC,EAAAA,EACbwzC,EAAWt4C,SAAQ,SAAUw4C,GACvBA,EAAWv/B,EAAI0+B,EAAE1+B,IAAGw/B,EAAS1zC,KAAKH,IAAI6zC,EAAQD,EAAWv/B,IACzDu/B,EAAW5V,EAAI+U,EAAE/U,IAAG8V,EAAS3zC,KAAKH,IAAI8zC,EAAQF,EAAW5V,OAE3D+V,OAAOC,SAASH,KAASd,EAAE9U,EAAI4V,EAASd,EAAE1+B,GAC1C0/B,OAAOC,SAASF,KAASf,EAAE7U,EAAI4V,EAASf,EAAE/U,IAUlD,OANKyV,IAEHV,EAAE9U,EAAIA,EACN8U,EAAE7U,EAAIA,GAGD6U,KAELkB,EAAmB/C,EAAeqC,EAAiB,GACnD5S,EAAYsT,EAAiB,GAC7BlB,EAAIkB,EAAiB,GAGzB,GAAKlB,EAAL,CAEA,IAAI9lD,EAAc,CAChBgxC,EAAG8U,EAAE9U,EACLC,EAAG6U,EAAE7U,EACL7pB,EAAG0+B,EAAE1+B,EACL2pB,EAAG+U,EAAE/U,EACL6Q,QAAQ,EACRthD,EAAGA,GAGL8S,EAAMzd,MAAMggD,SAASjC,EAAWkS,EAAeE,EAAG9lD,EAAaE,EAAG2U,GAGlEzB,EAAMjQ,SAAS,CACb6wC,OAAQwR,EAAe9R,GAAY,EAAIgI,EAAOyK,SAASzS,GAAW,EAAIgI,EAAO6J,aAAanyC,EAAMzd,OAAQyF,GACxGiqD,WAAYrlD,QAIhBsN,EAAgBmC,EAAuB2D,GAAQ,gBAAgB,SAAU9S,EAAG0wC,EAAGC,EAAGgW,GAChF,IAAI/mD,EAAI+mD,EAAM/mD,EACV2U,EAAOoyC,EAAMpyC,KACbe,EAAexC,EAAMvX,MACrBm4C,EAASp+B,EAAao+B,OACtB4R,EAAgBhwC,EAAagwC,cAC7B9vC,EAAe1C,EAAMzd,MACrByF,EAAO0a,EAAa1a,KACpBoqD,EAAe1vC,EAAa0vC,aAC5BM,GAAI,EAAIpK,EAAOqK,eAAe/R,EAAQ1zC,GAE1C8S,EAAMzd,MAAMigD,aAAa5B,EAAQ4R,EAAeE,EAAG,KAAM5lD,EAAG2U,GAG5D,IAAI6+B,EAAY8R,EAAexR,GAAS,EAAI0H,EAAOyK,SAASnS,GAAQ,EAAI0H,EAAO6J,aAAanyC,EAAMzd,OAAQyF,GACtGuqD,EAAYvyC,EAAMvX,MAAM8pD,UAE5BvyC,EAAMjQ,SAAS,CACbkiD,WAAY,KACZrR,OAAQN,EACRkS,cAAe,KACfD,UAAW,OAGbvyC,EAAMgzC,qBAAqB1S,EAAWiS,MAGxCr4C,EAAgBmC,EAAuB2D,GAAQ,cAAc,SAAUlT,GACrE,IAAIgnD,EAQJ,GANAhnD,EAAEsE,iBAEFtE,EAAEy/B,kBAIEslB,IACiD,QAAlDiC,EAAwBhnD,EAAEinD,YAAYjyD,cAA8C,IAA1BgyD,IAAoCA,EAAsBE,UAAUC,SAASrC,IACxI,OAAO,EAGT,IAAI5F,EAAehsC,EAAMzd,MACrB2xD,EAAelI,EAAakI,aAC5BC,EAAiBnI,EAAamI,eAC9Bv2B,EAASouB,EAAapuB,OACtB51B,EAAOgkD,EAAahkD,KACpBm6C,EAAY6J,EAAa7J,UACzB4J,EAAUC,EAAaD,QACvBv1C,EAAQw1C,EAAax1C,MACrByrC,EAAmB+J,EAAa/J,iBAChCqH,EAAiB0C,EAAa1C,eAG9B8K,EAAmBD,MAAAA,OAAuD,EAASA,EAAernD,GAEtG,IAAyB,IAArBsnD,EAKF,OAJIp0C,EAAMvX,MAAMgqD,iBACdzyC,EAAMq0C,6BAGD,EAGT,IAAIC,EAAoB3L,EAAcA,EAAc,GAAIuL,GAAeE,GAEnExT,EAAS5gC,EAAMvX,MAAMm4C,OAErB2T,EAAiBznD,EAAEinD,YACnBS,EAASD,EAAeC,OACxBC,EAASF,EAAeE,OACxBlJ,EAAmB,CACrBpnC,KAAMqwC,EAASlL,EACf/kC,IAAKkwC,EAASnL,EACdx8C,EAAGA,GAGL,GAAKkT,EAAMvX,MAAMgqD,iBAyBV,GAAIzyC,EAAMvX,MAAM8iD,iBAAkB,CACvC,IAAImJ,EAAwB10C,EAAMvX,MAAM8iD,iBACpCpnC,EAAOuwC,EAAsBvwC,KAC7BI,EAAMmwC,EAAsBnwC,KACLJ,GAAQqwC,GAAUjwC,GAAOkwC,IAGlDz0C,EAAMjQ,SAAS,CACbw7C,iBAAkBA,SAjCU,CAChC,IAAId,EAEF,CACAziD,KAAMA,EACN41B,OAAQA,EACRmuB,QAASA,EACT5J,UAAWA,EACXqI,eAAgBh0C,EAChByrC,iBAAkBA,GAAoBrkB,GAEpC+2B,GAAqB,EAAIpM,EAAgByB,QAAQS,EAAgBgK,EAAQD,EAAQF,EAAkB1W,EAAG0W,EAAkBzW,GAE5H79B,EAAMjQ,SAAS,CACb0iD,gBAA8B3iD,EAAMw8C,cAAc,MAAO,CACvD3lD,IAAK2tD,EAAkBpnD,IAEzBq+C,iBAAkBA,EAClB3K,OAAQ,GAAGn9B,OAAO4sC,EAAmBzP,GAAS,CAAC+H,EAAcA,EAAc,GAAI2L,GAAoB,GAAI,CACrGtgC,EAAG2gC,EAAmB3gC,EACtB2pB,EAAGgX,EAAmBhX,EACtB6Q,QAAQ,EACRnN,aAAa,YAiBrBnnC,EAAgBmC,EAAuB2D,GAAQ,6BAA6B,WAC1E,IAAI6sC,EAAe7sC,EAAMzd,MACrB2xD,EAAerH,EAAaqH,aAC5BlsD,EAAO6kD,EAAa7kD,KACpB44C,EAAS5gC,EAAMvX,MAAMm4C,OACrBN,GAAY,EAAIgI,EAAOyK,SAASnS,EAAO/7C,QAAO,SAAU6tD,GAC1D,OAAOA,EAAExlD,IAAMgnD,EAAahnD,MAC1B,EAAIo7C,EAAO6J,aAAanyC,EAAMzd,OAAQyF,GAE1CgY,EAAMjQ,SAAS,CACb6wC,OAAQN,EACRmS,gBAAiB,KACjBR,WAAY,KACZ1G,sBAAkBroD,OAItBgX,EAAgBmC,EAAuB2D,GAAQ,eAAe,SAAUlT,GACtEA,EAAEsE,iBAEFtE,EAAEy/B,kBACFvsB,EAAM40C,mBAMyB,IAA3B50C,EAAM40C,kBACR50C,EAAMq0C,+BAIVn6C,EAAgBmC,EAAuB2D,GAAQ,eAAe,SAAUlT,GACtEA,EAAEsE,iBAEFtE,EAAEy/B,kBACFvsB,EAAM40C,sBAGR16C,EAAgBmC,EAAuB2D,GAAQ,UAAU,SAAUlT,GAGjEA,EAAEsE,iBAEFtE,EAAEy/B,kBACF,IAAI2nB,EAAel0C,EAAMzd,MAAM2xD,aAC3BtT,EAAS5gC,EAAMvX,MAAMm4C,OACrBj+C,EAAOi+C,EAAOhtC,MAAK,SAAU8+C,GAC/B,OAAOA,EAAExlD,IAAMgnD,EAAahnD,KAG9B8S,EAAM40C,iBAAmB,EAEzB50C,EAAMq0C,4BAENr0C,EAAMzd,MAAMsyD,OAAOjU,EAAQj+C,EAAMmK,MAG5BkT,EAoRT,OA3qBoB1G,EA0ZP04C,EA1ZgCh4C,EAgoBzC,CAAC,CACHrT,IAAK,2BACL7B,MAAO,SAAkC4f,EAEvCC,GAKA,IAAImwC,EAEJ,OAAInwC,EAAUstC,WACL,OAKJ,EAAIjC,EAAQrgB,SAASjrB,EAAUk8B,OAAQj8B,EAAUowC,cAAgBrwC,EAAUytC,cAAgBxtC,EAAUwtC,aAE9F,EAAI7J,EAAO0M,eAAetwC,EAAUxH,SAAUyH,EAAUzH,YAIlE43C,EAAgBnwC,EAAUi8B,QAL1BkU,EAAgBpwC,EAAUk8B,OASxBkU,EAEK,CACLlU,QAFc,EAAI0H,EAAO4J,+BAA+B4C,EAAepwC,EAAUxH,SAAUwH,EAAU1c,MAAM,EAAIsgD,EAAO6J,aAAaztC,GAAYA,EAAU0tC,cAKzJD,YAAaztC,EAAUytC,YACvBj1C,SAAUwH,EAAUxH,SACpB63C,YAAarwC,EAAUk8B,QAIpB,UAvqBsB7mC,EA0ZH,CAAC,CAC7BpT,IAAK,oBACL7B,MAAO,WACL+X,KAAK9M,SAAS,CACZsiD,SAAS,IAIXx1C,KAAKm2C,qBAAqBn2C,KAAKpU,MAAMm4C,OAAQ/jC,KAAKta,MAAMq+C,UAEzD,CACDj6C,IAAK,wBACL7B,MAAO,SAA+B4f,EAEpCiuB,GAKA,OAGE91B,KAAKta,MAAM2a,WAAawH,EAAUxH,YAAa,EAAIorC,EAAO2M,mBAAmBp4C,KAAKta,MAAOmiB,EAAWsrC,EAAQrgB,UAAY9yB,KAAKpU,MAAMwpD,aAAetf,EAAUsf,YAAcp1C,KAAKpU,MAAM4pD,UAAY1f,EAAU0f,SAAWx1C,KAAKpU,MAAM8iD,mBAAqB5Y,EAAU4Y,mBAGnQ,CACD5kD,IAAK,qBACL7B,MAAO,SAA4BmkB,EAEjCtE,GAGA,IAAK9H,KAAKpU,MAAMwpD,WAAY,CAC1B,IAAI3R,EAAYzjC,KAAKpU,MAAMm4C,OACvB2R,EAAY5tC,EAAUi8B,OAC1B/jC,KAAKm2C,qBAAqB1S,EAAWiS,MAQxC,CACD5rD,IAAK,kBACL7B,MAAO,WAGL,GAAK+X,KAAKta,MAAM2yD,SAAhB,CACA,IAAIC,GAAQ,EAAI7M,EAAOjkC,QAAQxH,KAAKpU,MAAMm4C,QACtCwU,EAAoBv4C,KAAKta,MAAM0/C,iBAAmBplC,KAAKta,MAAM0/C,iBAAiB,GAAKplC,KAAKta,MAAMq7B,OAAO,GACzG,OAAOu3B,EAAQt4C,KAAKta,MAAM4/C,WAAagT,EAAQ,GAAKt4C,KAAKta,MAAMq7B,OAAO,GAAyB,EAApBw3B,EAAwB,QAWpG,CACDzuD,IAAK,uBACL7B,MAAO,SAA8Bw7C,EAEnCiS,GAGKA,IAAWA,EAAY11C,KAAKpU,MAAMm4C,SAElC,EAAIoP,EAAQrgB,SAAS4iB,EAAWjS,IACnCzjC,KAAKta,MAAMkgD,eAAenC,KAG7B,CACD35C,IAAK,cACL7B,MAKA,WAGE,IAAImtD,EAAap1C,KAAKpU,MAAMwpD,WAC5B,IAAKA,EAAY,OAAO,KACxB,IAAIlE,EAAelxC,KAAKta,MACpBiU,EAAQu3C,EAAav3C,MACrBxO,EAAO+lD,EAAa/lD,KACpB41B,EAASmwB,EAAanwB,OACtBqkB,EAAmB8L,EAAa9L,iBAChCE,EAAY4L,EAAa5L,UACzB4J,EAAUgC,EAAahC,QACvB7J,EAAmB6L,EAAa7L,iBAChCoH,EAAiByE,EAAazE,eAElC,OAAoBx5C,EAAMw8C,cAAc2D,EAAUtgB,QAAS,CACzDiO,EAAGqU,EAAWrU,EACdC,EAAGoU,EAAWpU,EACd7pB,EAAGi+B,EAAWj+B,EACd2pB,EAAGsU,EAAWtU,EACdzwC,EAAG+kD,EAAW/kD,EACdpK,UAAW,yBACX0nD,eAAgBh0C,EAChBxO,KAAMA,EACN41B,OAAQA,EACRqkB,iBAAkBA,GAAoBrkB,EACtCmuB,QAASA,EACT5J,UAAWA,EACXd,aAAa,EACbD,aAAa,EACbmJ,WAAW,EACXrI,iBAAkBA,EAClBoH,eAAgBA,GACFx5C,EAAMw8C,cAAc,MAAO,SAQ5C,CACD3lD,IAAK,kBACL7B,MAAO,SAAyBunD,EAE9BgJ,GAKA,GAAKhJ,GAAUA,EAAM1lD,IAArB,CACA,IAAI+rD,GAAI,EAAIpK,EAAOqK,eAAe91C,KAAKpU,MAAMm4C,OAAQjZ,OAAO0kB,EAAM1lD,MAClE,IAAK+rD,EAAG,OAAO,KACf,IAAI1E,EAAenxC,KAAKta,MACpBiU,EAAQw3C,EAAax3C,MACrBxO,EAAOgmD,EAAahmD,KACpB41B,EAASowB,EAAapwB,OACtBqkB,EAAmB+L,EAAa/L,iBAChCE,EAAY6L,EAAa7L,UACzB4J,EAAUiC,EAAajC,QACvB1K,EAAc2M,EAAa3M,YAC3BD,EAAc4M,EAAa5M,YAC3BmJ,EAAYyD,EAAazD,UACzBrI,EAAmB8L,EAAa9L,iBAChCoH,EAAiB0E,EAAa1E,eAC9BgM,EAAkBtH,EAAasH,gBAC/BjT,EAAkB2L,EAAa3L,gBAC/B6K,EAAgBc,EAAad,cAC7BC,EAAea,EAAab,aAC5B7pC,EAAezG,KAAKpU,MACpB4pD,EAAU/uC,EAAa+uC,QACvB9G,EAAmBjoC,EAAaioC,iBAIhCjgB,EAAqC,kBAAlBonB,EAAErR,YAA4BqR,EAAErR,aAAeqR,EAAElE,QAAUnN,EAC9EkU,EAAqC,kBAAlB7C,EAAEtR,YAA4BsR,EAAEtR,aAAesR,EAAElE,QAAUpN,EAC9EoU,EAAuB9C,EAAExF,eAAiBA,EAE1CuI,EAAUnqB,GAAaif,IAA6B,IAAhBmI,EAAEnI,UAC1C,OAAoBz6C,EAAMw8C,cAAc2D,EAAUtgB,QAAS,CACzD6a,eAAgBh0C,EAChBxO,KAAMA,EACN41B,OAAQA,EACRqkB,iBAAkBA,GAAoBrkB,EACtCmuB,QAASA,EACT5J,UAAWA,EACX3J,OAAQ8c,EACR5I,OAAQrK,EACRC,WAAYzlC,KAAKylC,WACjB+G,YAAaxsC,KAAKwsC,YAClBgB,OAAQxtC,KAAKwtC,OACbsD,cAAe9wC,KAAK8wC,cACpBpL,SAAU1lC,KAAK0lC,SACfC,aAAc3lC,KAAK2lC,aACnBnB,YAAa/V,EACb8V,YAAamU,EACbhL,UAAWkL,EACXvT,iBAAkBA,GAAoBmQ,EACtCpG,gBAAiBoG,EACjB/I,eAAgBA,EAChB1L,EAAG8U,EAAE9U,EACLC,EAAG6U,EAAE7U,EACL7pB,EAAG0+B,EAAE1+B,EACL2pB,EAAG+U,EAAE/U,EACLzwC,EAAGwlD,EAAExlD,EACL6/C,KAAM2F,EAAE3F,KACRD,KAAM4F,EAAE5F,KACRG,KAAMyF,EAAEzF,KACRD,KAAM0F,EAAE1F,KACRwB,OAAQkE,EAAElE,OACVjD,iBAAkB8J,EAAiB9J,OAAmBroD,EACtDgqD,cAAesI,EACfrI,aAAcA,GACbd,MAIJ,CACD1lD,IAAK,SACL7B,MAAO,WAGL,IAAI2d,EAAS5F,KAETsxC,EAAetxC,KAAKta,MACpBO,EAAYqrD,EAAarrD,UACzBua,EAAQ8wC,EAAa9wC,MACrBq4C,EAAcvH,EAAauH,YAC3BloB,EAAW2gB,EAAa3gB,SACxBmoB,GAAkB,EAAIlN,EAAM9Y,SAASiiB,EAAiB9uD,GAEtD8yD,EAAcjN,EAAc,CAC9BhrC,OAAQd,KAAKg5C,mBACZx4C,GAEH,OAAoBvN,EAAMw8C,cAAc,MAAO,CAC7CxuC,IAAK0vB,EACL1qC,UAAW6yD,EACXt4C,MAAOu4C,EACPf,OAAQa,EAAc74C,KAAKg4C,OAASvM,EAAOwN,KAC3CC,YAAaL,EAAc74C,KAAKk5C,YAAczN,EAAOwN,KACrDE,YAAaN,EAAc74C,KAAKm5C,YAAc1N,EAAOwN,KACrDG,WAAYP,EAAc74C,KAAKo5C,WAAa3N,EAAOwN,MAClDhmD,EAAMs+C,SAAS3nD,IAAIoW,KAAKta,MAAM2a,UAAU,SAAUmvC,GACnD,OAAO5pC,EAAOyzC,gBAAgB7J,MAC5BqJ,GAAe74C,KAAKpU,MAAMgqD,iBAAmB51C,KAAKq5C,gBAAgBr5C,KAAKpU,MAAMgqD,iBAAiB,GAAO51C,KAAKjQ,oBA9nBtC4M,EAAkBF,EAAYW,UAAWF,GAAiBC,GAAaR,EAAkBF,EAAaU,GAAcrV,OAAOkV,eAAeP,EAAa,YAAa,CAAEM,UAAU,IA2qBrPo4C,EA3oB0B,CA4oBjCliD,EAAMg/C,WAER9G,EAAA,QAAkBgK,EAElB93C,EAAgB83C,EAAiB,cAAe,mBAEhD93C,EAAgB83C,EAAiB,YAAaxJ,EAA0B7Y,SAExEz1B,EAAgB83C,EAAiB,eAAgB,CAC/CkD,UAAU,EACVltD,KAAM,GACNlF,UAAW,GACXua,MAAO,GACPglC,gBAAiB,GACjBiT,gBAAiB,GACjBrT,iBAAkB,KAClBE,UAAW,IACX4J,QAASlsC,EAAAA,EAET+gC,OAAQ,GACRhjB,OAAQ,CAAC,GAAI,IACb2sB,WAAW,EACXlJ,aAAa,EACbD,aAAa,EACbgR,cAAc,EACdsD,aAAa,EACbxT,kBAAkB,EAClBoH,eAAgB,EAChB6M,iBAAiB,EACjBhE,YAAa,WACbU,kBAAkB,EAClBqB,aAAc,CACZhnD,EAAG,oBACH2wC,EAAG,EACHD,EAAG,GAELsP,cAAe,CAAC,MAChBzK,eAAgB6F,EAAOwN,KACvBzM,YAAaf,EAAOwN,KACpBzL,OAAQ/B,EAAOwN,KACfxT,WAAYgG,EAAOwN,KACnBnI,cAAerF,EAAOwN,KACtBvT,SAAU+F,EAAOwN,KACjBtT,aAAc8F,EAAOwN,KACrBjB,OAAQvM,EAAOwN,KACf3B,eAAgB7L,EAAOwN,Q,+NChxBzBnxD,OAAOkV,eAAemuC,EAAS,aAAc,CAC3CljD,OAAO,IAETkjD,EAAQoH,iBAAmBpH,EAAQmH,qBAAuBnH,EAAA,aAAkB,EAE5E,IAAIG,EAAaD,EAAuB,EAAQ,+GAE5CD,EAASC,EAAuB,EAAQ,qGAE5C,SAASA,EAAuB/tC,GAAO,OAAOA,GAAOA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAYvF,IAAIg1C,EAEFhH,EAAWxY,QAAQymB,QAAQjO,EAAWxY,QAAQ0mB,MAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,QAG7FrO,EAAQmH,qBAAuBA,EAE/B,IAAIC,EAEFjH,EAAWxY,QAAQ2mB,UAAU,CAACnO,EAAWxY,QAAQluB,KAAM0mC,EAAWxY,QAAQ0f,OAmD5ErH,EAAQoH,iBAAmBA,EAC3B,IAAImH,EAAW,CAIbzzD,UAAWqlD,EAAWxY,QAAQuf,OAC9B7xC,MAAO8qC,EAAWxY,QAAQt1B,OAI1B7D,MAAO2xC,EAAWxY,QAAQof,OAE1BmG,SAAU/M,EAAWxY,QAAQ2f,KAE7BtnD,KAAMmgD,EAAWxY,QAAQof,OAEzBuG,gBAAiBnN,EAAWxY,QAAQuf,OAEpC7M,gBAAiB8F,EAAWxY,QAAQuf,OAEpCiH,gBAAiB,SAAyB5zD,GAGpCA,EAAM4zD,gBAAN5zD,GAMN4vD,YAAchK,EAAWxY,QAAQ0mB,MAAM,CAAC,WAAY,eAKpDzV,OAAQ,SAAgBr+C,GAGtB,IAAIq+C,EAASr+C,EAAMq+C,YAEJ19C,IAAX09C,GAEJ,uMAAkCA,EAAQ,WAM5ChjB,OAASuqB,EAAWxY,QAAQymB,QAAQjO,EAAWxY,QAAQof,QAIvD9M,iBAAmBkG,EAAWxY,QAAQymB,QAAQjO,EAAWxY,QAAQof,QAIjE5M,UAAWgG,EAAWxY,QAAQof,OAM9BhD,QAAS5D,EAAWxY,QAAQof,OAI5BxE,UAAWpC,EAAWxY,QAAQ2f,KAC9BjO,YAAa8G,EAAWxY,QAAQ2f,KAChClO,YAAa+G,EAAWxY,QAAQ2f,KAEhC8C,aAAcjK,EAAWxY,QAAQ2f,KAEjCuD,iBAAkB1K,EAAWxY,QAAQ2f,KAErCpN,iBAAkBiG,EAAWxY,QAAQ2f,KAErChG,eAAgBnB,EAAWxY,QAAQof,OAEnC2G,YAAavN,EAAWxY,QAAQ2f,KAEhCpC,cAAeiC,EACfhC,aAAciC,EAKd3M,eAAgB0F,EAAWxY,QAAQ0f,KAGnChG,YAAalB,EAAWxY,QAAQ0f,KAEhChF,OAAQlC,EAAWxY,QAAQ0f,KAE3B/M,WAAY6F,EAAWxY,QAAQ0f,KAE/B1B,cAAexF,EAAWxY,QAAQ0f,KAElC9M,SAAU4F,EAAWxY,QAAQ0f,KAE7B7M,aAAc2F,EAAWxY,QAAQ0f,KAEjCwF,OAAQ1M,EAAWxY,QAAQ0f,KAI3B6E,aAAe/L,EAAWxY,QAAQtnC,MAAM,CACtC6E,EAAGi7C,EAAWxY,QAAQuf,OAAOpqC,WAC7B84B,EAAGuK,EAAWxY,QAAQof,OAAOjqC,WAC7B+4B,EAAGsK,EAAWxY,QAAQof,OAAOjqC,aAK/B5H,SAAU,SAAkB3a,EAE1B0sD,GAGA,IAAI/xC,EAAW3a,EAAM0sD,GAEjB7pD,EAAO,GAEX6iD,EAAOtY,QAAQye,SAASrzC,QAAQmC,GAAU,SAAUmvC,GAClD,GAAiE,OAA5DA,MAAAA,OAAqC,EAASA,EAAM1lD,KAAzD,CAEA,GAAIvB,EAAKinD,EAAM1lD,KACb,MAAM,IAAI2jD,MAAM,wBAA0B+B,EAAM1lD,IAAM,yDAGxDvB,EAAKinD,EAAM1lD,MAAO,OAItB6mC,SAAU2a,EAAWxY,QAAQ6mB,KAE/BxO,EAAA,QAAkBuO,G,gOCvNlB,SAAS1O,EAAQ1tC,GAAkC,OAAO0tC,EAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAU5tC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqB2tC,QAAU3tC,EAAImB,cAAgBwsC,QAAU3tC,IAAQ2tC,OAAO7tC,UAAY,gBAAkBE,GAAQ0tC,EAAQ1tC,GAKzU6tC,EAAA,aAAkB,EAElB,IAAIl4C,EAkBJ,SAAiCqK,EAAKo1C,GAAe,IAAKA,GAAep1C,GAAOA,EAAIuuC,WAAc,OAAOvuC,EAAO,GAAY,OAARA,GAAiC,WAAjB0tC,EAAQ1tC,IAAoC,mBAARA,EAAsB,MAAO,CAAEw1B,QAASx1B,GAAS,IAAIq1C,EAAQC,EAAyBF,GAAc,GAAIC,GAASA,EAAMz9C,IAAIoI,GAAQ,OAAOq1C,EAAMvtD,IAAIkY,GAAQ,IAAIu1C,EAAS,GAAQC,EAAwBhrD,OAAOkV,gBAAkBlV,OAAO+V,yBAA0B,IAAK,IAAI/T,KAAOwT,EAAO,GAAY,YAARxT,GAAqBhC,OAAOsV,UAAU21C,eAAexzC,KAAKjC,EAAKxT,GAAM,CAAE,IAAIkpD,EAAOF,EAAwBhrD,OAAO+V,yBAAyBP,EAAKxT,GAAO,KAAUkpD,IAASA,EAAK5tD,KAAO4tD,EAAKC,KAAQnrD,OAAOkV,eAAe61C,EAAQ/oD,EAAKkpD,GAAgBH,EAAO/oD,GAAOwT,EAAIxT,GAAY+oD,EAAO/f,QAAUx1B,EAASq1C,GAASA,EAAMM,IAAI31C,EAAKu1C,GAAW,OAAOA,EAlBjxBK,CAAwB,EAAQ,qGAExC5H,EAAaD,EAAuB,EAAQ,+GAE5C8H,EAAU9H,EAAuB,EAAQ,sHAEzCI,EAAS,EAAQ,sLAEjBmO,EAAmB,EAAQ,gMAE3BC,EAAmBxO,EAAuB,EAAQ,iMAElDyO,EAAY,CAAC,aAAc,cAAe,OAAQ,UAAW,SAAU,mBAAoB,qBAAsB,iBAAkB,iBAEvI,SAASzO,EAAuB/tC,GAAO,OAAOA,GAAOA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAEvF,SAASs1C,EAAyBF,GAAe,GAAuB,mBAAZW,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQT,EAA2B,SAAkCF,GAAe,OAAOA,EAAca,EAAmBD,IAAsBZ,GAIhU,SAASqH,IAA2Q,OAA9PA,EAAWjyD,OAAOkZ,QAAU,SAAU/b,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAASD,UAAU3N,GAAI,IAAK,IAAIvG,KAAOmU,EAAcnW,OAAOsV,UAAU21C,eAAexzC,KAAKtB,EAAQnU,KAAQ7E,EAAO6E,GAAOmU,EAAOnU,IAAY,OAAO7E,GAAkB80D,EAASj8C,MAAMkC,KAAMhC,WAEhT,SAASg8C,EAAyB/7C,EAAQg8C,GAAY,GAAc,MAAVh8C,EAAgB,MAAO,GAAI,IAAkEnU,EAAKuG,EAAnEpL,EAEzF,SAAuCgZ,EAAQg8C,GAAY,GAAc,MAAVh8C,EAAgB,MAAO,GAAI,IAA2DnU,EAAKuG,EAA5DpL,EAAS,GAAQi1D,EAAapyD,OAAOS,KAAK0V,GAAqB,IAAK5N,EAAI,EAAGA,EAAI6pD,EAAWp1D,OAAQuL,IAAOvG,EAAMowD,EAAW7pD,GAAQ4pD,EAAS3qB,QAAQxlC,IAAQ,IAAa7E,EAAO6E,GAAOmU,EAAOnU,IAAQ,OAAO7E,EAFxMk1D,CAA8Bl8C,EAAQg8C,GAAuB,GAAInyD,OAAO4V,sBAAuB,CAAE,IAAI08C,EAAmBtyD,OAAO4V,sBAAsBO,GAAS,IAAK5N,EAAI,EAAGA,EAAI+pD,EAAiBt1D,OAAQuL,IAAOvG,EAAMswD,EAAiB/pD,GAAQ4pD,EAAS3qB,QAAQxlC,IAAQ,GAAkBhC,OAAOsV,UAAUi9C,qBAAqB96C,KAAKtB,EAAQnU,KAAgB7E,EAAO6E,GAAOmU,EAAOnU,IAAU,OAAO7E,EAIne,SAASsY,EAAQC,EAAQC,GAAkB,IAAIlV,EAAOT,OAAOS,KAAKiV,GAAS,GAAI1V,OAAO4V,sBAAuB,CAAE,IAAIC,EAAU7V,OAAO4V,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQ3V,QAAO,SAAU4V,GAAO,OAAO9V,OAAO+V,yBAAyBL,EAAQI,GAAKf,eAAiBtU,EAAK2B,KAAK4T,MAAMvV,EAAMoV,GAAY,OAAOpV,EAE9U,SAASujD,EAAc7mD,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAAS,MAAQD,UAAU3N,GAAK2N,UAAU3N,GAAK,GAAIA,EAAI,EAAIkN,EAAQzV,OAAOmW,IAAS,GAAIC,SAAQ,SAAUpU,GAAOuT,EAAgBpY,EAAQ6E,EAAKmU,EAAOnU,OAAYhC,OAAOqW,0BAA4BrW,OAAOsW,iBAAiBnZ,EAAQ6C,OAAOqW,0BAA0BF,IAAWV,EAAQzV,OAAOmW,IAASC,SAAQ,SAAUpU,GAAOhC,OAAOkV,eAAe/X,EAAQ6E,EAAKhC,OAAO+V,yBAAyBI,EAAQnU,OAAa,OAAO7E,EAEjf,SAASsX,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAASC,EAAkB1X,EAAQS,GAAS,IAAK,IAAI2K,EAAI,EAAGA,EAAI3K,EAAMZ,OAAQuL,IAAK,CAAE,IAAIuM,EAAalX,EAAM2K,GAAIuM,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMjV,OAAOkV,eAAe/X,EAAQ2X,EAAW9S,IAAK8S,IAM7S,SAAS8B,EAAgBE,EAAGI,GAA+G,OAA1GN,EAAkB5W,OAAO+W,gBAAkB,SAAyBD,EAAGI,GAAsB,OAAjBJ,EAAEG,UAAYC,EAAUJ,GAAaF,EAAgBE,EAAGI,GAErK,SAASY,EAAaC,GAAW,IAAIksC,EAMrC,WAAuC,GAAuB,oBAAZ7sC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFqX,QAAQtZ,UAAU4uC,QAAQzsC,KAAKL,QAAQC,UAAUuX,QAAS,IAAI,iBAAyB,EAAQ,MAAOzmB,GAAK,OAAO,GAN9PgP,GAA6B,OAAO,WAAkC,IAAsCjT,EAAlC8T,EAAQnB,EAAgBkB,GAAkB,GAAIksC,EAA2B,CAAE,IAAIhsC,EAAYpB,EAAgBqB,MAAMvB,YAAazS,EAASkT,QAAQC,UAAUW,EAAO9B,UAAW+B,QAAqB/T,EAAS8T,EAAMhC,MAAMkC,KAAMhC,WAAc,OAAO2B,EAA2BK,KAAMhU,IAE5Z,SAAS2T,EAA2BF,EAAMF,GAAQ,GAAIA,IAA2B,WAAlByrC,EAAQzrC,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI7C,UAAU,4DAA+D,OAAO8C,EAAuBC,GAExR,SAASD,EAAuBC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAI/J,SAASd,EAAgBC,GAAwJ,OAAnJD,EAAkB7W,OAAO+W,eAAiB/W,OAAOgX,eAAiB,SAAyBF,GAAK,OAAOA,EAAEG,WAAajX,OAAOgX,eAAeF,IAAcD,EAAgBC,GAExM,SAASvB,EAAgBC,EAAKxT,EAAK7B,GAAiK,OAApJ6B,KAAOwT,EAAOxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAAE7B,MAAOA,EAAO4U,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBO,EAAIxT,GAAO7B,EAAgBqV,EAG3M,IAAIpZ,EAAO,SAAcoZ,GACvB,OAAOxV,OAAOsV,UAAUkC,SAASC,KAAKjC,IAWxC,SAASg9C,EAERC,EAECC,GAMA,OAAa,MAATD,EAAsB,KAEnB9wC,MAAMC,QAAQ6wC,GAASA,EAAQA,EAAMC,GAiD9C,IAAIC,EAAyC,SAAUl5C,IA1FvD,SAAmBjD,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7B,UAAU,sDAAyD4B,EAASlB,UAAYtV,OAAO0W,OAAOD,GAAcA,EAAWnB,UAAW,CAAEqB,YAAa,CAAExW,MAAOqW,EAAUvB,UAAU,EAAMD,cAAc,KAAWhV,OAAOkV,eAAesB,EAAU,YAAa,CAAEvB,UAAU,IAAcwB,GAAYG,EAAgBJ,EAAUC,GA2FpbF,CAAUo8C,EAA2Bl5C,GAErC,IA/FoB9E,EAAaS,EAAYC,EA+FzCgD,EAASP,EAAa66C,GAE1B,SAASA,IACP,IAAIt3C,EAEJ5G,EAAgByD,KAAMy6C,GAEtB,IAAK,IAAIvO,EAAOluC,UAAUlZ,OAAQqnD,EAAO,IAAI1iC,MAAMyiC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQpuC,UAAUouC,GAazB,OARA/uC,EAAgBmC,EAFhB2D,EAAQhD,EAAOZ,KAAKzB,MAAMqC,EAAQ,CAACH,MAAM4G,OAAOulC,KAED,QAAShpC,EAAMu3C,wBAE9Dr9C,EAAgBmC,EAAuB2D,GAAQ,kBAAkB,SAAU4gC,GAGzE5gC,EAAMzd,MAAMkgD,eAAe7B,EAAQ+H,EAAcA,EAAc,GAAI3oC,EAAMzd,MAAMi1D,SAAU,GAAIt9C,EAAgB,GAAI8F,EAAMvX,MAAM4uD,WAAYzW,QAGpI5gC,EA4IT,OAhQoB1G,EAuHPg+C,EAvHgCt9C,EAsOzC,CAAC,CACHrT,IAAK,2BACL7B,MAAO,SAAkC4f,EAEvCC,GAKA,KAAK,EAAIqrC,EAAQrgB,SAASjrB,EAAU8yC,QAAS7yC,EAAU6yC,SAAU,CAE/D,IAAIH,EAAa1yC,EAAU0yC,WACvBI,EAAQ9yC,EAAU3c,KAItB,MAAO,CACL44C,QAFc,EAAI6V,EAAiBiB,gCAAgChzC,EAAU8yC,QAAS9yC,EAAU3gB,YAAaszD,EAAYA,EAAYI,EAAO/yC,EAAUytC,aAGtJqF,QAAS9yC,EAAU8yC,SAIvB,OAAO,SA5PsBz9C,EAuHO,CAAC,CACvCpT,IAAK,uBACL7B,MAAO,WAGL,IAAImY,EAAcJ,KAAKta,MACnBiU,EAAQyG,EAAYzG,MACpBzS,EAAckZ,EAAYlZ,YAC1ByzD,EAAUv6C,EAAYu6C,QACtBxvD,EAAOiV,EAAYjV,KACnBqvD,GAAa,EAAIZ,EAAiBkB,wBAAwB5zD,EAAayS,GACvEohD,GAAQ,EAAInB,EAAiBoB,uBAAuBR,EAAYrvD,GAEhEmqD,GAA6C,IAA/Bt1C,KAAKta,MAAM4zD,gBAA4B,KAAOt5C,KAAKta,MAAM4vD,YAI3E,MAAO,CACLvR,QAFkB,EAAI6V,EAAiBiB,gCAAgCF,EAASzzD,EAAaszD,EAAYA,EAAYO,EAAOzF,GAG5HkF,WAAYA,EACZrvD,KAAM4vD,KAGT,CACDjxD,IAAK,qBACL7B,MAAO,SAA4BmkB,GAI7BpM,KAAKta,MAAMiU,OAASyS,EAAUzS,OAASqG,KAAKta,MAAM80D,aAAepuC,EAAUouC,aAAe,EAAIrH,EAAQrgB,SAAS9yB,KAAKta,MAAMwB,YAAaklB,EAAUllB,eAAiB,EAAIisD,EAAQrgB,SAAS9yB,KAAKta,MAAMyF,KAAMihB,EAAUjhB,OACpN6U,KAAKi7C,cAAc7uC,KAItB,CACDtiB,IAAK,gBACL7B,MAKA,SAAuBmkB,GAGrB,IAAI/H,EAAerE,KAAKta,MACpBwB,EAAcmd,EAAand,YAC3BiE,EAAOkZ,EAAalZ,KACpBwvD,EAAUt2C,EAAas2C,QACvBrF,EAAcjxC,EAAaixC,YAC3B4F,EAAgBl7C,KAAKta,MAAM80D,aAAc,EAAIZ,EAAiBkB,wBAAwB96C,KAAKta,MAAMwB,YAAa8Y,KAAKta,MAAMiU,OACzHwhD,EAAiBn7C,KAAKpU,MAAM4uD,WAC5BY,GAEF,EAAIxB,EAAiBoB,uBAAuBE,EAAe/vD,GAEzDkwD,EAAavP,EAAc,GAAI6O,GAGnC,GAAIQ,IAAmBD,GAAiB9uC,EAAUllB,cAAgBA,GAAeklB,EAAUjhB,OAASA,EAAM,CAElGgwD,KAAkBE,IAAaA,EAAWF,IAAkB,EAAI1P,EAAO6P,aAAat7C,KAAKpU,MAAMm4C,SAErG,IAAIA,GAAS,EAAI6V,EAAiBiB,gCAAgCQ,EAAYn0D,EAAag0D,EAAeC,EAAgBC,EAAS9F,GAEnIvR,GAAS,EAAI0H,EAAO4J,+BAA+BtR,EAAQ/jC,KAAKta,MAAM2a,SAAU+6C,EAAS9F,EAAat1C,KAAKta,MAAM6vD,cAEjH8F,EAAWH,GAAiBnX,EAE5B/jC,KAAKta,MAAMkgD,eAAe7B,EAAQsX,GAClCr7C,KAAKta,MAAM61D,mBAAmBL,EAAeE,GAC7Cp7C,KAAK9M,SAAS,CACZsnD,WAAYU,EACZnX,OAAQA,EACR54C,KAAMiwD,IAIV,IAAIr6B,EAASu5B,EAAoBt6C,KAAKta,MAAMq7B,OAAQm6B,GAChD9V,EAAmBkV,EAAoBt6C,KAAKta,MAAM0/C,iBAAkB8V,GAExEl7C,KAAKta,MAAMu1D,cAAcj7C,KAAKta,MAAMiU,MAAOonB,EAAQq6B,EAAShW,KAE7D,CACDt7C,IAAK,SACL7B,MAAO,WAIL,IAAIwd,EAAezF,KAAKta,MAKpBq7B,GAJatb,EAAa+0C,WACZ/0C,EAAave,YACpBue,EAAata,KACVsa,EAAak1C,QACdl1C,EAAasb,QACtBqkB,EAAmB3/B,EAAa2/B,iBAIhCoW,GAHqB/1C,EAAa81C,mBACjB91C,EAAamgC,eACdngC,EAAaw1C,cACrBjB,EAAyBv0C,EAAcq0C,IAInD,OAAoB7mD,EAAMw8C,cAAcoK,EAAiB/mB,QAASinB,EAAS,GAAIyB,EAAO,CAEpFz6B,OAAQu5B,EAAoBv5B,EAAQ/gB,KAAKpU,MAAM4uD,YAC/CpV,iBAAkBkV,EAAoBlV,EAAkBplC,KAAKpU,MAAM4uD,YACnE5U,eAAgB5lC,KAAK4lC,eACrB7B,OAAQ/jC,KAAKpU,MAAMm4C,OACnB54C,KAAM6U,KAAKpU,MAAMT,aAnOqDwR,EAAkBF,EAAYW,UAAWF,GAAiBC,GAAaR,EAAkBF,EAAaU,GAAcrV,OAAOkV,eAAeP,EAAa,YAAa,CAAEM,UAAU,IAgQrP09C,EApKoC,CAqK3CxnD,EAAMg/C,WAER9G,EAAA,QAAkBsP,EAElBp9C,EAAgBo9C,EAA2B,YAAa,CAMtDD,WAAYlP,EAAWxY,QAAQuf,OAE/BnrD,YAAaokD,EAAWxY,QAAQt1B,OAChC+3C,aAAcjK,EAAWxY,QAAQ2f,KAEjCtnD,KAAMmgD,EAAWxY,QAAQt1B,OAKzBujB,OAAQuqB,EAAWxY,QAAQ2mB,UAAU,CAACnO,EAAWxY,QAAQqf,MAAO7G,EAAWxY,QAAQt1B,SAKnF4nC,iBAAkBkG,EAAWxY,QAAQ2mB,UAAU,CAACnO,EAAWxY,QAAQqf,MAAO7G,EAAWxY,QAAQt1B,SAG7Fm9C,QAAS,SAAiBj1D,EAExB0sD,GAGA,GAA8B,oBAA1BluD,EAAKwB,EAAM0sD,IACb,MAAM,IAAI3E,MAAM,gDAAkDvpD,EAAKwB,EAAM0sD,KAG/EtqD,OAAOS,KAAK7C,EAAM0sD,IAAWl0C,SAAQ,SAAUpU,GAC7C,KAAMA,KAAOpE,EAAMwB,aACjB,MAAM,IAAIumD,MAAM,8DAGlB,EAAIhC,EAAOgQ,gBAAgB/1D,EAAMi1D,QAAQ7wD,GAAM,WAAaA,OAKhE6P,MAAO2xC,EAAWxY,QAAQof,OAAOjqC,WAKjCszC,mBAAoBjQ,EAAWxY,QAAQ0f,KAGvC5M,eAAgB0F,EAAWxY,QAAQ0f,KAEnCyI,cAAe3P,EAAWxY,QAAQ0f,OAGpCn1C,EAAgBo9C,EAA2B,eAAgB,CACzDvzD,YAAa,CACX2G,GAAI,KACJwc,GAAI,IACJsG,GAAI,IACJ+c,GAAI,IACJC,IAAK,GAEPxiC,KAAM,CACJ0C,GAAI,GACJwc,GAAI,GACJsG,GAAI,EACJ+c,GAAI,EACJC,IAAK,GAEPyX,iBAAkB,CAChBv3C,GAAI,KACJwc,GAAI,KACJsG,GAAI,KACJ+c,GAAI,KACJC,IAAK,MAEPgtB,QAAS,GACT55B,OAAQ,CAAC,GAAI,IACbw0B,cAAc,EACdgG,mBAAoB9P,EAAOwN,KAC3BrT,eAAgB6F,EAAOwN,KACvBgC,cAAexP,EAAOwN,Q,mNC5WxB,SAAS/K,EAAiBN,GAKxB,IAAI7sB,EAAS6sB,EAAe7sB,OACxBqkB,EAAmBwI,EAAexI,iBAClCuI,EAAiBC,EAAeD,eAChCxiD,EAAOyiD,EAAeziD,KAC1B,OAAQwiD,EAAiB5sB,EAAO,IAAM51B,EAAO,GAA2B,EAAtBi6C,EAAiB,IAAUj6C,EAO/E,SAAS4iD,EAAiB2N,EAExBC,EAEAC,GAMA,OAAK/E,OAAOC,SAAS4E,GACdz4C,KAAK44C,MAAMF,EAAeD,EAAYz4C,KAAKF,IAAI,EAAG24C,EAAY,GAAKE,GADlCF,EAmJ1C,SAAS1N,EAAM8N,EAEbC,EAEAC,GAKA,OAAO/4C,KAAKF,IAAIE,KAAKH,IAAIg5C,EAAKE,GAAaD,GA3M7Cj0D,OAAOkV,eAAemuC,EAAS,aAAc,CAC3CljD,OAAO,IAETkjD,EAAQ+C,iBAAmBA,EAC3B/C,EAAQyD,qBA0DR,SAA8BhB,EAE5Bz2B,EAEA2pB,EAEAC,EAEAC,EAEAp1C,GAKA,IAAIm1B,EAAS6sB,EAAe7sB,OACxBqkB,EAAmBwI,EAAexI,iBAClCE,EAAYsI,EAAetI,UAC3B2I,EAAWC,EAAiBN,GAC5BqO,EAAM,GAENrwD,GAASA,EAAMygD,UACjB4P,EAAItiD,MAAQsJ,KAAK44C,MAAMjwD,EAAMygD,SAAS1yC,OACtCsiD,EAAIn7C,OAASmC,KAAK44C,MAAMjwD,EAAMygD,SAASvrC,UAGvCm7C,EAAItiD,MAAQo0C,EAAiBhN,EAAGkN,EAAUltB,EAAO,IACjDk7B,EAAIn7C,OAASitC,EAAiB/M,EAAGsE,EAAWvkB,EAAO,KAIjDn1B,GAASA,EAAM0gD,UACjB2P,EAAIv0C,IAAMzE,KAAK44C,MAAMjwD,EAAM0gD,SAAS5kC,KACpCu0C,EAAI30C,KAAOrE,KAAK44C,MAAMjwD,EAAM0gD,SAAShlC,QAGrC20C,EAAIv0C,IAAMzE,KAAK44C,OAAOvW,EAAYvkB,EAAO,IAAM+f,EAAIsE,EAAiB,IACpE6W,EAAI30C,KAAOrE,KAAK44C,OAAO5N,EAAWltB,EAAO,IAAM5J,EAAIiuB,EAAiB,KAGtE,OAAO6W,GAjGT9Q,EAAQ4C,iBAAmBA,EAC3B5C,EAAQkG,OA2JR,SAAgBzD,EAEdj0C,EAEAmH,EAEAqW,EAEA2pB,GAKA,IAAI/f,EAAS6sB,EAAe7sB,OACxBmuB,EAAUtB,EAAesB,QACzB/jD,EAAOyiD,EAAeziD,KACtBm6C,EAAYsI,EAAetI,UAC3B2I,EAAWC,EAAiBN,GAI5B7M,EAAI99B,KAAK44C,OAAOliD,EAAQonB,EAAO,KAAOktB,EAAWltB,EAAO,KACxDigB,EAAI/9B,KAAK44C,OAAO/6C,EAASigB,EAAO,KAAOukB,EAAYvkB,EAAO,KAI9D,OAFAggB,EAAIiN,EAAMjN,EAAG,EAAG51C,EAAOgsB,GACvB6pB,EAAIgN,EAAMhN,EAAG,EAAGkO,EAAUpO,GACnB,CACLC,EAAGA,EACHC,IAtLJmK,EAAQgC,OA4GR,SAAgBS,EAEdlmC,EAEAJ,EAEAy5B,EAEAC,GAKA,IAAIjgB,EAAS6sB,EAAe7sB,OACxB51B,EAAOyiD,EAAeziD,KACtBm6C,EAAYsI,EAAetI,UAC3B4J,EAAUtB,EAAesB,QACzBjB,EAAWC,EAAiBN,GAQ5Bz2B,EAAIlU,KAAK44C,OAAOv0C,EAAOyZ,EAAO,KAAOktB,EAAWltB,EAAO,KACvD+f,EAAI79B,KAAK44C,OAAOn0C,EAAMqZ,EAAO,KAAOukB,EAAYvkB,EAAO,KAI3D,OAFA5J,EAAI62B,EAAM72B,EAAG,EAAGhsB,EAAO41C,GACvBD,EAAIkN,EAAMlN,EAAG,EAAGoO,EAAUlO,GACnB,CACL7pB,EAAGA,EACH2pB,EAAGA,IA3IPqK,EAAQ6C,MAAQA,G,+NCRhB,SAAShD,EAAQ1tC,GAAkC,OAAO0tC,EAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAU5tC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqB2tC,QAAU3tC,EAAImB,cAAgBwsC,QAAU3tC,IAAQ2tC,OAAO7tC,UAAY,gBAAkBE,GAAQ0tC,EAAQ1tC,GAKzU6tC,EAAA,QAoDA,SAEC+Q,GAKC,IAAIC,EAEJ,OAAOA,EAAsB,SAAU56C,IAjCzC,SAAmBjD,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7B,UAAU,sDAAyD4B,EAASlB,UAAYtV,OAAO0W,OAAOD,GAAcA,EAAWnB,UAAW,CAAEqB,YAAa,CAAExW,MAAOqW,EAAUvB,UAAU,EAAMD,cAAc,KAAWhV,OAAOkV,eAAesB,EAAU,YAAa,CAAEvB,UAAU,IAAcwB,GAAYG,EAAgBJ,EAAUC,GAkClbF,CAAU+9C,EAAe76C,GAEzB,IAhCkB1B,EAAeksC,EAgC7B5rC,GAhCcN,EAgCQu8C,EAhCOrQ,EAMrC,WAAuC,GAAuB,oBAAZ7sC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFqX,QAAQtZ,UAAU4uC,QAAQzsC,KAAKL,QAAQC,UAAUuX,QAAS,IAAI,iBAAyB,EAAQ,MAAOzmB,GAAK,OAAO,GAN9PgP,GAAoC,WAAkC,IAAsCjT,EAAlC8T,EAAQnB,EAAgBkB,GAAkB,GAAIksC,EAA2B,CAAE,IAAIhsC,EAAYpB,EAAgBqB,MAAMvB,YAAazS,EAASkT,QAAQC,UAAUW,EAAO9B,UAAW+B,QAAqB/T,EAAS8T,EAAMhC,MAAMkC,KAAMhC,WAAc,OAAO2B,EAA2BK,KAAMhU,KAkCxZ,SAASowD,IACP,IAAIj5C,EAEJ5G,EAAgByD,KAAMo8C,GAEtB,IAAK,IAAIlQ,EAAOluC,UAAUlZ,OAAQqnD,EAAO,IAAI1iC,MAAMyiC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQpuC,UAAUouC,GA0BzB,OArBA/uC,EAAgBmC,EAFhB2D,EAAQhD,EAAOZ,KAAKzB,MAAMqC,EAAQ,CAACH,MAAM4G,OAAOulC,KAED,QAAS,CACtDxyC,MAAO,OAGT0D,EAAgBmC,EAAuB2D,GAAQ,aAA2BlQ,EAAMmV,aAEhF/K,EAAgBmC,EAAuB2D,GAAQ,WAAW,GAE1D9F,EAAgBmC,EAAuB2D,GAAQ,kBAAkB,WAC/D,GAAKA,EAAMqyC,QAAX,CACA,IAAI5wC,EAAOzB,EAAM4rC,WAAW35C,QAIxBwP,aAAgBy3C,aAAez3C,EAAK03C,aACtCn5C,EAAMjQ,SAAS,CACbyG,MAAOiL,EAAK03C,kBAKXn5C,EAyCT,OAjHJ,SAAsB1G,EAAaS,EAAYC,GAAmBD,GAAYP,EAAkBF,EAAYW,UAAWF,GAAiBC,GAAaR,EAAkBF,EAAaU,GAAcrV,OAAOkV,eAAeP,EAAa,YAAa,CAAEM,UAAU,IA2E1PE,CAAam/C,EAAe,CAAC,CAC3BtyD,IAAK,oBACL7B,MAAO,WACL+X,KAAKw1C,SAAU,EACf/gD,OAAOC,iBAAiB,SAAUsL,KAAKu8C,gBAIvCv8C,KAAKu8C,mBAEN,CACDzyD,IAAK,uBACL7B,MAAO,WACL+X,KAAKw1C,SAAU,EACf/gD,OAAOE,oBAAoB,SAAUqL,KAAKu8C,kBAE3C,CACDzyD,IAAK,SACL7B,MAAO,WACL,IAAImY,EAAcJ,KAAKta,MACnB82D,EAAqBp8C,EAAYo8C,mBACjClf,EAxGZ,SAAkCr/B,EAAQg8C,GAAY,GAAc,MAAVh8C,EAAgB,MAAO,GAAI,IAAkEnU,EAAKuG,EAAnEpL,EAEzF,SAAuCgZ,EAAQg8C,GAAY,GAAc,MAAVh8C,EAAgB,MAAO,GAAI,IAA2DnU,EAAKuG,EAA5DpL,EAAS,GAAQi1D,EAAapyD,OAAOS,KAAK0V,GAAqB,IAAK5N,EAAI,EAAGA,EAAI6pD,EAAWp1D,OAAQuL,IAAOvG,EAAMowD,EAAW7pD,GAAQ4pD,EAAS3qB,QAAQxlC,IAAQ,IAAa7E,EAAO6E,GAAOmU,EAAOnU,IAAQ,OAAO7E,EAFxMk1D,CAA8Bl8C,EAAQg8C,GAAuB,GAAInyD,OAAO4V,sBAAuB,CAAE,IAAI08C,EAAmBtyD,OAAO4V,sBAAsBO,GAAS,IAAK5N,EAAI,EAAGA,EAAI+pD,EAAiBt1D,OAAQuL,IAAOvG,EAAMswD,EAAiB/pD,GAAQ4pD,EAAS3qB,QAAQxlC,IAAQ,GAAkBhC,OAAOsV,UAAUi9C,qBAAqB96C,KAAKtB,EAAQnU,KAAgB7E,EAAO6E,GAAOmU,EAAOnU,IAAU,OAAO7E,EAwGhd+0D,CAAyB55C,EAAa05C,GAEjD,OAAI0C,IAAuBx8C,KAAKw1C,QACVviD,EAAMw8C,cAAc,MAAO,CAC7CxpD,WAAW,EAAI2lD,EAAM9Y,SAAS9yB,KAAKta,MAAMO,UAlF/B,qBAmFVua,MAAOR,KAAKta,MAAM8a,MAElBS,IAAKjB,KAAK+uC,aAIM97C,EAAMw8C,cAAcyM,EAAmBnC,EAAS,CAClEppB,SAAU3wB,KAAK+uC,YACdzR,EAAMt9B,KAAKpU,YAIXwwD,EA9EoB,CA+E3BnpD,EAAMg/C,WAAY50C,EAAgB8+C,EAAQ,eAAgB,CAC1DK,oBAAoB,IAClBn/C,EAAgB8+C,EAAQ,YAAa,CAGvCK,mBAAoBlR,EAAWxY,QAAQ2f,OACrC0J,GAhJN,IAAIlpD,EAYJ,SAAiCqK,EAAKo1C,GAAe,IAAKA,GAAep1C,GAAOA,EAAIuuC,WAAc,OAAOvuC,EAAO,GAAY,OAARA,GAAiC,WAAjB0tC,EAAQ1tC,IAAoC,mBAARA,EAAsB,MAAO,CAAEw1B,QAASx1B,GAAS,IAAIq1C,EAAQC,EAAyBF,GAAc,GAAIC,GAASA,EAAMz9C,IAAIoI,GAAQ,OAAOq1C,EAAMvtD,IAAIkY,GAAQ,IAAIu1C,EAAS,GAAQC,EAAwBhrD,OAAOkV,gBAAkBlV,OAAO+V,yBAA0B,IAAK,IAAI/T,KAAOwT,EAAO,GAAY,YAARxT,GAAqBhC,OAAOsV,UAAU21C,eAAexzC,KAAKjC,EAAKxT,GAAM,CAAE,IAAIkpD,EAAOF,EAAwBhrD,OAAO+V,yBAAyBP,EAAKxT,GAAO,KAAUkpD,IAASA,EAAK5tD,KAAO4tD,EAAKC,KAAQnrD,OAAOkV,eAAe61C,EAAQ/oD,EAAKkpD,GAAgBH,EAAO/oD,GAAOwT,EAAIxT,GAAY+oD,EAAO/f,QAAUx1B,EAASq1C,GAASA,EAAMM,IAAI31C,EAAKu1C,GAAW,OAAOA,EAZjxBK,CAAwB,EAAQ,qGAExC5H,EAAaD,EAAuB,EAAQ,+GAE5CO,EAAQP,EAAuB,EAAQ,wGAEvCyO,EAAY,CAAC,sBAEjB,SAASzO,EAAuB/tC,GAAO,OAAOA,GAAOA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAEvF,SAASs1C,EAAyBF,GAAe,GAAuB,mBAAZW,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQT,EAA2B,SAAkCF,GAAe,OAAOA,EAAca,EAAmBD,IAAsBZ,GAIhU,SAASqH,IAA2Q,OAA9PA,EAAWjyD,OAAOkZ,QAAU,SAAU/b,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAASD,UAAU3N,GAAI,IAAK,IAAIvG,KAAOmU,EAAcnW,OAAOsV,UAAU21C,eAAexzC,KAAKtB,EAAQnU,KAAQ7E,EAAO6E,GAAOmU,EAAOnU,IAAY,OAAO7E,GAAkB80D,EAASj8C,MAAMkC,KAAMhC,WAMhT,SAASzB,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAASC,EAAkB1X,EAAQS,GAAS,IAAK,IAAI2K,EAAI,EAAGA,EAAI3K,EAAMZ,OAAQuL,IAAK,CAAE,IAAIuM,EAAalX,EAAM2K,GAAIuM,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMjV,OAAOkV,eAAe/X,EAAQ2X,EAAW9S,IAAK8S,IAM7S,SAAS8B,EAAgBE,EAAGI,GAA+G,OAA1GN,EAAkB5W,OAAO+W,gBAAkB,SAAyBD,EAAGI,GAAsB,OAAjBJ,EAAEG,UAAYC,EAAUJ,GAAaF,EAAgBE,EAAGI,GAIrK,SAASW,EAA2BF,EAAMF,GAAQ,GAAIA,IAA2B,WAAlByrC,EAAQzrC,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI7C,UAAU,4DAA+D,OAAO8C,EAAuBC,GAExR,SAASD,EAAuBC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAI/J,SAASd,EAAgBC,GAAwJ,OAAnJD,EAAkB7W,OAAO+W,eAAiB/W,OAAOgX,eAAiB,SAAyBF,GAAK,OAAOA,EAAEG,WAAajX,OAAOgX,eAAeF,IAAcD,EAAgBC,GAExM,SAASvB,EAAgBC,EAAKxT,EAAK7B,GAAiK,OAApJ6B,KAAOwT,EAAOxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAAE7B,MAAOA,EAAO4U,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBO,EAAIxT,GAAO7B,EAAgBqV,I,qMChD3Mm/C,EAAOtR,QAAU,SAA2BzrB,EAAGC,EAAG+8B,GAChD,OAAIh9B,IAAMC,GACHD,EAAEz5B,YAAc05B,EAAE15B,WAAay2D,EAAYh9B,EAAElf,MAAOmf,EAAEnf,QAAUkf,EAAE/lB,QAAUgmB,EAAEhmB,OAAS+lB,EAAE24B,WAAa14B,EAAE04B,UAAY34B,EAAEv0B,OAASw0B,EAAEx0B,MAAQu0B,EAAE+4B,kBAAoB94B,EAAE84B,iBAAmB/4B,EAAE8lB,kBAAoB7lB,EAAE6lB,iBAAmBkX,EAAYh9B,EAAE45B,gBAAiB35B,EAAE25B,kBAAoBoD,EAAYh9B,EAAE41B,YAAa31B,EAAE21B,cAAgBoH,EAAYh9B,EAAEqkB,OAAQpkB,EAAEokB,SAAW2Y,EAAYh9B,EAAEqB,OAAQpB,EAAEoB,SAAW27B,EAAYh9B,EAAE0lB,iBAAkBzlB,EAAEylB,mBAAqB1lB,EAAE4lB,YAAc3lB,EAAE2lB,WAAa5lB,EAAEwvB,UAAYvvB,EAAEuvB,SAAWxvB,EAAEguB,YAAc/tB,EAAE+tB,WAAahuB,EAAE8kB,cAAgB7kB,EAAE6kB,aAAe9kB,EAAE6kB,cAAgB5kB,EAAE4kB,aAAe7kB,EAAE61B,eAAiB51B,EAAE41B,cAAgB71B,EAAEs2B,mBAAqBr2B,EAAEq2B,kBAAoBt2B,EAAE2lB,mBAAqB1lB,EAAE0lB,kBAAoB3lB,EAAE+sB,iBAAmB9sB,EAAE8sB,gBAAkB/sB,EAAEm5B,cAAgBl5B,EAAEk5B,aAAe6D,EAAYh9B,EAAE2wB,cAAe1wB,EAAE0wB,gBAAkBqM,EAAYh9B,EAAE4wB,aAAc3wB,EAAE2wB,eAAiB5wB,EAAEkmB,iBAAmBjmB,EAAEimB,gBAAkBlmB,EAAE8sB,cAAgB7sB,EAAE6sB,aAAe9sB,EAAE8tB,SAAW7tB,EAAE6tB,QAAU9tB,EAAE+lB,aAAe9lB,EAAE8lB,YAAc/lB,EAAEoxB,gBAAkBnxB,EAAEmxB,eAAiBpxB,EAAEgmB,WAAa/lB,EAAE+lB,UAAYhmB,EAAEimB,eAAiBhmB,EAAEgmB,cAAgBjmB,EAAEs4B,SAAWr4B,EAAEq4B,QAAU0E,EAAYh9B,EAAE23B,aAAc13B,EAAE03B,eAAiBqF,EAAYh9B,EAAEiR,SAAUhR,EAAEgR,Y,sNCDluC7oC,OAAOkV,eAAemuC,EAAS,aAAc,CAC3CljD,OAAO,IAETkjD,EAAQ0P,+BAoER,SAAwCF,EAEtCzzD,EAEAszD,EAEAW,EAEAhwD,EAEAmqD,GAMA,GAAIqF,EAAQH,GAAa,OAAO,EAAI/O,EAAO6P,aAAaX,EAAQH,IAMhE,IAJA,IAAIzW,EAAS4W,EAAQQ,GACjBwB,EAAoBC,EAAgB11D,GACpC21D,EAAmBF,EAAkBxwB,MAAMwwB,EAAkBrtB,QAAQkrB,IAEhEnqD,EAAI,EAAGwkD,EAAMgI,EAAiB/3D,OAAQuL,EAAIwkD,EAAKxkD,IAAK,CAC3D,IAAIsvB,EAAIk9B,EAAiBxsD,GAEzB,GAAIsqD,EAAQh7B,GAAI,CACdokB,EAAS4W,EAAQh7B,GACjB,OAMJ,OAFAokB,GAAS,EAAI0H,EAAO6P,aAAavX,GAAU,KAEpC,EAAI0H,EAAOyK,UAAS,EAAIzK,EAAOqR,eAAe/Y,EAAQ,CAC3D54C,KAAMA,IACJmqD,EAAanqD,IAtGnBggD,EAAQ2P,uBAaR,SAAgC5zD,EAE9ByS,GAQA,IAHA,IAAIojD,EAASH,EAAgB11D,GACzB81D,EAAWD,EAAO,GAEb1sD,EAAI,EAAGwkD,EAAMkI,EAAOj4D,OAAQuL,EAAIwkD,EAAKxkD,IAAK,CACjD,IAAI4sD,EAAiBF,EAAO1sD,GACxBsJ,EAAQzS,EAAY+1D,KAAiBD,EAAWC,GAGtD,OAAOD,GA3BT7R,EAAQ6P,sBAqCR,SAA+BR,EAE7BrvD,GAKA,IAAKA,EAAKqvD,GACR,MAAM,IAAI/M,MAAM,0DAA4D+M,EAAa,gBAG3F,OAAOrvD,EAAKqvD,IA/CdrP,EAAQyR,gBAAkBA,EAE1B,IAAInR,EAAS,EAAQ,sLA6GrB,SAASmR,EAAgB11D,GAQvB,OADEY,OAAOS,KAAKrB,GACFmP,MAAK,SAAUqpB,EAAGC,GAC5B,OAAOz4B,EAAYw4B,GAAKx4B,EAAYy4B,Q,4MC9HxC73B,OAAOkV,eAAemuC,EAAS,aAAc,CAC3CljD,OAAO,IAETkjD,EAAQ3jC,OAASA,EACjB2jC,EAAQgN,cAwJR,SAAuBz4B,EAErBC,GAKA,OAAO,EAAIwzB,EAAQrgB,SAASsY,EAAOtY,QAAQye,SAAS3nD,IAAI81B,GAAG,SAAU5Y,GACnE,OAAOA,MAAAA,OAA6B,EAASA,EAAEhd,OAC7CshD,EAAOtY,QAAQye,SAAS3nD,IAAI+1B,GAAG,SAAU7Y,GAC3C,OAAOA,MAAAA,OAA6B,EAASA,EAAEhd,SAjKnDqhD,EAAQmQ,YAAcA,EACtBnQ,EAAQ4K,gBAAkBA,EAC1B5K,EAAQ+R,SAAWA,EACnB/R,EAAQ+K,QAAUA,EAClB/K,EAAQgS,YAAcA,EACtBhS,EAAQmK,YAm0BR,SAAqB5vD,GAKnB,IAAI2oD,EAAQ3oD,GAAS,GACjB4zD,EAAkBjL,EAAMiL,gBACxBhE,EAAcjH,EAAMiH,YAExB,OAA2B,IAApBgE,EAA4B,KAAOhE,GA30B5CnK,EAAQ2R,cAAgBA,EACxB3R,EAAQ0D,kBAgLR,SAA2BnvB,EAEzBC,GAKA,OAAOD,EAAEpY,OAASqY,EAAErY,MAAQoY,EAAEhY,MAAQiY,EAAEjY,KAAOgY,EAAE/lB,QAAUgmB,EAAEhmB,OAAS+lB,EAAE5e,SAAW6e,EAAE7e,QAtLvFqqC,EAAQiN,uBAAoB,EAC5BjN,EAAQsL,iBAAmBA,EAC3BtL,EAAQiS,kBAAoBA,EAC5BjS,EAAQ2K,cAAgBA,EACxB3K,EAAQkS,WAAaA,EACrBlS,EAAQmS,aAAeA,EACvBnS,EAAQ8K,YAAcA,EACtB9K,EAAQoS,6BAA+BA,EACvCpS,EAAQ8N,UAAO,EACf9N,EAAQoE,KA+lBR,SAAcuM,GAKZ,OAAa,IAANA,EAAY,KAnmBrB3Q,EAAQmE,WA2nBR,SAAoBjC,GAGlB,IAAI3lC,EAAM2lC,EAAM3lC,IACZJ,EAAO+lC,EAAM/lC,KACb3N,EAAQ0zC,EAAM1zC,MACdmH,EAASusC,EAAMvsC,OACnB,MAAO,CACL4G,IAAK,GAAGd,OAAOc,EAAK,MACpBJ,KAAM,GAAGV,OAAOU,EAAM,MACtB3N,MAAO,GAAGiN,OAAOjN,EAAO,MACxBmH,OAAQ,GAAG8F,OAAO9F,EAAQ,MAC1BF,SAAU,aAtoBduqC,EAAQkE,aAqmBR,SAAsB9C,GAGpB,IAAI7kC,EAAM6kC,EAAK7kC,IACXJ,EAAOilC,EAAKjlC,KACZ3N,EAAQ4yC,EAAK5yC,MACbmH,EAASyrC,EAAKzrC,OAEd08C,EAAY,aAAa52C,OAAOU,EAAM,OAAOV,OAAOc,EAAK,OAC7D,MAAO,CACLkW,UAAW4/B,EACXC,gBAAiBD,EACjBE,aAAcF,EACdG,YAAaH,EACbI,WAAYJ,EACZ7jD,MAAO,GAAGiN,OAAOjN,EAAO,MACxBmH,OAAQ,GAAG8F,OAAO9F,EAAQ,MAC1BF,SAAU,aArnBduqC,EAAQ0S,gBAAkBA,EAC1B1S,EAAQ2S,wBAA0BA,EAClC3S,EAAQ4S,wBAA0BA,EAClC5S,EAAQkK,8BAgtBR,SAAuC2I,EAErC39C,EAEAlV,EAEAmqD,EAEAC,GAKAyI,EAAgBA,GAAiB,GAEjC,IAAIja,EAEF,GAEFqH,EAAOtY,QAAQye,SAASrzC,QAAQmC,GAAU,SAAUmvC,GAIlD,GAAiE,OAA5DA,MAAAA,OAAqC,EAASA,EAAM1lD,KAAzD,CAEA,IAAIm0D,EAASnI,EAAckI,EAAelzB,OAAO0kB,EAAM1lD,MAEvD,GAAIm0D,EACFla,EAAO75C,KAAK6rD,EAAgBkI,QACvB,CACD,EAIJ,IAAIC,EAAI1O,EAAM9pD,MAAM,cAAgB8pD,EAAM9pD,MAAMy4D,MAE5CD,EAMFna,EAAO75C,KAAK6rD,EAAgBjK,EAAcA,EAAc,GAAIoS,GAAI,GAAI,CAClE7tD,EAAGm/C,EAAM1lD,QAKXi6C,EAAO75C,KAAK6rD,EAAgB,CAC1BhV,EAAG,EACHC,EAAG,EACH7pB,EAAG,EACH2pB,EAAGt5B,EAAOu8B,GACV1zC,EAAGy6B,OAAO0kB,EAAM1lD,aAOxB,IAAIs0D,EAAkBtB,EAAc/Y,EAAQ,CAC1C54C,KAAMA,IAER,OAAOoqD,EAAe6I,EAAkBlI,EAAQkI,EAAiB9I,EAAanqD,IA9wBhFggD,EAAQsQ,eAAiBA,EACzBtQ,EAAQmL,eA6ER,SAAwBvS,EAEtBsa,EAEAC,GAKA,IAAIx4D,EAAOgwD,EAAc/R,EAAQsa,GACjC,OAAKv4D,GACLA,EAAOw4D,EAAGvI,EAAgBjwD,IAInB,CADPi+C,EAASuZ,EAAavZ,EAAQj+C,GACdA,IALE,CAACi+C,EAAQ,OArF7B,IAAIoP,EAAU9H,EAAuB,EAAQ,sHAEzCD,EAASC,EAAuB,EAAQ,qGAE5C,SAASA,EAAuB/tC,GAAO,OAAOA,GAAOA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAEvF,SAASC,EAAQC,EAAQC,GAAkB,IAAIlV,EAAOT,OAAOS,KAAKiV,GAAS,GAAI1V,OAAO4V,sBAAuB,CAAE,IAAIC,EAAU7V,OAAO4V,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQ3V,QAAO,SAAU4V,GAAO,OAAO9V,OAAO+V,yBAAyBL,EAAQI,GAAKf,eAAiBtU,EAAK2B,KAAK4T,MAAMvV,EAAMoV,GAAY,OAAOpV,EAE9U,SAASujD,EAAc7mD,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAAS,MAAQD,UAAU3N,GAAK2N,UAAU3N,GAAK,GAAIA,EAAI,EAAIkN,EAAQzV,OAAOmW,IAAS,GAAIC,SAAQ,SAAUpU,GAAOuT,EAAgBpY,EAAQ6E,EAAKmU,EAAOnU,OAAYhC,OAAOqW,0BAA4BrW,OAAOsW,iBAAiBnZ,EAAQ6C,OAAOqW,0BAA0BF,IAAWV,EAAQzV,OAAOmW,IAASC,SAAQ,SAAUpU,GAAOhC,OAAOkV,eAAe/X,EAAQ6E,EAAKhC,OAAO+V,yBAAyBI,EAAQnU,OAAa,OAAO7E,EAEjf,SAASoY,EAAgBC,EAAKxT,EAAK7B,GAAiK,OAApJ6B,KAAOwT,EAAOxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAAE7B,MAAOA,EAAO4U,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBO,EAAIxT,GAAO7B,EAAgBqV,EAW3M,SAASkK,EAAOu8B,GAQd,IAHA,IACIwa,EADAx7C,EAAM,EAGD1S,EAAI,EAAGwkD,EAAM9Q,EAAOj/C,OAAQuL,EAAIwkD,EAAKxkD,KAC5CkuD,EAAUxa,EAAO1zC,GAAGywC,EAAIiD,EAAO1zC,GAAG2wC,GACpBj+B,IAAKA,EAAMw7C,GAG3B,OAAOx7C,EAGT,SAASu4C,EAAYvX,GAOnB,IAFA,IAAIN,EAAYh6B,MAAMs6B,EAAOj/C,QAEpBuL,EAAI,EAAGwkD,EAAM9Q,EAAOj/C,OAAQuL,EAAIwkD,EAAKxkD,IAC5CozC,EAAUpzC,GAAK0lD,EAAgBhS,EAAO1zC,IAGxC,OAAOozC,EAKT,SAAS6Z,EAAavZ,EAEpB2S,GAOA,IAFA,IAAIjT,EAAYh6B,MAAMs6B,EAAOj/C,QAEpBuL,EAAI,EAAGwkD,EAAM9Q,EAAOj/C,OAAQuL,EAAIwkD,EAAKxkD,IACxCqmD,EAAWrmD,IAAM0zC,EAAO1zC,GAAGA,EAC7BozC,EAAUpzC,GAAKqmD,EAEfjT,EAAUpzC,GAAK0zC,EAAO1zC,GAI1B,OAAOozC,EAwBT,SAASsS,EAAgBW,GAKvB,MAAO,CACL3V,EAAG2V,EAAW3V,EACdC,EAAG0V,EAAW1V,EACd7pB,EAAGu/B,EAAWv/B,EACd2pB,EAAG4V,EAAW5V,EACdzwC,EAAGqmD,EAAWrmD,EACd4/C,KAAMyG,EAAWzG,KACjBE,KAAMuG,EAAWvG,KACjBD,KAAMwG,EAAWxG,KACjBE,KAAMsG,EAAWtG,KACjBoO,MAAO9nC,QAAQggC,EAAW8H,OAC1B7M,OAAQj7B,QAAQggC,EAAW/E,QAE3BnN,YAAakS,EAAWlS,YACxBD,YAAamS,EAAWnS,YACxB8L,cAAeqG,EAAWrG,cAC1B3C,UAAWgJ,EAAWhJ,WAkC1B,IAAI0K,EAEF,EAAQ,kMAmBV,SAAS8E,EAASuB,EAEhBC,GAKA,OAAID,EAAGpuD,IAAMquD,EAAGruD,MAEZouD,EAAGtnC,EAAIsnC,EAAG1d,GAAK2d,EAAGvnC,OAElBsnC,EAAGtnC,GAAKunC,EAAGvnC,EAAIunC,EAAG3d,OAElB0d,EAAG3d,EAAI2d,EAAGzd,GAAK0d,EAAG5d,MAElB2d,EAAG3d,GAAK4d,EAAG5d,EAAI4d,EAAG1d,MAiBxB,SAASkV,EAAQnS,EAEfuR,EAEAnqD,GAYA,IANA,IAAIwzD,EAActB,EAAWtZ,GAEzBgZ,EAASc,EAAgB9Z,EAAQuR,GAEjC2G,EAAMxyC,MAAMs6B,EAAOj/C,QAEduL,EAAI,EAAGwkD,EAAMkI,EAAOj4D,OAAQuL,EAAIwkD,EAAKxkD,IAAK,CACjD,IAAIwlD,EAAIE,EAAgBgH,EAAO1sD,IAE1BwlD,EAAElE,SACLkE,EAAIsH,EAAYwB,EAAa9I,EAAGP,EAAanqD,EAAM4xD,GAGnD4B,EAAYz0D,KAAK2rD,IAInBoG,EAAIlY,EAAOzU,QAAQytB,EAAO1sD,KAAOwlD,EAEjCA,EAAE2I,OAAQ,EAGZ,OAAOvC,EAhFT9Q,EAAQiN,kBAAoBA,EAmF5B,IAAIwG,EAAc,CAChBznC,EAAG,IACH2pB,EAAG,KAML,SAAS+d,EAA2B9a,EAElCj+C,EAEAg5D,EAEAC,GAGA,IAAIC,EAAWJ,EAAYG,GAC3Bj5D,EAAKi5D,IAAS,EAKd,IAJA,IAIS1uD,EAJO0zC,EAAOn6C,KAAI,SAAU8sD,GACnC,OAAOA,EAAWrmD,KACjBi/B,QAAQxpC,EAAKuK,GAES,EAAGA,EAAI0zC,EAAOj/C,OAAQuL,IAAK,CAClD,IAAI4uD,EAAYlb,EAAO1zC,GAEvB,IAAI4uD,EAAUtN,OAAd,CAGA,GAAIsN,EAAUne,EAAIh7C,EAAKg7C,EAAIh7C,EAAKk7C,EAAG,MAE/Bkc,EAASp3D,EAAMm5D,IACjBJ,EAA2B9a,EAAQkb,EAAWH,EAAch5D,EAAKk5D,GAAWD,IAIhFj5D,EAAKi5D,GAAQD,EAUf,SAAS3B,EAAYwB,EAEnB9I,EAEAP,EAEAnqD,EAEA+zD,GAKA,IAoBIhC,EAnBAiC,EAA2B,eAAhB7J,EAEf,GAH+B,aAAhBA,EASb,IAFAO,EAAE/U,EAAI79B,KAAKH,IAAI0E,EAAOm3C,GAAc9I,EAAE/U,GAE/B+U,EAAE/U,EAAI,IAAMsc,EAAkBuB,EAAa9I,IAChDA,EAAE/U,SAEC,GAAIqe,EAET,KAAOtJ,EAAE1+B,EAAI,IAAMimC,EAAkBuB,EAAa9I,IAChDA,EAAE1+B,IAON,KAAO+lC,EAAWE,EAAkBuB,EAAa9I,IAC3CsJ,EACFN,EAA2BK,EAAYrJ,EAAGqH,EAAS/lC,EAAI+lC,EAASnc,EAAG,KAEnE8d,EAA2BK,EAAYrJ,EAAGqH,EAASpc,EAAIoc,EAASlc,EAAG,KAIjEme,GAAYtJ,EAAE1+B,EAAI0+B,EAAE9U,EAAI51C,IAC1B0qD,EAAE1+B,EAAIhsB,EAAO0qD,EAAE9U,EACf8U,EAAE/U,KAON,OAFA+U,EAAE/U,EAAI79B,KAAKF,IAAI8yC,EAAE/U,EAAG,GACpB+U,EAAE1+B,EAAIlU,KAAKF,IAAI8yC,EAAE1+B,EAAG,GACb0+B,EAYT,SAASiH,EAAc/Y,EAErBqb,GAOA,IAFA,IAAIC,EAAehC,EAAWtZ,GAErB1zC,EAAI,EAAGwkD,EAAM9Q,EAAOj/C,OAAQuL,EAAIwkD,EAAKxkD,IAAK,CACjD,IAAIwlD,EAAI9R,EAAO1zC,GASf,GAPIwlD,EAAE1+B,EAAI0+B,EAAE9U,EAAIqe,EAAOj0D,OAAM0qD,EAAE1+B,EAAIioC,EAAOj0D,KAAO0qD,EAAE9U,GAE/C8U,EAAE1+B,EAAI,IACR0+B,EAAE1+B,EAAI,EACN0+B,EAAE9U,EAAIqe,EAAOj0D,MAGV0qD,EAAElE,OAGL,KAAOyL,EAAkBiC,EAAcxJ,IACrCA,EAAE/U,SAJSue,EAAan1D,KAAK2rD,GASnC,OAAO9R,EAWT,SAAS+R,EAAc/R,EAErB55C,GAKA,IAAK,IAAIkG,EAAI,EAAGwkD,EAAM9Q,EAAOj/C,OAAQuL,EAAIwkD,EAAKxkD,IAC5C,GAAI0zC,EAAO1zC,GAAGA,IAAMlG,EAAI,OAAO45C,EAAO1zC,GAa1C,SAAS+sD,EAAkBrZ,EAEzB2S,GAKA,IAAK,IAAIrmD,EAAI,EAAGwkD,EAAM9Q,EAAOj/C,OAAQuL,EAAIwkD,EAAKxkD,IAC5C,GAAI6sD,EAASnZ,EAAO1zC,GAAIqmD,GAAa,OAAO3S,EAAO1zC,GAIvD,SAASomD,EAAiB1S,EAExB2S,GAKA,OAAO3S,EAAO/7C,QAAO,SAAU6tD,GAC7B,OAAOqH,EAASrH,EAAGa,MAUvB,SAAS2G,EAAWtZ,GAKlB,OAAOA,EAAO/7C,QAAO,SAAU6tD,GAC7B,OAAOA,EAAElE,UAeb,SAASsE,EAAYlS,EAEnB8R,EAEA1+B,EAEA2pB,EAEAwe,EAEAtJ,EAEAV,EAEAnqD,EAEAoqD,GAOA,GAAIM,EAAElE,SAA4B,IAAlBkE,EAAErR,YAAsB,OAAOT,EAE/C,GAAI8R,EAAE/U,IAAMA,GAAK+U,EAAE1+B,IAAMA,EAAG,OAAO4sB,EACnCK,EAAI,kBAAkBx9B,OAAOivC,EAAExlD,EAAG,SAASuW,OAAOkkB,OAAO3T,GAAI,KAAKvQ,OAAOkkB,OAAOgW,GAAI,YAAYl6B,OAAOivC,EAAE1+B,EAAG,KAAKvQ,OAAOivC,EAAE/U,EAAG,MAC7H,IAAIye,EAAO1J,EAAE1+B,EACTqoC,EAAO3J,EAAE/U,EAEI,iBAAN3pB,IAAgB0+B,EAAE1+B,EAAIA,GAChB,iBAAN2pB,IAAgB+U,EAAE/U,EAAIA,GACjC+U,EAAE2I,OAAQ,EAKV,IAAIzB,EAASc,EAAgB9Z,EAAQuR,IACN,aAAhBA,GAA2C,iBAANxU,EAAiB0e,GAAQ1e,EAAoB,eAAhBwU,GAA6C,iBAANn+B,GAAiBooC,GAAQpoC,KAEnI4lC,EAASA,EAAO0C,WAC9B,IAAIjJ,EAAaC,EAAiBsG,EAAQlH,GACtCU,EAAgBC,EAAW1xD,OAAS,EAGxC,GAAIyxD,GAAiBhB,EAGnB,OAAO+F,EAAYvX,GACd,GAAIwS,GAAiBP,EAQ1B,OAJA5R,EAAI,0BAA0Bx9B,OAAOivC,EAAExlD,EAAG,iBAC1CwlD,EAAE1+B,EAAIooC,EACN1J,EAAE/U,EAAI0e,EACN3J,EAAE2I,OAAQ,EACHza,EAIT,IAAK,IAAI1zC,EAAI,EAAGwkD,EAAM2B,EAAW1xD,OAAQuL,EAAIwkD,EAAKxkD,IAAK,CACrD,IAAIqvD,EAAYlJ,EAAWnmD,GAC3B+zC,EAAI,+BAA+Bx9B,OAAOivC,EAAExlD,EAAG,SAASuW,OAAOivC,EAAE1+B,EAAG,KAAKvQ,OAAOivC,EAAE/U,EAAG,UAAUl6B,OAAO84C,EAAUrvD,EAAG,SAASuW,OAAO84C,EAAUvoC,EAAG,KAAKvQ,OAAO84C,EAAU5e,EAAG,MAErK4e,EAAUlB,QAGZza,EADE2b,EAAU/N,OACH4L,EAA6BxZ,EAAQ2b,EAAW7J,EAAGyJ,EAAchK,EAAanqD,GAE9EoyD,EAA6BxZ,EAAQ8R,EAAG6J,EAAWJ,EAAchK,EAAanqD,IAI3F,OAAO44C,EAYT,SAASwZ,EAA6BxZ,EAEpCsb,EAEAM,EAEAL,EAEAhK,EAEAnqD,GAKA,IAAIg0D,EAA2B,eAAhB7J,EAEXsK,EAA2B,eAAhBtK,EACXU,EAAmBqJ,EAAa1N,OAKpC,GAAI2N,EAAc,CAEhBA,GAAe,EAEf,IAAIO,EAEF,CACA1oC,EAAGgoC,EAAWl8C,KAAKF,IAAIs8C,EAAaloC,EAAIwoC,EAAW5e,EAAG,GAAK4e,EAAWxoC,EACtE2pB,EAAG8e,EAAW38C,KAAKF,IAAIs8C,EAAave,EAAI6e,EAAW3e,EAAG,GAAK2e,EAAW7e,EACtEC,EAAG4e,EAAW5e,EACdC,EAAG2e,EAAW3e,EACd3wC,EAAG,MAGL,IAAK+sD,EAAkBrZ,EAAQ8b,GAE7B,OADAzb,EAAI,8BAA8Bx9B,OAAO+4C,EAAWtvD,EAAG,YAAYuW,OAAOi5C,EAAS1oC,EAAG,KAAKvQ,OAAOi5C,EAAS/e,EAAG,OACvGmV,EAAYlS,EAAQ4b,EAAYR,EAAWU,EAAS1oC,OAAI9wB,EAAWu5D,EAAWC,EAAS/e,OAAIz6C,EAAWi5D,EAActJ,EAAkBV,EAAanqD,GAI9J,OAAO8qD,EAAYlS,EAAQ4b,EAAYR,EAAWQ,EAAWxoC,EAAI,OAAI9wB,EAAWu5D,EAAWD,EAAW7e,EAAI,OAAIz6C,EAAWi5D,EAActJ,EAAkBV,EAAanqD,GA8DxK,SAAS0yD,EAAgB9Z,EAEvBuR,GAKA,MAAoB,eAAhBA,EAAqCwI,EAAwB/Z,GAC7C,aAAhBuR,EAAmCyI,EAAwBha,GAAoBA,EASrF,SAASga,EAAwBha,GAM/B,OAAOA,EAAO5X,MAAM,GAAG91B,MAAK,SAAUqpB,EAAGC,GACvC,OAAID,EAAEohB,EAAInhB,EAAEmhB,GAAKphB,EAAEohB,IAAMnhB,EAAEmhB,GAAKphB,EAAEvI,EAAIwI,EAAExI,EAC/B,EACEuI,EAAEohB,IAAMnhB,EAAEmhB,GAAKphB,EAAEvI,IAAMwI,EAAExI,EAE3B,GAGD,KAUZ,SAAS2mC,EAAwB/Z,GAK/B,OAAOA,EAAO5X,MAAM,GAAG91B,MAAK,SAAUqpB,EAAGC,GACvC,OAAID,EAAEvI,EAAIwI,EAAExI,GAAKuI,EAAEvI,IAAMwI,EAAExI,GAAKuI,EAAEohB,EAAInhB,EAAEmhB,EAC/B,GAGD,KA0FZ,SAAS2a,EAAe1X,GAKtB,IAAI+b,EAEF9hD,UAAUlZ,OAAS,QAAsBuB,IAAjB2X,UAAU,GAAmBA,UAAU,GAAK,SAClE+hD,EAAW,CAAC,IAAK,IAAK,IAAK,KAC/B,IAAKt2C,MAAMC,QAAQq6B,GAAS,MAAM,IAAI0J,MAAMqS,EAAc,sBAE1D,IAAK,IAAIzvD,EAAI,EAAGwkD,EAAM9Q,EAAOj/C,OAAQuL,EAAIwkD,EAAKxkD,IAG5C,IAFA,IAAIvK,EAAOi+C,EAAO1zC,GAET2vD,EAAI,EAAGA,EAAID,EAASj7D,OAAQk7D,IACnC,GAAiC,iBAAtBl6D,EAAKi6D,EAASC,IACvB,MAAM,IAAIvS,MAAM,oBAAsBqS,EAAc,IAAMzvD,EAAI,KAAO0vD,EAASC,GAAK,sBAmB3F,SAAS5b,KAUT+G,EAAQ8N,KAFG,c,yLCn2BXwD,EAAOtR,QAAU,EAAjB,wMACAsR,EAAOtR,QAAQ8U,MAAQ,EAAvB,sLACAxD,EAAOtR,QAAQ+U,WAAf,oNAEAzD,EAAOtR,QAAQ+U,WAAWD,MAAQ,EAAlC,gMACAxD,EAAOtR,QAAQiR,cAAf,oN,0MCHAjR,EAAQU,YAAa,EACrBV,EAAA,aAAkB,EAElB,IAAIl4C,EAYJ,SAAiCqK,EAAKo1C,GAAe,IAAKA,GAAep1C,GAAOA,EAAIuuC,WAAc,OAAOvuC,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAEw1B,QAASx1B,GAAS,IAAIq1C,EAAQC,EAAyBF,GAAc,GAAIC,GAASA,EAAMz9C,IAAIoI,GAAQ,OAAOq1C,EAAMvtD,IAAIkY,GAAQ,IAAIu1C,EAAS,GAAQC,EAAwBhrD,OAAOkV,gBAAkBlV,OAAO+V,yBAA0B,IAAK,IAAI/T,KAAOwT,EAAO,GAAY,YAARxT,GAAqBhC,OAAOsV,UAAU21C,eAAexzC,KAAKjC,EAAKxT,GAAM,CAAE,IAAIkpD,EAAOF,EAAwBhrD,OAAO+V,yBAAyBP,EAAKxT,GAAO,KAAUkpD,IAASA,EAAK5tD,KAAO4tD,EAAKC,KAAQnrD,OAAOkV,eAAe61C,EAAQ/oD,EAAKkpD,GAAgBH,EAAO/oD,GAAOwT,EAAIxT,GAAY+oD,EAAO/f,QAAUx1B,EAASq1C,GAASA,EAAMM,IAAI31C,EAAKu1C,GAAW,OAAOA,EAZ/wBK,CAAwB,EAAQ,qGAExC3H,EAAkB,EAAQ,kLAE1BE,EAAS,EAAQ,gLAEjBH,EAAa,EAAQ,oLAErBwO,EAAY,CAAC,WAAY,YAAa,gBAAiB,QAAS,SAAU,SAAU,aAAc,kBAAmB,OAAQ,iBAAkB,iBAAkB,WAAY,eAAgB,gBAAiB,gBAAiB,kBAEnO,SAASlH,EAAyBF,GAAe,GAAuB,mBAAZW,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQT,EAA2B,SAAkCF,GAAe,OAAOA,EAAca,EAAmBD,IAAsBZ,GAIhU,SAASqH,IAA2Q,OAA9PA,EAAWjyD,OAAOkZ,QAAU,SAAU/b,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAASD,UAAU3N,GAAI,IAAK,IAAIvG,KAAOmU,EAAcnW,OAAOsV,UAAU21C,eAAexzC,KAAKtB,EAAQnU,KAAQ7E,EAAO6E,GAAOmU,EAAOnU,IAAY,OAAO7E,GAAkB80D,EAASj8C,MAAMkC,KAAMhC,WAIhT,SAAST,EAAQC,EAAQC,GAAkB,IAAIlV,EAAOT,OAAOS,KAAKiV,GAAS,GAAI1V,OAAO4V,sBAAuB,CAAE,IAAIC,EAAU7V,OAAO4V,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ3V,QAAO,SAAU4V,GAAO,OAAO9V,OAAO+V,yBAAyBL,EAAQI,GAAKf,eAAkBtU,EAAK2B,KAAK4T,MAAMvV,EAAMoV,GAAY,OAAOpV,EAElV,SAASujD,EAAc7mD,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAAyB,MAAhBD,UAAU3N,GAAa2N,UAAU3N,GAAK,GAAQA,EAAI,EAAKkN,EAAQzV,OAAOmW,IAAS,GAAMC,SAAQ,SAAUpU,GAAOuT,EAAgBpY,EAAQ6E,EAAKmU,EAAOnU,OAAsBhC,OAAOqW,0BAA6BrW,OAAOsW,iBAAiBnZ,EAAQ6C,OAAOqW,0BAA0BF,IAAmBV,EAAQzV,OAAOmW,IAASC,SAAQ,SAAUpU,GAAOhC,OAAOkV,eAAe/X,EAAQ6E,EAAKhC,OAAO+V,yBAAyBI,EAAQnU,OAAe,OAAO7E,EAE7gB,SAASoY,EAAgBC,EAAKxT,EAAK7B,GAAiK,OAApJ6B,KAAOwT,EAAOxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAAE7B,MAAOA,EAAO4U,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBO,EAAIxT,GAAO7B,EAAgBqV,EAI3M,SAASoB,EAAgBE,EAAGI,GAA+G,OAA1GN,EAAkB5W,OAAO+W,gBAAkB,SAAyBD,EAAGI,GAAsB,OAAjBJ,EAAEG,UAAYC,EAAUJ,GAAaF,EAAgBE,EAAGI,GAIrK,IAAI4xC,EAAyB,SAAUrvC,GANvC,IAAwBjD,EAAUC,EAShC,SAASqyC,IAGP,IAFA,IAAIztC,EAEK+oC,EAAOluC,UAAUlZ,OAAQqnD,EAAO,IAAI1iC,MAAMyiC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQpuC,UAAUouC,GAOzB,OAJAjpC,EAAQ5B,EAAiBhC,KAAKzB,MAAMyD,EAAkB,CAACvB,MAAM4G,OAAOulC,KAAUnsC,MACxEmgD,WAAa,GACnBh9C,EAAMi9C,eAAiB,KACvBj9C,EAAMk9C,MAAQ,KACPl9C,EApBuB5E,EAONgD,GAPJjD,EAOPsyC,GAPwCxzC,UAAYtV,OAAO0W,OAAOD,EAAWnB,WAAYkB,EAASlB,UAAUqB,YAAcH,EAAUI,EAAgBJ,EAAUC,GAuB7K,IAAI+hD,EAAS1P,EAAUxzC,UA0NvB,OAxNAkjD,EAAOl3C,qBAAuB,WAC5BpJ,KAAKugD,aAGPD,EAAOC,UAAY,WACjBvgD,KAAKogD,eAAiBpgD,KAAKqgD,MAAQ,MAIrCC,EAAOE,eAAiB,SAAwB7mD,EAAOmH,GACrD,IAAIV,EAAcJ,KAAKta,MACnBgrD,EAAiBtwC,EAAYswC,eAC7BC,EAAiBvwC,EAAYuwC,eAC7B8P,EAAkBrgD,EAAYqgD,gBAElC,IAAK/P,IAAmBC,IAAmB8P,EAAiB,MAAO,CAAC9mD,EAAOmH,GAE3E,GAAI2/C,EAAiB,CACnB,IAAIC,EAAQ1gD,KAAKta,MAAMiU,MAAQqG,KAAKta,MAAMob,OACtC6/C,EAAShnD,EAAQqG,KAAKta,MAAMiU,MAC5BinD,EAAS9/C,EAASd,KAAKta,MAAMob,OAK7BmC,KAAK+B,IAAI27C,GAAU19C,KAAK+B,IAAI47C,EAASF,GACvC5/C,EAASnH,EAAQ+mD,EAEjB/mD,EAAQmH,EAAS4/C,EAIrB,IAAIG,EAAOlnD,EACPmnD,EAAOhgD,EAIPyrC,EAAOvsC,KAAKqgD,OAAS,CAAC,EAAG,GACzBU,EAASxU,EAAK,GACdyU,EAASzU,EAAK,GAiBlB,OAfA5yC,GAASonD,EACTjgD,GAAUkgD,EAENtQ,IACF/2C,EAAQsJ,KAAKF,IAAI2tC,EAAe,GAAI/2C,GACpCmH,EAASmC,KAAKF,IAAI2tC,EAAe,GAAI5vC,IAGnC6vC,IACFh3C,EAAQsJ,KAAKH,IAAI6tC,EAAe,GAAIh3C,GACpCmH,EAASmC,KAAKH,IAAI6tC,EAAe,GAAI7vC,IAIvCd,KAAKqgD,MAAQ,CAACU,GAAUF,EAAOlnD,GAAQqnD,GAAUF,EAAOhgD,IACjD,CAACnH,EAAOmH,IAUjBw/C,EAAOW,cAAgB,SAAuBjQ,EAAa+N,GACzD,IAAIn5C,EAAS5F,KAEb,OAAO,SAAU/P,EAAGo9C,GAClB,IAAIzoC,EAAOyoC,EAAMzoC,KACb0oC,EAASD,EAAMC,OACfC,EAASF,EAAME,OAEC,kBAAhByD,GAAiCprC,EAAO26C,YAE5C,IAAIW,GAAkC,SAAtBt7C,EAAOlgB,MAAMq5D,MAAyC,MAAtBn5C,EAAOlgB,MAAMq5D,OAA0B,MAATA,GAAyB,MAATA,EAC1FoC,GAAkC,SAAtBv7C,EAAOlgB,MAAMq5D,MAAyC,MAAtBn5C,EAAOlgB,MAAMq5D,OAA0B,MAATA,GAAyB,MAATA,EAE9F,GAAKmC,GAAaC,EAAlB,CAEA,IAAIC,EAAQrC,EAAK,GACbsC,EAAQtC,EAAKA,EAAKj6D,OAAS,GAK3Bw8D,EAAa18C,EAAKE,wBAEtB,GAA6B,MAAzBc,EAAOw6C,eAAwB,CAIjC,GAAc,MAAViB,EAEF/T,GADyBgU,EAAWh6C,KAAO1B,EAAOw6C,eAAe94C,KAInE,GAAc,MAAV85C,EAEF7T,GADwB+T,EAAW55C,IAAM9B,EAAOw6C,eAAe14C,IAMnE9B,EAAOw6C,eAAiBkB,EAEV,MAAVD,IAAe/T,GAAUA,GACf,MAAV8T,IAAe7T,GAAUA,GAE7B,IAAI5zC,EAAQiM,EAAOlgB,MAAMiU,OAASunD,EAAW5T,EAAS1nC,EAAOlgB,MAAM+mD,eAAiB,GAChF3rC,EAAS8E,EAAOlgB,MAAMob,QAAUqgD,EAAW5T,EAAS3nC,EAAOlgB,MAAM+mD,eAAiB,GAElF8U,EAAwB37C,EAAO46C,eAAe7mD,EAAOmH,GAEzDnH,EAAQ4nD,EAAsB,GAC9BzgD,EAASygD,EAAsB,GAC/B,IAAIC,EAAoB7nD,IAAUiM,EAAOlgB,MAAMiU,OAASmH,IAAW8E,EAAOlgB,MAAMob,OAE5Ew9C,EAA0C,mBAA9B14C,EAAOlgB,MAAMsrD,GAA8BprC,EAAOlgB,MAAMsrD,GAAe,KAInFsN,KAF+B,aAAhBtN,IAA+BwQ,KAGnC,MAAbvxD,EAAEwxD,SAA2BxxD,EAAEwxD,UAC/BnD,EAAGruD,EAAG,CACJ2U,KAAMA,EACN/Z,KAAM,CACJ8O,MAAOA,EACPmH,OAAQA,GAEV+uC,OAAQkP,KAKQ,iBAAhB/N,GAAgCprC,EAAO26C,eAM/CD,EAAOoB,mBAAqB,SAA4BC,EAAY1gD,GAClE,IAAI4uC,EAAS7vC,KAAKta,MAAMmqD,OAExB,IAAKA,EACH,OAAoB58C,EAAMw8C,cAAc,OAAQ,CAC9CxpD,UAAW,iDAAmD07D,EAC9D1gD,IAAKA,IAMT,GAAsB,mBAAX4uC,EACT,OAAOA,EAAO8R,EAAY1gD,GAI5B,IAEIvb,EAAQomD,EAAc,CACxB7qC,IAAKA,GAHmC,iBAAhB4uC,EAAO3rD,KAIf,GAAK,CACrBy9D,WAAYA,IAGd,OAAoB1uD,EAAMy+C,aAAa7B,EAAQnqD,IAGjD46D,EAAO5tD,OAAS,WACd,IAAIkvD,EAAS5hD,KAITqE,EAAerE,KAAKta,MACpB2a,EAAWgE,EAAahE,SACxBpa,EAAYoe,EAAape,UACzB4qD,EAAgBxsC,EAAawsC,cAY7BR,GAXQhsC,EAAa1K,MACZ0K,EAAavD,OACbuD,EAAawrC,OACTxrC,EAAaw9C,WACRx9C,EAAao8C,gBACxBp8C,EAAa06C,KACH16C,EAAaqsC,eACbrsC,EAAassC,eACnBtsC,EAAaqhC,SACTrhC,EAAashC,aACZthC,EAAaysC,cACbzsC,EAAagsC,eAE7BrxC,GADiBqF,EAAaooC,eAhOtC,SAAuCxuC,EAAQg8C,GAAY,GAAc,MAAVh8C,EAAgB,MAAO,GAAI,IAA2DnU,EAAKuG,EAA5DpL,EAAS,GAAQi1D,EAAapyD,OAAOS,KAAK0V,GAAqB,IAAK5N,EAAI,EAAGA,EAAI6pD,EAAWp1D,OAAQuL,IAAOvG,EAAMowD,EAAW7pD,GAAQ4pD,EAAS3qB,QAAQxlC,IAAQ,IAAa7E,EAAO6E,GAAOmU,EAAOnU,IAAQ,OAAO7E,EAiO9Rk1D,CAA8B91C,EAAcy1C,IAMpD,OAAO,EAAIrO,EAAOiG,cAAcrxC,EAAUyrC,EAAcA,EAAc,GAAI9sC,GAAI,GAAI,CAChF/Y,WAAYA,EAAYA,EAAY,IAAM,IAAM,kBAChDoa,SAAU,GAAGuG,OAAOvG,EAAS3a,MAAM2a,SAAUgwC,EAAczmD,KAAI,SAAU+3D,GACvE,IAAIG,EAGA7gD,EAAiE,OAA1D6gD,EAAwBF,EAAOzB,WAAWwB,IAAuBG,EAAwBF,EAAOzB,WAAWwB,GAA2B1uD,EAAMmV,YACvJ,OAAoBnV,EAAMw8C,cAAclE,EAAgBmE,cAAeqK,EAAS,GAAIlJ,EAAe,CACjGd,QAAS9uC,EACTnX,IAAK,mBAAqB63D,EAC1B/R,OAAQgS,EAAOX,cAAc,eAAgBU,GAC7ChS,QAASiS,EAAOX,cAAc,gBAAiBU,GAC/CnU,OAAQoU,EAAOX,cAAc,WAAYU,KACvCC,EAAOF,mBAAmBC,EAAY1gD,YAKzC2vC,EA3OoB,CA4O3B39C,EAAMg/C,WAER9G,EAAA,QAAkByF,EAClBA,EAAUzvC,UAAYmqC,EAAWyW,eACjCnR,EAAUxvC,aAAe,CACvB29C,KAAM,OACN8C,WAAY,CAAC,GAAI,IACjBpB,iBAAiB,EACjB/P,eAAgB,CAAC,GAAI,IACrBC,eAAgB,CAAC3tC,EAAAA,EAAUA,EAAAA,GAC3BqtC,cAAe,CAAC,MAChB5D,eAAgB,I,6MCvRlBtB,EAAA,aAAkB,EAElB,IAAIl4C,EAcJ,SAAiCqK,EAAKo1C,GAAe,IAAKA,GAAep1C,GAAOA,EAAIuuC,WAAc,OAAOvuC,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAEw1B,QAASx1B,GAAS,IAAIq1C,EAAQC,EAAyBF,GAAc,GAAIC,GAASA,EAAMz9C,IAAIoI,GAAQ,OAAOq1C,EAAMvtD,IAAIkY,GAAQ,IAAIu1C,EAAS,GAAQC,EAAwBhrD,OAAOkV,gBAAkBlV,OAAO+V,yBAA0B,IAAK,IAAI/T,KAAOwT,EAAO,GAAY,YAARxT,GAAqBhC,OAAOsV,UAAU21C,eAAexzC,KAAKjC,EAAKxT,GAAM,CAAE,IAAIkpD,EAAOF,EAAwBhrD,OAAO+V,yBAAyBP,EAAKxT,GAAO,KAAUkpD,IAASA,EAAK5tD,KAAO4tD,EAAKC,KAAQnrD,OAAOkV,eAAe61C,EAAQ/oD,EAAKkpD,GAAgBH,EAAO/oD,GAAOwT,EAAIxT,GAAY+oD,EAAO/f,QAAUx1B,EAASq1C,GAASA,EAAMM,IAAI31C,EAAKu1C,GAAW,OAAOA,EAd/wBK,CAAwB,EAAQ,qGAExC5H,EAAaD,EAAuB,EAAQ,+GAE5C2W,EAAa3W,EAAuB,EAAQ,qLAE5C4W,EAAc,EAAQ,oLAEtBnI,EAAY,CAAC,SAAU,aAAc,WAAY,gBAAiB,eAAgB,gBAAiB,iBAAkB,iBAAkB,kBAAmB,OAAQ,QAAS,SAAU,gBAAiB,QAAS,kBAEnN,SAASzO,EAAuB/tC,GAAO,OAAOA,GAAOA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAEvF,SAASs1C,EAAyBF,GAAe,GAAuB,mBAAZW,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQT,EAA2B,SAAkCF,GAAe,OAAOA,EAAca,EAAmBD,IAAsBZ,GAIhU,SAASqH,IAA2Q,OAA9PA,EAAWjyD,OAAOkZ,QAAU,SAAU/b,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAASD,UAAU3N,GAAI,IAAK,IAAIvG,KAAOmU,EAAcnW,OAAOsV,UAAU21C,eAAexzC,KAAKtB,EAAQnU,KAAQ7E,EAAO6E,GAAOmU,EAAOnU,IAAY,OAAO7E,GAAkB80D,EAASj8C,MAAMkC,KAAMhC,WAEhT,SAAST,EAAQC,EAAQC,GAAkB,IAAIlV,EAAOT,OAAOS,KAAKiV,GAAS,GAAI1V,OAAO4V,sBAAuB,CAAE,IAAIC,EAAU7V,OAAO4V,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ3V,QAAO,SAAU4V,GAAO,OAAO9V,OAAO+V,yBAAyBL,EAAQI,GAAKf,eAAkBtU,EAAK2B,KAAK4T,MAAMvV,EAAMoV,GAAY,OAAOpV,EAElV,SAASujD,EAAc7mD,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAAyB,MAAhBD,UAAU3N,GAAa2N,UAAU3N,GAAK,GAAQA,EAAI,EAAKkN,EAAQzV,OAAOmW,IAAS,GAAMC,SAAQ,SAAUpU,GAAOuT,EAAgBpY,EAAQ6E,EAAKmU,EAAOnU,OAAsBhC,OAAOqW,0BAA6BrW,OAAOsW,iBAAiBnZ,EAAQ6C,OAAOqW,0BAA0BF,IAAmBV,EAAQzV,OAAOmW,IAASC,SAAQ,SAAUpU,GAAOhC,OAAOkV,eAAe/X,EAAQ6E,EAAKhC,OAAO+V,yBAAyBI,EAAQnU,OAAe,OAAO7E,EAE7gB,SAASoY,EAAgBC,EAAKxT,EAAK7B,GAAiK,OAApJ6B,KAAOwT,EAAOxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAAE7B,MAAOA,EAAO4U,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBO,EAAIxT,GAAO7B,EAAgBqV,EAM3M,SAASoB,EAAgBE,EAAGI,GAA+G,OAA1GN,EAAkB5W,OAAO+W,gBAAkB,SAAyBD,EAAGI,GAAsB,OAAjBJ,EAAEG,UAAYC,EAAUJ,GAAaF,EAAgBE,EAAGI,GAErK,IAAIkjD,EAA4B,SAAU3gD,GAJ1C,IAAwBjD,EAAUC,EAOhC,SAAS2jD,IAGP,IAFA,IAAI/+C,EAEK+oC,EAAOluC,UAAUlZ,OAAQqnD,EAAO,IAAI1iC,MAAMyiC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQpuC,UAAUouC,GAyBzB,OAtBAjpC,EAAQ5B,EAAiBhC,KAAKzB,MAAMyD,EAAkB,CAACvB,MAAM4G,OAAOulC,KAAUnsC,MACxEpU,MAAQ,CACZ+N,MAAOwJ,EAAMzd,MAAMiU,MACnBmH,OAAQqC,EAAMzd,MAAMob,OACpBqhD,WAAYh/C,EAAMzd,MAAMiU,MACxByoD,YAAaj/C,EAAMzd,MAAMob,QAG3BqC,EAAMuiC,SAAW,SAAUz1C,EAAG7F,GAC5B,IAAIS,EAAOT,EAAKS,KAEZsY,EAAMzd,MAAMggD,UACD,MAAbz1C,EAAEwxD,SAA2BxxD,EAAEwxD,UAE/Bt+C,EAAMjQ,SAASrI,GAAM,WACnB,OAAOsY,EAAMzd,MAAMggD,UAAYviC,EAAMzd,MAAMggD,SAASz1C,EAAG7F,OAGzD+Y,EAAMjQ,SAASrI,IAIZsY,EAgET,OApGgC5E,EAKHgD,GALPjD,EAKP4jD,GALwC9kD,UAAYtV,OAAO0W,OAAOD,EAAWnB,WAAYkB,EAASlB,UAAUqB,YAAcH,EAAUI,EAAgBJ,EAAUC,GAuC7K2jD,EAAaG,yBAA2B,SAAkC38D,EAAOkG,GAE/E,OAAIA,EAAMu2D,aAAez8D,EAAMiU,OAAS/N,EAAMw2D,cAAgB18D,EAAMob,OAC3D,CACLnH,MAAOjU,EAAMiU,MACbmH,OAAQpb,EAAMob,OACdqhD,WAAYz8D,EAAMiU,MAClByoD,YAAa18D,EAAMob,QAIhB,MAGIohD,EAAa9kD,UAEnB1K,OAAS,WAId,IAAI0N,EAAcJ,KAAKta,MACnBmqD,EAASzvC,EAAYyvC,OACrBgS,EAAazhD,EAAYyhD,WAEzB/Q,GADW1wC,EAAYslC,SACPtlC,EAAY0wC,eAC5BnL,EAAevlC,EAAYulC,aAC3BkL,EAAgBzwC,EAAYywC,cAC5BH,EAAiBtwC,EAAYswC,eAC7BC,EAAiBvwC,EAAYuwC,eAC7B8P,EAAkBrgD,EAAYqgD,gBAC9B1B,EAAO3+C,EAAY2+C,KAGnB1O,GAFQjwC,EAAYzG,MACXyG,EAAYU,OACLV,EAAYiwC,eAC5B7vC,EAAQJ,EAAYI,MACpBisC,EAAiBrsC,EAAYqsC,eAC7B/mD,EA7ER,SAAuCuY,EAAQg8C,GAAY,GAAc,MAAVh8C,EAAgB,MAAO,GAAI,IAA2DnU,EAAKuG,EAA5DpL,EAAS,GAAQi1D,EAAapyD,OAAOS,KAAK0V,GAAqB,IAAK5N,EAAI,EAAGA,EAAI6pD,EAAWp1D,OAAQuL,IAAOvG,EAAMowD,EAAW7pD,GAAQ4pD,EAAS3qB,QAAQxlC,IAAQ,IAAa7E,EAAO6E,GAAOmU,EAAOnU,IAAQ,OAAO7E,EA6E1Rk1D,CAA8B/5C,EAAa05C,GAEvD,OAAoB7mD,EAAMw8C,cAAcuS,EAAWlvB,QAAS,CAC1DisB,KAAMA,EACNlO,cAAeA,EACfhB,OAAQA,EACRgS,WAAYA,EACZ/gD,OAAQd,KAAKpU,MAAMkV,OACnB2/C,gBAAiBA,EACjB9P,eAAgBA,EAChBD,eAAgBA,EAChBI,cAAeA,EACfpL,SAAU1lC,KAAK0lC,SACfC,aAAcA,EACd0K,cAAeA,EACf5D,eAAgBA,EAChB9yC,MAAOqG,KAAKpU,MAAM+N,OACJ1G,EAAMw8C,cAAc,MAAOsK,EAAS,GAAIr0D,EAAO,CAC7D8a,MAAOsrC,EAAcA,EAAc,GAAItrC,GAAQ,GAAI,CACjD7G,MAAOqG,KAAKpU,MAAM+N,MAAQ,KAC1BmH,OAAQd,KAAKpU,MAAMkV,OAAS,YAK3BohD,EAhGuB,CAiG9BjvD,EAAMg/C,WAER9G,EAAA,QAAkB+W,EAClBA,EAAa/gD,UAAY2qC,EAAcA,EAAc,GAAImW,EAAYF,gBAAiB,GAAI,CACxF1hD,SAAUirC,EAAWxY,QAAQtmB,W,0MCtI/B2+B,EAAQU,YAAa,EACrBV,EAAQ4W,oBAAiB,EAEzB,IAIgCzkD,EAJ5BguC,GAI4BhuC,EAJQ,EAAQ,gHAIKA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAFjE,EAAQ,kLAI9B,IAAIykD,EAAiB,CAQnBhD,KAAMzT,EAAWxY,QAAQ0mB,MAAM,CAAC,OAAQ,IAAK,IAAK,SAClDvzD,UAAWqlD,EAAWxY,QAAQuf,OAK9BhyC,SAAUirC,EAAWxY,QAAQtmB,QAAQvE,WAKrC4oC,cAAevF,EAAWxY,QAAQtnC,MAAM,CACtC82D,cAAehX,EAAWxY,QAAQ2f,KAClC9W,OAAQ2P,EAAWxY,QAAQuf,OAC3BhyC,SAAUirC,EAAWxY,QAAQluB,KAC7B6c,SAAU6pB,EAAWxY,QAAQ2f,KAC7B8P,qBAAsBjX,EAAWxY,QAAQ2f,KACzC/F,aAAcpB,EAAWxY,QAAQluB,KACjC+b,KAAM2qB,EAAWxY,QAAQymB,QAAQjO,EAAWxY,QAAQof,QACpDrC,OAAQvE,EAAWxY,QAAQuf,OAC3BtC,QAASzE,EAAWxY,QAAQt1B,OAC5BmyC,QAASrE,EAAWxY,QAAQ0f,KAC5BhF,OAAQlC,EAAWxY,QAAQ0f,KAC3B5C,OAAQtE,EAAWxY,QAAQ0f,KAC3B5wC,YAAa0pC,EAAWxY,QAAQ0f,KAChC1C,MAAOxE,EAAWxY,QAAQof,SAM5BpxC,OAAQwqC,EAAWxY,QAAQof,OAAOjqC,WAKlC4nC,OAAQvE,EAAWxY,QAAQ2mB,UAAU,CAACnO,EAAWxY,QAAQluB,KAAM0mC,EAAWxY,QAAQ0f,OAKlFqP,WAAYvW,EAAWxY,QAAQymB,QAAQjO,EAAWxY,QAAQof,QAC1DuO,gBAAiBnV,EAAWxY,QAAQ2f,KAKpC9B,eAAgBrF,EAAWxY,QAAQymB,QAAQjO,EAAWxY,QAAQof,QAK9DxB,eAAgBpF,EAAWxY,QAAQymB,QAAQjO,EAAWxY,QAAQof,QAK9DvM,aAAc2F,EAAWxY,QAAQ0f,KAKjC1B,cAAexF,EAAWxY,QAAQ0f,KAKlC9M,SAAU4F,EAAWxY,QAAQ0f,KAa7BnC,cAAe/E,EAAWxY,QAAQymB,QAAQjO,EAAWxY,QAAQ0mB,MAAM,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,QAK1G/M,eAAgBnB,EAAWxY,QAAQof,OAKnCv4C,MAAO2xC,EAAWxY,QAAQof,OAAOjqC,YAEnCkjC,EAAQ4W,eAAiBA,G,sMC7GzB5W,EAAQU,YAAa,EACrBV,EAAQuG,aAaR,SAAsBllC,EAAS9mB,GACzBA,EAAM8a,OAASgM,EAAQ9mB,MAAM8a,QAC/B9a,EAAM8a,MAAQsrC,EAAcA,EAAc,GAAIt/B,EAAQ9mB,MAAM8a,OAAQ9a,EAAM8a,QAGxE9a,EAAMO,WAAaumB,EAAQ9mB,MAAMO,YACnCP,EAAMO,UAAYumB,EAAQ9mB,MAAMO,UAAY,IAAMP,EAAMO,WAG1D,OAAoBmlD,EAAOtY,QAAQ4e,aAAallC,EAAS9mB,IApB3D,IAEgC4X,EAF5B8tC,GAE4B9tC,EAFI,EAAQ,sGAESA,EAAIuuC,WAAavuC,EAAM,CAAEw1B,QAASx1B,GAEvF,SAASC,EAAQC,EAAQC,GAAkB,IAAIlV,EAAOT,OAAOS,KAAKiV,GAAS,GAAI1V,OAAO4V,sBAAuB,CAAE,IAAIC,EAAU7V,OAAO4V,sBAAsBF,GAAaC,IAAkBE,EAAUA,EAAQ3V,QAAO,SAAU4V,GAAO,OAAO9V,OAAO+V,yBAAyBL,EAAQI,GAAKf,eAAkBtU,EAAK2B,KAAK4T,MAAMvV,EAAMoV,GAAY,OAAOpV,EAElV,SAASujD,EAAc7mD,GAAU,IAAK,IAAIoL,EAAI,EAAGA,EAAI2N,UAAUlZ,OAAQuL,IAAK,CAAE,IAAI4N,EAAyB,MAAhBD,UAAU3N,GAAa2N,UAAU3N,GAAK,GAAQA,EAAI,EAAKkN,EAAQzV,OAAOmW,IAAS,GAAMC,SAAQ,SAAUpU,GAAOuT,EAAgBpY,EAAQ6E,EAAKmU,EAAOnU,OAAsBhC,OAAOqW,0BAA6BrW,OAAOsW,iBAAiBnZ,EAAQ6C,OAAOqW,0BAA0BF,IAAmBV,EAAQzV,OAAOmW,IAASC,SAAQ,SAAUpU,GAAOhC,OAAOkV,eAAe/X,EAAQ6E,EAAKhC,OAAO+V,yBAAyBI,EAAQnU,OAAe,OAAO7E,EAE7gB,SAASoY,EAAgBC,EAAKxT,EAAK7B,GAAiK,OAApJ6B,KAAOwT,EAAOxV,OAAOkV,eAAeM,EAAKxT,EAAK,CAAE7B,MAAOA,EAAO4U,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBO,EAAIxT,GAAO7B,EAAgBqV,I,gMCZ3Mm/C,EAAOtR,QAAU,WACf,MAAM,IAAIsC,MAAM,mFAGlBgP,EAAOtR,QAAQyF,UAAY,EAA3B,4LACA6L,EAAOtR,QAAQ+W,aAAe,EAA9B,gM,yICIA,IAGIM,EAAiB,4BAOjBC,EAAmB,iBAGnBC,EAAU,qBACVC,EAAW,iBAEXC,EAAU,mBACVC,EAAU,gBACVC,EAAW,iBACXC,EAAU,oBAEVC,EAAS,eACTC,EAAY,kBAEZC,EAAY,kBACZC,EAAa,mBAEbC,EAAY,kBACZC,EAAS,eACTC,EAAY,kBACZC,EAAY,kBAEZC,EAAa,mBAEbC,EAAiB,uBACjBC,EAAc,oBAkBdC,EAAe,8BAGfC,EAAW,mBAGXC,EAAiB,GACrBA,EAxBiB,yBAwBYA,EAvBZ,yBAwBjBA,EAvBc,sBAuBYA,EAtBX,uBAuBfA,EAtBe,uBAsBYA,EArBZ,uBAsBfA,EArBsB,8BAqBYA,EApBlB,wBAqBhBA,EApBgB,yBAoBY,EAC5BA,EAAenB,GAAWmB,EAAelB,GACzCkB,EAAeJ,GAAkBI,EAAejB,GAChDiB,EAAeH,GAAeG,EAAehB,GAC7CgB,EAAef,GAAYe,EAAed,GAC1Cc,EAAeb,GAAUa,EAAeZ,GACxCY,EAAeX,GAAaW,EAAeT,GAC3CS,EAAeR,GAAUQ,EAAeP,GACxCO,EAAeL,IAAc,EAG7B,IAAIM,EAA8B,iBAAV,EAAA5F,GAAsB,EAAAA,GAAU,EAAAA,EAAOp2D,SAAWA,QAAU,EAAAo2D,EAGhF6F,EAA0B,iBAARtkD,MAAoBA,MAAQA,KAAK3X,SAAWA,QAAU2X,KAGxEukD,EAAOF,GAAcC,GAAYE,SAAS,cAATA,GAGjCC,EAA4C/Y,IAAYA,EAAQgZ,UAAYhZ,EAG5EiZ,EAAaF,GAA4CzH,IAAWA,EAAO0H,UAAY1H,EAGvF4H,EAAgBD,GAAcA,EAAWjZ,UAAY+Y,EAGrDI,EAAcD,GAAiBP,EAAWS,QAG1CC,EAAY,WACd,IACE,OAAOF,GAAeA,EAAYG,SAAWH,EAAYG,QAAQ,QACjE,MAAOx0D,KAHI,GAOXy0D,EAAmBF,GAAYA,EAASG,aAuD5C,SAASC,EAAUzS,EAAO0S,GAIxB,IAHA,IAAI9+D,GAAS,EACTjB,EAAkB,MAATqtD,EAAgB,EAAIA,EAAMrtD,SAE9BiB,EAAQjB,GACf,GAAI+/D,EAAU1S,EAAMpsD,GAAQA,EAAOosD,GACjC,OAAO,EAGX,OAAO,EAkET,SAAS2S,EAAWl7D,GAClB,IAAI7D,GAAS,EACTiG,EAASyd,MAAM7f,EAAIiB,MAKvB,OAHAjB,EAAIsU,SAAQ,SAASjW,EAAO6B,GAC1BkC,IAASjG,GAAS,CAAC+D,EAAK7B,MAEnB+D,EAwBT,SAAS+4D,EAAW9R,GAClB,IAAIltD,GAAS,EACTiG,EAASyd,MAAMwpC,EAAIpoD,MAKvB,OAHAooD,EAAI/0C,SAAQ,SAASjW,GACnB+D,IAASjG,GAASkC,KAEb+D,EAIT,IAeM6C,EAvCW2jD,EAAM50B,EAwBnBonC,EAAav7C,MAAMrM,UACnB6nD,EAAYhB,SAAS7mD,UACrB8nD,EAAcp9D,OAAOsV,UAGrB+nD,EAAanB,EAAK,sBAGlBoB,EAAeH,EAAU3lD,SAGzByzC,EAAiBmS,EAAYnS,eAG7BsS,GACEx2D,EAAM,SAASy2D,KAAKH,GAAcA,EAAW58D,MAAQ48D,EAAW58D,KAAKg9D,UAAY,KACvE,iBAAmB12D,EAAO,GAQtC22D,EAAuBN,EAAY5lD,SAGnCmmD,EAAa1uC,OAAO,IACtBquC,EAAa7lD,KAAKwzC,GAAgBx5C,QA7PjB,sBA6PuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5EmsD,EAASrB,EAAgBL,EAAK0B,YAASr/D,EACvC4kD,EAAS+Y,EAAK/Y,OACd0a,EAAa3B,EAAK2B,WAClBtL,EAAuB6K,EAAY7K,qBACnCxoC,EAASmzC,EAAWnzC,OACpB+zC,GAAiB3a,EAASA,EAAO4a,iBAAcx/D,EAG/Cy/D,GAAmBh+D,OAAO4V,sBAC1BqoD,GAAiBL,EAASA,EAAOM,cAAW3/D,EAC5C4/D,IAnEazT,EAmEQ1qD,OAAOS,KAnETq1B,EAmEe91B,OAlE7B,SAASo+D,GACd,OAAO1T,EAAK50B,EAAUsoC,MAoEtBC,GAAWC,GAAUpC,EAAM,YAC3BqC,GAAMD,GAAUpC,EAAM,OACtBsC,GAAUF,GAAUpC,EAAM,WAC1BuC,GAAMH,GAAUpC,EAAM,OACtB3Q,GAAU+S,GAAUpC,EAAM,WAC1BwC,GAAeJ,GAAUt+D,OAAQ,UAGjC2+D,GAAqBC,GAASP,IAC9BQ,GAAgBD,GAASL,IACzBO,GAAoBF,GAASJ,IAC7BO,GAAgBH,GAASH,IACzBO,GAAoBJ,GAASrT,IAG7B0T,GAAc9b,EAASA,EAAO7tC,eAAY/W,EAC1C2gE,GAAgBD,GAAcA,GAAY/a,aAAU3lD,EASxD,SAAS4gE,GAAKl/D,GACZ,IAAIhC,GAAS,EACTjB,EAAoB,MAAXiD,EAAkB,EAAIA,EAAQjD,OAG3C,IADAkb,KAAKknD,UACInhE,EAAQjB,GAAQ,CACvB,IAAIqiE,EAAQp/D,EAAQhC,GACpBia,KAAKizC,IAAIkU,EAAM,GAAIA,EAAM,KA+F7B,SAASC,GAAUr/D,GACjB,IAAIhC,GAAS,EACTjB,EAAoB,MAAXiD,EAAkB,EAAIA,EAAQjD,OAG3C,IADAkb,KAAKknD,UACInhE,EAAQjB,GAAQ,CACvB,IAAIqiE,EAAQp/D,EAAQhC,GACpBia,KAAKizC,IAAIkU,EAAM,GAAIA,EAAM,KA4G7B,SAASE,GAASt/D,GAChB,IAAIhC,GAAS,EACTjB,EAAoB,MAAXiD,EAAkB,EAAIA,EAAQjD,OAG3C,IADAkb,KAAKknD,UACInhE,EAAQjB,GAAQ,CACvB,IAAIqiE,EAAQp/D,EAAQhC,GACpBia,KAAKizC,IAAIkU,EAAM,GAAIA,EAAM,KA+F7B,SAASG,GAASrvC,GAChB,IAAIlyB,GAAS,EACTjB,EAAmB,MAAVmzB,EAAiB,EAAIA,EAAOnzB,OAGzC,IADAkb,KAAKunD,SAAW,IAAIF,KACXthE,EAAQjB,GACfkb,KAAKo0B,IAAInc,EAAOlyB,IA2CpB,SAASyhE,GAAMz/D,GACb,IAAIqC,EAAO4V,KAAKunD,SAAW,IAAIH,GAAUr/D,GACzCiY,KAAKnV,KAAOT,EAAKS,KAmGnB,SAAS48D,GAAcx/D,EAAOy/D,GAC5B,IAAIC,EAAQj+C,GAAQzhB,GAChB2/D,GAASD,GAASE,GAAY5/D,GAC9B6/D,GAAUH,IAAUC,GAAS5B,GAAS/9D,GACtC8/D,GAAUJ,IAAUC,IAAUE,GAAUnD,GAAa18D,GACrD+/D,EAAcL,GAASC,GAASE,GAAUC,EAC1C/7D,EAASg8D,EAloBf,SAAmBpT,EAAGqT,GAIpB,IAHA,IAAIliE,GAAS,EACTiG,EAASyd,MAAMmrC,KAEV7uD,EAAQ6uD,GACf5oD,EAAOjG,GAASkiE,EAASliE,GAE3B,OAAOiG,EA2nBoBk8D,CAAUjgE,EAAMnD,OAAQgmC,QAAU,GACzDhmC,EAASkH,EAAOlH,OAEpB,IAAK,IAAIgF,KAAO7B,GACTy/D,IAAa3U,EAAexzC,KAAKtX,EAAO6B,IACvCk+D,IAEQ,UAAPl+D,GAECg+D,IAAkB,UAAPh+D,GAA0B,UAAPA,IAE9Bi+D,IAAkB,UAAPj+D,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDq+D,GAAQr+D,EAAKhF,KAElBkH,EAAO9B,KAAKJ,GAGhB,OAAOkC,EAWT,SAASo8D,GAAajW,EAAOroD,GAE3B,IADA,IAAIhF,EAASqtD,EAAMrtD,OACZA,KACL,GAAIujE,GAAGlW,EAAMrtD,GAAQ,GAAIgF,GACvB,OAAOhF,EAGX,OAAQ,EA0BV,SAASwjE,GAAWrgE,GAClB,OAAa,MAATA,OACe5B,IAAV4B,EAt1BQ,qBARL,gBAg2BJ29D,IAAkBA,MAAkB99D,OAAOG,GA0arD,SAAmBA,GACjB,IAAIsgE,EAAQxV,EAAexzC,KAAKtX,EAAO29D,IACnCloB,EAAMz1C,EAAM29D,IAEhB,IACE39D,EAAM29D,SAAkBv/D,EACxB,IAAImiE,GAAW,EACf,MAAOv4D,IAET,IAAIjE,EAASw5D,EAAqBjmD,KAAKtX,GACnCugE,IACED,EACFtgE,EAAM29D,IAAkBloB,SAEjBz1C,EAAM29D,KAGjB,OAAO55D,EA1bHy8D,CAAUxgE,GA4iBhB,SAAwBA,GACtB,OAAOu9D,EAAqBjmD,KAAKtX,GA5iB7BygE,CAAezgE,GAUrB,SAAS0gE,GAAgB1gE,GACvB,OAAO2gE,GAAa3gE,IAAUqgE,GAAWrgE,IAAUy6D,EAiBrD,SAASmG,GAAY5gE,EAAOuzD,EAAOsN,EAASC,EAAYC,GACtD,OAAI/gE,IAAUuzD,IAGD,MAATvzD,GAA0B,MAATuzD,IAAmBoN,GAAa3gE,KAAW2gE,GAAapN,GACpEvzD,GAAUA,GAASuzD,GAAUA,EAmBxC,SAAyBh+C,EAAQg+C,EAAOsN,EAASC,EAAYE,EAAWD,GACtE,IAAIE,EAAWx/C,GAAQlM,GACnB2rD,EAAWz/C,GAAQ8xC,GACnB4N,EAASF,EAAWvG,EAAW0G,GAAO7rD,GACtC8rD,EAASH,EAAWxG,EAAW0G,GAAO7N,GAKtC+N,GAHJH,EAASA,GAAU1G,EAAUQ,EAAYkG,IAGhBlG,EACrBsG,GAHJF,EAASA,GAAU5G,EAAUQ,EAAYoG,IAGhBpG,EACrBuG,EAAYL,GAAUE,EAE1B,GAAIG,GAAazD,GAASxoD,GAAS,CACjC,IAAKwoD,GAASxK,GACZ,OAAO,EAET0N,GAAW,EACXK,GAAW,EAEb,GAAIE,IAAcF,EAEhB,OADAP,IAAUA,EAAQ,IAAIxB,IACd0B,GAAYvE,GAAannD,GAC7BksD,GAAYlsD,EAAQg+C,EAAOsN,EAASC,EAAYE,EAAWD,GAiKnE,SAAoBxrD,EAAQg+C,EAAO9d,EAAKorB,EAASC,EAAYE,EAAWD,GACtE,OAAQtrB,GACN,KAAKgmB,EACH,GAAKlmD,EAAOmsD,YAAcnO,EAAMmO,YAC3BnsD,EAAOosD,YAAcpO,EAAMoO,WAC9B,OAAO,EAETpsD,EAASA,EAAOqsD,OAChBrO,EAAQA,EAAMqO,OAEhB,KAAKpG,EACH,QAAKjmD,EAAOmsD,YAAcnO,EAAMmO,aAC3BV,EAAU,IAAItD,EAAWnoD,GAAS,IAAImoD,EAAWnK,KAKxD,KAAKoH,EACL,KAAKC,EACL,KAAKI,EAGH,OAAOoF,IAAI7qD,GAASg+C,GAEtB,KAAKsH,EACH,OAAOtlD,EAAOhW,MAAQg0D,EAAMh0D,MAAQgW,EAAO/Q,SAAW+uD,EAAM/uD,QAE9D,KAAK22D,EACL,KAAKE,EAIH,OAAO9lD,GAAWg+C,EAAQ,GAE5B,KAAKwH,EACH,IAAI8G,EAAUhF,EAEhB,KAAKzB,EACH,IAAI0G,EAroCiB,EAqoCLjB,EAGhB,GAFAgB,IAAYA,EAAU/E,GAElBvnD,EAAO3S,MAAQ2wD,EAAM3wD,OAASk/D,EAChC,OAAO,EAGT,IAAIC,EAAUhB,EAAM5jE,IAAIoY,GACxB,GAAIwsD,EACF,OAAOA,GAAWxO,EAEpBsN,GA/oCuB,EAkpCvBE,EAAM/V,IAAIz1C,EAAQg+C,GAClB,IAAIxvD,EAAS09D,GAAYI,EAAQtsD,GAASssD,EAAQtO,GAAQsN,EAASC,EAAYE,EAAWD,GAE1F,OADAA,EAAc,OAAExrD,GACTxR,EAET,KAAKu3D,EACH,GAAIyD,GACF,OAAOA,GAAcznD,KAAK/B,IAAWwpD,GAAcznD,KAAKi8C,GAG9D,OAAO,EA9NDyO,CAAWzsD,EAAQg+C,EAAO4N,EAAQN,EAASC,EAAYE,EAAWD,GAExE,KAj8ByB,EAi8BnBF,GAAiC,CACrC,IAAIoB,EAAeX,GAAYxW,EAAexzC,KAAK/B,EAAQ,eACvD2sD,EAAeX,GAAYzW,EAAexzC,KAAKi8C,EAAO,eAE1D,GAAI0O,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe1sD,EAAOvV,QAAUuV,EAC/C6sD,EAAeF,EAAe3O,EAAMvzD,QAAUuzD,EAGlD,OADAwN,IAAUA,EAAQ,IAAIxB,IACfyB,EAAUmB,EAAcC,EAAcvB,EAASC,EAAYC,IAGtE,IAAKS,EACH,OAAO,EAGT,OADAT,IAAUA,EAAQ,IAAIxB,IA6NxB,SAAsBhqD,EAAQg+C,EAAOsN,EAASC,EAAYE,EAAWD,GACnE,IAAIe,EA9qCqB,EA8qCTjB,EACZwB,EAAWC,GAAW/sD,GACtBgtD,EAAYF,EAASxlE,OAErB2lE,EADWF,GAAW/O,GACD12D,OAEzB,GAAI0lE,GAAaC,IAAcV,EAC7B,OAAO,EAET,IAAIhkE,EAAQykE,EACZ,KAAOzkE,KAAS,CACd,IAAI+D,EAAMwgE,EAASvkE,GACnB,KAAMgkE,EAAYjgE,KAAO0xD,EAAQzI,EAAexzC,KAAKi8C,EAAO1xD,IAC1D,OAAO,EAIX,IAAIkgE,EAAUhB,EAAM5jE,IAAIoY,GACxB,GAAIwsD,GAAWhB,EAAM5jE,IAAIo2D,GACvB,OAAOwO,GAAWxO,EAEpB,IAAIxvD,GAAS,EACbg9D,EAAM/V,IAAIz1C,EAAQg+C,GAClBwN,EAAM/V,IAAIuI,EAAOh+C,GAEjB,IAAIktD,EAAWX,EACf,OAAShkE,EAAQykE,GAAW,CAE1B,IAAIG,EAAWntD,EADf1T,EAAMwgE,EAASvkE,IAEX6kE,EAAWpP,EAAM1xD,GAErB,GAAIi/D,EACF,IAAI8B,EAAWd,EACXhB,EAAW6B,EAAUD,EAAU7gE,EAAK0xD,EAAOh+C,EAAQwrD,GACnDD,EAAW4B,EAAUC,EAAU9gE,EAAK0T,EAAQg+C,EAAOwN,GAGzD,UAAmB3iE,IAAbwkE,EACGF,IAAaC,GAAY3B,EAAU0B,EAAUC,EAAU9B,EAASC,EAAYC,GAC7E6B,GACD,CACL7+D,GAAS,EACT,MAEF0+D,IAAaA,EAAkB,eAAP5gE,GAE1B,GAAIkC,IAAW0+D,EAAU,CACvB,IAAII,EAAUttD,EAAOiB,YACjBssD,EAAUvP,EAAM/8C,YAGhBqsD,GAAWC,KACV,gBAAiBvtD,MAAU,gBAAiBg+C,IACzB,mBAAXsP,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvD/+D,GAAS,GAKb,OAFAg9D,EAAc,OAAExrD,GAChBwrD,EAAc,OAAExN,GACTxvD,EAzRAg/D,CAAaxtD,EAAQg+C,EAAOsN,EAASC,EAAYE,EAAWD,GA3D5DiC,CAAgBhjE,EAAOuzD,EAAOsN,EAASC,EAAYF,GAAaG,IAsEzE,SAASkC,GAAajjE,GACpB,SAAKkjE,GAASljE,IAwahB,SAAkBuqD,GAChB,QAAS6S,GAAeA,KAAc7S,EAzad4Y,CAASnjE,MAGnBojE,GAAWpjE,GAASw9D,EAAa9B,GAChC/rC,KAAK8uC,GAASz+D,IAsB/B,SAASqjE,GAAS9tD,GAChB,GAyZI+tD,GADetjE,EAxZFuV,IAyZGvV,EAAMwW,YACtB+sD,EAAwB,mBAARD,GAAsBA,EAAKnuD,WAAc8nD,EAEtDj9D,IAAUujE,EA3Zf,OAAOvF,GAAWzoD,GAuZtB,IAAqBvV,EACfsjE,EACAC,EAvZAx/D,EAAS,GACb,IAAK,IAAIlC,KAAOhC,OAAO0V,GACjBu1C,EAAexzC,KAAK/B,EAAQ1T,IAAe,eAAPA,GACtCkC,EAAO9B,KAAKJ,GAGhB,OAAOkC,EAgBT,SAAS09D,GAAYvX,EAAOqJ,EAAOsN,EAASC,EAAYE,EAAWD,GACjE,IAAIe,EAlhCqB,EAkhCTjB,EACZ2C,EAAYtZ,EAAMrtD,OAClB2lE,EAAYjP,EAAM12D,OAEtB,GAAI2mE,GAAahB,KAAeV,GAAaU,EAAYgB,GACvD,OAAO,EAGT,IAAIzB,EAAUhB,EAAM5jE,IAAI+sD,GACxB,GAAI6X,GAAWhB,EAAM5jE,IAAIo2D,GACvB,OAAOwO,GAAWxO,EAEpB,IAAIz1D,GAAS,EACTiG,GAAS,EACT0/D,EA/hCuB,EA+hCf5C,EAAoC,IAAIxB,QAAWjhE,EAM/D,IAJA2iE,EAAM/V,IAAId,EAAOqJ,GACjBwN,EAAM/V,IAAIuI,EAAOrJ,KAGRpsD,EAAQ0lE,GAAW,CAC1B,IAAIE,EAAWxZ,EAAMpsD,GACjB6kE,EAAWpP,EAAMz1D,GAErB,GAAIgjE,EACF,IAAI8B,EAAWd,EACXhB,EAAW6B,EAAUe,EAAU5lE,EAAOy1D,EAAOrJ,EAAO6W,GACpDD,EAAW4C,EAAUf,EAAU7kE,EAAOosD,EAAOqJ,EAAOwN,GAE1D,QAAiB3iE,IAAbwkE,EAAwB,CAC1B,GAAIA,EACF,SAEF7+D,GAAS,EACT,MAGF,GAAI0/D,GACF,IAAK9G,EAAUpJ,GAAO,SAASoP,EAAUgB,GACnC,GA72Ba9hE,EA62BO8hE,GAANF,EA52BXx2D,IAAIpL,KA62BF6hE,IAAaf,GAAY3B,EAAU0C,EAAUf,EAAU9B,EAASC,EAAYC,IAC/E,OAAO0C,EAAKxhE,KAAK0hE,GA/2B/B,IAAyB9hE,KAi3BX,CACNkC,GAAS,EACT,YAEG,GACD2/D,IAAaf,IACX3B,EAAU0C,EAAUf,EAAU9B,EAASC,EAAYC,GACpD,CACLh9D,GAAS,EACT,OAKJ,OAFAg9D,EAAc,OAAE7W,GAChB6W,EAAc,OAAExN,GACTxvD,EAyKT,SAASu+D,GAAW/sD,GAClB,OApZF,SAAwBA,EAAQquD,EAAUC,GACxC,IAAI9/D,EAAS6/D,EAASruD,GACtB,OAAOkM,GAAQlM,GAAUxR,EAhuB3B,SAAmBmmD,EAAOl6B,GAKxB,IAJA,IAAIlyB,GAAS,EACTjB,EAASmzB,EAAOnzB,OAChBinE,EAAS5Z,EAAMrtD,SAEViB,EAAQjB,GACfqtD,EAAM4Z,EAAShmE,GAASkyB,EAAOlyB,GAEjC,OAAOosD,EAwtB2B6Z,CAAUhgE,EAAQ8/D,EAAYtuD,IAkZzDyuD,CAAezuD,EAAQjV,GAAM2jE,IAWtC,SAASC,GAAWviE,EAAKE,GACvB,IAsHiB7B,EACb/D,EAvHAkG,EAAOR,EAAI29D,SACf,OAuHgB,WADZrjE,SADa+D,EArHA6B,KAuHmB,UAAR5F,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV+D,EACU,OAAVA,GAxHDmC,EAAmB,iBAAPN,EAAkB,SAAW,QACzCM,EAAKR,IAWX,SAASw8D,GAAU5oD,EAAQ1T,GACzB,IAAI7B,EAxjCN,SAAkBuV,EAAQ1T,GACxB,OAAiB,MAAV0T,OAAiBnX,EAAYmX,EAAO1T,GAujC/BsiE,CAAS5uD,EAAQ1T,GAC7B,OAAOohE,GAAajjE,GAASA,OAAQ5B,EAp2BvC4gE,GAAK7pD,UAAU8pD,MAvEf,WACElnD,KAAKunD,SAAWf,GAAeA,GAAa,MAAQ,GACpDxmD,KAAKnV,KAAO,GAsEdo8D,GAAK7pD,UAAkB,OAzDvB,SAAoBtT,GAClB,IAAIkC,EAASgU,KAAK9K,IAAIpL,WAAekW,KAAKunD,SAASz9D,GAEnD,OADAkW,KAAKnV,MAAQmB,EAAS,EAAI,EACnBA,GAuDTi7D,GAAK7pD,UAAUhY,IA3Cf,SAAiB0E,GACf,IAAIM,EAAO4V,KAAKunD,SAChB,GAAIf,GAAc,CAChB,IAAIx6D,EAAS5B,EAAKN,GAClB,OAAOkC,IAAWw2D,OAAiBn8D,EAAY2F,EAEjD,OAAO+mD,EAAexzC,KAAKnV,EAAMN,GAAOM,EAAKN,QAAOzD,GAsCtD4gE,GAAK7pD,UAAUlI,IA1Bf,SAAiBpL,GACf,IAAIM,EAAO4V,KAAKunD,SAChB,OAAOf,QAA8BngE,IAAd+D,EAAKN,GAAsBipD,EAAexzC,KAAKnV,EAAMN,IAyB9Em9D,GAAK7pD,UAAU61C,IAZf,SAAiBnpD,EAAK7B,GACpB,IAAImC,EAAO4V,KAAKunD,SAGhB,OAFAvnD,KAAKnV,MAAQmV,KAAK9K,IAAIpL,GAAO,EAAI,EACjCM,EAAKN,GAAQ08D,SAA0BngE,IAAV4B,EAAuBu6D,EAAiBv6D,EAC9D+X,MAuHTonD,GAAUhqD,UAAU8pD,MApFpB,WACElnD,KAAKunD,SAAW,GAChBvnD,KAAKnV,KAAO,GAmFdu8D,GAAUhqD,UAAkB,OAvE5B,SAAyBtT,GACvB,IAAIM,EAAO4V,KAAKunD,SACZxhE,EAAQqiE,GAAah+D,EAAMN,GAE/B,QAAI/D,EAAQ,KAIRA,GADYqE,EAAKtF,OAAS,EAE5BsF,EAAKyvC,MAELhoB,EAAOtS,KAAKnV,EAAMrE,EAAO,KAEzBia,KAAKnV,MACA,IA0DTu8D,GAAUhqD,UAAUhY,IA9CpB,SAAsB0E,GACpB,IAAIM,EAAO4V,KAAKunD,SACZxhE,EAAQqiE,GAAah+D,EAAMN,GAE/B,OAAO/D,EAAQ,OAAIM,EAAY+D,EAAKrE,GAAO,IA2C7CqhE,GAAUhqD,UAAUlI,IA/BpB,SAAsBpL,GACpB,OAAOs+D,GAAapoD,KAAKunD,SAAUz9D,IAAQ,GA+B7Cs9D,GAAUhqD,UAAU61C,IAlBpB,SAAsBnpD,EAAK7B,GACzB,IAAImC,EAAO4V,KAAKunD,SACZxhE,EAAQqiE,GAAah+D,EAAMN,GAQ/B,OANI/D,EAAQ,KACRia,KAAKnV,KACPT,EAAKF,KAAK,CAACJ,EAAK7B,KAEhBmC,EAAKrE,GAAO,GAAKkC,EAEZ+X,MAyGTqnD,GAASjqD,UAAU8pD,MAtEnB,WACElnD,KAAKnV,KAAO,EACZmV,KAAKunD,SAAW,CACd,KAAQ,IAAIN,GACZ,IAAO,IAAKZ,IAAOe,IACnB,OAAU,IAAIH,KAkElBI,GAASjqD,UAAkB,OArD3B,SAAwBtT,GACtB,IAAIkC,EAASmgE,GAAWnsD,KAAMlW,GAAa,OAAEA,GAE7C,OADAkW,KAAKnV,MAAQmB,EAAS,EAAI,EACnBA,GAmDTq7D,GAASjqD,UAAUhY,IAvCnB,SAAqB0E,GACnB,OAAOqiE,GAAWnsD,KAAMlW,GAAK1E,IAAI0E,IAuCnCu9D,GAASjqD,UAAUlI,IA3BnB,SAAqBpL,GACnB,OAAOqiE,GAAWnsD,KAAMlW,GAAKoL,IAAIpL,IA2BnCu9D,GAASjqD,UAAU61C,IAdnB,SAAqBnpD,EAAK7B,GACxB,IAAImC,EAAO+hE,GAAWnsD,KAAMlW,GACxBe,EAAOT,EAAKS,KAIhB,OAFAT,EAAK6oD,IAAInpD,EAAK7B,GACd+X,KAAKnV,MAAQT,EAAKS,MAAQA,EAAO,EAAI,EAC9BmV,MAyDTsnD,GAASlqD,UAAUg3B,IAAMkzB,GAASlqD,UAAUlT,KAnB5C,SAAqBjC,GAEnB,OADA+X,KAAKunD,SAAStU,IAAIhrD,EAAOu6D,GAClBxiD,MAkBTsnD,GAASlqD,UAAUlI,IANnB,SAAqBjN,GACnB,OAAO+X,KAAKunD,SAASryD,IAAIjN,IAqG3Bu/D,GAAMpqD,UAAU8pD,MA3EhB,WACElnD,KAAKunD,SAAW,IAAIH,GACpBpnD,KAAKnV,KAAO,GA0Ed28D,GAAMpqD,UAAkB,OA9DxB,SAAqBtT,GACnB,IAAIM,EAAO4V,KAAKunD,SACZv7D,EAAS5B,EAAa,OAAEN,GAG5B,OADAkW,KAAKnV,KAAOT,EAAKS,KACVmB,GA0DTw7D,GAAMpqD,UAAUhY,IA9ChB,SAAkB0E,GAChB,OAAOkW,KAAKunD,SAASniE,IAAI0E,IA8C3B09D,GAAMpqD,UAAUlI,IAlChB,SAAkBpL,GAChB,OAAOkW,KAAKunD,SAASryD,IAAIpL,IAkC3B09D,GAAMpqD,UAAU61C,IArBhB,SAAkBnpD,EAAK7B,GACrB,IAAImC,EAAO4V,KAAKunD,SAChB,GAAIn9D,aAAgBg9D,GAAW,CAC7B,IAAIiF,EAAQjiE,EAAKm9D,SACjB,IAAKlB,IAAQgG,EAAMvnE,OAASwnE,IAG1B,OAFAD,EAAMniE,KAAK,CAACJ,EAAK7B,IACjB+X,KAAKnV,OAAST,EAAKS,KACZmV,KAET5V,EAAO4V,KAAKunD,SAAW,IAAIF,GAASgF,GAItC,OAFAjiE,EAAK6oD,IAAInpD,EAAK7B,GACd+X,KAAKnV,KAAOT,EAAKS,KACVmV,MA+hBT,IAAIksD,GAAcpG,GAA+B,SAAStoD,GACxD,OAAc,MAAVA,EACK,IAETA,EAAS1V,OAAO0V,GA9sClB,SAAqB20C,EAAO0S,GAM1B,IALA,IAAI9+D,GAAS,EACTjB,EAAkB,MAATqtD,EAAgB,EAAIA,EAAMrtD,OACnCynE,EAAW,EACXvgE,EAAS,KAEJjG,EAAQjB,GAAQ,CACvB,IAAImD,EAAQkqD,EAAMpsD,GACd8+D,EAAU58D,EAAOlC,EAAOosD,KAC1BnmD,EAAOugE,KAActkE,GAGzB,OAAO+D,EAmsCAwgE,CAAY1G,GAAiBtoD,IAAS,SAASivD,GACpD,OAAOpS,EAAqB96C,KAAK/B,EAAQivD,QAsd7C,WACE,MAAO,IA5cLpD,GAASf,GAkCb,SAASH,GAAQlgE,EAAOnD,GAEtB,SADAA,EAAmB,MAAVA,EAAiB29D,EAAmB39D,KAE1B,iBAATmD,GAAqB27D,EAAShsC,KAAK3vB,KAC1CA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQnD,EA4D7C,SAAS4hE,GAASlU,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO4S,EAAa7lD,KAAKizC,GACzB,MAAOviD,IACT,IACE,OAAQuiD,EAAO,GACf,MAAOviD,KAEX,MAAO,GAmCT,SAASo4D,GAAGpgE,EAAOuzD,GACjB,OAAOvzD,IAAUuzD,GAAUvzD,GAAUA,GAASuzD,GAAUA,GA5IrD2K,IAAYkD,GAAO,IAAIlD,GAAS,IAAIuG,YAAY,MAAQhJ,GACxD2C,IAAOgD,GAAO,IAAIhD,KAAQrD,GAC1BsD,IAAW+C,GAAO/C,GAAQqG,YAAcxJ,GACxCoD,IAAO8C,GAAO,IAAI9C,KAAQlD,GAC1BhQ,IAAWgW,GAAO,IAAIhW,KAAYmQ,KACrC6F,GAAS,SAASphE,GAChB,IAAI+D,EAASs8D,GAAWrgE,GACpBsjE,EAAOv/D,GAAUk3D,EAAYj7D,EAAMwW,iBAAcpY,EACjDumE,EAAarB,EAAO7E,GAAS6E,GAAQ,GAEzC,GAAIqB,EACF,OAAQA,GACN,KAAKnG,GAAoB,OAAO/C,EAChC,KAAKiD,GAAe,OAAO3D,EAC3B,KAAK4D,GAAmB,OAAOzD,EAC/B,KAAK0D,GAAe,OAAOxD,EAC3B,KAAKyD,GAAmB,OAAOtD,EAGnC,OAAOx3D,IA8IX,IAAI67D,GAAcc,GAAgB,WAAa,OAAO3qD,UAApB,IAAsC2qD,GAAkB,SAAS1gE,GACjG,OAAO2gE,GAAa3gE,IAAU8qD,EAAexzC,KAAKtX,EAAO,YACtDoyD,EAAqB96C,KAAKtX,EAAO,WA0BlCyhB,GAAUD,MAAMC,QAgDpB,IAAIs8C,GAAWD,IA4Of,WACE,OAAO,GA1LT,SAASsF,GAAWpjE,GAClB,IAAKkjE,GAASljE,GACZ,OAAO,EAIT,IAAIy1C,EAAM4qB,GAAWrgE,GACrB,OAAOy1C,GAAOqlB,GAnmDH,8BAmmDcrlB,GAxmDZ,0BAwmD6BA,GA7lD7B,kBA6lDgDA,EA6B/D,SAASmvB,GAAS5kE,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GAASw6D,EA4B7C,SAAS0I,GAASljE,GAChB,IAAI/D,SAAc+D,EAClB,OAAgB,MAATA,IAA0B,UAAR/D,GAA4B,YAARA,GA2B/C,SAAS0kE,GAAa3gE,GACpB,OAAgB,MAATA,GAAiC,iBAATA,EAoBjC,IAAI08D,GAAeD,EAhiDnB,SAAmBlS,GACjB,OAAO,SAASvqD,GACd,OAAOuqD,EAAKvqD,IA8hDsB6kE,CAAUpI,GAnvBhD,SAA0Bz8D,GACxB,OAAO2gE,GAAa3gE,IAClB4kE,GAAS5kE,EAAMnD,WAAa++D,EAAeyE,GAAWrgE,KA+wB1D,SAASM,GAAKiV,GACZ,OA1NgB,OADGvV,EA2NAuV,IA1NKqvD,GAAS5kE,EAAMnD,UAAYumE,GAAWpjE,GA0NjCw/D,GAAcjqD,GAAU8tD,GAAS9tD,GA3NhE,IAAqBvV,EAqQrBw0D,EAAOtR,QAlNP,SAAiBljD,EAAOuzD,GACtB,OAAOqN,GAAY5gE,EAAOuzD,K,iJCrmD5BiB,EAAOtR,QAAU,CACf,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,qBACA,wBACA,2BACA,uBACA,sBACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,0BACA,6BACA,gCACA,4BACA,2BACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,0BACA,6BACA,gCACA,4BACA,2BACA,qBACA,wBACA,2BACA,uBACA,sBACA,aACA,gBACA,mBACA,eACA,cACA,uBACA,0BACA,6BACA,yBACA,wBACA,sBACA,yBACA,4BACA,wBACA,uBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,YACA,eACA,kBACA,cACA,aACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,0BACA,6BACA,gCACA,4BACA,2BACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,gBACA,eACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,uBACA,0BACA,6BACA,yBACA,wBACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,qBACA,wBACA,2BACA,uBACA,sBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,OACA,UACA,aACA,SACA,QACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,SACA,YACA,eACA,WACA,UACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,aACA,gBACA,mBACA,eACA,cACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,uBACA,0BACA,6BACA,yBACA,wBACA,WACA,cACA,iBACA,aACA,YACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,wBACA,2BACA,8BACA,0BACA,yBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,gBACA,mBACA,sBACA,kBACA,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,SACA,YACA,eACA,WACA,UACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,UACA,aACA,gBACA,YACA,WACA,QACA,WACA,cACA,UACA,SACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,KACA,QACA,WACA,OACA,MACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,IACA,OACA,UACA,MACA,KACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,MACA,SACA,YACA,QACA,OACA,SACA,YACA,eACA,WACA,UACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,IACA,OACA,UACA,MACA,KACA,iBACA,oBACA,uBACA,mBACA,kBACA,uBACA,0BACA,6BACA,yBACA,wBACA,wBACA,2BACA,8BACA,0BACA,yBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,UACA,aACA,gBACA,YACA,WACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,wBACA,2BACA,8BACA,0BACA,yBACA,MACA,SACA,YACA,QACA,OACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,iBACA,oBACA,uBACA,mBACA,kBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,qBACA,wBACA,2BACA,uBACA,sBACA,qBACA,wBACA,2BACA,uBACA,sBACA,2BACA,8BACA,iCACA,6BACA,4BACA,OACA,UACA,aACA,SACA,QACA,cACA,iBACA,oBACA,gBACA,eACA,QACA,WACA,cACA,UACA,SACA,gBACA,mBACA,sBACA,kBACA,iBACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,cACA,iBACA,oBACA,gBACA,eACA,WACA,cACA,iBACA,aACA,YACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,WACA,cACA,iBACA,aACA,YACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,gB,8ICljDF,IAAI96B,EAAa,EAAQ,8IACrB08C,EAAY,EAAQ,8GAExBtQ,EAAOtR,QAAU,SAASzlD,EAAO0sD,EAAU4a,GACzC,IAAIrnE,EAASD,EAAM0sD,GACnB,GAAKzsD,EAAL,CAIA,IAAIsnE,EAAW,GAMf,GALAnlE,OAAOS,KAAK5C,GAAQuY,SAAQ,SAASgvD,IACG,IAAlC78C,EAAWif,QAAQ49B,IACrBD,EAAS/iE,KAAKgjE,MAGdD,EAASnoE,OACX,MAAM,IAAI2oD,MAAM,QAAU2E,EAAW,cAAgB4a,EAAgB,sBAAwBC,EAAS/rD,KAAK,SAI/Gu7C,EAAOtR,QAAQljC,WAAa,SAASviB,EAAO0sD,EAAU4a,GACpD,IAAKtnE,EAAM0sD,GACT,MAAM,IAAI3E,MAAM,QAAU2E,EAAW,cAAgB4a,EAAgB,gBAEvE,OAAOvQ,EAAOtR,QAAQzlD,EAAO0sD,EAAU4a,IAGzCvQ,EAAOtR,QAAQgiB,iBAAmBJ,EAAUtT,UAAU,CACpDsT,EAAUxT,QAAQkD,EAAOtR,SACzBsR,EAAOtR","sources":["webpack://grafana/./public/app/features/alerting/getAlertingValidationMessage.ts","webpack://grafana/./public/app/features/alerting/unified/components/DynamicTableWithGuidelines.tsx","webpack://grafana/./public/app/features/alerting/unified/components/RuleLocation.tsx","webpack://grafana/./public/app/features/alerting/unified/components/rules/RuleDetails.tsx","webpack://grafana/./public/app/features/alerting/unified/components/rules/RulesTable.tsx","webpack://grafana/./public/app/features/alerting/unified/hooks/useHasRuler.ts","webpack://grafana/./public/app/features/dashboard/components/DashboardLoading/DashboardFailed.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardLoading/DashboardLoading.tsx","webpack://grafana/./public/app/features/library-panels/components/SaveLibraryPanelModal/SaveLibraryPanelModal.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/actions.ts","webpack://grafana/./public/app/features/dashboard/components/SaveDashboard/UnsavedChangesModal.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardPrompt/DashboardPrompt.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/usePanelLatestData.ts","webpack://grafana/./public/app/features/inspector/InspectMetadataTab.tsx","webpack://grafana/./public/app/features/dashboard/components/Inspector/InspectContent.tsx","webpack://grafana/./public/app/features/dashboard/components/Inspector/hooks.ts","webpack://grafana/./public/app/features/dashboard/components/Inspector/PanelInspector.tsx","webpack://grafana/./.yarn/__virtual__/react-split-pane-virtual-057ebfddec/3/opt/drone/yarncache/react-split-pane-npm-0.1.92-93dbf51dff-4890f17263.zip/node_modules/react-split-pane/dist/index.esm.js","webpack://grafana/./public/app/core/components/SplitPaneWrapper/SplitPaneWrapper.tsx","webpack://grafana/./public/app/features/variables/pickers/PickerRenderer.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/SubMenuItems.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/AngularPanelOptions.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/utils.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/DynamicConfigValueEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/OverrideCategoryTitle.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/getFieldOverrideElements.tsx","webpack://grafana/./public/app/features/library-panels/components/LibraryPanelInfo/LibraryPanelInfo.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/getLibraryPanelOptions.tsx","webpack://grafana/./public/app/features/dashboard/components/RepeatRowSelect/RepeatRowSelect.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/getPanelFrameOptions.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/OptionSearchEngine.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/getRecentOptions.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/OptionsPaneOptions.tsx","webpack://grafana/./public/app/features/dashboard/state/selectors.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/VisualizationButton.tsx","webpack://grafana/./public/app/features/library-panels/components/ChangeLibraryPanelModal/ChangeLibraryPanelModal.tsx","webpack://grafana/./public/app/features/library-panels/components/PanelLibraryOptionsGroup/PanelLibraryOptionsGroup.tsx","webpack://grafana/./public/app/features/panel/state/getAllSuggestions.ts","webpack://grafana/./public/app/features/panel/components/VizTypePicker/VisualizationSuggestionCard.tsx","webpack://grafana/./public/app/features/panel/components/VizTypePicker/VisualizationSuggestions.tsx","webpack://grafana/./public/app/features/panel/components/VizTypePicker/VizTypePickerPlugin.tsx","webpack://grafana/./public/app/features/panel/components/VizTypePicker/VizTypePicker.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/VisualizationSelectPane.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/OptionsPane.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelNotSupported.tsx","webpack://grafana/./public/app/features/alerting/StateHistory.tsx","webpack://grafana/./public/app/features/alerting/TestRuleResult.tsx","webpack://grafana/./public/app/features/alerting/AlertTab.tsx","webpack://grafana/./public/app/features/alerting/unified/components/panel-alerts-tab/NewRuleFromPanelButton.tsx","webpack://grafana/./public/app/features/alerting/unified/hooks/usePanelCombinedRules.ts","webpack://grafana/./public/app/features/alerting/unified/PanelAlertTabContent.tsx","webpack://grafana/./public/app/features/alerting/AlertTabIndex.tsx","webpack://grafana/./public/app/features/alerting/unified/PanelAlertTab.tsx","webpack://grafana/./public/app/core/utils/docsLinks.ts","webpack://grafana/./public/app/features/dashboard/components/TransformationsEditor/TransformationEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/TransformationsEditor/TransformationOperationRow.tsx","webpack://grafana/./public/app/features/dashboard/components/TransformationsEditor/TransformationOperationRows.tsx","webpack://grafana/./public/app/features/dashboard/components/TransformationsEditor/TransformationsEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorQueries.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorTabs.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/selectors.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/AnnotationPicker.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/Annotations.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/DashboardLinksDashboard.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/DashboardLinks.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/SubMenu.tsx","webpack://grafana/./public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.tsx","webpack://grafana/./public/app/features/dashboard/components/RowOptions/RowOptionsForm.tsx","webpack://grafana/./public/app/features/dashboard/components/RowOptions/RowOptionsModal.tsx","webpack://grafana/./public/app/features/dashboard/components/RowOptions/RowOptionsButton.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardRow/DashboardRow.tsx","webpack://grafana/./public/app/features/dashboard/dashgrid/DashboardGrid.tsx","webpack://grafana/./public/app/features/dashboard/containers/DashboardPage.tsx","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/GridItem.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ReactGridLayout.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ReactGridLayoutPropTypes.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ResponsiveReactGridLayout.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/calculateUtils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/components/WidthProvider.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/fastRGLPropsEqual.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/responsiveUtils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/utils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/index.js","webpack://grafana/./.yarn/__virtual__/react-resizable-virtual-13412137cd/3/opt/drone/yarncache/react-resizable-npm-3.0.4-aa39f9db2b-cbf86ad04b.zip/node_modules/react-resizable/build/Resizable.js","webpack://grafana/./.yarn/__virtual__/react-resizable-virtual-13412137cd/3/opt/drone/yarncache/react-resizable-npm-3.0.4-aa39f9db2b-cbf86ad04b.zip/node_modules/react-resizable/build/ResizableBox.js","webpack://grafana/./.yarn/__virtual__/react-resizable-virtual-13412137cd/3/opt/drone/yarncache/react-resizable-npm-3.0.4-aa39f9db2b-cbf86ad04b.zip/node_modules/react-resizable/build/propTypes.js","webpack://grafana/./.yarn/__virtual__/react-resizable-virtual-13412137cd/3/opt/drone/yarncache/react-resizable-npm-3.0.4-aa39f9db2b-cbf86ad04b.zip/node_modules/react-resizable/build/utils.js","webpack://grafana/./.yarn/__virtual__/react-resizable-virtual-13412137cd/3/opt/drone/yarncache/react-resizable-npm-3.0.4-aa39f9db2b-cbf86ad04b.zip/node_modules/react-resizable/index.js","webpack://grafana/../../opt/drone/yarncache/lodash.isequal-npm-4.5.0-f8b0f64d63-da27515dc5.zip/node_modules/lodash.isequal/index.js","webpack://grafana/../../opt/drone/yarncache/react-style-proptype-npm-3.2.2-d7241ef02d-f0e646e148.zip/node_modules/react-style-proptype/src/css-properties.js","webpack://grafana/../../opt/drone/yarncache/react-style-proptype-npm-3.2.2-d7241ef02d-f0e646e148.zip/node_modules/react-style-proptype/src/index.js"],"sourcesContent":["import { DataQuery, DataSourceRef, DataTransformerConfig } from '@grafana/data';\nimport { DataSourceSrv } from '@grafana/runtime';\n\nexport const getDefaultCondition = () => ({\n type: 'query',\n query: { params: ['A', '5m', 'now'] },\n reducer: { type: 'avg', params: [] as any[] },\n evaluator: { type: 'gt', params: [null] as any[] },\n operator: { type: 'and' },\n});\n\nexport const getAlertingValidationMessage = async (\n transformations: DataTransformerConfig[] | undefined,\n targets: DataQuery[],\n datasourceSrv: DataSourceSrv,\n datasource: DataSourceRef | null\n): Promise => {\n if (targets.length === 0) {\n return 'Could not find any metric queries';\n }\n\n if (transformations && transformations.length) {\n return 'Transformations are not supported in alert queries';\n }\n\n let alertingNotSupported = 0;\n let templateVariablesNotSupported = 0;\n\n for (const target of targets) {\n const dsRef = target.datasource || datasource;\n const ds = await datasourceSrv.get(dsRef);\n if (!ds.meta.alerting) {\n alertingNotSupported++;\n } else if (ds.targetContainsTemplate && ds.targetContainsTemplate(target)) {\n templateVariablesNotSupported++;\n }\n }\n\n if (alertingNotSupported === targets.length) {\n return 'The datasource does not support alerting queries';\n }\n\n if (templateVariablesNotSupported === targets.length) {\n return 'Template variables are not supported in alert queries';\n }\n\n return '';\n};\n","import { css, cx } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\nimport { DynamicTable, DynamicTableProps } from './DynamicTable';\n\nexport type DynamicTableWithGuidelinesProps = Omit, 'renderPrefixHeader, renderPrefixCell'>;\n\n// DynamicTable, but renders visual guidelines on the left, for larger screen widths\nexport const DynamicTableWithGuidelines = ({\n renderExpandedContent,\n ...props\n}: DynamicTableWithGuidelinesProps) => {\n const styles = useStyles2(getStyles);\n return (\n (\n <>\n {!(index === items.length - 1) &&
}\n {renderExpandedContent(item, index, items)}\n \n )\n : undefined\n }\n renderPrefixHeader={() => (\n
\n
\n
\n )}\n renderPrefixCell={(_, index, items) => (\n
\n
\n {!(index === items.length - 1) &&
}\n
\n )}\n {...props}\n />\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme2) => ({\n relative: css`\n position: relative;\n height: 100%;\n `,\n guideline: css`\n left: -19px;\n border-left: 1px solid ${theme.colors.border.medium};\n position: absolute;\n\n ${theme.breakpoints.down('md')} {\n display: none;\n }\n `,\n topGuideline: css`\n width: 18px;\n border-bottom: 1px solid ${theme.colors.border.medium};\n top: 0;\n bottom: 50%;\n `,\n bottomGuideline: css`\n top: 50%;\n bottom: 0;\n `,\n contentGuideline: css`\n top: 0;\n bottom: 0;\n left: -49px !important;\n `,\n headerGuideline: css`\n top: -25px;\n bottom: 0;\n `,\n});\n","import React, { FC } from 'react';\n\nimport { Icon } from '@grafana/ui';\n\ninterface RuleLocationProps {\n namespace: string;\n group?: string;\n}\n\nconst RuleLocation: FC = ({ namespace, group }) => {\n if (!group) {\n return <>{namespace};\n }\n\n return (\n <>\n {namespace} {group}\n \n );\n};\n\nexport { RuleLocation };\n","import { css } from '@emotion/css';\nimport React, { FC } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport { CombinedRule } from 'app/types/unified-alerting';\n\nimport { AlertLabels } from '../AlertLabels';\nimport { DetailsField } from '../DetailsField';\n\nimport { RuleDetailsActionButtons } from './RuleDetailsActionButtons';\nimport { RuleDetailsAnnotations } from './RuleDetailsAnnotations';\nimport { RuleDetailsDataSources } from './RuleDetailsDataSources';\nimport { RuleDetailsExpression } from './RuleDetailsExpression';\nimport { RuleDetailsMatchingInstances } from './RuleDetailsMatchingInstances';\n\ninterface Props {\n rule: CombinedRule;\n}\n\nexport const RuleDetails: FC = ({ rule }) => {\n const styles = useStyles2(getStyles);\n const {\n promRule,\n namespace: { rulesSource },\n } = rule;\n\n const annotations = Object.entries(rule.annotations).filter(([_, value]) => !!value.trim());\n\n return (\n
\n \n
\n
\n {!!rule.labels && !!Object.keys(rule.labels).length && (\n \n \n \n )}\n \n \n
\n
\n \n
\n
\n \n
\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme2) => ({\n wrapper: css`\n display: flex;\n flex-direction: row;\n ${theme.breakpoints.down('md')} {\n flex-direction: column;\n }\n `,\n leftSide: css`\n flex: 1;\n `,\n rightSide: css`\n ${theme.breakpoints.up('md')} {\n padding-left: 90px;\n width: 300px;\n }\n `,\n});\n","import { css, cx } from '@emotion/css';\nimport React, { FC, useMemo } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport { CombinedRule } from 'app/types/unified-alerting';\n\nimport { useHasRuler } from '../../hooks/useHasRuler';\nimport { Annotation } from '../../utils/constants';\nimport { DynamicTable, DynamicTableColumnProps, DynamicTableItemProps } from '../DynamicTable';\nimport { DynamicTableWithGuidelines } from '../DynamicTableWithGuidelines';\nimport { RuleLocation } from '../RuleLocation';\n\nimport { RuleDetails } from './RuleDetails';\nimport { RuleHealth } from './RuleHealth';\nimport { RuleState } from './RuleState';\n\ntype RuleTableColumnProps = DynamicTableColumnProps;\ntype RuleTableItemProps = DynamicTableItemProps;\n\ninterface Props {\n rules: CombinedRule[];\n showGuidelines?: boolean;\n showGroupColumn?: boolean;\n showSummaryColumn?: boolean;\n emptyMessage?: string;\n className?: string;\n}\n\nexport const RulesTable: FC = ({\n rules,\n className,\n showGuidelines = false,\n emptyMessage = 'No rules found.',\n showGroupColumn = false,\n showSummaryColumn = false,\n}) => {\n const styles = useStyles2(getStyles);\n\n const wrapperClass = cx(styles.wrapper, className, { [styles.wrapperMargin]: showGuidelines });\n\n const items = useMemo((): RuleTableItemProps[] => {\n const seenKeys: string[] = [];\n return rules.map((rule, ruleIdx) => {\n let key = JSON.stringify([rule.promRule?.type, rule.labels, rule.query, rule.name, rule.annotations]);\n if (seenKeys.includes(key)) {\n key += `-${ruleIdx}`;\n }\n seenKeys.push(key);\n return {\n id: key,\n data: rule,\n };\n });\n }, [rules]);\n\n const columns = useColumns(showSummaryColumn, showGroupColumn);\n\n if (!rules.length) {\n return
{emptyMessage}
;\n }\n\n const TableComponent = showGuidelines ? DynamicTableWithGuidelines : DynamicTable;\n\n return (\n
\n }\n />\n
\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme2) => ({\n wrapperMargin: css`\n ${theme.breakpoints.up('md')} {\n margin-left: 36px;\n }\n `,\n emptyMessage: css`\n padding: ${theme.spacing(1)};\n `,\n wrapper: css`\n width: auto;\n background-color: ${theme.colors.background.secondary};\n border-radius: ${theme.shape.borderRadius()};\n `,\n});\n\nfunction useColumns(showSummaryColumn: boolean, showGroupColumn: boolean) {\n const hasRuler = useHasRuler();\n\n return useMemo((): RuleTableColumnProps[] => {\n const columns: RuleTableColumnProps[] = [\n {\n id: 'state',\n label: 'State',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => {\n const { namespace } = rule;\n const { rulesSource } = namespace;\n const { promRule, rulerRule } = rule;\n const isDeleting = !!(hasRuler(rulesSource) && promRule && !rulerRule);\n const isCreating = !!(hasRuler(rulesSource) && rulerRule && !promRule);\n return ;\n },\n size: '165px',\n },\n {\n id: 'name',\n label: 'Name',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => rule.name,\n size: 5,\n },\n {\n id: 'health',\n label: 'Health',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: { promRule } }) => (promRule ? : null),\n size: '75px',\n },\n ];\n if (showSummaryColumn) {\n columns.push({\n id: 'summary',\n label: 'Summary',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => rule.annotations[Annotation.summary] ?? '',\n size: 5,\n });\n }\n if (showGroupColumn) {\n columns.push({\n id: 'group',\n label: 'Group',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => {\n const { namespace, group } = rule;\n // ungrouped rules are rules that are in the \"default\" group name\n const isUngrouped = group.name === 'default';\n const groupName = isUngrouped ? (\n \n ) : (\n \n );\n\n return groupName;\n },\n size: 5,\n });\n }\n return columns;\n }, [hasRuler, showSummaryColumn, showGroupColumn]);\n}\n","import { useCallback } from 'react';\n\nimport { RulesSource } from 'app/types/unified-alerting';\n\nimport { GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';\n\nimport { useUnifiedAlertingSelector } from './useUnifiedAlertingSelector';\n\n// datasource has ruler if it's grafana managed or if we're able to load rules from it\nexport function useHasRuler(): (rulesSource: string | RulesSource) => boolean {\n const rulerRules = useUnifiedAlertingSelector((state) => state.rulerRules);\n return useCallback(\n (rulesSource: string | RulesSource) => {\n const rulesSourceName = typeof rulesSource === 'string' ? rulesSource : rulesSource.name;\n return rulesSourceName === GRAFANA_RULES_SOURCE_NAME || !!rulerRules[rulesSourceName]?.result;\n },\n [rulerRules]\n );\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme } from '@grafana/data';\nimport { Alert, useStyles } from '@grafana/ui';\nimport { getMessageFromError } from 'app/core/utils/errors';\nimport { DashboardInitError, AppNotificationSeverity } from 'app/types';\n\nexport interface Props {\n initError?: DashboardInitError;\n}\n\nexport const DashboardFailed = ({ initError }: Props) => {\n const styles = useStyles(getStyles);\n if (!initError) {\n return null;\n }\n\n return (\n
\n \n {getMessageFromError(initError.error)}\n \n
\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme) => {\n return {\n dashboardLoading: css`\n height: 60vh;\n display: flex;\n align-items: center;\n justify-content: center;\n `,\n };\n};\n","import { css, keyframes } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme } from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\nimport { Button, HorizontalGroup, Spinner, useStyles, VerticalGroup } from '@grafana/ui';\nimport { DashboardInitPhase } from 'app/types';\n\nexport interface Props {\n initPhase: DashboardInitPhase;\n}\n\nexport const DashboardLoading = ({ initPhase }: Props) => {\n const styles = useStyles(getStyles);\n const cancelVariables = () => {\n locationService.push('/');\n };\n\n return (\n
\n
\n \n \n {initPhase}\n {' '}\n \n \n \n \n
\n
\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme) => {\n // Amount of time we want to pass before we start showing loading spinner\n const slowStartThreshold = '0.5s';\n\n const invisibleToVisible = keyframes`\n 0% { opacity: 0%; }\n 100% { opacity: 100%; }\n `;\n\n return {\n dashboardLoading: css`\n height: 60vh;\n display: flex;\n opacity: 0%;\n align-items: center;\n justify-content: center;\n animation: ${invisibleToVisible} 0s step-end ${slowStartThreshold} 1 normal forwards;\n `,\n dashboardLoadingText: css`\n font-size: ${theme.typography.size.lg};\n `,\n };\n};\n","import React, { useCallback, useState } from 'react';\nimport { useAsync, useDebounce } from 'react-use';\n\nimport { Button, Icon, Input, Modal, useStyles } from '@grafana/ui';\n\nimport { getConnectedDashboards } from '../../state/api';\nimport { getModalStyles } from '../../styles';\nimport { PanelModelWithLibraryPanel } from '../../types';\nimport { usePanelSave } from '../../utils/usePanelSave';\n\ninterface Props {\n panel: PanelModelWithLibraryPanel;\n folderId: number;\n isUnsavedPrompt?: boolean;\n onConfirm: () => void;\n onDismiss: () => void;\n onDiscard: () => void;\n}\n\nexport const SaveLibraryPanelModal: React.FC = ({\n panel,\n folderId,\n isUnsavedPrompt,\n onDismiss,\n onConfirm,\n onDiscard,\n}) => {\n const [searchString, setSearchString] = useState('');\n const dashState = useAsync(async () => {\n const searchHits = await getConnectedDashboards(panel.libraryPanel.uid);\n if (searchHits.length > 0) {\n return searchHits.map((dash) => dash.title);\n }\n\n return [];\n }, [panel.libraryPanel.uid]);\n\n const [filteredDashboards, setFilteredDashboards] = useState([]);\n useDebounce(\n () => {\n if (!dashState.value) {\n return setFilteredDashboards([]);\n }\n\n return setFilteredDashboards(\n dashState.value.filter((dashName) => dashName.toLowerCase().includes(searchString.toLowerCase()))\n );\n },\n 300,\n [dashState.value, searchString]\n );\n\n const { saveLibraryPanel } = usePanelSave();\n const styles = useStyles(getModalStyles);\n const discardAndClose = useCallback(() => {\n onDiscard();\n }, [onDiscard]);\n\n const title = isUnsavedPrompt ? 'Unsaved library panel changes' : 'Save library panel';\n\n return (\n \n
\n

\n {'This update will affect '}\n \n {panel.libraryPanel.meta.connectedDashboards}{' '}\n {panel.libraryPanel.meta.connectedDashboards === 1 ? 'dashboard' : 'dashboards'}.\n \n The following dashboards using the panel will be affected:\n

\n }\n placeholder=\"Search affected dashboards\"\n value={searchString}\n onChange={(e) => setSearchString(e.currentTarget.value)}\n />\n {dashState.loading ? (\n

Loading connected dashboards...

\n ) : (\n \n \n \n \n \n \n \n {filteredDashboards.map((dashName, i) => (\n \n \n \n ))}\n \n
Dashboard name
{dashName}
\n )}\n \n \n {isUnsavedPrompt && (\n \n )}\n {\n saveLibraryPanel(panel, folderId).then(() => {\n onConfirm();\n });\n }}\n >\n Update all\n \n \n
\n
\n );\n};\n","import { pick } from 'lodash';\n\nimport store from 'app/core/store';\nimport { cleanUpPanelState, initPanelState } from 'app/features/panel/state/actions';\nimport { panelModelAndPluginReady } from 'app/features/panel/state/reducers';\nimport { ThunkResult } from 'app/types';\n\nimport { DashboardModel, PanelModel } from '../../../state';\n\nimport {\n closeEditor,\n PANEL_EDITOR_UI_STATE_STORAGE_KEY,\n PanelEditorUIState,\n setDiscardChanges,\n setPanelEditorUIState,\n updateEditorInitState,\n} from './reducers';\n\nexport function initPanelEditor(sourcePanel: PanelModel, dashboard: DashboardModel): ThunkResult {\n return async (dispatch) => {\n const panel = dashboard.initEditPanel(sourcePanel);\n\n await dispatch(initPanelState(panel));\n\n dispatch(\n updateEditorInitState({\n panel,\n sourcePanel,\n })\n );\n };\n}\n\nexport function discardPanelChanges(): ThunkResult {\n return async (dispatch, getStore) => {\n const { getPanel } = getStore().panelEditor;\n getPanel().configRev = 0;\n dispatch(setDiscardChanges(true));\n };\n}\n\nexport function updateDuplicateLibraryPanels(\n modifiedPanel: PanelModel,\n dashboard: DashboardModel | null\n): ThunkResult {\n return (dispatch) => {\n if (modifiedPanel.libraryPanel?.uid === undefined || !dashboard) {\n return;\n }\n\n const modifiedSaveModel = modifiedPanel.getSaveModel();\n for (const panel of dashboard.panels) {\n if (skipPanelUpdate(modifiedPanel, panel)) {\n continue;\n }\n\n panel.restoreModel({\n ...modifiedSaveModel,\n ...pick(panel, 'gridPos', 'id'),\n });\n\n // Loaded plugin is not included in the persisted properties\n // So is not handled by restoreModel\n const pluginChanged = panel.plugin?.meta.id !== modifiedPanel.plugin?.meta.id;\n panel.plugin = modifiedPanel.plugin;\n panel.configRev++;\n\n if (pluginChanged) {\n const cleanUpKey = panel.key;\n panel.generateNewKey();\n\n dispatch(panelModelAndPluginReady({ key: panel.key, plugin: panel.plugin!, cleanUpKey }));\n }\n\n // Resend last query result on source panel query runner\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => {\n panel.getQueryRunner().useLastResultFrom(modifiedPanel.getQueryRunner());\n }, 20);\n }\n\n if (modifiedPanel.repeat) {\n // We skip any repeated library panels so we need to update them by calling processRepeats\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => dashboard.processRepeats(), 20);\n }\n };\n}\n\nexport function skipPanelUpdate(modifiedPanel: PanelModel, panelToUpdate: PanelModel): boolean {\n // don't update library panels that aren't of the same type\n if (panelToUpdate.libraryPanel?.uid !== modifiedPanel.libraryPanel!.uid) {\n return true;\n }\n\n // don't update the modifiedPanel twice\n if (panelToUpdate.id && panelToUpdate.id === modifiedPanel.id) {\n return true;\n }\n\n // don't update library panels that are repeated\n if (panelToUpdate.repeatPanelId) {\n return true;\n }\n\n return false;\n}\n\nexport function exitPanelEditor(): ThunkResult {\n return async (dispatch, getStore) => {\n const dashboard = getStore().dashboard.getModel();\n const { getPanel, getSourcePanel, shouldDiscardChanges } = getStore().panelEditor;\n const panel = getPanel();\n\n if (dashboard) {\n dashboard.exitPanelEditor();\n }\n\n if (!shouldDiscardChanges) {\n const modifiedSaveModel = panel.getSaveModel();\n const sourcePanel = getSourcePanel();\n const panelTypeChanged = sourcePanel.type !== panel.type;\n\n dispatch(updateDuplicateLibraryPanels(panel, dashboard));\n\n sourcePanel.restoreModel(modifiedSaveModel);\n sourcePanel.configRev++; // force check the configs\n\n if (panelTypeChanged) {\n // Loaded plugin is not included in the persisted properties so is not handled by restoreModel\n sourcePanel.plugin = panel.plugin;\n const cleanUpKey = sourcePanel.key;\n sourcePanel.generateNewKey();\n\n await dispatch(panelModelAndPluginReady({ key: sourcePanel.key, plugin: panel.plugin!, cleanUpKey }));\n }\n\n // Resend last query result on source panel query runner\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => {\n sourcePanel.getQueryRunner().useLastResultFrom(panel.getQueryRunner());\n sourcePanel.render();\n }, 20);\n }\n\n dispatch(cleanUpPanelState(panel.key));\n dispatch(closeEditor());\n };\n}\n\nexport function updatePanelEditorUIState(uiState: Partial): ThunkResult {\n return (dispatch, getStore) => {\n const nextState = { ...getStore().panelEditor.ui, ...uiState };\n dispatch(setPanelEditorUIState(nextState));\n try {\n store.setObject(PANEL_EDITOR_UI_STATE_STORAGE_KEY, nextState);\n } catch (error) {\n console.error(error);\n }\n };\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { Button, Modal } from '@grafana/ui';\n\nimport { DashboardModel } from '../../state';\n\nimport { SaveDashboardButton } from './SaveDashboardButton';\n\ninterface UnsavedChangesModalProps {\n dashboard: DashboardModel;\n onDiscard: () => void;\n onDismiss: () => void;\n onSaveSuccess?: () => void;\n}\n\nexport const UnsavedChangesModal: React.FC = ({\n dashboard,\n onSaveSuccess,\n onDiscard,\n onDismiss,\n}) => {\n return (\n \n
Do you want to save your changes?
\n \n \n \n \n \n \n );\n};\n","import * as H from 'history';\nimport { each, filter, find } from 'lodash';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Prompt } from 'react-router-dom';\n\nimport { locationService } from '@grafana/runtime';\nimport { ModalsContext } from '@grafana/ui';\nimport { appEvents } from 'app/core/app_events';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport { SaveLibraryPanelModal } from 'app/features/library-panels/components/SaveLibraryPanelModal/SaveLibraryPanelModal';\nimport { PanelModelWithLibraryPanel } from 'app/features/library-panels/types';\nimport { DashboardSavedEvent } from 'app/types/events';\n\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { discardPanelChanges, exitPanelEditor } from '../PanelEditor/state/actions';\nimport { UnsavedChangesModal } from '../SaveDashboard/UnsavedChangesModal';\n\nexport interface Props {\n dashboard: DashboardModel;\n}\n\ninterface State {\n original: object | null;\n originalPath?: string;\n}\n\nexport const DashboardPrompt = React.memo(({ dashboard }: Props) => {\n const [state, setState] = useState({ original: null });\n const dispatch = useDispatch();\n const { original, originalPath } = state;\n const { showModal, hideModal } = useContext(ModalsContext);\n\n useEffect(() => {\n // This timeout delay is to wait for panels to load and migrate scheme before capturing the original state\n // This is to minimize unsaved changes warnings due to automatic schema migrations\n const timeoutId = setTimeout(() => {\n const originalPath = locationService.getLocation().pathname;\n const original = dashboard.getSaveModelClone();\n setState({ originalPath, original });\n }, 1000);\n\n const savedEventUnsub = appEvents.subscribe(DashboardSavedEvent, () => {\n const original = dashboard.getSaveModelClone();\n setState({ originalPath, original });\n });\n\n return () => {\n clearTimeout(timeoutId);\n savedEventUnsub.unsubscribe();\n };\n }, [dashboard, originalPath]);\n\n useEffect(() => {\n const handleUnload = (event: BeforeUnloadEvent) => {\n if (ignoreChanges(dashboard, original)) {\n return;\n }\n if (hasChanges(dashboard, original)) {\n event.preventDefault();\n // No browser actually displays this message anymore.\n // But Chrome requires it to be defined else the popup won't show.\n event.returnValue = '';\n }\n };\n window.addEventListener('beforeunload', handleUnload);\n return () => window.removeEventListener('beforeunload', handleUnload);\n }, [dashboard, original]);\n\n const onHistoryBlock = (location: H.Location) => {\n const panelInEdit = dashboard.panelInEdit;\n const search = new URLSearchParams(location.search);\n\n // Are we leaving panel edit & library panel?\n if (panelInEdit && panelInEdit.libraryPanel && panelInEdit.hasChanged && !search.has('editPanel')) {\n showModal(SaveLibraryPanelModal, {\n isUnsavedPrompt: true,\n panel: dashboard.panelInEdit as PanelModelWithLibraryPanel,\n folderId: dashboard.meta.folderId as number,\n onConfirm: () => {\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDiscard: () => {\n dispatch(discardPanelChanges());\n moveToBlockedLocationAfterReactStateUpdate(location);\n hideModal();\n },\n onDismiss: hideModal,\n });\n return false;\n }\n\n // Are we still on the same dashboard?\n if (originalPath === location.pathname || !original) {\n // This is here due to timing reasons we want the exit panel editor state changes to happen before router update\n if (panelInEdit && !search.has('editPanel')) {\n dispatch(exitPanelEditor());\n }\n\n return true;\n }\n\n if (ignoreChanges(dashboard, original)) {\n return true;\n }\n\n if (!hasChanges(dashboard, original)) {\n return true;\n }\n\n showModal(UnsavedChangesModal, {\n dashboard: dashboard,\n onSaveSuccess: () => {\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDiscard: () => {\n setState({ ...state, original: null });\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDismiss: hideModal,\n });\n\n return false;\n };\n\n return ;\n});\n\nDashboardPrompt.displayName = 'DashboardPrompt';\n\nfunction moveToBlockedLocationAfterReactStateUpdate(location?: H.Location | null) {\n if (location) {\n setTimeout(() => locationService.push(location), 10);\n }\n}\n\n/**\n * For some dashboards and users changes should be ignored *\n */\nexport function ignoreChanges(current: DashboardModel, original: object | null) {\n if (!original) {\n return true;\n }\n\n // Ignore changes if the user has been signed out\n if (!contextSrv.isSignedIn) {\n return true;\n }\n\n if (!current || !current.meta) {\n return true;\n }\n\n const { canSave, fromScript, fromFile } = current.meta;\n if (!contextSrv.isEditor && !canSave) {\n return true;\n }\n\n return !canSave || fromScript || fromFile;\n}\n\n/**\n * Remove stuff that should not count in diff\n */\nfunction cleanDashboardFromIgnoredChanges(dashData: any) {\n // need to new up the domain model class to get access to expand / collapse row logic\n const model = new DashboardModel(dashData);\n\n // Expand all rows before making comparison. This is required because row expand / collapse\n // change order of panel array and panel positions.\n model.expandRows();\n\n const dash = model.getSaveModelClone();\n\n // ignore time and refresh\n dash.time = 0;\n dash.refresh = 0;\n dash.schemaVersion = 0;\n dash.timezone = 0;\n\n // ignore iteration property\n delete dash.iteration;\n\n dash.panels = filter(dash.panels, (panel) => {\n if (panel.repeatPanelId) {\n return false;\n }\n\n // remove scopedVars\n panel.scopedVars = undefined;\n\n // ignore panel legend sort\n if (panel.legend) {\n delete panel.legend.sort;\n delete panel.legend.sortDesc;\n }\n\n return true;\n });\n\n // ignore template variable values\n each(dash.getVariables(), (variable: any) => {\n variable.current = null;\n variable.options = null;\n variable.filters = null;\n });\n\n return dash;\n}\n\nexport function hasChanges(current: DashboardModel, original: any) {\n const currentClean = cleanDashboardFromIgnoredChanges(current.getSaveModelClone());\n const originalClean = cleanDashboardFromIgnoredChanges(original);\n\n const currentTimepicker: any = find((currentClean as any).nav, { type: 'timepicker' });\n const originalTimepicker: any = find((originalClean as any).nav, { type: 'timepicker' });\n\n if (currentTimepicker && originalTimepicker) {\n currentTimepicker.now = originalTimepicker.now;\n }\n\n const currentJson = JSON.stringify(currentClean, null);\n const originalJson = JSON.stringify(originalClean, null);\n\n return currentJson !== originalJson;\n}\n","import { useEffect, useRef, useState } from 'react';\nimport { Unsubscribable } from 'rxjs';\n\nimport { DataQueryError, LoadingState, PanelData } from '@grafana/data';\n\nimport { GetDataOptions } from '../../../query/state/PanelQueryRunner';\nimport { PanelModel } from '../../state';\n\ninterface UsePanelLatestData {\n data?: PanelData;\n error?: DataQueryError;\n isLoading: boolean;\n hasSeries: boolean;\n}\n\n/**\n * Subscribes and returns latest panel data from PanelQueryRunner\n */\nexport const usePanelLatestData = (\n panel: PanelModel,\n options: GetDataOptions,\n checkSchema?: boolean\n): UsePanelLatestData => {\n const querySubscription = useRef();\n const [latestData, setLatestData] = useState();\n\n useEffect(() => {\n let lastRev = -1;\n let lastUpdate = 0;\n\n querySubscription.current = panel\n .getQueryRunner()\n .getData(options)\n .subscribe({\n next: (data) => {\n if (checkSchema) {\n if (lastRev === data.structureRev) {\n const now = Date.now();\n const elapsed = now - lastUpdate;\n if (elapsed < 10000) {\n return; // avoid updates if the schema has not changed for 10s\n }\n lastUpdate = now;\n }\n lastRev = data.structureRev ?? -1;\n }\n setLatestData(data);\n },\n });\n\n return () => {\n if (querySubscription.current) {\n querySubscription.current.unsubscribe();\n }\n };\n /**\n * Adding separate options to dependencies array to avoid additional hook for comparing previous options with current.\n * Otherwise, passing different references to the same object might cause troubles.\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [panel, options.withFieldConfig, options.withTransforms]);\n\n return {\n data: latestData,\n error: latestData && latestData.error,\n isLoading: latestData ? latestData.state === LoadingState.Loading : true,\n hasSeries: latestData ? !!latestData.series : false,\n };\n};\n","import React from 'react';\n\nimport { DataSourceApi, PanelData } from '@grafana/data';\n\ninterface InspectMetadataTabProps {\n data: PanelData;\n metadataDatasource?: DataSourceApi;\n}\nexport const InspectMetadataTab: React.FC = ({ data, metadataDatasource }) => {\n if (!metadataDatasource || !metadataDatasource.components?.MetadataInspector) {\n return
No Metadata Inspector
;\n }\n return ;\n};\n","import React, { useState } from 'react';\n\nimport { DataSourceApi, formattedValueToString, getValueFormat, PanelData, PanelPlugin } from '@grafana/data';\nimport { getTemplateSrv } from '@grafana/runtime';\nimport { Drawer, Tab, TabsBar } from '@grafana/ui';\nimport { InspectDataTab } from 'app/features/inspector/InspectDataTab';\nimport { InspectErrorTab } from 'app/features/inspector/InspectErrorTab';\nimport { InspectJSONTab } from 'app/features/inspector/InspectJSONTab';\nimport { InspectMetadataTab } from 'app/features/inspector/InspectMetadataTab';\nimport { InspectStatsTab } from 'app/features/inspector/InspectStatsTab';\nimport { QueryInspector } from 'app/features/inspector/QueryInspector';\nimport { InspectTab } from 'app/features/inspector/types';\n\nimport { GetDataOptions } from '../../../query/state/PanelQueryRunner';\nimport { DashboardModel, PanelModel } from '../../state';\n\ninterface Props {\n dashboard: DashboardModel;\n panel: PanelModel;\n plugin?: PanelPlugin | null;\n defaultTab?: InspectTab;\n tabs: Array<{ label: string; value: InspectTab }>;\n // The last raw response\n data?: PanelData;\n isDataLoading: boolean;\n dataOptions: GetDataOptions;\n // If the datasource supports custom metadata\n metadataDatasource?: DataSourceApi;\n onDataOptionsChange: (options: GetDataOptions) => void;\n onClose: () => void;\n}\n\nexport const InspectContent: React.FC = ({\n panel,\n plugin,\n dashboard,\n tabs,\n data,\n isDataLoading,\n dataOptions,\n metadataDatasource,\n defaultTab,\n onDataOptionsChange,\n onClose,\n}) => {\n const [currentTab, setCurrentTab] = useState(defaultTab ?? InspectTab.Data);\n\n if (!plugin) {\n return null;\n }\n\n const error = data?.error;\n\n // Validate that the active tab is actually valid and allowed\n let activeTab = currentTab;\n if (!tabs.find((item) => item.value === currentTab)) {\n activeTab = InspectTab.JSON;\n }\n\n const title = getTemplateSrv().replace(panel.title, panel.scopedVars, 'text');\n\n return (\n \n {tabs.map((t, index) => {\n return (\n setCurrentTab(t.value || InspectTab.Data)}\n />\n );\n })}\n \n }\n >\n {activeTab === InspectTab.Data && (\n \n )}\n {data && activeTab === InspectTab.Meta && (\n \n )}\n\n {activeTab === InspectTab.JSON && (\n \n )}\n {activeTab === InspectTab.Error && }\n {data && activeTab === InspectTab.Stats && }\n {data && activeTab === InspectTab.Query && (\n panel.refresh()} />\n )}\n \n );\n};\n\nfunction formatStats(data: PanelData) {\n const { request } = data;\n if (!request) {\n return '';\n }\n\n const queryCount = request.targets.length;\n const requestTime = request.endTime ? request.endTime - request.startTime : 0;\n const formatted = formattedValueToString(getValueFormat('ms')(requestTime));\n\n return `${queryCount} queries with total query time of ${formatted}`;\n}\n","import { useMemo } from 'react';\nimport useAsync from 'react-use/lib/useAsync';\n\nimport { DataQueryError, DataSourceApi, PanelData, PanelPlugin } from '@grafana/data';\nimport { getDataSourceSrv } from '@grafana/runtime';\nimport { DashboardModel, PanelModel } from 'app/features/dashboard/state';\nimport { InspectTab } from 'app/features/inspector/types';\n\nimport { supportsDataQuery } from '../PanelEditor/utils';\n\nimport { PanelInspectActionSupplier } from './PanelInspectActions';\n\n/**\n * Given PanelData return first data source supporting metadata inspector\n */\nexport const useDatasourceMetadata = (data?: PanelData) => {\n const state = useAsync(async () => {\n const targets = data?.request?.targets || [];\n\n if (data && data.series && targets.length) {\n for (const frame of data.series) {\n if (frame.meta && frame.meta.custom) {\n // get data source from first query\n const dataSource = await getDataSourceSrv().get(targets[0].datasource);\n if (dataSource && dataSource.components?.MetadataInspector) {\n return dataSource;\n }\n }\n }\n }\n\n return undefined;\n }, [data]);\n return state.value;\n};\n\n/**\n * Configures tabs for PanelInspector\n */\nexport const useInspectTabs = (\n panel: PanelModel,\n dashboard: DashboardModel,\n plugin: PanelPlugin | undefined | null,\n error?: DataQueryError,\n metaDs?: DataSourceApi\n) => {\n return useMemo(() => {\n const tabs = [];\n if (supportsDataQuery(plugin)) {\n tabs.push({ label: 'Data', value: InspectTab.Data });\n tabs.push({ label: 'Stats', value: InspectTab.Stats });\n }\n\n if (metaDs) {\n tabs.push({ label: 'Meta Data', value: InspectTab.Meta });\n }\n\n tabs.push({ label: 'JSON', value: InspectTab.JSON });\n\n if (error && error.message) {\n tabs.push({ label: 'Error', value: InspectTab.Error });\n }\n\n // This is a quick internal hack to allow custom actions in inspect\n // For 8.1, something like this should be exposed through grafana/runtime\n const supplier = (window as any).grafanaPanelInspectActionSupplier as PanelInspectActionSupplier;\n if (supplier && supplier.getActions(panel)) {\n tabs.push({ label: 'Actions', value: InspectTab.Actions });\n }\n\n if (dashboard.meta.canEdit && supportsDataQuery(plugin)) {\n tabs.push({ label: 'Query', value: InspectTab.Query });\n }\n return tabs;\n }, [panel, plugin, metaDs, dashboard, error]);\n};\n","import React, { useState } from 'react';\nimport { connect, MapStateToProps } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { PanelPlugin } from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\nimport { DashboardModel, PanelModel } from 'app/features/dashboard/state';\nimport { InspectTab } from 'app/features/inspector/types';\nimport { getPanelStateForModel } from 'app/features/panel/state/selectors';\nimport { StoreState } from 'app/types';\n\nimport { GetDataOptions } from '../../../query/state/PanelQueryRunner';\nimport { usePanelLatestData } from '../PanelEditor/usePanelLatestData';\n\nimport { InspectContent } from './InspectContent';\nimport { useDatasourceMetadata, useInspectTabs } from './hooks';\n\ninterface OwnProps {\n dashboard: DashboardModel;\n panel: PanelModel;\n}\n\nexport interface ConnectedProps {\n plugin?: PanelPlugin | null;\n}\n\nexport type Props = OwnProps & ConnectedProps;\n\nconst PanelInspectorUnconnected: React.FC = ({ panel, dashboard, plugin }) => {\n const [dataOptions, setDataOptions] = useState({\n withTransforms: false,\n withFieldConfig: true,\n });\n\n const location = useLocation();\n const { data, isLoading, error } = usePanelLatestData(panel, dataOptions, true);\n const metaDs = useDatasourceMetadata(data);\n const tabs = useInspectTabs(panel, dashboard, plugin, error, metaDs);\n const defaultTab = new URLSearchParams(location.search).get('inspectTab') as InspectTab;\n\n const onClose = () => {\n locationService.partial({\n inspect: null,\n inspectTab: null,\n });\n };\n\n if (!plugin) {\n return null;\n }\n\n return (\n \n );\n};\n\nconst mapStateToProps: MapStateToProps = (state, props) => {\n const panelState = getPanelStateForModel(state, props.panel);\n if (!panelState) {\n return { plugin: null };\n }\n\n return {\n plugin: panelState.plugin,\n };\n};\n\nexport const PanelInspector = connect(mapStateToProps)(PanelInspectorUnconnected);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport stylePropType from 'react-style-proptype';\nimport { polyfill } from 'react-lifecycles-compat';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar Pane = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Pane, _React$PureComponent);\n\n var _super = _createSuper(Pane);\n\n function Pane() {\n _classCallCheck(this, Pane);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Pane, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n split = _this$props.split,\n styleProps = _this$props.style,\n size = _this$props.size,\n eleRef = _this$props.eleRef;\n var classes = ['Pane', split, className];\n var style = {\n flex: 1,\n position: 'relative',\n outline: 'none'\n };\n\n if (size !== undefined) {\n if (split === 'vertical') {\n style.width = size;\n } else {\n style.height = size;\n style.display = 'flex';\n }\n\n style.flex = 'none';\n }\n\n style = Object.assign({}, style, styleProps || {});\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: eleRef,\n className: classes.join(' '),\n style: style\n }, children);\n }\n }]);\n\n return Pane;\n}(React.PureComponent);\n\nPane.propTypes = {\n className: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n eleRef: PropTypes.func\n};\nPane.defaultProps = {};\n\nvar RESIZER_DEFAULT_CLASSNAME = 'Resizer';\n\nvar Resizer = /*#__PURE__*/function (_React$Component) {\n _inherits(Resizer, _React$Component);\n\n var _super = _createSuper(Resizer);\n\n function Resizer() {\n _classCallCheck(this, Resizer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Resizer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n _onClick = _this$props.onClick,\n _onDoubleClick = _this$props.onDoubleClick,\n _onMouseDown = _this$props.onMouseDown,\n _onTouchEnd = _this$props.onTouchEnd,\n _onTouchStart = _this$props.onTouchStart,\n resizerClassName = _this$props.resizerClassName,\n split = _this$props.split,\n style = _this$props.style;\n var classes = [resizerClassName, split, className];\n return /*#__PURE__*/React.createElement(\"span\", {\n role: \"presentation\",\n className: classes.join(' '),\n style: style,\n onMouseDown: function onMouseDown(event) {\n return _onMouseDown(event);\n },\n onTouchStart: function onTouchStart(event) {\n event.preventDefault();\n\n _onTouchStart(event);\n },\n onTouchEnd: function onTouchEnd(event) {\n event.preventDefault();\n\n _onTouchEnd(event);\n },\n onClick: function onClick(event) {\n if (_onClick) {\n event.preventDefault();\n\n _onClick(event);\n }\n },\n onDoubleClick: function onDoubleClick(event) {\n if (_onDoubleClick) {\n event.preventDefault();\n\n _onDoubleClick(event);\n }\n }\n });\n }\n }]);\n\n return Resizer;\n}(React.Component);\n\nResizer.propTypes = {\n className: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onMouseDown: PropTypes.func.isRequired,\n onTouchStart: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired,\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n resizerClassName: PropTypes.string.isRequired\n};\nResizer.defaultProps = {\n resizerClassName: RESIZER_DEFAULT_CLASSNAME\n};\n\nfunction unFocus(document, window) {\n if (document.selection) {\n document.selection.empty();\n } else {\n try {\n window.getSelection().removeAllRanges(); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {\n if (typeof draggedSize === 'number') {\n var min = typeof minSize === 'number' ? minSize : 0;\n var max = typeof maxSize === 'number' && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n\n return minSize;\n}\n\nfunction removeNullChildren(children) {\n return React.Children.toArray(children).filter(function (c) {\n return c;\n });\n}\n\nvar SplitPane = /*#__PURE__*/function (_React$Component) {\n _inherits(SplitPane, _React$Component);\n\n var _super = _createSuper(SplitPane);\n\n function SplitPane(props) {\n var _this;\n\n _classCallCheck(this, SplitPane);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onTouchStart = _this.onTouchStart.bind(_assertThisInitialized(_this));\n _this.onMouseMove = _this.onMouseMove.bind(_assertThisInitialized(_this));\n _this.onTouchMove = _this.onTouchMove.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this)); // order of setting panel sizes.\n // 1. size\n // 2. getDefaultSize(defaultSize, minsize, maxSize)\n\n var size = props.size,\n defaultSize = props.defaultSize,\n minSize = props.minSize,\n maxSize = props.maxSize,\n primary = props.primary;\n var initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);\n _this.state = {\n active: false,\n resized: false,\n pane1Size: primary === 'first' ? initialSize : undefined,\n pane2Size: primary === 'second' ? initialSize : undefined,\n // these are props that are needed in static functions. ie: gDSFP\n instanceProps: {\n size: size\n }\n };\n return _this;\n }\n\n _createClass(SplitPane, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mouseup', this.onMouseUp);\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('touchmove', this.onTouchMove);\n this.setState(SplitPane.getSizeUpdate(this.props, this.state));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mouseup', this.onMouseUp);\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('touchmove', this.onTouchMove);\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchStart(eventWithTouches);\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(event) {\n var _this$props = this.props,\n allowResize = _this$props.allowResize,\n onDragStarted = _this$props.onDragStarted,\n split = _this$props.split;\n\n if (allowResize) {\n unFocus(document, window);\n var position = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n\n if (typeof onDragStarted === 'function') {\n onDragStarted();\n }\n\n this.setState({\n active: true,\n position: position\n });\n }\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchMove(eventWithTouches);\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(event) {\n var _this$props2 = this.props,\n allowResize = _this$props2.allowResize,\n maxSize = _this$props2.maxSize,\n minSize = _this$props2.minSize,\n onChange = _this$props2.onChange,\n split = _this$props2.split,\n step = _this$props2.step;\n var _this$state = this.state,\n active = _this$state.active,\n position = _this$state.position;\n\n if (allowResize && active) {\n unFocus(document, window);\n var isPrimaryFirst = this.props.primary === 'first';\n var ref = isPrimaryFirst ? this.pane1 : this.pane2;\n var ref2 = isPrimaryFirst ? this.pane2 : this.pane1;\n\n if (ref) {\n var node = ref;\n var node2 = ref2;\n\n if (node.getBoundingClientRect) {\n var width = node.getBoundingClientRect().width;\n var height = node.getBoundingClientRect().height;\n var current = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n var size = split === 'vertical' ? width : height;\n var positionDelta = position - current;\n\n if (step) {\n if (Math.abs(positionDelta) < step) {\n return;\n } // Integer division\n // eslint-disable-next-line no-bitwise\n\n\n positionDelta = ~~(positionDelta / step) * step;\n }\n\n var sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n var pane1Order = parseInt(window.getComputedStyle(node).order);\n var pane2Order = parseInt(window.getComputedStyle(node2).order);\n\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n var newMaxSize = maxSize;\n\n if (maxSize !== undefined && maxSize <= 0) {\n var splitPane = this.splitPane;\n\n if (split === 'vertical') {\n newMaxSize = splitPane.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize = splitPane.getBoundingClientRect().height + maxSize;\n }\n }\n\n var newSize = size - sizeDelta;\n var newPosition = position - positionDelta;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (maxSize !== undefined && newSize > newMaxSize) {\n newSize = newMaxSize;\n } else {\n this.setState({\n position: newPosition,\n resized: true\n });\n }\n\n if (onChange) onChange(newSize);\n this.setState(_defineProperty({\n draggedSize: newSize\n }, isPrimaryFirst ? 'pane1Size' : 'pane2Size', newSize));\n }\n }\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp() {\n var _this$props3 = this.props,\n allowResize = _this$props3.allowResize,\n onDragFinished = _this$props3.onDragFinished;\n var _this$state2 = this.state,\n active = _this$state2.active,\n draggedSize = _this$state2.draggedSize;\n\n if (allowResize && active) {\n if (typeof onDragFinished === 'function') {\n onDragFinished(draggedSize);\n }\n\n this.setState({\n active: false\n });\n }\n } // we have to check values since gDSFP is called on every render and more in StrictMode\n\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n allowResize = _this$props4.allowResize,\n children = _this$props4.children,\n className = _this$props4.className,\n onResizerClick = _this$props4.onResizerClick,\n onResizerDoubleClick = _this$props4.onResizerDoubleClick,\n paneClassName = _this$props4.paneClassName,\n pane1ClassName = _this$props4.pane1ClassName,\n pane2ClassName = _this$props4.pane2ClassName,\n paneStyle = _this$props4.paneStyle,\n pane1StyleProps = _this$props4.pane1Style,\n pane2StyleProps = _this$props4.pane2Style,\n resizerClassName = _this$props4.resizerClassName,\n resizerStyle = _this$props4.resizerStyle,\n split = _this$props4.split,\n styleProps = _this$props4.style;\n var _this$state3 = this.state,\n pane1Size = _this$state3.pane1Size,\n pane2Size = _this$state3.pane2Size;\n var disabledClass = allowResize ? '' : 'disabled';\n var resizerClassNamesIncludingDefault = resizerClassName ? \"\".concat(resizerClassName, \" \").concat(RESIZER_DEFAULT_CLASSNAME) : resizerClassName;\n var notNullChildren = removeNullChildren(children);\n\n var style = _objectSpread2({\n display: 'flex',\n flex: 1,\n height: '100%',\n position: 'absolute',\n outline: 'none',\n overflow: 'hidden',\n MozUserSelect: 'text',\n WebkitUserSelect: 'text',\n msUserSelect: 'text',\n userSelect: 'text'\n }, styleProps);\n\n if (split === 'vertical') {\n Object.assign(style, {\n flexDirection: 'row',\n left: 0,\n right: 0\n });\n } else {\n Object.assign(style, {\n bottom: 0,\n flexDirection: 'column',\n minHeight: '100%',\n top: 0,\n width: '100%'\n });\n }\n\n var classes = ['SplitPane', className, split, disabledClass];\n\n var pane1Style = _objectSpread2({}, paneStyle, {}, pane1StyleProps);\n\n var pane2Style = _objectSpread2({}, paneStyle, {}, pane2StyleProps);\n\n var pane1Classes = ['Pane1', paneClassName, pane1ClassName].join(' ');\n var pane2Classes = ['Pane2', paneClassName, pane2ClassName].join(' ');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classes.join(' '),\n ref: function ref(node) {\n _this2.splitPane = node;\n },\n style: style\n }, /*#__PURE__*/React.createElement(Pane, {\n className: pane1Classes,\n key: \"pane1\",\n eleRef: function eleRef(node) {\n _this2.pane1 = node;\n },\n size: pane1Size,\n split: split,\n style: pane1Style\n }, notNullChildren[0]), /*#__PURE__*/React.createElement(Resizer, {\n className: disabledClass,\n onClick: onResizerClick,\n onDoubleClick: onResizerDoubleClick,\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onTouchEnd: this.onMouseUp,\n key: \"resizer\",\n resizerClassName: resizerClassNamesIncludingDefault,\n split: split,\n style: resizerStyle || {}\n }), /*#__PURE__*/React.createElement(Pane, {\n className: pane2Classes,\n key: \"pane2\",\n eleRef: function eleRef(node) {\n _this2.pane2 = node;\n },\n size: pane2Size,\n split: split,\n style: pane2Style\n }, notNullChildren[1]));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n return SplitPane.getSizeUpdate(nextProps, prevState);\n }\n }, {\n key: \"getSizeUpdate\",\n value: function getSizeUpdate(props, state) {\n var newState = {};\n var instanceProps = state.instanceProps;\n\n if (instanceProps.size === props.size && props.size !== undefined) {\n return {};\n }\n\n var newSize = props.size !== undefined ? props.size : getDefaultSize(props.defaultSize, props.minSize, props.maxSize, state.draggedSize);\n\n if (props.size !== undefined) {\n newState.draggedSize = newSize;\n }\n\n var isPanel1Primary = props.primary === 'first';\n newState[isPanel1Primary ? 'pane1Size' : 'pane2Size'] = newSize;\n newState[isPanel1Primary ? 'pane2Size' : 'pane1Size'] = undefined;\n newState.instanceProps = {\n size: props.size\n };\n return newState;\n }\n }]);\n\n return SplitPane;\n}(React.Component);\n\nSplitPane.propTypes = {\n allowResize: PropTypes.bool,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n className: PropTypes.string,\n primary: PropTypes.oneOf(['first', 'second']),\n minSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n defaultSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n onDragStarted: PropTypes.func,\n onDragFinished: PropTypes.func,\n onChange: PropTypes.func,\n onResizerClick: PropTypes.func,\n onResizerDoubleClick: PropTypes.func,\n style: stylePropType,\n resizerStyle: stylePropType,\n paneClassName: PropTypes.string,\n pane1ClassName: PropTypes.string,\n pane2ClassName: PropTypes.string,\n paneStyle: stylePropType,\n pane1Style: stylePropType,\n pane2Style: stylePropType,\n resizerClassName: PropTypes.string,\n step: PropTypes.number\n};\nSplitPane.defaultProps = {\n allowResize: true,\n minSize: 50,\n primary: 'first',\n split: 'vertical',\n paneClassName: '',\n pane1ClassName: '',\n pane2ClassName: ''\n};\npolyfill(SplitPane);\n\nexport default SplitPane;\nexport { Pane };\n","import { css, cx } from '@emotion/css';\nimport React, { createRef, MutableRefObject, PureComponent, ReactNode } from 'react';\nimport SplitPane from 'react-split-pane';\n\nimport { GrafanaTheme } from '@grafana/data';\nimport { stylesFactory } from '@grafana/ui';\nimport { config } from 'app/core/config';\n\nenum Pane {\n Right,\n Top,\n}\n\ninterface Props {\n leftPaneComponents: ReactNode[] | ReactNode;\n rightPaneComponents: ReactNode;\n uiState: { topPaneSize: number; rightPaneSize: number };\n rightPaneVisible?: boolean;\n updateUiState: (uiState: { topPaneSize?: number; rightPaneSize?: number }) => void;\n}\n\nexport class SplitPaneWrapper extends PureComponent {\n rafToken: MutableRefObject = createRef();\n static defaultProps = {\n rightPaneVisible: true,\n };\n\n componentDidMount() {\n window.addEventListener('resize', this.updateSplitPaneSize);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.updateSplitPaneSize);\n }\n\n updateSplitPaneSize = () => {\n if (this.rafToken.current !== undefined) {\n window.cancelAnimationFrame(this.rafToken.current!);\n }\n this.rafToken.current = window.requestAnimationFrame(() => {\n this.forceUpdate();\n });\n };\n\n onDragFinished = (pane: Pane, size?: number) => {\n document.body.style.cursor = 'auto';\n\n // When the drag handle is just clicked size is undefined\n if (!size) {\n return;\n }\n\n const { updateUiState } = this.props;\n if (pane === Pane.Top) {\n updateUiState({\n topPaneSize: size / window.innerHeight,\n });\n } else {\n updateUiState({\n rightPaneSize: size / window.innerWidth,\n });\n }\n };\n\n onDragStarted = () => {\n document.body.style.cursor = 'row-resize';\n };\n\n renderHorizontalSplit() {\n const { leftPaneComponents, uiState } = this.props;\n const styles = getStyles(config.theme);\n const topPaneSize = uiState.topPaneSize >= 1 ? uiState.topPaneSize : uiState.topPaneSize * window.innerHeight;\n\n /*\n Guesstimate the height of the browser window minus\n panel toolbar and editor toolbar (~120px). This is to prevent resizing\n the preview window beyond the browser window.\n */\n\n if (Array.isArray(leftPaneComponents)) {\n return (\n this.onDragFinished(Pane.Top, size)}\n >\n {leftPaneComponents}\n \n );\n }\n\n return leftPaneComponents;\n }\n\n render() {\n const { rightPaneVisible, rightPaneComponents, uiState } = this.props;\n // Limit options pane width to 90% of screen.\n const styles = getStyles(config.theme);\n\n // Need to handle when width is relative. ie a percentage of the viewport\n const rightPaneSize =\n uiState.rightPaneSize <= 1 ? uiState.rightPaneSize * window.innerWidth : uiState.rightPaneSize;\n\n if (!rightPaneVisible) {\n return this.renderHorizontalSplit();\n }\n\n return (\n (document.body.style.cursor = 'col-resize')}\n onDragFinished={(size) => this.onDragFinished(Pane.Right, size)}\n >\n {this.renderHorizontalSplit()}\n {rightPaneComponents}\n \n );\n }\n}\n\nconst getStyles = stylesFactory((theme: GrafanaTheme) => {\n const handleColor = theme.palette.blue95;\n const paneSpacing = theme.spacing.md;\n\n const resizer = css`\n position: relative;\n\n &::before {\n content: '';\n position: absolute;\n transition: 0.2s border-color ease-in-out;\n }\n\n &::after {\n background: ${theme.colors.panelBorder};\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n transition: 0.2s background ease-in-out;\n transform: translate(-50%, -50%);\n border-radius: 4px;\n }\n\n &:hover {\n &::before {\n border-color: ${handleColor};\n }\n\n &::after {\n background: ${handleColor};\n }\n }\n `;\n\n return {\n resizerV: cx(\n resizer,\n css`\n cursor: col-resize;\n width: ${paneSpacing};\n\n &::before {\n border-right: 1px solid transparent;\n height: 100%;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &::after {\n height: 200px;\n width: 4px;\n }\n `\n ),\n resizerH: cx(\n resizer,\n css`\n height: ${paneSpacing};\n cursor: row-resize;\n margin-left: ${paneSpacing};\n\n &::before {\n border-top: 1px solid transparent;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n }\n\n &::after {\n height: 4px;\n width: 200px;\n }\n `\n ),\n };\n});\n","import React, { FunctionComponent, PropsWithChildren, ReactElement, useMemo } from 'react';\n\nimport { selectors } from '@grafana/e2e-selectors';\nimport { Tooltip } from '@grafana/ui';\n\nimport { variableAdapters } from '../adapters';\nimport { VariableHide, VariableModel } from '../types';\n\ninterface Props {\n variable: VariableModel;\n}\n\nexport const PickerRenderer: FunctionComponent = (props) => {\n const PickerToRender = useMemo(() => variableAdapters.get(props.variable.type).picker, [props.variable]);\n\n if (!props.variable) {\n return
Couldn't load variable
;\n }\n\n return (\n
\n \n {props.variable.hide !== VariableHide.hideVariable && PickerToRender && (\n \n )}\n
\n );\n};\n\nfunction PickerLabel({ variable }: PropsWithChildren): ReactElement | null {\n const labelOrName = useMemo(() => variable.label || variable.name, [variable]);\n\n if (variable.hide !== VariableHide.dontHide) {\n return null;\n }\n\n const elementId = `var-${variable.id}`;\n if (variable.description) {\n return (\n \n \n {labelOrName}\n \n \n );\n }\n\n return (\n \n {labelOrName}\n \n );\n}\n","import React, { FunctionComponent, useEffect, useState } from 'react';\n\nimport { selectors } from '@grafana/e2e-selectors';\n\nimport { PickerRenderer } from '../../../variables/pickers/PickerRenderer';\nimport { VariableHide, VariableModel } from '../../../variables/types';\n\ninterface Props {\n variables: VariableModel[];\n}\n\nexport const SubMenuItems: FunctionComponent = ({ variables }) => {\n const [visibleVariables, setVisibleVariables] = useState([]);\n\n useEffect(() => {\n setVisibleVariables(variables.filter((state) => state.hide !== VariableHide.hideVariable));\n }, [variables]);\n\n if (visibleVariables.length === 0) {\n return null;\n }\n\n return (\n <>\n {visibleVariables.map((variable) => {\n return (\n \n \n
\n );\n })}\n \n );\n};\n","import React, { PureComponent } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\n\nimport { PanelPlugin, PanelPluginMeta } from '@grafana/data';\nimport { AngularComponent, getAngularLoader } from '@grafana/runtime';\nimport { PanelCtrl } from 'app/angular/panel/panel_ctrl';\nimport { changePanelPlugin } from 'app/features/panel/state/actions';\nimport { getPanelStateForModel } from 'app/features/panel/state/selectors';\nimport { StoreState } from 'app/types';\n\nimport { PanelModel, DashboardModel } from '../../state';\n\nimport { getSectionOpenState, saveSectionOpenState } from './state/utils';\n\ninterface OwnProps {\n panel: PanelModel;\n dashboard: DashboardModel;\n plugin: PanelPlugin;\n}\n\nconst mapStateToProps = (state: StoreState, props: OwnProps) => ({\n angularPanelComponent: getPanelStateForModel(state, props.panel)?.angularComponent,\n});\n\nconst mapDispatchToProps = { changePanelPlugin };\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\ntype Props = ConnectedProps & OwnProps;\n\nexport class AngularPanelOptionsUnconnected extends PureComponent {\n element?: HTMLElement | null;\n angularOptions?: AngularComponent | null;\n\n constructor(props: Props) {\n super(props);\n }\n\n componentDidMount() {\n this.loadAngularOptions();\n }\n\n componentDidUpdate(prevProps: Props) {\n if (\n this.props.plugin !== prevProps.plugin ||\n this.props.angularPanelComponent !== prevProps.angularPanelComponent\n ) {\n this.cleanUpAngularOptions();\n }\n\n this.loadAngularOptions();\n }\n\n componentWillUnmount() {\n this.cleanUpAngularOptions();\n }\n\n cleanUpAngularOptions() {\n if (this.angularOptions) {\n this.angularOptions.destroy();\n this.angularOptions = null;\n }\n }\n\n loadAngularOptions() {\n const { panel, angularPanelComponent, changePanelPlugin } = this.props;\n\n if (!this.element || !angularPanelComponent || this.angularOptions) {\n return;\n }\n\n const scope = angularPanelComponent.getScope();\n\n // When full page reloading in edit mode the angular panel has on fully compiled and instantiated yet\n if (!scope.$$childHead) {\n setTimeout(() => {\n this.forceUpdate();\n });\n return;\n }\n\n const panelCtrl: PanelCtrl = scope.$$childHead.ctrl;\n panelCtrl.initEditMode();\n panelCtrl.onPluginTypeChange = (plugin: PanelPluginMeta) => {\n changePanelPlugin({ panel, pluginId: plugin.id });\n };\n\n let template = '';\n for (let i = 0; i < panelCtrl.editorTabs.length; i++) {\n const tab = panelCtrl.editorTabs[i];\n tab.isOpen = getSectionOpenState(tab.title, i === 0);\n\n template += `\n
\n
\n
\n \n
\n
${tab.title}
\n
\n
\n \n
\n
\n `;\n }\n\n const loader = getAngularLoader();\n const scopeProps = {\n ctrl: panelCtrl,\n toggleOptionGroup: (index: number) => {\n const tab = panelCtrl.editorTabs[index];\n tab.isOpen = !tab.isOpen;\n saveSectionOpenState(tab.title, tab.isOpen as boolean);\n },\n };\n\n this.angularOptions = loader.load(this.element, scopeProps, template);\n this.angularOptions.digest();\n }\n\n render() {\n return
(this.element = elem)} />;\n }\n}\n\nexport const AngularPanelOptions = connect(mapStateToProps, mapDispatchToProps)(AngularPanelOptionsUnconnected);\n","import store from 'app/core/store';\n\nexport function saveSectionOpenState(id: string, isOpen: boolean) {\n store.set(`panel-edit-section-${id}`, isOpen ? 'true' : 'false');\n}\n\nexport function getSectionOpenState(id: string, defaultValue: boolean) {\n return store.getBool(`panel-edit-section-${id}`, defaultValue);\n}\n","import { css, cx } from '@emotion/css';\nimport React from 'react';\nimport Highlighter from 'react-highlight-words';\n\nimport {\n DynamicConfigValue,\n FieldConfigOptionsRegistry,\n FieldConfigProperty,\n FieldOverrideContext,\n GrafanaTheme,\n} from '@grafana/data';\nimport { Counter, Field, HorizontalGroup, IconButton, Label, stylesFactory, useTheme } from '@grafana/ui';\n\nimport { OptionsPaneCategory } from './OptionsPaneCategory';\n\ninterface DynamicConfigValueEditorProps {\n property: DynamicConfigValue;\n registry: FieldConfigOptionsRegistry;\n onChange: (value: DynamicConfigValue) => void;\n context: FieldOverrideContext;\n onRemove: () => void;\n isSystemOverride?: boolean;\n searchQuery: string;\n}\n\nexport const DynamicConfigValueEditor: React.FC = ({\n property,\n context,\n registry,\n onChange,\n onRemove,\n isSystemOverride,\n searchQuery,\n}) => {\n const theme = useTheme();\n const styles = getStyles(theme);\n const item = registry?.getIfExists(property.id);\n\n if (!item) {\n return null;\n }\n\n const isCollapsible =\n Array.isArray(property.value) ||\n property.id === FieldConfigProperty.Thresholds ||\n property.id === FieldConfigProperty.Links ||\n property.id === FieldConfigProperty.Mappings;\n\n const labelCategory = item.category?.filter((c) => c !== item.name);\n let editor;\n\n /* eslint-disable react/display-name */\n const renderLabel =\n (includeDescription = true, includeCounter = false) =>\n (isExpanded = false) =>\n (\n \n \n {!isSystemOverride && (\n
\n \n
\n )}\n
\n );\n /* eslint-enable react/display-name */\n\n if (isCollapsible) {\n editor = (\n \n {\n onChange(value);\n }}\n item={item}\n context={context}\n />\n \n );\n } else {\n editor = (\n
\n \n {\n onChange(value);\n }}\n item={item}\n context={context}\n />\n \n
\n );\n }\n\n return (\n \n {editor}\n
\n );\n};\n\nconst getStyles = stylesFactory((theme: GrafanaTheme) => {\n return {\n collapsibleOverrideEditor: css`\n label: collapsibleOverrideEditor;\n & + .dynamicConfigValueEditor--nonCollapsible {\n margin-top: ${theme.spacing.formSpacingBase}px;\n }\n `,\n };\n});\n","import { css } from '@emotion/css';\nimport React, { FC } from 'react';\n\nimport { FieldConfigOptionsRegistry, GrafanaTheme, ConfigOverrideRule } from '@grafana/data';\nimport { HorizontalGroup, Icon, IconButton, useStyles } from '@grafana/ui';\nimport { FieldMatcherUIRegistryItem } from '@grafana/ui/src/components/MatchersUI/types';\n\ninterface OverrideCategoryTitleProps {\n isExpanded: boolean;\n registry: FieldConfigOptionsRegistry;\n matcherUi: FieldMatcherUIRegistryItem;\n override: ConfigOverrideRule;\n overrideName: string;\n onOverrideRemove: () => void;\n}\nexport const OverrideCategoryTitle: FC = ({\n isExpanded,\n registry,\n matcherUi,\n overrideName,\n override,\n onOverrideRemove,\n}) => {\n const styles = useStyles(getStyles);\n const properties = override.properties.map((p) => registry.getIfExists(p.id)).filter((prop) => !!prop);\n const propertyNames = properties.map((p) => p?.name).join(', ');\n const matcherOptions = matcherUi.optionsToLabel(override.matcher.options);\n\n return (\n
\n \n
{overrideName}
\n \n
\n {!isExpanded && (\n
\n
\n {matcherOptions} {propertyNames}\n
\n
\n )}\n
\n );\n};\n\nOverrideCategoryTitle.displayName = 'OverrideTitle';\n\nconst getStyles = (theme: GrafanaTheme) => {\n return {\n matcherUi: css`\n padding: ${theme.spacing.sm};\n `,\n propertyPickerWrapper: css`\n margin-top: ${theme.spacing.formSpacingBase * 2}px;\n `,\n overrideDetails: css`\n font-size: ${theme.typography.size.sm};\n color: ${theme.colors.textWeak};\n font-weight: ${theme.typography.weight.regular};\n `,\n options: css`\n overflow: hidden;\n padding-right: ${theme.spacing.xl};\n `,\n unknownLabel: css`\n margin-bottom: 0;\n `,\n };\n};\n","import { css } from '@emotion/css';\nimport { cloneDeep } from 'lodash';\nimport React from 'react';\n\nimport {\n FieldConfigOptionsRegistry,\n SelectableValue,\n isSystemOverride as isSystemOverrideGuard,\n VariableSuggestionsScope,\n DynamicConfigValue,\n ConfigOverrideRule,\n GrafanaTheme2,\n} from '@grafana/data';\nimport { fieldMatchersUI, useStyles2, ValuePicker } from '@grafana/ui';\nimport { getDataLinksVariableSuggestions } from 'app/features/panel/panellinks/link_srv';\n\nimport { DynamicConfigValueEditor } from './DynamicConfigValueEditor';\nimport { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';\nimport { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';\nimport { OverrideCategoryTitle } from './OverrideCategoryTitle';\nimport { OptionPaneRenderProps } from './types';\n\nexport function getFieldOverrideCategories(\n props: OptionPaneRenderProps,\n searchQuery: string\n): OptionsPaneCategoryDescriptor[] {\n const categories: OptionsPaneCategoryDescriptor[] = [];\n const currentFieldConfig = props.panel.fieldConfig;\n const registry = props.plugin.fieldConfigRegistry;\n const data = props.data?.series ?? [];\n\n if (registry.isEmpty()) {\n return [];\n }\n\n const onOverrideChange = (index: number, override: any) => {\n let overrides = cloneDeep(currentFieldConfig.overrides);\n overrides[index] = override;\n props.onFieldConfigsChange({ ...currentFieldConfig, overrides });\n };\n\n const onOverrideRemove = (overrideIndex: number) => {\n let overrides = cloneDeep(currentFieldConfig.overrides);\n overrides.splice(overrideIndex, 1);\n props.onFieldConfigsChange({ ...currentFieldConfig, overrides });\n };\n\n const onOverrideAdd = (value: SelectableValue) => {\n props.onFieldConfigsChange({\n ...currentFieldConfig,\n overrides: [\n ...currentFieldConfig.overrides,\n {\n matcher: {\n id: value.value!,\n },\n properties: [],\n },\n ],\n });\n };\n\n const context = {\n data,\n getSuggestions: (scope?: VariableSuggestionsScope) => getDataLinksVariableSuggestions(data, scope),\n isOverride: true,\n };\n\n /**\n * Main loop through all override rules\n */\n for (let idx = 0; idx < currentFieldConfig.overrides.length; idx++) {\n const override = currentFieldConfig.overrides[idx];\n const overrideName = `Override ${idx + 1}`;\n const matcherUi = fieldMatchersUI.get(override.matcher.id);\n const configPropertiesOptions = getOverrideProperties(registry);\n const isSystemOverride = isSystemOverrideGuard(override);\n // A way to force open new override categories\n const forceOpen = override.properties.length === 0 ? 1 : 0;\n\n const category = new OptionsPaneCategoryDescriptor({\n title: overrideName,\n id: overrideName,\n forceOpen,\n renderTitle: function renderOverrideTitle(isExpanded: boolean) {\n return (\n onOverrideRemove(idx)}\n />\n );\n },\n });\n\n const onMatcherConfigChange = (options: any) => {\n override.matcher.options = options;\n onOverrideChange(idx, override);\n };\n\n const onDynamicConfigValueAdd = (o: ConfigOverrideRule, value: SelectableValue) => {\n const registryItem = registry.get(value.value!);\n const propertyConfig: DynamicConfigValue = {\n id: registryItem.id,\n value: registryItem.defaultValue,\n };\n\n if (override.properties) {\n o.properties.push(propertyConfig);\n } else {\n o.properties = [propertyConfig];\n }\n\n onOverrideChange(idx, o);\n };\n\n /**\n * Add override matcher UI element\n */\n category.addItem(\n new OptionsPaneItemDescriptor({\n title: matcherUi.name,\n render: function renderMatcherUI() {\n return (\n \n );\n },\n })\n );\n\n /**\n * Loop through all override properties\n */\n for (let propIdx = 0; propIdx < override.properties.length; propIdx++) {\n const property = override.properties[propIdx];\n const registryItemForProperty = registry.getIfExists(property.id);\n\n if (!registryItemForProperty) {\n continue;\n }\n\n const onPropertyChange = (value: any) => {\n override.properties[propIdx].value = value;\n onOverrideChange(idx, override);\n };\n\n const onPropertyRemove = () => {\n override.properties.splice(propIdx, 1);\n onOverrideChange(idx, override);\n };\n\n /**\n * Add override property item\n */\n category.addItem(\n new OptionsPaneItemDescriptor({\n title: registryItemForProperty.name,\n skipField: true,\n render: function renderPropertyEditor() {\n return (\n \n );\n },\n })\n );\n }\n\n /**\n * Add button that adds new overrides\n */\n if (!isSystemOverride && override.matcher.options) {\n category.addItem(\n new OptionsPaneItemDescriptor({\n title: '----------',\n skipField: true,\n render: function renderAddPropertyButton() {\n return (\n onDynamicConfigValueAdd(override, v)}\n />\n );\n },\n })\n );\n }\n\n categories.push(category);\n }\n\n categories.push(\n new OptionsPaneCategoryDescriptor({\n title: 'add button',\n id: 'add button',\n customRender: function renderAddButton() {\n return (\n \n !o.excludeFromPicker)\n .map>((i) => ({ label: i.name, value: i.id, description: i.description }))}\n onChange={(value) => onOverrideAdd(value)}\n />\n \n );\n },\n })\n );\n\n return categories;\n}\n\nfunction getOverrideProperties(registry: FieldConfigOptionsRegistry) {\n return registry\n .list()\n .filter((o) => !o.hideFromOverrides)\n .map((item) => {\n let label = item.name;\n if (item.category) {\n label = [...item.category, item.name].join(' > ');\n }\n return {\n label,\n value: item.id,\n description: item.description,\n };\n });\n}\n\nfunction AddOverrideButtonContainer({ children }: { children: React.ReactNode }) {\n const styles = useStyles2(getBorderTopStyles);\n return
{children}
;\n}\n\nfunction getBorderTopStyles(theme: GrafanaTheme2) {\n return css({\n borderTop: `1px solid ${theme.colors.border.weak}`,\n padding: `${theme.spacing(2)}`,\n display: 'flex',\n });\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { DateTimeInput, GrafanaTheme } from '@grafana/data';\nimport { useStyles } from '@grafana/ui';\n\nimport { isPanelModelLibraryPanel } from '../../guard';\nimport { PanelModelWithLibraryPanel } from '../../types';\n\ninterface Props {\n panel: PanelModelWithLibraryPanel;\n formatDate?: (dateString: DateTimeInput, format?: string) => string;\n}\n\nexport const LibraryPanelInformation: React.FC = ({ panel, formatDate }) => {\n const styles = useStyles(getStyles);\n\n if (!isPanelModelLibraryPanel(panel)) {\n return null;\n }\n\n return (\n
\n
\n {`Used on ${panel.libraryPanel.meta.connectedDashboards} `}\n {panel.libraryPanel.meta.connectedDashboards === 1 ? 'dashboard' : 'dashboards'}\n
\n
\n Last edited on {formatDate?.(panel.libraryPanel.meta.updated, 'L') ?? panel.libraryPanel.meta.updated} by\n {panel.libraryPanel.meta.updatedBy.avatarUrl && (\n \n )}\n {panel.libraryPanel.meta.updatedBy.name}\n
\n
\n );\n};\n\nconst getStyles = (theme: GrafanaTheme) => {\n return {\n info: css`\n line-height: 1;\n `,\n libraryPanelInfo: css`\n color: ${theme.colors.textSemiWeak};\n font-size: ${theme.typography.size.sm};\n `,\n userAvatar: css`\n border-radius: 50%;\n box-sizing: content-box;\n width: 22px;\n height: 22px;\n padding-left: ${theme.spacing.sm};\n padding-right: ${theme.spacing.sm};\n `,\n };\n};\n","import React from 'react';\n\nimport { Input } from '@grafana/ui';\nimport { LibraryPanelInformation } from 'app/features/library-panels/components/LibraryPanelInfo/LibraryPanelInfo';\n\nimport { isPanelModelLibraryPanel } from '../../../library-panels/guard';\n\nimport { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';\nimport { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';\nimport { OptionPaneRenderProps } from './types';\n\nexport function getLibraryPanelOptionsCategory(props: OptionPaneRenderProps): OptionsPaneCategoryDescriptor {\n const { panel, onPanelConfigChange, dashboard } = props;\n const descriptor = new OptionsPaneCategoryDescriptor({\n title: 'Library panel options',\n id: 'Library panel options',\n isOpenDefault: true,\n });\n\n if (isPanelModelLibraryPanel(panel)) {\n descriptor\n .addItem(\n new OptionsPaneItemDescriptor({\n title: 'Name',\n value: panel.libraryPanel.name,\n popularRank: 1,\n render: function renderName() {\n return (\n \n onPanelConfigChange('libraryPanel', { ...panel.libraryPanel, name: e.currentTarget.value })\n }\n />\n );\n },\n })\n )\n .addItem(\n new OptionsPaneItemDescriptor({\n title: 'Information',\n render: function renderLibraryPanelInformation() {\n return ;\n },\n })\n );\n }\n\n return descriptor;\n}\n","import React, { FC, useCallback, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { StoreState } from '../../../../types';\nimport { getLastKey, getVariablesByKey } from '../../../variables/state/selectors';\n\nexport interface Props {\n id?: string;\n repeat?: string | null;\n onChange: (name: string | null) => void;\n}\n\nexport const RepeatRowSelect: FC = ({ repeat, onChange, id }) => {\n const variables = useSelector((state: StoreState) => {\n return getVariablesByKey(getLastKey(state), state);\n });\n\n const variableOptions = useMemo(() => {\n const options = variables.map((item: any) => {\n return { label: item.name, value: item.name };\n });\n\n if (options.length === 0) {\n options.unshift({\n label: 'No template variables found',\n value: null,\n });\n }\n\n options.unshift({\n label: 'Disable repeating',\n value: null,\n });\n\n return options;\n }, [variables]);\n\n const onSelectChange = useCallback((option: SelectableValue) => onChange(option.value!), [onChange]);\n\n return \n \n\n \n \n \n\n \n \n \n \n \n )}\n \n );\n};\n","import { css } from '@emotion/css';\nimport React, { FC } from 'react';\n\nimport { Modal, stylesFactory } from '@grafana/ui';\n\nimport { OnRowOptionsUpdate, RowOptionsForm } from './RowOptionsForm';\n\nexport interface RowOptionsModalProps {\n title: string;\n repeat?: string | null;\n onDismiss: () => void;\n onUpdate: OnRowOptionsUpdate;\n}\n\nexport const RowOptionsModal: FC = ({ repeat, title, onDismiss, onUpdate }) => {\n const styles = getStyles();\n return (\n \n \n \n );\n};\n\nconst getStyles = stylesFactory(() => {\n return {\n modal: css`\n label: RowOptionsModal;\n width: 500px;\n `,\n };\n});\n","import React, { FC } from 'react';\n\nimport { Icon, ModalsController } from '@grafana/ui';\n\nimport { OnRowOptionsUpdate } from './RowOptionsForm';\nimport { RowOptionsModal } from './RowOptionsModal';\n\nexport interface RowOptionsButtonProps {\n title: string;\n repeat?: string | null;\n onUpdate: OnRowOptionsUpdate;\n}\n\nexport const RowOptionsButton: FC = ({ repeat, title, onUpdate }) => {\n const onUpdateChange = (hideModal: () => void) => (title: string, repeat?: string | null) => {\n onUpdate(title, repeat);\n hideModal();\n };\n\n return (\n \n {({ showModal, hideModal }) => {\n return (\n {\n showModal(RowOptionsModal, { title, repeat, onDismiss: hideModal, onUpdate: onUpdateChange(hideModal) });\n }}\n >\n \n \n );\n }}\n \n );\n};\n\nRowOptionsButton.displayName = 'RowOptionsButton';\n","import classNames from 'classnames';\nimport React from 'react';\nimport { Unsubscribable } from 'rxjs';\n\nimport { selectors } from '@grafana/e2e-selectors';\nimport { getTemplateSrv, RefreshEvent } from '@grafana/runtime';\nimport { Icon } from '@grafana/ui';\nimport appEvents from 'app/core/app_events';\n\nimport { ShowConfirmModalEvent } from '../../../../types/events';\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { PanelModel } from '../../state/PanelModel';\nimport { RowOptionsButton } from '../RowOptions/RowOptionsButton';\n\nexport interface DashboardRowProps {\n panel: PanelModel;\n dashboard: DashboardModel;\n}\n\nexport class DashboardRow extends React.Component {\n sub?: Unsubscribable;\n constructor(props: DashboardRowProps) {\n super(props);\n\n this.state = {\n collapsed: this.props.panel.collapsed,\n };\n }\n\n componentDidMount() {\n this.sub = this.props.dashboard.events.subscribe(RefreshEvent, this.onVariableUpdated);\n }\n\n componentWillUnmount() {\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n\n onVariableUpdated = () => {\n this.forceUpdate();\n };\n\n onToggle = () => {\n this.props.dashboard.toggleRow(this.props.panel);\n\n this.setState((prevState: any) => {\n return { collapsed: !prevState.collapsed };\n });\n };\n\n onUpdate = (title: string, repeat?: string | null) => {\n this.props.panel['title'] = title;\n this.props.panel['repeat'] = repeat ?? undefined;\n this.props.panel.render();\n this.props.dashboard.processRepeats();\n this.forceUpdate();\n };\n\n onDelete = () => {\n appEvents.publish(\n new ShowConfirmModalEvent({\n title: 'Delete row',\n text: 'Are you sure you want to remove this row and all its panels?',\n altActionText: 'Delete row only',\n icon: 'trash-alt',\n onConfirm: () => {\n this.props.dashboard.removeRow(this.props.panel, true);\n },\n onAltAction: () => {\n this.props.dashboard.removeRow(this.props.panel, false);\n },\n })\n );\n };\n\n render() {\n const classes = classNames({\n 'dashboard-row': true,\n 'dashboard-row--collapsed': this.state.collapsed,\n });\n\n const title = getTemplateSrv().replace(this.props.panel.title, this.props.panel.scopedVars, 'text');\n const count = this.props.panel.panels ? this.props.panel.panels.length : 0;\n const panels = count === 1 ? 'panel' : 'panels';\n const canEdit = this.props.dashboard.meta.canEdit === true;\n\n return (\n
\n \n \n {title}\n \n ({count} {panels})\n \n \n {canEdit && (\n
\n \n \n \n \n
\n )}\n {this.state.collapsed === true && (\n
\n  \n
\n )}\n {canEdit &&
}\n
\n );\n }\n}\n","import classNames from 'classnames';\nimport React, { PureComponent, CSSProperties } from 'react';\nimport ReactGridLayout, { ItemCallback } from 'react-grid-layout';\nimport { connect, ConnectedProps } from 'react-redux';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { Subscription } from 'rxjs';\n\nimport { config } from '@grafana/runtime';\nimport { GRID_CELL_HEIGHT, GRID_CELL_VMARGIN, GRID_COLUMN_COUNT } from 'app/core/constants';\nimport { cleanAndRemoveMany } from 'app/features/panel/state/actions';\nimport { DashboardPanelsChangedEvent } from 'app/types/events';\n\nimport { AddPanelWidget } from '../components/AddPanelWidget';\nimport { DashboardRow } from '../components/DashboardRow';\nimport { DashboardModel, PanelModel } from '../state';\nimport { GridPos } from '../state/PanelModel';\n\nimport { DashboardPanel } from './DashboardPanel';\n\nexport interface OwnProps {\n dashboard: DashboardModel;\n editPanel: PanelModel | null;\n viewPanel: PanelModel | null;\n}\n\nexport interface State {\n isLayoutInitialized: boolean;\n}\n\nconst mapDispatchToProps = {\n cleanAndRemoveMany,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport type Props = OwnProps & ConnectedProps;\n\nexport class DashboardGridUnconnected extends PureComponent {\n private panelMap: { [key: string]: PanelModel } = {};\n private eventSubs = new Subscription();\n private windowHeight = 1200;\n private windowWidth = 1920;\n private gridWidth = 0;\n /** Used to keep track of mobile panel layout position */\n private lastPanelBottom = 0;\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n isLayoutInitialized: false,\n };\n }\n\n componentDidMount() {\n const { dashboard } = this.props;\n this.eventSubs.add(dashboard.events.subscribe(DashboardPanelsChangedEvent, this.triggerForceUpdate));\n }\n\n componentWillUnmount() {\n this.eventSubs.unsubscribe();\n this.props.cleanAndRemoveMany(Object.keys(this.panelMap));\n }\n\n buildLayout() {\n const layout = [];\n this.panelMap = {};\n\n for (const panel of this.props.dashboard.panels) {\n if (!panel.key) {\n panel.key = `panel-${panel.id}-${Date.now()}`;\n }\n this.panelMap[panel.key] = panel;\n\n if (!panel.gridPos) {\n console.log('panel without gridpos');\n continue;\n }\n\n const panelPos: any = {\n i: panel.key,\n x: panel.gridPos.x,\n y: panel.gridPos.y,\n w: panel.gridPos.w,\n h: panel.gridPos.h,\n };\n\n if (panel.type === 'row') {\n panelPos.w = GRID_COLUMN_COUNT;\n panelPos.h = 1;\n panelPos.isResizable = false;\n panelPos.isDraggable = panel.collapsed;\n }\n\n layout.push(panelPos);\n }\n\n return layout;\n }\n\n onLayoutChange = (newLayout: ReactGridLayout.Layout[]) => {\n for (const newPos of newLayout) {\n this.panelMap[newPos.i!].updateGridPos(newPos);\n }\n\n this.props.dashboard.sortPanelsByGridPos();\n\n // This is called on grid mount as it can correct invalid initial grid positions\n if (!this.state.isLayoutInitialized) {\n this.setState({ isLayoutInitialized: true });\n }\n };\n\n triggerForceUpdate = () => {\n this.forceUpdate();\n };\n\n updateGridPos = (item: ReactGridLayout.Layout, layout: ReactGridLayout.Layout[]) => {\n this.panelMap[item.i!].updateGridPos(item);\n };\n\n onResize: ItemCallback = (layout, oldItem, newItem) => {\n const panel = this.panelMap[newItem.i!];\n panel.updateGridPos(newItem);\n panel.configRev++; // trigger change handler\n };\n\n onResizeStop: ItemCallback = (layout, oldItem, newItem) => {\n this.updateGridPos(newItem, layout);\n };\n\n onDragStop: ItemCallback = (layout, oldItem, newItem) => {\n this.updateGridPos(newItem, layout);\n };\n\n getPanelScreenPos(panel: PanelModel, gridWidth: number): { top: number; bottom: number } {\n let top = 0;\n\n // mobile layout\n if (gridWidth < config.theme2.breakpoints.values.md) {\n // In mobile layout panels are stacked so we just add the panel vertical margin to the last panel bottom position\n top = this.lastPanelBottom + GRID_CELL_VMARGIN;\n } else {\n // For top position we need to add back the vertical margin removed by translateGridHeightToScreenHeight\n top = translateGridHeightToScreenHeight(panel.gridPos.y) + GRID_CELL_VMARGIN;\n }\n\n this.lastPanelBottom = top + translateGridHeightToScreenHeight(panel.gridPos.h);\n\n return { top, bottom: this.lastPanelBottom };\n }\n\n renderPanels(gridWidth: number) {\n const panelElements = [];\n\n // Reset last panel bottom\n this.lastPanelBottom = 0;\n\n // This is to avoid layout re-flows, accessing window.innerHeight can trigger re-flow\n // We assume here that if width change height might have changed as well\n if (this.gridWidth !== gridWidth) {\n this.windowHeight = window.innerHeight ?? 1000;\n this.windowWidth = window.innerWidth;\n this.gridWidth = gridWidth;\n }\n\n for (const panel of this.props.dashboard.panels) {\n const panelClasses = classNames({ 'react-grid-item--fullscreen': panel.isViewing });\n\n panelElements.push(\n \n {(width: number, height: number) => {\n return this.renderPanel(panel, width, height);\n }}\n \n );\n }\n\n return panelElements;\n }\n\n renderPanel(panel: PanelModel, width: any, height: any) {\n if (panel.type === 'row') {\n return ;\n }\n\n if (panel.type === 'add-panel') {\n return ;\n }\n\n return (\n \n );\n }\n\n render() {\n const { dashboard } = this.props;\n\n /**\n * We have a parent with \"flex: 1 1 0\" we need to reset it to \"flex: 1 1 auto\" to have the AutoSizer\n * properly working. For more information go here:\n * https://github.com/bvaughn/react-virtualized/blob/master/docs/usingAutoSizer.md#can-i-use-autosizer-within-a-flex-container\n */\n return (\n
\n \n {({ width }) => {\n if (width === 0) {\n return null;\n }\n\n const draggable = width <= 769 ? false : dashboard.meta.canEdit;\n\n /*\n Disable draggable if mobile device, solving an issue with unintentionally\n moving panels. https://github.com/grafana/grafana/issues/18497\n theme.breakpoints.md = 769\n */\n\n return (\n /**\n * The children is using a width of 100% so we need to guarantee that it is wrapped\n * in an element that has the calculated size given by the AutoSizer. The AutoSizer\n * has a width of 0 and will let its content overflow its div.\n */\n
\n \n {this.renderPanels(width)}\n \n
\n );\n }}\n
\n
\n );\n }\n}\n\ninterface GrafanaGridItemProps extends Record {\n gridWidth?: number;\n gridPos?: GridPos;\n isViewing: string;\n windowHeight: number;\n windowWidth: number;\n children: any;\n}\n\n/**\n * A hacky way to intercept the react-layout-grid item dimensions and pass them to DashboardPanel\n */\nconst GrafanaGridItem = React.forwardRef((props, ref) => {\n const theme = config.theme2;\n let width = 100;\n let height = 100;\n\n const { gridWidth, gridPos, isViewing, windowHeight, windowWidth, ...divProps } = props;\n const style: CSSProperties = props.style ?? {};\n\n if (isViewing) {\n // In fullscreen view mode a single panel take up full width & 85% height\n width = gridWidth!;\n height = windowHeight * 0.85;\n style.height = height;\n style.width = '100%';\n } else if (windowWidth < theme.breakpoints.values.md) {\n // Mobile layout is a bit different, every panel take up full width\n width = props.gridWidth!;\n height = translateGridHeightToScreenHeight(gridPos!.h);\n style.height = height;\n style.width = '100%';\n } else {\n // Normal grid layout. The grid framework passes width and height directly to children as style props.\n width = parseFloat(props.style.width);\n height = parseFloat(props.style.height);\n }\n\n // props.children[0] is our main children. RGL adds the drag handle at props.children[1]\n return (\n
\n {/* Pass width and height to children as render props */}\n {[props.children[0](width, height), props.children.slice(1)]}\n
\n );\n});\n\n/**\n * This translates grid height dimensions to real pixels\n */\nfunction translateGridHeightToScreenHeight(gridHeight: number): number {\n return gridHeight * (GRID_CELL_HEIGHT + GRID_CELL_VMARGIN) - GRID_CELL_VMARGIN;\n}\n\nGrafanaGridItem.displayName = 'GridItemWithDimensions';\n\nexport const DashboardGrid = connector(DashboardGridUnconnected);\n","import { css } from '@emotion/css';\nimport classnames from 'classnames';\nimport React, { PureComponent } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\n\nimport { GrafanaTheme2, TimeRange } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { locationService } from '@grafana/runtime';\nimport { CustomScrollbar, stylesFactory, Themeable2, withTheme2 } from '@grafana/ui';\nimport { notifyApp } from 'app/core/actions';\nimport { Branding } from 'app/core/components/Branding/Branding';\nimport { createErrorNotification } from 'app/core/copy/appNotification';\nimport { getKioskMode } from 'app/core/navigation/kiosk';\nimport { GrafanaRouteComponentProps } from 'app/core/navigation/types';\nimport { PanelModel } from 'app/features/dashboard/state';\nimport { dashboardWatcher } from 'app/features/live/dashboard/dashboardWatcher';\nimport { KioskMode, StoreState } from 'app/types';\nimport { PanelEditEnteredEvent, PanelEditExitedEvent } from 'app/types/events';\n\nimport { cancelVariables, templateVarsChangedInUrl } from '../../variables/state/actions';\nimport { findTemplateVarChanges } from '../../variables/utils';\nimport { DashNav } from '../components/DashNav';\nimport { DashboardFailed } from '../components/DashboardLoading/DashboardFailed';\nimport { DashboardLoading } from '../components/DashboardLoading/DashboardLoading';\nimport { DashboardPrompt } from '../components/DashboardPrompt/DashboardPrompt';\nimport { DashboardSettings } from '../components/DashboardSettings';\nimport { PanelInspector } from '../components/Inspector/PanelInspector';\nimport { PanelEditor } from '../components/PanelEditor/PanelEditor';\nimport { SubMenu } from '../components/SubMenu/SubMenu';\nimport { DashboardGrid } from '../dashgrid/DashboardGrid';\nimport { liveTimer } from '../dashgrid/liveTimer';\nimport { getTimeSrv } from '../services/TimeSrv';\nimport { cleanUpDashboardAndVariables } from '../state/actions';\nimport { initDashboard } from '../state/initDashboard';\n\nexport interface DashboardPageRouteParams {\n uid?: string;\n type?: string;\n slug?: string;\n}\n\ntype DashboardPageRouteSearchParams = {\n tab?: string;\n folderId?: string;\n editPanel?: string;\n viewPanel?: string;\n editview?: string;\n inspect?: string;\n from?: string;\n to?: string;\n refresh?: string;\n};\n\nexport const mapStateToProps = (state: StoreState) => ({\n initPhase: state.dashboard.initPhase,\n initError: state.dashboard.initError,\n dashboard: state.dashboard.getModel(),\n});\n\nconst mapDispatchToProps = {\n initDashboard,\n cleanUpDashboardAndVariables,\n notifyApp,\n cancelVariables,\n templateVarsChangedInUrl,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport type Props = Themeable2 &\n GrafanaRouteComponentProps &\n ConnectedProps;\n\nexport interface State {\n editPanel: PanelModel | null;\n viewPanel: PanelModel | null;\n updateScrollTop?: number;\n rememberScrollTop: number;\n showLoadingState: boolean;\n panelNotFound: boolean;\n editPanelAccessDenied: boolean;\n scrollElement?: HTMLDivElement;\n}\n\nexport class UnthemedDashboardPage extends PureComponent {\n private forceRouteReloadCounter = 0;\n state: State = this.getCleanState();\n\n getCleanState(): State {\n return {\n editPanel: null,\n viewPanel: null,\n showLoadingState: false,\n rememberScrollTop: 0,\n panelNotFound: false,\n editPanelAccessDenied: false,\n };\n }\n\n componentDidMount() {\n this.initDashboard();\n this.forceRouteReloadCounter = (this.props.history.location.state as any)?.routeReloadCounter || 0;\n }\n\n componentWillUnmount() {\n this.closeDashboard();\n }\n\n closeDashboard() {\n this.props.cleanUpDashboardAndVariables();\n this.setState(this.getCleanState());\n }\n\n initDashboard() {\n const { dashboard, match, queryParams } = this.props;\n\n if (dashboard) {\n this.closeDashboard();\n }\n\n this.props.initDashboard({\n urlSlug: match.params.slug,\n urlUid: match.params.uid,\n urlType: match.params.type,\n urlFolderId: queryParams.folderId,\n routeName: this.props.route.routeName,\n fixUrl: true,\n });\n\n // small delay to start live updates\n setTimeout(this.updateLiveTimer, 250);\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n const { dashboard, match, templateVarsChangedInUrl } = this.props;\n const routeReloadCounter = (this.props.history.location.state as any)?.routeReloadCounter;\n\n if (!dashboard) {\n return;\n }\n\n // if we just got dashboard update title\n if (prevProps.dashboard !== dashboard) {\n document.title = dashboard.title + ' - ' + Branding.AppTitle;\n }\n\n if (\n prevProps.match.params.uid !== match.params.uid ||\n (routeReloadCounter !== undefined && this.forceRouteReloadCounter !== routeReloadCounter)\n ) {\n this.initDashboard();\n this.forceRouteReloadCounter = routeReloadCounter;\n return;\n }\n\n if (prevProps.location.search !== this.props.location.search) {\n const prevUrlParams = prevProps.queryParams;\n const urlParams = this.props.queryParams;\n\n if (urlParams?.from !== prevUrlParams?.from || urlParams?.to !== prevUrlParams?.to) {\n getTimeSrv().updateTimeRangeFromUrl();\n this.updateLiveTimer();\n }\n\n if (!prevUrlParams?.refresh && urlParams?.refresh) {\n getTimeSrv().setAutoRefresh(urlParams.refresh);\n }\n\n const templateVarChanges = findTemplateVarChanges(this.props.queryParams, prevProps.queryParams);\n\n if (templateVarChanges) {\n templateVarsChangedInUrl(dashboard.uid, templateVarChanges);\n }\n }\n\n // entering edit mode\n if (this.state.editPanel && !prevState.editPanel) {\n dashboardWatcher.setEditingState(true);\n\n // Some panels need to be notified when entering edit mode\n this.props.dashboard?.events.publish(new PanelEditEnteredEvent(this.state.editPanel.id));\n }\n\n // leaving edit mode\n if (!this.state.editPanel && prevState.editPanel) {\n dashboardWatcher.setEditingState(false);\n\n // Some panels need kicked when leaving edit mode\n this.props.dashboard?.events.publish(new PanelEditExitedEvent(prevState.editPanel.id));\n }\n\n if (this.state.editPanelAccessDenied) {\n this.props.notifyApp(createErrorNotification('Permission to edit panel denied'));\n locationService.partial({ editPanel: null });\n }\n\n if (this.state.panelNotFound) {\n this.props.notifyApp(createErrorNotification(`Panel not found`));\n locationService.partial({ editPanel: null, viewPanel: null });\n }\n }\n\n updateLiveTimer = () => {\n let tr: TimeRange | undefined = undefined;\n if (this.props.dashboard?.liveNow) {\n tr = getTimeSrv().timeRange();\n }\n liveTimer.setLiveTimeRange(tr);\n };\n\n static getDerivedStateFromProps(props: Props, state: State) {\n const { dashboard, queryParams } = props;\n\n const urlEditPanelId = queryParams.editPanel;\n const urlViewPanelId = queryParams.viewPanel;\n\n if (!dashboard) {\n return state;\n }\n\n // Entering edit mode\n if (!state.editPanel && urlEditPanelId) {\n const panel = dashboard.getPanelByUrlId(urlEditPanelId);\n if (!panel) {\n return { ...state, panelNotFound: true };\n }\n\n if (dashboard.canEditPanel(panel)) {\n return { ...state, editPanel: panel, rememberScrollTop: state.scrollElement?.scrollTop };\n } else {\n return { ...state, editPanelAccessDenied: true };\n }\n }\n // Leaving edit mode\n else if (state.editPanel && !urlEditPanelId) {\n return { ...state, editPanel: null, updateScrollTop: state.rememberScrollTop };\n }\n\n // Entering view mode\n if (!state.viewPanel && urlViewPanelId) {\n const panel = dashboard.getPanelByUrlId(urlViewPanelId);\n if (!panel) {\n return { ...state, panelNotFound: urlEditPanelId };\n }\n\n // This mutable state feels wrong to have in getDerivedStateFromProps\n // Should move this state out of dashboard in the future\n dashboard.initViewPanel(panel);\n\n return { ...state, viewPanel: panel, rememberScrollTop: state.scrollElement?.scrollTop, updateScrollTop: 0 };\n }\n // Leaving view mode\n else if (state.viewPanel && !urlViewPanelId) {\n // This mutable state feels wrong to have in getDerivedStateFromProps\n // Should move this state out of dashboard in the future\n dashboard.exitViewPanel(state.viewPanel);\n\n return { ...state, viewPanel: null, updateScrollTop: state.rememberScrollTop };\n }\n\n // if we removed url edit state, clear any panel not found state\n if (state.panelNotFound || (state.editPanelAccessDenied && !urlEditPanelId)) {\n return { ...state, panelNotFound: false, editPanelAccessDenied: false };\n }\n\n return state;\n }\n\n onAddPanel = () => {\n const { dashboard } = this.props;\n\n if (!dashboard) {\n return;\n }\n\n // Return if the \"Add panel\" exists already\n if (dashboard.panels.length > 0 && dashboard.panels[0].type === 'add-panel') {\n return;\n }\n\n dashboard.addPanel({\n type: 'add-panel',\n gridPos: { x: 0, y: 0, w: 12, h: 8 },\n title: 'Panel Title',\n });\n\n // scroll to top after adding panel\n this.setState({ updateScrollTop: 0 });\n };\n\n setScrollRef = (scrollElement: HTMLDivElement): void => {\n this.setState({ scrollElement });\n };\n\n getInspectPanel() {\n const { dashboard, queryParams } = this.props;\n\n const inspectPanelId = queryParams.inspect;\n\n if (!dashboard || !inspectPanelId) {\n return null;\n }\n\n const inspectPanel = dashboard.getPanelById(parseInt(inspectPanelId, 10));\n\n // cannot inspect panels plugin is not already loaded\n if (!inspectPanel) {\n return null;\n }\n\n return inspectPanel;\n }\n\n render() {\n const { dashboard, initError, queryParams, theme } = this.props;\n const { editPanel, viewPanel, updateScrollTop } = this.state;\n const kioskMode = getKioskMode();\n const styles = getStyles(theme, kioskMode);\n\n if (!dashboard) {\n return ;\n }\n\n const inspectPanel = this.getInspectPanel();\n const containerClassNames = classnames(styles.dashboardContainer, {\n 'panel-in-fullscreen': viewPanel,\n });\n const showSubMenu = !editPanel && kioskMode === KioskMode.Off && !this.props.queryParams.editview;\n\n return (\n
\n {kioskMode !== KioskMode.Full && (\n
\n \n
\n )}\n\n \n\n
\n \n
\n {initError && }\n {showSubMenu && (\n
\n \n
\n )}\n\n \n
\n \n
\n\n {inspectPanel && }\n {editPanel && }\n {queryParams.editview && }\n
\n );\n }\n}\n\n/*\n * Styles\n */\nexport const getStyles = stylesFactory((theme: GrafanaTheme2, kioskMode: KioskMode) => {\n const contentPadding = kioskMode !== KioskMode.Full ? theme.spacing(0, 2, 2) : theme.spacing(2);\n return {\n dashboardContainer: css`\n width: 100%;\n height: 100%;\n display: flex;\n flex: 1 1 0;\n flex-direction: column;\n min-height: 0;\n `,\n dashboardScroll: css`\n width: 100%;\n flex-grow: 1;\n min-height: 0;\n display: flex;\n `,\n dashboardContent: css`\n padding: ${contentPadding};\n flex-basis: 100%;\n flex-grow: 1;\n `,\n };\n});\n\nexport const DashboardPage = withTheme2(UnthemedDashboardPage);\nDashboardPage.displayName = 'DashboardPage';\nexport default connector(DashboardPage);\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDraggable = require(\"react-draggable\");\n\nvar _reactResizable = require(\"react-resizable\");\n\nvar _utils = require(\"./utils\");\n\nvar _calculateUtils = require(\"./calculateUtils\");\n\nvar _ReactGridLayoutPropTypes = require(\"./ReactGridLayoutPropTypes\");\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * An individual item within a ReactGridLayout.\n */\nvar GridItem = /*#__PURE__*/function (_React$Component) {\n _inherits(GridItem, _React$Component);\n\n var _super = _createSuper(GridItem);\n\n function GridItem() {\n var _this;\n\n _classCallCheck(this, GridItem);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n resizing: null,\n dragging: null,\n className: \"\"\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/_react.default.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, _ref) {\n var node = _ref.node;\n var _this$props = _this.props,\n onDragStart = _this$props.onDragStart,\n transformScale = _this$props.transformScale;\n if (!onDragStart) return;\n var newPosition\n /*: PartialPosition*/\n = {\n top: 0,\n left: 0\n }; // TODO: this wont work on nested parents\n\n var offsetParent = node.offsetParent;\n if (!offsetParent) return;\n var parentRect = offsetParent.getBoundingClientRect();\n var clientRect = node.getBoundingClientRect();\n var cLeft = clientRect.left / transformScale;\n var pLeft = parentRect.left / transformScale;\n var cTop = clientRect.top / transformScale;\n var pTop = parentRect.top / transformScale;\n newPosition.left = cLeft - pLeft + offsetParent.scrollLeft;\n newPosition.top = cTop - pTop + offsetParent.scrollTop;\n\n _this.setState({\n dragging: newPosition\n }); // Call callback with this data\n\n\n var _calcXY = (0, _calculateUtils.calcXY)(_this.getPositionParams(), newPosition.top, newPosition.left, _this.props.w, _this.props.h),\n x = _calcXY.x,\n y = _calcXY.y;\n\n return onDragStart.call(_assertThisInitialized(_this), _this.props.i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, _ref2) {\n var node = _ref2.node,\n deltaX = _ref2.deltaX,\n deltaY = _ref2.deltaY;\n var onDrag = _this.props.onDrag;\n if (!onDrag) return;\n\n if (!_this.state.dragging) {\n throw new Error(\"onDrag called before onDragStart.\");\n }\n\n var top = _this.state.dragging.top + deltaY;\n var left = _this.state.dragging.left + deltaX;\n var _this$props2 = _this.props,\n isBounded = _this$props2.isBounded,\n i = _this$props2.i,\n w = _this$props2.w,\n h = _this$props2.h,\n containerWidth = _this$props2.containerWidth;\n\n var positionParams = _this.getPositionParams(); // Boundary calculations; keeps items within the grid\n\n\n if (isBounded) {\n var offsetParent = node.offsetParent;\n\n if (offsetParent) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n rowHeight = _this$props3.rowHeight;\n var bottomBoundary = offsetParent.clientHeight - (0, _calculateUtils.calcGridItemWHPx)(h, rowHeight, margin[1]);\n top = (0, _calculateUtils.clamp)(top, 0, bottomBoundary);\n var colWidth = (0, _calculateUtils.calcGridColWidth)(positionParams);\n var rightBoundary = containerWidth - (0, _calculateUtils.calcGridItemWHPx)(w, colWidth, margin[0]);\n left = (0, _calculateUtils.clamp)(left, 0, rightBoundary);\n }\n }\n\n var newPosition\n /*: PartialPosition*/\n = {\n top: top,\n left: left\n };\n\n _this.setState({\n dragging: newPosition\n }); // Call callback with this data\n\n\n var _calcXY2 = (0, _calculateUtils.calcXY)(positionParams, top, left, w, h),\n x = _calcXY2.x,\n y = _calcXY2.y;\n\n return onDrag.call(_assertThisInitialized(_this), i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, _ref3) {\n var node = _ref3.node;\n var onDragStop = _this.props.onDragStop;\n if (!onDragStop) return;\n\n if (!_this.state.dragging) {\n throw new Error(\"onDragEnd called before onDragStart.\");\n }\n\n var _this$props4 = _this.props,\n w = _this$props4.w,\n h = _this$props4.h,\n i = _this$props4.i;\n var _this$state$dragging = _this.state.dragging,\n left = _this$state$dragging.left,\n top = _this$state$dragging.top;\n var newPosition\n /*: PartialPosition*/\n = {\n top: top,\n left: left\n };\n\n _this.setState({\n dragging: null\n });\n\n var _calcXY3 = (0, _calculateUtils.calcXY)(_this.getPositionParams(), top, left, w, h),\n x = _calcXY3.x,\n y = _calcXY3.y;\n\n return onDragStop.call(_assertThisInitialized(_this), i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStop\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResizeStop\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStart\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResizeStart\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResize\");\n });\n\n return _this;\n }\n\n _createClass(GridItem, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps\n /*: Props*/\n , nextState\n /*: State*/\n )\n /*: boolean*/\n {\n // We can't deeply compare children. If the developer memoizes them, we can\n // use this optimization.\n if (this.props.children !== nextProps.children) return true;\n if (this.props.droppingPosition !== nextProps.droppingPosition) return true; // TODO memoize these calculations so they don't take so long?\n\n var oldPosition = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(this.props), this.props.x, this.props.y, this.props.w, this.props.h, this.state);\n var newPosition = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(nextProps), nextProps.x, nextProps.y, nextProps.w, nextProps.h, nextState);\n return !(0, _utils.fastPositionEqual)(oldPosition, newPosition) || this.props.useCSSTransforms !== nextProps.useCSSTransforms;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.moveDroppingItem({});\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props*/\n ) {\n this.moveDroppingItem(prevProps);\n } // When a droppingPosition is present, this means we should fire a move event, as if we had moved\n // this element by `x, y` pixels.\n\n }, {\n key: \"moveDroppingItem\",\n value: function moveDroppingItem(prevProps\n /*: Props*/\n ) {\n var droppingPosition = this.props.droppingPosition;\n if (!droppingPosition) return;\n var node = this.elementRef.current; // Can't find DOM node (are we unmounted?)\n\n if (!node) return;\n var prevDroppingPosition = prevProps.droppingPosition || {\n left: 0,\n top: 0\n };\n var dragging = this.state.dragging;\n var shouldDrag = dragging && droppingPosition.left !== prevDroppingPosition.left || droppingPosition.top !== prevDroppingPosition.top;\n\n if (!dragging) {\n this.onDragStart(droppingPosition.e, {\n node: node,\n deltaX: droppingPosition.left,\n deltaY: droppingPosition.top\n });\n } else if (shouldDrag) {\n var deltaX = droppingPosition.left - dragging.left;\n var deltaY = droppingPosition.top - dragging.top;\n this.onDrag(droppingPosition.e, {\n node: node,\n deltaX: deltaX,\n deltaY: deltaY\n });\n }\n }\n }, {\n key: \"getPositionParams\",\n value: function getPositionParams()\n /*: PositionParams*/\n {\n var props\n /*: Props*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n return {\n cols: props.cols,\n containerPadding: props.containerPadding,\n containerWidth: props.containerWidth,\n margin: props.margin,\n maxRows: props.maxRows,\n rowHeight: props.rowHeight\n };\n }\n /**\n * This is where we set the grid item's absolute placement. It gets a little tricky because we want to do it\n * well when server rendering, and the only way to do that properly is to use percentage width/left because\n * we don't know exactly what the browser viewport is.\n * Unfortunately, CSS Transforms, which are great for performance, break in this instance because a percentage\n * left is relative to the item itself, not its container! So we cannot use them on the server rendering pass.\n *\n * @param {Object} pos Position object with width, height, left, top.\n * @return {Object} Style object.\n */\n\n }, {\n key: \"createStyle\",\n value: function createStyle(pos\n /*: Position*/\n )\n /*: { [key: string]: ?string }*/\n {\n var _this$props5 = this.props,\n usePercentages = _this$props5.usePercentages,\n containerWidth = _this$props5.containerWidth,\n useCSSTransforms = _this$props5.useCSSTransforms;\n var style; // CSS Transforms support (default)\n\n if (useCSSTransforms) {\n style = (0, _utils.setTransform)(pos);\n } else {\n // top,left (slow)\n style = (0, _utils.setTopLeft)(pos); // This is used for server rendering.\n\n if (usePercentages) {\n style.left = (0, _utils.perc)(pos.left / containerWidth);\n style.width = (0, _utils.perc)(pos.width / containerWidth);\n }\n }\n\n return style;\n }\n /**\n * Mix a Draggable instance into a child.\n * @param {Element} child Child element.\n * @return {Element} Child wrapped in Draggable.\n */\n\n }, {\n key: \"mixinDraggable\",\n value: function mixinDraggable(child\n /*: ReactElement*/\n , isDraggable\n /*: boolean*/\n )\n /*: ReactElement*/\n {\n return /*#__PURE__*/_react.default.createElement(_reactDraggable.DraggableCore, {\n disabled: !isDraggable,\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop,\n handle: this.props.handle,\n cancel: \".react-resizable-handle\" + (this.props.cancel ? \",\" + this.props.cancel : \"\"),\n scale: this.props.transformScale,\n nodeRef: this.elementRef\n }, child);\n }\n /**\n * Mix a Resizable instance into a child.\n * @param {Element} child Child element.\n * @param {Object} position Position object (pixel values)\n * @return {Element} Child wrapped in Resizable.\n */\n\n }, {\n key: \"mixinResizable\",\n value: function mixinResizable(child\n /*: ReactElement*/\n , position\n /*: Position*/\n , isResizable\n /*: boolean*/\n )\n /*: ReactElement*/\n {\n var _this$props6 = this.props,\n cols = _this$props6.cols,\n x = _this$props6.x,\n minW = _this$props6.minW,\n minH = _this$props6.minH,\n maxW = _this$props6.maxW,\n maxH = _this$props6.maxH,\n transformScale = _this$props6.transformScale,\n resizeHandles = _this$props6.resizeHandles,\n resizeHandle = _this$props6.resizeHandle;\n var positionParams = this.getPositionParams(); // This is the max possible width - doesn't go to infinity because of the width of the window\n\n var maxWidth = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, cols - x, 0).width; // Calculate min/max constraints using our min & maxes\n\n var mins = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, minW, minH);\n var maxes = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, maxW, maxH);\n var minConstraints = [mins.width, mins.height];\n var maxConstraints = [Math.min(maxes.width, maxWidth), Math.min(maxes.height, Infinity)];\n return /*#__PURE__*/_react.default.createElement(_reactResizable.Resizable // These are opts for the resize handle itself\n , {\n draggableOpts: {\n disabled: !isResizable\n },\n className: isResizable ? undefined : \"react-resizable-hide\",\n width: position.width,\n height: position.height,\n minConstraints: minConstraints,\n maxConstraints: maxConstraints,\n onResizeStop: this.onResizeStop,\n onResizeStart: this.onResizeStart,\n onResize: this.onResize,\n transformScale: transformScale,\n resizeHandles: resizeHandles,\n handle: resizeHandle\n }, child);\n }\n /**\n * onDragStart event handler\n * @param {Event} e event data\n * @param {Object} callbackData an object with node, delta and position information\n */\n\n }, {\n key: \"onResizeHandler\",\n value:\n /**\n * Wrapper around drag events to provide more useful data.\n * All drag events call the function with the given handler name,\n * with the signature (index, x, y).\n *\n * @param {String} handlerName Handler name to wrap.\n * @return {Function} Handler function.\n */\n function onResizeHandler(e\n /*: Event*/\n , _ref4, handlerName\n /*: string*/\n )\n /*: void*/\n {\n var node = _ref4.node,\n size = _ref4.size;\n var handler = this.props[handlerName];\n if (!handler) return;\n var _this$props7 = this.props,\n cols = _this$props7.cols,\n x = _this$props7.x,\n y = _this$props7.y,\n i = _this$props7.i,\n maxH = _this$props7.maxH,\n minH = _this$props7.minH;\n var _this$props8 = this.props,\n minW = _this$props8.minW,\n maxW = _this$props8.maxW; // Get new XY\n\n var _calcWH = (0, _calculateUtils.calcWH)(this.getPositionParams(), size.width, size.height, x, y),\n w = _calcWH.w,\n h = _calcWH.h; // minW should be at least 1 (TODO propTypes validation?)\n\n\n minW = Math.max(minW, 1); // maxW should be at most (cols - x)\n\n maxW = Math.min(maxW, cols - x); // Min/max capping\n\n w = (0, _calculateUtils.clamp)(w, minW, maxW);\n h = (0, _calculateUtils.clamp)(h, minH, maxH);\n this.setState({\n resizing: handlerName === \"onResizeStop\" ? null : size\n });\n handler.call(this, i, w, h, {\n e: e,\n node: node,\n size: size\n });\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactNode*/\n {\n var _this$props9 = this.props,\n x = _this$props9.x,\n y = _this$props9.y,\n w = _this$props9.w,\n h = _this$props9.h,\n isDraggable = _this$props9.isDraggable,\n isResizable = _this$props9.isResizable,\n droppingPosition = _this$props9.droppingPosition,\n useCSSTransforms = _this$props9.useCSSTransforms;\n var pos = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(), x, y, w, h, this.state);\n\n var child = _react.default.Children.only(this.props.children); // Create the child element. We clone the existing element but modify its className and style.\n\n\n var newChild = /*#__PURE__*/_react.default.cloneElement(child, {\n ref: this.elementRef,\n className: (0, _clsx.default)(\"react-grid-item\", child.props.className, this.props.className, {\n static: this.props.static,\n resizing: Boolean(this.state.resizing),\n \"react-draggable\": isDraggable,\n \"react-draggable-dragging\": Boolean(this.state.dragging),\n dropping: Boolean(droppingPosition),\n cssTransforms: useCSSTransforms\n }),\n // We can set the width and height on the child, but unfortunately we can't set the position.\n style: _objectSpread(_objectSpread(_objectSpread({}, this.props.style), child.props.style), this.createStyle(pos))\n }); // Resizable support. This is usually on but the user can toggle it off.\n\n\n newChild = this.mixinResizable(newChild, pos, isResizable); // Draggable support. This is always on, except for with placeholders.\n\n newChild = this.mixinDraggable(newChild, isDraggable);\n return newChild;\n }\n }]);\n\n return GridItem;\n}(_react.default.Component);\n\nexports.default = GridItem;\n\n_defineProperty(GridItem, \"propTypes\", {\n // Children must be only a single element\n children: _propTypes.default.element,\n // General grid attributes\n cols: _propTypes.default.number.isRequired,\n containerWidth: _propTypes.default.number.isRequired,\n rowHeight: _propTypes.default.number.isRequired,\n margin: _propTypes.default.array.isRequired,\n maxRows: _propTypes.default.number.isRequired,\n containerPadding: _propTypes.default.array.isRequired,\n // These are all in grid units\n x: _propTypes.default.number.isRequired,\n y: _propTypes.default.number.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired,\n // All optional\n minW: function minW(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"minWidth not Number\");\n if (value > props.w || value > props.maxW) return new Error(\"minWidth larger than item width/maxWidth\");\n },\n maxW: function maxW(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"maxWidth not Number\");\n if (value < props.w || value < props.minW) return new Error(\"maxWidth smaller than item width/minWidth\");\n },\n minH: function minH(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"minHeight not Number\");\n if (value > props.h || value > props.maxH) return new Error(\"minHeight larger than item height/maxHeight\");\n },\n maxH: function maxH(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"maxHeight not Number\");\n if (value < props.h || value < props.minH) return new Error(\"maxHeight smaller than item height/minHeight\");\n },\n // ID is nice to have for callbacks\n i: _propTypes.default.string.isRequired,\n // Resize handle options\n resizeHandles: _ReactGridLayoutPropTypes.resizeHandleAxesType,\n resizeHandle: _ReactGridLayoutPropTypes.resizeHandleType,\n // Functions\n onDragStop: _propTypes.default.func,\n onDragStart: _propTypes.default.func,\n onDrag: _propTypes.default.func,\n onResizeStop: _propTypes.default.func,\n onResizeStart: _propTypes.default.func,\n onResize: _propTypes.default.func,\n // Flags\n isDraggable: _propTypes.default.bool.isRequired,\n isResizable: _propTypes.default.bool.isRequired,\n isBounded: _propTypes.default.bool.isRequired,\n static: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool.isRequired,\n transformScale: _propTypes.default.number,\n // Others\n className: _propTypes.default.string,\n // Selector for draggable handle\n handle: _propTypes.default.string,\n // Selector for draggable cancel (see react-draggable)\n cancel: _propTypes.default.string,\n // Current position of a dropping element\n droppingPosition: _propTypes.default.shape({\n e: _propTypes.default.object.isRequired,\n left: _propTypes.default.number.isRequired,\n top: _propTypes.default.number.isRequired\n })\n});\n\n_defineProperty(GridItem, \"defaultProps\", {\n className: \"\",\n cancel: \"\",\n handle: \"\",\n minH: 1,\n minW: 1,\n maxH: Infinity,\n maxW: Infinity,\n transformScale: 1\n});","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _utils = require(\"./utils\");\n\nvar _calculateUtils = require(\"./calculateUtils\");\n\nvar _GridItem = _interopRequireDefault(require(\"./GridItem\"));\n\nvar _ReactGridLayoutPropTypes = _interopRequireDefault(require(\"./ReactGridLayoutPropTypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// End Types\nvar layoutClassName = \"react-grid-layout\";\nvar isFirefox = false; // Try...catch will protect from navigator not existing (e.g. node) or a bad implementation of navigator\n\ntry {\n isFirefox = /firefox/i.test(navigator.userAgent);\n} catch (e) {\n /* Ignore */\n}\n/**\n * A reactive, fluid grid layout with draggable, resizable components.\n */\n\n\nvar ReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactGridLayout, _React$Component);\n\n var _super = _createSuper(ReactGridLayout);\n\n function ReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ReactGridLayout);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n activeDrag: null,\n layout: (0, _utils.synchronizeLayoutWithChildren)(_this.props.layout, _this.props.children, _this.props.cols, // Legacy support for verticalCompact: false\n (0, _utils.compactType)(_this.props), _this.props.allowOverlap),\n mounted: false,\n oldDragItem: null,\n oldLayout: null,\n oldResizeItem: null,\n droppingDOMNode: null,\n children: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"dragEnterCounter\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (i\n /*: string*/\n , x\n /*: number*/\n , y\n /*: number*/\n , _ref) {\n var e = _ref.e,\n node = _ref.node;\n var layout = _this.state.layout;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return;\n\n _this.setState({\n oldDragItem: (0, _utils.cloneLayoutItem)(l),\n oldLayout: layout\n });\n\n return _this.props.onDragStart(layout, l, l, null, e, node);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (i, x, y, _ref2) {\n var e = _ref2.e,\n node = _ref2.node;\n var oldDragItem = _this.state.oldDragItem;\n var layout = _this.state.layout;\n var _this$props = _this.props,\n cols = _this$props.cols,\n allowOverlap = _this$props.allowOverlap,\n preventCollision = _this$props.preventCollision;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return; // Create placeholder (display only)\n\n var placeholder = {\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n placeholder: true,\n i: i\n }; // Move the element to the dragged location.\n\n var isUserAction = true;\n layout = (0, _utils.moveElement)(layout, l, x, y, isUserAction, preventCollision, (0, _utils.compactType)(_this.props), cols, allowOverlap);\n\n _this.props.onDrag(layout, oldDragItem, l, placeholder, e, node);\n\n _this.setState({\n layout: allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols),\n activeDrag: placeholder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (i, x, y, _ref3) {\n var e = _ref3.e,\n node = _ref3.node;\n if (!_this.state.activeDrag) return;\n var oldDragItem = _this.state.oldDragItem;\n var layout = _this.state.layout;\n var _this$props2 = _this.props,\n cols = _this$props2.cols,\n preventCollision = _this$props2.preventCollision,\n allowOverlap = _this$props2.allowOverlap;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return; // Move the element here\n\n var isUserAction = true;\n layout = (0, _utils.moveElement)(layout, l, x, y, isUserAction, preventCollision, (0, _utils.compactType)(_this.props), cols, allowOverlap);\n\n _this.props.onDragStop(layout, oldDragItem, l, null, e, node); // Set state\n\n\n var newLayout = allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols);\n var oldLayout = _this.state.oldLayout;\n\n _this.setState({\n activeDrag: null,\n layout: newLayout,\n oldDragItem: null,\n oldLayout: null\n });\n\n _this.onLayoutMaybeChanged(newLayout, oldLayout);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStart\", function (i, w, h, _ref4) {\n var e = _ref4.e,\n node = _ref4.node;\n var layout = _this.state.layout;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return;\n\n _this.setState({\n oldResizeItem: (0, _utils.cloneLayoutItem)(l),\n oldLayout: _this.state.layout\n });\n\n _this.props.onResizeStart(layout, l, l, null, e, node);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function (i, w, h, _ref5) {\n var e = _ref5.e,\n node = _ref5.node;\n var _this$state = _this.state,\n layout = _this$state.layout,\n oldResizeItem = _this$state.oldResizeItem;\n var _this$props3 = _this.props,\n cols = _this$props3.cols,\n preventCollision = _this$props3.preventCollision,\n allowOverlap = _this$props3.allowOverlap;\n\n var _withLayoutItem = (0, _utils.withLayoutItem)(layout, i, function (l) {\n // Something like quad tree should be used\n // to find collisions faster\n var hasCollisions;\n\n if (preventCollision && !allowOverlap) {\n var collisions = (0, _utils.getAllCollisions)(layout, _objectSpread(_objectSpread({}, l), {}, {\n w: w,\n h: h\n })).filter(function (layoutItem) {\n return layoutItem.i !== l.i;\n });\n hasCollisions = collisions.length > 0; // If we're colliding, we need adjust the placeholder.\n\n // If we're colliding, we need adjust the placeholder.\n if (hasCollisions) {\n // adjust w && h to maximum allowed space\n var leastX = Infinity,\n leastY = Infinity;\n collisions.forEach(function (layoutItem) {\n if (layoutItem.x > l.x) leastX = Math.min(leastX, layoutItem.x);\n if (layoutItem.y > l.y) leastY = Math.min(leastY, layoutItem.y);\n });\n if (Number.isFinite(leastX)) l.w = leastX - l.x;\n if (Number.isFinite(leastY)) l.h = leastY - l.y;\n }\n }\n\n if (!hasCollisions) {\n // Set new width and height.\n l.w = w;\n l.h = h;\n }\n\n return l;\n }),\n _withLayoutItem2 = _slicedToArray(_withLayoutItem, 2),\n newLayout = _withLayoutItem2[0],\n l = _withLayoutItem2[1]; // Shouldn't ever happen, but typechecking makes it necessary\n\n\n if (!l) return; // Create placeholder element (display only)\n\n var placeholder = {\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n static: true,\n i: i\n };\n\n _this.props.onResize(newLayout, oldResizeItem, l, placeholder, e, node); // Re-compact the newLayout and set the drag placeholder.\n\n\n _this.setState({\n layout: allowOverlap ? newLayout : (0, _utils.compact)(newLayout, (0, _utils.compactType)(_this.props), cols),\n activeDrag: placeholder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStop\", function (i, w, h, _ref6) {\n var e = _ref6.e,\n node = _ref6.node;\n var _this$state2 = _this.state,\n layout = _this$state2.layout,\n oldResizeItem = _this$state2.oldResizeItem;\n var _this$props4 = _this.props,\n cols = _this$props4.cols,\n allowOverlap = _this$props4.allowOverlap;\n var l = (0, _utils.getLayoutItem)(layout, i);\n\n _this.props.onResizeStop(layout, oldResizeItem, l, null, e, node); // Set state\n\n\n var newLayout = allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols);\n var oldLayout = _this.state.oldLayout;\n\n _this.setState({\n activeDrag: null,\n layout: newLayout,\n oldResizeItem: null,\n oldLayout: null\n });\n\n _this.onLayoutMaybeChanged(newLayout, oldLayout);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragOver\", function (e) {\n var _e$nativeEvent$target;\n\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation(); // we should ignore events from layout's children in Firefox\n // to avoid unpredictable jumping of a dropping placeholder\n // FIXME remove this hack\n\n if (isFirefox && // $FlowIgnore can't figure this out\n !((_e$nativeEvent$target = e.nativeEvent.target) !== null && _e$nativeEvent$target !== void 0 && _e$nativeEvent$target.classList.contains(layoutClassName))) {\n return false;\n }\n\n var _this$props5 = _this.props,\n droppingItem = _this$props5.droppingItem,\n onDropDragOver = _this$props5.onDropDragOver,\n margin = _this$props5.margin,\n cols = _this$props5.cols,\n rowHeight = _this$props5.rowHeight,\n maxRows = _this$props5.maxRows,\n width = _this$props5.width,\n containerPadding = _this$props5.containerPadding,\n transformScale = _this$props5.transformScale; // Allow user to customize the dropping item or short-circuit the drop based on the results\n // of the `onDragOver(e: Event)` callback.\n\n var onDragOverResult = onDropDragOver === null || onDropDragOver === void 0 ? void 0 : onDropDragOver(e);\n\n if (onDragOverResult === false) {\n if (_this.state.droppingDOMNode) {\n _this.removeDroppingPlaceholder();\n }\n\n return false;\n }\n\n var finalDroppingItem = _objectSpread(_objectSpread({}, droppingItem), onDragOverResult);\n\n var layout = _this.state.layout; // This is relative to the DOM element that this event fired for.\n\n var _e$nativeEvent = e.nativeEvent,\n layerX = _e$nativeEvent.layerX,\n layerY = _e$nativeEvent.layerY;\n var droppingPosition = {\n left: layerX / transformScale,\n top: layerY / transformScale,\n e: e\n };\n\n if (!_this.state.droppingDOMNode) {\n var positionParams\n /*: PositionParams*/\n = {\n cols: cols,\n margin: margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n containerWidth: width,\n containerPadding: containerPadding || margin\n };\n var calculatedPosition = (0, _calculateUtils.calcXY)(positionParams, layerY, layerX, finalDroppingItem.w, finalDroppingItem.h);\n\n _this.setState({\n droppingDOMNode: /*#__PURE__*/React.createElement(\"div\", {\n key: finalDroppingItem.i\n }),\n droppingPosition: droppingPosition,\n layout: [].concat(_toConsumableArray(layout), [_objectSpread(_objectSpread({}, finalDroppingItem), {}, {\n x: calculatedPosition.x,\n y: calculatedPosition.y,\n static: false,\n isDraggable: true\n })])\n });\n } else if (_this.state.droppingPosition) {\n var _this$state$droppingP = _this.state.droppingPosition,\n left = _this$state$droppingP.left,\n top = _this$state$droppingP.top;\n var shouldUpdatePosition = left != layerX || top != layerY;\n\n if (shouldUpdatePosition) {\n _this.setState({\n droppingPosition: droppingPosition\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"removeDroppingPlaceholder\", function () {\n var _this$props6 = _this.props,\n droppingItem = _this$props6.droppingItem,\n cols = _this$props6.cols;\n var layout = _this.state.layout;\n var newLayout = (0, _utils.compact)(layout.filter(function (l) {\n return l.i !== droppingItem.i;\n }), (0, _utils.compactType)(_this.props), cols);\n\n _this.setState({\n layout: newLayout,\n droppingDOMNode: null,\n activeDrag: null,\n droppingPosition: undefined\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", function (e) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n _this.dragEnterCounter--; // onDragLeave can be triggered on each layout's child.\n // But we know that count of dragEnter and dragLeave events\n // will be balanced after leaving the layout's container\n // so we can increase and decrease count of dragEnter and\n // when it'll be equal to 0 we'll remove the placeholder\n\n if (_this.dragEnterCounter === 0) {\n _this.removeDroppingPlaceholder();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", function (e) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n _this.dragEnterCounter++;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrop\", function (e\n /*: Event*/\n ) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n var droppingItem = _this.props.droppingItem;\n var layout = _this.state.layout;\n var item = layout.find(function (l) {\n return l.i === droppingItem.i;\n }); // reset dragEnter counter on drop\n\n _this.dragEnterCounter = 0;\n\n _this.removeDroppingPlaceholder();\n\n _this.props.onDrop(layout, item, e);\n });\n\n return _this;\n }\n\n _createClass(ReactGridLayout, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n mounted: true\n }); // Possibly call back with layout on mount. This should be done after correcting the layout width\n // to ensure we don't rerender with the wrong width.\n\n this.onLayoutMaybeChanged(this.state.layout, this.props.layout);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps\n /*: Props*/\n , nextState\n /*: State*/\n )\n /*: boolean*/\n {\n return (// NOTE: this is almost always unequal. Therefore the only way to get better performance\n // from SCU is if the user intentionally memoizes children. If they do, and they can\n // handle changes properly, performance will increase.\n this.props.children !== nextProps.children || !(0, _utils.fastRGLPropsEqual)(this.props, nextProps, _lodash.default) || this.state.activeDrag !== nextState.activeDrag || this.state.mounted !== nextState.mounted || this.state.droppingPosition !== nextState.droppingPosition\n );\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props*/\n , prevState\n /*: State*/\n ) {\n if (!this.state.activeDrag) {\n var newLayout = this.state.layout;\n var oldLayout = prevState.layout;\n this.onLayoutMaybeChanged(newLayout, oldLayout);\n }\n }\n /**\n * Calculates a pixel value for the container.\n * @return {String} Container height in pixels.\n */\n\n }, {\n key: \"containerHeight\",\n value: function containerHeight()\n /*: ?string*/\n {\n if (!this.props.autoSize) return;\n var nbRow = (0, _utils.bottom)(this.state.layout);\n var containerPaddingY = this.props.containerPadding ? this.props.containerPadding[1] : this.props.margin[1];\n return nbRow * this.props.rowHeight + (nbRow - 1) * this.props.margin[1] + containerPaddingY * 2 + \"px\";\n }\n /**\n * When dragging starts\n * @param {String} i Id of the child\n * @param {Number} x X position of the move\n * @param {Number} y Y position of the move\n * @param {Event} e The mousedown event\n * @param {Element} node The current dragging DOM element\n */\n\n }, {\n key: \"onLayoutMaybeChanged\",\n value: function onLayoutMaybeChanged(newLayout\n /*: Layout*/\n , oldLayout\n /*: ?Layout*/\n ) {\n if (!oldLayout) oldLayout = this.state.layout;\n\n if (!(0, _lodash.default)(oldLayout, newLayout)) {\n this.props.onLayoutChange(newLayout);\n }\n }\n }, {\n key: \"placeholder\",\n value:\n /**\n * Create a placeholder object.\n * @return {Element} Placeholder div.\n */\n function placeholder()\n /*: ?ReactElement*/\n {\n var activeDrag = this.state.activeDrag;\n if (!activeDrag) return null;\n var _this$props7 = this.props,\n width = _this$props7.width,\n cols = _this$props7.cols,\n margin = _this$props7.margin,\n containerPadding = _this$props7.containerPadding,\n rowHeight = _this$props7.rowHeight,\n maxRows = _this$props7.maxRows,\n useCSSTransforms = _this$props7.useCSSTransforms,\n transformScale = _this$props7.transformScale; // {...this.state.activeDrag} is pretty slow, actually\n\n return /*#__PURE__*/React.createElement(_GridItem.default, {\n w: activeDrag.w,\n h: activeDrag.h,\n x: activeDrag.x,\n y: activeDrag.y,\n i: activeDrag.i,\n className: \"react-grid-placeholder\",\n containerWidth: width,\n cols: cols,\n margin: margin,\n containerPadding: containerPadding || margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n isDraggable: false,\n isResizable: false,\n isBounded: false,\n useCSSTransforms: useCSSTransforms,\n transformScale: transformScale\n }, /*#__PURE__*/React.createElement(\"div\", null));\n }\n /**\n * Given a grid item, set its style attributes & surround in a .\n * @param {Element} child React element.\n * @return {Element} Element wrapped in draggable and properly placed.\n */\n\n }, {\n key: \"processGridItem\",\n value: function processGridItem(child\n /*: ReactElement*/\n , isDroppingItem\n /*: boolean*/\n )\n /*: ?ReactElement*/\n {\n if (!child || !child.key) return;\n var l = (0, _utils.getLayoutItem)(this.state.layout, String(child.key));\n if (!l) return null;\n var _this$props8 = this.props,\n width = _this$props8.width,\n cols = _this$props8.cols,\n margin = _this$props8.margin,\n containerPadding = _this$props8.containerPadding,\n rowHeight = _this$props8.rowHeight,\n maxRows = _this$props8.maxRows,\n isDraggable = _this$props8.isDraggable,\n isResizable = _this$props8.isResizable,\n isBounded = _this$props8.isBounded,\n useCSSTransforms = _this$props8.useCSSTransforms,\n transformScale = _this$props8.transformScale,\n draggableCancel = _this$props8.draggableCancel,\n draggableHandle = _this$props8.draggableHandle,\n resizeHandles = _this$props8.resizeHandles,\n resizeHandle = _this$props8.resizeHandle;\n var _this$state3 = this.state,\n mounted = _this$state3.mounted,\n droppingPosition = _this$state3.droppingPosition; // Determine user manipulations possible.\n // If an item is static, it can't be manipulated by default.\n // Any properties defined directly on the grid item will take precedence.\n\n var draggable = typeof l.isDraggable === \"boolean\" ? l.isDraggable : !l.static && isDraggable;\n var resizable = typeof l.isResizable === \"boolean\" ? l.isResizable : !l.static && isResizable;\n var resizeHandlesOptions = l.resizeHandles || resizeHandles; // isBounded set on child if set on parent, and child is not explicitly false\n\n var bounded = draggable && isBounded && l.isBounded !== false;\n return /*#__PURE__*/React.createElement(_GridItem.default, {\n containerWidth: width,\n cols: cols,\n margin: margin,\n containerPadding: containerPadding || margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n cancel: draggableCancel,\n handle: draggableHandle,\n onDragStop: this.onDragStop,\n onDragStart: this.onDragStart,\n onDrag: this.onDrag,\n onResizeStart: this.onResizeStart,\n onResize: this.onResize,\n onResizeStop: this.onResizeStop,\n isDraggable: draggable,\n isResizable: resizable,\n isBounded: bounded,\n useCSSTransforms: useCSSTransforms && mounted,\n usePercentages: !mounted,\n transformScale: transformScale,\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n i: l.i,\n minH: l.minH,\n minW: l.minW,\n maxH: l.maxH,\n maxW: l.maxW,\n static: l.static,\n droppingPosition: isDroppingItem ? droppingPosition : undefined,\n resizeHandles: resizeHandlesOptions,\n resizeHandle: resizeHandle\n }, child);\n } // Called while dragging an element. Part of browser native drag/drop API.\n // Native event target might be the layout itself, or an element within the layout.\n\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element<\"div\">*/\n {\n var _this2 = this;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n style = _this$props9.style,\n isDroppable = _this$props9.isDroppable,\n innerRef = _this$props9.innerRef;\n var mergedClassName = (0, _clsx.default)(layoutClassName, className);\n\n var mergedStyle = _objectSpread({\n height: this.containerHeight()\n }, style);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: innerRef,\n className: mergedClassName,\n style: mergedStyle,\n onDrop: isDroppable ? this.onDrop : _utils.noop,\n onDragLeave: isDroppable ? this.onDragLeave : _utils.noop,\n onDragEnter: isDroppable ? this.onDragEnter : _utils.noop,\n onDragOver: isDroppable ? this.onDragOver : _utils.noop\n }, React.Children.map(this.props.children, function (child) {\n return _this2.processGridItem(child);\n }), isDroppable && this.state.droppingDOMNode && this.processGridItem(this.state.droppingDOMNode, true), this.placeholder());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props*/\n , prevState\n /*: State*/\n )\n /*: $Shape | null*/\n {\n var newLayoutBase;\n\n if (prevState.activeDrag) {\n return null;\n } // Legacy support for compactType\n // Allow parent to set layout directly.\n\n\n if (!(0, _lodash.default)(nextProps.layout, prevState.propsLayout) || nextProps.compactType !== prevState.compactType) {\n newLayoutBase = nextProps.layout;\n } else if (!(0, _utils.childrenEqual)(nextProps.children, prevState.children)) {\n // If children change, also regenerate the layout. Use our state\n // as the base in case because it may be more up to date than\n // what is in props.\n newLayoutBase = prevState.layout;\n } // We need to regenerate the layout.\n\n\n if (newLayoutBase) {\n var newLayout = (0, _utils.synchronizeLayoutWithChildren)(newLayoutBase, nextProps.children, nextProps.cols, (0, _utils.compactType)(nextProps), nextProps.allowOverlap);\n return {\n layout: newLayout,\n // We need to save these props to state for using\n // getDerivedStateFromProps instead of componentDidMount (in which we would get extra rerender)\n compactType: nextProps.compactType,\n children: nextProps.children,\n propsLayout: nextProps.layout\n };\n }\n\n return null;\n }\n }]);\n\n return ReactGridLayout;\n}(React.Component);\n\nexports.default = ReactGridLayout;\n\n_defineProperty(ReactGridLayout, \"displayName\", \"ReactGridLayout\");\n\n_defineProperty(ReactGridLayout, \"propTypes\", _ReactGridLayoutPropTypes.default);\n\n_defineProperty(ReactGridLayout, \"defaultProps\", {\n autoSize: true,\n cols: 12,\n className: \"\",\n style: {},\n draggableHandle: \"\",\n draggableCancel: \"\",\n containerPadding: null,\n rowHeight: 150,\n maxRows: Infinity,\n // infinite vertical growth\n layout: [],\n margin: [10, 10],\n isBounded: false,\n isDraggable: true,\n isResizable: true,\n allowOverlap: false,\n isDroppable: false,\n useCSSTransforms: true,\n transformScale: 1,\n verticalCompact: true,\n compactType: \"vertical\",\n preventCollision: false,\n droppingItem: {\n i: \"__dropping-elem__\",\n h: 1,\n w: 1\n },\n resizeHandles: [\"se\"],\n onLayoutChange: _utils.noop,\n onDragStart: _utils.noop,\n onDrag: _utils.noop,\n onDragStop: _utils.noop,\n onResizeStart: _utils.noop,\n onResize: _utils.noop,\n onResizeStop: _utils.noop,\n onDrop: _utils.noop,\n onDropDragOver: _utils.noop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resizeHandleType = exports.resizeHandleAxesType = exports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Defines which resize handles should be rendered (default: 'se')\n// Allows for any combination of:\n// 's' - South handle (bottom-center)\n// 'w' - West handle (left-center)\n// 'e' - East handle (right-center)\n// 'n' - North handle (top-center)\n// 'sw' - Southwest handle (bottom-left)\n// 'nw' - Northwest handle (top-left)\n// 'se' - Southeast handle (bottom-right)\n// 'ne' - Northeast handle (top-right)\nvar resizeHandleAxesType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.arrayOf(_propTypes.default.oneOf([\"s\", \"w\", \"e\", \"n\", \"sw\", \"nw\", \"se\", \"ne\"])); // Custom component for resize handles\n\n\nexports.resizeHandleAxesType = resizeHandleAxesType;\n\nvar resizeHandleType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]);\n/*:: export type Props = {|\n className: string,\n style: Object,\n width: number,\n autoSize: boolean,\n cols: number,\n draggableCancel: string,\n draggableHandle: string,\n verticalCompact: boolean,\n compactType: CompactType,\n layout: Layout,\n margin: [number, number],\n containerPadding: ?[number, number],\n rowHeight: number,\n maxRows: number,\n isBounded: boolean,\n isDraggable: boolean,\n isResizable: boolean,\n isDroppable: boolean,\n preventCollision: boolean,\n useCSSTransforms: boolean,\n transformScale: number,\n droppingItem: $Shape,\n resizeHandles: ResizeHandleAxis[],\n resizeHandle?: ResizeHandle,\n allowOverlap: boolean,\n\n // Callbacks\n onLayoutChange: Layout => void,\n onDrag: EventCallback,\n onDragStart: EventCallback,\n onDragStop: EventCallback,\n onResize: EventCallback,\n onResizeStart: EventCallback,\n onResizeStop: EventCallback,\n onDropDragOver: (e: DragOverEvent) => ?({| w?: number, h?: number |} | false),\n onDrop: (layout: Layout, item: ?LayoutItem, e: Event) => void,\n children: ReactChildrenArray>,\n innerRef?: Ref<\"div\">\n|};*/\n\n/*:: export type DefaultProps = $Diff<\n Props,\n {\n children: ReactChildrenArray>,\n width: number\n }\n>;*/\n\n\nexports.resizeHandleType = resizeHandleType;\nvar _default = {\n //\n // Basic props\n //\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n // This can be set explicitly. If it is not set, it will automatically\n // be set to the container width. Note that resizes will *not* cause this to adjust.\n // If you need that behavior, use WidthProvider.\n width: _propTypes.default.number,\n // If true, the container height swells and contracts to fit contents\n autoSize: _propTypes.default.bool,\n // # of cols.\n cols: _propTypes.default.number,\n // A selector that will not be draggable.\n draggableCancel: _propTypes.default.string,\n // A selector for the draggable handler\n draggableHandle: _propTypes.default.string,\n // Deprecated\n verticalCompact: function verticalCompact(props\n /*: Props*/\n ) {\n if (props.verticalCompact === false && process.env.NODE_ENV !== \"production\") {\n console.warn( // eslint-disable-line no-console\n \"`verticalCompact` on is deprecated and will be removed soon. \" + 'Use `compactType`: \"horizontal\" | \"vertical\" | null.');\n }\n },\n // Choose vertical or hotizontal compaction\n compactType: (_propTypes.default.oneOf([\"vertical\", \"horizontal\"])\n /*: ReactPropsChainableTypeChecker*/\n ),\n // layout is an array of object with the format:\n // {x: Number, y: Number, w: Number, h: Number, i: String}\n layout: function layout(props\n /*: Props*/\n ) {\n var layout = props.layout; // I hope you're setting the data-grid property on the grid items\n\n if (layout === undefined) return;\n\n require(\"./utils\").validateLayout(layout, \"layout\");\n },\n //\n // Grid Dimensions\n //\n // Margin between items [x, y] in px\n margin: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Padding inside the container [x, y] in px\n containerPadding: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Rows have a static height, but you can change this based on breakpoints if you like\n rowHeight: _propTypes.default.number,\n // Default Infinity, but you can specify a max here if you like.\n // Note that this isn't fully fleshed out and won't error if you specify a layout that\n // extends beyond the row capacity. It will, however, not allow users to drag/resize\n // an item past the barrier. They can push items beyond the barrier, though.\n // Intentionally not documented for this reason.\n maxRows: _propTypes.default.number,\n //\n // Flags\n //\n isBounded: _propTypes.default.bool,\n isDraggable: _propTypes.default.bool,\n isResizable: _propTypes.default.bool,\n // If true, grid can be placed one over the other.\n allowOverlap: _propTypes.default.bool,\n // If true, grid items won't change position when being dragged over.\n preventCollision: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool,\n // parent layout transform scale\n transformScale: _propTypes.default.number,\n // If true, an external element can trigger onDrop callback with a specific grid position as a parameter\n isDroppable: _propTypes.default.bool,\n // Resize handle options\n resizeHandles: resizeHandleAxesType,\n resizeHandle: resizeHandleType,\n //\n // Callbacks\n //\n // Callback so you can save the layout. Calls after each drag & resize stops.\n onLayoutChange: _propTypes.default.func,\n // Calls when drag starts. Callback is of the signature (layout, oldItem, newItem, placeholder, e, ?node).\n // All callbacks below have the same signature. 'start' and 'stop' callbacks omit the 'placeholder'.\n onDragStart: _propTypes.default.func,\n // Calls on each drag movement.\n onDrag: _propTypes.default.func,\n // Calls when drag is complete.\n onDragStop: _propTypes.default.func,\n //Calls when resize starts.\n onResizeStart: _propTypes.default.func,\n // Calls when resize movement happens.\n onResize: _propTypes.default.func,\n // Calls when resize is complete.\n onResizeStop: _propTypes.default.func,\n // Calls when some element is dropped.\n onDrop: _propTypes.default.func,\n //\n // Other validations\n //\n droppingItem: (_propTypes.default.shape({\n i: _propTypes.default.string.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired\n })\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Children must not have duplicate keys.\n children: function children(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var children = props[propName]; // Check children keys for duplicates. Throw if found.\n\n var keys = {};\n\n _react.default.Children.forEach(children, function (child) {\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return;\n\n if (keys[child.key]) {\n throw new Error('Duplicate child key \"' + child.key + '\" found! This will cause problems in ReactGridLayout.');\n }\n\n keys[child.key] = true;\n });\n },\n // Optional ref for getting a reference for the wrapping div.\n innerRef: _propTypes.default.any\n};\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _utils = require(\"./utils\");\n\nvar _responsiveUtils = require(\"./responsiveUtils\");\n\nvar _ReactGridLayout = _interopRequireDefault(require(\"./ReactGridLayout\"));\n\nvar _excluded = [\"breakpoint\", \"breakpoints\", \"cols\", \"layouts\", \"margin\", \"containerPadding\", \"onBreakpointChange\", \"onLayoutChange\", \"onWidthChange\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// $FlowFixMe[method-unbinding]\nvar type = function type(obj) {\n return Object.prototype.toString.call(obj);\n};\n/**\n * Get a value of margin or containerPadding.\n *\n * @param {Array | Object} param Margin | containerPadding, e.g. [10, 10] | {lg: [10, 10], ...}.\n * @param {String} breakpoint Breakpoint: lg, md, sm, xs and etc.\n * @return {Array}\n */\n\n\nfunction getIndentationValue\n/*:: */\n(param\n/*: { [key: string]: T } | T*/\n, breakpoint\n/*: string*/\n)\n/*: T*/\n{\n // $FlowIgnore TODO fix this typedef\n if (param == null) return null; // $FlowIgnore TODO fix this typedef\n\n return Array.isArray(param) ? param : param[breakpoint];\n}\n/*:: type State = {\n layout: Layout,\n breakpoint: string,\n cols: number,\n layouts?: ResponsiveLayout\n};*/\n\n/*:: type Props = {|\n ...React.ElementConfig,\n\n // Responsive config\n breakpoint?: ?Breakpoint,\n breakpoints: Breakpoints,\n cols: { [key: Breakpoint]: number },\n layouts: ResponsiveLayout,\n width: number,\n margin: { [key: Breakpoint]: [number, number] } | [number, number],\n /* prettier-ignore *-/\n containerPadding: { [key: Breakpoint]: ?[number, number] } | ?[number, number],\n\n // Callbacks\n onBreakpointChange: (Breakpoint, cols: number) => void,\n onLayoutChange: OnLayoutChangeCallback,\n onWidthChange: (\n containerWidth: number,\n margin: [number, number],\n cols: number,\n containerPadding: ?[number, number]\n ) => void\n|};*/\n\n/*:: type DefaultProps = Pick<\n Props<>,\n {|\n allowOverlap: 0,\n breakpoints: 0,\n cols: 0,\n containerPadding: 0,\n layouts: 0,\n margin: 0,\n onBreakpointChange: 0,\n onLayoutChange: 0,\n onWidthChange: 0\n |}\n>;*/\n\n\nvar ResponsiveReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ResponsiveReactGridLayout, _React$Component);\n\n var _super = _createSuper(ResponsiveReactGridLayout);\n\n function ResponsiveReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ResponsiveReactGridLayout);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", _this.generateInitialState());\n\n _defineProperty(_assertThisInitialized(_this), \"onLayoutChange\", function (layout\n /*: Layout*/\n ) {\n _this.props.onLayoutChange(layout, _objectSpread(_objectSpread({}, _this.props.layouts), {}, _defineProperty({}, _this.state.breakpoint, layout)));\n });\n\n return _this;\n }\n\n _createClass(ResponsiveReactGridLayout, [{\n key: \"generateInitialState\",\n value: function generateInitialState()\n /*: State*/\n {\n var _this$props = this.props,\n width = _this$props.width,\n breakpoints = _this$props.breakpoints,\n layouts = _this$props.layouts,\n cols = _this$props.cols;\n var breakpoint = (0, _responsiveUtils.getBreakpointFromWidth)(breakpoints, width);\n var colNo = (0, _responsiveUtils.getColsFromBreakpoint)(breakpoint, cols); // verticalCompact compatibility, now deprecated\n\n var compactType = this.props.verticalCompact === false ? null : this.props.compactType; // Get the initial layout. This can tricky; we try to generate one however possible if one doesn't exist\n // for this layout.\n\n var initialLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(layouts, breakpoints, breakpoint, breakpoint, colNo, compactType);\n return {\n layout: initialLayout,\n breakpoint: breakpoint,\n cols: colNo\n };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props<*>*/\n ) {\n // Allow parent to set width or breakpoint directly.\n if (this.props.width != prevProps.width || this.props.breakpoint !== prevProps.breakpoint || !(0, _lodash.default)(this.props.breakpoints, prevProps.breakpoints) || !(0, _lodash.default)(this.props.cols, prevProps.cols)) {\n this.onWidthChange(prevProps);\n }\n } // wrap layouts so we do not need to pass layouts to child\n\n }, {\n key: \"onWidthChange\",\n value:\n /**\n * When the width changes work through breakpoints and reset state with the new width & breakpoint.\n * Width changes are necessary to figure out the widget widths.\n */\n function onWidthChange(prevProps\n /*: Props<*>*/\n ) {\n var _this$props2 = this.props,\n breakpoints = _this$props2.breakpoints,\n cols = _this$props2.cols,\n layouts = _this$props2.layouts,\n compactType = _this$props2.compactType;\n var newBreakpoint = this.props.breakpoint || (0, _responsiveUtils.getBreakpointFromWidth)(this.props.breakpoints, this.props.width);\n var lastBreakpoint = this.state.breakpoint;\n var newCols\n /*: number*/\n = (0, _responsiveUtils.getColsFromBreakpoint)(newBreakpoint, cols);\n\n var newLayouts = _objectSpread({}, layouts); // Breakpoint change\n\n\n if (lastBreakpoint !== newBreakpoint || prevProps.breakpoints !== breakpoints || prevProps.cols !== cols) {\n // Preserve the current layout if the current breakpoint is not present in the next layouts.\n if (!(lastBreakpoint in newLayouts)) newLayouts[lastBreakpoint] = (0, _utils.cloneLayout)(this.state.layout); // Find or generate a new layout.\n\n var layout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(newLayouts, breakpoints, newBreakpoint, lastBreakpoint, newCols, compactType); // This adds missing items.\n\n layout = (0, _utils.synchronizeLayoutWithChildren)(layout, this.props.children, newCols, compactType, this.props.allowOverlap); // Store the new layout.\n\n newLayouts[newBreakpoint] = layout; // callbacks\n\n this.props.onLayoutChange(layout, newLayouts);\n this.props.onBreakpointChange(newBreakpoint, newCols);\n this.setState({\n breakpoint: newBreakpoint,\n layout: layout,\n cols: newCols\n });\n }\n\n var margin = getIndentationValue(this.props.margin, newBreakpoint);\n var containerPadding = getIndentationValue(this.props.containerPadding, newBreakpoint); //call onWidthChange on every change of width, not only on breakpoint changes\n\n this.props.onWidthChange(this.props.width, margin, newCols, containerPadding);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n /* eslint-disable no-unused-vars */\n var _this$props3 = this.props,\n breakpoint = _this$props3.breakpoint,\n breakpoints = _this$props3.breakpoints,\n cols = _this$props3.cols,\n layouts = _this$props3.layouts,\n margin = _this$props3.margin,\n containerPadding = _this$props3.containerPadding,\n onBreakpointChange = _this$props3.onBreakpointChange,\n onLayoutChange = _this$props3.onLayoutChange,\n onWidthChange = _this$props3.onWidthChange,\n other = _objectWithoutProperties(_this$props3, _excluded);\n /* eslint-enable no-unused-vars */\n\n\n return /*#__PURE__*/React.createElement(_ReactGridLayout.default, _extends({}, other, {\n // $FlowIgnore should allow nullable here due to DefaultProps\n margin: getIndentationValue(margin, this.state.breakpoint),\n containerPadding: getIndentationValue(containerPadding, this.state.breakpoint),\n onLayoutChange: this.onLayoutChange,\n layout: this.state.layout,\n cols: this.state.cols\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props<*>*/\n , prevState\n /*: State*/\n )\n /*: ?$Shape*/\n {\n if (!(0, _lodash.default)(nextProps.layouts, prevState.layouts)) {\n // Allow parent to set layouts directly.\n var breakpoint = prevState.breakpoint,\n _cols = prevState.cols; // Since we're setting an entirely new layout object, we must generate a new responsive layout\n // if one does not exist.\n\n var newLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(nextProps.layouts, nextProps.breakpoints, breakpoint, breakpoint, _cols, nextProps.compactType);\n return {\n layout: newLayout,\n layouts: nextProps.layouts\n };\n }\n\n return null;\n }\n }]);\n\n return ResponsiveReactGridLayout;\n}(React.Component);\n\nexports.default = ResponsiveReactGridLayout;\n\n_defineProperty(ResponsiveReactGridLayout, \"propTypes\", {\n //\n // Basic props\n //\n // Optional, but if you are managing width yourself you may want to set the breakpoint\n // yourself as well.\n breakpoint: _propTypes.default.string,\n // {name: pxVal}, e.g. {lg: 1200, md: 996, sm: 768, xs: 480}\n breakpoints: _propTypes.default.object,\n allowOverlap: _propTypes.default.bool,\n // # of cols. This is a breakpoint -> cols map\n cols: _propTypes.default.object,\n // # of margin. This is a breakpoint -> margin map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Margin between items [x, y] in px\n // e.g. [10, 10]\n margin: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // # of containerPadding. This is a breakpoint -> containerPadding map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Padding inside the container [x, y] in px\n // e.g. [10, 10]\n containerPadding: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // layouts is an object mapping breakpoints to layouts.\n // e.g. {lg: Layout, md: Layout, ...}\n layouts: function layouts(props\n /*: Props<>*/\n , propName\n /*: string*/\n ) {\n if (type(props[propName]) !== \"[object Object]\") {\n throw new Error(\"Layout property must be an object. Received: \" + type(props[propName]));\n }\n\n Object.keys(props[propName]).forEach(function (key) {\n if (!(key in props.breakpoints)) {\n throw new Error(\"Each key in layouts must align with a key in breakpoints.\");\n }\n\n (0, _utils.validateLayout)(props.layouts[key], \"layouts.\" + key);\n });\n },\n // The width of this component.\n // Required in this propTypes stanza because generateInitialState() will fail without it.\n width: _propTypes.default.number.isRequired,\n //\n // Callbacks\n //\n // Calls back with breakpoint and new # cols\n onBreakpointChange: _propTypes.default.func,\n // Callback so you can save the layout.\n // Calls back with (currentLayout, allLayouts). allLayouts are keyed by breakpoint.\n onLayoutChange: _propTypes.default.func,\n // Calls back with (containerWidth, margin, cols, containerPadding)\n onWidthChange: _propTypes.default.func\n});\n\n_defineProperty(ResponsiveReactGridLayout, \"defaultProps\", {\n breakpoints: {\n lg: 1200,\n md: 996,\n sm: 768,\n xs: 480,\n xxs: 0\n },\n cols: {\n lg: 12,\n md: 10,\n sm: 6,\n xs: 4,\n xxs: 2\n },\n containerPadding: {\n lg: null,\n md: null,\n sm: null,\n xs: null,\n xxs: null\n },\n layouts: {},\n margin: [10, 10],\n allowOverlap: false,\n onBreakpointChange: _utils.noop,\n onLayoutChange: _utils.noop,\n onWidthChange: _utils.noop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcGridColWidth = calcGridColWidth;\nexports.calcGridItemPosition = calcGridItemPosition;\nexports.calcGridItemWHPx = calcGridItemWHPx;\nexports.calcWH = calcWH;\nexports.calcXY = calcXY;\nexports.clamp = clamp;\n\n/*:: import type { Position } from \"./utils\";*/\n\n/*:: export type PositionParams = {\n margin: [number, number],\n containerPadding: [number, number],\n containerWidth: number,\n cols: number,\n rowHeight: number,\n maxRows: number\n};*/\n// Helper for generating column width\nfunction calcGridColWidth(positionParams\n/*: PositionParams*/\n)\n/*: number*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n containerWidth = positionParams.containerWidth,\n cols = positionParams.cols;\n return (containerWidth - margin[0] * (cols - 1) - containerPadding[0] * 2) / cols;\n} // This can either be called:\n// calcGridItemWHPx(w, colWidth, margin[0])\n// or\n// calcGridItemWHPx(h, rowHeight, margin[1])\n\n\nfunction calcGridItemWHPx(gridUnits\n/*: number*/\n, colOrRowSize\n/*: number*/\n, marginPx\n/*: number*/\n)\n/*: number*/\n{\n // 0 * Infinity === NaN, which causes problems with resize contraints\n if (!Number.isFinite(gridUnits)) return gridUnits;\n return Math.round(colOrRowSize * gridUnits + Math.max(0, gridUnits - 1) * marginPx);\n}\n/**\n * Return position on the page given an x, y, w, h.\n * left, top, width, height are all in pixels.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Position} Object containing coords.\n */\n\n\nfunction calcGridItemPosition(positionParams\n/*: PositionParams*/\n, x\n/*: number*/\n, y\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n, state\n/*: ?Object*/\n)\n/*: Position*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams);\n var out = {}; // If resizing, use the exact width and height as returned from resizing callbacks.\n\n if (state && state.resizing) {\n out.width = Math.round(state.resizing.width);\n out.height = Math.round(state.resizing.height);\n } // Otherwise, calculate from grid units.\n else {\n out.width = calcGridItemWHPx(w, colWidth, margin[0]);\n out.height = calcGridItemWHPx(h, rowHeight, margin[1]);\n } // If dragging, use the exact width and height as returned from dragging callbacks.\n\n\n if (state && state.dragging) {\n out.top = Math.round(state.dragging.top);\n out.left = Math.round(state.dragging.left);\n } // Otherwise, calculate from grid units.\n else {\n out.top = Math.round((rowHeight + margin[1]) * y + containerPadding[1]);\n out.left = Math.round((colWidth + margin[0]) * x + containerPadding[0]);\n }\n\n return out;\n}\n/**\n * Translate x and y coordinates from pixels to grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} top Top position (relative to parent) in pixels.\n * @param {Number} left Left position (relative to parent) in pixels.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Object} x and y in grid units.\n */\n\n\nfunction calcXY(positionParams\n/*: PositionParams*/\n, top\n/*: number*/\n, left\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n)\n/*: { x: number, y: number }*/\n{\n var margin = positionParams.margin,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight,\n maxRows = positionParams.maxRows;\n var colWidth = calcGridColWidth(positionParams); // left = colWidth * x + margin * (x + 1)\n // l = cx + m(x+1)\n // l = cx + mx + m\n // l - m = cx + mx\n // l - m = x(c + m)\n // (l - m) / (c + m) = x\n // x = (left - margin) / (coldWidth + margin)\n\n var x = Math.round((left - margin[0]) / (colWidth + margin[0]));\n var y = Math.round((top - margin[1]) / (rowHeight + margin[1])); // Capping\n\n x = clamp(x, 0, cols - w);\n y = clamp(y, 0, maxRows - h);\n return {\n x: x,\n y: y\n };\n}\n/**\n * Given a height and width in pixel values, calculate grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calcluations.\n * @param {Number} height Height in pixels.\n * @param {Number} width Width in pixels.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @return {Object} w, h as grid units.\n */\n\n\nfunction calcWH(positionParams\n/*: PositionParams*/\n, width\n/*: number*/\n, height\n/*: number*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: { w: number, h: number }*/\n{\n var margin = positionParams.margin,\n maxRows = positionParams.maxRows,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams); // width = colWidth * w - (margin * (w - 1))\n // ...\n // w = (width + margin) / (colWidth + margin)\n\n var w = Math.round((width + margin[0]) / (colWidth + margin[0]));\n var h = Math.round((height + margin[1]) / (rowHeight + margin[1])); // Capping\n\n w = clamp(w, 0, cols - x);\n h = clamp(h, 0, maxRows - y);\n return {\n w: w,\n h: h\n };\n} // Similar to _.clamp\n\n\nfunction clamp(num\n/*: number*/\n, lowerBound\n/*: number*/\n, upperBound\n/*: number*/\n)\n/*: number*/\n{\n return Math.max(Math.min(num, upperBound), lowerBound);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = WidthProvideRGL;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _excluded = [\"measureBeforeMount\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar layoutClassName = \"react-grid-layout\";\n/*\n * A simple HOC that provides facility for listening to container resizes.\n *\n * The Flow type is pretty janky here. I can't just spread `WPProps` into this returned object - I wish I could - but it triggers\n * a flow bug of some sort that causes it to stop typechecking.\n */\n\nfunction WidthProvideRGL\n/*:: */\n(ComposedComponent\n/*: React.AbstractComponent*/\n)\n/*: React.AbstractComponent>*/\n{\n var _class;\n\n return _class = /*#__PURE__*/function (_React$Component) {\n _inherits(WidthProvider, _React$Component);\n\n var _super = _createSuper(WidthProvider);\n\n function WidthProvider() {\n var _this;\n\n _classCallCheck(this, WidthProvider);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n width: 1280\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResize\", function () {\n if (!_this.mounted) return;\n var node = _this.elementRef.current; // Flow casts this to Text | Element\n // fix: grid position error when node or parentNode display is none by window resize\n // #924 #1084\n\n if (node instanceof HTMLElement && node.offsetWidth) {\n _this.setState({\n width: node.offsetWidth\n });\n }\n });\n\n return _this;\n }\n\n _createClass(WidthProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n window.addEventListener(\"resize\", this.onWindowResize); // Call to properly set the breakpoint and resize the elements.\n // Note that if you're doing a full-width element, this can get a little wonky if a scrollbar\n // appears because of the grid. In that case, fire your own resize event, or set `overflow: scroll` on your body.\n\n this.onWindowResize();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n window.removeEventListener(\"resize\", this.onWindowResize);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n measureBeforeMount = _this$props.measureBeforeMount,\n rest = _objectWithoutProperties(_this$props, _excluded);\n\n if (measureBeforeMount && !this.mounted) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _clsx.default)(this.props.className, layoutClassName),\n style: this.props.style // $FlowIgnore ref types\n ,\n ref: this.elementRef\n });\n }\n\n return /*#__PURE__*/React.createElement(ComposedComponent, _extends({\n innerRef: this.elementRef\n }, rest, this.state));\n }\n }]);\n\n return WidthProvider;\n }(React.Component), _defineProperty(_class, \"defaultProps\", {\n measureBeforeMount: false\n }), _defineProperty(_class, \"propTypes\", {\n // If true, will not render children until mounted. Useful for getting the exact width before\n // rendering, to prevent any unsightly resizing.\n measureBeforeMount: _propTypes.default.bool\n }), _class;\n}","// this file was prevaled\nmodule.exports = function fastRGLPropsEqual(a, b, isEqualImpl) {\n if (a === b) return true;\n return a.className === b.className && isEqualImpl(a.style, b.style) && a.width === b.width && a.autoSize === b.autoSize && a.cols === b.cols && a.draggableCancel === b.draggableCancel && a.draggableHandle === b.draggableHandle && isEqualImpl(a.verticalCompact, b.verticalCompact) && isEqualImpl(a.compactType, b.compactType) && isEqualImpl(a.layout, b.layout) && isEqualImpl(a.margin, b.margin) && isEqualImpl(a.containerPadding, b.containerPadding) && a.rowHeight === b.rowHeight && a.maxRows === b.maxRows && a.isBounded === b.isBounded && a.isDraggable === b.isDraggable && a.isResizable === b.isResizable && a.allowOverlap === b.allowOverlap && a.preventCollision === b.preventCollision && a.useCSSTransforms === b.useCSSTransforms && a.transformScale === b.transformScale && a.isDroppable === b.isDroppable && isEqualImpl(a.resizeHandles, b.resizeHandles) && isEqualImpl(a.resizeHandle, b.resizeHandle) && a.onLayoutChange === b.onLayoutChange && a.onDragStart === b.onDragStart && a.onDrag === b.onDrag && a.onDragStop === b.onDragStop && a.onResizeStart === b.onResizeStart && a.onResize === b.onResize && a.onResizeStop === b.onResizeStop && a.onDrop === b.onDrop && isEqualImpl(a.droppingItem, b.droppingItem) && isEqualImpl(a.innerRef, b.innerRef);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findOrGenerateResponsiveLayout = findOrGenerateResponsiveLayout;\nexports.getBreakpointFromWidth = getBreakpointFromWidth;\nexports.getColsFromBreakpoint = getColsFromBreakpoint;\nexports.sortBreakpoints = sortBreakpoints;\n\nvar _utils = require(\"./utils\");\n\n/**\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\n *\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\n * @param {Number} width Screen width.\n * @return {String} Highest breakpoint that is less than width.\n */\nfunction getBreakpointFromWidth(breakpoints\n/*: Breakpoints*/\n, width\n/*: number*/\n)\n/*: Breakpoint*/\n{\n var sorted = sortBreakpoints(breakpoints);\n var matching = sorted[0];\n\n for (var i = 1, len = sorted.length; i < len; i++) {\n var breakpointName = sorted[i];\n if (width > breakpoints[breakpointName]) matching = breakpointName;\n }\n\n return matching;\n}\n/**\n * Given a breakpoint, get the # of cols set for it.\n * @param {String} breakpoint Breakpoint name.\n * @param {Object} cols Map of breakpoints to cols.\n * @return {Number} Number of cols.\n */\n\n\nfunction getColsFromBreakpoint(breakpoint\n/*: Breakpoint*/\n, cols\n/*: Breakpoints*/\n)\n/*: number*/\n{\n if (!cols[breakpoint]) {\n throw new Error(\"ResponsiveReactGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\n }\n\n return cols[breakpoint];\n}\n/**\n * Given existing layouts and a new breakpoint, find or generate a new layout.\n *\n * This finds the layout above the new one and generates from it, if it exists.\n *\n * @param {Object} layouts Existing layouts.\n * @param {Array} breakpoints All breakpoints.\n * @param {String} breakpoint New breakpoint.\n * @param {String} breakpoint Last breakpoint (for fallback).\n * @param {Number} cols Column count at new breakpoint.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} New layout.\n */\n\n\nfunction findOrGenerateResponsiveLayout(layouts\n/*: ResponsiveLayout*/\n, breakpoints\n/*: Breakpoints*/\n, breakpoint\n/*: Breakpoint*/\n, lastBreakpoint\n/*: Breakpoint*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n // If it already exists, just return it.\n if (layouts[breakpoint]) return (0, _utils.cloneLayout)(layouts[breakpoint]); // Find or generate the next layout\n\n var layout = layouts[lastBreakpoint];\n var breakpointsSorted = sortBreakpoints(breakpoints);\n var breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\n\n for (var i = 0, len = breakpointsAbove.length; i < len; i++) {\n var b = breakpointsAbove[i];\n\n if (layouts[b]) {\n layout = layouts[b];\n break;\n }\n }\n\n layout = (0, _utils.cloneLayout)(layout || []); // clone layout so we don't modify existing items\n\n return (0, _utils.compact)((0, _utils.correctBounds)(layout, {\n cols: cols\n }), compactType, cols);\n}\n/**\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\n * e.g. ['xxs', 'xs', 'sm', ...]\n *\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\n * @return {Array} Sorted breakpoints.\n */\n\n\nfunction sortBreakpoints(breakpoints\n/*: Breakpoints*/\n)\n/*: Array*/\n{\n var keys\n /*: Array*/\n = Object.keys(breakpoints);\n return keys.sort(function (a, b) {\n return breakpoints[a] - breakpoints[b];\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bottom = bottom;\nexports.childrenEqual = childrenEqual;\nexports.cloneLayout = cloneLayout;\nexports.cloneLayoutItem = cloneLayoutItem;\nexports.collides = collides;\nexports.compact = compact;\nexports.compactItem = compactItem;\nexports.compactType = compactType;\nexports.correctBounds = correctBounds;\nexports.fastPositionEqual = fastPositionEqual;\nexports.fastRGLPropsEqual = void 0;\nexports.getAllCollisions = getAllCollisions;\nexports.getFirstCollision = getFirstCollision;\nexports.getLayoutItem = getLayoutItem;\nexports.getStatics = getStatics;\nexports.modifyLayout = modifyLayout;\nexports.moveElement = moveElement;\nexports.moveElementAwayFromCollision = moveElementAwayFromCollision;\nexports.noop = void 0;\nexports.perc = perc;\nexports.setTopLeft = setTopLeft;\nexports.setTransform = setTransform;\nexports.sortLayoutItems = sortLayoutItems;\nexports.sortLayoutItemsByColRow = sortLayoutItemsByColRow;\nexports.sortLayoutItemsByRowCol = sortLayoutItemsByRowCol;\nexports.synchronizeLayoutWithChildren = synchronizeLayoutWithChildren;\nexports.validateLayout = validateLayout;\nexports.withLayoutItem = withLayoutItem;\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar isProduction = process.env.NODE_ENV === \"production\";\nvar DEBUG = false;\n/**\n * Return the bottom coordinate of the layout.\n *\n * @param {Array} layout Layout array.\n * @return {Number} Bottom coordinate.\n */\n\nfunction bottom(layout\n/*: Layout*/\n)\n/*: number*/\n{\n var max = 0,\n bottomY;\n\n for (var i = 0, len = layout.length; i < len; i++) {\n bottomY = layout[i].y + layout[i].h;\n if (bottomY > max) max = bottomY;\n }\n\n return max;\n}\n\nfunction cloneLayout(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n newLayout[i] = cloneLayoutItem(layout[i]);\n }\n\n return newLayout;\n} // Modify a layoutItem inside a layout. Returns a new Layout,\n// does not mutate. Carries over all other LayoutItems unmodified.\n\n\nfunction modifyLayout(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layoutItem.i === layout[i].i) {\n newLayout[i] = layoutItem;\n } else {\n newLayout[i] = layout[i];\n }\n }\n\n return newLayout;\n} // Function to be called to modify a layout item.\n// Does defensive clones to ensure the layout is not modified.\n\n\nfunction withLayoutItem(layout\n/*: Layout*/\n, itemKey\n/*: string*/\n, cb\n/*: LayoutItem => LayoutItem*/\n)\n/*: [Layout, ?LayoutItem]*/\n{\n var item = getLayoutItem(layout, itemKey);\n if (!item) return [layout, null];\n item = cb(cloneLayoutItem(item)); // defensive clone then modify\n // FIXME could do this faster if we already knew the index\n\n layout = modifyLayout(layout, item);\n return [layout, item];\n} // Fast path to cloning, since this is monomorphic\n\n\nfunction cloneLayoutItem(layoutItem\n/*: LayoutItem*/\n)\n/*: LayoutItem*/\n{\n return {\n w: layoutItem.w,\n h: layoutItem.h,\n x: layoutItem.x,\n y: layoutItem.y,\n i: layoutItem.i,\n minW: layoutItem.minW,\n maxW: layoutItem.maxW,\n minH: layoutItem.minH,\n maxH: layoutItem.maxH,\n moved: Boolean(layoutItem.moved),\n static: Boolean(layoutItem.static),\n // These can be null/undefined\n isDraggable: layoutItem.isDraggable,\n isResizable: layoutItem.isResizable,\n resizeHandles: layoutItem.resizeHandles,\n isBounded: layoutItem.isBounded\n };\n}\n/**\n * Comparing React `children` is a bit difficult. This is a good way to compare them.\n * This will catch differences in keys, order, and length.\n */\n\n\nfunction childrenEqual(a\n/*: ReactChildren*/\n, b\n/*: ReactChildren*/\n)\n/*: boolean*/\n{\n return (0, _lodash.default)(_react.default.Children.map(a, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }), _react.default.Children.map(b, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }));\n}\n/**\n * See `fastRGLPropsEqual.js`.\n * We want this to run as fast as possible - it is called often - and to be\n * resilient to new props that we add. So rather than call lodash.isEqual,\n * which isn't suited to comparing props very well, we use this specialized\n * function in conjunction with preval to generate the fastest possible comparison\n * function, tuned for exactly our props.\n */\n\n/*:: type FastRGLPropsEqual = (Object, Object, Function) => boolean;*/\n\n\nvar fastRGLPropsEqual\n/*: FastRGLPropsEqual*/\n= require(\"./fastRGLPropsEqual\"); // Like the above, but a lot simpler.\n\n\nexports.fastRGLPropsEqual = fastRGLPropsEqual;\n\nfunction fastPositionEqual(a\n/*: Position*/\n, b\n/*: Position*/\n)\n/*: boolean*/\n{\n return a.left === b.left && a.top === b.top && a.width === b.width && a.height === b.height;\n}\n/**\n * Given two layoutitems, check if they collide.\n */\n\n\nfunction collides(l1\n/*: LayoutItem*/\n, l2\n/*: LayoutItem*/\n)\n/*: boolean*/\n{\n if (l1.i === l2.i) return false; // same element\n\n if (l1.x + l1.w <= l2.x) return false; // l1 is left of l2\n\n if (l1.x >= l2.x + l2.w) return false; // l1 is right of l2\n\n if (l1.y + l1.h <= l2.y) return false; // l1 is above l2\n\n if (l1.y >= l2.y + l2.h) return false; // l1 is below l2\n\n return true; // boxes overlap\n}\n/**\n * Given a layout, compact it. This involves going down each y coordinate and removing gaps\n * between items.\n *\n * Does not modify layout items (clones). Creates a new layout array.\n *\n * @param {Array} layout Layout.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} Compacted Layout.\n */\n\n\nfunction compact(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n // Statics go in the compareWith array right away so items flow around them.\n var compareWith = getStatics(layout); // We go through the items by row and column.\n\n var sorted = sortLayoutItems(layout, compactType); // Holding for new items.\n\n var out = Array(layout.length);\n\n for (var i = 0, len = sorted.length; i < len; i++) {\n var l = cloneLayoutItem(sorted[i]); // Don't move static elements\n\n if (!l.static) {\n l = compactItem(compareWith, l, compactType, cols, sorted); // Add to comparison array. We only collide with items before this one.\n // Statics are already in this array.\n\n compareWith.push(l);\n } // Add to output array to make sure they still come out in the right order.\n\n\n out[layout.indexOf(sorted[i])] = l; // Clear moved flag, if it exists.\n\n l.moved = false;\n }\n\n return out;\n}\n\nvar heightWidth = {\n x: \"w\",\n y: \"h\"\n};\n/**\n * Before moving item down, it will check if the movement will cause collisions and move those items down before.\n */\n\nfunction resolveCompactionCollision(layout\n/*: Layout*/\n, item\n/*: LayoutItem*/\n, moveToCoord\n/*: number*/\n, axis\n/*: \"x\" | \"y\"*/\n) {\n var sizeProp = heightWidth[axis];\n item[axis] += 1;\n var itemIndex = layout.map(function (layoutItem) {\n return layoutItem.i;\n }).indexOf(item.i); // Go through each item we collide with.\n\n for (var i = itemIndex + 1; i < layout.length; i++) {\n var otherItem = layout[i]; // Ignore static items\n\n if (otherItem.static) continue; // Optimization: we can break early if we know we're past this el\n // We can do this b/c it's a sorted layout\n\n if (otherItem.y > item.y + item.h) break;\n\n if (collides(item, otherItem)) {\n resolveCompactionCollision(layout, otherItem, moveToCoord + item[sizeProp], axis);\n }\n }\n\n item[axis] = moveToCoord;\n}\n/**\n * Compact an item in the layout.\n *\n * Modifies item.\n *\n */\n\n\nfunction compactItem(compareWith\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, fullLayout\n/*: Layout*/\n)\n/*: LayoutItem*/\n{\n var compactV = compactType === \"vertical\";\n var compactH = compactType === \"horizontal\";\n\n if (compactV) {\n // Bottom 'y' possible is the bottom of the layout.\n // This allows you to do nice stuff like specify {y: Infinity}\n // This is here because the layout must be sorted in order to get the correct bottom `y`.\n l.y = Math.min(bottom(compareWith), l.y); // Move the element up as far as it can go without colliding.\n\n while (l.y > 0 && !getFirstCollision(compareWith, l)) {\n l.y--;\n }\n } else if (compactH) {\n // Move the element left as far as it can go without colliding.\n while (l.x > 0 && !getFirstCollision(compareWith, l)) {\n l.x--;\n }\n } // Move it down, and keep moving it down if it's colliding.\n\n\n var collides;\n\n while (collides = getFirstCollision(compareWith, l)) {\n if (compactH) {\n resolveCompactionCollision(fullLayout, l, collides.x + collides.w, \"x\");\n } else {\n resolveCompactionCollision(fullLayout, l, collides.y + collides.h, \"y\");\n } // Since we can't grow without bounds horizontally, if we've overflown, let's move it down and try again.\n\n\n if (compactH && l.x + l.w > cols) {\n l.x = cols - l.w;\n l.y++;\n }\n } // Ensure that there are no negative positions\n\n\n l.y = Math.max(l.y, 0);\n l.x = Math.max(l.x, 0);\n return l;\n}\n/**\n * Given a layout, make sure all elements fit within its bounds.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Layout array.\n * @param {Number} bounds Number of columns.\n */\n\n\nfunction correctBounds(layout\n/*: Layout*/\n, bounds\n/*: { cols: number }*/\n)\n/*: Layout*/\n{\n var collidesWith = getStatics(layout);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var l = layout[i]; // Overflows right\n\n if (l.x + l.w > bounds.cols) l.x = bounds.cols - l.w; // Overflows left\n\n if (l.x < 0) {\n l.x = 0;\n l.w = bounds.cols;\n }\n\n if (!l.static) collidesWith.push(l);else {\n // If this is static and collides with other statics, we must move it down.\n // We have to do something nicer than just letting them overlap.\n while (getFirstCollision(collidesWith, l)) {\n l.y++;\n }\n }\n }\n\n return layout;\n}\n/**\n * Get a layout item by ID. Used so we can override later on if necessary.\n *\n * @param {Array} layout Layout array.\n * @param {String} id ID\n * @return {LayoutItem} Item at ID.\n */\n\n\nfunction getLayoutItem(layout\n/*: Layout*/\n, id\n/*: string*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layout[i].i === id) return layout[i];\n }\n}\n/**\n * Returns the first item this layout collides with.\n * It doesn't appear to matter which order we approach this from, although\n * perhaps that is the wrong thing to do.\n *\n * @param {Object} layoutItem Layout item.\n * @return {Object|undefined} A colliding layout item, or undefined.\n */\n\n\nfunction getFirstCollision(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (collides(layout[i], layoutItem)) return layout[i];\n }\n}\n\nfunction getAllCollisions(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Array*/\n{\n return layout.filter(function (l) {\n return collides(l, layoutItem);\n });\n}\n/**\n * Get all static elements.\n * @param {Array} layout Array of layout objects.\n * @return {Array} Array of static layout items..\n */\n\n\nfunction getStatics(layout\n/*: Layout*/\n)\n/*: Array*/\n{\n return layout.filter(function (l) {\n return l.static;\n });\n}\n/**\n * Move an element. Responsible for doing cascading movements of other elements.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} l element to move.\n * @param {Number} [x] X position in grid units.\n * @param {Number} [y] Y position in grid units.\n */\n\n\nfunction moveElement(layout\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, x\n/*: ?number*/\n, y\n/*: ?number*/\n, isUserAction\n/*: ?boolean*/\n, preventCollision\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n // If this is static and not explicitly enabled as draggable,\n // no move is possible, so we can short-circuit this immediately.\n if (l.static && l.isDraggable !== true) return layout; // Short-circuit if nothing to do.\n\n if (l.y === y && l.x === x) return layout;\n log(\"Moving element \".concat(l.i, \" to [\").concat(String(x), \",\").concat(String(y), \"] from [\").concat(l.x, \",\").concat(l.y, \"]\"));\n var oldX = l.x;\n var oldY = l.y; // This is quite a bit faster than extending the object\n\n if (typeof x === \"number\") l.x = x;\n if (typeof y === \"number\") l.y = y;\n l.moved = true; // If this collides with anything, move it.\n // When doing this comparison, we have to sort the items we compare with\n // to ensure, in the case of multiple collisions, that we're getting the\n // nearest collision.\n\n var sorted = sortLayoutItems(layout, compactType);\n var movingUp = compactType === \"vertical\" && typeof y === \"number\" ? oldY >= y : compactType === \"horizontal\" && typeof x === \"number\" ? oldX >= x : false; // $FlowIgnore acceptable modification of read-only array as it was recently cloned\n\n if (movingUp) sorted = sorted.reverse();\n var collisions = getAllCollisions(sorted, l);\n var hasCollisions = collisions.length > 0; // We may have collisions. We can short-circuit if we've turned off collisions or\n // allowed overlap.\n\n if (hasCollisions && allowOverlap) {\n // Easy, we don't need to resolve collisions. But we *did* change the layout,\n // so clone it on the way out.\n return cloneLayout(layout);\n } else if (hasCollisions && preventCollision) {\n // If we are preventing collision but not allowing overlap, we need to\n // revert the position of this element so it goes to where it came from, rather\n // than the user's desired location.\n log(\"Collision prevented on \".concat(l.i, \", reverting.\"));\n l.x = oldX;\n l.y = oldY;\n l.moved = false;\n return layout; // did not change so don't clone\n } // Move each item that collides away from this element.\n\n\n for (var i = 0, len = collisions.length; i < len; i++) {\n var collision = collisions[i];\n log(\"Resolving collision between \".concat(l.i, \" at [\").concat(l.x, \",\").concat(l.y, \"] and \").concat(collision.i, \" at [\").concat(collision.x, \",\").concat(collision.y, \"]\")); // Short circuit so we can't infinite loop\n\n if (collision.moved) continue; // Don't move static items - we have to move *this* element away\n\n if (collision.static) {\n layout = moveElementAwayFromCollision(layout, collision, l, isUserAction, compactType, cols);\n } else {\n layout = moveElementAwayFromCollision(layout, l, collision, isUserAction, compactType, cols);\n }\n }\n\n return layout;\n}\n/**\n * This is where the magic needs to happen - given a collision, move an element away from the collision.\n * We attempt to move it up if there's room, otherwise it goes below.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} collidesWith Layout item we're colliding with.\n * @param {LayoutItem} itemToMove Layout item we're moving.\n */\n\n\nfunction moveElementAwayFromCollision(layout\n/*: Layout*/\n, collidesWith\n/*: LayoutItem*/\n, itemToMove\n/*: LayoutItem*/\n, isUserAction\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n var compactH = compactType === \"horizontal\"; // Compact vertically if not set to horizontal\n\n var compactV = compactType !== \"horizontal\";\n var preventCollision = collidesWith.static; // we're already colliding (not for static items)\n // If there is enough space above the collision to put this element, move it there.\n // We only do this on the main collision as this can get funky in cascades and cause\n // unwanted swapping behavior.\n\n if (isUserAction) {\n // Reset isUserAction flag because we're not in the main collision anymore.\n isUserAction = false; // Make a mock item so we don't modify the item here, only modify in moveElement.\n\n var fakeItem\n /*: LayoutItem*/\n = {\n x: compactH ? Math.max(collidesWith.x - itemToMove.w, 0) : itemToMove.x,\n y: compactV ? Math.max(collidesWith.y - itemToMove.h, 0) : itemToMove.y,\n w: itemToMove.w,\n h: itemToMove.h,\n i: \"-1\"\n }; // No collision? If so, we can go up there; otherwise, we'll end up moving down as normal\n\n if (!getFirstCollision(layout, fakeItem)) {\n log(\"Doing reverse collision on \".concat(itemToMove.i, \" up to [\").concat(fakeItem.x, \",\").concat(fakeItem.y, \"].\"));\n return moveElement(layout, itemToMove, compactH ? fakeItem.x : undefined, compactV ? fakeItem.y : undefined, isUserAction, preventCollision, compactType, cols);\n }\n }\n\n return moveElement(layout, itemToMove, compactH ? itemToMove.x + 1 : undefined, compactV ? itemToMove.y + 1 : undefined, isUserAction, preventCollision, compactType, cols);\n}\n/**\n * Helper to convert a number to a percentage string.\n *\n * @param {Number} num Any number\n * @return {String} That number as a percentage.\n */\n\n\nfunction perc(num\n/*: number*/\n)\n/*: string*/\n{\n return num * 100 + \"%\";\n}\n\nfunction setTransform(_ref)\n/*: Object*/\n{\n var top = _ref.top,\n left = _ref.left,\n width = _ref.width,\n height = _ref.height;\n // Replace unitless items with px\n var translate = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\n return {\n transform: translate,\n WebkitTransform: translate,\n MozTransform: translate,\n msTransform: translate,\n OTransform: translate,\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n\nfunction setTopLeft(_ref2)\n/*: Object*/\n{\n var top = _ref2.top,\n left = _ref2.left,\n width = _ref2.width,\n height = _ref2.height;\n return {\n top: \"\".concat(top, \"px\"),\n left: \"\".concat(left, \"px\"),\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n/**\n * Get layout items sorted from top left to right and down.\n *\n * @return {Array} Array of layout objects.\n * @return {Array} Layout, sorted static items first.\n */\n\n\nfunction sortLayoutItems(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n if (compactType === \"horizontal\") return sortLayoutItemsByColRow(layout);\n if (compactType === \"vertical\") return sortLayoutItemsByRowCol(layout);else return layout;\n}\n/**\n * Sort layout items by row ascending and column ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByRowCol(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n // Slice to clone array as sort modifies\n return layout.slice(0).sort(function (a, b) {\n if (a.y > b.y || a.y === b.y && a.x > b.x) {\n return 1;\n } else if (a.y === b.y && a.x === b.x) {\n // Without this, we can get different sort results in IE vs. Chrome/FF\n return 0;\n }\n\n return -1;\n });\n}\n/**\n * Sort layout items by column ascending then row ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByColRow(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n return layout.slice(0).sort(function (a, b) {\n if (a.x > b.x || a.x === b.x && a.y > b.y) {\n return 1;\n }\n\n return -1;\n });\n}\n/**\n * Generate a layout using the initialLayout and children as a template.\n * Missing entries will be added, extraneous ones will be truncated.\n *\n * Does not modify initialLayout.\n *\n * @param {Array} initialLayout Layout passed in through props.\n * @param {String} breakpoint Current responsive breakpoint.\n * @param {?String} compact Compaction option.\n * @return {Array} Working layout.\n */\n\n\nfunction synchronizeLayoutWithChildren(initialLayout\n/*: Layout*/\n, children\n/*: ReactChildren*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n initialLayout = initialLayout || []; // Generate one layout item per child.\n\n var layout\n /*: LayoutItem[]*/\n = [];\n\n _react.default.Children.forEach(children, function (child\n /*: ReactElement*/\n ) {\n // Child may not exist\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return; // Don't overwrite if it already exists.\n\n var exists = getLayoutItem(initialLayout, String(child.key));\n\n if (exists) {\n layout.push(cloneLayoutItem(exists));\n } else {\n if (!isProduction && child.props._grid) {\n console.warn(\"`_grid` properties on children have been deprecated as of React 15.2. \" + \"Please use `data-grid` or add your properties directly to the `layout`.\");\n }\n\n var g = child.props[\"data-grid\"] || child.props._grid; // Hey, this item has a data-grid property, use it.\n\n if (g) {\n if (!isProduction) {\n validateLayout([g], \"ReactGridLayout.children\");\n } // FIXME clone not really necessary here\n\n\n layout.push(cloneLayoutItem(_objectSpread(_objectSpread({}, g), {}, {\n i: child.key\n })));\n } else {\n // Nothing provided: ensure this is added to the bottom\n // FIXME clone not really necessary here\n layout.push(cloneLayoutItem({\n w: 1,\n h: 1,\n x: 0,\n y: bottom(layout),\n i: String(child.key)\n }));\n }\n }\n }); // Correct the layout.\n\n\n var correctedLayout = correctBounds(layout, {\n cols: cols\n });\n return allowOverlap ? correctedLayout : compact(correctedLayout, compactType, cols);\n}\n/**\n * Validate a layout. Throws errors.\n *\n * @param {Array} layout Array of layout items.\n * @param {String} [contextName] Context name for errors.\n * @throw {Error} Validation error.\n */\n\n\nfunction validateLayout(layout\n/*: Layout*/\n)\n/*: void*/\n{\n var contextName\n /*: string*/\n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Layout\";\n var subProps = [\"x\", \"y\", \"w\", \"h\"];\n if (!Array.isArray(layout)) throw new Error(contextName + \" must be an array!\");\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var item = layout[i];\n\n for (var j = 0; j < subProps.length; j++) {\n if (typeof item[subProps[j]] !== \"number\") {\n throw new Error(\"ReactGridLayout: \" + contextName + \"[\" + i + \"].\" + subProps[j] + \" must be a number!\");\n }\n }\n }\n} // Legacy support for verticalCompact: false\n\n\nfunction compactType(props\n/*: ?{ verticalCompact: boolean, compactType: CompactType }*/\n)\n/*: CompactType*/\n{\n var _ref3 = props || {},\n verticalCompact = _ref3.verticalCompact,\n compactType = _ref3.compactType;\n\n return verticalCompact === false ? null : compactType;\n}\n\nfunction log() {\n var _console;\n\n if (!DEBUG) return; // eslint-disable-next-line no-console\n\n (_console = console).log.apply(_console, arguments);\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;","module.exports = require(\"./build/ReactGridLayout\").default;\nmodule.exports.utils = require(\"./build/utils\");\nmodule.exports.Responsive =\n require(\"./build/ResponsiveReactGridLayout\").default;\nmodule.exports.Responsive.utils = require(\"./build/responsiveUtils\");\nmodule.exports.WidthProvider =\n require(\"./build/components/WidthProvider\").default;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDraggable = require(\"react-draggable\");\n\nvar _utils = require(\"./utils\");\n\nvar _propTypes = require(\"./propTypes\");\n\nvar _excluded = [\"children\", \"className\", \"draggableOpts\", \"width\", \"height\", \"handle\", \"handleSize\", \"lockAspectRatio\", \"axis\", \"minConstraints\", \"maxConstraints\", \"onResize\", \"onResizeStop\", \"onResizeStart\", \"resizeHandles\", \"transformScale\"];\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n// The base component.\n// This component does not have state and relies on the parent to set its props based on callback data.\nvar Resizable = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Resizable, _React$Component);\n\n function Resizable() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handleRefs = {};\n _this.lastHandleRect = null;\n _this.slack = null;\n return _this;\n }\n\n var _proto = Resizable.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.resetData();\n };\n\n _proto.resetData = function resetData() {\n this.lastHandleRect = this.slack = null;\n } // Clamp width and height within provided constraints\n ;\n\n _proto.runConstraints = function runConstraints(width, height) {\n var _this$props = this.props,\n minConstraints = _this$props.minConstraints,\n maxConstraints = _this$props.maxConstraints,\n lockAspectRatio = _this$props.lockAspectRatio; // short circuit\n\n if (!minConstraints && !maxConstraints && !lockAspectRatio) return [width, height]; // If constraining to min and max, we need to also fit width and height to aspect ratio.\n\n if (lockAspectRatio) {\n var ratio = this.props.width / this.props.height;\n var deltaW = width - this.props.width;\n var deltaH = height - this.props.height; // Find which coordinate was greater and should push the other toward it.\n // E.g.:\n // ratio = 1, deltaW = 10, deltaH = 5, deltaH should become 10.\n // ratio = 2, deltaW = 10, deltaH = 6, deltaW should become 12.\n\n if (Math.abs(deltaW) > Math.abs(deltaH * ratio)) {\n height = width / ratio;\n } else {\n width = height * ratio;\n }\n }\n\n var oldW = width,\n oldH = height; // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n\n var _ref = this.slack || [0, 0],\n slackW = _ref[0],\n slackH = _ref[1];\n\n width += slackW;\n height += slackH;\n\n if (minConstraints) {\n width = Math.max(minConstraints[0], width);\n height = Math.max(minConstraints[1], height);\n }\n\n if (maxConstraints) {\n width = Math.min(maxConstraints[0], width);\n height = Math.min(maxConstraints[1], height);\n } // If the width or height changed, we must have introduced some slack. Record it for the next iteration.\n\n\n this.slack = [slackW + (oldW - width), slackH + (oldH - height)];\n return [width, height];\n }\n /**\n * Wrapper around drag events to provide more useful data.\n *\n * @param {String} handlerName Handler name to wrap.\n * @return {Function} Handler function.\n */\n ;\n\n _proto.resizeHandler = function resizeHandler(handlerName, axis) {\n var _this2 = this;\n\n return function (e, _ref2) {\n var node = _ref2.node,\n deltaX = _ref2.deltaX,\n deltaY = _ref2.deltaY;\n // Reset data in case it was left over somehow (should not be possible)\n if (handlerName === 'onResizeStart') _this2.resetData(); // Axis restrictions\n\n var canDragX = (_this2.props.axis === 'both' || _this2.props.axis === 'x') && axis !== 'n' && axis !== 's';\n var canDragY = (_this2.props.axis === 'both' || _this2.props.axis === 'y') && axis !== 'e' && axis !== 'w'; // No dragging possible.\n\n if (!canDragX && !canDragY) return; // Decompose axis for later use\n\n var axisV = axis[0];\n var axisH = axis[axis.length - 1]; // intentionally not axis[1], so that this catches axis === 'w' for example\n // Track the element being dragged to account for changes in position.\n // If a handle's position is changed between callbacks, we need to factor this in to the next callback.\n // Failure to do so will cause the element to \"skip\" when resized upwards or leftwards.\n\n var handleRect = node.getBoundingClientRect();\n\n if (_this2.lastHandleRect != null) {\n // If the handle has repositioned on either axis since last render,\n // we need to increase our callback values by this much.\n // Only checking 'n', 'w' since resizing by 's', 'w' won't affect the overall position on page,\n if (axisH === 'w') {\n var deltaLeftSinceLast = handleRect.left - _this2.lastHandleRect.left;\n deltaX += deltaLeftSinceLast;\n }\n\n if (axisV === 'n') {\n var deltaTopSinceLast = handleRect.top - _this2.lastHandleRect.top;\n deltaY += deltaTopSinceLast;\n }\n } // Storage of last rect so we know how much it has really moved.\n\n\n _this2.lastHandleRect = handleRect; // Reverse delta if using top or left drag handles.\n\n if (axisH === 'w') deltaX = -deltaX;\n if (axisV === 'n') deltaY = -deltaY; // Update w/h by the deltas. Also factor in transformScale.\n\n var width = _this2.props.width + (canDragX ? deltaX / _this2.props.transformScale : 0);\n var height = _this2.props.height + (canDragY ? deltaY / _this2.props.transformScale : 0); // Run user-provided constraints.\n\n var _this2$runConstraints = _this2.runConstraints(width, height);\n\n width = _this2$runConstraints[0];\n height = _this2$runConstraints[1];\n var dimensionsChanged = width !== _this2.props.width || height !== _this2.props.height; // Call user-supplied callback if present.\n\n var cb = typeof _this2.props[handlerName] === 'function' ? _this2.props[handlerName] : null; // Don't call 'onResize' if dimensions haven't changed.\n\n var shouldSkipCb = handlerName === 'onResize' && !dimensionsChanged;\n\n if (cb && !shouldSkipCb) {\n e.persist == null ? void 0 : e.persist();\n cb(e, {\n node: node,\n size: {\n width: width,\n height: height\n },\n handle: axis\n });\n } // Reset internal data\n\n\n if (handlerName === 'onResizeStop') _this2.resetData();\n };\n } // Render a resize handle given an axis & DOM ref. Ref *must* be attached for\n // the underlying draggable library to work properly.\n ;\n\n _proto.renderResizeHandle = function renderResizeHandle(handleAxis, ref) {\n var handle = this.props.handle; // No handle provided, make the default\n\n if (!handle) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"react-resizable-handle react-resizable-handle-\" + handleAxis,\n ref: ref\n });\n } // Handle is a function, such as:\n // `handle={(handleAxis) => }`\n\n\n if (typeof handle === 'function') {\n return handle(handleAxis, ref);\n } // Handle is a React component (composite or DOM).\n\n\n var isDOMElement = typeof handle.type === 'string';\n\n var props = _objectSpread({\n ref: ref\n }, isDOMElement ? {} : {\n handleAxis: handleAxis\n });\n\n return /*#__PURE__*/React.cloneElement(handle, props);\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n // Pass along only props not meant for the ``.`\n // eslint-disable-next-line no-unused-vars\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n draggableOpts = _this$props2.draggableOpts,\n width = _this$props2.width,\n height = _this$props2.height,\n handle = _this$props2.handle,\n handleSize = _this$props2.handleSize,\n lockAspectRatio = _this$props2.lockAspectRatio,\n axis = _this$props2.axis,\n minConstraints = _this$props2.minConstraints,\n maxConstraints = _this$props2.maxConstraints,\n onResize = _this$props2.onResize,\n onResizeStop = _this$props2.onResizeStop,\n onResizeStart = _this$props2.onResizeStart,\n resizeHandles = _this$props2.resizeHandles,\n transformScale = _this$props2.transformScale,\n p = _objectWithoutPropertiesLoose(_this$props2, _excluded); // What we're doing here is getting the child of this element, and cloning it with this element's props.\n // We are then defining its children as:\n // 1. Its original children (resizable's child's children), and\n // 2. One or more draggable handles.\n\n\n return (0, _utils.cloneElement)(children, _objectSpread(_objectSpread({}, p), {}, {\n className: (className ? className + \" \" : '') + \"react-resizable\",\n children: [].concat(children.props.children, resizeHandles.map(function (handleAxis) {\n var _this3$handleRefs$han;\n\n // Create a ref to the handle so that `` doesn't have to use ReactDOM.findDOMNode().\n var ref = (_this3$handleRefs$han = _this3.handleRefs[handleAxis]) != null ? _this3$handleRefs$han : _this3.handleRefs[handleAxis] = /*#__PURE__*/React.createRef();\n return /*#__PURE__*/React.createElement(_reactDraggable.DraggableCore, _extends({}, draggableOpts, {\n nodeRef: ref,\n key: \"resizableHandle-\" + handleAxis,\n onStop: _this3.resizeHandler('onResizeStop', handleAxis),\n onStart: _this3.resizeHandler('onResizeStart', handleAxis),\n onDrag: _this3.resizeHandler('onResize', handleAxis)\n }), _this3.renderResizeHandle(handleAxis, ref));\n }))\n }));\n };\n\n return Resizable;\n}(React.Component);\n\nexports.default = Resizable;\nResizable.propTypes = _propTypes.resizableProps;\nResizable.defaultProps = {\n axis: 'both',\n handleSize: [20, 20],\n lockAspectRatio: false,\n minConstraints: [20, 20],\n maxConstraints: [Infinity, Infinity],\n resizeHandles: ['se'],\n transformScale: 1\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Resizable = _interopRequireDefault(require(\"./Resizable\"));\n\nvar _propTypes2 = require(\"./propTypes\");\n\nvar _excluded = [\"handle\", \"handleSize\", \"onResize\", \"onResizeStart\", \"onResizeStop\", \"draggableOpts\", \"minConstraints\", \"maxConstraints\", \"lockAspectRatio\", \"axis\", \"width\", \"height\", \"resizeHandles\", \"style\", \"transformScale\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ResizableBox = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ResizableBox, _React$Component);\n\n function ResizableBox() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n width: _this.props.width,\n height: _this.props.height,\n propsWidth: _this.props.width,\n propsHeight: _this.props.height\n };\n\n _this.onResize = function (e, data) {\n var size = data.size;\n\n if (_this.props.onResize) {\n e.persist == null ? void 0 : e.persist();\n\n _this.setState(size, function () {\n return _this.props.onResize && _this.props.onResize(e, data);\n });\n } else {\n _this.setState(size);\n }\n };\n\n return _this;\n }\n\n ResizableBox.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n // If parent changes height/width, set that in our state.\n if (state.propsWidth !== props.width || state.propsHeight !== props.height) {\n return {\n width: props.width,\n height: props.height,\n propsWidth: props.width,\n propsHeight: props.height\n };\n }\n\n return null;\n };\n\n var _proto = ResizableBox.prototype;\n\n _proto.render = function render() {\n // Basic wrapper around a Resizable instance.\n // If you use Resizable directly, you are responsible for updating the child component\n // with a new width and height.\n var _this$props = this.props,\n handle = _this$props.handle,\n handleSize = _this$props.handleSize,\n onResize = _this$props.onResize,\n onResizeStart = _this$props.onResizeStart,\n onResizeStop = _this$props.onResizeStop,\n draggableOpts = _this$props.draggableOpts,\n minConstraints = _this$props.minConstraints,\n maxConstraints = _this$props.maxConstraints,\n lockAspectRatio = _this$props.lockAspectRatio,\n axis = _this$props.axis,\n width = _this$props.width,\n height = _this$props.height,\n resizeHandles = _this$props.resizeHandles,\n style = _this$props.style,\n transformScale = _this$props.transformScale,\n props = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n return /*#__PURE__*/React.createElement(_Resizable.default, {\n axis: axis,\n draggableOpts: draggableOpts,\n handle: handle,\n handleSize: handleSize,\n height: this.state.height,\n lockAspectRatio: lockAspectRatio,\n maxConstraints: maxConstraints,\n minConstraints: minConstraints,\n onResizeStart: onResizeStart,\n onResize: this.onResize,\n onResizeStop: onResizeStop,\n resizeHandles: resizeHandles,\n transformScale: transformScale,\n width: this.state.width\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: this.state.width + 'px',\n height: this.state.height + 'px'\n })\n })));\n };\n\n return ResizableBox;\n}(React.Component);\n\nexports.default = ResizableBox;\nResizableBox.propTypes = _objectSpread(_objectSpread({}, _propTypes2.resizableProps), {}, {\n children: _propTypes.default.element\n});","\"use strict\";\n\nexports.__esModule = true;\nexports.resizableProps = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDraggable = require(\"react-draggable\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar resizableProps = {\n /*\n * Restricts resizing to a particular axis (default: 'both')\n * 'both' - allows resizing by width or height\n * 'x' - only allows the width to be changed\n * 'y' - only allows the height to be changed\n * 'none' - disables resizing altogether\n * */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n className: _propTypes.default.string,\n\n /*\n * Require that one and only one child be present.\n * */\n children: _propTypes.default.element.isRequired,\n\n /*\n * These will be passed wholesale to react-draggable's DraggableCore\n * */\n draggableOpts: _propTypes.default.shape({\n allowAnyClick: _propTypes.default.bool,\n cancel: _propTypes.default.string,\n children: _propTypes.default.node,\n disabled: _propTypes.default.bool,\n enableUserSelectHack: _propTypes.default.bool,\n offsetParent: _propTypes.default.node,\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n handle: _propTypes.default.string,\n nodeRef: _propTypes.default.object,\n onStart: _propTypes.default.func,\n onDrag: _propTypes.default.func,\n onStop: _propTypes.default.func,\n onMouseDown: _propTypes.default.func,\n scale: _propTypes.default.number\n }),\n\n /*\n * Initial height\n * */\n height: _propTypes.default.number.isRequired,\n\n /*\n * Customize cursor resize handle\n * */\n handle: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),\n\n /*\n * If you change this, be sure to update your css\n * */\n handleSize: _propTypes.default.arrayOf(_propTypes.default.number),\n lockAspectRatio: _propTypes.default.bool,\n\n /*\n * Max X & Y measure\n * */\n maxConstraints: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /*\n * Min X & Y measure\n * */\n minConstraints: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /*\n * Called on stop resize event\n * */\n onResizeStop: _propTypes.default.func,\n\n /*\n * Called on start resize event\n * */\n onResizeStart: _propTypes.default.func,\n\n /*\n * Called on resize event\n * */\n onResize: _propTypes.default.func,\n\n /*\n * Defines which resize handles should be rendered (default: 'se')\n * 's' - South handle (bottom-center)\n * 'w' - West handle (left-center)\n * 'e' - East handle (right-center)\n * 'n' - North handle (top-center)\n * 'sw' - Southwest handle (bottom-left)\n * 'nw' - Northwest handle (top-left)\n * 'se' - Southeast handle (bottom-right)\n * 'ne' - Northeast handle (top-center)\n * */\n resizeHandles: _propTypes.default.arrayOf(_propTypes.default.oneOf(['s', 'w', 'e', 'n', 'sw', 'nw', 'se', 'ne'])),\n\n /*\n * If `transform: scale(n)` is set on the parent, this should be set to `n`.\n * */\n transformScale: _propTypes.default.number,\n\n /*\n * Initial width\n */\n width: _propTypes.default.number.isRequired\n};\nexports.resizableProps = resizableProps;","\"use strict\";\n\nexports.__esModule = true;\nexports.cloneElement = cloneElement;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// React.addons.cloneWithProps look-alike that merges style & className.\nfunction cloneElement(element, props) {\n if (props.style && element.props.style) {\n props.style = _objectSpread(_objectSpread({}, element.props.style), props.style);\n }\n\n if (props.className && element.props.className) {\n props.className = element.props.className + \" \" + props.className;\n }\n\n return /*#__PURE__*/_react.default.cloneElement(element, props);\n}","'use strict';\nmodule.exports = function() {\n throw new Error(\"Don't instantiate Resizable directly! Use require('react-resizable').Resizable\");\n};\n\nmodule.exports.Resizable = require('./build/Resizable').default;\nmodule.exports.ResizableBox = require('./build/ResizableBox').default;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","// GENERATED DO NOT EDIT\nmodule.exports = [\n \"alignContent\",\n \"MozAlignContent\",\n \"WebkitAlignContent\",\n \"MSAlignContent\",\n \"OAlignContent\",\n \"alignItems\",\n \"MozAlignItems\",\n \"WebkitAlignItems\",\n \"MSAlignItems\",\n \"OAlignItems\",\n \"alignSelf\",\n \"MozAlignSelf\",\n \"WebkitAlignSelf\",\n \"MSAlignSelf\",\n \"OAlignSelf\",\n \"all\",\n \"MozAll\",\n \"WebkitAll\",\n \"MSAll\",\n \"OAll\",\n \"animation\",\n \"MozAnimation\",\n \"WebkitAnimation\",\n \"MSAnimation\",\n \"OAnimation\",\n \"animationDelay\",\n \"MozAnimationDelay\",\n \"WebkitAnimationDelay\",\n \"MSAnimationDelay\",\n \"OAnimationDelay\",\n \"animationDirection\",\n \"MozAnimationDirection\",\n \"WebkitAnimationDirection\",\n \"MSAnimationDirection\",\n \"OAnimationDirection\",\n \"animationDuration\",\n \"MozAnimationDuration\",\n \"WebkitAnimationDuration\",\n \"MSAnimationDuration\",\n \"OAnimationDuration\",\n \"animationFillMode\",\n \"MozAnimationFillMode\",\n \"WebkitAnimationFillMode\",\n \"MSAnimationFillMode\",\n \"OAnimationFillMode\",\n \"animationIterationCount\",\n \"MozAnimationIterationCount\",\n \"WebkitAnimationIterationCount\",\n \"MSAnimationIterationCount\",\n \"OAnimationIterationCount\",\n \"animationName\",\n \"MozAnimationName\",\n \"WebkitAnimationName\",\n \"MSAnimationName\",\n \"OAnimationName\",\n \"animationPlayState\",\n \"MozAnimationPlayState\",\n \"WebkitAnimationPlayState\",\n \"MSAnimationPlayState\",\n \"OAnimationPlayState\",\n \"animationTimingFunction\",\n \"MozAnimationTimingFunction\",\n \"WebkitAnimationTimingFunction\",\n \"MSAnimationTimingFunction\",\n \"OAnimationTimingFunction\",\n \"backfaceVisibility\",\n \"MozBackfaceVisibility\",\n \"WebkitBackfaceVisibility\",\n \"MSBackfaceVisibility\",\n \"OBackfaceVisibility\",\n \"background\",\n \"MozBackground\",\n \"WebkitBackground\",\n \"MSBackground\",\n \"OBackground\",\n \"backgroundAttachment\",\n \"MozBackgroundAttachment\",\n \"WebkitBackgroundAttachment\",\n \"MSBackgroundAttachment\",\n \"OBackgroundAttachment\",\n \"backgroundBlendMode\",\n \"MozBackgroundBlendMode\",\n \"WebkitBackgroundBlendMode\",\n \"MSBackgroundBlendMode\",\n \"OBackgroundBlendMode\",\n \"backgroundClip\",\n \"MozBackgroundClip\",\n \"WebkitBackgroundClip\",\n \"MSBackgroundClip\",\n \"OBackgroundClip\",\n \"backgroundColor\",\n \"MozBackgroundColor\",\n \"WebkitBackgroundColor\",\n \"MSBackgroundColor\",\n \"OBackgroundColor\",\n \"backgroundImage\",\n \"MozBackgroundImage\",\n \"WebkitBackgroundImage\",\n \"MSBackgroundImage\",\n \"OBackgroundImage\",\n \"backgroundOrigin\",\n \"MozBackgroundOrigin\",\n \"WebkitBackgroundOrigin\",\n \"MSBackgroundOrigin\",\n \"OBackgroundOrigin\",\n \"backgroundPosition\",\n \"MozBackgroundPosition\",\n \"WebkitBackgroundPosition\",\n \"MSBackgroundPosition\",\n \"OBackgroundPosition\",\n \"backgroundRepeat\",\n \"MozBackgroundRepeat\",\n \"WebkitBackgroundRepeat\",\n \"MSBackgroundRepeat\",\n \"OBackgroundRepeat\",\n \"backgroundSize\",\n \"MozBackgroundSize\",\n \"WebkitBackgroundSize\",\n \"MSBackgroundSize\",\n \"OBackgroundSize\",\n \"blockSize\",\n \"MozBlockSize\",\n \"WebkitBlockSize\",\n \"MSBlockSize\",\n \"OBlockSize\",\n \"border\",\n \"MozBorder\",\n \"WebkitBorder\",\n \"MSBorder\",\n \"OBorder\",\n \"borderBlockEnd\",\n \"MozBorderBlockEnd\",\n \"WebkitBorderBlockEnd\",\n \"MSBorderBlockEnd\",\n \"OBorderBlockEnd\",\n \"borderBlockEndColor\",\n \"MozBorderBlockEndColor\",\n \"WebkitBorderBlockEndColor\",\n \"MSBorderBlockEndColor\",\n \"OBorderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"MozBorderBlockEndStyle\",\n \"WebkitBorderBlockEndStyle\",\n \"MSBorderBlockEndStyle\",\n \"OBorderBlockEndStyle\",\n \"borderBlockEndWidth\",\n \"MozBorderBlockEndWidth\",\n \"WebkitBorderBlockEndWidth\",\n \"MSBorderBlockEndWidth\",\n \"OBorderBlockEndWidth\",\n \"borderBlockStart\",\n \"MozBorderBlockStart\",\n \"WebkitBorderBlockStart\",\n \"MSBorderBlockStart\",\n \"OBorderBlockStart\",\n \"borderBlockStartColor\",\n \"MozBorderBlockStartColor\",\n \"WebkitBorderBlockStartColor\",\n \"MSBorderBlockStartColor\",\n \"OBorderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"MozBorderBlockStartStyle\",\n \"WebkitBorderBlockStartStyle\",\n \"MSBorderBlockStartStyle\",\n \"OBorderBlockStartStyle\",\n \"borderBlockStartWidth\",\n \"MozBorderBlockStartWidth\",\n \"WebkitBorderBlockStartWidth\",\n \"MSBorderBlockStartWidth\",\n \"OBorderBlockStartWidth\",\n \"borderBottom\",\n \"MozBorderBottom\",\n \"WebkitBorderBottom\",\n \"MSBorderBottom\",\n \"OBorderBottom\",\n \"borderBottomColor\",\n \"MozBorderBottomColor\",\n \"WebkitBorderBottomColor\",\n \"MSBorderBottomColor\",\n \"OBorderBottomColor\",\n \"borderBottomLeftRadius\",\n \"MozBorderBottomLeftRadius\",\n \"WebkitBorderBottomLeftRadius\",\n \"MSBorderBottomLeftRadius\",\n \"OBorderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"MozBorderBottomRightRadius\",\n \"WebkitBorderBottomRightRadius\",\n \"MSBorderBottomRightRadius\",\n \"OBorderBottomRightRadius\",\n \"borderBottomStyle\",\n \"MozBorderBottomStyle\",\n \"WebkitBorderBottomStyle\",\n \"MSBorderBottomStyle\",\n \"OBorderBottomStyle\",\n \"borderBottomWidth\",\n \"MozBorderBottomWidth\",\n \"WebkitBorderBottomWidth\",\n \"MSBorderBottomWidth\",\n \"OBorderBottomWidth\",\n \"borderCollapse\",\n \"MozBorderCollapse\",\n \"WebkitBorderCollapse\",\n \"MSBorderCollapse\",\n \"OBorderCollapse\",\n \"borderColor\",\n \"MozBorderColor\",\n \"WebkitBorderColor\",\n \"MSBorderColor\",\n \"OBorderColor\",\n \"borderImage\",\n \"MozBorderImage\",\n \"WebkitBorderImage\",\n \"MSBorderImage\",\n \"OBorderImage\",\n \"borderImageOutset\",\n \"MozBorderImageOutset\",\n \"WebkitBorderImageOutset\",\n \"MSBorderImageOutset\",\n \"OBorderImageOutset\",\n \"borderImageRepeat\",\n \"MozBorderImageRepeat\",\n \"WebkitBorderImageRepeat\",\n \"MSBorderImageRepeat\",\n \"OBorderImageRepeat\",\n \"borderImageSlice\",\n \"MozBorderImageSlice\",\n \"WebkitBorderImageSlice\",\n \"MSBorderImageSlice\",\n \"OBorderImageSlice\",\n \"borderImageSource\",\n \"MozBorderImageSource\",\n \"WebkitBorderImageSource\",\n \"MSBorderImageSource\",\n \"OBorderImageSource\",\n \"borderImageWidth\",\n \"MozBorderImageWidth\",\n \"WebkitBorderImageWidth\",\n \"MSBorderImageWidth\",\n \"OBorderImageWidth\",\n \"borderInlineEnd\",\n \"MozBorderInlineEnd\",\n \"WebkitBorderInlineEnd\",\n \"MSBorderInlineEnd\",\n \"OBorderInlineEnd\",\n \"borderInlineEndColor\",\n \"MozBorderInlineEndColor\",\n \"WebkitBorderInlineEndColor\",\n \"MSBorderInlineEndColor\",\n \"OBorderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"MozBorderInlineEndStyle\",\n \"WebkitBorderInlineEndStyle\",\n \"MSBorderInlineEndStyle\",\n \"OBorderInlineEndStyle\",\n \"borderInlineEndWidth\",\n \"MozBorderInlineEndWidth\",\n \"WebkitBorderInlineEndWidth\",\n \"MSBorderInlineEndWidth\",\n \"OBorderInlineEndWidth\",\n \"borderInlineStart\",\n \"MozBorderInlineStart\",\n \"WebkitBorderInlineStart\",\n \"MSBorderInlineStart\",\n \"OBorderInlineStart\",\n \"borderInlineStartColor\",\n \"MozBorderInlineStartColor\",\n \"WebkitBorderInlineStartColor\",\n \"MSBorderInlineStartColor\",\n \"OBorderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"MozBorderInlineStartStyle\",\n \"WebkitBorderInlineStartStyle\",\n \"MSBorderInlineStartStyle\",\n \"OBorderInlineStartStyle\",\n \"borderInlineStartWidth\",\n \"MozBorderInlineStartWidth\",\n \"WebkitBorderInlineStartWidth\",\n \"MSBorderInlineStartWidth\",\n \"OBorderInlineStartWidth\",\n \"borderLeft\",\n \"MozBorderLeft\",\n \"WebkitBorderLeft\",\n \"MSBorderLeft\",\n \"OBorderLeft\",\n \"borderLeftColor\",\n \"MozBorderLeftColor\",\n \"WebkitBorderLeftColor\",\n \"MSBorderLeftColor\",\n \"OBorderLeftColor\",\n \"borderLeftStyle\",\n \"MozBorderLeftStyle\",\n \"WebkitBorderLeftStyle\",\n \"MSBorderLeftStyle\",\n \"OBorderLeftStyle\",\n \"borderLeftWidth\",\n \"MozBorderLeftWidth\",\n \"WebkitBorderLeftWidth\",\n \"MSBorderLeftWidth\",\n \"OBorderLeftWidth\",\n \"borderRadius\",\n \"MozBorderRadius\",\n \"WebkitBorderRadius\",\n \"MSBorderRadius\",\n \"OBorderRadius\",\n \"borderRight\",\n \"MozBorderRight\",\n \"WebkitBorderRight\",\n \"MSBorderRight\",\n \"OBorderRight\",\n \"borderRightColor\",\n \"MozBorderRightColor\",\n \"WebkitBorderRightColor\",\n \"MSBorderRightColor\",\n \"OBorderRightColor\",\n \"borderRightStyle\",\n \"MozBorderRightStyle\",\n \"WebkitBorderRightStyle\",\n \"MSBorderRightStyle\",\n \"OBorderRightStyle\",\n \"borderRightWidth\",\n \"MozBorderRightWidth\",\n \"WebkitBorderRightWidth\",\n \"MSBorderRightWidth\",\n \"OBorderRightWidth\",\n \"borderSpacing\",\n \"MozBorderSpacing\",\n \"WebkitBorderSpacing\",\n \"MSBorderSpacing\",\n \"OBorderSpacing\",\n \"borderStyle\",\n \"MozBorderStyle\",\n \"WebkitBorderStyle\",\n \"MSBorderStyle\",\n \"OBorderStyle\",\n \"borderTop\",\n \"MozBorderTop\",\n \"WebkitBorderTop\",\n \"MSBorderTop\",\n \"OBorderTop\",\n \"borderTopColor\",\n \"MozBorderTopColor\",\n \"WebkitBorderTopColor\",\n \"MSBorderTopColor\",\n \"OBorderTopColor\",\n \"borderTopLeftRadius\",\n \"MozBorderTopLeftRadius\",\n \"WebkitBorderTopLeftRadius\",\n \"MSBorderTopLeftRadius\",\n \"OBorderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"MozBorderTopRightRadius\",\n \"WebkitBorderTopRightRadius\",\n \"MSBorderTopRightRadius\",\n \"OBorderTopRightRadius\",\n \"borderTopStyle\",\n \"MozBorderTopStyle\",\n \"WebkitBorderTopStyle\",\n \"MSBorderTopStyle\",\n \"OBorderTopStyle\",\n \"borderTopWidth\",\n \"MozBorderTopWidth\",\n \"WebkitBorderTopWidth\",\n \"MSBorderTopWidth\",\n \"OBorderTopWidth\",\n \"borderWidth\",\n \"MozBorderWidth\",\n \"WebkitBorderWidth\",\n \"MSBorderWidth\",\n \"OBorderWidth\",\n \"bottom\",\n \"MozBottom\",\n \"WebkitBottom\",\n \"MSBottom\",\n \"OBottom\",\n \"boxDecorationBreak\",\n \"MozBoxDecorationBreak\",\n \"WebkitBoxDecorationBreak\",\n \"MSBoxDecorationBreak\",\n \"OBoxDecorationBreak\",\n \"boxShadow\",\n \"MozBoxShadow\",\n \"WebkitBoxShadow\",\n \"MSBoxShadow\",\n \"OBoxShadow\",\n \"boxSizing\",\n \"MozBoxSizing\",\n \"WebkitBoxSizing\",\n \"MSBoxSizing\",\n \"OBoxSizing\",\n \"breakAfter\",\n \"MozBreakAfter\",\n \"WebkitBreakAfter\",\n \"MSBreakAfter\",\n \"OBreakAfter\",\n \"breakBefore\",\n \"MozBreakBefore\",\n \"WebkitBreakBefore\",\n \"MSBreakBefore\",\n \"OBreakBefore\",\n \"breakInside\",\n \"MozBreakInside\",\n \"WebkitBreakInside\",\n \"MSBreakInside\",\n \"OBreakInside\",\n \"captionSide\",\n \"MozCaptionSide\",\n \"WebkitCaptionSide\",\n \"MSCaptionSide\",\n \"OCaptionSide\",\n \"caretColor\",\n \"MozCaretColor\",\n \"WebkitCaretColor\",\n \"MSCaretColor\",\n \"OCaretColor\",\n \"ch\",\n \"MozCh\",\n \"WebkitCh\",\n \"MSCh\",\n \"OCh\",\n \"clear\",\n \"MozClear\",\n \"WebkitClear\",\n \"MSClear\",\n \"OClear\",\n \"clip\",\n \"MozClip\",\n \"WebkitClip\",\n \"MSClip\",\n \"OClip\",\n \"clipPath\",\n \"MozClipPath\",\n \"WebkitClipPath\",\n \"MSClipPath\",\n \"OClipPath\",\n \"cm\",\n \"MozCm\",\n \"WebkitCm\",\n \"MSCm\",\n \"OCm\",\n \"color\",\n \"MozColor\",\n \"WebkitColor\",\n \"MSColor\",\n \"OColor\",\n \"columnCount\",\n \"MozColumnCount\",\n \"WebkitColumnCount\",\n \"MSColumnCount\",\n \"OColumnCount\",\n \"columnFill\",\n \"MozColumnFill\",\n \"WebkitColumnFill\",\n \"MSColumnFill\",\n \"OColumnFill\",\n \"columnGap\",\n \"MozColumnGap\",\n \"WebkitColumnGap\",\n \"MSColumnGap\",\n \"OColumnGap\",\n \"columnRule\",\n \"MozColumnRule\",\n \"WebkitColumnRule\",\n \"MSColumnRule\",\n \"OColumnRule\",\n \"columnRuleColor\",\n \"MozColumnRuleColor\",\n \"WebkitColumnRuleColor\",\n \"MSColumnRuleColor\",\n \"OColumnRuleColor\",\n \"columnRuleStyle\",\n \"MozColumnRuleStyle\",\n \"WebkitColumnRuleStyle\",\n \"MSColumnRuleStyle\",\n \"OColumnRuleStyle\",\n \"columnRuleWidth\",\n \"MozColumnRuleWidth\",\n \"WebkitColumnRuleWidth\",\n \"MSColumnRuleWidth\",\n \"OColumnRuleWidth\",\n \"columnSpan\",\n \"MozColumnSpan\",\n \"WebkitColumnSpan\",\n \"MSColumnSpan\",\n \"OColumnSpan\",\n \"columnWidth\",\n \"MozColumnWidth\",\n \"WebkitColumnWidth\",\n \"MSColumnWidth\",\n \"OColumnWidth\",\n \"columns\",\n \"MozColumns\",\n \"WebkitColumns\",\n \"MSColumns\",\n \"OColumns\",\n \"content\",\n \"MozContent\",\n \"WebkitContent\",\n \"MSContent\",\n \"OContent\",\n \"counterIncrement\",\n \"MozCounterIncrement\",\n \"WebkitCounterIncrement\",\n \"MSCounterIncrement\",\n \"OCounterIncrement\",\n \"counterReset\",\n \"MozCounterReset\",\n \"WebkitCounterReset\",\n \"MSCounterReset\",\n \"OCounterReset\",\n \"cursor\",\n \"MozCursor\",\n \"WebkitCursor\",\n \"MSCursor\",\n \"OCursor\",\n \"deg\",\n \"MozDeg\",\n \"WebkitDeg\",\n \"MSDeg\",\n \"ODeg\",\n \"direction\",\n \"MozDirection\",\n \"WebkitDirection\",\n \"MSDirection\",\n \"ODirection\",\n \"display\",\n \"MozDisplay\",\n \"WebkitDisplay\",\n \"MSDisplay\",\n \"ODisplay\",\n \"dpcm\",\n \"MozDpcm\",\n \"WebkitDpcm\",\n \"MSDpcm\",\n \"ODpcm\",\n \"dpi\",\n \"MozDpi\",\n \"WebkitDpi\",\n \"MSDpi\",\n \"ODpi\",\n \"dppx\",\n \"MozDppx\",\n \"WebkitDppx\",\n \"MSDppx\",\n \"ODppx\",\n \"em\",\n \"MozEm\",\n \"WebkitEm\",\n \"MSEm\",\n \"OEm\",\n \"emptyCells\",\n \"MozEmptyCells\",\n \"WebkitEmptyCells\",\n \"MSEmptyCells\",\n \"OEmptyCells\",\n \"ex\",\n \"MozEx\",\n \"WebkitEx\",\n \"MSEx\",\n \"OEx\",\n \"filter\",\n \"MozFilter\",\n \"WebkitFilter\",\n \"MSFilter\",\n \"OFilter\",\n \"flexBasis\",\n \"MozFlexBasis\",\n \"WebkitFlexBasis\",\n \"MSFlexBasis\",\n \"OFlexBasis\",\n \"flexDirection\",\n \"MozFlexDirection\",\n \"WebkitFlexDirection\",\n \"MSFlexDirection\",\n \"OFlexDirection\",\n \"flexFlow\",\n \"MozFlexFlow\",\n \"WebkitFlexFlow\",\n \"MSFlexFlow\",\n \"OFlexFlow\",\n \"flexGrow\",\n \"MozFlexGrow\",\n \"WebkitFlexGrow\",\n \"MSFlexGrow\",\n \"OFlexGrow\",\n \"flexShrink\",\n \"MozFlexShrink\",\n \"WebkitFlexShrink\",\n \"MSFlexShrink\",\n \"OFlexShrink\",\n \"flexWrap\",\n \"MozFlexWrap\",\n \"WebkitFlexWrap\",\n \"MSFlexWrap\",\n \"OFlexWrap\",\n \"float\",\n \"MozFloat\",\n \"WebkitFloat\",\n \"MSFloat\",\n \"OFloat\",\n \"font\",\n \"MozFont\",\n \"WebkitFont\",\n \"MSFont\",\n \"OFont\",\n \"fontFamily\",\n \"MozFontFamily\",\n \"WebkitFontFamily\",\n \"MSFontFamily\",\n \"OFontFamily\",\n \"fontFeatureSettings\",\n \"MozFontFeatureSettings\",\n \"WebkitFontFeatureSettings\",\n \"MSFontFeatureSettings\",\n \"OFontFeatureSettings\",\n \"fontKerning\",\n \"MozFontKerning\",\n \"WebkitFontKerning\",\n \"MSFontKerning\",\n \"OFontKerning\",\n \"fontLanguageOverride\",\n \"MozFontLanguageOverride\",\n \"WebkitFontLanguageOverride\",\n \"MSFontLanguageOverride\",\n \"OFontLanguageOverride\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"fontSizeAdjust\",\n \"MozFontSizeAdjust\",\n \"WebkitFontSizeAdjust\",\n \"MSFontSizeAdjust\",\n \"OFontSizeAdjust\",\n \"fontStretch\",\n \"MozFontStretch\",\n \"WebkitFontStretch\",\n \"MSFontStretch\",\n \"OFontStretch\",\n \"fontStyle\",\n \"MozFontStyle\",\n \"WebkitFontStyle\",\n \"MSFontStyle\",\n \"OFontStyle\",\n \"fontSynthesis\",\n \"MozFontSynthesis\",\n \"WebkitFontSynthesis\",\n \"MSFontSynthesis\",\n \"OFontSynthesis\",\n \"fontVariant\",\n \"MozFontVariant\",\n \"WebkitFontVariant\",\n \"MSFontVariant\",\n \"OFontVariant\",\n \"fontVariantAlternates\",\n \"MozFontVariantAlternates\",\n \"WebkitFontVariantAlternates\",\n \"MSFontVariantAlternates\",\n \"OFontVariantAlternates\",\n \"fontVariantCaps\",\n \"MozFontVariantCaps\",\n \"WebkitFontVariantCaps\",\n \"MSFontVariantCaps\",\n \"OFontVariantCaps\",\n \"fontVariantEastAsian\",\n \"MozFontVariantEastAsian\",\n \"WebkitFontVariantEastAsian\",\n \"MSFontVariantEastAsian\",\n \"OFontVariantEastAsian\",\n \"fontVariantLigatures\",\n \"MozFontVariantLigatures\",\n \"WebkitFontVariantLigatures\",\n \"MSFontVariantLigatures\",\n \"OFontVariantLigatures\",\n \"fontVariantNumeric\",\n \"MozFontVariantNumeric\",\n \"WebkitFontVariantNumeric\",\n \"MSFontVariantNumeric\",\n \"OFontVariantNumeric\",\n \"fontVariantPosition\",\n \"MozFontVariantPosition\",\n \"WebkitFontVariantPosition\",\n \"MSFontVariantPosition\",\n \"OFontVariantPosition\",\n \"fontWeight\",\n \"MozFontWeight\",\n \"WebkitFontWeight\",\n \"MSFontWeight\",\n \"OFontWeight\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"grad\",\n \"MozGrad\",\n \"WebkitGrad\",\n \"MSGrad\",\n \"OGrad\",\n \"grid\",\n \"MozGrid\",\n \"WebkitGrid\",\n \"MSGrid\",\n \"OGrid\",\n \"gridArea\",\n \"MozGridArea\",\n \"WebkitGridArea\",\n \"MSGridArea\",\n \"OGridArea\",\n \"gridAutoColumns\",\n \"MozGridAutoColumns\",\n \"WebkitGridAutoColumns\",\n \"MSGridAutoColumns\",\n \"OGridAutoColumns\",\n \"gridAutoFlow\",\n \"MozGridAutoFlow\",\n \"WebkitGridAutoFlow\",\n \"MSGridAutoFlow\",\n \"OGridAutoFlow\",\n \"gridAutoRows\",\n \"MozGridAutoRows\",\n \"WebkitGridAutoRows\",\n \"MSGridAutoRows\",\n \"OGridAutoRows\",\n \"gridColumn\",\n \"MozGridColumn\",\n \"WebkitGridColumn\",\n \"MSGridColumn\",\n \"OGridColumn\",\n \"gridColumnEnd\",\n \"MozGridColumnEnd\",\n \"WebkitGridColumnEnd\",\n \"MSGridColumnEnd\",\n \"OGridColumnEnd\",\n \"gridColumnGap\",\n \"MozGridColumnGap\",\n \"WebkitGridColumnGap\",\n \"MSGridColumnGap\",\n \"OGridColumnGap\",\n \"gridColumnStart\",\n \"MozGridColumnStart\",\n \"WebkitGridColumnStart\",\n \"MSGridColumnStart\",\n \"OGridColumnStart\",\n \"gridGap\",\n \"MozGridGap\",\n \"WebkitGridGap\",\n \"MSGridGap\",\n \"OGridGap\",\n \"gridRow\",\n \"MozGridRow\",\n \"WebkitGridRow\",\n \"MSGridRow\",\n \"OGridRow\",\n \"gridRowEnd\",\n \"MozGridRowEnd\",\n \"WebkitGridRowEnd\",\n \"MSGridRowEnd\",\n \"OGridRowEnd\",\n \"gridRowGap\",\n \"MozGridRowGap\",\n \"WebkitGridRowGap\",\n \"MSGridRowGap\",\n \"OGridRowGap\",\n \"gridRowStart\",\n \"MozGridRowStart\",\n \"WebkitGridRowStart\",\n \"MSGridRowStart\",\n \"OGridRowStart\",\n \"gridTemplate\",\n \"MozGridTemplate\",\n \"WebkitGridTemplate\",\n \"MSGridTemplate\",\n \"OGridTemplate\",\n \"gridTemplateAreas\",\n \"MozGridTemplateAreas\",\n \"WebkitGridTemplateAreas\",\n \"MSGridTemplateAreas\",\n \"OGridTemplateAreas\",\n \"gridTemplateColumns\",\n \"MozGridTemplateColumns\",\n \"WebkitGridTemplateColumns\",\n \"MSGridTemplateColumns\",\n \"OGridTemplateColumns\",\n \"gridTemplateRows\",\n \"MozGridTemplateRows\",\n \"WebkitGridTemplateRows\",\n \"MSGridTemplateRows\",\n \"OGridTemplateRows\",\n \"height\",\n \"MozHeight\",\n \"WebkitHeight\",\n \"MSHeight\",\n \"OHeight\",\n \"hyphens\",\n \"MozHyphens\",\n \"WebkitHyphens\",\n \"MSHyphens\",\n \"OHyphens\",\n \"hz\",\n \"MozHz\",\n \"WebkitHz\",\n \"MSHz\",\n \"OHz\",\n \"imageOrientation\",\n \"MozImageOrientation\",\n \"WebkitImageOrientation\",\n \"MSImageOrientation\",\n \"OImageOrientation\",\n \"imageRendering\",\n \"MozImageRendering\",\n \"WebkitImageRendering\",\n \"MSImageRendering\",\n \"OImageRendering\",\n \"imageResolution\",\n \"MozImageResolution\",\n \"WebkitImageResolution\",\n \"MSImageResolution\",\n \"OImageResolution\",\n \"imeMode\",\n \"MozImeMode\",\n \"WebkitImeMode\",\n \"MSImeMode\",\n \"OImeMode\",\n \"in\",\n \"MozIn\",\n \"WebkitIn\",\n \"MSIn\",\n \"OIn\",\n \"inherit\",\n \"MozInherit\",\n \"WebkitInherit\",\n \"MSInherit\",\n \"OInherit\",\n \"initial\",\n \"MozInitial\",\n \"WebkitInitial\",\n \"MSInitial\",\n \"OInitial\",\n \"inlineSize\",\n \"MozInlineSize\",\n \"WebkitInlineSize\",\n \"MSInlineSize\",\n \"OInlineSize\",\n \"isolation\",\n \"MozIsolation\",\n \"WebkitIsolation\",\n \"MSIsolation\",\n \"OIsolation\",\n \"justifyContent\",\n \"MozJustifyContent\",\n \"WebkitJustifyContent\",\n \"MSJustifyContent\",\n \"OJustifyContent\",\n \"khz\",\n \"MozKhz\",\n \"WebkitKhz\",\n \"MSKhz\",\n \"OKhz\",\n \"left\",\n \"MozLeft\",\n \"WebkitLeft\",\n \"MSLeft\",\n \"OLeft\",\n \"letterSpacing\",\n \"MozLetterSpacing\",\n \"WebkitLetterSpacing\",\n \"MSLetterSpacing\",\n \"OLetterSpacing\",\n \"lineBreak\",\n \"MozLineBreak\",\n \"WebkitLineBreak\",\n \"MSLineBreak\",\n \"OLineBreak\",\n \"lineHeight\",\n \"MozLineHeight\",\n \"WebkitLineHeight\",\n \"MSLineHeight\",\n \"OLineHeight\",\n \"listStyle\",\n \"MozListStyle\",\n \"WebkitListStyle\",\n \"MSListStyle\",\n \"OListStyle\",\n \"listStyleImage\",\n \"MozListStyleImage\",\n \"WebkitListStyleImage\",\n \"MSListStyleImage\",\n \"OListStyleImage\",\n \"listStylePosition\",\n \"MozListStylePosition\",\n \"WebkitListStylePosition\",\n \"MSListStylePosition\",\n \"OListStylePosition\",\n \"listStyleType\",\n \"MozListStyleType\",\n \"WebkitListStyleType\",\n \"MSListStyleType\",\n \"OListStyleType\",\n \"margin\",\n \"MozMargin\",\n \"WebkitMargin\",\n \"MSMargin\",\n \"OMargin\",\n \"marginBlockEnd\",\n \"MozMarginBlockEnd\",\n \"WebkitMarginBlockEnd\",\n \"MSMarginBlockEnd\",\n \"OMarginBlockEnd\",\n \"marginBlockStart\",\n \"MozMarginBlockStart\",\n \"WebkitMarginBlockStart\",\n \"MSMarginBlockStart\",\n \"OMarginBlockStart\",\n \"marginBottom\",\n \"MozMarginBottom\",\n \"WebkitMarginBottom\",\n \"MSMarginBottom\",\n \"OMarginBottom\",\n \"marginInlineEnd\",\n \"MozMarginInlineEnd\",\n \"WebkitMarginInlineEnd\",\n \"MSMarginInlineEnd\",\n \"OMarginInlineEnd\",\n \"marginInlineStart\",\n \"MozMarginInlineStart\",\n \"WebkitMarginInlineStart\",\n \"MSMarginInlineStart\",\n \"OMarginInlineStart\",\n \"marginLeft\",\n \"MozMarginLeft\",\n \"WebkitMarginLeft\",\n \"MSMarginLeft\",\n \"OMarginLeft\",\n \"marginRight\",\n \"MozMarginRight\",\n \"WebkitMarginRight\",\n \"MSMarginRight\",\n \"OMarginRight\",\n \"marginTop\",\n \"MozMarginTop\",\n \"WebkitMarginTop\",\n \"MSMarginTop\",\n \"OMarginTop\",\n \"mask\",\n \"MozMask\",\n \"WebkitMask\",\n \"MSMask\",\n \"OMask\",\n \"maskClip\",\n \"MozMaskClip\",\n \"WebkitMaskClip\",\n \"MSMaskClip\",\n \"OMaskClip\",\n \"maskComposite\",\n \"MozMaskComposite\",\n \"WebkitMaskComposite\",\n \"MSMaskComposite\",\n \"OMaskComposite\",\n \"maskImage\",\n \"MozMaskImage\",\n \"WebkitMaskImage\",\n \"MSMaskImage\",\n \"OMaskImage\",\n \"maskMode\",\n \"MozMaskMode\",\n \"WebkitMaskMode\",\n \"MSMaskMode\",\n \"OMaskMode\",\n \"maskOrigin\",\n \"MozMaskOrigin\",\n \"WebkitMaskOrigin\",\n \"MSMaskOrigin\",\n \"OMaskOrigin\",\n \"maskPosition\",\n \"MozMaskPosition\",\n \"WebkitMaskPosition\",\n \"MSMaskPosition\",\n \"OMaskPosition\",\n \"maskRepeat\",\n \"MozMaskRepeat\",\n \"WebkitMaskRepeat\",\n \"MSMaskRepeat\",\n \"OMaskRepeat\",\n \"maskSize\",\n \"MozMaskSize\",\n \"WebkitMaskSize\",\n \"MSMaskSize\",\n \"OMaskSize\",\n \"maskType\",\n \"MozMaskType\",\n \"WebkitMaskType\",\n \"MSMaskType\",\n \"OMaskType\",\n \"maxHeight\",\n \"MozMaxHeight\",\n \"WebkitMaxHeight\",\n \"MSMaxHeight\",\n \"OMaxHeight\",\n \"maxWidth\",\n \"MozMaxWidth\",\n \"WebkitMaxWidth\",\n \"MSMaxWidth\",\n \"OMaxWidth\",\n \"minBlockSize\",\n \"MozMinBlockSize\",\n \"WebkitMinBlockSize\",\n \"MSMinBlockSize\",\n \"OMinBlockSize\",\n \"minHeight\",\n \"MozMinHeight\",\n \"WebkitMinHeight\",\n \"MSMinHeight\",\n \"OMinHeight\",\n \"minInlineSize\",\n \"MozMinInlineSize\",\n \"WebkitMinInlineSize\",\n \"MSMinInlineSize\",\n \"OMinInlineSize\",\n \"minWidth\",\n \"MozMinWidth\",\n \"WebkitMinWidth\",\n \"MSMinWidth\",\n \"OMinWidth\",\n \"mixBlendMode\",\n \"MozMixBlendMode\",\n \"WebkitMixBlendMode\",\n \"MSMixBlendMode\",\n \"OMixBlendMode\",\n \"mm\",\n \"MozMm\",\n \"WebkitMm\",\n \"MSMm\",\n \"OMm\",\n \"ms\",\n \"MozMs\",\n \"WebkitMs\",\n \"MSMs\",\n \"OMs\",\n \"objectFit\",\n \"MozObjectFit\",\n \"WebkitObjectFit\",\n \"MSObjectFit\",\n \"OObjectFit\",\n \"objectPosition\",\n \"MozObjectPosition\",\n \"WebkitObjectPosition\",\n \"MSObjectPosition\",\n \"OObjectPosition\",\n \"offsetBlockEnd\",\n \"MozOffsetBlockEnd\",\n \"WebkitOffsetBlockEnd\",\n \"MSOffsetBlockEnd\",\n \"OOffsetBlockEnd\",\n \"offsetBlockStart\",\n \"MozOffsetBlockStart\",\n \"WebkitOffsetBlockStart\",\n \"MSOffsetBlockStart\",\n \"OOffsetBlockStart\",\n \"offsetInlineEnd\",\n \"MozOffsetInlineEnd\",\n \"WebkitOffsetInlineEnd\",\n \"MSOffsetInlineEnd\",\n \"OOffsetInlineEnd\",\n \"offsetInlineStart\",\n \"MozOffsetInlineStart\",\n \"WebkitOffsetInlineStart\",\n \"MSOffsetInlineStart\",\n \"OOffsetInlineStart\",\n \"opacity\",\n \"MozOpacity\",\n \"WebkitOpacity\",\n \"MSOpacity\",\n \"OOpacity\",\n \"order\",\n \"MozOrder\",\n \"WebkitOrder\",\n \"MSOrder\",\n \"OOrder\",\n \"orphans\",\n \"MozOrphans\",\n \"WebkitOrphans\",\n \"MSOrphans\",\n \"OOrphans\",\n \"outline\",\n \"MozOutline\",\n \"WebkitOutline\",\n \"MSOutline\",\n \"OOutline\",\n \"outlineColor\",\n \"MozOutlineColor\",\n \"WebkitOutlineColor\",\n \"MSOutlineColor\",\n \"OOutlineColor\",\n \"outlineOffset\",\n \"MozOutlineOffset\",\n \"WebkitOutlineOffset\",\n \"MSOutlineOffset\",\n \"OOutlineOffset\",\n \"outlineStyle\",\n \"MozOutlineStyle\",\n \"WebkitOutlineStyle\",\n \"MSOutlineStyle\",\n \"OOutlineStyle\",\n \"outlineWidth\",\n \"MozOutlineWidth\",\n \"WebkitOutlineWidth\",\n \"MSOutlineWidth\",\n \"OOutlineWidth\",\n \"overflow\",\n \"MozOverflow\",\n \"WebkitOverflow\",\n \"MSOverflow\",\n \"OOverflow\",\n \"overflowWrap\",\n \"MozOverflowWrap\",\n \"WebkitOverflowWrap\",\n \"MSOverflowWrap\",\n \"OOverflowWrap\",\n \"overflowX\",\n \"MozOverflowX\",\n \"WebkitOverflowX\",\n \"MSOverflowX\",\n \"OOverflowX\",\n \"overflowY\",\n \"MozOverflowY\",\n \"WebkitOverflowY\",\n \"MSOverflowY\",\n \"OOverflowY\",\n \"padding\",\n \"MozPadding\",\n \"WebkitPadding\",\n \"MSPadding\",\n \"OPadding\",\n \"paddingBlockEnd\",\n \"MozPaddingBlockEnd\",\n \"WebkitPaddingBlockEnd\",\n \"MSPaddingBlockEnd\",\n \"OPaddingBlockEnd\",\n \"paddingBlockStart\",\n \"MozPaddingBlockStart\",\n \"WebkitPaddingBlockStart\",\n \"MSPaddingBlockStart\",\n \"OPaddingBlockStart\",\n \"paddingBottom\",\n \"MozPaddingBottom\",\n \"WebkitPaddingBottom\",\n \"MSPaddingBottom\",\n \"OPaddingBottom\",\n \"paddingInlineEnd\",\n \"MozPaddingInlineEnd\",\n \"WebkitPaddingInlineEnd\",\n \"MSPaddingInlineEnd\",\n \"OPaddingInlineEnd\",\n \"paddingInlineStart\",\n \"MozPaddingInlineStart\",\n \"WebkitPaddingInlineStart\",\n \"MSPaddingInlineStart\",\n \"OPaddingInlineStart\",\n \"paddingLeft\",\n \"MozPaddingLeft\",\n \"WebkitPaddingLeft\",\n \"MSPaddingLeft\",\n \"OPaddingLeft\",\n \"paddingRight\",\n \"MozPaddingRight\",\n \"WebkitPaddingRight\",\n \"MSPaddingRight\",\n \"OPaddingRight\",\n \"paddingTop\",\n \"MozPaddingTop\",\n \"WebkitPaddingTop\",\n \"MSPaddingTop\",\n \"OPaddingTop\",\n \"pageBreakAfter\",\n \"MozPageBreakAfter\",\n \"WebkitPageBreakAfter\",\n \"MSPageBreakAfter\",\n \"OPageBreakAfter\",\n \"pageBreakBefore\",\n \"MozPageBreakBefore\",\n \"WebkitPageBreakBefore\",\n \"MSPageBreakBefore\",\n \"OPageBreakBefore\",\n \"pageBreakInside\",\n \"MozPageBreakInside\",\n \"WebkitPageBreakInside\",\n \"MSPageBreakInside\",\n \"OPageBreakInside\",\n \"pc\",\n \"MozPc\",\n \"WebkitPc\",\n \"MSPc\",\n \"OPc\",\n \"perspective\",\n \"MozPerspective\",\n \"WebkitPerspective\",\n \"MSPerspective\",\n \"OPerspective\",\n \"perspectiveOrigin\",\n \"MozPerspectiveOrigin\",\n \"WebkitPerspectiveOrigin\",\n \"MSPerspectiveOrigin\",\n \"OPerspectiveOrigin\",\n \"pointerEvents\",\n \"MozPointerEvents\",\n \"WebkitPointerEvents\",\n \"MSPointerEvents\",\n \"OPointerEvents\",\n \"position\",\n \"MozPosition\",\n \"WebkitPosition\",\n \"MSPosition\",\n \"OPosition\",\n \"pt\",\n \"MozPt\",\n \"WebkitPt\",\n \"MSPt\",\n \"OPt\",\n \"px\",\n \"MozPx\",\n \"WebkitPx\",\n \"MSPx\",\n \"OPx\",\n \"q\",\n \"MozQ\",\n \"WebkitQ\",\n \"MSQ\",\n \"OQ\",\n \"quotes\",\n \"MozQuotes\",\n \"WebkitQuotes\",\n \"MSQuotes\",\n \"OQuotes\",\n \"rad\",\n \"MozRad\",\n \"WebkitRad\",\n \"MSRad\",\n \"ORad\",\n \"rem\",\n \"MozRem\",\n \"WebkitRem\",\n \"MSRem\",\n \"ORem\",\n \"resize\",\n \"MozResize\",\n \"WebkitResize\",\n \"MSResize\",\n \"OResize\",\n \"revert\",\n \"MozRevert\",\n \"WebkitRevert\",\n \"MSRevert\",\n \"ORevert\",\n \"right\",\n \"MozRight\",\n \"WebkitRight\",\n \"MSRight\",\n \"ORight\",\n \"rubyAlign\",\n \"MozRubyAlign\",\n \"WebkitRubyAlign\",\n \"MSRubyAlign\",\n \"ORubyAlign\",\n \"rubyMerge\",\n \"MozRubyMerge\",\n \"WebkitRubyMerge\",\n \"MSRubyMerge\",\n \"ORubyMerge\",\n \"rubyPosition\",\n \"MozRubyPosition\",\n \"WebkitRubyPosition\",\n \"MSRubyPosition\",\n \"ORubyPosition\",\n \"s\",\n \"MozS\",\n \"WebkitS\",\n \"MSS\",\n \"OS\",\n \"scrollBehavior\",\n \"MozScrollBehavior\",\n \"WebkitScrollBehavior\",\n \"MSScrollBehavior\",\n \"OScrollBehavior\",\n \"scrollSnapCoordinate\",\n \"MozScrollSnapCoordinate\",\n \"WebkitScrollSnapCoordinate\",\n \"MSScrollSnapCoordinate\",\n \"OScrollSnapCoordinate\",\n \"scrollSnapDestination\",\n \"MozScrollSnapDestination\",\n \"WebkitScrollSnapDestination\",\n \"MSScrollSnapDestination\",\n \"OScrollSnapDestination\",\n \"scrollSnapType\",\n \"MozScrollSnapType\",\n \"WebkitScrollSnapType\",\n \"MSScrollSnapType\",\n \"OScrollSnapType\",\n \"shapeImageThreshold\",\n \"MozShapeImageThreshold\",\n \"WebkitShapeImageThreshold\",\n \"MSShapeImageThreshold\",\n \"OShapeImageThreshold\",\n \"shapeMargin\",\n \"MozShapeMargin\",\n \"WebkitShapeMargin\",\n \"MSShapeMargin\",\n \"OShapeMargin\",\n \"shapeOutside\",\n \"MozShapeOutside\",\n \"WebkitShapeOutside\",\n \"MSShapeOutside\",\n \"OShapeOutside\",\n \"tabSize\",\n \"MozTabSize\",\n \"WebkitTabSize\",\n \"MSTabSize\",\n \"OTabSize\",\n \"tableLayout\",\n \"MozTableLayout\",\n \"WebkitTableLayout\",\n \"MSTableLayout\",\n \"OTableLayout\",\n \"textAlign\",\n \"MozTextAlign\",\n \"WebkitTextAlign\",\n \"MSTextAlign\",\n \"OTextAlign\",\n \"textAlignLast\",\n \"MozTextAlignLast\",\n \"WebkitTextAlignLast\",\n \"MSTextAlignLast\",\n \"OTextAlignLast\",\n \"textCombineUpright\",\n \"MozTextCombineUpright\",\n \"WebkitTextCombineUpright\",\n \"MSTextCombineUpright\",\n \"OTextCombineUpright\",\n \"textDecoration\",\n \"MozTextDecoration\",\n \"WebkitTextDecoration\",\n \"MSTextDecoration\",\n \"OTextDecoration\",\n \"textDecorationColor\",\n \"MozTextDecorationColor\",\n \"WebkitTextDecorationColor\",\n \"MSTextDecorationColor\",\n \"OTextDecorationColor\",\n \"textDecorationLine\",\n \"MozTextDecorationLine\",\n \"WebkitTextDecorationLine\",\n \"MSTextDecorationLine\",\n \"OTextDecorationLine\",\n \"textDecorationStyle\",\n \"MozTextDecorationStyle\",\n \"WebkitTextDecorationStyle\",\n \"MSTextDecorationStyle\",\n \"OTextDecorationStyle\",\n \"textEmphasis\",\n \"MozTextEmphasis\",\n \"WebkitTextEmphasis\",\n \"MSTextEmphasis\",\n \"OTextEmphasis\",\n \"textEmphasisColor\",\n \"MozTextEmphasisColor\",\n \"WebkitTextEmphasisColor\",\n \"MSTextEmphasisColor\",\n \"OTextEmphasisColor\",\n \"textEmphasisPosition\",\n \"MozTextEmphasisPosition\",\n \"WebkitTextEmphasisPosition\",\n \"MSTextEmphasisPosition\",\n \"OTextEmphasisPosition\",\n \"textEmphasisStyle\",\n \"MozTextEmphasisStyle\",\n \"WebkitTextEmphasisStyle\",\n \"MSTextEmphasisStyle\",\n \"OTextEmphasisStyle\",\n \"textIndent\",\n \"MozTextIndent\",\n \"WebkitTextIndent\",\n \"MSTextIndent\",\n \"OTextIndent\",\n \"textOrientation\",\n \"MozTextOrientation\",\n \"WebkitTextOrientation\",\n \"MSTextOrientation\",\n \"OTextOrientation\",\n \"textOverflow\",\n \"MozTextOverflow\",\n \"WebkitTextOverflow\",\n \"MSTextOverflow\",\n \"OTextOverflow\",\n \"textRendering\",\n \"MozTextRendering\",\n \"WebkitTextRendering\",\n \"MSTextRendering\",\n \"OTextRendering\",\n \"textShadow\",\n \"MozTextShadow\",\n \"WebkitTextShadow\",\n \"MSTextShadow\",\n \"OTextShadow\",\n \"textTransform\",\n \"MozTextTransform\",\n \"WebkitTextTransform\",\n \"MSTextTransform\",\n \"OTextTransform\",\n \"textUnderlinePosition\",\n \"MozTextUnderlinePosition\",\n \"WebkitTextUnderlinePosition\",\n \"MSTextUnderlinePosition\",\n \"OTextUnderlinePosition\",\n \"top\",\n \"MozTop\",\n \"WebkitTop\",\n \"MSTop\",\n \"OTop\",\n \"touchAction\",\n \"MozTouchAction\",\n \"WebkitTouchAction\",\n \"MSTouchAction\",\n \"OTouchAction\",\n \"transform\",\n \"MozTransform\",\n \"WebkitTransform\",\n \"msTransform\",\n \"OTransform\",\n \"transformBox\",\n \"MozTransformBox\",\n \"WebkitTransformBox\",\n \"MSTransformBox\",\n \"OTransformBox\",\n \"transformOrigin\",\n \"MozTransformOrigin\",\n \"WebkitTransformOrigin\",\n \"MSTransformOrigin\",\n \"OTransformOrigin\",\n \"transformStyle\",\n \"MozTransformStyle\",\n \"WebkitTransformStyle\",\n \"MSTransformStyle\",\n \"OTransformStyle\",\n \"transition\",\n \"MozTransition\",\n \"WebkitTransition\",\n \"MSTransition\",\n \"OTransition\",\n \"transitionDelay\",\n \"MozTransitionDelay\",\n \"WebkitTransitionDelay\",\n \"MSTransitionDelay\",\n \"OTransitionDelay\",\n \"transitionDuration\",\n \"MozTransitionDuration\",\n \"WebkitTransitionDuration\",\n \"MSTransitionDuration\",\n \"OTransitionDuration\",\n \"transitionProperty\",\n \"MozTransitionProperty\",\n \"WebkitTransitionProperty\",\n \"MSTransitionProperty\",\n \"OTransitionProperty\",\n \"transitionTimingFunction\",\n \"MozTransitionTimingFunction\",\n \"WebkitTransitionTimingFunction\",\n \"MSTransitionTimingFunction\",\n \"OTransitionTimingFunction\",\n \"turn\",\n \"MozTurn\",\n \"WebkitTurn\",\n \"MSTurn\",\n \"OTurn\",\n \"unicodeBidi\",\n \"MozUnicodeBidi\",\n \"WebkitUnicodeBidi\",\n \"MSUnicodeBidi\",\n \"OUnicodeBidi\",\n \"unset\",\n \"MozUnset\",\n \"WebkitUnset\",\n \"MSUnset\",\n \"OUnset\",\n \"verticalAlign\",\n \"MozVerticalAlign\",\n \"WebkitVerticalAlign\",\n \"MSVerticalAlign\",\n \"OVerticalAlign\",\n \"vh\",\n \"MozVh\",\n \"WebkitVh\",\n \"MSVh\",\n \"OVh\",\n \"visibility\",\n \"MozVisibility\",\n \"WebkitVisibility\",\n \"MSVisibility\",\n \"OVisibility\",\n \"vmax\",\n \"MozVmax\",\n \"WebkitVmax\",\n \"MSVmax\",\n \"OVmax\",\n \"vmin\",\n \"MozVmin\",\n \"WebkitVmin\",\n \"MSVmin\",\n \"OVmin\",\n \"vw\",\n \"MozVw\",\n \"WebkitVw\",\n \"MSVw\",\n \"OVw\",\n \"whiteSpace\",\n \"MozWhiteSpace\",\n \"WebkitWhiteSpace\",\n \"MSWhiteSpace\",\n \"OWhiteSpace\",\n \"widows\",\n \"MozWidows\",\n \"WebkitWidows\",\n \"MSWidows\",\n \"OWidows\",\n \"width\",\n \"MozWidth\",\n \"WebkitWidth\",\n \"MSWidth\",\n \"OWidth\",\n \"willChange\",\n \"MozWillChange\",\n \"WebkitWillChange\",\n \"MSWillChange\",\n \"OWillChange\",\n \"wordBreak\",\n \"MozWordBreak\",\n \"WebkitWordBreak\",\n \"MSWordBreak\",\n \"OWordBreak\",\n \"wordSpacing\",\n \"MozWordSpacing\",\n \"WebkitWordSpacing\",\n \"MSWordSpacing\",\n \"OWordSpacing\",\n \"wordWrap\",\n \"MozWordWrap\",\n \"WebkitWordWrap\",\n \"MSWordWrap\",\n \"OWordWrap\",\n \"writingMode\",\n \"MozWritingMode\",\n \"WebkitWritingMode\",\n \"MSWritingMode\",\n \"OWritingMode\",\n \"zIndex\",\n \"MozZIndex\",\n \"WebkitZIndex\",\n \"MSZIndex\",\n \"OZIndex\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"flex\",\n \"MozFlex\",\n \"WebkitFlex\",\n \"MSFlex\",\n \"OFlex\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"overflowScrolling\",\n \"MozOverflowScrolling\",\n \"WebkitOverflowScrolling\",\n \"MSOverflowScrolling\",\n \"OOverflowScrolling\",\n \"userSelect\",\n \"MozUserSelect\",\n \"WebkitUserSelect\",\n \"MSUserSelect\",\n \"OUserSelect\"\n]\n","var properties = require('./css-properties.js');\nvar PropTypes = require('prop-types');\n\nmodule.exports = function(props, propName, componentName) {\n var styles = props[propName];\n if (!styles) {\n return;\n }\n\n var failures = [];\n Object.keys(styles).forEach(function(styleKey){\n if (properties.indexOf(styleKey) === -1) {\n failures.push(styleKey);\n }\n });\n if (failures.length) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + '. Has invalid keys ' + failures.join(', '));\n }\n};\n\nmodule.exports.isRequired = function(props, propName, componentName) {\n if (!props[propName]) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + ' is required');\n }\n return module.exports(props, propName, componentName);\n};\n\nmodule.exports.supportingArrays = PropTypes.oneOfType([\n PropTypes.arrayOf(module.exports),\n module.exports\n]);\n"],"names":["getDefaultCondition","type","query","params","reducer","evaluator","operator","getAlertingValidationMessage","async","transformations","targets","datasourceSrv","datasource","length","alertingNotSupported","templateVariablesNotSupported","target","dsRef","ds","get","meta","alerting","targetContainsTemplate","DynamicTableWithGuidelines","renderExpandedContent","props","styles","useStyles2","getStyles","item","index","items","className","cx","contentGuideline","guideline","undefined","renderPrefixHeader","relative","headerGuideline","renderPrefixCell","_","topGuideline","bottomGuideline","theme","css","colors","border","medium","breakpoints","down","RuleLocation","namespace","group","Icon","name","RuleDetails","rule","promRule","rulesSource","annotations","Object","entries","filter","value","trim","RuleDetailsActionButtons","wrapper","leftSide","labels","keys","DetailsField","label","horizontal","AlertLabels","RuleDetailsExpression","RuleDetailsAnnotations","rightSide","RuleDetailsDataSources","RuleDetailsMatchingInstances","up","RulesTable","rules","showGuidelines","emptyMessage","showGroupColumn","showSummaryColumn","wrapperClass","wrapperMargin","useMemo","seenKeys","map","ruleIdx","key","JSON","stringify","includes","push","id","data","columns","hasRuler","useHasRuler","renderCell","rulerRule","isDeleting","isCreating","RuleState","size","RuleHealth","Annotation","useColumns","TableComponent","DynamicTable","cols","isExpandable","spacing","background","secondary","shape","borderRadius","rulerRules","useUnifiedAlertingSelector","state","useCallback","rulesSourceName","GRAFANA_RULES_SOURCE_NAME","result","DashboardFailed","initError","useStyles","dashboardLoading","Alert","severity","AppNotificationSeverity","title","message","getMessageFromError","error","DashboardLoading","initPhase","dashboardLoadingText","VerticalGroup","HorizontalGroup","align","justify","Spinner","inline","Button","variant","icon","onClick","locationService","invisibleToVisible","keyframes","typography","lg","SaveLibraryPanelModal","panel","folderId","isUnsavedPrompt","onDismiss","onConfirm","onDiscard","searchString","setSearchString","useState","dashState","useAsync","searchHits","getConnectedDashboards","libraryPanel","uid","dash","filteredDashboards","setFilteredDashboards","useDebounce","dashName","toLowerCase","saveLibraryPanel","usePanelSave","getModalStyles","discardAndClose","Modal","isOpen","textInfo","connectedDashboards","Input","dashboardSearch","prefix","placeholder","onChange","e","currentTarget","loading","myTable","i","fill","then","discardPanelChanges","dispatch","getStore","getPanel","panelEditor","configRev","setDiscardChanges","skipPanelUpdate","modifiedPanel","panelToUpdate","repeatPanelId","exitPanelEditor","dashboard","getModel","getSourcePanel","shouldDiscardChanges","modifiedSaveModel","getSaveModel","sourcePanel","panelTypeChanged","panels","restoreModel","pick","pluginChanged","plugin","cleanUpKey","generateNewKey","panelModelAndPluginReady","setTimeout","getQueryRunner","useLastResultFrom","repeat","processRepeats","updateDuplicateLibraryPanels","render","cleanUpPanelState","closeEditor","UnsavedChangesModal","onSaveSuccess","SaveDashboardButton","DashboardPrompt","React","setState","original","useDispatch","originalPath","showModal","hideModal","useContext","ModalsContext","useEffect","timeoutId","pathname","getSaveModelClone","savedEventUnsub","appEvents","DashboardSavedEvent","clearTimeout","unsubscribe","handleUnload","event","ignoreChanges","hasChanges","preventDefault","returnValue","window","addEventListener","removeEventListener","when","location","panelInEdit","search","URLSearchParams","hasChanged","has","moveToBlockedLocationAfterReactStateUpdate","current","contextSrv","canSave","fromScript","fromFile","cleanDashboardFromIgnoredChanges","dashData","model","DashboardModel","expandRows","time","refresh","schemaVersion","timezone","iteration","scopedVars","legend","sort","sortDesc","each","getVariables","variable","options","filters","currentClean","originalClean","currentTimepicker","find","nav","originalTimepicker","now","displayName","usePanelLatestData","checkSchema","querySubscription","useRef","latestData","setLatestData","lastRev","lastUpdate","getData","subscribe","next","structureRev","Date","withFieldConfig","withTransforms","isLoading","LoadingState","hasSeries","series","InspectMetadataTab","metadataDatasource","components","MetadataInspector","InspectContent","tabs","isDataLoading","dataOptions","defaultTab","onDataOptionsChange","onClose","currentTab","setCurrentTab","InspectTab","activeTab","getTemplateSrv","replace","Drawer","subtitle","formatStats","width","expandable","scrollableContent","TabsBar","t","Tab","active","onChangeTab","InspectDataTab","onOptionsChange","timeZone","InspectJSONTab","InspectErrorTab","InspectStatsTab","getTimezone","QueryInspector","onRefreshQuery","request","queryCount","requestTime","endTime","startTime","formattedValueToString","getValueFormat","PanelInspector","connect","panelState","getPanelStateForModel","setDataOptions","useLocation","metaDs","frame","custom","dataSource","getDataSourceSrv","useDatasourceMetadata","supportsDataQuery","supplier","grafanaPanelInspectActionSupplier","getActions","canEdit","useInspectTabs","inspect","inspectTab","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread2","arguments","source","forEach","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","constructor","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","call","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","Super","NewTarget","this","Pane","_React$PureComponent","_super","_this$props","children","split","styleProps","style","eleRef","classes","flex","position","outline","height","display","assign","ref","join","propTypes","defaultProps","RESIZER_DEFAULT_CLASSNAME","Resizer","_React$Component","_onClick","_onDoubleClick","onDoubleClick","_onMouseDown","onMouseDown","_onTouchEnd","onTouchEnd","_onTouchStart","onTouchStart","resizerClassName","role","unFocus","document","selection","empty","getSelection","removeAllRanges","getDefaultSize","defaultSize","minSize","maxSize","draggedSize","min","max","Infinity","Math","SplitPane","_this","bind","onMouseMove","onTouchMove","onMouseUp","primary","initialSize","resized","pane1Size","pane2Size","instanceProps","getSizeUpdate","eventWithTouches","touches","clientX","clientY","allowResize","onDragStarted","_this$props2","step","_this$state","isPrimaryFirst","pane1","pane2","ref2","node","node2","getBoundingClientRect","positionDelta","abs","sizeDelta","parseInt","getComputedStyle","order","newMaxSize","splitPane","newSize","newPosition","_this$props3","onDragFinished","_this$state2","_this2","_this$props4","onResizerClick","onResizerDoubleClick","paneClassName","pane1ClassName","pane2ClassName","paneStyle","pane1StyleProps","pane1Style","pane2StyleProps","pane2Style","resizerStyle","_this$state3","disabledClass","resizerClassNamesIncludingDefault","concat","notNullChildren","c","removeNullChildren","overflow","MozUserSelect","WebkitUserSelect","msUserSelect","userSelect","flexDirection","left","right","bottom","minHeight","top","pane1Classes","pane2Classes","nextProps","prevState","newState","isPanel1Primary","isRequired","SplitPaneWrapper","PureComponent","createRef","rafToken","cancelAnimationFrame","requestAnimationFrame","forceUpdate","pane","body","cursor","updateUiState","Top","topPaneSize","innerHeight","rightPaneSize","innerWidth","componentDidMount","updateSplitPaneSize","componentWillUnmount","renderHorizontalSplit","leftPaneComponents","uiState","config","Array","isArray","resizerH","rightPaneVisible","rightPaneComponents","resizerV","Right","stylesFactory","handleColor","palette","blue95","paneSpacing","md","resizer","panelBorder","PickerRenderer","PickerToRender","variableAdapters","picker","PickerLabel","hide","VariableHide","labelOrName","elementId","description","Tooltip","content","placement","selectors","htmlFor","SubMenuItems","variables","visibleVariables","setVisibleVariables","mapStateToProps","angularPanelComponent","angularComponent","mapDispatchToProps","changePanelPlugin","AngularPanelOptionsUnconnected","super","loadAngularOptions","componentDidUpdate","prevProps","cleanUpAngularOptions","angularOptions","destroy","element","scope","getScope","$$childHead","panelCtrl","ctrl","initEditMode","onPluginTypeChange","pluginId","template","editorTabs","tab","defaultValue","store","loader","getAngularLoader","scopeProps","toggleOptionGroup","saveSectionOpenState","load","digest","elem","AngularPanelOptions","DynamicConfigValueEditor","property","context","registry","onRemove","isSystemOverride","searchQuery","useTheme","getIfExists","isCollapsible","FieldConfigProperty","labelCategory","category","editor","renderLabel","includeDescription","includeCounter","isExpanded","Label","textToHighlight","searchWords","highlightClassName","getItemsCount","Counter","IconButton","OptionsPaneCategory","renderTitle","isNested","isOpenDefault","override","Field","collapsibleOverrideEditor","formSpacingBase","OverrideCategoryTitle","matcherUi","overrideName","onOverrideRemove","propertyNames","properties","prop","matcherOptions","optionsToLabel","matcher","overrideDetails","sm","propertyPickerWrapper","textWeak","weight","regular","xl","unknownLabel","getFieldOverrideCategories","categories","currentFieldConfig","fieldConfig","fieldConfigRegistry","isEmpty","onOverrideChange","overrides","cloneDeep","onFieldConfigsChange","overrideIndex","splice","getSuggestions","getDataLinksVariableSuggestions","isOverride","idx","fieldMatchersUI","configPropertiesOptions","getOverrideProperties","isSystemOverrideGuard","forceOpen","OptionsPaneCategoryDescriptor","onMatcherConfigChange","onDynamicConfigValueAdd","registryItem","propertyConfig","addItem","OptionsPaneItemDescriptor","component","propIdx","registryItemForProperty","onPropertyChange","onPropertyRemove","skipField","ValuePicker","isFullWidth","menuPlacement","v","customRender","AddOverrideButtonContainer","excludeFromPicker","onOverrideAdd","list","hideFromOverrides","getBorderTopStyles","borderTop","weak","padding","LibraryPanelInformation","formatDate","isPanelModelLibraryPanel","info","libraryPanelInfo","updated","updatedBy","avatarUrl","userAvatar","src","alt","textSemiWeak","getLibraryPanelOptionsCategory","onPanelConfigChange","popularRank","onBlur","RepeatRowSelect","useSelector","getVariablesByKey","getLastKey","variableOptions","unshift","onSelectChange","option","Select","inputId","menuShouldPortal","getPanelFrameCategory","TextArea","Switch","transparent","checked","addCategory","itemsCount","links","DataLinksInlineEditor","getPanelLinksVariableSuggestions","showIf","RadioButtonGroup","repeatDirection","Boolean","maxPerRowOptions","maxPerRow","OptionSearchEngine","searchRegex","RegExp","sortedHits","collectHits","compareHit","x","sortedOverridesHits","optionHits","overrideHits","buildOverrideHitCategories","totalCount","getAllOptionsCount","hits","categoryNameMatch","test","rank","total","hit","parent","values","getRecentOptions","allOptions","popularOptions","OptionsPaneOptions","setSearchQuery","listMode","setListMode","OptionFilter","All","panelFrameOptions","vizOptions","libraryPanelOptions","getVisualizationOptions","instanceState","justOverrides","mainBoxElements","isSearching","optionRadioFilters","getOptionRadioFilters","engine","renderSearchHits","angularPanelCtrl","searchNotice","Overrides","Recent","showSearchRadioButtons","formBox","formRow","FilterInput","fullWidth","scrollWrapper","CustomScrollbar","autoHeightMin","mainBox","warning","text","searchBox","borderColor","closeButton","getPanelPluginWithFallback","panelType","plugins","getPanelPluginNotFound","VisualizationButton","isPanelOptionsVisible","ui","isVizPickerOpen","ButtonGroup","ToolbarButton","vizButton","tooltip","imgSrc","logos","small","toggleVizPicker","setPanelEditorUIState","ChangeLibraryPanelModal","isLibraryPanel","ConfirmModal","confirmText","dismissText","PanelLibraryOptionsGroup","showingAddPanelModal","setShowingAddPanelModal","changeToPanel","setChangeToPanel","panelFilter","setPanelFilter","onPanelFilterChange","getDashboardSrv","getCurrent","PanelTypeFilter","libraryPanelsView","LibraryPanelsView","currentPanelId","onClickCard","showSecondaryActions","AddLibraryPanelModal","initialFolderId","changeToLibraryPanel","panelsToCheckFirst","VisualizationSuggestionCard","suggestion","showTitle","innerStyles","outerStyles","renderWidth","renderHeight","aspectRatio","showHeight","transform","getPreviewDimensionsAndStyles","cardOptions","commonButtonProps","vizBox","imgBox","img","preview","previewModifier","renderContainer","PanelRenderer","hoverPane","transitions","duration","short","bodySmall","fontSize","fontWeightMedium","VisualizationSuggestions","suggestions","builder","VisualizationSuggestionsBuilder","importPanelPlugin","getSuggestionsSupplier","getSuggestionsForData","getList","dataSummary","fieldCount","skipDataQuery","hideFromList","a","b","score","VisualizationSuggestionScore","getAllSuggestions","setShowTitle","useLocalStorage","filteredSuggestions","regex","s","filterSuggestionsBySearch","disableHeight","columnCount","floor","previewWidth","filterRow","infoText","grid","gridTemplateColumns","heading","h5","margin","justifyContent","alignItems","paddingBottom","color","fontStyle","gridGap","marginBottom","VizTypePickerPlugin","isCurrent","disabled","PanelTypeCard","showBadge","VizTypePicker","pluginsList","getAllPanelPluginMeta","filteredPluginTypes","filterPluginList","EmptySearchResult","withModKey","metaKey","ctrlKey","altKey","VisualizationSelectPane","LS_VISUALIZATION_SELECT_TAB_KEY","VisualizationSelectPaneTab","searchRef","onVizChange","pluginChange","focus","radioOptions","openWrapper","searchRow","autoFocus","customFieldMargin","scrollContent","gray33","bg1","border1","OptionsPane","onPanelOptionsChanged","vizButtonWrapper","optionsWrapper","legacyOptions","PanelEditorTableView","setOptions","frameIndex","showHeader","showTypeIcons","timeSrv","getTimeSrv","timeData","applyPanelTimeOverrides","timeRange","sub","events","RefreshEvent","runAllPanelQueries","PanelChrome","PanelHeaderCorner","PanelNotSupported","onBackToQueries","PanelEditorTabId","Layout","marginTop","StateHistory","stateHistoryItems","panelId","onRefresh","getBackendSrv","post","dashboardId","stateModel","alertDef","ConfirmButton","clearHistory","confirmVariant","stateClass","iconClass","alertName","TestRuleResult","allNodesExpanded","testRuleResponse","formattedJson","AppEvents","collapse","expand","testRule","dashPanel","payload","LoadingPlaceholder","openNodes","getNrOfOpenNodes","onToggleExpand","renderExpandCollapse","ClipboardButton","getText","getTextForClipboard","onClipboardCopy","onClipboardSuccess","JSONFormatter","json","open","onDidRender","setFormattedJson","UnConnectedAlertTab","validationMessage","showStateHistory","showDeleteConfirmation","showTestRule","_enableAlert","onToggleModal","onClickBackdrop","alert","thresholds","alertState","loadAlertTab","getReactAlertPanelCtrl","EventBusSrv","hasTransformations","buttonIcon","onAddAlert","buttonTitle","Container","EmptyListCTA","renderTestRule","renderDeleteConfirmation","renderStateHistory","AlertTab","NewRuleFromPanelButton","formValues","panelToRuleFormValues","ruleFormUrl","urlUtil","defaults","returnTo","LinkButton","href","usePanelCombinedRules","poll","promRuleRequest","promRules","initialAsyncRequestState","rulerRuleRequest","fetch","fetchPromRulesAction","dashboardUID","fetchRulerRulesAction","interval","setInterval","RULE_LIST_POLL_INTERVAL_MS","clearInterval","errors","err","combinedNamespaces","useCombinedRuleNamespaces","flatMap","ns","groups","String","newButton","innerWrapper","noRulesWrapper","permissions","getRulesPermissions","canCreateRules","PanelAlertTab","otherProps","counter","DOCS_LINKS","DocsId","TransformationEditor","debugMode","uiConfig","configs","input","setInput","output","setOutput","inputTransforms","slice","transformation","outputTransforms","inputSubscription","transformDataFrame","outputSubscription","pipe","mergeMap","before","defaultOptions","opts","debugWrapper","debug","debugTitle","debugJson","debugSeparator","debugBorder","isLight","gray85","gray15","semibold","textBlue","iconRow","xs","xxs","fontFamily","monospace","white","gray05","radius","TransformationOperationRow","showDebug","toggleDebug","useToggle","showHelp","toggleHelp","onDisableToggle","QueryOperationRow","draggable","actions","PluginStateInfo","QueryOperationAction","OperationRowHelp","markdown","prepMarkdown","help","TransformationOperationRows","standardTransformersRegistry","UnThemedTransformationsEditor","lower","filtered","indexOf","onTransformationAdd","keyCode","showPicker","stopPropagation","nextId","existingIds","startsWith","match","selectable","getTransformationNextId","from","destination","startIndex","endIndex","update","removed","onDragEnd","droppableId","direction","provided","innerRef","droppableProps","onTransformationRemove","onTransformationChange","ids","buildTransformationIds","transformationCounters","transformationIds","subscription","panelData","setTransformations","renderTransformsPicker","suffix","xforms","surface","noTransforms","grow","LocalStorageValueProvider","storageKey","isDismissed","rel","onSearchChange","onKeyDown","onSearchKeyDown","TransformationCard","hasTransforms","renderTransformationEditors","Card","card","TransformationsEditor","withTheme","PanelEditorQueries","updateQueries","onRunQueries","buildQueryOptions","default","datasourceSettings","getDatasourceSrv","getInstanceSettings","cacheTimeout","queryOptions","isDefault","queries","maxDataPoints","minInterval","timeFrom","shift","timeShift","hideTimeOverride","getDataSourceRef","QueryGroup","queryRunner","onOpenQueryInspector","PanelEditorTabs","useForceUpdate","eventSubs","Subscription","add","PanelQueriesChangedEvent","PanelTransformationsChangedEvent","tabBar","hideBorder","getCounter","renderAlertTab","TabContent","tabContent","AlertTabIndex","getTransformations","getPanelEditorTabs","memoizeOne","alertingEnabled","unifiedAlertingEnabled","getConfig","hasRuleReadPermissions","read","isAlertingAvailable","isGraph","isTimeseries","initPanelEditor","initEditPanel","initPanelState","updateEditorInitState","updatePanelEditorUIState","nextState","PANEL_EDITOR_UI_STATE_STORAGE_KEY","console","updateTimeZoneForSession","toggleTableView","notifyApp","connector","ownProps","initDone","tableViewEnabled","PanelEditorUnconnected","showSaveLibraryPanelModal","editPanel","showCategory","onBack","editview","ShowModalReactEvent","SaveDashboardProxy","getLibraryPanelConnectedDashboards","saveAndRefreshLibraryPanel","createPanelLibrarySuccessNotification","createPanelLibraryErrorNotification","statusText","updateFieldConfig","updateOptions","configKey","setProperty","mode","PanelOptionsChangedEvent","triggerForceUpdate","renderPanel","isOnlyPanel","mainPaneWrapper","renderPanelToolbar","panelWrapper","panelSize","calculatePanelSize","centeringContainer","DashboardPanel","stateKey","isEditing","isViewing","lazy","renderPanelAndEditor","panelPane","tabsWrapper","renderTemplateVariables","variablesWrapper","panelToolbar","InlineSwitch","showLabel","onToggleTableView","displayModes","onDisplayModeChange","DashNavTimeControls","onChangeTimeZone","renderEditorActions","editorActions","onOpenDashboardSettings","onSaveLibraryPanel","onSaveDashboard","ModalsController","UnlinkModal","pop","renderOptionsPane","onFieldConfigChange","onPanelConfigChanged","PageToolbar","onGoBack","onGoBackToDashboard","verticalSplitPanesWrapper","onConfirmAndDismissLibarayPanelModel","PanelEditor","zIndex","sidemenu","dashboardBg","toolbarLeft","AnnotationPicker","annotation","onEnabledChanged","setLoading","started","getStream","AnnotationQueryStarted","stopped","AnnotationQueryFinished","InlineFieldRow","InlineField","enable","indicator","LoadingIndicator","onCancel","getDashboardQueryRunner","cancel","Annotations","onAnnotationChanged","visibleAnnotations","setVisibleAnnotations","DashboardLinksDashboard","link","linkInfo","listRef","dropdownCssClass","setDropdownCssClass","opened","setOpened","resolvedLinks","useResolvedLinks","buttonStyle","useLayoutEffect","wrapperPos","parentElement","pos","getDropdownLocationCssClass","asDropdown","LinkElement","marginRight","resolvedLink","url","targetBlank","rest","tags","dependencies","limit","tag","searchForTags","getLinkSrv","sanitize","sanitizeUrl","searchHit","getLinkUrl","resolveLinks","DashboardLinks","useEffectOnce","TimeRangeUpdatedEvent","getAnchorInfo","linkElement","linkIconMap","SubMenuUnConnected","updatedAnnotation","startRefresh","isSubMenuVisible","onAnnotationStateChanged","SubMenu","templatingState","getVariablesState","getSubMenuVariables","addPanel","AddPanelWidget","addPanelView","setAddPanelView","copiedPanelPlugins","chain","copiedPanels","copiedPanelJson","LS_PANEL_COPY_KEY","copiedPanel","parse","pluginInfo","pluginCopy","sortBy","getCopiedPanelPlugins","callToAction","AddPanelWidgetHandle","evt","removePanel","LibraryPanelsSearch","panelInfo","gridPos","newPanel","toPanelModelLibraryPanel","LibraryPanelsSearchVariant","showPanelFilter","actionsWrapper","CardButton","reportInteraction","y","w","h","onCreateNewPanel","panelPluginInfo","onPasteCopiedPanel","headerRow","backButton","pulsate","canvas","main","tinycolor","darken","toHexString","noMargin","RowOptionsForm","onUpdate","newRepeat","setNewRepeat","onChangeRepeat","Form","defaultValues","onSubmit","formData","register","RowOptionsModal","modal","RowOptionsButton","onUpdateChange","DashboardRow","toggleRow","collapsed","ShowConfirmModalEvent","altActionText","removeRow","onAltAction","onVariableUpdated","classNames","count","onToggle","onDelete","cleanAndRemoveMany","DashboardGridUnconnected","newLayout","newPos","panelMap","updateGridPos","sortPanelsByGridPos","isLayoutInitialized","layout","oldItem","newItem","DashboardPanelsChangedEvent","buildLayout","log","panelPos","GRID_COLUMN_COUNT","isResizable","isDraggable","getPanelScreenPos","gridWidth","lastPanelBottom","GRID_CELL_VMARGIN","translateGridHeightToScreenHeight","renderPanels","panelElements","windowHeight","windowWidth","panelClasses","GrafanaGridItem","containerPadding","useCSSTransforms","rowHeight","GRID_CELL_HEIGHT","draggableHandle","onDragStop","onResize","onResizeStop","onLayoutChange","divProps","parseFloat","gridHeight","DashboardGrid","initDashboard","cleanUpDashboardAndVariables","cancelVariables","templateVarsChangedInUrl","UnthemedDashboardPage","getCleanState","tr","liveNow","liveTimer","updateScrollTop","scrollElement","viewPanel","showLoadingState","rememberScrollTop","panelNotFound","editPanelAccessDenied","forceRouteReloadCounter","history","routeReloadCounter","closeDashboard","queryParams","urlSlug","slug","urlUid","urlType","urlFolderId","routeName","route","fixUrl","updateLiveTimer","Branding","prevUrlParams","urlParams","to","updateTimeRangeFromUrl","setAutoRefresh","templateVarChanges","findTemplateVarChanges","dashboardWatcher","publish","PanelEditEnteredEvent","PanelEditExitedEvent","createErrorNotification","urlEditPanelId","urlViewPanelId","getPanelByUrlId","canEditPanel","scrollTop","initViewPanel","exitViewPanel","getInspectPanel","inspectPanelId","inspectPanel","getPanelById","kioskMode","getKioskMode","containerClassNames","classnames","dashboardContainer","showSubMenu","KioskMode","DashNav","folderTitle","isFullscreen","onAddPanel","hideTimePicker","timepicker","hidden","dashboardScroll","scrollRefCallback","setScrollRef","hideHorizontalTrack","updateAfterMountMs","dashboardContent","DashboardSettings","D","contentPadding","DashboardPage","withTheme2","_typeof","Symbol","iterator","exports","_react","_interopRequireDefault","_propTypes","_reactDraggable","_reactResizable","_utils","_calculateUtils","_ReactGridLayoutPropTypes","_clsx","__esModule","_objectSpread","hasNativeReflectConstruct","valueOf","GridItem","_len","args","_key","resizing","dragging","_ref","onDragStart","transformScale","offsetParent","parentRect","clientRect","cLeft","pLeft","cTop","pTop","scrollLeft","_calcXY","calcXY","getPositionParams","_ref2","deltaX","deltaY","onDrag","Error","isBounded","containerWidth","positionParams","bottomBoundary","clientHeight","calcGridItemWHPx","clamp","colWidth","calcGridColWidth","rightBoundary","_calcXY2","_ref3","_this$state$dragging","_calcXY3","callbackData","onResizeHandler","droppingPosition","oldPosition","calcGridItemPosition","fastPositionEqual","moveDroppingItem","elementRef","prevDroppingPosition","shouldDrag","maxRows","_this$props5","usePercentages","setTransform","setTopLeft","perc","child","createElement","DraggableCore","onStart","onStop","handle","scale","nodeRef","_this$props6","minW","minH","maxW","maxH","resizeHandles","resizeHandle","maxWidth","mins","maxes","minConstraints","maxConstraints","Resizable","draggableOpts","onResizeStart","_ref4","handlerName","handler","_this$props7","_this$props8","_calcWH","calcWH","_this$props9","Children","only","newChild","cloneElement","static","dropping","cssTransforms","createStyle","mixinResizable","mixinDraggable","Component","number","array","propName","string","resizeHandleAxesType","resizeHandleType","func","bool","nodeInterop","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","hasOwnProperty","desc","set","_interopRequireWildcard","_lodash","_GridItem","WeakMap","cacheBabelInterop","cacheNodeInterop","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","done","_iterableToArrayLimit","_nonIterableRest","minLen","n","len","arr2","layoutClassName","isFirefox","navigator","userAgent","ReactGridLayout","activeDrag","synchronizeLayoutWithChildren","compactType","allowOverlap","mounted","oldDragItem","oldLayout","oldResizeItem","droppingDOMNode","l","getLayoutItem","cloneLayoutItem","preventCollision","moveElement","compact","onLayoutMaybeChanged","_ref5","_withLayoutItem","withLayoutItem","hasCollisions","collisions","getAllCollisions","layoutItem","leastX","leastY","Number","isFinite","_withLayoutItem2","_ref6","_e$nativeEvent$target","nativeEvent","classList","contains","droppingItem","onDropDragOver","onDragOverResult","removeDroppingPlaceholder","finalDroppingItem","_e$nativeEvent","layerX","layerY","_this$state$droppingP","calculatedPosition","dragEnterCounter","onDrop","newLayoutBase","propsLayout","childrenEqual","fastRGLPropsEqual","autoSize","nbRow","containerPaddingY","isDroppingItem","draggableCancel","resizable","resizeHandlesOptions","bounded","isDroppable","mergedClassName","mergedStyle","containerHeight","noop","onDragLeave","onDragEnter","onDragOver","processGridItem","verticalCompact","arrayOf","oneOf","oneOfType","_default","any","_responsiveUtils","_ReactGridLayout","_excluded","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","getIndentationValue","param","breakpoint","ResponsiveReactGridLayout","generateInitialState","layouts","_cols","findOrGenerateResponsiveLayout","getBreakpointFromWidth","colNo","getColsFromBreakpoint","onWidthChange","newBreakpoint","lastBreakpoint","newCols","newLayouts","cloneLayout","onBreakpointChange","other","validateLayout","gridUnits","colOrRowSize","marginPx","round","num","lowerBound","upperBound","out","ComposedComponent","_class","WidthProvider","HTMLElement","offsetWidth","onWindowResize","measureBeforeMount","module","isEqualImpl","breakpointsSorted","sortBreakpoints","breakpointsAbove","correctBounds","sorted","matching","breakpointName","collides","compactItem","getFirstCollision","getStatics","modifyLayout","moveElementAwayFromCollision","translate","WebkitTransform","MozTransform","msTransform","OTransform","sortLayoutItems","sortLayoutItemsByColRow","sortLayoutItemsByRowCol","initialLayout","exists","g","_grid","correctedLayout","itemKey","cb","bottomY","moved","l1","l2","compareWith","heightWidth","resolveCompactionCollision","moveToCoord","axis","sizeProp","otherItem","fullLayout","compactH","bounds","collidesWith","isUserAction","oldX","oldY","reverse","collision","itemToMove","compactV","fakeItem","contextName","subProps","j","utils","Responsive","handleRefs","lastHandleRect","slack","_proto","resetData","runConstraints","lockAspectRatio","ratio","deltaW","deltaH","oldW","oldH","slackW","slackH","resizeHandler","canDragX","canDragY","axisV","axisH","handleRect","_this2$runConstraints","dimensionsChanged","persist","renderResizeHandle","handleAxis","_this3","handleSize","_this3$handleRefs$han","resizableProps","_Resizable","_propTypes2","ResizableBox","propsWidth","propsHeight","getDerivedStateFromProps","allowAnyClick","enableUserSelectHack","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","root","Function","freeExports","nodeType","freeModule","moduleExports","freeProcess","process","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","predicate","mapToArray","setToArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","exec","IE_PROTO","nativeObjectToString","reIsNative","Buffer","Uint8Array","symToStringTag","toStringTag","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","arg","DataView","getNative","Map","Promise","Set","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","clear","entry","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","eq","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsEqual","bitmask","customizer","stack","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","byteLength","byteOffset","buffer","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isObject","isMasked","isFunction","baseKeys","Ctor","proto","arrLength","seen","arrValue","othIndex","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getSymbols","getMapData","getValue","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","symbol","ArrayBuffer","resolve","ctorString","isLength","baseUnary","PropTypes","componentName","failures","styleKey","supportingArrays"],"sourceRoot":""}