{"version":3,"file":"js/chunk-vendors-legacy.5ddf4c06.js","mappings":"qHAMe,SAASA,EACtBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAqBIC,EArBAC,EAAmC,oBAAlBT,EACjBA,EAAcS,QACdT,EAsDJ,GAnDIC,IACFQ,EAAQR,OAASA,EACjBQ,EAAQP,gBAAkBA,EAC1BO,EAAQC,WAAY,GAIlBP,IACFM,EAAQE,YAAa,GAInBN,IACFI,EAAQG,SAAW,UAAYP,GAI7BC,GACFE,EAAO,SAAUK,GAEfA,EACEA,GACCC,KAAKC,QAAUD,KAAKC,OAAOC,YAC3BF,KAAKG,QAAUH,KAAKG,OAAOF,QAAUD,KAAKG,OAAOF,OAAOC,WAEtDH,GAA0C,qBAAxBK,sBACrBL,EAAUK,qBAGRd,GACFA,EAAae,KAAKL,KAAMD,GAGtBA,GAAWA,EAAQO,uBACrBP,EAAQO,sBAAsBC,IAAIf,IAKtCG,EAAQa,aAAed,GACdJ,IACTI,EAAOD,EACH,WACAH,EAAae,KACXL,MACCL,EAAQE,WAAaG,KAAKG,OAASH,MAAMS,MAAMC,SAASC,aAG3DrB,GAGFI,EACF,GAAIC,EAAQE,WAAY,CAGtBF,EAAQiB,cAAgBlB,EAExB,IAAImB,EAAiBlB,EAAQR,OAC7BQ,EAAQR,OAAS,SAAmC2B,EAAGf,GAErD,OADAL,EAAKW,KAAKN,GACHc,EAAeC,EAAGf,QAEtB,CAEL,IAAIgB,EAAWpB,EAAQqB,aACvBrB,EAAQqB,aAAeD,EACnB,GAAGE,OAAOF,EAAUrB,GACpB,CAACA,GAIT,MAAO,CACLwB,QAAShC,EACTS,QAASA,G,sDC/Fb,IAAIwB,EAAa,EAAQ,KACrBC,EAAc,EAAQ,MAEtBC,EAAaC,UAGjBC,EAAOL,QAAU,SAAUM,GACzB,GAAIL,EAAWK,GAAW,OAAOA,EACjC,MAAMH,EAAWD,EAAYI,GAAY,wB,qBCR3C,IAAIC,EAAgB,EAAQ,MACxBL,EAAc,EAAQ,MAEtBC,EAAaC,UAGjBC,EAAOL,QAAU,SAAUM,GACzB,GAAIC,EAAcD,GAAW,OAAOA,EACpC,MAAMH,EAAWD,EAAYI,GAAY,2B,qBCR3C,IAAIL,EAAa,EAAQ,KAErBO,EAAUC,OACVN,EAAaC,UAEjBC,EAAOL,QAAU,SAAUM,GACzB,GAAuB,iBAAZA,GAAwBL,EAAWK,GAAW,OAAOA,EAChE,MAAMH,EAAW,aAAeK,EAAQF,GAAY,qB,qBCPtD,IAAII,EAAkB,EAAQ,MAC1BC,EAAS,EAAQ,IACjBC,EAAiB,UAEjBC,EAAcH,EAAgB,eAC9BI,EAAiBC,MAAMC,eAIQC,GAA/BH,EAAeD,IACjBD,EAAeE,EAAgBD,EAAa,CAC1CK,cAAc,EACdC,MAAOR,EAAO,QAKlBN,EAAOL,QAAU,SAAUoB,GACzBN,EAAeD,GAAaO,IAAO,I,kCCjBrC,IAAIC,EAAS,eAIbhB,EAAOL,QAAU,SAAUsB,EAAGC,EAAOC,GACnC,OAAOD,GAASC,EAAUH,EAAOC,EAAGC,GAAOE,OAAS,K,qBCNtD,IAAIC,EAAgB,EAAQ,MAExBvB,EAAaC,UAEjBC,EAAOL,QAAU,SAAU2B,EAAIC,GAC7B,GAAIF,EAAcE,EAAWD,GAAK,OAAOA,EACzC,MAAMxB,EAAW,0B,qBCNnB,IAAI0B,EAAW,EAAQ,KAEnBrB,EAAUC,OACVN,EAAaC,UAGjBC,EAAOL,QAAU,SAAUM,GACzB,GAAIuB,EAASvB,GAAW,OAAOA,EAC/B,MAAMH,EAAWK,EAAQF,GAAY,uB,iBCPvCD,EAAOL,QAAgC,oBAAf8B,aAAiD,oBAAZC,U,qBCA7D,IAAIC,EAAQ,EAAQ,MAEpB3B,EAAOL,QAAUgC,GAAM,WACrB,GAA0B,mBAAfF,YAA2B,CACpC,IAAIG,EAAS,IAAIH,YAAY,GAEzBI,OAAOC,aAAaF,IAASC,OAAOtB,eAAeqB,EAAQ,IAAK,CAAEd,MAAO,S,iCCNjF,IAgCIiB,EAAMC,EAAaT,EAhCnBU,EAAsB,EAAQ,MAC9BC,EAAc,EAAQ,MACtBC,EAAS,EAAQ,MACjBvC,EAAa,EAAQ,KACrB4B,EAAW,EAAQ,KACnBY,EAAS,EAAQ,MACjBC,EAAU,EAAQ,KAClBxC,EAAc,EAAQ,MACtByC,EAA8B,EAAQ,MACtCC,EAAgB,EAAQ,MACxBhC,EAAiB,UACjBc,EAAgB,EAAQ,MACxBmB,EAAiB,EAAQ,MACzBC,EAAiB,EAAQ,MACzBpC,EAAkB,EAAQ,MAC1BqC,EAAM,EAAQ,MAEdC,EAAYR,EAAOQ,UACnBC,EAAqBD,GAAaA,EAAUhC,UAC5CkC,EAAoBV,EAAOU,kBAC3BC,EAA6BD,GAAqBA,EAAkBlC,UACpEoC,EAAaJ,GAAaH,EAAeG,GACzCK,EAAsBJ,GAAsBJ,EAAeI,GAC3DK,EAAkBpB,OAAOlB,UACzBZ,EAAYoC,EAAOpC,UAEnBmD,EAAgB7C,EAAgB,eAChC8C,EAAkBT,EAAI,mBACtBU,EAA0BV,EAAI,2BAE9BW,EAA4BpB,KAAyBQ,GAA4C,UAA1BJ,EAAQF,EAAOmB,OACtFC,GAA2B,EAG3BC,EAA6B,CAC/Bb,UAAW,EACXc,WAAY,EACZZ,kBAAmB,EACnBa,WAAY,EACZC,YAAa,EACbC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,aAAc,GAGZC,EAA8B,CAChCC,cAAe,EACfC,eAAgB,GAGdC,EAAS,SAAgB7C,GAC3B,IAAKE,EAASF,GAAK,OAAO,EAC1B,IAAI8C,EAAQ/B,EAAQf,GACpB,MAAiB,aAAV8C,GACFhC,EAAOoB,EAA4BY,IACnChC,EAAO4B,EAA6BI,IAGvCC,EAAe,SAAU/C,GAC3B,IAAKE,EAASF,GAAK,OAAO,EAC1B,IAAI8C,EAAQ/B,EAAQf,GACpB,OAAOc,EAAOoB,EAA4BY,IACrChC,EAAO4B,EAA6BI,IAGvCE,EAAc,SAAUhD,GAC1B,GAAI+C,EAAa/C,GAAK,OAAOA,EAC7B,MAAMvB,EAAU,gCAGdwE,EAAyB,SAAUC,GACrC,GAAI5E,EAAW4E,MAAQ/B,GAAkBpB,EAAc0B,EAAYyB,IAAK,OAAOA,EAC/E,MAAMzE,EAAUF,EAAY2E,GAAK,sCAG/BC,EAAyB,SAAUC,EAAKC,EAAUC,EAAQxG,GAC5D,GAAK8D,EAAL,CACA,GAAI0C,EAAQ,IAAK,IAAIC,KAASrB,EAA4B,CACxD,IAAIsB,EAAwB3C,EAAO0C,GACnC,GAAIC,GAAyB1C,EAAO0C,EAAsBnE,UAAW+D,GAAM,WAClEI,EAAsBnE,UAAU+D,GACvC,MAAOK,GAEP,IACED,EAAsBnE,UAAU+D,GAAOC,EACvC,MAAOK,MAGRhC,EAAoB0B,KAAQE,GAC/BrC,EAAcS,EAAqB0B,EAAKE,EAASD,EAC7CtB,GAA6BT,EAAmB8B,IAAQC,EAAUvG,KAItE6G,EAA+B,SAAUP,EAAKC,EAAUC,GAC1D,IAAIC,EAAOC,EACX,GAAK5C,EAAL,CACA,GAAIO,EAAgB,CAClB,GAAImC,EAAQ,IAAKC,KAASrB,EAExB,GADAsB,EAAwB3C,EAAO0C,GAC3BC,GAAyB1C,EAAO0C,EAAuBJ,GAAM,WACxDI,EAAsBJ,GAC7B,MAAOK,IAEX,GAAKhC,EAAW2B,KAAQE,EAKjB,OAHL,IACE,OAAOrC,EAAcQ,EAAY2B,EAAKE,EAASD,EAAWtB,GAA6BN,EAAW2B,IAAQC,GAC1G,MAAOI,KAGb,IAAKF,KAASrB,EACZsB,EAAwB3C,EAAO0C,IAC3BC,GAA2BA,EAAsBJ,KAAQE,GAC3DrC,EAAcuC,EAAuBJ,EAAKC,KAKhD,IAAK5C,KAAQyB,EACXxB,EAAcG,EAAOJ,GACrBR,EAAYS,GAAeA,EAAYrB,UACnCY,EAAWe,EAA4Bf,EAAW6B,EAAyBpB,GAC1EqB,GAA4B,EAGnC,IAAKtB,KAAQiC,EACXhC,EAAcG,EAAOJ,GACrBR,EAAYS,GAAeA,EAAYrB,UACnCY,GAAWe,EAA4Bf,EAAW6B,EAAyBpB,GAIjF,KAAKqB,IAA8BzD,EAAWmD,IAAeA,IAAemC,SAASvE,aAEnFoC,EAAa,WACX,MAAMhD,EAAU,yBAEdsD,GAA2B,IAAKtB,KAAQyB,EACtCrB,EAAOJ,IAAOU,EAAeN,EAAOJ,GAAOgB,GAInD,KAAKM,IAA8BL,GAAuBA,IAAwBC,KAChFD,EAAsBD,EAAWpC,UAC7B0C,GAA2B,IAAKtB,KAAQyB,EACtCrB,EAAOJ,IAAOU,EAAeN,EAAOJ,GAAMpB,UAAWqC,GAS7D,GAJIK,GAA6Bb,EAAeM,KAAgCE,GAC9EP,EAAeK,EAA4BE,GAGzCd,IAAgBE,EAAOY,EAAqBE,GAK9C,IAAKnB,KAJLwB,GAA2B,EAC3BhD,EAAeyC,EAAqBE,EAAe,CAAEiC,IAAK,WACxD,OAAO3D,EAAS/C,MAAQA,KAAK0E,QAAmBvC,KAErC4C,EAAgCrB,EAAOJ,IAClDO,EAA4BH,EAAOJ,GAAOoB,EAAiBpB,GAI/D/B,EAAOL,QAAU,CACf0D,0BAA2BA,EAC3BD,wBAAyBA,EACzBD,gBAAiBI,GAA4BJ,EAC7CmB,YAAaA,EACbC,uBAAwBA,EACxBE,uBAAwBA,EACxBQ,6BAA8BA,EAC9Bd,OAAQA,EACRE,aAAcA,EACdtB,WAAYA,EACZC,oBAAqBA,I,kCCjLvB,IAAIb,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MACtBlD,EAAc,EAAQ,MACtBD,EAAsB,EAAQ,MAC9BoD,EAAe,EAAQ,MACvB/C,EAA8B,EAAQ,MACtCgD,EAAiB,EAAQ,MACzB3D,EAAQ,EAAQ,MAChB4D,EAAa,EAAQ,MACrBC,EAAsB,EAAQ,MAC9BC,EAAW,EAAQ,MACnBC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,MAClBnD,EAAiB,EAAQ,MACzBC,EAAiB,EAAQ,MACzBmD,EAAsB,UACtBrF,EAAiB,UACjBsF,EAAY,EAAQ,MACpBC,EAAa,EAAQ,MACrBC,EAAiB,EAAQ,MACzBC,EAAsB,EAAQ,MAE9BC,EAAuBZ,EAAaa,OACpCC,EAA6Bd,EAAae,aAC1CC,EAAmBL,EAAoBb,IACvCmB,EAAmBN,EAAoBO,IACvCC,EAAe,cACfC,EAAY,WACZC,EAAY,YACZC,EAAe,eACfC,EAAc,cACdC,EAAoB1E,EAAOqE,GAC3BM,EAAeD,EACfE,EAAuBD,GAAgBA,EAAaJ,GACpDM,EAAY7E,EAAOsE,GACnBQ,EAAoBD,GAAaA,EAAUN,GAC3CzD,EAAkBpB,OAAOlB,UACzBD,EAAQyB,EAAOzB,MACfwG,EAAa/E,EAAO+E,WACpBC,EAAO/B,EAAYS,GACnBuB,EAAUhC,EAAY,GAAGgC,SAEzBC,EAAc1B,EAAQ2B,KACtBC,EAAgB5B,EAAQ6B,OAExBC,EAAW,SAAUC,GACvB,MAAO,CAAU,IAATA,IAGNC,EAAY,SAAUD,GACxB,MAAO,CAAU,IAATA,EAAeA,GAAU,EAAI,MAGnCE,EAAY,SAAUF,GACxB,MAAO,CAAU,IAATA,EAAeA,GAAU,EAAI,IAAMA,GAAU,GAAK,IAAMA,GAAU,GAAK,MAG7EG,EAAc,SAAUjG,GAC1B,OAAOA,EAAO,IAAM,GAAKA,EAAO,IAAM,GAAKA,EAAO,IAAM,EAAIA,EAAO,IAGjEkG,EAAc,SAAUJ,GAC1B,OAAOL,EAAYK,EAAQ,GAAI,IAG7BK,EAAc,SAAUL,GAC1B,OAAOL,EAAYK,EAAQ,GAAI,IAG7BM,EAAY,SAAUhG,EAAajB,GACrCR,EAAeyB,EAAY0E,GAAY3F,EAAK,CAAEoE,IAAK,WAAc,OAAOkB,EAAiB5H,MAAMsC,OAG7FoE,EAAM,SAAU8C,EAAMC,EAAOhH,EAAOiH,GACtC,IAAIC,EAAW1C,EAAQxE,GACnBmH,EAAQhC,EAAiB4B,GAC7B,GAAIG,EAAWF,EAAQG,EAAMC,WAAY,MAAMpB,EAAWN,GAC1D,IAAI2B,EAAQlC,EAAiBgC,EAAMzG,QAAQ2G,MACvCC,EAAQJ,EAAWC,EAAMI,WACzBnB,EAAOxB,EAAWyC,EAAOC,EAAOA,EAAQN,GAC5C,OAAOC,EAAiBb,EAAOF,EAAQE,IAGrCf,EAAM,SAAU0B,EAAMC,EAAOhH,EAAOwH,EAAY5H,EAAOqH,GACzD,IAAIC,EAAW1C,EAAQxE,GACnBmH,EAAQhC,EAAiB4B,GAC7B,GAAIG,EAAWF,EAAQG,EAAMC,WAAY,MAAMpB,EAAWN,GAI1D,IAHA,IAAI2B,EAAQlC,EAAiBgC,EAAMzG,QAAQ2G,MACvCC,EAAQJ,EAAWC,EAAMI,WACzBnB,EAAOoB,GAAY5H,GACd6H,EAAI,EAAGA,EAAIT,EAAOS,IAAKJ,EAAMC,EAAQG,GAAKrB,EAAKa,EAAiBQ,EAAIT,EAAQS,EAAI,IAG3F,GAAK1G,EA8FE,CACL,IAAI2G,GAA8B3C,GAAwBY,EAAkBgC,OAASrC,EAErF,GAAK7E,GAAM,WACTkF,EAAkB,OACblF,GAAM,WACX,IAAIkF,GAAmB,QACnBlF,GAAM,WAIV,OAHA,IAAIkF,EACJ,IAAIA,EAAkB,KACtB,IAAIA,EAAkBiC,KACfF,KAAgCzC,KAiB9ByC,IAA+BzC,GACxC7D,EAA4BuE,EAAmB,OAAQL,OAjBrD,CAEFM,EAAe,SAAqB1F,GAElC,OADAmE,EAAW9G,KAAMsI,GACV,IAAIF,EAAkBnB,EAAQtE,KAGvC0F,EAAaJ,GAAaK,EAE1B,IAAK,IAA0DhG,GAAtDgI,GAAOnD,EAAoBiB,GAAoBmC,GAAI,EAAQD,GAAK3H,OAAS4H,KACzEjI,GAAMgI,GAAKC,SAASlC,GACzBxE,EAA4BwE,EAAc/F,GAAK8F,EAAkB9F,KAIrEgG,EAAqBkC,YAAcnC,EAMjCrE,GAAkBD,EAAeyE,KAAuBhE,GAC1DR,EAAewE,EAAmBhE,GAIpC,IAAIiG,GAAW,IAAIlC,EAAU,IAAIF,EAAa,IAC1CqC,GAAW/D,EAAY6B,EAAkBmC,SAC7CF,GAASE,QAAQ,EAAG,YACpBF,GAASE,QAAQ,EAAG,aAChBF,GAASG,QAAQ,IAAOH,GAASG,QAAQ,IAAI/D,EAAe2B,EAAmB,CACjFmC,QAAS,SAAiBX,EAAY3H,GACpCqI,GAAS1K,KAAMgK,EAAY3H,GAAS,IAAM,KAE5CwI,SAAU,SAAkBb,EAAY3H,GACtCqI,GAAS1K,KAAMgK,EAAY3H,GAAS,IAAM,MAE3C,CAAEyI,QAAQ,SA9IbzC,EAAe,SAAqB1F,GAClCmE,EAAW9G,KAAMsI,GACjB,IAAIuB,EAAa5C,EAAQtE,GACzBkF,EAAiB7H,KAAM,CACrB8J,MAAOpB,EAAKzG,EAAM4H,GAAa,GAC/BA,WAAYA,IAETpG,IAAazD,KAAK6J,WAAaA,IAGtCvB,EAAuBD,EAAaJ,GAEpCM,EAAY,SAAkBpF,EAAQ6G,EAAYH,GAChD/C,EAAW9G,KAAMwI,GACjB1B,EAAW3D,EAAQmF,GACnB,IAAIyC,EAAenD,EAAiBzE,GAAQ0G,WACxCmB,EAASjE,EAAoBiD,GACjC,GAAIgB,EAAS,GAAKA,EAASD,EAAc,MAAMtC,EAAW,gBAE1D,GADAoB,OAA4B1H,IAAf0H,EAA2BkB,EAAeC,EAAShE,EAAS6C,GACrEmB,EAASnB,EAAakB,EAAc,MAAMtC,EAAWP,GACzDL,EAAiB7H,KAAM,CACrBmD,OAAQA,EACR0G,WAAYA,EACZG,WAAYgB,IAETvH,IACHzD,KAAKmD,OAASA,EACdnD,KAAK6J,WAAaA,EAClB7J,KAAKgK,WAAagB,IAItBxC,EAAoBD,EAAUN,GAE1BxE,IACF8F,EAAUlB,EAAc,cACxBkB,EAAUhB,EAAW,UACrBgB,EAAUhB,EAAW,cACrBgB,EAAUhB,EAAW,eAGvB1B,EAAe2B,EAAmB,CAChCoC,QAAS,SAAiBZ,GACxB,OAAOtD,EAAI1G,KAAM,EAAGgK,GAAY,IAAM,IAAM,IAE9CiB,SAAU,SAAkBjB,GAC1B,OAAOtD,EAAI1G,KAAM,EAAGgK,GAAY,IAElCkB,SAAU,SAAkBlB,GAC1B,IAAIF,EAAQpD,EAAI1G,KAAM,EAAGgK,EAAYmB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,GAC3E,OAAQ2H,EAAM,IAAM,EAAIA,EAAM,KAAO,IAAM,IAE7CsB,UAAW,SAAmBpB,GAC5B,IAAIF,EAAQpD,EAAI1G,KAAM,EAAGgK,EAAYmB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,GAC3E,OAAO2H,EAAM,IAAM,EAAIA,EAAM,IAE/BuB,SAAU,SAAkBrB,GAC1B,OAAOZ,EAAY1C,EAAI1G,KAAM,EAAGgK,EAAYmB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,KAEpFmJ,UAAW,SAAmBtB,GAC5B,OAAOZ,EAAY1C,EAAI1G,KAAM,EAAGgK,EAAYmB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,MAAgB,GAEpGoJ,WAAY,SAAoBvB,GAC9B,OAAOlB,EAAcpC,EAAI1G,KAAM,EAAGgK,EAAYmB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,GAAY,KAElGqJ,WAAY,SAAoBxB,GAC9B,OAAOlB,EAAcpC,EAAI1G,KAAM,EAAGgK,EAAYmB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,GAAY,KAElGwI,QAAS,SAAiBX,EAAY3H,GACpCyF,EAAI9H,KAAM,EAAGgK,EAAYhB,EAAU3G,IAErCwI,SAAU,SAAkBb,EAAY3H,GACtCyF,EAAI9H,KAAM,EAAGgK,EAAYhB,EAAU3G,IAErCoJ,SAAU,SAAkBzB,EAAY3H,GACtCyF,EAAI9H,KAAM,EAAGgK,EAAYd,EAAW7G,EAAO8I,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,IAEnFuJ,UAAW,SAAmB1B,EAAY3H,GACxCyF,EAAI9H,KAAM,EAAGgK,EAAYd,EAAW7G,EAAO8I,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,IAEnFwJ,SAAU,SAAkB3B,EAAY3H,GACtCyF,EAAI9H,KAAM,EAAGgK,EAAYb,EAAW9G,EAAO8I,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,IAEnFyJ,UAAW,SAAmB5B,EAAY3H,GACxCyF,EAAI9H,KAAM,EAAGgK,EAAYb,EAAW9G,EAAO8I,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,IAEnF0J,WAAY,SAAoB7B,EAAY3H,GAC1CyF,EAAI9H,KAAM,EAAGgK,EAAYX,EAAahH,EAAO8I,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,IAErF2J,WAAY,SAAoB9B,EAAY3H,GAC1CyF,EAAI9H,KAAM,EAAGgK,EAAYV,EAAajH,EAAO8I,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,MAuDzFmF,EAAee,EAAcN,GAC7BT,EAAeiB,EAAWP,GAE1BzG,EAAOL,QAAU,CACf8B,YAAaqF,EACbpF,SAAUsF,I,kCCpPZ,IAAIwD,EAAW,EAAQ,MACnBC,EAAkB,EAAQ,MAC1BC,EAAoB,EAAQ,MAC5BC,EAAwB,EAAQ,MAEhCC,EAAMC,KAAKD,IAKf5K,EAAOL,QAAU,GAAGmL,YAAc,SAAoBC,EAAkBvC,GACtE,IAAIwC,EAAIR,EAAS/L,MACbwM,EAAMP,EAAkBM,GACxBE,EAAKT,EAAgBM,EAAQE,GAC7BE,EAAOV,EAAgBjC,EAAOyC,GAC9BG,EAAMxB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,EAC5CsH,EAAQ0C,QAAahK,IAARwK,EAAoBH,EAAMR,EAAgBW,EAAKH,IAAQE,EAAMF,EAAMC,GAChFG,EAAM,EACNF,EAAOD,GAAMA,EAAKC,EAAOjD,IAC3BmD,GAAO,EACPF,GAAQjD,EAAQ,EAChBgD,GAAMhD,EAAQ,GAEhB,MAAOA,KAAU,EACXiD,KAAQH,EAAGA,EAAEE,GAAMF,EAAEG,GACpBR,EAAsBK,EAAGE,GAC9BA,GAAMG,EACNF,GAAQE,EACR,OAAOL,I,kCC5BX,IAAIR,EAAW,EAAQ,MACnBC,EAAkB,EAAQ,MAC1BC,EAAoB,EAAQ,MAIhC1K,EAAOL,QAAU,SAAcmB,GAC7B,IAAIkK,EAAIR,EAAS/L,MACb2C,EAASsJ,EAAkBM,GAC3BM,EAAkB1B,UAAUxI,OAC5BF,EAAQuJ,EAAgBa,EAAkB,EAAI1B,UAAU,QAAKhJ,EAAWQ,GACxEgK,EAAME,EAAkB,EAAI1B,UAAU,QAAKhJ,EAC3C2K,OAAiB3K,IAARwK,EAAoBhK,EAASqJ,EAAgBW,EAAKhK,GAC/D,MAAOmK,EAASrK,EAAO8J,EAAE9J,KAAWJ,EACpC,OAAOkK,I,kCCdT,IAAIQ,EAAW,gBACXC,EAAsB,EAAQ,MAE9BC,EAAgBD,EAAoB,WAIxCzL,EAAOL,QAAW+L,EAGd,GAAGC,QAH2B,SAAiBC,GACjD,OAAOJ,EAAS/M,KAAMmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,K,qBCT1E,IAAI8J,EAAoB,EAAQ,MAEhC1K,EAAOL,QAAU,SAAUqC,EAAa6J,GACtC,IAAI3K,EAAQ,EACRE,EAASsJ,EAAkBmB,GAC3BC,EAAS,IAAI9J,EAAYZ,GAC7B,MAAOA,EAASF,EAAO4K,EAAO5K,GAAS2K,EAAK3K,KAC5C,OAAO4K,I,kCCNT,IAAIC,EAAO,EAAQ,MACfjN,EAAO,EAAQ,MACf0L,EAAW,EAAQ,MACnBwB,EAA+B,EAAQ,MACvCC,EAAwB,EAAQ,MAChC/L,EAAgB,EAAQ,MACxBwK,EAAoB,EAAQ,MAC5BwB,EAAiB,EAAQ,MACzBC,EAAc,EAAQ,MACtBC,EAAoB,EAAQ,MAE5BC,EAAS3L,MAIbV,EAAOL,QAAU,SAAc2M,GAC7B,IAAItB,EAAIR,EAAS8B,GACbC,EAAiBrM,EAAczB,MAC/B6M,EAAkB1B,UAAUxI,OAC5BoL,EAAQlB,EAAkB,EAAI1B,UAAU,QAAKhJ,EAC7C6L,OAAoB7L,IAAV4L,EACVC,IAASD,EAAQT,EAAKS,EAAOlB,EAAkB,EAAI1B,UAAU,QAAKhJ,IACtE,IAEIQ,EAAQ0K,EAAQY,EAAMC,EAAUC,EAAM9L,EAFtC+L,EAAiBT,EAAkBpB,GACnC9J,EAAQ,EAGZ,IAAI2L,GAAoBpO,OAAS4N,GAAUJ,EAAsBY,GAW/D,IAFAzL,EAASsJ,EAAkBM,GAC3Bc,EAASS,EAAiB,IAAI9N,KAAK2C,GAAUiL,EAAOjL,GAC9CA,EAASF,EAAOA,IACpBJ,EAAQ2L,EAAUD,EAAMxB,EAAE9J,GAAQA,GAAS8J,EAAE9J,GAC7CgL,EAAeJ,EAAQ5K,EAAOJ,QAThC,IAHA6L,EAAWR,EAAYnB,EAAG6B,GAC1BD,EAAOD,EAASC,KAChBd,EAASS,EAAiB,IAAI9N,KAAS,KAC/BiO,EAAO5N,EAAK8N,EAAMD,IAAWG,KAAM5L,IACzCJ,EAAQ2L,EAAUT,EAA6BW,EAAUH,EAAO,CAACE,EAAK5L,MAAOI,IAAQ,GAAQwL,EAAK5L,MAClGoL,EAAeJ,EAAQ5K,EAAOJ,GAWlC,OADAgL,EAAO1K,OAASF,EACT4K,I,qBC5CT,IAAIiB,EAAkB,EAAQ,MAC1BtC,EAAkB,EAAQ,MAC1BC,EAAoB,EAAQ,MAG5BsC,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGItM,EAHAkK,EAAI+B,EAAgBG,GACpB9L,EAASsJ,EAAkBM,GAC3B9J,EAAQuJ,EAAgB2C,EAAWhM,GAIvC,GAAI6L,GAAeE,GAAMA,GAAI,MAAO/L,EAASF,EAG3C,GAFAJ,EAAQkK,EAAE9J,KAENJ,GAASA,EAAO,OAAO,OAEtB,KAAMM,EAASF,EAAOA,IAC3B,IAAK+L,GAAe/L,KAAS8J,IAAMA,EAAE9J,KAAWiM,EAAI,OAAOF,GAAe/L,GAAS,EACnF,OAAQ+L,IAAgB,IAI9BjN,EAAOL,QAAU,CAGf0N,SAAUL,GAAa,GAGvBM,QAASN,GAAa,K,qBC9BxB,IAAIjB,EAAO,EAAQ,MACf3G,EAAc,EAAQ,MACtBmI,EAAgB,EAAQ,MACxB/C,EAAW,EAAQ,MACnBE,EAAoB,EAAQ,MAC5B8C,EAAqB,EAAQ,MAE7BC,EAAOrI,EAAY,GAAGqI,MAGtBT,EAAe,SAAUU,GAC3B,IAAIC,EAAiB,GAARD,EACTE,EAAoB,GAARF,EACZG,EAAkB,GAARH,EACVI,EAAmB,GAARJ,EACXK,EAAwB,GAARL,EAChBM,EAA2B,GAARN,EACnBO,EAAmB,GAARP,GAAaK,EAC5B,OAAO,SAAUb,EAAOtB,EAAYsC,EAAMC,GASxC,IARA,IAOIrN,EAAOgL,EAPPd,EAAIR,EAAS0C,GACbkB,EAAOb,EAAcvC,GACrBqD,EAAgBtC,EAAKH,EAAYsC,GACjC9M,EAASsJ,EAAkB0D,GAC3BlN,EAAQ,EACRZ,EAAS6N,GAAkBX,EAC3BzC,EAAS4C,EAASrN,EAAO4M,EAAO9L,GAAUwM,GAAaI,EAAmB1N,EAAO4M,EAAO,QAAKtM,EAE3FQ,EAASF,EAAOA,IAAS,IAAI+M,GAAY/M,KAASkN,KACtDtN,EAAQsN,EAAKlN,GACb4K,EAASuC,EAAcvN,EAAOI,EAAO8J,GACjC0C,GACF,GAAIC,EAAQ5C,EAAO7J,GAAS4K,OACvB,GAAIA,EAAQ,OAAQ4B,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAO5M,EACf,KAAK,EAAG,OAAOI,EACf,KAAK,EAAGuM,EAAK1C,EAAQjK,QAChB,OAAQ4M,GACb,KAAK,EAAG,OAAO,EACf,KAAK,EAAGD,EAAK1C,EAAQjK,GAI3B,OAAOiN,GAAiB,EAAIF,GAAWC,EAAWA,EAAW/C,IAIjE/K,EAAOL,QAAU,CAGfgM,QAASqB,EAAa,GAGtBsB,IAAKtB,EAAa,GAGlBuB,OAAQvB,EAAa,GAGrBwB,KAAMxB,EAAa,GAGnByB,MAAOzB,EAAa,GAGpB0B,KAAM1B,EAAa,GAGnB2B,UAAW3B,EAAa,GAGxB4B,aAAc5B,EAAa,K,kCCrE7B,IAAI6B,EAAQ,EAAQ,MAChB9B,EAAkB,EAAQ,MAC1BvH,EAAsB,EAAQ,MAC9BkF,EAAoB,EAAQ,MAC5Be,EAAsB,EAAQ,MAE9Bb,EAAMC,KAAKD,IACXkE,EAAe,GAAGC,YAClBC,IAAkBF,GAAgB,EAAI,CAAC,GAAGC,YAAY,GAAI,GAAK,EAC/DrD,EAAgBD,EAAoB,eACpCwD,EAASD,IAAkBtD,EAI/B1L,EAAOL,QAAUsP,EAAS,SAAqBC,GAE7C,GAAIF,EAAe,OAAOH,EAAMC,EAAcrQ,KAAMmL,YAAc,EAClE,IAAIoB,EAAI+B,EAAgBtO,MACpB2C,EAASsJ,EAAkBM,GAC3B9J,EAAQE,EAAS,EAGrB,IAFIwI,UAAUxI,OAAS,IAAGF,EAAQ0J,EAAI1J,EAAOsE,EAAoBoE,UAAU,MACvE1I,EAAQ,IAAGA,EAAQE,EAASF,GAC1BA,GAAS,EAAGA,IAAS,GAAIA,KAAS8J,GAAKA,EAAE9J,KAAWgO,EAAe,OAAOhO,GAAS,EACzF,OAAQ,GACN4N,G,qBC1BJ,IAAInN,EAAQ,EAAQ,MAChBtB,EAAkB,EAAQ,MAC1B8O,EAAa,EAAQ,MAErBC,EAAU/O,EAAgB,WAE9BL,EAAOL,QAAU,SAAU0P,GAIzB,OAAOF,GAAc,KAAOxN,GAAM,WAChC,IAAI2N,EAAQ,GACRrG,EAAcqG,EAAMrG,YAAc,GAItC,OAHAA,EAAYmG,GAAW,WACrB,MAAO,CAAEG,IAAK,IAE2B,IAApCD,EAAMD,GAAaG,SAASD,S,kCCfvC,IAAI5N,EAAQ,EAAQ,MAEpB3B,EAAOL,QAAU,SAAU0P,EAAapP,GACtC,IAAIwP,EAAS,GAAGJ,GAChB,QAASI,GAAU9N,GAAM,WAEvB8N,EAAO3Q,KAAK,KAAMmB,GAAY,WAAc,OAAO,GAAM,Q,qBCP7D,IAAIyP,EAAY,EAAQ,MACpBlF,EAAW,EAAQ,MACnB+C,EAAgB,EAAQ,MACxB7C,EAAoB,EAAQ,MAE5B5K,EAAaC,UAGbiN,EAAe,SAAU2C,GAC3B,OAAO,SAAUzB,EAAMtC,EAAYN,EAAiBsE,GAClDF,EAAU9D,GACV,IAAIZ,EAAIR,EAAS0D,GACbE,EAAOb,EAAcvC,GACrB5J,EAASsJ,EAAkBM,GAC3B9J,EAAQyO,EAAWvO,EAAS,EAAI,EAChCuH,EAAIgH,GAAY,EAAI,EACxB,GAAIrE,EAAkB,EAAG,MAAO,EAAM,CACpC,GAAIpK,KAASkN,EAAM,CACjBwB,EAAOxB,EAAKlN,GACZA,GAASyH,EACT,MAGF,GADAzH,GAASyH,EACLgH,EAAWzO,EAAQ,EAAIE,GAAUF,EACnC,MAAMpB,EAAW,+CAGrB,KAAM6P,EAAWzO,GAAS,EAAIE,EAASF,EAAOA,GAASyH,EAAOzH,KAASkN,IACrEwB,EAAOhE,EAAWgE,EAAMxB,EAAKlN,GAAQA,EAAO8J,IAE9C,OAAO4E,IAIX5P,EAAOL,QAAU,CAGfkQ,KAAM7C,GAAa,GAGnB8C,MAAO9C,GAAa,K,qBCxCtB,IAAIvC,EAAkB,EAAQ,MAC1BC,EAAoB,EAAQ,MAC5BwB,EAAiB,EAAQ,MAEzBG,EAAS3L,MACTqP,EAAMlF,KAAKkF,IAEf/P,EAAOL,QAAU,SAAUqL,EAAGxC,EAAO4C,GAKnC,IAJA,IAAIhK,EAASsJ,EAAkBM,GAC3BgF,EAAIvF,EAAgBjC,EAAOpH,GAC3B6O,EAAMxF,OAAwB7J,IAARwK,EAAoBhK,EAASgK,EAAKhK,GACxD0K,EAASO,EAAO0D,EAAIE,EAAMD,EAAG,IACxBE,EAAI,EAAGF,EAAIC,EAAKD,IAAKE,IAAKhE,EAAeJ,EAAQoE,EAAGlF,EAAEgF,IAE/D,OADAlE,EAAO1K,OAAS8O,EACTpE,I,oBCdT,IAAI1G,EAAc,EAAQ,MAE1BpF,EAAOL,QAAUyF,EAAY,GAAG+K,Q,qBCFhC,IAAIrK,EAAa,EAAQ,MAErBsK,EAAQvF,KAAKuF,MAEbC,EAAY,SAAUf,EAAOgB,GAC/B,IAAIlP,EAASkO,EAAMlO,OACfmP,EAASH,EAAMhP,EAAS,GAC5B,OAAOA,EAAS,EAAIoP,EAAclB,EAAOgB,GAAaG,EACpDnB,EACAe,EAAUvK,EAAWwJ,EAAO,EAAGiB,GAASD,GACxCD,EAAUvK,EAAWwJ,EAAOiB,GAASD,GACrCA,IAIAE,EAAgB,SAAUlB,EAAOgB,GACnC,IAEII,EAAS1H,EAFT5H,EAASkO,EAAMlO,OACfuH,EAAI,EAGR,MAAOA,EAAIvH,EAAQ,CACjB4H,EAAIL,EACJ+H,EAAUpB,EAAM3G,GAChB,MAAOK,GAAKsH,EAAUhB,EAAMtG,EAAI,GAAI0H,GAAW,EAC7CpB,EAAMtG,GAAKsG,IAAQtG,GAEjBA,IAAML,MAAK2G,EAAMtG,GAAK0H,GAC1B,OAAOpB,GAGPmB,EAAQ,SAAUnB,EAAOO,EAAMC,EAAOQ,GACxC,IAAIK,EAAUd,EAAKzO,OACfwP,EAAUd,EAAM1O,OAChByP,EAAS,EACTC,EAAS,EAEb,MAAOD,EAASF,GAAWG,EAASF,EAClCtB,EAAMuB,EAASC,GAAWD,EAASF,GAAWG,EAASF,EACnDN,EAAUT,EAAKgB,GAASf,EAAMgB,KAAY,EAAIjB,EAAKgB,KAAYf,EAAMgB,KACrED,EAASF,EAAUd,EAAKgB,KAAYf,EAAMgB,KAC9C,OAAOxB,GAGXtP,EAAOL,QAAU0Q,G,qBC3CjB,IAAIU,EAAU,EAAQ,MAClB7Q,EAAgB,EAAQ,MACxBsB,EAAW,EAAQ,KACnBnB,EAAkB,EAAQ,MAE1B+O,EAAU/O,EAAgB,WAC1BgM,EAAS3L,MAIbV,EAAOL,QAAU,SAAUqR,GACzB,IAAIxM,EASF,OAREuM,EAAQC,KACVxM,EAAIwM,EAAc/H,YAEd/I,EAAcsE,KAAOA,IAAM6H,GAAU0E,EAAQvM,EAAE7D,YAAa6D,OAAI5D,EAC3DY,EAASgD,KAChBA,EAAIA,EAAE4K,GACI,OAAN5K,IAAYA,OAAI5D,UAETA,IAAN4D,EAAkB6H,EAAS7H,I,qBCpBtC,IAAIyM,EAA0B,EAAQ,MAItCjR,EAAOL,QAAU,SAAUqR,EAAe5P,GACxC,OAAO,IAAK6P,EAAwBD,GAA7B,CAAwD,IAAX5P,EAAe,EAAIA,K,qBCLzE,IAAI8P,EAAW,EAAQ,MACnBC,EAAgB,EAAQ,MAG5BnR,EAAOL,QAAU,SAAUgN,EAAUyE,EAAItQ,EAAOuQ,GAC9C,IACE,OAAOA,EAAUD,EAAGF,EAASpQ,GAAO,GAAIA,EAAM,IAAMsQ,EAAGtQ,GACvD,MAAOiE,GACPoM,EAAcxE,EAAU,QAAS5H,M,qBCRrC,IAAI1E,EAAkB,EAAQ,MAE1BiR,EAAWjR,EAAgB,YAC3BkR,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvB7E,KAAM,WACJ,MAAO,CAAEE,OAAQ0E,MAEnB,OAAU,WACRD,GAAe,IAGnBE,EAAmBH,GAAY,WAC7B,OAAO7S,MAGTiC,MAAMyK,KAAKsG,GAAoB,WAAc,MAAM,KACnD,MAAO1M,IAET/E,EAAOL,QAAU,SAAU+R,EAAMC,GAC/B,IAAKA,IAAiBJ,EAAc,OAAO,EAC3C,IAAIK,GAAoB,EACxB,IACE,IAAIC,EAAS,GACbA,EAAOP,GAAY,WACjB,MAAO,CACL1E,KAAM,WACJ,MAAO,CAAEE,KAAM8E,GAAoB,MAIzCF,EAAKG,GACL,MAAO9M,IACT,OAAO6M,I,qBCpCT,IAAIxM,EAAc,EAAQ,MAEtB0M,EAAW1M,EAAY,GAAG0M,UAC1BC,EAAc3M,EAAY,GAAG+K,OAEjCnQ,EAAOL,QAAU,SAAU2B,GACzB,OAAOyQ,EAAYD,EAASxQ,GAAK,GAAI,K,oBCNvC,IAAI0Q,EAAwB,EAAQ,MAChCpS,EAAa,EAAQ,KACrBqS,EAAa,EAAQ,MACrB5R,EAAkB,EAAQ,MAE1B6C,EAAgB7C,EAAgB,eAChC6R,EAAUrQ,OAGVsQ,EAAuE,aAAnDF,EAAW,WAAc,OAAOrI,UAArB,IAG/BwI,EAAS,SAAU9Q,EAAIP,GACzB,IACE,OAAOO,EAAGP,GACV,MAAOgE,MAIX/E,EAAOL,QAAUqS,EAAwBC,EAAa,SAAU3Q,GAC9D,IAAI0J,EAAGqH,EAAKvG,EACZ,YAAclL,IAAPU,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjD+Q,EAAMD,EAAOpH,EAAIkH,EAAQ5Q,GAAK4B,IAA8BmP,EAEpEF,EAAoBF,EAAWjH,GAEH,WAA3Bc,EAASmG,EAAWjH,KAAmBpL,EAAWoL,EAAEsH,QAAU,YAAcxG,I,qBC3BnF,IAAI1G,EAAc,EAAQ,MAEtBmN,EAASC,MACTC,EAAUrN,EAAY,GAAGqN,SAEzBC,EAAO,SAAWC,GAAO,OAAOvS,OAAOmS,EAAOI,GAAKC,OAA5C,CAAuD,UAC9DC,EAA2B,uBAC3BC,EAAwBD,EAAyBE,KAAKL,GAE1D1S,EAAOL,QAAU,SAAUiT,EAAOI,GAChC,GAAIF,GAAyC,iBAATF,IAAsBL,EAAOU,kBAC/D,MAAOD,IAAeJ,EAAQH,EAAQG,EAAOC,EAA0B,IACvE,OAAOD,I,kCCXX,IAAIrS,EAAiB,UACjBD,EAAS,EAAQ,IACjBgF,EAAiB,EAAQ,MACzByG,EAAO,EAAQ,MACfxG,EAAa,EAAQ,MACrB2N,EAAU,EAAQ,KAClBC,EAAiB,EAAQ,KACzBC,EAAa,EAAQ,MACrBlR,EAAc,EAAQ,MACtBmR,EAAU,gBACVrN,EAAsB,EAAQ,MAE9BM,EAAmBN,EAAoBO,IACvC+M,EAAyBtN,EAAoBuN,UAEjDvT,EAAOL,QAAU,CACf6T,eAAgB,SAAUC,EAASC,EAAkB/F,EAAQgG,GAC3D,IAAI3R,EAAcyR,GAAQ,SAAUvF,EAAM0F,GACxCrO,EAAW2I,EAAM3M,GACjB+E,EAAiB4H,EAAM,CACrB2F,KAAMH,EACNxS,MAAOZ,EAAO,MACdwT,WAAOlT,EACPmT,UAAMnT,EACNoT,KAAM,IAEH9R,IAAagM,EAAK8F,KAAO,QACdpT,GAAZgT,GAAuBV,EAAQU,EAAU1F,EAAKyF,GAAQ,CAAEzF,KAAMA,EAAM+F,WAAYtG,OAGlFpM,EAAYS,EAAYrB,UAExB0F,EAAmBiN,EAAuBI,GAE1CQ,EAAS,SAAUhG,EAAMnN,EAAKD,GAChC,IAEIqT,EAAUjT,EAFVkT,EAAQ/N,EAAiB6H,GACzBmG,EAAQC,EAASpG,EAAMnN,GAqBzB,OAlBEsT,EACFA,EAAMvT,MAAQA,GAGdsT,EAAML,KAAOM,EAAQ,CACnBnT,MAAOA,EAAQmS,EAAQtS,GAAK,GAC5BA,IAAKA,EACLD,MAAOA,EACPqT,SAAUA,EAAWC,EAAML,KAC3BnH,UAAMhM,EACN2T,SAAS,GAENH,EAAMN,QAAOM,EAAMN,MAAQO,GAC5BF,IAAUA,EAASvH,KAAOyH,GAC1BnS,EAAakS,EAAMJ,OAClB9F,EAAK8F,OAEI,MAAV9S,IAAekT,EAAMlT,MAAMA,GAASmT,IACjCnG,GAGPoG,EAAW,SAAUpG,EAAMnN,GAC7B,IAGIsT,EAHAD,EAAQ/N,EAAiB6H,GAEzBhN,EAAQmS,EAAQtS,GAEpB,GAAc,MAAVG,EAAe,OAAOkT,EAAMlT,MAAMA,GAEtC,IAAKmT,EAAQD,EAAMN,MAAOO,EAAOA,EAAQA,EAAMzH,KAC7C,GAAIyH,EAAMtT,KAAOA,EAAK,OAAOsT,GAwFjC,OApFA/O,EAAe/D,EAAW,CAIxBiT,MAAO,WACL,IAAItG,EAAOzP,KACP2V,EAAQ/N,EAAiB6H,GACzBuG,EAAOL,EAAMlT,MACbmT,EAAQD,EAAMN,MAClB,MAAOO,EACLA,EAAME,SAAU,EACZF,EAAMF,WAAUE,EAAMF,SAAWE,EAAMF,SAASvH,UAAOhM,UACpD6T,EAAKJ,EAAMnT,OAClBmT,EAAQA,EAAMzH,KAEhBwH,EAAMN,MAAQM,EAAML,UAAOnT,EACvBsB,EAAakS,EAAMJ,KAAO,EACzB9F,EAAK8F,KAAO,GAKnB,OAAU,SAAUjT,GAClB,IAAImN,EAAOzP,KACP2V,EAAQ/N,EAAiB6H,GACzBmG,EAAQC,EAASpG,EAAMnN,GAC3B,GAAIsT,EAAO,CACT,IAAIzH,EAAOyH,EAAMzH,KACb8H,EAAOL,EAAMF,gBACVC,EAAMlT,MAAMmT,EAAMnT,OACzBmT,EAAME,SAAU,EACZG,IAAMA,EAAK9H,KAAOA,GAClBA,IAAMA,EAAKuH,SAAWO,GACtBN,EAAMN,OAASO,IAAOD,EAAMN,MAAQlH,GACpCwH,EAAML,MAAQM,IAAOD,EAAML,KAAOW,GAClCxS,EAAakS,EAAMJ,OAClB9F,EAAK8F,OACV,QAASK,GAKb1I,QAAS,SAAiBC,GACxB,IAEIyI,EAFAD,EAAQ/N,EAAiB5H,MACzB4P,EAAgBtC,EAAKH,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,GAE3E,MAAOyT,EAAQA,EAAQA,EAAMzH,KAAOwH,EAAMN,MAAO,CAC/CzF,EAAcgG,EAAMvT,MAAOuT,EAAMtT,IAAKtC,MAEtC,MAAO4V,GAASA,EAAME,QAASF,EAAQA,EAAMF,WAMjDQ,IAAK,SAAa5T,GAChB,QAASuT,EAAS7V,KAAMsC,MAI5BuE,EAAe/D,EAAWoM,EAAS,CAGjCxI,IAAK,SAAapE,GAChB,IAAIsT,EAAQC,EAAS7V,KAAMsC,GAC3B,OAAOsT,GAASA,EAAMvT,OAIxByF,IAAK,SAAaxF,EAAKD,GACrB,OAAOoT,EAAOzV,KAAc,IAARsC,EAAY,EAAIA,EAAKD,KAEzC,CAGF9B,IAAK,SAAa8B,GAChB,OAAOoT,EAAOzV,KAAMqC,EAAkB,IAAVA,EAAc,EAAIA,EAAOA,MAGrDoB,GAAa3B,EAAegB,EAAW,OAAQ,CACjD4D,IAAK,WACH,OAAOkB,EAAiB5H,MAAMuV,QAG3BhS,GAET4S,UAAW,SAAU5S,EAAa0R,EAAkB/F,GAClD,IAAIkH,EAAgBnB,EAAmB,YACnCoB,EAA6BxB,EAAuBI,GACpDqB,EAA2BzB,EAAuBuB,GAUtD1B,EAAenR,EAAa0R,GAAkB,SAAUsB,EAAUC,GAChE3O,EAAiB7H,KAAM,CACrBoV,KAAMgB,EACN9J,OAAQiK,EACRZ,MAAOU,EAA2BE,GAClCC,KAAMA,EACNlB,UAAMnT,OAEP,WACD,IAAIwT,EAAQW,EAAyBtW,MACjCwW,EAAOb,EAAMa,KACbZ,EAAQD,EAAML,KAElB,MAAOM,GAASA,EAAME,QAASF,EAAQA,EAAMF,SAE7C,OAAKC,EAAMrJ,SAAYqJ,EAAML,KAAOM,EAAQA,EAAQA,EAAMzH,KAAOwH,EAAMA,MAAMN,OAMjE,QAARmB,EAAuB,CAAEnU,MAAOuT,EAAMtT,IAAK+L,MAAM,GACzC,UAARmI,EAAyB,CAAEnU,MAAOuT,EAAMvT,MAAOgM,MAAM,GAClD,CAAEhM,MAAO,CAACuT,EAAMtT,IAAKsT,EAAMvT,OAAQgM,MAAM,IAN9CsH,EAAMrJ,YAASnK,EACR,CAAEE,WAAOF,EAAWkM,MAAM,MAMlCa,EAAS,UAAY,UAAWA,GAAQ,GAK3CyF,EAAWM,M,kCCxMf,IAAItO,EAAc,EAAQ,MACtBE,EAAiB,EAAQ,MACzB4P,EAAc,oBACdhE,EAAW,EAAQ,MACnB1P,EAAW,EAAQ,KACnB+D,EAAa,EAAQ,MACrB2N,EAAU,EAAQ,KAClBiC,EAAuB,EAAQ,MAC/B/S,EAAS,EAAQ,MACjB4D,EAAsB,EAAQ,MAE9BM,EAAmBN,EAAoBO,IACvC+M,EAAyBtN,EAAoBuN,UAC7C7E,EAAOyG,EAAqBzG,KAC5BC,EAAYwG,EAAqBxG,UACjCyG,EAAShQ,EAAY,GAAGgQ,QACxBC,EAAK,EAGLC,EAAsB,SAAUjN,GAClC,OAAOA,EAAMkN,SAAWlN,EAAMkN,OAAS,IAAIC,IAGzCA,EAAsB,WACxB/W,KAAKgX,QAAU,IAGbC,EAAqB,SAAUrN,EAAOtH,GACxC,OAAO2N,EAAKrG,EAAMoN,SAAS,SAAUnU,GACnC,OAAOA,EAAG,KAAOP,MAIrByU,EAAoB7U,UAAY,CAC9BwE,IAAK,SAAUpE,GACb,IAAIsT,EAAQqB,EAAmBjX,KAAMsC,GACrC,GAAIsT,EAAO,OAAOA,EAAM,IAE1BM,IAAK,SAAU5T,GACb,QAAS2U,EAAmBjX,KAAMsC,IAEpCwF,IAAK,SAAUxF,EAAKD,GAClB,IAAIuT,EAAQqB,EAAmBjX,KAAMsC,GACjCsT,EAAOA,EAAM,GAAKvT,EACjBrC,KAAKgX,QAAQhI,KAAK,CAAC1M,EAAKD,KAE/B,OAAU,SAAUC,GAClB,IAAIG,EAAQyN,EAAUlQ,KAAKgX,SAAS,SAAUnU,GAC5C,OAAOA,EAAG,KAAOP,KAGnB,OADKG,GAAOkU,EAAO3W,KAAKgX,QAASvU,EAAO,MAC9BA,IAIdlB,EAAOL,QAAU,CACf6T,eAAgB,SAAUC,EAASC,EAAkB/F,EAAQgG,GAC3D,IAAI3R,EAAcyR,GAAQ,SAAUvF,EAAM0F,GACxCrO,EAAW2I,EAAM3M,GACjB+E,EAAiB4H,EAAM,CACrB2F,KAAMH,EACN2B,GAAIA,IACJE,YAAQ3U,SAEMA,GAAZgT,GAAuBV,EAAQU,EAAU1F,EAAKyF,GAAQ,CAAEzF,KAAMA,EAAM+F,WAAYtG,OAGlFpM,EAAYS,EAAYrB,UAExB0F,EAAmBiN,EAAuBI,GAE1CQ,EAAS,SAAUhG,EAAMnN,EAAKD,GAChC,IAAIsT,EAAQ/N,EAAiB6H,GACzBuG,EAAOS,EAAYhE,EAASnQ,IAAM,GAGtC,OAFa,IAAT0T,EAAea,EAAoBlB,GAAO7N,IAAIxF,EAAKD,GAClD2T,EAAKL,EAAMiB,IAAMvU,EACfoN,GAkDT,OA/CA5I,EAAe/D,EAAW,CAIxB,OAAU,SAAUR,GAClB,IAAIqT,EAAQ/N,EAAiB5H,MAC7B,IAAK+C,EAAST,GAAM,OAAO,EAC3B,IAAI0T,EAAOS,EAAYnU,GACvB,OAAa,IAAT0T,EAAsBa,EAAoBlB,GAAO,UAAUrT,GACxD0T,GAAQrS,EAAOqS,EAAML,EAAMiB,YAAcZ,EAAKL,EAAMiB,KAK7DV,IAAK,SAAa5T,GAChB,IAAIqT,EAAQ/N,EAAiB5H,MAC7B,IAAK+C,EAAST,GAAM,OAAO,EAC3B,IAAI0T,EAAOS,EAAYnU,GACvB,OAAa,IAAT0T,EAAsBa,EAAoBlB,GAAOO,IAAI5T,GAClD0T,GAAQrS,EAAOqS,EAAML,EAAMiB,OAItC/P,EAAe/D,EAAWoM,EAAS,CAGjCxI,IAAK,SAAapE,GAChB,IAAIqT,EAAQ/N,EAAiB5H,MAC7B,GAAI+C,EAAST,GAAM,CACjB,IAAI0T,EAAOS,EAAYnU,GACvB,OAAa,IAAT0T,EAAsBa,EAAoBlB,GAAOjP,IAAIpE,GAClD0T,EAAOA,EAAKL,EAAMiB,SAAMzU,IAKnC2F,IAAK,SAAaxF,EAAKD,GACrB,OAAOoT,EAAOzV,KAAMsC,EAAKD,KAEzB,CAGF9B,IAAK,SAAa8B,GAChB,OAAOoT,EAAOzV,KAAMqC,GAAO,MAIxBkB,K,kCC9HX,IAAI2T,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MACtBwQ,EAAW,EAAQ,MACnBrT,EAAgB,EAAQ,MACxBsT,EAAyB,EAAQ,MACjC3C,EAAU,EAAQ,KAClB3N,EAAa,EAAQ,MACrB3F,EAAa,EAAQ,KACrB4B,EAAW,EAAQ,KACnBG,EAAQ,EAAQ,MAChBmU,EAA8B,EAAQ,MACtC/P,EAAiB,EAAQ,MACzBgQ,EAAoB,EAAQ,MAEhC/V,EAAOL,QAAU,SAAU+T,EAAkBD,EAASuC,GACpD,IAAIrI,GAA8C,IAArC+F,EAAiBpG,QAAQ,OAClC2I,GAAgD,IAAtCvC,EAAiBpG,QAAQ,QACnCqG,EAAQhG,EAAS,MAAQ,MACzBuI,EAAoB/T,EAAOuR,GAC3ByC,EAAkBD,GAAqBA,EAAkBvV,UACzDqB,EAAckU,EACdE,EAAW,GAEXC,EAAY,SAAU3R,GACxB,IAAI4R,EAAwBlR,EAAY+Q,EAAgBzR,IACxDnC,EAAc4T,EAAiBzR,EACtB,OAAPA,EAAe,SAAa5D,GAE1B,OADAwV,EAAsB7X,KAAgB,IAAVqC,EAAc,EAAIA,GACvCrC,MACE,UAAPiG,EAAkB,SAAU3D,GAC9B,QAAOkV,IAAYzU,EAAST,KAAeuV,EAAsB7X,KAAc,IAARsC,EAAY,EAAIA,IAC9E,OAAP2D,EAAe,SAAa3D,GAC9B,OAAOkV,IAAYzU,EAAST,QAAOH,EAAY0V,EAAsB7X,KAAc,IAARsC,EAAY,EAAIA,IAClF,OAAP2D,EAAe,SAAa3D,GAC9B,QAAOkV,IAAYzU,EAAST,KAAeuV,EAAsB7X,KAAc,IAARsC,EAAY,EAAIA,IACrF,SAAaA,EAAKD,GAEpB,OADAwV,EAAsB7X,KAAc,IAARsC,EAAY,EAAIA,EAAKD,GAC1CrC,QAKT8X,EAAUX,EACZlC,GACC9T,EAAWsW,MAAwBD,GAAWE,EAAgBxK,UAAYhK,GAAM,YAC/E,IAAIuU,GAAoBT,UAAU7I,YAItC,GAAI2J,EAEFvU,EAAcgU,EAAOxC,eAAeC,EAASC,EAAkB/F,EAAQgG,GACvEkC,EAAuBW,cAClB,GAAIZ,EAASlC,GAAkB,GAAO,CAC3C,IAAI+C,EAAW,IAAIzU,EAEf0U,EAAiBD,EAAS9C,GAAOsC,EAAU,IAAM,EAAG,IAAMQ,EAE1DE,EAAuBhV,GAAM,WAAc8U,EAAS9B,IAAI,MAGxDiC,EAAmBd,GAA4B,SAAUlC,GAAY,IAAIsC,EAAkBtC,MAE3FiD,GAAcZ,GAAWtU,GAAM,WAEjC,IAAImV,EAAY,IAAIZ,EAChBhV,EAAQ,EACZ,MAAOA,IAAS4V,EAAUnD,GAAOzS,EAAOA,GACxC,OAAQ4V,EAAUnC,KAAK,MAGpBiC,IACH5U,EAAcyR,GAAQ,SAAUsD,EAAOnD,GACrCrO,EAAWwR,EAAOZ,GAClB,IAAIjI,EAAO6H,EAAkB,IAAIG,EAAqBa,EAAO/U,GAE7D,YADgBpB,GAAZgT,GAAuBV,EAAQU,EAAU1F,EAAKyF,GAAQ,CAAEzF,KAAMA,EAAM+F,WAAYtG,IAC7EO,KAETlM,EAAYrB,UAAYwV,EACxBA,EAAgBlN,YAAcjH,IAG5B2U,GAAwBE,KAC1BR,EAAU,UACVA,EAAU,OACV1I,GAAU0I,EAAU,SAGlBQ,GAAcH,IAAgBL,EAAU1C,GAGxCsC,GAAWE,EAAgB3B,cAAc2B,EAAgB3B,MAU/D,OAPA4B,EAAS1C,GAAoB1R,EAC7B2T,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAMrE,OAAQ5C,GAAekU,GAAqBE,GAEjFrQ,EAAe/D,EAAa0R,GAEvBuC,GAASD,EAAOpB,UAAU5S,EAAa0R,EAAkB/F,GAEvD3L,I,qBCvGT,IAAII,EAAS,EAAQ,MACjB4U,EAAU,EAAQ,MAClBC,EAAiC,EAAQ,MACzCC,EAAuB,EAAQ,MAEnClX,EAAOL,QAAU,SAAUoL,EAAQoM,EAAQC,GAIzC,IAHA,IAAIrO,EAAOiO,EAAQG,GACf5W,EAAiB2W,EAAqBG,EACtCC,EAA2BL,EAA+BI,EACrD1O,EAAI,EAAGA,EAAII,EAAK3H,OAAQuH,IAAK,CACpC,IAAI5H,EAAMgI,EAAKJ,GACVvG,EAAO2I,EAAQhK,IAAUqW,GAAchV,EAAOgV,EAAYrW,IAC7DR,EAAewK,EAAQhK,EAAKuW,EAAyBH,EAAQpW,O,qBCZnE,IAAIY,EAAQ,EAAQ,MAEpB3B,EAAOL,SAAWgC,GAAM,WACtB,SAAS4V,KAGT,OAFAA,EAAE5W,UAAUsI,YAAc,KAEnBpH,OAAOW,eAAe,IAAI+U,KAASA,EAAE5W,c,qBCN9C,IAAIyE,EAAc,EAAQ,MACtBoS,EAAyB,EAAQ,MACjC1F,EAAW,EAAQ,MAEnB2F,EAAO,KACPhF,EAAUrN,EAAY,GAAGqN,SAI7BzS,EAAOL,QAAU,SAAU+X,EAAQrF,EAAKsF,EAAW7W,GACjD,IAAIG,EAAI6Q,EAAS0F,EAAuBE,IACpCE,EAAK,IAAMvF,EAEf,MADkB,KAAdsF,IAAkBC,GAAM,IAAMD,EAAY,KAAOlF,EAAQX,EAAShR,GAAQ2W,EAAM,UAAY,KACzFG,EAAK,IAAM3W,EAAI,KAAOoR,EAAM,M,kCCZrC,IAAIwF,EAAoB,0BACpBvX,EAAS,EAAQ,IACjBwX,EAA2B,EAAQ,MACnC/R,EAAiB,EAAQ,MACzBgS,EAAY,EAAQ,MAEpBC,EAAa,WAAc,OAAOvZ,MAEtCuB,EAAOL,QAAU,SAAUsY,EAAqBlW,EAAM6K,EAAMsL,GAC1D,IAAIhV,EAAgBnB,EAAO,YAI3B,OAHAkW,EAAoBtX,UAAYL,EAAOuX,EAAmB,CAAEjL,KAAMkL,IAA2BI,EAAiBtL,KAC9G7G,EAAekS,EAAqB/U,GAAe,GAAO,GAC1D6U,EAAU7U,GAAiB8U,EACpBC,I,qBCdT,IAAI/V,EAAc,EAAQ,MACtBgV,EAAuB,EAAQ,MAC/BY,EAA2B,EAAQ,MAEvC9X,EAAOL,QAAUuC,EAAc,SAAU2P,EAAQ9Q,EAAKD,GACpD,OAAOoW,EAAqBG,EAAExF,EAAQ9Q,EAAK+W,EAAyB,EAAGhX,KACrE,SAAU+Q,EAAQ9Q,EAAKD,GAEzB,OADA+Q,EAAO9Q,GAAOD,EACP+Q,I,iBCRT7R,EAAOL,QAAU,SAAUwY,EAAQrX,GACjC,MAAO,CACLsX,aAAuB,EAATD,GACdtX,eAAyB,EAATsX,GAChBE,WAAqB,EAATF,GACZrX,MAAOA,K,kCCJX,IAAIwX,EAAgB,EAAQ,MACxBpB,EAAuB,EAAQ,MAC/BY,EAA2B,EAAQ,MAEvC9X,EAAOL,QAAU,SAAUkS,EAAQ9Q,EAAKD,GACtC,IAAIyX,EAAcD,EAAcvX,GAC5BwX,KAAe1G,EAAQqF,EAAqBG,EAAExF,EAAQ0G,EAAaT,EAAyB,EAAGhX,IAC9F+Q,EAAO0G,GAAezX,I,qBCR7B,IAAI0X,EAAc,EAAQ,MACtBjY,EAAiB,EAAQ,MAE7BP,EAAOL,QAAU,SAAUoL,EAAQlC,EAAM4P,GAGvC,OAFIA,EAAWtT,KAAKqT,EAAYC,EAAWtT,IAAK0D,EAAM,CAAE6P,QAAQ,IAC5DD,EAAWlS,KAAKiS,EAAYC,EAAWlS,IAAKsC,EAAM,CAAE8P,QAAQ,IACzDpY,EAAe8W,EAAEtM,EAAQlC,EAAM4P,K,qBCNxC,IAAI7Y,EAAa,EAAQ,KACrB0C,EAA8B,EAAQ,MACtCkW,EAAc,EAAQ,MACtBI,EAAuB,EAAQ,MAEnC5Y,EAAOL,QAAU,SAAUqL,EAAGjK,EAAKD,EAAO1C,GACnCA,IAASA,EAAU,IACxB,IAAIya,EAASza,EAAQga,WACjBvP,OAAwBjI,IAAjBxC,EAAQyK,KAAqBzK,EAAQyK,KAAO9H,EAUrD,OATEnB,EAAWkB,IAAQ0X,EAAY1X,EAAO+H,EAAMzK,GAC5CA,EAAQ+D,OACN0W,EAAQ7N,EAAEjK,GAAOD,EAChB8X,EAAqB7X,EAAKD,IAE1B1C,EAAQmL,OACJyB,EAAEjK,KAAM8X,GAAS,UADE7N,EAAEjK,GAE1B8X,EAAQ7N,EAAEjK,GAAOD,EAChBwB,EAA4B0I,EAAGjK,EAAKD,IAClCkK,I,qBClBX,IAAIzI,EAAgB,EAAQ,MAE5BvC,EAAOL,QAAU,SAAUoL,EAAQ+N,EAAK1a,GACtC,IAAK,IAAI2C,KAAO+X,EAAKvW,EAAcwI,EAAQhK,EAAK+X,EAAI/X,GAAM3C,GAC1D,OAAO2M,I,qBCJT,IAAI5I,EAAS,EAAQ,MAGjB5B,EAAiBsB,OAAOtB,eAE5BP,EAAOL,QAAU,SAAUoB,EAAKD,GAC9B,IACEP,EAAe4B,EAAQpB,EAAK,CAAED,MAAOA,EAAOD,cAAc,EAAMwX,UAAU,IAC1E,MAAOtT,GACP5C,EAAOpB,GAAOD,EACd,OAAOA,I,iCCTX,IAAI6U,EAAI,EAAQ,MACZ7W,EAAO,EAAQ,MACfia,EAAU,EAAQ,MAClB1T,EAAe,EAAQ,MACvBzF,EAAa,EAAQ,KACrBoZ,EAA4B,EAAQ,MACpCxW,EAAiB,EAAQ,MACzBC,EAAiB,EAAQ,MACzBsD,EAAiB,EAAQ,MACzBzD,EAA8B,EAAQ,MACtCC,EAAgB,EAAQ,MACxBlC,EAAkB,EAAQ,MAC1B0X,EAAY,EAAQ,MACpBkB,EAAgB,EAAQ,MAExBhT,EAAuBZ,EAAaa,OACpCC,EAA6Bd,EAAae,aAC1CyR,EAAoBoB,EAAcpB,kBAClCqB,EAAyBD,EAAcC,uBACvC5H,EAAWjR,EAAgB,YAC3B8Y,EAAO,OACPC,EAAS,SACT/H,EAAU,UAEV2G,EAAa,WAAc,OAAOvZ,MAEtCuB,EAAOL,QAAU,SAAU0Z,EAAUtX,EAAMkW,EAAqBrL,EAAM0M,EAASC,EAAQtK,GACrF+J,EAA0Bf,EAAqBlW,EAAM6K,GAErD,IAkBI4M,EAA0BC,EAAS/U,EAlBnCgV,EAAqB,SAAUC,GACjC,GAAIA,IAASL,GAAWM,EAAiB,OAAOA,EAChD,IAAKV,GAA0BS,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAKR,EAAM,OAAO,WAAkB,OAAO,IAAIlB,EAAoBxZ,KAAMkb,IACzE,KAAKP,EAAQ,OAAO,WAAoB,OAAO,IAAInB,EAAoBxZ,KAAMkb,IAC7E,KAAKtI,EAAS,OAAO,WAAqB,OAAO,IAAI4G,EAAoBxZ,KAAMkb,IAC/E,OAAO,WAAc,OAAO,IAAI1B,EAAoBxZ,QAGpDyE,EAAgBnB,EAAO,YACvB+X,GAAwB,EACxBD,EAAoBR,EAAS1Y,UAC7BoZ,EAAiBF,EAAkBvI,IAClCuI,EAAkB,eAClBP,GAAWO,EAAkBP,GAC9BM,GAAmBV,GAA0Ba,GAAkBL,EAAmBJ,GAClFU,EAA4B,SAARjY,GAAkB8X,EAAkBpE,SAA4BsE,EA+BxF,GA3BIC,IACFR,EAA2BhX,EAAewX,EAAkBlb,KAAK,IAAIua,IACjEG,IAA6B3X,OAAOlB,WAAa6Y,EAAyB5M,OACvEmM,GAAWvW,EAAegX,KAA8B3B,IACvDpV,EACFA,EAAe+W,EAA0B3B,GAC/BjY,EAAW4Z,EAAyBlI,KAC9C/O,EAAciX,EAA0BlI,EAAU0G,IAItDjS,EAAeyT,EAA0BtW,GAAe,GAAM,GAC1D6V,IAAShB,EAAU7U,GAAiB8U,KAKxC/R,GAAwBqT,GAAWF,GAAUW,GAAkBA,EAAelR,OAASuQ,KACpFL,GAAW5S,EACd7D,EAA4BuX,EAAmB,OAAQT,IAEvDU,GAAwB,EACxBF,EAAkB,WAAoB,OAAO9a,EAAKib,EAAgBtb,SAKlE6a,EAMF,GALAG,EAAU,CACRQ,OAAQP,EAAmBN,GAC3BrQ,KAAMwQ,EAASK,EAAkBF,EAAmBP,GACpD1D,QAASiE,EAAmBrI,IAE1BpC,EAAQ,IAAKvK,KAAO+U,GAClBP,GAA0BY,KAA2BpV,KAAOmV,KAC9DtX,EAAcsX,EAAmBnV,EAAK+U,EAAQ/U,SAE3CiR,EAAE,CAAE5K,OAAQhJ,EAAMmY,OAAO,EAAMtV,OAAQsU,GAA0BY,GAAyBL,GASnG,OALMV,IAAW9J,GAAW4K,EAAkBvI,KAAcsI,GAC1DrX,EAAcsX,EAAmBvI,EAAUsI,EAAiB,CAAE/Q,KAAMyQ,IAEtEvB,EAAUhW,GAAQ6X,EAEXH,I,qBCjGT,IAAIU,EAAO,EAAQ,KACf/X,EAAS,EAAQ,MACjBgY,EAA+B,EAAQ,MACvC7Z,EAAiB,UAErBP,EAAOL,QAAU,SAAUoC,GACzB,IAAIsY,EAASF,EAAKE,SAAWF,EAAKE,OAAS,IACtCjY,EAAOiY,EAAQtY,IAAOxB,EAAe8Z,EAAQtY,EAAM,CACtDjB,MAAOsZ,EAA6B/C,EAAEtV,O,kCCP1C,IAAIlC,EAAc,EAAQ,MAEtBC,EAAaC,UAEjBC,EAAOL,QAAU,SAAUqL,EAAGsP,GAC5B,WAAYtP,EAAEsP,GAAI,MAAMxa,EAAW,0BAA4BD,EAAYya,GAAK,OAASza,EAAYmL,M,qBCNvG,IAAIrJ,EAAQ,EAAQ,MAGpB3B,EAAOL,SAAWgC,GAAM,WAEtB,OAA8E,GAAvEE,OAAOtB,eAAe,GAAI,EAAG,CAAE4E,IAAK,WAAc,OAAO,KAAQ,O,oBCL1E,IAAIhD,EAAS,EAAQ,MACjBX,EAAW,EAAQ,KAEnB+Y,EAAWpY,EAAOoY,SAElBC,EAAShZ,EAAS+Y,IAAa/Y,EAAS+Y,EAASE,eAErDza,EAAOL,QAAU,SAAU2B,GACzB,OAAOkZ,EAASD,EAASE,cAAcnZ,GAAM,K,iBCR/C,IAAIxB,EAAaC,UACb2a,EAAmB,iBAEvB1a,EAAOL,QAAU,SAAU2B,GACzB,GAAIA,EAAKoZ,EAAkB,MAAM5a,EAAW,kCAC5C,OAAOwB,I,iBCHTtB,EAAOL,QAAU,CACfgb,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,I,qBChCb,IAAIC,EAAwB,EAAQ,KAEhCC,EAAYD,EAAsB,QAAQC,UAC1CC,EAAwBD,GAAaA,EAAU1T,aAAe0T,EAAU1T,YAAYtI,UAExFX,EAAOL,QAAUid,IAA0B/a,OAAOlB,eAAYC,EAAYgc,G,qBCN1E,IAAIC,EAAY,EAAQ,MAEpBC,EAAUD,EAAUE,MAAM,mBAE9B/c,EAAOL,UAAYmd,IAAYA,EAAQ,I,iBCJvC9c,EAAOL,QAA2B,iBAAVqd,QAAqC,iBAARC,M,oBCArD,IAAIC,EAAK,EAAQ,MAEjBld,EAAOL,QAAU,eAAeoT,KAAKmK,I,qBCFrC,IAAIL,EAAY,EAAQ,MACpB1a,EAAS,EAAQ,MAErBnC,EAAOL,QAAU,oBAAoBoT,KAAK8J,SAAgCjc,IAAlBuB,EAAOgb,Q,qBCH/D,IAAIN,EAAY,EAAQ,MAExB7c,EAAOL,QAAU,qCAAqCoT,KAAK8J,I,qBCF3D,IAAIxa,EAAU,EAAQ,MAClBF,EAAS,EAAQ,MAErBnC,EAAOL,QAAqC,WAA3B0C,EAAQF,EAAOib,U,qBCHhC,IAAIP,EAAY,EAAQ,MAExB7c,EAAOL,QAAU,qBAAqBoT,KAAK8J,I,qBCF3C,IAAIQ,EAAa,EAAQ,MAEzBrd,EAAOL,QAAU0d,EAAW,YAAa,cAAgB,I,qBCFzD,IAOIN,EAAOO,EAPPnb,EAAS,EAAQ,MACjB0a,EAAY,EAAQ,MAEpBO,EAAUjb,EAAOib,QACjBH,EAAO9a,EAAO8a,KACdM,EAAWH,GAAWA,EAAQG,UAAYN,GAAQA,EAAKK,QACvDE,EAAKD,GAAYA,EAASC,GAG1BA,IACFT,EAAQS,EAAGC,MAAM,KAGjBH,EAAUP,EAAM,GAAK,GAAKA,EAAM,GAAK,EAAI,IAAMA,EAAM,GAAKA,EAAM,MAK7DO,GAAWT,IACdE,EAAQF,EAAUE,MAAM,iBACnBA,GAASA,EAAM,IAAM,MACxBA,EAAQF,EAAUE,MAAM,iBACpBA,IAAOO,GAAWP,EAAM,MAIhC/c,EAAOL,QAAU2d,G,qBC1BjB,IAAIT,EAAY,EAAQ,MAEpBa,EAASb,EAAUE,MAAM,wBAE7B/c,EAAOL,UAAY+d,IAAWA,EAAO,I,gBCHrC1d,EAAOL,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,Y,qBCRF,IAAIgC,EAAQ,EAAQ,MAChBmW,EAA2B,EAAQ,MAEvC9X,EAAOL,SAAWgC,GAAM,WACtB,IAAIoD,EAAQyN,MAAM,KAClB,QAAM,UAAWzN,KAEjBlD,OAAOtB,eAAewE,EAAO,QAAS+S,EAAyB,EAAG,IAC3C,IAAhB/S,EAAM6N,W,qBCRf,IAAIzQ,EAAS,EAAQ,MACjBmV,EAA2B,UAC3BhV,EAA8B,EAAQ,MACtCC,EAAgB,EAAQ,MACxBqW,EAAuB,EAAQ,MAC/B+E,EAA4B,EAAQ,MACpC/H,EAAW,EAAQ,MAiBvB5V,EAAOL,QAAU,SAAUvB,EAAS+Y,GAClC,IAGIlI,EAAQlE,EAAQhK,EAAK6c,EAAgBC,EAAgBpF,EAHrDqF,EAAS1f,EAAQ2M,OACjBgT,EAAS3f,EAAQ+D,OACjB6b,EAAS5f,EAAQ6f,KASrB,GANElT,EADEgT,EACO5b,EACA6b,EACA7b,EAAO2b,IAAWlF,EAAqBkF,EAAQ,KAE9C3b,EAAO2b,IAAW,IAAInd,UAE9BoK,EAAQ,IAAKhK,KAAOoW,EAAQ,CAQ9B,GAPA0G,EAAiB1G,EAAOpW,GACpB3C,EAAQ8f,gBACVzF,EAAanB,EAAyBvM,EAAQhK,GAC9C6c,EAAiBnF,GAAcA,EAAW3X,OACrC8c,EAAiB7S,EAAOhK,GAC/BkO,EAAS2G,EAASmI,EAAShd,EAAM+c,GAAUE,EAAS,IAAM,KAAOjd,EAAK3C,EAAQwG,SAEzEqK,QAA6BrO,IAAnBgd,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDD,EAA0BE,EAAgBD,IAGxCxf,EAAQ+f,MAASP,GAAkBA,EAAeO,OACpD7b,EAA4Bub,EAAgB,QAAQ,GAEtDtb,EAAcwI,EAAQhK,EAAK8c,EAAgBzf,M,iBCnD/C4B,EAAOL,QAAU,SAAU+R,GACzB,IACE,QAASA,IACT,MAAO3M,GACP,OAAO,K,kCCFX,EAAQ,MACR,IAAIK,EAAc,EAAQ,MACtB7C,EAAgB,EAAQ,MACxB6b,EAAa,EAAQ,MACrBzc,EAAQ,EAAQ,MAChBtB,EAAkB,EAAQ,MAC1BiC,EAA8B,EAAQ,MAEtC8M,EAAU/O,EAAgB,WAC1Bge,EAAkBC,OAAO3d,UAE7BX,EAAOL,QAAU,SAAU+E,EAAKgN,EAAMzC,EAAQsP,GAC5C,IAAIC,EAASne,EAAgBqE,GAEzB+Z,GAAuB9c,GAAM,WAE/B,IAAIqJ,EAAI,GAER,OADAA,EAAEwT,GAAU,WAAc,OAAO,GACZ,GAAd,GAAG9Z,GAAKsG,MAGb0T,EAAoBD,IAAwB9c,GAAM,WAEpD,IAAIgd,GAAa,EACbC,EAAK,IAkBT,MAhBY,UAARla,IAIFka,EAAK,GAGLA,EAAG3V,YAAc,GACjB2V,EAAG3V,YAAYmG,GAAW,WAAc,OAAOwP,GAC/CA,EAAGC,MAAQ,GACXD,EAAGJ,GAAU,IAAIA,IAGnBI,EAAGlN,KAAO,WAAiC,OAAnBiN,GAAa,EAAa,MAElDC,EAAGJ,GAAQ,KACHG,KAGV,IACGF,IACAC,GACDzP,EACA,CACA,IAAI6P,EAA8B1Z,EAAY,IAAIoZ,IAC9C/E,EAAU/H,EAAK8M,EAAQ,GAAG9Z,IAAM,SAAUqa,EAAcC,EAAQC,EAAKC,EAAMC,GAC7E,IAAI7I,EAAwBlR,EAAY2Z,GACpCK,EAAQJ,EAAOtN,KACnB,OAAI0N,IAAUhB,GAAcgB,IAAUf,EAAgB3M,KAChD+M,IAAwBU,EAInB,CAAErS,MAAM,EAAMhM,MAAOge,EAA4BE,EAAQC,EAAKC,IAEhE,CAAEpS,MAAM,EAAMhM,MAAOwV,EAAsB2I,EAAKD,EAAQE,IAE1D,CAAEpS,MAAM,MAGjBvK,EAAcnC,OAAOO,UAAW+D,EAAK+U,EAAQ,IAC7ClX,EAAc8b,EAAiBG,EAAQ/E,EAAQ,IAG7C8E,GAAMjc,EAA4B+b,EAAgBG,GAAS,QAAQ,K,qBCxEzE,IAAI7c,EAAQ,EAAQ,MAEpB3B,EAAOL,SAAWgC,GAAM,WAEtB,OAAOE,OAAOC,aAAaD,OAAOwd,kBAAkB,S,qBCJtD,IAAIC,EAAc,EAAQ,MAEtBC,EAAoBra,SAASvE,UAC7BkO,EAAQ0Q,EAAkB1Q,MAC1B/P,EAAOygB,EAAkBzgB,KAG7BkB,EAAOL,QAA4B,iBAAX6f,SAAuBA,QAAQ3Q,QAAUyQ,EAAcxgB,EAAKiN,KAAK8C,GAAS,WAChG,OAAO/P,EAAK+P,MAAMA,EAAOjF,c,qBCR3B,IAAIxE,EAAc,EAAQ,MACtBsK,EAAY,EAAQ,MACpB4P,EAAc,EAAQ,MAEtBvT,EAAO3G,EAAYA,EAAY2G,MAGnC/L,EAAOL,QAAU,SAAUyR,EAAIlD,GAE7B,OADAwB,EAAU0B,QACMxQ,IAATsN,EAAqBkD,EAAKkO,EAAcvT,EAAKqF,EAAIlD,GAAQ,WAC9D,OAAOkD,EAAGvC,MAAMX,EAAMtE,c,qBCV1B,IAAIjI,EAAQ,EAAQ,MAEpB3B,EAAOL,SAAWgC,GAAM,WAEtB,IAAIoR,EAAO,aAA8BhH,OAEzC,MAAsB,mBAARgH,GAAsBA,EAAK0M,eAAe,iB,kCCL1D,IAAIra,EAAc,EAAQ,MACtBsK,EAAY,EAAQ,MACpBlO,EAAW,EAAQ,KACnBY,EAAS,EAAQ,MACjB0D,EAAa,EAAQ,KACrBwZ,EAAc,EAAQ,MAEtBI,EAAYxa,SACZxF,EAAS0F,EAAY,GAAG1F,QACxBigB,EAAOva,EAAY,GAAGua,MACtBC,EAAY,GAEZC,EAAY,SAAUrb,EAAGsb,EAAYC,GACvC,IAAK3d,EAAOwd,EAAWE,GAAa,CAClC,IAAK,IAAIjU,EAAO,GAAIlD,EAAI,EAAGA,EAAImX,EAAYnX,IAAKkD,EAAKlD,GAAK,KAAOA,EAAI,IACrEiX,EAAUE,GAAcJ,EAAU,MAAO,gBAAkBC,EAAK9T,EAAM,KAAO,KAC7E,OAAO+T,EAAUE,GAAYtb,EAAGub,IAKpC/f,EAAOL,QAAU2f,EAAcI,EAAU3T,KAAO,SAAcmC,GAC5D,IAAIqJ,EAAI7H,EAAUjR,MACd8C,EAAYgW,EAAE5W,UACdqf,EAAWla,EAAW8D,UAAW,GACjCyE,EAAgB,WAClB,IAAI0R,EAAOrgB,EAAOsgB,EAAUla,EAAW8D,YACvC,OAAOnL,gBAAgB4P,EAAgBwR,EAAUtI,EAAGwI,EAAK3e,OAAQ2e,GAAQxI,EAAE1I,MAAMX,EAAM6R,IAGzF,OADIve,EAASD,KAAY8M,EAAc1N,UAAYY,GAC5C8M,I,qBC/BT,IAAIiR,EAAc,EAAQ,MAEtBxgB,EAAOoG,SAASvE,UAAU7B,KAE9BkB,EAAOL,QAAU2f,EAAcxgB,EAAKiN,KAAKjN,GAAQ,WAC/C,OAAOA,EAAK+P,MAAM/P,EAAM8K,a,qBCL1B,IAAI1H,EAAc,EAAQ,MACtBE,EAAS,EAAQ,MAEjBmd,EAAoBra,SAASvE,UAE7Bsf,EAAgB/d,GAAeL,OAAOyV,yBAEtCkD,EAASpY,EAAOmd,EAAmB,QAEnCrZ,EAASsU,GAA0D,cAAhD,aAAuC3R,KAC1DzC,EAAeoU,KAAYtY,GAAgBA,GAAe+d,EAAcV,EAAmB,QAAQ1e,cAEvGb,EAAOL,QAAU,CACf6a,OAAQA,EACRtU,OAAQA,EACRE,aAAcA,I,qBCfhB,IAAIkZ,EAAc,EAAQ,MAEtBC,EAAoBra,SAASvE,UAC7BoL,EAAOwT,EAAkBxT,KACzBjN,EAAOygB,EAAkBzgB,KACzBsG,EAAcka,GAAevT,EAAKA,KAAKjN,EAAMA,GAEjDkB,EAAOL,QAAU2f,EAAc,SAAUlO,GACvC,OAAOA,GAAMhM,EAAYgM,IACvB,SAAUA,GACZ,OAAOA,GAAM,WACX,OAAOtS,EAAK+P,MAAMuC,EAAIxH,c,qBCX1B,IAAIzH,EAAS,EAAQ,MACjBvC,EAAa,EAAQ,KAErBsgB,EAAY,SAAUjgB,GACxB,OAAOL,EAAWK,GAAYA,OAAWW,GAG3CZ,EAAOL,QAAU,SAAUwgB,EAAW1Q,GACpC,OAAO7F,UAAUxI,OAAS,EAAI8e,EAAU/d,EAAOge,IAAche,EAAOge,IAAche,EAAOge,GAAW1Q,K,qBCRtG,IAAIpN,EAAU,EAAQ,KAClB+d,EAAY,EAAQ,MACpBrI,EAAY,EAAQ,MACpB1X,EAAkB,EAAQ,MAE1BiR,EAAWjR,EAAgB,YAE/BL,EAAOL,QAAU,SAAU2B,GACzB,QAAUV,GAANU,EAAiB,OAAO8e,EAAU9e,EAAIgQ,IACrC8O,EAAU9e,EAAI,eACdyW,EAAU1V,EAAQf,M,qBCVzB,IAAIxC,EAAO,EAAQ,MACf4Q,EAAY,EAAQ,MACpBwB,EAAW,EAAQ,MACnBrR,EAAc,EAAQ,MACtBuM,EAAoB,EAAQ,MAE5BtM,EAAaC,UAEjBC,EAAOL,QAAU,SAAUM,EAAUogB,GACnC,IAAIxT,EAAiBjD,UAAUxI,OAAS,EAAIgL,EAAkBnM,GAAYogB,EAC1E,GAAI3Q,EAAU7C,GAAiB,OAAOqE,EAASpS,EAAK+N,EAAgB5M,IACpE,MAAMH,EAAWD,EAAYI,GAAY,sB,qBCX3C,IAAIyP,EAAY,EAAQ,MAIxB1P,EAAOL,QAAU,SAAU2gB,EAAGhG,GAC5B,IAAIiG,EAAOD,EAAEhG,GACb,OAAe,MAARiG,OAAe3f,EAAY8O,EAAU6Q,K,oBCN9C,IAAInb,EAAc,EAAQ,MACtBoF,EAAW,EAAQ,MAEnB4F,EAAQvF,KAAKuF,MACbpP,EAASoE,EAAY,GAAGpE,QACxByR,EAAUrN,EAAY,GAAGqN,SACzBV,EAAc3M,EAAY,GAAG+K,OAC7BqQ,EAAuB,8BACvBC,EAAgC,sBAIpCzgB,EAAOL,QAAU,SAAU+gB,EAASzB,EAAK0B,EAAUC,EAAUC,EAAeC,GAC1E,IAAIC,EAAUJ,EAAWD,EAAQtf,OAC7B4f,EAAIJ,EAASxf,OACb6f,EAAUR,EAKd,YAJsB7f,IAAlBigB,IACFA,EAAgBrW,EAASqW,GACzBI,EAAUT,GAEL/N,EAAQqO,EAAaG,GAAS,SAAUlE,EAAOmE,GACpD,IAAIC,EACJ,OAAQngB,EAAOkgB,EAAI,IACjB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAOR,EACjB,IAAK,IAAK,OAAO3O,EAAYkN,EAAK,EAAG0B,GACrC,IAAK,IAAK,OAAO5O,EAAYkN,EAAK8B,GAClC,IAAK,IACHI,EAAUN,EAAc9O,EAAYmP,EAAI,GAAI,IAC5C,MACF,QACE,IAAIhR,GAAKgR,EACT,GAAU,IAANhR,EAAS,OAAO6M,EACpB,GAAI7M,EAAI8Q,EAAG,CACT,IAAI3J,EAAIjH,EAAMF,EAAI,IAClB,OAAU,IAANmH,EAAgB0F,EAChB1F,GAAK2J,OAA8BpgB,IAApBggB,EAASvJ,EAAI,GAAmBrW,EAAOkgB,EAAI,GAAKN,EAASvJ,EAAI,GAAKrW,EAAOkgB,EAAI,GACzFnE,EAEToE,EAAUP,EAAS1Q,EAAI,GAE3B,YAAmBtP,IAAZugB,EAAwB,GAAKA,O,qBCzCxC,IAAIC,EAAQ,SAAU9f,GACpB,OAAOA,GAAMA,EAAGuJ,MAAQA,MAAQvJ,GAIlCtB,EAAOL,QAELyhB,EAA2B,iBAAdC,YAA0BA,aACvCD,EAAuB,iBAAVpE,QAAsBA,SAEnCoE,EAAqB,iBAARhT,MAAoBA,OACjCgT,EAAuB,iBAAV,EAAAE,GAAsB,EAAAA,IAEnC,WAAe,OAAO7iB,KAAtB,IAAoCyG,SAAS,cAATA,I,qBCbtC,IAAIE,EAAc,EAAQ,MACtBoF,EAAW,EAAQ,MAEnBiV,EAAiBra,EAAY,GAAGqa,gBAKpCzf,EAAOL,QAAUkC,OAAOO,QAAU,SAAgBd,EAAIP,GACpD,OAAO0e,EAAejV,EAASlJ,GAAKP,K,iBCTtCf,EAAOL,QAAU,I,oBCAjB,IAAIwC,EAAS,EAAQ,MAErBnC,EAAOL,QAAU,SAAU4hB,EAAGC,GAC5B,IAAIC,EAAUtf,EAAOsf,QACjBA,GAAWA,EAAQ1c,QACD,GAApB6E,UAAUxI,OAAcqgB,EAAQ1c,MAAMwc,GAAKE,EAAQ1c,MAAMwc,EAAGC,M,oBCLhE,IAAInE,EAAa,EAAQ,MAEzBrd,EAAOL,QAAU0d,EAAW,WAAY,oB,qBCFxC,IAAInb,EAAc,EAAQ,MACtBP,EAAQ,EAAQ,MAChB8Y,EAAgB,EAAQ,KAG5Bza,EAAOL,SAAWuC,IAAgBP,GAAM,WAEtC,OAEQ,GAFDE,OAAOtB,eAAeka,EAAc,OAAQ,IAAK,CACtDtV,IAAK,WAAc,OAAO,KACzBoc,M,iBCRL,IAAIlV,EAAS3L,MACTghB,EAAM7W,KAAK6W,IACXC,EAAM9W,KAAK8W,IACXvR,EAAQvF,KAAKuF,MACbwR,EAAM/W,KAAK+W,IACXC,EAAMhX,KAAKgX,IAEXva,EAAO,SAAUI,EAAQoa,EAAgBvZ,GAC3C,IAOIwZ,EAAUC,EAAUC,EAPpBrgB,EAASyK,EAAO9D,GAChB2Z,EAAyB,EAAR3Z,EAAYuZ,EAAiB,EAC9CK,GAAQ,GAAKD,GAAkB,EAC/BE,EAAQD,GAAQ,EAChBE,EAAwB,KAAnBP,EAAwBH,EAAI,GAAI,IAAMA,EAAI,GAAI,IAAM,EACzDW,EAAO5a,EAAS,GAAgB,IAAXA,GAAgB,EAAIA,EAAS,EAAI,EAAI,EAC1DxG,EAAQ,EAEZwG,EAASga,EAAIha,GAETA,GAAUA,GAAUA,IAAW6a,KAEjCP,EAAWta,GAAUA,EAAS,EAAI,EAClCqa,EAAWI,IAEXJ,EAAW3R,EAAMwR,EAAIla,GAAUma,GAC/BI,EAAIN,EAAI,GAAII,GACRra,EAASua,EAAI,IACfF,IACAE,GAAK,GAGLva,GADEqa,EAAWK,GAAS,EACZC,EAAKJ,EAELI,EAAKV,EAAI,EAAG,EAAIS,GAExB1a,EAASua,GAAK,IAChBF,IACAE,GAAK,GAEHF,EAAWK,GAASD,GACtBH,EAAW,EACXD,EAAWI,GACFJ,EAAWK,GAAS,GAC7BJ,GAAYta,EAASua,EAAI,GAAKN,EAAI,EAAGG,GACrCC,GAAsBK,IAEtBJ,EAAWta,EAASia,EAAI,EAAGS,EAAQ,GAAKT,EAAI,EAAGG,GAC/CC,EAAW,IAGf,MAAOD,GAAkB,EACvBlgB,EAAOV,KAAsB,IAAX8gB,EAClBA,GAAY,IACZF,GAAkB,EAEpBC,EAAWA,GAAYD,EAAiBE,EACxCE,GAAkBJ,EAClB,MAAOI,EAAiB,EACtBtgB,EAAOV,KAAsB,IAAX6gB,EAClBA,GAAY,IACZG,GAAkB,EAGpB,OADAtgB,IAASV,IAAiB,IAAPohB,EACZ1gB,GAGL4F,EAAS,SAAU5F,EAAQkgB,GAC7B,IAQIE,EARAzZ,EAAQ3G,EAAOR,OACf8gB,EAAyB,EAAR3Z,EAAYuZ,EAAiB,EAC9CK,GAAQ,GAAKD,GAAkB,EAC/BE,EAAQD,GAAQ,EAChBK,EAAQN,EAAiB,EACzBhhB,EAAQqH,EAAQ,EAChB+Z,EAAO1gB,EAAOV,KACd6gB,EAAkB,IAAPO,EAEfA,IAAS,EACT,MAAOE,EAAQ,EACbT,EAAsB,IAAXA,EAAiBngB,EAAOV,KACnCshB,GAAS,EAEXR,EAAWD,GAAY,IAAMS,GAAS,EACtCT,KAAcS,EACdA,GAASV,EACT,MAAOU,EAAQ,EACbR,EAAsB,IAAXA,EAAiBpgB,EAAOV,KACnCshB,GAAS,EAEX,GAAiB,IAAbT,EACFA,EAAW,EAAIK,MACV,IAAIL,IAAaI,EACtB,OAAOH,EAAWlZ,IAAMwZ,GAAQC,IAAWA,IAE3CP,GAAsBL,EAAI,EAAGG,GAC7BC,GAAsBK,EACtB,OAAQE,GAAQ,EAAI,GAAKN,EAAWL,EAAI,EAAGI,EAAWD,IAG1D9hB,EAAOL,QAAU,CACf2H,KAAMA,EACNE,OAAQA,I,qBCpGV,IAAIpC,EAAc,EAAQ,MACtBzD,EAAQ,EAAQ,MAChBU,EAAU,EAAQ,MAElB6P,EAAUrQ,OACV4b,EAAQrY,EAAY,GAAGqY,OAG3Bzd,EAAOL,QAAUgC,GAAM,WAGrB,OAAQuQ,EAAQ,KAAKuQ,qBAAqB,MACvC,SAAUnhB,GACb,MAAsB,UAAfe,EAAQf,GAAkBmc,EAAMnc,EAAI,IAAM4Q,EAAQ5Q,IACvD4Q,G,qBCdJ,IAAItS,EAAa,EAAQ,KACrB4B,EAAW,EAAQ,KACnBiB,EAAiB,EAAQ,MAG7BzC,EAAOL,QAAU,SAAUuN,EAAO6J,EAAO2L,GACvC,IAAIC,EAAWC,EAUf,OAPEngB,GAEA7C,EAAW+iB,EAAY5L,EAAM9N,cAC7B0Z,IAAcD,GACdlhB,EAASohB,EAAqBD,EAAUhiB,YACxCiiB,IAAuBF,EAAQ/hB,WAC/B8B,EAAeyK,EAAO0V,GACjB1V,I,qBChBT,IAAI9H,EAAc,EAAQ,MACtBxF,EAAa,EAAQ,KACrByI,EAAQ,EAAQ,MAEhBwa,EAAmBzd,EAAYF,SAAS4M,UAGvClS,EAAWyI,EAAMya,iBACpBza,EAAMya,cAAgB,SAAUxhB,GAC9B,OAAOuhB,EAAiBvhB,KAI5BtB,EAAOL,QAAU0I,EAAMya,e,qBCbvB,IAAIthB,EAAW,EAAQ,KACnBc,EAA8B,EAAQ,MAI1CtC,EAAOL,QAAU,SAAUqL,EAAG5M,GACxBoD,EAASpD,IAAY,UAAWA,GAClCkE,EAA4B0I,EAAG,QAAS5M,EAAQ2kB,S,qBCPpD,IAAIpN,EAAI,EAAQ,MACZvQ,EAAc,EAAQ,MACtB4d,EAAa,EAAQ,MACrBxhB,EAAW,EAAQ,KACnBY,EAAS,EAAQ,MACjB7B,EAAiB,UACjB0iB,EAA4B,EAAQ,MACpCC,EAAoC,EAAQ,MAC5CphB,EAAe,EAAQ,MACvBY,EAAM,EAAQ,MACdygB,EAAW,EAAQ,MAEnBC,GAAW,EACXC,EAAW3gB,EAAI,QACf2S,EAAK,EAELiO,EAAc,SAAUhiB,GAC1Bf,EAAee,EAAI+hB,EAAU,CAAEviB,MAAO,CACpCyiB,SAAU,IAAMlO,IAChBmO,SAAU,OAIVnQ,EAAU,SAAU/R,EAAIhB,GAE1B,IAAKkB,EAASF,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAKc,EAAOd,EAAI+hB,GAAW,CAEzB,IAAKvhB,EAAaR,GAAK,MAAO,IAE9B,IAAKhB,EAAQ,MAAO,IAEpBgjB,EAAYhiB,GAEZ,OAAOA,EAAG+hB,GAAUE,UAGpBrO,EAAc,SAAU5T,EAAIhB,GAC9B,IAAK8B,EAAOd,EAAI+hB,GAAW,CAEzB,IAAKvhB,EAAaR,GAAK,OAAO,EAE9B,IAAKhB,EAAQ,OAAO,EAEpBgjB,EAAYhiB,GAEZ,OAAOA,EAAG+hB,GAAUG,UAIpBC,EAAW,SAAUniB,GAEvB,OADI6hB,GAAYC,GAAYthB,EAAaR,KAAQc,EAAOd,EAAI+hB,IAAWC,EAAYhiB,GAC5EA,GAGLkV,EAAS,WACXkN,EAAKlN,OAAS,aACd4M,GAAW,EACX,IAAIxd,EAAsBqd,EAA0B5L,EAChDjC,EAAShQ,EAAY,GAAGgQ,QACxBrC,EAAO,GACXA,EAAKsQ,GAAY,EAGbzd,EAAoBmN,GAAM3R,SAC5B6hB,EAA0B5L,EAAI,SAAU/V,GAEtC,IADA,IAAIwK,EAASlG,EAAoBtE,GACxBqH,EAAI,EAAGvH,EAAS0K,EAAO1K,OAAQuH,EAAIvH,EAAQuH,IAClD,GAAImD,EAAOnD,KAAO0a,EAAU,CAC1BjO,EAAOtJ,EAAQnD,EAAG,GAClB,MAEF,OAAOmD,GAGX6J,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,QAAQ,GAAQ,CAChDgB,oBAAqBsd,EAAkC7L,MAKzDqM,EAAO1jB,EAAOL,QAAU,CAC1B6W,OAAQA,EACRnD,QAASA,EACT6B,YAAaA,EACbuO,SAAUA,GAGZT,EAAWK,IAAY,G,qBCxFvB,IAaI9c,EAAKpB,EAAKwP,EAbVgP,EAAkB,EAAQ,MAC1BxhB,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MACtB5D,EAAW,EAAQ,KACnBc,EAA8B,EAAQ,MACtCF,EAAS,EAAQ,MACjBwhB,EAAS,EAAQ,MACjBC,EAAY,EAAQ,MACpBb,EAAa,EAAQ,MAErBc,EAA6B,6BAC7B/jB,EAAYoC,EAAOpC,UACnBgkB,EAAU5hB,EAAO4hB,QAGjBC,EAAU,SAAU1iB,GACtB,OAAOqT,EAAIrT,GAAM6D,EAAI7D,GAAMiF,EAAIjF,EAAI,KAGjCiS,EAAY,SAAU7F,GACxB,OAAO,SAAUpM,GACf,IAAI8S,EACJ,IAAK5S,EAASF,KAAQ8S,EAAQjP,EAAI7D,IAAKuS,OAASnG,EAC9C,MAAM3N,EAAU,0BAA4B2N,EAAO,aACnD,OAAO0G,IAIb,GAAIuP,GAAmBC,EAAOxP,MAAO,CACnC,IAAI/L,EAAQub,EAAOxP,QAAUwP,EAAOxP,MAAQ,IAAI2P,GAC5CE,EAAQ7e,EAAYiD,EAAMlD,KAC1B+e,EAAQ9e,EAAYiD,EAAMsM,KAC1BwP,EAAQ/e,EAAYiD,EAAM9B,KAC9BA,EAAM,SAAUjF,EAAI8iB,GAClB,GAAIF,EAAM7b,EAAO/G,GAAK,MAAM,IAAIvB,EAAU+jB,GAG1C,OAFAM,EAASC,OAAS/iB,EAClB6iB,EAAM9b,EAAO/G,EAAI8iB,GACVA,GAETjf,EAAM,SAAU7D,GACd,OAAO2iB,EAAM5b,EAAO/G,IAAO,IAE7BqT,EAAM,SAAUrT,GACd,OAAO4iB,EAAM7b,EAAO/G,QAEjB,CACL,IAAIgjB,EAAQT,EAAU,SACtBb,EAAWsB,IAAS,EACpB/d,EAAM,SAAUjF,EAAI8iB,GAClB,GAAIhiB,EAAOd,EAAIgjB,GAAQ,MAAM,IAAIvkB,EAAU+jB,GAG3C,OAFAM,EAASC,OAAS/iB,EAClBgB,EAA4BhB,EAAIgjB,EAAOF,GAChCA,GAETjf,EAAM,SAAU7D,GACd,OAAOc,EAAOd,EAAIgjB,GAAShjB,EAAGgjB,GAAS,IAEzC3P,EAAM,SAAUrT,GACd,OAAOc,EAAOd,EAAIgjB,IAItBtkB,EAAOL,QAAU,CACf4G,IAAKA,EACLpB,IAAKA,EACLwP,IAAKA,EACLqP,QAASA,EACTzQ,UAAWA,I,qBCnEb,IAAIlT,EAAkB,EAAQ,MAC1B0X,EAAY,EAAQ,MAEpBzG,EAAWjR,EAAgB,YAC3BI,EAAiBC,MAAMC,UAG3BX,EAAOL,QAAU,SAAU2B,GACzB,YAAcV,IAAPU,IAAqByW,EAAUrX,QAAUY,GAAMb,EAAe6Q,KAAchQ,K,qBCRrF,IAAIe,EAAU,EAAQ,MAKtBrC,EAAOL,QAAUe,MAAMqQ,SAAW,SAAiB9Q,GACjD,MAA4B,SAArBoC,EAAQpC,K,gBCJjBD,EAAOL,QAAU,SAAUM,GACzB,MAA0B,mBAAZA,I,qBCHhB,IAAImF,EAAc,EAAQ,MACtBzD,EAAQ,EAAQ,MAChB/B,EAAa,EAAQ,KACrByC,EAAU,EAAQ,KAClBgb,EAAa,EAAQ,MACrByF,EAAgB,EAAQ,MAExByB,EAAO,aACPC,EAAQ,GACR3E,EAAYxC,EAAW,UAAW,aAClCoH,EAAoB,2BACpB/S,EAAOtM,EAAYqf,EAAkB/S,MACrCgT,GAAuBD,EAAkB/S,KAAK6S,GAE9CI,EAAsB,SAAuB1kB,GAC/C,IAAKL,EAAWK,GAAW,OAAO,EAClC,IAEE,OADA4f,EAAU0E,EAAMC,EAAOvkB,IAChB,EACP,MAAO8E,GACP,OAAO,IAIP6f,EAAsB,SAAuB3kB,GAC/C,IAAKL,EAAWK,GAAW,OAAO,EAClC,OAAQoC,EAAQpC,IACd,IAAK,gBACL,IAAK,oBACL,IAAK,yBAA0B,OAAO,EAExC,IAIE,OAAOykB,KAAyBhT,EAAK+S,EAAmB3B,EAAc7iB,IACtE,MAAO8E,GACP,OAAO,IAIX6f,EAAoBzG,MAAO,EAI3Bne,EAAOL,SAAWkgB,GAAale,GAAM,WACnC,IAAI6P,EACJ,OAAOmT,EAAoBA,EAAoB7lB,QACzC6lB,EAAoB9iB,UACpB8iB,GAAoB,WAAcnT,GAAS,MAC5CA,KACFoT,EAAsBD,G,qBCnD3B,IAAIviB,EAAS,EAAQ,MAErBpC,EAAOL,QAAU,SAAU8Y,GACzB,YAAsB7X,IAAf6X,IAA6BrW,EAAOqW,EAAY,UAAYrW,EAAOqW,EAAY,e,qBCHxF,IAAI9W,EAAQ,EAAQ,MAChB/B,EAAa,EAAQ,KAErBkhB,EAAc,kBAEdlL,EAAW,SAAUiP,EAASC,GAChC,IAAIhkB,EAAQ2T,EAAKsQ,EAAUF,IAC3B,OAAO/jB,GAASkkB,GACZlkB,GAASmkB,IACTrlB,EAAWklB,GAAanjB,EAAMmjB,KAC5BA,IAGJC,EAAYnP,EAASmP,UAAY,SAAUrN,GAC7C,OAAOtX,OAAOsX,GAAQjF,QAAQqO,EAAa,KAAKoE,eAG9CzQ,EAAOmB,EAASnB,KAAO,GACvBwQ,EAASrP,EAASqP,OAAS,IAC3BD,EAAWpP,EAASoP,SAAW,IAEnChlB,EAAOL,QAAUiW,G,qBCrBjB,IAAIpU,EAAW,EAAQ,KAEnB4O,EAAQvF,KAAKuF,MAKjBpQ,EAAOL,QAAUwlB,OAAOC,WAAa,SAAmB9jB,GACtD,OAAQE,EAASF,IAAO+jB,SAAS/jB,IAAO8O,EAAM9O,KAAQA,I,oBCRxD,IAAI1B,EAAa,EAAQ,KAEzBI,EAAOL,QAAU,SAAU2B,GACzB,MAAoB,iBAANA,EAAwB,OAAPA,EAAc1B,EAAW0B,K,iBCH1DtB,EAAOL,SAAU,G,qBCAjB,IAAI6B,EAAW,EAAQ,KACnBa,EAAU,EAAQ,MAClBhC,EAAkB,EAAQ,MAE1BilB,EAAQjlB,EAAgB,SAI5BL,EAAOL,QAAU,SAAU2B,GACzB,IAAIikB,EACJ,OAAO/jB,EAASF,UAAmCV,KAA1B2kB,EAAWjkB,EAAGgkB,MAA0BC,EAA0B,UAAfljB,EAAQf,M,qBCVtF,IAAI+b,EAAa,EAAQ,MACrBzd,EAAa,EAAQ,KACrByB,EAAgB,EAAQ,MACxBmkB,EAAoB,EAAQ,MAE5BtT,EAAUrQ,OAEd7B,EAAOL,QAAU6lB,EAAoB,SAAUlkB,GAC7C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,IAAImkB,EAAUpI,EAAW,UACzB,OAAOzd,EAAW6lB,IAAYpkB,EAAcokB,EAAQ9kB,UAAWuR,EAAQ5Q,M,oBCXzE,IAAIyK,EAAO,EAAQ,MACfjN,EAAO,EAAQ,MACfoS,EAAW,EAAQ,MACnBrR,EAAc,EAAQ,MACtBoM,EAAwB,EAAQ,MAChCvB,EAAoB,EAAQ,MAC5BrJ,EAAgB,EAAQ,MACxB8K,EAAc,EAAQ,MACtBC,EAAoB,EAAQ,MAC5B+E,EAAgB,EAAQ,MAExBrR,EAAaC,UAEb2lB,EAAS,SAAUC,EAAS7Z,GAC9BrN,KAAKknB,QAAUA,EACflnB,KAAKqN,OAASA,GAGZ8Z,EAAkBF,EAAO/kB,UAE7BX,EAAOL,QAAU,SAAUiU,EAAUiS,EAAiBznB,GACpD,IAKIuO,EAAUmZ,EAAQ5kB,EAAOE,EAAQ0K,EAAQc,EAAMF,EAL/CwB,EAAO9P,GAAWA,EAAQ8P,KAC1B+F,KAAgB7V,IAAWA,EAAQ6V,YACnC8R,KAAiB3nB,IAAWA,EAAQ2nB,aACpCC,KAAiB5nB,IAAWA,EAAQ4nB,aACpC5U,EAAKrF,EAAK8Z,EAAiB3X,GAG3B+X,EAAO,SAAUC,GAEnB,OADIvZ,GAAUwE,EAAcxE,EAAU,SAAUuZ,GACzC,IAAIR,GAAO,EAAMQ,IAGtBC,EAAS,SAAUrlB,GACrB,OAAImT,GACF/C,EAASpQ,GACFklB,EAAc5U,EAAGtQ,EAAM,GAAIA,EAAM,GAAImlB,GAAQ7U,EAAGtQ,EAAM,GAAIA,EAAM,KAChEklB,EAAc5U,EAAGtQ,EAAOmlB,GAAQ7U,EAAGtQ,IAG9C,GAAIilB,EACFpZ,EAAWiH,MACN,CAEL,GADAkS,EAAS1Z,EAAkBwH,IACtBkS,EAAQ,MAAMhmB,EAAWD,EAAY+T,GAAY,oBAEtD,GAAI3H,EAAsB6Z,GAAS,CACjC,IAAK5kB,EAAQ,EAAGE,EAASsJ,EAAkBkJ,GAAWxS,EAASF,EAAOA,IAEpE,GADA4K,EAASqa,EAAOvS,EAAS1S,IACrB4K,GAAUzK,EAAcukB,EAAiB9Z,GAAS,OAAOA,EAC7D,OAAO,IAAI4Z,GAAO,GAEtB/Y,EAAWR,EAAYyH,EAAUkS,GAGnClZ,EAAOD,EAASC,KAChB,QAASF,EAAO5N,EAAK8N,EAAMD,IAAWG,KAAM,CAC1C,IACEhB,EAASqa,EAAOzZ,EAAK5L,OACrB,MAAOiE,GACPoM,EAAcxE,EAAU,QAAS5H,GAEnC,GAAqB,iBAAV+G,GAAsBA,GAAUzK,EAAcukB,EAAiB9Z,GAAS,OAAOA,EAC1F,OAAO,IAAI4Z,GAAO,K,qBC/DtB,IAAI5mB,EAAO,EAAQ,MACfoS,EAAW,EAAQ,MACnBkP,EAAY,EAAQ,MAExBpgB,EAAOL,QAAU,SAAUgN,EAAUsI,EAAMnU,GACzC,IAAIslB,EAAaC,EACjBnV,EAASvE,GACT,IAEE,GADAyZ,EAAchG,EAAUzT,EAAU,WAC7ByZ,EAAa,CAChB,GAAa,UAATnR,EAAkB,MAAMnU,EAC5B,OAAOA,EAETslB,EAActnB,EAAKsnB,EAAazZ,GAChC,MAAO5H,GACPshB,GAAa,EACbD,EAAcrhB,EAEhB,GAAa,UAATkQ,EAAkB,MAAMnU,EAC5B,GAAIulB,EAAY,MAAMD,EAEtB,OADAlV,EAASkV,GACFtlB,I,kCCpBT,IAaI+W,EAAmByO,EAAmCC,EAbtD5kB,EAAQ,EAAQ,MAChB/B,EAAa,EAAQ,KACrBU,EAAS,EAAQ,IACjBkC,EAAiB,EAAQ,MACzBD,EAAgB,EAAQ,MACxBlC,EAAkB,EAAQ,MAC1B0Y,EAAU,EAAQ,MAElBzH,EAAWjR,EAAgB,YAC3B6Y,GAAyB,EAOzB,GAAGnQ,OACLwd,EAAgB,GAAGxd,OAEb,SAAUwd,GAEdD,EAAoC9jB,EAAeA,EAAe+jB,IAC9DD,IAAsCzkB,OAAOlB,YAAWkX,EAAoByO,IAHlDpN,GAAyB,GAO3D,IAAIsN,OAA8C5lB,GAArBiX,GAAkClW,GAAM,WACnE,IAAIoR,EAAO,GAEX,OAAO8E,EAAkBvG,GAAUxS,KAAKiU,KAAUA,KAGhDyT,EAAwB3O,EAAoB,GACvCkB,IAASlB,EAAoBvX,EAAOuX,IAIxCjY,EAAWiY,EAAkBvG,KAChC/O,EAAcsV,EAAmBvG,GAAU,WACzC,OAAO7S,QAIXuB,EAAOL,QAAU,CACfkY,kBAAmBA,EACnBqB,uBAAwBA,I,iBC9C1BlZ,EAAOL,QAAU,I,qBCAjB,IAAI8F,EAAW,EAAQ,MAIvBzF,EAAOL,QAAU,SAAU8mB,GACzB,OAAOhhB,EAASghB,EAAIrlB,U,qBCLtB,IAAIO,EAAQ,EAAQ,MAChB/B,EAAa,EAAQ,KACrBwC,EAAS,EAAQ,MACjBF,EAAc,EAAQ,MACtBiE,EAA6B,qBAC7B2c,EAAgB,EAAQ,MACxB9c,EAAsB,EAAQ,MAE9B0gB,EAAuB1gB,EAAoBge,QAC3C3d,EAAmBL,EAAoBb,IAEvC5E,EAAiBsB,OAAOtB,eAExBomB,EAAsBzkB,IAAgBP,GAAM,WAC9C,OAAsF,IAA/EpB,GAAe,cAA6B,SAAU,CAAEO,MAAO,IAAKM,UAGzEwlB,EAAWxmB,OAAOA,QAAQqd,MAAM,UAEhCjF,EAAcxY,EAAOL,QAAU,SAAUmB,EAAO+H,EAAMzK,GACvB,YAA7BgC,OAAOyI,GAAMsH,MAAM,EAAG,KACxBtH,EAAO,IAAMzI,OAAOyI,GAAM4J,QAAQ,qBAAsB,MAAQ,KAE9DrU,GAAWA,EAAQsa,SAAQ7P,EAAO,OAASA,GAC3CzK,GAAWA,EAAQua,SAAQ9P,EAAO,OAASA,KAC1CzG,EAAOtB,EAAO,SAAYqF,GAA8BrF,EAAM+H,OAASA,IAC1EtI,EAAeO,EAAO,OAAQ,CAAEA,MAAO+H,EAAMhI,cAAc,IAEzD8lB,GAAuBvoB,GAAWgE,EAAOhE,EAAS,UAAY0C,EAAMM,SAAWhD,EAAQyoB,OACzFtmB,EAAeO,EAAO,SAAU,CAAEA,MAAO1C,EAAQyoB,QAEnD,IACMzoB,GAAWgE,EAAOhE,EAAS,gBAAkBA,EAAQ6K,YACnD/G,GAAa3B,EAAeO,EAAO,YAAa,CAAEuX,UAAU,IAEvDvX,EAAMH,YAAWG,EAAMH,eAAYC,GAC9C,MAAOmE,IACT,IAAIqP,EAAQsS,EAAqB5lB,GAG/B,OAFGsB,EAAOgS,EAAO,YACjBA,EAAM+C,OAASyP,EAASjH,KAAoB,iBAAR9W,EAAmBA,EAAO,KACvD/H,GAKXoE,SAASvE,UAAUmR,SAAW0G,GAAY,WACxC,OAAO5Y,EAAWnB,OAAS4H,EAAiB5H,MAAM0Y,QAAU2L,EAAcrkB,QACzE,a,iBC/CH,IAAIqoB,EAAOjc,KAAKic,KACZ1W,EAAQvF,KAAKuF,MAKjBpQ,EAAOL,QAAUkL,KAAKkc,OAAS,SAAeC,GAC5C,IAAI9W,GAAK8W,EACT,OAAQ9W,EAAI,EAAIE,EAAQ0W,GAAM5W,K,qBCRhC,IAiBI+W,EAAOC,EAAMnT,EAAMoT,EAAQC,EAAQC,EAAMC,EAASC,EAjBlDplB,EAAS,EAAQ,MACjB4J,EAAO,EAAQ,MACfuL,EAA2B,UAC3BkQ,EAAY,WACZC,EAAS,EAAQ,MACjBC,EAAgB,EAAQ,MACxBC,EAAkB,EAAQ,MAC1BC,EAAU,EAAQ,MAElBC,EAAmB1lB,EAAO0lB,kBAAoB1lB,EAAO2lB,uBACrDvN,EAAWpY,EAAOoY,SAClB6C,EAAUjb,EAAOib,QACjB2K,EAAU5lB,EAAO4lB,QAEjBC,EAA2B1Q,EAAyBnV,EAAQ,kBAC5D8lB,EAAiBD,GAA4BA,EAAyBlnB,MAKrEmnB,IACHhB,EAAQ,WACN,IAAIroB,EAAQwS,EACRwW,IAAYhpB,EAASwe,EAAQ8K,SAAStpB,EAAOupB,OACjD,MAAOjB,EAAM,CACX9V,EAAK8V,EAAK9V,GACV8V,EAAOA,EAAKta,KACZ,IACEwE,IACA,MAAOrM,GAGP,MAFImiB,EAAMC,IACLpT,OAAOnT,EACNmE,GAERgP,OAAOnT,EACLhC,GAAQA,EAAOwpB,SAKhBX,GAAWG,GAAYD,IAAmBE,IAAoBtN,GAQvDmN,GAAiBK,GAAWA,EAAQM,SAE9Cf,EAAUS,EAAQM,aAAQznB,GAE1B0mB,EAAQre,YAAc8e,EACtBR,EAAOxb,EAAKub,EAAQC,KAAMD,GAC1BH,EAAS,WACPI,EAAKN,KAGEW,EACTT,EAAS,WACP/J,EAAQkL,SAASrB,KAUnBO,EAAYzb,EAAKyb,EAAWrlB,GAC5BglB,EAAS,WACPK,EAAUP,MA/BZG,GAAS,EACTC,EAAO9M,EAASgO,eAAe,IAC/B,IAAIV,EAAiBZ,GAAOuB,QAAQnB,EAAM,CAAEoB,eAAe,IAC3DtB,EAAS,WACPE,EAAK5S,KAAO2S,GAAUA,KAgC5BpnB,EAAOL,QAAUsoB,GAAkB,SAAU7W,GAC3C,IAAIsX,EAAO,CAAEtX,GAAIA,EAAIxE,UAAMhM,GACvBmT,IAAMA,EAAKnH,KAAO8b,GACjBxB,IACHA,EAAOwB,EACPvB,KACApT,EAAO2U,I,oBCnFX,IAAIC,EAAgB,EAAQ,KAG5B3oB,EAAOL,QAAUgpB,KAAmBtO,OAAO,UAAYA,OAAOuO,Q,oBCF9D,IAAIzZ,EAAa,EAAQ,MACrBxN,EAAQ,EAAQ,MAGpB3B,EAAOL,UAAYkC,OAAOgnB,wBAA0BlnB,GAAM,WACxD,IAAImnB,EAASzO,SAGb,OAAQja,OAAO0oB,MAAajnB,OAAOinB,aAAmBzO,UAEnDA,OAAO8D,MAAQhP,GAAcA,EAAa,O,qBCX/C,IAAIhN,EAAS,EAAQ,MACjBvC,EAAa,EAAQ,KACrBkjB,EAAgB,EAAQ,MAExBiB,EAAU5hB,EAAO4hB,QAErB/jB,EAAOL,QAAUC,EAAWmkB,IAAY,cAAchR,KAAK+P,EAAciB,K,kCCLzE,IAAIrU,EAAY,EAAQ,MAEpBqZ,EAAoB,SAAUvkB,GAChC,IAAI6jB,EAASW,EACbvqB,KAAK6oB,QAAU,IAAI9iB,GAAE,SAAUykB,EAAWC,GACxC,QAAgBtoB,IAAZynB,QAAoCznB,IAAXooB,EAAsB,MAAMjpB,UAAU,2BACnEsoB,EAAUY,EACVD,EAASE,KAEXzqB,KAAK4pB,QAAU3Y,EAAU2Y,GACzB5pB,KAAKuqB,OAAStZ,EAAUsZ,IAK1BhpB,EAAOL,QAAQ0X,EAAI,SAAU7S,GAC3B,OAAO,IAAIukB,EAAkBvkB,K,qBCjB/B,IAAIsN,EAAW,EAAQ,MAEvB9R,EAAOL,QAAU,SAAUM,EAAUkpB,GACnC,YAAoBvoB,IAAbX,EAAyB2J,UAAUxI,OAAS,EAAI,GAAK+nB,EAAWrX,EAAS7R,K,kCCFlF,IAAIiC,EAAc,EAAQ,MACtBkD,EAAc,EAAQ,MACtBtG,EAAO,EAAQ,MACf6C,EAAQ,EAAQ,MAChBynB,EAAa,EAAQ,MACrBC,EAA8B,EAAQ,MACtCC,EAA6B,EAAQ,MACrC9e,EAAW,EAAQ,MACnB+C,EAAgB,EAAQ,MAGxBgc,EAAU1nB,OAAO2nB,OAEjBjpB,EAAiBsB,OAAOtB,eACxBb,EAAS0F,EAAY,GAAG1F,QAI5BM,EAAOL,SAAW4pB,GAAW5nB,GAAM,WAEjC,GAAIO,GAQiB,IARFqnB,EAAQ,CAAE/H,EAAG,GAAK+H,EAAQhpB,EAAe,GAAI,IAAK,CACnE6X,YAAY,EACZjT,IAAK,WACH5E,EAAe9B,KAAM,IAAK,CACxBqC,MAAO,EACPsX,YAAY,OAGd,CAAEoJ,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAIiI,EAAI,GACJC,EAAI,GAEJZ,EAASzO,SACTsP,EAAW,uBAGf,OAFAF,EAAEX,GAAU,EACZa,EAASlM,MAAM,IAAI9R,SAAQ,SAAUie,GAAOF,EAAEE,GAAOA,KACpB,GAA1BL,EAAQ,GAAIE,GAAGX,IAAgBM,EAAWG,EAAQ,GAAIG,IAAI/J,KAAK,KAAOgK,KAC1E,SAAgB5e,EAAQoM,GAC3B,IAAI0S,EAAIrf,EAASO,GACbO,EAAkB1B,UAAUxI,OAC5BF,EAAQ,EACR2nB,EAAwBQ,EAA4BhS,EACpDoL,EAAuB6G,EAA2BjS,EACtD,MAAO/L,EAAkBpK,EAAO,CAC9B,IAIIH,EAJAE,EAAIsM,EAAc3D,UAAU1I,MAC5B6H,EAAO8f,EAAwBnpB,EAAO0pB,EAAWnoB,GAAI4nB,EAAsB5nB,IAAMmoB,EAAWnoB,GAC5FG,EAAS2H,EAAK3H,OACd4H,EAAI,EAER,MAAO5H,EAAS4H,EACdjI,EAAMgI,EAAKC,KACN9G,IAAepD,EAAK2jB,EAAsBxhB,EAAGF,KAAM8oB,EAAE9oB,GAAOE,EAAEF,IAErE,OAAO8oB,GACPN,G,mBCvDJ,IAmDIO,EAnDA5Y,EAAW,EAAQ,MACnB6Y,EAAyB,EAAQ,MACjCC,EAAc,EAAQ,KACtBhH,EAAa,EAAQ,MACrBiH,EAAO,EAAQ,KACfvN,EAAwB,EAAQ,KAChCmH,EAAY,EAAQ,MAEpBqG,EAAK,IACLC,EAAK,IACLzjB,EAAY,YACZ0jB,EAAS,SACTC,EAAWxG,EAAU,YAErByG,EAAmB,aAEnBC,EAAY,SAAUC,GACxB,OAAOL,EAAKC,EAASF,EAAKM,EAAUL,EAAK,IAAMC,EAASF,GAItDO,EAA4B,SAAUX,GACxCA,EAAgBY,MAAMH,EAAU,KAChCT,EAAgBa,QAChB,IAAIC,EAAOd,EAAgBe,aAAahpB,OAExC,OADAioB,EAAkB,KACXc,GAILE,EAA2B,WAE7B,IAEIC,EAFAC,EAAStO,EAAsB,UAC/BuO,EAAK,OAASb,EAAS,IAU3B,OARAY,EAAOE,MAAMC,QAAU,OACvBlB,EAAKmB,YAAYJ,GAEjBA,EAAOlS,IAAM1Y,OAAO6qB,GACpBF,EAAiBC,EAAOK,cAAc9Q,SACtCwQ,EAAeO,OACfP,EAAeL,MAAMH,EAAU,sBAC/BQ,EAAeJ,QACRI,EAAexT,GASpBgU,EAAkB,WACpB,IACEzB,EAAkB,IAAI0B,cAAc,YACpC,MAAOzmB,IACTwmB,EAAqC,oBAAZhR,SACrBA,SAAS2N,QAAU4B,EACjBW,EAA0BX,GAC1BgB,IACFL,EAA0BX,GAC9B,IAAI1oB,EAAS4oB,EAAY5oB,OACzB,MAAOA,WAAiBmqB,EAAgB7kB,GAAWsjB,EAAY5oB,IAC/D,OAAOmqB,KAGTvI,EAAWqH,IAAY,EAKvBrqB,EAAOL,QAAUkC,OAAOvB,QAAU,SAAgB0K,EAAGygB,GACnD,IAAI3f,EAQJ,OAPU,OAANd,GACFsf,EAAiB5jB,GAAawK,EAASlG,GACvCc,EAAS,IAAIwe,EACbA,EAAiB5jB,GAAa,KAE9BoF,EAAOue,GAAYrf,GACdc,EAASyf,SACM3qB,IAAf6qB,EAA2B3f,EAASie,EAAuB1S,EAAEvL,EAAQ2f,K,qBCjF9E,IAAIvpB,EAAc,EAAQ,MACtBwpB,EAA0B,EAAQ,MAClCxU,EAAuB,EAAQ,MAC/BhG,EAAW,EAAQ,MACnBnE,EAAkB,EAAQ,MAC1Bqc,EAAa,EAAQ,MAKzBzpB,EAAQ0X,EAAInV,IAAgBwpB,EAA0B7pB,OAAO8pB,iBAAmB,SAA0B3gB,EAAGygB,GAC3Gva,EAASlG,GACT,IAIIjK,EAJA6qB,EAAQ7e,EAAgB0e,GACxB1iB,EAAOqgB,EAAWqC,GAClBrqB,EAAS2H,EAAK3H,OACdF,EAAQ,EAEZ,MAAOE,EAASF,EAAOgW,EAAqBG,EAAErM,EAAGjK,EAAMgI,EAAK7H,KAAU0qB,EAAM7qB,IAC5E,OAAOiK,I,qBClBT,IAAI9I,EAAc,EAAQ,MACtB2pB,EAAiB,EAAQ,MACzBH,EAA0B,EAAQ,MAClCxa,EAAW,EAAQ,MACnBoH,EAAgB,EAAQ,MAExBxY,EAAaC,UAEb+rB,EAAkBjqB,OAAOtB,eAEzBwrB,EAA4BlqB,OAAOyV,yBACnC0U,EAAa,aACb5lB,EAAe,eACf6lB,EAAW,WAIftsB,EAAQ0X,EAAInV,EAAcwpB,EAA0B,SAAwB1gB,EAAGsP,EAAG4R,GAIhF,GAHAhb,EAASlG,GACTsP,EAAIhC,EAAcgC,GAClBpJ,EAASgb,GACQ,oBAANlhB,GAA0B,cAANsP,GAAqB,UAAW4R,GAAcD,KAAYC,IAAeA,EAAWD,GAAW,CAC5H,IAAIE,EAAUJ,EAA0B/gB,EAAGsP,GACvC6R,GAAWA,EAAQF,KACrBjhB,EAAEsP,GAAK4R,EAAWprB,MAClBorB,EAAa,CACXrrB,aAAcuF,KAAgB8lB,EAAaA,EAAW9lB,GAAgB+lB,EAAQ/lB,GAC9EgS,WAAY4T,KAAcE,EAAaA,EAAWF,GAAcG,EAAQH,GACxE3T,UAAU,IAGd,OAAOyT,EAAgB9gB,EAAGsP,EAAG4R,IAC7BJ,EAAkB,SAAwB9gB,EAAGsP,EAAG4R,GAIlD,GAHAhb,EAASlG,GACTsP,EAAIhC,EAAcgC,GAClBpJ,EAASgb,GACLL,EAAgB,IAClB,OAAOC,EAAgB9gB,EAAGsP,EAAG4R,GAC7B,MAAOnnB,IACT,GAAI,QAASmnB,GAAc,QAASA,EAAY,MAAMpsB,EAAW,2BAEjE,MADI,UAAWosB,IAAYlhB,EAAEsP,GAAK4R,EAAWprB,OACtCkK,I,qBCzCT,IAAI9I,EAAc,EAAQ,MACtBpD,EAAO,EAAQ,MACfwqB,EAA6B,EAAQ,MACrCxR,EAA2B,EAAQ,MACnC/K,EAAkB,EAAQ,MAC1BuL,EAAgB,EAAQ,MACxBlW,EAAS,EAAQ,MACjBypB,EAAiB,EAAQ,MAGzBE,EAA4BlqB,OAAOyV,yBAIvC3X,EAAQ0X,EAAInV,EAAc6pB,EAA4B,SAAkC/gB,EAAGsP,GAGzF,GAFAtP,EAAI+B,EAAgB/B,GACpBsP,EAAIhC,EAAcgC,GACduR,EAAgB,IAClB,OAAOE,EAA0B/gB,EAAGsP,GACpC,MAAOvV,IACT,GAAI3C,EAAO4I,EAAGsP,GAAI,OAAOxC,GAA0BhZ,EAAKwqB,EAA2BjS,EAAGrM,EAAGsP,GAAItP,EAAEsP,M,qBCnBjG,IAAIjY,EAAU,EAAQ,MAClB0K,EAAkB,EAAQ,MAC1Bqf,EAAuB,UACvBtmB,EAAa,EAAQ,MAErBumB,EAA+B,iBAAVrP,QAAsBA,QAAUnb,OAAO+D,oBAC5D/D,OAAO+D,oBAAoBoX,QAAU,GAErCsP,EAAiB,SAAUhrB,GAC7B,IACE,OAAO8qB,EAAqB9qB,GAC5B,MAAOyD,GACP,OAAOe,EAAWumB,KAKtBrsB,EAAOL,QAAQ0X,EAAI,SAA6B/V,GAC9C,OAAO+qB,GAA8B,UAAfhqB,EAAQf,GAC1BgrB,EAAehrB,GACf8qB,EAAqBrf,EAAgBzL,M,qBCrB3C,IAAIirB,EAAqB,EAAQ,MAC7BvC,EAAc,EAAQ,KAEtBhH,EAAagH,EAAYtqB,OAAO,SAAU,aAK9CC,EAAQ0X,EAAIxV,OAAO+D,qBAAuB,SAA6BoF,GACrE,OAAOuhB,EAAmBvhB,EAAGgY,K,mBCR/BrjB,EAAQ0X,EAAIxV,OAAOgnB,uB,qBCDnB,IAAIzmB,EAAS,EAAQ,MACjBxC,EAAa,EAAQ,KACrB4K,EAAW,EAAQ,MACnBqZ,EAAY,EAAQ,MACpB2I,EAA2B,EAAQ,MAEnCnC,EAAWxG,EAAU,YACrB3R,EAAUrQ,OACVoB,EAAkBiP,EAAQvR,UAK9BX,EAAOL,QAAU6sB,EAA2Bta,EAAQ1P,eAAiB,SAAUwI,GAC7E,IAAI6G,EAASrH,EAASQ,GACtB,GAAI5I,EAAOyP,EAAQwY,GAAW,OAAOxY,EAAOwY,GAC5C,IAAIphB,EAAc4I,EAAO5I,YACzB,OAAIrJ,EAAWqJ,IAAgB4I,aAAkB5I,EACxCA,EAAYtI,UACZkR,aAAkBK,EAAUjP,EAAkB,O,qBCnBzD,IAAItB,EAAQ,EAAQ,MAChBH,EAAW,EAAQ,KACnBa,EAAU,EAAQ,MAClBoqB,EAA8B,EAAQ,MAGtCC,EAAgB7qB,OAAOC,aACvB6qB,EAAsBhrB,GAAM,WAAc+qB,EAAc,MAI5D1sB,EAAOL,QAAWgtB,GAAuBF,EAA+B,SAAsBnrB,GAC5F,QAAKE,EAASF,OACVmrB,GAA8C,eAAfpqB,EAAQf,OACpCorB,GAAgBA,EAAcprB,MACnCorB,G,qBCfJ,IAAItnB,EAAc,EAAQ,MAE1BpF,EAAOL,QAAUyF,EAAY,GAAG/D,gB,qBCFhC,IAAI+D,EAAc,EAAQ,MACtBhD,EAAS,EAAQ,MACjB2K,EAAkB,EAAQ,MAC1BO,EAAU,gBACV0V,EAAa,EAAQ,MAErBvV,EAAOrI,EAAY,GAAGqI,MAE1BzN,EAAOL,QAAU,SAAUkS,EAAQ+a,GACjC,IAGI7rB,EAHAiK,EAAI+B,EAAgB8E,GACpBlJ,EAAI,EACJmD,EAAS,GAEb,IAAK/K,KAAOiK,GAAI5I,EAAO4gB,EAAYjiB,IAAQqB,EAAO4I,EAAGjK,IAAQ0M,EAAK3B,EAAQ/K,GAE1E,MAAO6rB,EAAMxrB,OAASuH,EAAOvG,EAAO4I,EAAGjK,EAAM6rB,EAAMjkB,SAChD2E,EAAQxB,EAAQ/K,IAAQ0M,EAAK3B,EAAQ/K,IAExC,OAAO+K,I,qBClBT,IAAIygB,EAAqB,EAAQ,MAC7BvC,EAAc,EAAQ,KAK1BhqB,EAAOL,QAAUkC,OAAOkH,MAAQ,SAAciC,GAC5C,OAAOuhB,EAAmBvhB,EAAGgf,K,gCCN/B,IAAI6C,EAAwB,GAAGpK,qBAE3BnL,EAA2BzV,OAAOyV,yBAGlCwV,EAAcxV,IAA6BuV,EAAsB/tB,KAAK,CAAE,EAAG,GAAK,GAIpFa,EAAQ0X,EAAIyV,EAAc,SAA8BxM,GACtD,IAAI7H,EAAanB,EAAyB7Y,KAAM6hB,GAChD,QAAS7H,GAAcA,EAAWL,YAChCyU,G,qBCZJ,IAAIznB,EAAc,EAAQ,MACtB8L,EAAW,EAAQ,MACnB6b,EAAqB,EAAQ,MAMjC/sB,EAAOL,QAAUkC,OAAOY,iBAAmB,aAAe,GAAK,WAC7D,IAEIkW,EAFAqU,GAAiB,EACjBja,EAAO,GAEX,IAEE4F,EAASvT,EAAYvD,OAAOyV,yBAAyBzV,OAAOlB,UAAW,aAAa4F,KACpFoS,EAAO5F,EAAM,IACbia,EAAiBja,aAAgBrS,MACjC,MAAOqE,IACT,OAAO,SAAwBiG,EAAGkP,GAKhC,OAJAhJ,EAASlG,GACT+hB,EAAmB7S,GACf8S,EAAgBrU,EAAO3N,EAAGkP,GACzBlP,EAAEiiB,UAAY/S,EACZlP,GAfoD,QAiBzDpK,I,iCCzBN,IAAIoR,EAAwB,EAAQ,MAChC3P,EAAU,EAAQ,KAItBrC,EAAOL,QAAUqS,EAAwB,GAAGF,SAAW,WACrD,MAAO,WAAazP,EAAQ5D,MAAQ,M,qBCPtC,IAAIK,EAAO,EAAQ,MACfc,EAAa,EAAQ,KACrB4B,EAAW,EAAQ,KAEnB1B,EAAaC,UAIjBC,EAAOL,QAAU,SAAUutB,EAAOC,GAChC,IAAI/b,EAAIgc,EACR,GAAa,WAATD,GAAqBvtB,EAAWwR,EAAK8b,EAAMpb,YAActQ,EAAS4rB,EAAMtuB,EAAKsS,EAAI8b,IAAS,OAAOE,EACrG,GAAIxtB,EAAWwR,EAAK8b,EAAMG,WAAa7rB,EAAS4rB,EAAMtuB,EAAKsS,EAAI8b,IAAS,OAAOE,EAC/E,GAAa,WAATD,GAAqBvtB,EAAWwR,EAAK8b,EAAMpb,YAActQ,EAAS4rB,EAAMtuB,EAAKsS,EAAI8b,IAAS,OAAOE,EACrG,MAAMttB,EAAW,6C,qBCbnB,IAAIud,EAAa,EAAQ,MACrBjY,EAAc,EAAQ,MACtB6d,EAA4B,EAAQ,MACpCoG,EAA8B,EAAQ,MACtCnY,EAAW,EAAQ,MAEnBxR,EAAS0F,EAAY,GAAG1F,QAG5BM,EAAOL,QAAU0d,EAAW,UAAW,YAAc,SAAiB/b,GACpE,IAAIyH,EAAOka,EAA0B5L,EAAEnG,EAAS5P,IAC5CunB,EAAwBQ,EAA4BhS,EACxD,OAAOwR,EAAwBnpB,EAAOqJ,EAAM8f,EAAsBvnB,IAAOyH,I,oBCZ3E,IAAI5G,EAAS,EAAQ,MAErBnC,EAAOL,QAAUwC,G,iBCFjBnC,EAAOL,QAAU,SAAU+R,GACzB,IACE,MAAO,CAAE3M,OAAO,EAAOjE,MAAO4Q,KAC9B,MAAO3M,GACP,MAAO,CAAEA,OAAO,EAAMjE,MAAOiE,M,qBCJjC,IAAI5C,EAAS,EAAQ,MACjBmrB,EAA2B,EAAQ,MACnC1tB,EAAa,EAAQ,KACrBgW,EAAW,EAAQ,MACnBkN,EAAgB,EAAQ,MACxBziB,EAAkB,EAAQ,MAC1BktB,EAAa,EAAQ,MACrBxU,EAAU,EAAQ,MAClB5J,EAAa,EAAQ,MAErBqe,EAAyBF,GAA4BA,EAAyB3sB,UAC9EyO,EAAU/O,EAAgB,WAC1BotB,GAAc,EACdC,EAAiC9tB,EAAWuC,EAAOwrB,uBAEnDC,EAA6BhY,EAAS,WAAW,WACnD,IAAIiY,EAA6B/K,EAAcwK,GAC3CQ,EAAyBD,IAA+BztB,OAAOktB,GAInE,IAAKQ,GAAyC,KAAf3e,EAAmB,OAAO,EAEzD,GAAI4J,KAAayU,EAAuB,WAAYA,EAAuB,YAAa,OAAO,EAI/F,GAAIre,GAAc,IAAM,cAAc4D,KAAK8a,GAA6B,OAAO,EAE/E,IAAIvG,EAAU,IAAIgG,GAAyB,SAAUjF,GAAWA,EAAQ,MACpE0F,EAAc,SAAUrc,GAC1BA,GAAK,eAA6B,gBAEhCzI,EAAcqe,EAAQre,YAAc,GAGxC,OAFAA,EAAYmG,GAAW2e,EACvBN,EAAcnG,EAAQC,MAAK,yBAAwCwG,GAC9DN,IAEGK,GAA0BP,IAAeG,KAGnD1tB,EAAOL,QAAU,CACfquB,YAAaJ,EACbK,gBAAiBP,EACjBD,YAAaA,I,qBC5Cf,IAAItrB,EAAS,EAAQ,MAErBnC,EAAOL,QAAUwC,EAAO4lB,S,qBCFxB,IAAI7W,EAAW,EAAQ,MACnB1P,EAAW,EAAQ,KACnB0sB,EAAuB,EAAQ,MAEnCluB,EAAOL,QAAU,SAAU6E,EAAGwiB,GAE5B,GADA9V,EAAS1M,GACLhD,EAASwlB,IAAMA,EAAE/d,cAAgBzE,EAAG,OAAOwiB,EAC/C,IAAImH,EAAoBD,EAAqB7W,EAAE7S,GAC3C6jB,EAAU8F,EAAkB9F,QAEhC,OADAA,EAAQrB,GACDmH,EAAkB7G,U,oBCV3B,IAAIgG,EAA2B,EAAQ,MACnCxX,EAA8B,EAAQ,MACtC8X,EAA6B,oBAEjC5tB,EAAOL,QAAUiuB,IAA+B9X,GAA4B,SAAUlC,GACpF0Z,EAAyBc,IAAIxa,GAAU2T,UAAK3mB,GAAW,mB,qBCLzD,IAAIL,EAAiB,UAErBP,EAAOL,QAAU,SAAU0uB,EAAQC,EAAQvtB,GACzCA,KAAOstB,GAAU9tB,EAAe8tB,EAAQttB,EAAK,CAC3CF,cAAc,EACdsE,IAAK,WAAc,OAAOmpB,EAAOvtB,IACjCwF,IAAK,SAAUjF,GAAMgtB,EAAOvtB,GAAOO,O,iBCNvC,IAAIitB,EAAQ,WACV9vB,KAAKyoB,KAAO,KACZzoB,KAAK+vB,KAAO,MAGdD,EAAM5tB,UAAY,CAChB3B,IAAK,SAAUyvB,GACb,IAAIpa,EAAQ,CAAEoa,KAAMA,EAAM7hB,KAAM,MAC5BnO,KAAKyoB,KAAMzoB,KAAK+vB,KAAK5hB,KAAOyH,EAC3B5V,KAAKyoB,KAAO7S,EACjB5V,KAAK+vB,KAAOna,GAEdlP,IAAK,WACH,IAAIkP,EAAQ5V,KAAKyoB,KACjB,GAAI7S,EAGF,OAFA5V,KAAKyoB,KAAO7S,EAAMzH,KACdnO,KAAK+vB,OAASna,IAAO5V,KAAK+vB,KAAO,MAC9Bna,EAAMoa,OAKnBzuB,EAAOL,QAAU4uB,G,qBCtBjB,IAAIzvB,EAAO,EAAQ,MACfoS,EAAW,EAAQ,MACnBtR,EAAa,EAAQ,KACrByC,EAAU,EAAQ,MAClB+b,EAAa,EAAQ,MAErBte,EAAaC,UAIjBC,EAAOL,QAAU,SAAU+uB,EAAGztB,GAC5B,IAAIyQ,EAAOgd,EAAEhd,KACb,GAAI9R,EAAW8R,GAAO,CACpB,IAAI5F,EAAShN,EAAK4S,EAAMgd,EAAGztB,GAE3B,OADe,OAAX6K,GAAiBoF,EAASpF,GACvBA,EAET,GAAmB,WAAfzJ,EAAQqsB,GAAiB,OAAO5vB,EAAKsf,EAAYsQ,EAAGztB,GACxD,MAAMnB,EAAW,iD,kCCfnB,IAAIhB,EAAO,EAAQ,MACfsG,EAAc,EAAQ,MACtB0M,EAAW,EAAQ,MACnB6c,EAAc,EAAQ,MACtBC,EAAgB,EAAQ,MACxBhL,EAAS,EAAQ,MACjBtjB,EAAS,EAAQ,IACjB+F,EAAmB,YACnBwoB,EAAsB,EAAQ,MAC9BC,EAAkB,EAAQ,MAE1BC,EAAgBnL,EAAO,wBAAyBxjB,OAAOO,UAAU8R,SACjEuc,EAAa1Q,OAAO3d,UAAU+Q,KAC9Bud,EAAcD,EACdhuB,EAASoE,EAAY,GAAGpE,QACxBsM,EAAUlI,EAAY,GAAGkI,SACzBmF,EAAUrN,EAAY,GAAGqN,SACzBV,EAAc3M,EAAY,GAAG+K,OAE7B+e,EAA2B,WAC7B,IAAIC,EAAM,IACNC,EAAM,MAGV,OAFAtwB,EAAKkwB,EAAYG,EAAK,KACtBrwB,EAAKkwB,EAAYI,EAAK,KACG,IAAlBD,EAAIE,WAAqC,IAAlBD,EAAIC,UALL,GAQ3BC,EAAgBV,EAAcW,aAG9BC,OAAuC5uB,IAAvB,OAAO8Q,KAAK,IAAI,GAEhC+d,EAAQP,GAA4BM,GAAiBF,GAAiBT,GAAuBC,EAE7FW,IACFR,EAAc,SAAcvX,GAC1B,IAII5L,EAAQ4jB,EAAQL,EAAWtS,EAAOpU,EAAGkJ,EAAQ8d,EAJ7C/Q,EAAKngB,KACL2V,EAAQ/N,EAAiBuY,GACzBK,EAAMnN,EAAS4F,GACfkY,EAAMxb,EAAMwb,IAGhB,GAAIA,EAIF,OAHAA,EAAIP,UAAYzQ,EAAGyQ,UACnBvjB,EAAShN,EAAKmwB,EAAaW,EAAK3Q,GAChCL,EAAGyQ,UAAYO,EAAIP,UACZvjB,EAGT,IAAI+jB,EAASzb,EAAMyb,OACfC,EAASR,GAAiB1Q,EAAGkR,OAC7BjR,EAAQ/f,EAAK6vB,EAAa/P,GAC1BzH,EAASyH,EAAGzH,OACZ4Y,EAAa,EACbC,EAAU/Q,EA+Cd,GA7CI6Q,IACFjR,EAAQpM,EAAQoM,EAAO,IAAK,KACC,IAAzBvR,EAAQuR,EAAO,OACjBA,GAAS,KAGXmR,EAAUje,EAAYkN,EAAKL,EAAGyQ,WAE1BzQ,EAAGyQ,UAAY,KAAOzQ,EAAGqR,WAAarR,EAAGqR,WAA+C,OAAlCjvB,EAAOie,EAAKL,EAAGyQ,UAAY,MACnFlY,EAAS,OAASA,EAAS,IAC3B6Y,EAAU,IAAMA,EAChBD,KAIFL,EAAS,IAAIpR,OAAO,OAASnH,EAAS,IAAK0H,IAGzC2Q,IACFE,EAAS,IAAIpR,OAAO,IAAMnH,EAAS,WAAY0H,IAE7CqQ,IAA0BG,EAAYzQ,EAAGyQ,WAE7CtS,EAAQje,EAAKkwB,EAAYc,EAASJ,EAAS9Q,EAAIoR,GAE3CF,EACE/S,GACFA,EAAMmQ,MAAQnb,EAAYgL,EAAMmQ,MAAO6C,GACvChT,EAAM,GAAKhL,EAAYgL,EAAM,GAAIgT,GACjChT,EAAM7b,MAAQ0d,EAAGyQ,UACjBzQ,EAAGyQ,WAAatS,EAAM,GAAG3b,QACpBwd,EAAGyQ,UAAY,EACbH,GAA4BnS,IACrC6B,EAAGyQ,UAAYzQ,EAAGzc,OAAS4a,EAAM7b,MAAQ6b,EAAM,GAAG3b,OAASiuB,GAEzDG,GAAiBzS,GAASA,EAAM3b,OAAS,GAG3CtC,EAAKiwB,EAAehS,EAAM,GAAI2S,GAAQ,WACpC,IAAK/mB,EAAI,EAAGA,EAAIiB,UAAUxI,OAAS,EAAGuH,SACf/H,IAAjBgJ,UAAUjB,KAAkBoU,EAAMpU,QAAK/H,MAK7Cmc,GAAS8S,EAEX,IADA9S,EAAM8S,OAAShe,EAASvR,EAAO,MAC1BqI,EAAI,EAAGA,EAAIknB,EAAOzuB,OAAQuH,IAC7BgnB,EAAQE,EAAOlnB,GACfkJ,EAAO8d,EAAM,IAAM5S,EAAM4S,EAAM,IAInC,OAAO5S,IAIX/c,EAAOL,QAAUsvB,G,kCCnHjB,IAAI/d,EAAW,EAAQ,MAIvBlR,EAAOL,QAAU,WACf,IAAIuO,EAAOgD,EAASzS,MAChBqN,EAAS,GAQb,OAPIoC,EAAKgiB,aAAYpkB,GAAU,KAC3BoC,EAAK/L,SAAQ2J,GAAU,KACvBoC,EAAKiiB,aAAYrkB,GAAU,KAC3BoC,EAAK+hB,YAAWnkB,GAAU,KAC1BoC,EAAKkiB,SAAQtkB,GAAU,KACvBoC,EAAK/M,UAAS2K,GAAU,KACxBoC,EAAK4hB,SAAQhkB,GAAU,KACpBA,I,qBCfT,IAAIhN,EAAO,EAAQ,MACfsD,EAAS,EAAQ,MACjBf,EAAgB,EAAQ,MACxBgvB,EAAc,EAAQ,MAEtBhS,EAAkBC,OAAO3d,UAE7BX,EAAOL,QAAU,SAAU+uB,GACzB,IAAI7P,EAAQ6P,EAAE7P,MACd,YAAiBje,IAAVie,GAAyB,UAAWR,GAAqBjc,EAAOssB,EAAG,WAAYrtB,EAAcgd,EAAiBqQ,GAC1F7P,EAAvB/f,EAAKuxB,EAAa3B,K,qBCVxB,IAAI/sB,EAAQ,EAAQ,MAChBQ,EAAS,EAAQ,MAGjBmuB,EAAUnuB,EAAOmc,OAEjBgR,EAAgB3tB,GAAM,WACxB,IAAIid,EAAK0R,EAAQ,IAAK,KAEtB,OADA1R,EAAGyQ,UAAY,EACW,MAAnBzQ,EAAGlN,KAAK,WAKb6e,EAAgBjB,GAAiB3tB,GAAM,WACzC,OAAQ2uB,EAAQ,IAAK,KAAKR,UAGxBP,EAAeD,GAAiB3tB,GAAM,WAExC,IAAIid,EAAK0R,EAAQ,KAAM,MAEvB,OADA1R,EAAGyQ,UAAY,EACU,MAAlBzQ,EAAGlN,KAAK,UAGjB1R,EAAOL,QAAU,CACf4vB,aAAcA,EACdgB,cAAeA,EACfjB,cAAeA,I,qBC5BjB,IAAI3tB,EAAQ,EAAQ,MAChBQ,EAAS,EAAQ,MAGjBmuB,EAAUnuB,EAAOmc,OAErBte,EAAOL,QAAUgC,GAAM,WACrB,IAAIid,EAAK0R,EAAQ,IAAK,KACtB,QAAS1R,EAAGwR,QAAUxR,EAAGlN,KAAK,OAAsB,MAAbkN,EAAGC,W,qBCR5C,IAAIld,EAAQ,EAAQ,MAChBQ,EAAS,EAAQ,MAGjBmuB,EAAUnuB,EAAOmc,OAErBte,EAAOL,QAAUgC,GAAM,WACrB,IAAIid,EAAK0R,EAAQ,UAAW,KAC5B,MAAiC,MAA1B1R,EAAGlN,KAAK,KAAKme,OAAOtO,GACI,OAA7B,IAAI9O,QAAQmM,EAAI,a,iBCTpB,IAAI9e,EAAaC,UAIjBC,EAAOL,QAAU,SAAU2B,GACzB,QAAUV,GAANU,EAAiB,MAAMxB,EAAW,wBAA0BwB,GAChE,OAAOA,I,iBCHTtB,EAAOL,QAAUkC,OAAO2uB,IAAM,SAAYxJ,EAAGyJ,GAE3C,OAAOzJ,IAAMyJ,EAAU,IAANzJ,GAAW,EAAIA,IAAM,EAAIyJ,EAAIzJ,GAAKA,GAAKyJ,GAAKA,I,kCCJ/D,IAAIpT,EAAa,EAAQ,MACrBnG,EAAuB,EAAQ,MAC/B7W,EAAkB,EAAQ,MAC1B6B,EAAc,EAAQ,MAEtBkN,EAAU/O,EAAgB,WAE9BL,EAAOL,QAAU,SAAU+T,GACzB,IAAI1R,EAAcqb,EAAW3J,GACzBnT,EAAiB2W,EAAqBG,EAEtCnV,GAAeF,IAAgBA,EAAYoN,IAC7C7O,EAAeyB,EAAaoN,EAAS,CACnCvO,cAAc,EACdsE,IAAK,WAAc,OAAO1G,U,qBCfhC,IAAI8B,EAAiB,UACjB6B,EAAS,EAAQ,MACjB/B,EAAkB,EAAQ,MAE1B6C,EAAgB7C,EAAgB,eAEpCL,EAAOL,QAAU,SAAUoL,EAAQ2lB,EAAK1S,GAClCjT,IAAWiT,IAAQjT,EAASA,EAAOpK,WACnCoK,IAAW3I,EAAO2I,EAAQ7H,IAC5B3C,EAAewK,EAAQ7H,EAAe,CAAErC,cAAc,EAAMC,MAAO4vB,M,qBCTvE,IAAI9M,EAAS,EAAQ,MACjBlhB,EAAM,EAAQ,MAEdqG,EAAO6a,EAAO,QAElB5jB,EAAOL,QAAU,SAAUoB,GACzB,OAAOgI,EAAKhI,KAASgI,EAAKhI,GAAO2B,EAAI3B,M,qBCNvC,IAAIoB,EAAS,EAAQ,MACjByW,EAAuB,EAAQ,MAE/B+X,EAAS,qBACTtoB,EAAQlG,EAAOwuB,IAAW/X,EAAqB+X,EAAQ,IAE3D3wB,EAAOL,QAAU0I,G,qBCNjB,IAAI0Q,EAAU,EAAQ,MAClB1Q,EAAQ,EAAQ,OAEnBrI,EAAOL,QAAU,SAAUoB,EAAKD,GAC/B,OAAOuH,EAAMtH,KAASsH,EAAMtH,QAAiBH,IAAVE,EAAsBA,EAAQ,MAChE,WAAY,IAAI2M,KAAK,CACtB6P,QAAS,SACTsT,KAAM7X,EAAU,OAAS,SACzB8X,UAAW,4CACXC,QAAS,2DACT3Z,OAAQ,yC,qBCVV,IAAIjG,EAAW,EAAQ,MACnB6f,EAAe,EAAQ,MACvB1wB,EAAkB,EAAQ,MAE1B+O,EAAU/O,EAAgB,WAI9BL,EAAOL,QAAU,SAAUqL,EAAGgmB,GAC5B,IACI/vB,EADAuD,EAAI0M,EAASlG,GAAG/B,YAEpB,YAAarI,IAAN4D,QAAiD5D,IAA7BK,EAAIiQ,EAAS1M,GAAG4K,IAAyB4hB,EAAqBD,EAAa9vB,K,qBCXxG,IAAIU,EAAQ,EAAQ,MAIpB3B,EAAOL,QAAU,SAAU0P,GACzB,OAAO1N,GAAM,WACX,IAAIoR,EAAO,GAAG1D,GAAa,KAC3B,OAAO0D,IAASA,EAAKmS,eAAiBnS,EAAK0K,MAAM,KAAKrc,OAAS,O,qBCPnE,IAAIgE,EAAc,EAAQ,MACtBI,EAAsB,EAAQ,MAC9BsM,EAAW,EAAQ,MACnB0F,EAAyB,EAAQ,MAEjCxW,EAASoE,EAAY,GAAGpE,QACxBiwB,EAAa7rB,EAAY,GAAG6rB,YAC5Blf,EAAc3M,EAAY,GAAG+K,OAE7BnD,EAAe,SAAUkkB,GAC3B,OAAO,SAAUhkB,EAAOikB,GACtB,IAGIrd,EAAOsd,EAHPnwB,EAAI6Q,EAAS0F,EAAuBtK,IACpCyT,EAAWnb,EAAoB2rB,GAC/Bnd,EAAO/S,EAAEG,OAEb,OAAIuf,EAAW,GAAKA,GAAY3M,EAAakd,EAAoB,QAAKtwB,GACtEkT,EAAQmd,EAAWhwB,EAAG0f,GACf7M,EAAQ,OAAUA,EAAQ,OAAU6M,EAAW,IAAM3M,IACtDod,EAASH,EAAWhwB,EAAG0f,EAAW,IAAM,OAAUyQ,EAAS,MAC3DF,EACElwB,EAAOC,EAAG0f,GACV7M,EACFod,EACEnf,EAAY9Q,EAAG0f,EAAUA,EAAW,GACVyQ,EAAS,OAAlCtd,EAAQ,OAAU,IAA0B,SAIzD9T,EAAOL,QAAU,CAGf0xB,OAAQrkB,GAAa,GAGrBhM,OAAQgM,GAAa,K,kCCjCvB,IAAIxH,EAAsB,EAAQ,MAC9BsM,EAAW,EAAQ,MACnB0F,EAAyB,EAAQ,MAEjC8Z,EAAcpqB,WAIlBlH,EAAOL,QAAU,SAAgBuI,GAC/B,IAAI+W,EAAMnN,EAAS0F,EAAuB/Y,OACtCqN,EAAS,GACToE,EAAI1K,EAAoB0C,GAC5B,GAAIgI,EAAI,GAAKA,GAAKqS,IAAU,MAAM+O,EAAY,+BAC9C,KAAMphB,EAAI,GAAIA,KAAO,KAAO+O,GAAOA,GAAc,EAAJ/O,IAAOpE,GAAUmT,GAC9D,OAAOnT,I,qBCfT,IAAI7F,EAAuB,eACvBtE,EAAQ,EAAQ,MAChB4vB,EAAc,EAAQ,MAEtBC,EAAM,MAIVxxB,EAAOL,QAAU,SAAU0P,GACzB,OAAO1N,GAAM,WACX,QAAS4vB,EAAYliB,MAChBmiB,EAAIniB,OAAmBmiB,GACtBvrB,GAAwBsrB,EAAYliB,GAAaxG,OAASwG,O,qBCZpE,IAAIjK,EAAc,EAAQ,MACtBoS,EAAyB,EAAQ,MACjC1F,EAAW,EAAQ,MACnByf,EAAc,EAAQ,MAEtB9e,EAAUrN,EAAY,GAAGqN,SACzBgf,EAAa,IAAMF,EAAc,IACjCG,EAAQpT,OAAO,IAAMmT,EAAaA,EAAa,KAC/CE,EAAQrT,OAAOmT,EAAaA,EAAa,MAGzCzkB,EAAe,SAAUU,GAC3B,OAAO,SAAUR,GACf,IAAIwK,EAAS5F,EAAS0F,EAAuBtK,IAG7C,OAFW,EAAPQ,IAAUgK,EAASjF,EAAQiF,EAAQga,EAAO,KACnC,EAAPhkB,IAAUgK,EAASjF,EAAQiF,EAAQia,EAAO,KACvCja,IAIX1X,EAAOL,QAAU,CAGf6I,MAAOwE,EAAa,GAGpB5B,IAAK4B,EAAa,GAGlB4kB,KAAM5kB,EAAa,K,qBC7BrB,IAAIlO,EAAO,EAAQ,MACfue,EAAa,EAAQ,MACrBhd,EAAkB,EAAQ,MAC1BkC,EAAgB,EAAQ,MAE5BvC,EAAOL,QAAU,WACf,IAAI0a,EAASgD,EAAW,UACpBwU,EAAkBxX,GAAUA,EAAO1Z,UACnC0sB,EAAUwE,GAAmBA,EAAgBxE,QAC7CyE,EAAezxB,EAAgB,eAE/BwxB,IAAoBA,EAAgBC,IAItCvvB,EAAcsvB,EAAiBC,GAAc,SAAUC,GACrD,OAAOjzB,EAAKuuB,EAAS5uB,QACpB,CAAEooB,MAAO,M,oBCjBhB,IAuBImL,EAAUC,EAAOC,EAASC,EAvB1BhwB,EAAS,EAAQ,MACjB0M,EAAQ,EAAQ,MAChB9C,EAAO,EAAQ,MACfnM,EAAa,EAAQ,KACrBwC,EAAS,EAAQ,MACjBT,EAAQ,EAAQ,MAChBsoB,EAAO,EAAQ,KACfnkB,EAAa,EAAQ,KACrB2U,EAAgB,EAAQ,KACxB2X,EAA0B,EAAQ,MAClC3K,EAAS,EAAQ,MACjBG,EAAU,EAAQ,MAElBrhB,EAAMpE,EAAOkwB,aACb7d,EAAQrS,EAAOmwB,eACflV,EAAUjb,EAAOib,QACjBmV,EAAWpwB,EAAOowB,SAClBrtB,EAAW/C,EAAO+C,SAClBstB,EAAiBrwB,EAAOqwB,eACxBpyB,EAAS+B,EAAO/B,OAChBqyB,EAAU,EACVC,EAAQ,GACRC,EAAqB,qBAGzB,IAEEX,EAAW7vB,EAAO6vB,SAClB,MAAOjtB,IAET,IAAI6tB,EAAM,SAAUvd,GAClB,GAAIjT,EAAOswB,EAAOrd,GAAK,CACrB,IAAIjE,EAAKshB,EAAMrd,UACRqd,EAAMrd,GACbjE,MAIAyhB,EAAS,SAAUxd,GACrB,OAAO,WACLud,EAAIvd,KAIJyd,EAAW,SAAUC,GACvBH,EAAIG,EAAMte,OAGRue,EAAO,SAAU3d,GAEnBlT,EAAO8wB,YAAY7yB,EAAOiV,GAAK2c,EAASkB,SAAW,KAAOlB,EAASmB,OAIhE5sB,GAAQiO,IACXjO,EAAM,SAAsB6sB,GAC1BhB,EAAwBxoB,UAAUxI,OAAQ,GAC1C,IAAIgQ,EAAKxR,EAAWwzB,GAAWA,EAAUluB,EAASkuB,GAC9CrT,EAAOja,EAAW8D,UAAW,GAKjC,OAJA8oB,IAAQD,GAAW,WACjB5jB,EAAMuC,OAAIxQ,EAAWmf,IAEvBkS,EAAMQ,GACCA,GAETje,EAAQ,SAAwBa,UACvBqd,EAAMrd,IAGXuS,EACFqK,EAAQ,SAAU5c,GAChB+H,EAAQkL,SAASuK,EAAOxd,KAGjBkd,GAAYA,EAASc,IAC9BpB,EAAQ,SAAU5c,GAChBkd,EAASc,IAAIR,EAAOxd,KAIbmd,IAAmB/K,GAC5ByK,EAAU,IAAIM,EACdL,EAAOD,EAAQoB,MACfpB,EAAQqB,MAAMC,UAAYV,EAC1Bb,EAAQlmB,EAAKomB,EAAKc,YAAad,IAI/BhwB,EAAOsxB,kBACP7zB,EAAWuC,EAAO8wB,eACjB9wB,EAAOuxB,eACR1B,GAAkC,UAAtBA,EAASkB,WACpBvxB,EAAMqxB,IAEPf,EAAQe,EACR7wB,EAAOsxB,iBAAiB,UAAWX,GAAU,IAG7Cb,EADSU,KAAsBlY,EAAc,UACrC,SAAUpF,GAChB4U,EAAKmB,YAAY3Q,EAAc,WAAWkY,GAAsB,WAC9D1I,EAAK0J,YAAYl1B,MACjBm0B,EAAIvd,KAKA,SAAUA,GAChBue,WAAWf,EAAOxd,GAAK,KAK7BrV,EAAOL,QAAU,CACf4G,IAAKA,EACLiO,MAAOA,I,oBClHT,IAAIpP,EAAc,EAAQ,MAI1BpF,EAAOL,QAAUyF,EAAY,GAAIioB,U,qBCJjC,IAAI7nB,EAAsB,EAAQ,MAE9BuK,EAAMlF,KAAKkF,IACXnF,EAAMC,KAAKD,IAKf5K,EAAOL,QAAU,SAAUuB,EAAOE,GAChC,IAAIyyB,EAAUruB,EAAoBtE,GAClC,OAAO2yB,EAAU,EAAI9jB,EAAI8jB,EAAUzyB,EAAQ,GAAKwJ,EAAIipB,EAASzyB,K,qBCV/D,IAAI0yB,EAAc,EAAQ,MAEtBh0B,EAAaC,UAIjBC,EAAOL,QAAU,SAAUM,GACzB,IAAI8zB,EAAOD,EAAY7zB,EAAU,UACjC,GAAmB,iBAAR8zB,EAAkB,MAAMj0B,EAAW,kCAE9C,OAAOk0B,OAAOD,K,qBCVhB,IAAIvuB,EAAsB,EAAQ,MAC9BC,EAAW,EAAQ,MAEnB6rB,EAAcpqB,WAIlBlH,EAAOL,QAAU,SAAU2B,GACzB,QAAWV,IAAPU,EAAkB,OAAO,EAC7B,IAAIoG,EAASlC,EAAoBlE,GAC7BF,EAASqE,EAASiC,GACtB,GAAIA,IAAWtG,EAAQ,MAAMkwB,EAAY,yBACzC,OAAOlwB,I,qBCXT,IAAImM,EAAgB,EAAQ,MACxBiK,EAAyB,EAAQ,MAErCxX,EAAOL,QAAU,SAAU2B,GACzB,OAAOiM,EAAciK,EAAuBlW,M,qBCL9C,IAAIylB,EAAQ,EAAQ,MAIpB/mB,EAAOL,QAAU,SAAUM,GACzB,IAAIyH,GAAUzH,EAEd,OAAOyH,IAAWA,GAAqB,IAAXA,EAAe,EAAIqf,EAAMrf,K,qBCPvD,IAAIlC,EAAsB,EAAQ,MAE9BoF,EAAMC,KAAKD,IAIf5K,EAAOL,QAAU,SAAUM,GACzB,OAAOA,EAAW,EAAI2K,EAAIpF,EAAoBvF,GAAW,kBAAoB,I,qBCP/E,IAAIuX,EAAyB,EAAQ,MAEjCtF,EAAUrQ,OAId7B,EAAOL,QAAU,SAAUM,GACzB,OAAOiS,EAAQsF,EAAuBvX,M,qBCPxC,IAAIg0B,EAAoB,EAAQ,MAE5B3C,EAAcpqB,WAElBlH,EAAOL,QAAU,SAAU2B,EAAI4yB,GAC7B,IAAIzqB,EAASwqB,EAAkB3yB,GAC/B,GAAImI,EAASyqB,EAAO,MAAM5C,EAAY,gBACtC,OAAO7nB,I,qBCPT,IAAIjE,EAAsB,EAAQ,MAE9B8rB,EAAcpqB,WAElBlH,EAAOL,QAAU,SAAU2B,GACzB,IAAIwK,EAAStG,EAAoBlE,GACjC,GAAIwK,EAAS,EAAG,MAAMwlB,EAAY,qCAClC,OAAOxlB,I,qBCPT,IAAIhN,EAAO,EAAQ,MACf0C,EAAW,EAAQ,KACnB2yB,EAAW,EAAQ,MACnB/T,EAAY,EAAQ,MACpBgU,EAAsB,EAAQ,MAC9B/zB,EAAkB,EAAQ,MAE1BP,EAAaC,UACb+xB,EAAezxB,EAAgB,eAInCL,EAAOL,QAAU,SAAUutB,EAAOC,GAChC,IAAK3rB,EAAS0rB,IAAUiH,EAASjH,GAAQ,OAAOA,EAChD,IACIphB,EADAuoB,EAAejU,EAAU8M,EAAO4E,GAEpC,GAAIuC,EAAc,CAGhB,QAFazzB,IAATusB,IAAoBA,EAAO,WAC/BrhB,EAAShN,EAAKu1B,EAAcnH,EAAOC,IAC9B3rB,EAASsK,IAAWqoB,EAASroB,GAAS,OAAOA,EAClD,MAAMhM,EAAW,2CAGnB,YADac,IAATusB,IAAoBA,EAAO,UACxBiH,EAAoBlH,EAAOC,K,qBCvBpC,IAAI2G,EAAc,EAAQ,MACtBK,EAAW,EAAQ,MAIvBn0B,EAAOL,QAAU,SAAUM,GACzB,IAAIc,EAAM+yB,EAAY7zB,EAAU,UAChC,OAAOk0B,EAASpzB,GAAOA,EAAMA,EAAM,K,qBCPrC,IAAIV,EAAkB,EAAQ,MAE1B6C,EAAgB7C,EAAgB,eAChC0S,EAAO,GAEXA,EAAK7P,GAAiB,IAEtBlD,EAAOL,QAA2B,eAAjBS,OAAO2S,I,qBCPxB,IAAI1Q,EAAU,EAAQ,KAElBlC,EAAUC,OAEdJ,EAAOL,QAAU,SAAUM,GACzB,GAA0B,WAAtBoC,EAAQpC,GAAwB,MAAMF,UAAU,6CACpD,OAAOI,EAAQF,K,iBCNjB,IAAIE,EAAUC,OAEdJ,EAAOL,QAAU,SAAUM,GACzB,IACE,OAAOE,EAAQF,GACf,MAAO8E,GACP,MAAO,Y,kCCLX,IAAI4Q,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MACjBrD,EAAO,EAAQ,MACfoD,EAAc,EAAQ,MACtBoyB,EAA8C,EAAQ,MACtDC,EAAsB,EAAQ,KAC9BC,EAAoB,EAAQ,MAC5BjvB,EAAa,EAAQ,MACrBuS,EAA2B,EAAQ,MACnCxV,EAA8B,EAAQ,MACtCmyB,EAAmB,EAAQ,MAC3BhvB,EAAW,EAAQ,MACnBC,EAAU,EAAQ,MAClBgvB,EAAW,EAAQ,MACnBpc,EAAgB,EAAQ,MACxBlW,EAAS,EAAQ,MACjBC,EAAU,EAAQ,KAClBb,EAAW,EAAQ,KACnB2yB,EAAW,EAAQ,MACnB7zB,EAAS,EAAQ,IACjBe,EAAgB,EAAQ,MACxBoB,EAAiB,EAAQ,MACzBmD,EAAsB,UACtB+uB,EAAiB,EAAQ,MACzBhpB,EAAU,gBACVyH,EAAa,EAAQ,MACrB8D,EAAuB,EAAQ,MAC/BD,EAAiC,EAAQ,MACzCjR,EAAsB,EAAQ,MAC9B+P,EAAoB,EAAQ,MAE5B1P,EAAmBL,EAAoBb,IACvCmB,EAAmBN,EAAoBO,IACvCquB,EAAuB1d,EAAqBG,EAC5Cwd,EAAiC5d,EAA+BI,EAChEyd,EAAQjqB,KAAKiqB,MACb5tB,EAAa/E,EAAO+E,WACpBzF,EAAc+yB,EAAkB/yB,YAChCsF,EAAuBtF,EAAYd,UACnCe,EAAW8yB,EAAkB9yB,SAC7B2B,EAA4BkxB,EAAoBlxB,0BAChDD,EAA0BmxB,EAAoBnxB,wBAC9CD,EAAkBoxB,EAAoBpxB,gBACtCJ,EAAawxB,EAAoBxxB,WACjCC,EAAsBuxB,EAAoBvxB,oBAC1CuB,EAAyBgwB,EAAoBhwB,uBAC7CF,EAAekwB,EAAoBlwB,aACnC0wB,EAAoB,oBACpBpuB,EAAe,eAEfquB,EAAW,SAAUxwB,EAAGqH,GAC1BtH,EAAuBC,GACvB,IAAItD,EAAQ,EACRE,EAASyK,EAAKzK,OACd0K,EAAS,IAAItH,EAAEpD,GACnB,MAAOA,EAASF,EAAO4K,EAAO5K,GAAS2K,EAAK3K,KAC5C,OAAO4K,GAGL9D,EAAY,SAAU1G,EAAIP,GAC5B6zB,EAAqBtzB,EAAIP,EAAK,CAAEoE,IAAK,WACnC,OAAOkB,EAAiB5H,MAAMsC,OAI9Bk0B,EAAgB,SAAU3zB,GAC5B,IAAI8C,EACJ,OAAO/C,EAAc0F,EAAsBzF,IAAgC,gBAAxB8C,EAAQ/B,EAAQf,KAAkC,qBAAT8C,GAG1F8wB,GAAoB,SAAUnqB,EAAQhK,GACxC,OAAOsD,EAAa0G,KACdopB,EAASpzB,IACVA,KAAOgK,GACP0pB,GAAkB1zB,IAClBA,GAAO,GAGVo0B,GAAkC,SAAkCpqB,EAAQhK,GAE9E,OADAA,EAAMuX,EAAcvX,GACbm0B,GAAkBnqB,EAAQhK,GAC7B+W,EAAyB,EAAG/M,EAAOhK,IACnC8zB,EAA+B9pB,EAAQhK,IAGzCq0B,GAAwB,SAAwBrqB,EAAQhK,EAAK0X,GAE/D,OADA1X,EAAMuX,EAAcvX,KAChBm0B,GAAkBnqB,EAAQhK,IACzBS,EAASiX,IACTrW,EAAOqW,EAAY,WAClBrW,EAAOqW,EAAY,QACnBrW,EAAOqW,EAAY,QAEnBA,EAAW5X,cACVuB,EAAOqW,EAAY,cAAeA,EAAWJ,UAC7CjW,EAAOqW,EAAY,gBAAiBA,EAAWL,WAI7Cwc,EAAqB7pB,EAAQhK,EAAK0X,IAFzC1N,EAAOhK,GAAO0X,EAAW3X,MAClBiK,IAIP7I,GACGmB,IACH4T,EAA+BI,EAAI8d,GACnCje,EAAqBG,EAAI+d,GACzBptB,EAAUhF,EAAqB,UAC/BgF,EAAUhF,EAAqB,cAC/BgF,EAAUhF,EAAqB,cAC/BgF,EAAUhF,EAAqB,WAGjC2S,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,QAASvB,GAA6B,CACtEiU,yBAA0B6d,GAC1B50B,eAAgB60B,KAGlBp1B,EAAOL,QAAU,SAAU+N,EAAM+F,EAAS4hB,GACxC,IAAInB,EAAQxmB,EAAKqP,MAAM,QAAQ,GAAK,EAChCrJ,EAAmBhG,GAAQ2nB,EAAU,UAAY,IAAM,QACvDC,EAAS,MAAQ5nB,EACjB6nB,EAAS,MAAQ7nB,EACjB8nB,EAA8BrzB,EAAOuR,GACrC5O,EAAwB0wB,EACxBC,EAAiC3wB,GAAyBA,EAAsBnE,UAChFyV,EAAW,GAEXsC,EAAS,SAAUxK,EAAMhN,GAC3B,IAAIuT,EAAOpO,EAAiB6H,GAC5B,OAAOuG,EAAKxM,KAAKqtB,GAAQp0B,EAAQgzB,EAAQzf,EAAKhM,YAAY,IAGxDkQ,EAAS,SAAUzK,EAAMhN,EAAOJ,GAClC,IAAI2T,EAAOpO,EAAiB6H,GACxBmnB,IAASv0B,GAASA,EAAQg0B,EAAMh0B,IAAU,EAAI,EAAIA,EAAQ,IAAO,IAAe,IAARA,GAC5E2T,EAAKxM,KAAKstB,GAAQr0B,EAAQgzB,EAAQzf,EAAKhM,WAAY3H,GAAO,IAGxD40B,EAAa,SAAUxnB,EAAMhN,GAC/B0zB,EAAqB1mB,EAAMhN,EAAO,CAChCiE,IAAK,WACH,OAAOuT,EAAOja,KAAMyC,IAEtBqF,IAAK,SAAUzF,GACb,OAAO6X,EAAOla,KAAMyC,EAAOJ,IAE7BsX,YAAY,KAIX/U,EAwCMixB,IACTxvB,EAAwB2O,GAAQ,SAAUsD,EAAOtC,EAAMkhB,EAAkBC,GAEvE,OADArwB,EAAWwR,EAAO0e,GACX1f,EAAkB,WACvB,OAAKvU,EAASiT,GACVwgB,EAAcxgB,QAA0B7T,IAAZg1B,EAC5B,IAAIJ,EAA4B/gB,EAAMigB,EAASiB,EAAkBzB,GAAQ0B,QACpDh1B,IAArB+0B,EACE,IAAIH,EAA4B/gB,EAAMigB,EAASiB,EAAkBzB,IACjE,IAAIsB,EAA4B/gB,GAClCpQ,EAAaoQ,GAAcugB,EAASlwB,EAAuB2P,GACxD3V,EAAK61B,EAAgB7vB,EAAuB2P,GAPvB,IAAI+gB,EAA4B9vB,EAAQ+O,IAD7C,GASpBsC,EAAOjS,MAGVrC,GAAgBA,EAAeqC,EAAuB/B,GAC1D4I,EAAQ/F,EAAoB4vB,IAA8B,SAAUz0B,GAC5DA,KAAO+D,GACXxC,EAA4BwC,EAAuB/D,EAAKy0B,EAA4Bz0B,OAGxF+D,EAAsBnE,UAAY80B,IA5DlC3wB,EAAwB2O,GAAQ,SAAUvF,EAAMuG,EAAMhL,EAAQmsB,GAC5DrwB,EAAW2I,EAAMunB,GACjB,IAEI7zB,EAAQ0G,EAAYlH,EAFpBF,EAAQ,EACRuH,EAAa,EAEjB,GAAKjH,EAASiT,GAIP,KAAIwgB,EAAcxgB,GAalB,OAAIpQ,EAAaoQ,GACfugB,EAASlwB,EAAuB2P,GAEhC3V,EAAK61B,EAAgB7vB,EAAuB2P,GAfnD7S,EAAS6S,EACThM,EAAaisB,EAASjrB,EAAQyqB,GAC9B,IAAI2B,EAAOphB,EAAKnM,WAChB,QAAgB1H,IAAZg1B,EAAuB,CACzB,GAAIC,EAAO3B,EAAO,MAAMhtB,EAAWP,GAEnC,GADA2B,EAAautB,EAAOptB,EAChBH,EAAa,EAAG,MAAMpB,EAAWP,QAGrC,GADA2B,EAAa7C,EAASmwB,GAAW1B,EAC7B5rB,EAAaG,EAAaotB,EAAM,MAAM3uB,EAAWP,GAEvDvF,EAASkH,EAAa4rB,OAftB9yB,EAASsE,EAAQ+O,GACjBnM,EAAalH,EAAS8yB,EACtBtyB,EAAS,IAAIH,EAAY6G,GAmB3BhC,EAAiB4H,EAAM,CACrBtM,OAAQA,EACR6G,WAAYA,EACZH,WAAYA,EACZlH,OAAQA,EACR6G,KAAM,IAAIvG,EAASE,KAErB,MAAOV,EAAQE,EAAQs0B,EAAWxnB,EAAMhN,QAGtCuB,GAAgBA,EAAeqC,EAAuB/B,GAC1D0yB,EAAiC3wB,EAAsBnE,UAAYL,EAAO0C,IAyBxEyyB,EAA+BxsB,cAAgBnE,GACjDxC,EAA4BmzB,EAAgC,cAAe3wB,GAG7ExC,EAA4BmzB,EAAgCryB,EAAyB0B,GAEjF3B,GACFb,EAA4BmzB,EAAgCtyB,EAAiBuQ,GAG/E,IAAIzE,EAASnK,GAAyB0wB,EAEtCpf,EAAS1C,GAAoB5O,EAE7B6Q,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAMrE,OAAQqK,EAAQkP,MAAO9a,GAA6B+S,GAEnF2e,KAAqBjwB,GACzBxC,EAA4BwC,EAAuBiwB,EAAmBb,GAGlEa,KAAqBU,GACzBnzB,EAA4BmzB,EAAgCV,EAAmBb,GAGjF9gB,EAAWM,KAER1T,EAAOL,QAAU,c,qBChPxB,IAAIwC,EAAS,EAAQ,MACjBR,EAAQ,EAAQ,MAChBmU,EAA8B,EAAQ,MACtCzS,EAA4B,iCAE5B5B,EAAcU,EAAOV,YACrBkB,EAAYR,EAAOQ,UAEvB3C,EAAOL,SAAW0D,IAA8B1B,GAAM,WACpDgB,EAAU,QACLhB,GAAM,WACX,IAAIgB,GAAW,QACVmT,GAA4B,SAAUlC,GAC3C,IAAIjR,EACJ,IAAIA,EAAU,MACd,IAAIA,EAAU,KACd,IAAIA,EAAUiR,MACb,IAASjS,GAAM,WAEhB,OAAkE,IAA3D,IAAIgB,EAAU,IAAIlB,EAAY,GAAI,OAAGb,GAAWQ,W,qBCpBzD,IAAI00B,EAA8B,EAAQ,MACtCC,EAA+B,EAAQ,MAE3C/1B,EAAOL,QAAU,SAAU8W,EAAU5K,GACnC,OAAOiqB,EAA4BC,EAA6Btf,GAAW5K,K,qBCJ7E,IAAIE,EAAO,EAAQ,MACfjN,EAAO,EAAQ,MACfiyB,EAAe,EAAQ,MACvBvmB,EAAW,EAAQ,MACnBE,EAAoB,EAAQ,MAC5ByB,EAAc,EAAQ,MACtBC,EAAoB,EAAQ,MAC5BH,EAAwB,EAAQ,MAChC1H,EAAyB,8BAE7BvE,EAAOL,QAAU,SAAcwX,GAC7B,IAMIxO,EAAGvH,EAAQ0K,EAAQY,EAAMC,EAAUC,EANnCpI,EAAIusB,EAAatyB,MACjBuM,EAAIR,EAAS2M,GACb7L,EAAkB1B,UAAUxI,OAC5BoL,EAAQlB,EAAkB,EAAI1B,UAAU,QAAKhJ,EAC7C6L,OAAoB7L,IAAV4L,EACVK,EAAiBT,EAAkBpB,GAEvC,GAAI6B,IAAmBZ,EAAsBY,GAAiB,CAC5DF,EAAWR,EAAYnB,EAAG6B,GAC1BD,EAAOD,EAASC,KAChB5B,EAAI,GACJ,QAAS0B,EAAO5N,EAAK8N,EAAMD,IAAWG,KACpC9B,EAAEyC,KAAKf,EAAK5L,OAQhB,IALI2L,GAAWnB,EAAkB,IAC/BkB,EAAQT,EAAKS,EAAO5C,UAAU,KAEhCxI,EAASsJ,EAAkBM,GAC3Bc,EAAS,IAAKvH,EAAuBC,GAA5B,CAAgCpD,GACpCuH,EAAI,EAAGvH,EAASuH,EAAGA,IACtBmD,EAAOnD,GAAK8D,EAAUD,EAAMxB,EAAErC,GAAIA,GAAKqC,EAAErC,GAE3C,OAAOmD,I,qBClCT,IAAIyoB,EAAsB,EAAQ,KAC9ByB,EAAqB,EAAQ,MAE7B5yB,EAA0BmxB,EAAoBnxB,wBAC9CmB,EAAyBgwB,EAAoBhwB,uBAIjDvE,EAAOL,QAAU,SAAUqR,GACzB,OAAOzM,EAAuByxB,EAAmBhlB,EAAeA,EAAc5N,O,qBCThF,IAAIgC,EAAc,EAAQ,MAEtBiQ,EAAK,EACL4gB,EAAUprB,KAAKqrB,SACfpkB,EAAW1M,EAAY,GAAI0M,UAE/B9R,EAAOL,QAAU,SAAUoB,GACzB,MAAO,gBAAqBH,IAARG,EAAoB,GAAKA,GAAO,KAAO+Q,IAAWuD,EAAK4gB,EAAS,M,qBCNtF,IAAItN,EAAgB,EAAQ,KAE5B3oB,EAAOL,QAAUgpB,IACXtO,OAAO8D,MACkB,iBAAnB9D,OAAO1N,U,qBCLnB,IAAIzK,EAAc,EAAQ,MACtBP,EAAQ,EAAQ,MAIpB3B,EAAOL,QAAUuC,GAAeP,GAAM,WAEpC,OAGgB,IAHTE,OAAOtB,gBAAe,cAA6B,YAAa,CACrEO,MAAO,GACPuX,UAAU,IACT1X,c,iBCVL,IAAIb,EAAaC,UAEjBC,EAAOL,QAAU,SAAUw2B,EAAQC,GACjC,GAAID,EAASC,EAAU,MAAMt2B,EAAW,wBACxC,OAAOq2B,I,qBCJT,IAAI91B,EAAkB,EAAQ,MAE9BV,EAAQ0X,EAAIhX,G,qBCFZ,IAAI8B,EAAS,EAAQ,MACjByhB,EAAS,EAAQ,MACjBxhB,EAAS,EAAQ,MACjBM,EAAM,EAAQ,MACdimB,EAAgB,EAAQ,KACxBnD,EAAoB,EAAQ,MAE5B6Q,EAAwBzS,EAAO,OAC/BvJ,EAASlY,EAAOkY,OAChBic,EAAYjc,GAAUA,EAAO,OAC7Bkc,EAAwB/Q,EAAoBnL,EAASA,GAAUA,EAAOmc,eAAiB9zB,EAE3F1C,EAAOL,QAAU,SAAUkJ,GACzB,IAAKzG,EAAOi0B,EAAuBxtB,KAAW8f,GAAuD,iBAA/B0N,EAAsBxtB,GAAoB,CAC9G,IAAI4tB,EAAc,UAAY5tB,EAC1B8f,GAAiBvmB,EAAOiY,EAAQxR,GAClCwtB,EAAsBxtB,GAAQwR,EAAOxR,GAErCwtB,EAAsBxtB,GADb2c,GAAqB8Q,EACAA,EAAUG,GAEVF,EAAsBE,GAEtD,OAAOJ,EAAsBxtB,K,iBCrBjC7I,EAAOL,QAAU,iD,kCCAjB,IAAI0d,EAAa,EAAQ,MACrBjb,EAAS,EAAQ,MACjBE,EAA8B,EAAQ,MACtCjB,EAAgB,EAAQ,MACxBoB,EAAiB,EAAQ,MACzBkb,EAA4B,EAAQ,MACpC+Y,EAAgB,EAAQ,MACxB3gB,EAAoB,EAAQ,MAC5B4gB,EAA0B,EAAQ,MAClCC,EAAoB,EAAQ,MAC5BC,EAAkB,EAAQ,MAC1BC,EAA0B,EAAQ,MAClC50B,EAAc,EAAQ,MACtB6W,EAAU,EAAQ,MAEtB/Y,EAAOL,QAAU,SAAUo3B,EAAWtjB,EAASxE,EAAQ+nB,GACrD,IAAIC,EAAoB,kBACpBC,EAAmBF,EAAqB,EAAI,EAC5C7c,EAAO4c,EAAUtZ,MAAM,KACvB0Z,EAAahd,EAAKA,EAAK/Y,OAAS,GAChCg2B,EAAgB/Z,EAAWxO,MAAM,KAAMsL,GAE3C,GAAKid,EAAL,CAEA,IAAIC,EAAyBD,EAAcz2B,UAK3C,IAFKoY,GAAW3W,EAAOi1B,EAAwB,iBAAiBA,EAAuBtU,OAElF9T,EAAQ,OAAOmoB,EAEpB,IAAIE,EAAYja,EAAW,SAEvBka,EAAe9jB,GAAQ,SAAU8N,EAAGC,GACtC,IAAIgW,EAAUb,EAAwBK,EAAqBxV,EAAID,OAAG3gB,GAC9DkL,EAASkrB,EAAqB,IAAII,EAAc7V,GAAK,IAAI6V,EAK7D,YAJgBx2B,IAAZ42B,GAAuBl1B,EAA4BwJ,EAAQ,UAAW0rB,GACtEV,GAAyBx0B,EAA4BwJ,EAAQ,QAAS+qB,EAAgB/qB,EAAO8G,MAAO,IACpGnU,MAAQ4C,EAAcg2B,EAAwB54B,OAAOsX,EAAkBjK,EAAQrN,KAAM84B,GACrF3tB,UAAUxI,OAAS81B,GAAkBN,EAAkB9qB,EAAQlC,UAAUstB,IACtEprB,KAeT,GAZAyrB,EAAa52B,UAAY02B,EAEN,UAAfF,EACE10B,EAAgBA,EAAe80B,EAAcD,GAC5C3Z,EAA0B4Z,EAAcD,EAAW,CAAEzuB,MAAM,IACvD3G,GAAe+0B,KAAqBG,IAC7CV,EAAca,EAAcH,EAAeH,GAC3CP,EAAca,EAAcH,EAAe,sBAG7CzZ,EAA0B4Z,EAAcH,IAEnCre,EAAS,IAERse,EAAuBxuB,OAASsuB,GAClC70B,EAA4B+0B,EAAwB,OAAQF,GAE9DE,EAAuBpuB,YAAcsuB,EACrC,MAAOxyB,IAET,OAAOwyB,K,qBChET,IAAI5hB,EAAI,EAAQ,MACZ0H,EAAa,EAAQ,MACrBxO,EAAQ,EAAQ,MAChBlN,EAAQ,EAAQ,MAChB81B,EAAgC,EAAQ,MAExCC,EAAkB,iBAClBC,EAAkBta,EAAWqa,GAC7BzoB,GAAUtN,GAAM,WAClB,OAA0C,IAAnCg2B,EAAgB,CAAC,IAAIC,OAAO,OAC/Bj2B,GAAM,WACV,OAAqE,IAA9Dg2B,EAAgB,CAAC,GAAID,EAAiB,CAAE3U,MAAO,IAAKA,SAI7DpN,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAM4d,MAAO,EAAGjiB,OAAQqK,GAAU,CAC/D4oB,eAAgBJ,EAA8BC,GAAiB,SAAUI,GAEvE,OAAO,SAAwBF,EAAQJ,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,cAC1EqF,GAAQ,M,kCClBb,IAAI0G,EAAI,EAAQ,MACZtU,EAAgB,EAAQ,MACxBmB,EAAiB,EAAQ,MACzBC,EAAiB,EAAQ,MACzBkb,EAA4B,EAAQ,MACpCrd,EAAS,EAAQ,IACjBgC,EAA8B,EAAQ,MACtCwV,EAA2B,EAAQ,MACnC+e,EAAkB,EAAQ,MAC1BD,EAAoB,EAAQ,MAC5B1jB,EAAU,EAAQ,KAClByjB,EAA0B,EAAQ,MAClCt2B,EAAkB,EAAQ,MAC1By2B,EAA0B,EAAQ,MAElC5zB,EAAgB7C,EAAgB,eAChCkS,EAASC,MACT/E,EAAO,GAAGA,KAEVkqB,EAAkB,SAAwBC,EAAQJ,GACpD,IAEItpB,EAFA9P,EAAUwL,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,EAChDm3B,EAAa12B,EAAc22B,EAAyBv5B,MAEpDgE,EACFyL,EAAOzL,EAAe,IAAI8P,EAAUwlB,EAAav1B,EAAe/D,MAAQu5B,IAExE9pB,EAAO6pB,EAAat5B,KAAO6B,EAAO03B,GAClC11B,EAA4B4L,EAAMhL,EAAe,eAEnCtC,IAAZ42B,GAAuBl1B,EAA4B4L,EAAM,UAAWyoB,EAAwBa,IAC5FV,GAAyBx0B,EAA4B4L,EAAM,QAAS2oB,EAAgB3oB,EAAK0E,MAAO,IACpGgkB,EAAkB1oB,EAAM9P,GACxB,IAAI65B,EAAc,GAGlB,OAFA/kB,EAAQ0kB,EAAQnqB,EAAM,CAAES,KAAM+pB,IAC9B31B,EAA4B4L,EAAM,SAAU+pB,GACrC/pB,GAGLzL,EAAgBA,EAAek1B,EAAiBplB,GAC/CoL,EAA0Bga,EAAiBplB,EAAQ,CAAE1J,MAAM,IAEhE,IAAImvB,EAA0BL,EAAgBh3B,UAAYL,EAAOiS,EAAO5R,UAAW,CACjFsI,YAAa6O,EAAyB,EAAG6f,GACzCH,QAAS1f,EAAyB,EAAG,IACrCjP,KAAMiP,EAAyB,EAAG,oBAKpCnC,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAM4d,MAAO,GAAK,CAC/CgR,eAAgBF,K,qBClDlB,EAAQ,O,kCCAR,IAAIhiB,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MACjB+1B,EAAoB,EAAQ,MAC5B9kB,EAAa,EAAQ,MAErB5M,EAAe,cACf/E,EAAcy2B,EAAkB1xB,GAChCK,EAAoB1E,EAAOqE,GAI/BmP,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAMrE,OAAQiC,IAAsBpF,GAAe,CAChFA,YAAaA,IAGf2R,EAAW5M,I,kCCfX,IAAImP,EAAI,EAAQ,MACZhU,EAAQ,EAAQ,MAChBoP,EAAU,EAAQ,MAClBvP,EAAW,EAAQ,KACnBgJ,EAAW,EAAQ,MACnBE,EAAoB,EAAQ,MAC5BytB,EAA2B,EAAQ,MACnCjsB,EAAiB,EAAQ,MACzBsB,EAAqB,EAAQ,MAC7B4qB,EAA+B,EAAQ,MACvC/3B,EAAkB,EAAQ,MAC1B8O,EAAa,EAAQ,MAErBkpB,EAAuBh4B,EAAgB,sBAKvCi4B,EAA+BnpB,GAAc,KAAOxN,GAAM,WAC5D,IAAI2N,EAAQ,GAEZ,OADAA,EAAM+oB,IAAwB,EACvB/oB,EAAM5P,SAAS,KAAO4P,KAG3BipB,EAAkBH,EAA6B,UAE/CI,EAAqB,SAAUxtB,GACjC,IAAKxJ,EAASwJ,GAAI,OAAO,EACzB,IAAIytB,EAAaztB,EAAEqtB,GACnB,YAAsBz3B,IAAf63B,IAA6BA,EAAa1nB,EAAQ/F,IAGvDiE,GAAUqpB,IAAiCC,EAK/C5iB,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAM2M,MAAO,EAAGjiB,OAAQqK,GAAU,CAE5DvP,OAAQ,SAAgBiT,GACtB,IAGIhK,EAAGqH,EAAG5O,EAAQ6J,EAAKytB,EAHnB1tB,EAAIR,EAAS/L,MACbgrB,EAAIjc,EAAmBxC,EAAG,GAC1BkF,EAAI,EAER,IAAKvH,GAAK,EAAGvH,EAASwI,UAAUxI,OAAQuH,EAAIvH,EAAQuH,IAElD,GADA+vB,GAAW,IAAP/vB,EAAWqC,EAAIpB,UAAUjB,GACzB6vB,EAAmBE,GAGrB,IAFAztB,EAAMP,EAAkBguB,GACxBP,EAAyBjoB,EAAIjF,GACxB+E,EAAI,EAAGA,EAAI/E,EAAK+E,IAAKE,IAASF,KAAK0oB,GAAGxsB,EAAeud,EAAGvZ,EAAGwoB,EAAE1oB,SAElEmoB,EAAyBjoB,EAAI,GAC7BhE,EAAeud,EAAGvZ,IAAKwoB,GAI3B,OADAjP,EAAEroB,OAAS8O,EACJuZ,M,qBCzDX,IAAI9T,EAAI,EAAQ,MACZxO,EAAO,EAAQ,MACfwxB,EAAmB,EAAQ,MAI/BhjB,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,GAAQ,CAClC/S,KAAMA,IAIRwxB,EAAiB,S,kCCVjB,IAAIhjB,EAAI,EAAQ,MACZijB,EAAU,eACVR,EAA+B,EAAQ,MAEvCS,EAAsBT,EAA6B,UAKvDziB,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,QAASi0B,GAAuB,CAChEtqB,OAAQ,SAAgB3C,GACtB,OAAOgtB,EAAQn6B,KAAMmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,kCCX3E,IAAI+U,EAAI,EAAQ,MACZmjB,EAAa,kBACbH,EAAmB,EAAQ,MAE3BI,EAAa,YACbC,GAAc,EAGdD,IAAc,IAAIr4B,MAAM,GAAGq4B,IAAY,WAAcC,GAAc,KAIvErjB,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,OAAQo0B,GAAe,CACvDrqB,UAAW,SAAmB/C,GAC5B,OAAOktB,EAAWr6B,KAAMmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,MAK9E+3B,EAAiBI,I,kCCnBjB,IAAIpjB,EAAI,EAAQ,MACZsjB,EAAQ,aACRN,EAAmB,EAAQ,MAE3BO,EAAO,OACPF,GAAc,EAGdE,IAAQ,IAAIx4B,MAAM,GAAGw4B,IAAM,WAAcF,GAAc,KAI3DrjB,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,OAAQo0B,GAAe,CACvDtqB,KAAM,SAAc9C,GAClB,OAAOqtB,EAAMx6B,KAAMmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,MAKzE+3B,EAAiBO,I,qBCpBjB,IAAIvjB,EAAI,EAAQ,MACZxK,EAAO,EAAQ,MACf2K,EAA8B,EAAQ,MAEtCqjB,GAAuBrjB,GAA4B,SAAUlC,GAE/DlT,MAAMyK,KAAKyI,MAKb+B,EAAE,CAAE5K,OAAQ,QAASkT,MAAM,EAAMrZ,OAAQu0B,GAAuB,CAC9DhuB,KAAMA,K,kCCXR,IAAIwK,EAAI,EAAQ,MACZyjB,EAAY,iBACZz3B,EAAQ,EAAQ,MAChBg3B,EAAmB,EAAQ,MAG3BU,EAAmB13B,GAAM,WAC3B,OAAQjB,MAAM,GAAG2M,cAKnBsI,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,OAAQy0B,GAAoB,CAC5DhsB,SAAU,SAAkBF,GAC1B,OAAOisB,EAAU36B,KAAM0O,EAAIvD,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,MAKrE+3B,EAAiB,a,kCCnBjB,IAAI5rB,EAAkB,EAAQ,MAC1B4rB,EAAmB,EAAQ,MAC3B5gB,EAAY,EAAQ,MACpB/R,EAAsB,EAAQ,MAC9BzF,EAAiB,UACjB4S,EAAiB,EAAQ,KACzB4F,EAAU,EAAQ,MAClB7W,EAAc,EAAQ,MAEtBo3B,EAAiB,iBACjBhzB,EAAmBN,EAAoBO,IACvCF,EAAmBL,EAAoBuN,UAAU+lB,GAYrDt5B,EAAOL,QAAUwT,EAAezS,MAAO,SAAS,SAAUsU,EAAUC,GAClE3O,EAAiB7H,KAAM,CACrBoV,KAAMylB,EACNvuB,OAAQgC,EAAgBiI,GACxB9T,MAAO,EACP+T,KAAMA,OAIP,WACD,IAAIb,EAAQ/N,EAAiB5H,MACzBsM,EAASqJ,EAAMrJ,OACfkK,EAAOb,EAAMa,KACb/T,EAAQkT,EAAMlT,QAClB,OAAK6J,GAAU7J,GAAS6J,EAAO3J,QAC7BgT,EAAMrJ,YAASnK,EACR,CAAEE,WAAOF,EAAWkM,MAAM,IAEvB,QAARmI,EAAuB,CAAEnU,MAAOI,EAAO4L,MAAM,GACrC,UAARmI,EAAyB,CAAEnU,MAAOiK,EAAO7J,GAAQ4L,MAAM,GACpD,CAAEhM,MAAO,CAACI,EAAO6J,EAAO7J,IAAS4L,MAAM,KAC7C,UAKH,IAAImN,EAASlC,EAAUwhB,UAAYxhB,EAAUrX,MAQ7C,GALAi4B,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAGZ5f,GAAW7W,GAA+B,WAAhB+X,EAAOpR,KAAmB,IACvDtI,EAAe0Z,EAAQ,OAAQ,CAAEnZ,MAAO,WACxC,MAAOiE,M,kCC3DT,IAAI4Q,EAAI,EAAQ,MACZvQ,EAAc,EAAQ,MACtBmI,EAAgB,EAAQ,MACxBR,EAAkB,EAAQ,MAC1BtB,EAAsB,EAAQ,MAE9B+tB,EAAUp0B,EAAY,GAAGua,MAEzB8Z,EAAclsB,GAAiB1L,OAC/B6J,EAAgBD,EAAoB,OAAQ,KAIhDkK,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,OAAQ60B,IAAgB/tB,GAAiB,CACzEiU,KAAM,SAAc+Z,GAClB,OAAOF,EAAQzsB,EAAgBtO,WAAqBmC,IAAd84B,EAA0B,IAAMA,O,kCCf1E,IAAI/jB,EAAI,EAAQ,MACZgkB,EAAO,YACPvB,EAA+B,EAAQ,MAEvCS,EAAsBT,EAA6B,OAKvDziB,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,QAASi0B,GAAuB,CAChEvqB,IAAK,SAAa1C,GAChB,OAAO+tB,EAAKl7B,KAAMmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,kCCXxE,IAAI+U,EAAI,EAAQ,MACZ5E,EAAU,EAAQ,MAClB7Q,EAAgB,EAAQ,MACxBsB,EAAW,EAAQ,KACnBiJ,EAAkB,EAAQ,MAC1BC,EAAoB,EAAQ,MAC5BqC,EAAkB,EAAQ,MAC1Bb,EAAiB,EAAQ,MACzB7L,EAAkB,EAAQ,MAC1B+3B,EAA+B,EAAQ,MACvCwB,EAAW,EAAQ,KAEnBf,EAAsBT,EAA6B,SAEnDhpB,EAAU/O,EAAgB,WAC1BgM,EAAS3L,MACTqP,EAAMlF,KAAKkF,IAKf4F,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,QAASi0B,GAAuB,CAChE1oB,MAAO,SAAe3H,EAAO4C,GAC3B,IAKIpJ,EAAa8J,EAAQoE,EALrBlF,EAAI+B,EAAgBtO,MACpB2C,EAASsJ,EAAkBM,GAC3BgF,EAAIvF,EAAgBjC,EAAOpH,GAC3B6O,EAAMxF,OAAwB7J,IAARwK,EAAoBhK,EAASgK,EAAKhK,GAG5D,GAAI2P,EAAQ/F,KACVhJ,EAAcgJ,EAAE/B,YAEZ/I,EAAc8B,KAAiBA,IAAgBqK,GAAU0E,EAAQ/O,EAAYrB,YAC/EqB,OAAcpB,EACLY,EAASQ,KAClBA,EAAcA,EAAYoN,GACN,OAAhBpN,IAAsBA,OAAcpB,IAEtCoB,IAAgBqK,QAA0BzL,IAAhBoB,GAC5B,OAAO43B,EAAS5uB,EAAGgF,EAAGC,GAI1B,IADAnE,EAAS,SAAqBlL,IAAhBoB,EAA4BqK,EAASrK,GAAa+N,EAAIE,EAAMD,EAAG,IACxEE,EAAI,EAAGF,EAAIC,EAAKD,IAAKE,IAASF,KAAKhF,GAAGkB,EAAeJ,EAAQoE,EAAGlF,EAAEgF,IAEvE,OADAlE,EAAO1K,OAAS8O,EACTpE,M,kCC7CX,IAAI6J,EAAI,EAAQ,MACZvQ,EAAc,EAAQ,MACtBsK,EAAY,EAAQ,MACpBlF,EAAW,EAAQ,MACnBE,EAAoB,EAAQ,MAC5BC,EAAwB,EAAQ,MAChCmH,EAAW,EAAQ,MACnBnQ,EAAQ,EAAQ,MAChBk4B,EAAe,EAAQ,MACvBpuB,EAAsB,EAAQ,MAC9BquB,EAAK,EAAQ,MACbC,EAAa,EAAQ,KACrBC,EAAK,EAAQ,MACbC,EAAS,EAAQ,MAEjBlnB,EAAO,GACPmnB,EAAU90B,EAAY2N,EAAKonB,MAC3B1sB,EAAOrI,EAAY2N,EAAKtF,MAGxB2sB,EAAqBz4B,GAAM,WAC7BoR,EAAKonB,UAAKv5B,MAGRy5B,EAAgB14B,GAAM,WACxBoR,EAAKonB,KAAK,SAGRzuB,EAAgBD,EAAoB,QAEpC6uB,GAAe34B,GAAM,WAEvB,GAAIq4B,EAAI,OAAOA,EAAK,GACpB,KAAIF,GAAMA,EAAK,GAAf,CACA,GAAIC,EAAY,OAAO,EACvB,GAAIE,EAAQ,OAAOA,EAAS,IAE5B,IACIM,EAAM3Q,EAAK9oB,EAAOI,EADlB4K,EAAS,GAIb,IAAKyuB,EAAO,GAAIA,EAAO,GAAIA,IAAQ,CAGjC,OAFA3Q,EAAMxpB,OAAOo6B,aAAaD,GAElBA,GACN,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAIz5B,EAAQ,EAAG,MAC/C,KAAK,GAAI,KAAK,GAAIA,EAAQ,EAAG,MAC7B,QAASA,EAAQ,EAGnB,IAAKI,EAAQ,EAAGA,EAAQ,GAAIA,IAC1B6R,EAAKtF,KAAK,CAAEuC,EAAG4Z,EAAM1oB,EAAOu5B,EAAG35B,IAMnC,IAFAiS,EAAKonB,MAAK,SAAU5Y,EAAGC,GAAK,OAAOA,EAAEiZ,EAAIlZ,EAAEkZ,KAEtCv5B,EAAQ,EAAGA,EAAQ6R,EAAK3R,OAAQF,IACnC0oB,EAAM7W,EAAK7R,GAAO8O,EAAEhP,OAAO,GACvB8K,EAAO9K,OAAO8K,EAAO1K,OAAS,KAAOwoB,IAAK9d,GAAU8d,GAG1D,MAAkB,gBAAX9d,MAGLmD,EAASmrB,IAAuBC,IAAkB3uB,IAAkB4uB,EAEpEI,EAAiB,SAAUpqB,GAC7B,OAAO,SAAU0W,EAAGyJ,GAClB,YAAU7vB,IAAN6vB,GAAyB,OACnB7vB,IAANomB,EAAwB,OACVpmB,IAAd0P,GAAiCA,EAAU0W,EAAGyJ,IAAM,EACjD3e,EAASkV,GAAKlV,EAAS2e,GAAK,GAAK,IAM5C9a,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,OAAQqK,GAAU,CAClDkrB,KAAM,SAAc7pB,QACA1P,IAAd0P,GAAyBZ,EAAUY,GAEvC,IAAIhB,EAAQ9E,EAAS/L,MAErB,GAAI67B,EAAa,YAAqB15B,IAAd0P,EAA0B4pB,EAAQ5qB,GAAS4qB,EAAQ5qB,EAAOgB,GAElF,IAEIqqB,EAAaz5B,EAFb05B,EAAQ,GACRC,EAAcnwB,EAAkB4E,GAGpC,IAAKpO,EAAQ,EAAGA,EAAQ25B,EAAa35B,IAC/BA,KAASoO,GAAO7B,EAAKmtB,EAAOtrB,EAAMpO,IAGxC24B,EAAae,EAAOF,EAAepqB,IAEnCqqB,EAAcC,EAAMx5B,OACpBF,EAAQ,EAER,MAAOA,EAAQy5B,EAAarrB,EAAMpO,GAAS05B,EAAM15B,KACjD,MAAOA,EAAQ25B,EAAalwB,EAAsB2E,EAAOpO,KAEzD,OAAOoO,M,iCCtGX,IAAIqG,EAAI,EAAQ,MACZnL,EAAW,EAAQ,MACnBC,EAAkB,EAAQ,MAC1BjF,EAAsB,EAAQ,MAC9BkF,EAAoB,EAAQ,MAC5BytB,EAA2B,EAAQ,MACnC3qB,EAAqB,EAAQ,MAC7BtB,EAAiB,EAAQ,MACzBvB,EAAwB,EAAQ,MAChCytB,EAA+B,EAAQ,MAEvCS,EAAsBT,EAA6B,UAEnDroB,EAAMlF,KAAKkF,IACXnF,EAAMC,KAAKD,IAKf+K,EAAE,CAAE5K,OAAQ,QAASmP,OAAO,EAAMtV,QAASi0B,GAAuB,CAChEzjB,OAAQ,SAAgB5M,EAAOsyB,GAC7B,IAIIC,EAAaC,EAAmBvR,EAAGzZ,EAAG7E,EAAMD,EAJ5CF,EAAIR,EAAS/L,MACbwM,EAAMP,EAAkBM,GACxBiwB,EAAcxwB,EAAgBjC,EAAOyC,GACrCK,EAAkB1B,UAAUxI,OAahC,IAXwB,IAApBkK,EACFyvB,EAAcC,EAAoB,EACL,IAApB1vB,GACTyvB,EAAc,EACdC,EAAoB/vB,EAAMgwB,IAE1BF,EAAczvB,EAAkB,EAChC0vB,EAAoBpwB,EAAImF,EAAIvK,EAAoBs1B,GAAc,GAAI7vB,EAAMgwB,IAE1E9C,EAAyBltB,EAAM8vB,EAAcC,GAC7CvR,EAAIjc,EAAmBxC,EAAGgwB,GACrBhrB,EAAI,EAAGA,EAAIgrB,EAAmBhrB,IACjC7E,EAAO8vB,EAAcjrB,EACjB7E,KAAQH,GAAGkB,EAAeud,EAAGzZ,EAAGhF,EAAEG,IAGxC,GADAse,EAAEroB,OAAS45B,EACPD,EAAcC,EAAmB,CACnC,IAAKhrB,EAAIirB,EAAajrB,EAAI/E,EAAM+vB,EAAmBhrB,IACjD7E,EAAO6E,EAAIgrB,EACX9vB,EAAK8E,EAAI+qB,EACL5vB,KAAQH,EAAGA,EAAEE,GAAMF,EAAEG,GACpBR,EAAsBK,EAAGE,GAEhC,IAAK8E,EAAI/E,EAAK+E,EAAI/E,EAAM+vB,EAAoBD,EAAa/qB,IAAKrF,EAAsBK,EAAGgF,EAAI,QACtF,GAAI+qB,EAAcC,EACvB,IAAKhrB,EAAI/E,EAAM+vB,EAAmBhrB,EAAIirB,EAAajrB,IACjD7E,EAAO6E,EAAIgrB,EAAoB,EAC/B9vB,EAAK8E,EAAI+qB,EAAc,EACnB5vB,KAAQH,EAAGA,EAAEE,GAAMF,EAAEG,GACpBR,EAAsBK,EAAGE,GAGlC,IAAK8E,EAAI,EAAGA,EAAI+qB,EAAa/qB,IAC3BhF,EAAEgF,EAAIirB,GAAerxB,UAAUoG,EAAI,GAGrC,OADAhF,EAAE5J,OAAS6J,EAAM+vB,EAAoBD,EAC9BtR,M,qBC9DX,IAAI9T,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MACjB0M,EAAQ,EAAQ,MAChB4oB,EAAgC,EAAQ,MAExCyD,EAAe,cACfC,EAAch5B,EAAO+4B,GAErBjsB,EAA4C,IAAnCuD,MAAM,IAAK,CAAEuQ,MAAO,IAAKA,MAElCqY,EAAgC,SAAUjE,EAAY1jB,GACxD,IAAIzI,EAAI,GACRA,EAAEmsB,GAAcM,EAA8BN,EAAY1jB,EAASxE,GACnE0G,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAM4d,MAAO,EAAGjiB,OAAQqK,GAAUjE,IAG/DqwB,EAAqC,SAAUlE,EAAY1jB,GAC7D,GAAI0nB,GAAeA,EAAYhE,GAAa,CAC1C,IAAInsB,EAAI,GACRA,EAAEmsB,GAAcM,EAA8ByD,EAAe,IAAM/D,EAAY1jB,EAASxE,GACxF0G,EAAE,CAAE5K,OAAQmwB,EAAcjd,MAAM,EAAMhV,aAAa,EAAM4d,MAAO,EAAGjiB,OAAQqK,GAAUjE,KAKzFowB,EAA8B,SAAS,SAAUtD,GAC/C,OAAO,SAAeN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAE5DwxB,EAA8B,aAAa,SAAUtD,GACnD,OAAO,SAAmBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAEhEwxB,EAA8B,cAAc,SAAUtD,GACpD,OAAO,SAAoBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAEjEwxB,EAA8B,kBAAkB,SAAUtD,GACxD,OAAO,SAAwBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAErEwxB,EAA8B,eAAe,SAAUtD,GACrD,OAAO,SAAqBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAElEwxB,EAA8B,aAAa,SAAUtD,GACnD,OAAO,SAAmBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAEhEwxB,EAA8B,YAAY,SAAUtD,GAClD,OAAO,SAAkBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAE/DyxB,EAAmC,gBAAgB,SAAUvD,GAC3D,OAAO,SAAsBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAEnEyxB,EAAmC,aAAa,SAAUvD,GACxD,OAAO,SAAmBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,eAEhEyxB,EAAmC,gBAAgB,SAAUvD,GAC3D,OAAO,SAAsBN,GAAW,OAAO3oB,EAAMipB,EAAMr5B,KAAMmL,gB,qBCtDnE,IAAI1H,EAAc,EAAQ,MACtBo5B,EAAuB,eACvBl2B,EAAc,EAAQ,MACtB7E,EAAiB,UAEjBgf,EAAoBra,SAASvE,UAC7BkiB,EAAmBzd,EAAYma,EAAkBzN,UACjDypB,EAAS,mEACTC,EAAap2B,EAAYm2B,EAAO7pB,MAChC3P,EAAO,OAIPG,IAAgBo5B,GAClB/6B,EAAegf,EAAmBxd,EAAM,CACtClB,cAAc,EACdsE,IAAK,WACH,IACE,OAAOq2B,EAAWD,EAAQ1Y,EAAiBpkB,OAAO,GAClD,MAAOsG,GACP,MAAO,Q,qBCpBf,IAAI4Q,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MAIrBwT,EAAE,CAAExT,QAAQ,GAAQ,CAClBkf,WAAYlf,K,qBCNd,IAAIwT,EAAI,EAAQ,MACZ0H,EAAa,EAAQ,MACrBxO,EAAQ,EAAQ,MAChB/P,EAAO,EAAQ,MACfsG,EAAc,EAAQ,MACtBzD,EAAQ,EAAQ,MAChBoP,EAAU,EAAQ,MAClBnR,EAAa,EAAQ,KACrB4B,EAAW,EAAQ,KACnB2yB,EAAW,EAAQ,MACnBruB,EAAa,EAAQ,KACrB6iB,EAAgB,EAAQ,KAExB8S,EAAape,EAAW,OAAQ,aAChC3L,EAAOtM,EAAY,IAAIsM,MACvB1Q,EAASoE,EAAY,GAAGpE,QACxBiwB,EAAa7rB,EAAY,GAAG6rB,YAC5Bxe,EAAUrN,EAAY,GAAGqN,SACzBipB,EAAiBt2B,EAAY,GAAI0M,UAEjC6pB,EAAS,mBACTC,EAAM,oBACNC,EAAK,oBAELC,GAA4BnT,GAAiBhnB,GAAM,WACrD,IAAImnB,EAASzL,EAAW,SAAXA,GAEb,MAA+B,UAAxBoe,EAAW,CAAC3S,KAEe,MAA7B2S,EAAW,CAAEla,EAAGuH,KAEc,MAA9B2S,EAAW55B,OAAOinB,OAIrBiT,EAAqBp6B,GAAM,WAC7B,MAAsC,qBAA/B85B,EAAW,iBACY,cAAzBA,EAAW,aAGdO,EAA0B,SAAU16B,EAAI26B,GAC1C,IAAIlc,EAAOja,EAAW8D,WAClBsyB,EAAYD,EAChB,IAAKz6B,EAASy6B,SAAoBr7B,IAAPU,KAAoB6yB,EAAS7yB,GAMxD,OALKyP,EAAQkrB,KAAWA,EAAW,SAAUl7B,EAAKD,GAEhD,GADIlB,EAAWs8B,KAAYp7B,EAAQhC,EAAKo9B,EAAWz9B,KAAMsC,EAAKD,KACzDqzB,EAASrzB,GAAQ,OAAOA,IAE/Bif,EAAK,GAAKkc,EACHptB,EAAM4sB,EAAY,KAAM1b,IAG7Boc,EAAe,SAAUpf,EAAOtT,EAAQiO,GAC1C,IAAIhD,EAAO1T,EAAO0W,EAAQjO,EAAS,GAC/BmD,EAAO5L,EAAO0W,EAAQjO,EAAS,GACnC,OAAKiI,EAAKkqB,EAAK7e,KAAWrL,EAAKmqB,EAAIjvB,IAAW8E,EAAKmqB,EAAI9e,KAAWrL,EAAKkqB,EAAKlnB,GACnE,MAAQgnB,EAAezK,EAAWlU,EAAO,GAAI,IAC7CA,GAGP0e,GAGF9lB,EAAE,CAAE5K,OAAQ,OAAQkT,MAAM,EAAM4I,MAAO,EAAGjiB,OAAQk3B,GAA4BC,GAAsB,CAElGK,UAAW,SAAmB96B,EAAI26B,EAAUI,GAC1C,IAAItc,EAAOja,EAAW8D,WAClBkC,EAAS+C,EAAMitB,EAA2BE,EAA0BP,EAAY,KAAM1b,GAC1F,OAAOgc,GAAuC,iBAAVjwB,EAAqB2G,EAAQ3G,EAAQ6vB,EAAQQ,GAAgBrwB,M,qBCpEvG,IAAI3J,EAAS,EAAQ,MACjB4D,EAAiB,EAAQ,MAI7BA,EAAe5D,EAAOm6B,KAAM,QAAQ,I,kCCJpC,IAAIC,EAAa,EAAQ,MACrBC,EAAmB,EAAQ,MAI/BD,EAAW,OAAO,SAAUzE,GAC1B,OAAO,WAAiB,OAAOA,EAAKr5B,KAAMmL,UAAUxI,OAASwI,UAAU,QAAKhJ,MAC3E47B,I,qBCPH,EAAQ,O,qBCDR,IAAIz2B,EAAiB,EAAQ,MAI7BA,EAAe8E,KAAM,QAAQ,I,kCCH7B,IAAI3I,EAAc,EAAQ,MACtBC,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MACtBwQ,EAAW,EAAQ,MACnBrT,EAAgB,EAAQ,MACxBH,EAAS,EAAQ,MACjB2T,EAAoB,EAAQ,MAC5B1U,EAAgB,EAAQ,MACxB8yB,EAAW,EAAQ,MACnBL,EAAc,EAAQ,MACtBnyB,EAAQ,EAAQ,MAChBiE,EAAsB,UACtB0R,EAA2B,UAC3B/W,EAAiB,UACjBk8B,EAAkB,EAAQ,KAC1B7K,EAAO,aAEP8K,EAAS,SACTC,EAAex6B,EAAOu6B,GACtBE,EAAkBD,EAAah8B,UAC/BZ,EAAYoC,EAAOpC,UACnB+F,EAAaV,EAAY,GAAG+K,OAC5B8gB,EAAa7rB,EAAY,GAAG6rB,YAI5B4L,EAAY,SAAU/7B,GACxB,IAAIg8B,EAAYhJ,EAAYhzB,EAAO,UACnC,MAA2B,iBAAbg8B,EAAwBA,EAAYC,EAASD,IAKzDC,EAAW,SAAU98B,GACvB,IACI6T,EAAOkpB,EAAOC,EAAOC,EAASC,EAAQ/7B,EAAQF,EAAOq5B,EADrDj5B,EAAKwyB,EAAY7zB,EAAU,UAE/B,GAAIk0B,EAAS7yB,GAAK,MAAMvB,EAAU,6CAClC,GAAiB,iBAANuB,GAAkBA,EAAGF,OAAS,EAGvC,GAFAE,EAAKswB,EAAKtwB,GACVwS,EAAQmd,EAAW3vB,EAAI,GACT,KAAVwS,GAA0B,KAAVA,GAElB,GADAkpB,EAAQ/L,EAAW3vB,EAAI,GACT,KAAV07B,GAA0B,MAAVA,EAAe,OAAOl0B,SACrC,GAAc,KAAVgL,EAAc,CACvB,OAAQmd,EAAW3vB,EAAI,IACrB,KAAK,GAAI,KAAK,GAAI27B,EAAQ,EAAGC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKD,EAAQ,EAAGC,EAAU,GAAI,MAC5C,QAAS,OAAQ57B,EAInB,IAFA67B,EAASr3B,EAAWxE,EAAI,GACxBF,EAAS+7B,EAAO/7B,OACXF,EAAQ,EAAGA,EAAQE,EAAQF,IAI9B,GAHAq5B,EAAOtJ,EAAWkM,EAAQj8B,GAGtBq5B,EAAO,IAAMA,EAAO2C,EAAS,OAAOp0B,IACxC,OAAOs0B,SAASD,EAAQF,GAE5B,OAAQ37B,GAKZ,GAAIsU,EAAS8mB,GAASC,EAAa,UAAYA,EAAa,QAAUA,EAAa,SAAU,CAQ3F,IAPA,IAcqB57B,EAdjBs8B,EAAgB,SAAgBv8B,GAClC,IAAIoP,EAAItG,UAAUxI,OAAS,EAAI,EAAIu7B,EAAaE,EAAU/7B,IACtDiW,EAAQtY,KAEZ,OAAO4C,EAAcu7B,EAAiB7lB,IAAUpV,GAAM,WAAc86B,EAAgB1lB,MAChFhB,EAAkBlU,OAAOqO,GAAI6G,EAAOsmB,GAAiBntB,GAElDnH,EAAO7G,EAAc0D,EAAoB+2B,GAAgB,oLAOhElf,MAAM,KAAMzU,EAAI,EAAQD,EAAK3H,OAAS4H,EAAGA,IACrC5G,EAAOu6B,EAAc57B,EAAMgI,EAAKC,MAAQ5G,EAAOi7B,EAAet8B,IAChER,EAAe88B,EAAet8B,EAAKuW,EAAyBqlB,EAAc57B,IAG9Es8B,EAAc18B,UAAYi8B,EAC1BA,EAAgB3zB,YAAco0B,EAC9B96B,EAAcJ,EAAQu6B,EAAQW,EAAe,CAAEp0B,aAAa,M,qBCtF9D,IAAI0M,EAAI,EAAQ,MAIhBA,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,GAAQ,CAClCqf,MAAO,SAAe51B,GAEpB,OAAOA,GAAUA,M,kCCNrB,IAAIiO,EAAI,EAAQ,MACZvQ,EAAc,EAAQ,MACtBI,EAAsB,EAAQ,MAC9Bi3B,EAAkB,EAAQ,KAC1Bc,EAAU,EAAQ,MAClB57B,EAAQ,EAAQ,MAEhB2vB,EAAcpqB,WACd/G,EAAUC,OACVgQ,EAAQvF,KAAKuF,MACbotB,EAASp4B,EAAYm4B,GACrBxrB,EAAc3M,EAAY,GAAG+K,OAC7BstB,EAAar4B,EAAY,GAAIs4B,SAE7B/b,EAAM,SAAUqF,EAAG9W,EAAGytB,GACxB,OAAa,IAANztB,EAAUytB,EAAMztB,EAAI,IAAM,EAAIyR,EAAIqF,EAAG9W,EAAI,EAAGytB,EAAM3W,GAAKrF,EAAIqF,EAAIA,EAAG9W,EAAI,EAAGytB,IAG9E/b,EAAM,SAAUoF,GAClB,IAAI9W,EAAI,EACJ0tB,EAAK5W,EACT,MAAO4W,GAAM,KACX1tB,GAAK,GACL0tB,GAAM,KAER,MAAOA,GAAM,EACX1tB,GAAK,EACL0tB,GAAM,EACN,OAAO1tB,GAGP2tB,EAAW,SAAUppB,EAAMvE,EAAG+R,GAChC,IAAI/gB,GAAS,EACT48B,EAAK7b,EACT,QAAS/gB,EAAQ,EACf48B,GAAM5tB,EAAIuE,EAAKvT,GACfuT,EAAKvT,GAAS48B,EAAK,IACnBA,EAAK1tB,EAAM0tB,EAAK,MAIhBC,EAAS,SAAUtpB,EAAMvE,GAC3B,IAAIhP,EAAQ,EACR+gB,EAAI,EACR,QAAS/gB,GAAS,EAChB+gB,GAAKxN,EAAKvT,GACVuT,EAAKvT,GAASkP,EAAM6R,EAAI/R,GACxB+R,EAAKA,EAAI/R,EAAK,KAId8tB,EAAe,SAAUvpB,GAC3B,IAAIvT,EAAQ,EACR+8B,EAAI,GACR,QAAS/8B,GAAS,EAChB,GAAU,KAAN+8B,GAAsB,IAAV/8B,GAA+B,IAAhBuT,EAAKvT,GAAc,CAChD,IAAIg9B,EAAI/9B,EAAQsU,EAAKvT,IACrB+8B,EAAU,KAANA,EAAWC,EAAID,EAAIT,EAAO,IAAK,EAAIU,EAAE98B,QAAU88B,EAErD,OAAOD,GAGPhvB,EAAStN,GAAM,WACjB,MAAkC,UAA3B87B,EAAW,KAAS,IACF,MAAvBA,EAAW,GAAK,IACS,SAAzBA,EAAW,MAAO,IACuB,wBAAzCA,EAAW,kBAAuB,QAC/B97B,GAAM,WAEX87B,EAAW,OAKb9nB,EAAE,CAAE5K,OAAQ,SAAUmP,OAAO,EAAMtV,OAAQqK,GAAU,CACnDyuB,QAAS,SAAiBS,GACxB,IAKIC,EAAGC,EAAGr1B,EAAGgH,EALTtI,EAAS+0B,EAAgBh+B,MACzB6/B,EAAc94B,EAAoB24B,GAClC1pB,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvB6N,EAAO,GACPxW,EAAS,IAIb,GAAIwyB,EAAc,GAAKA,EAAc,GAAI,MAAMhN,EAAY,6BAE3D,GAAI5pB,GAAUA,EAAQ,MAAO,MAC7B,GAAIA,IAAW,MAAQA,GAAU,KAAM,OAAOvH,EAAQuH,GAKtD,GAJIA,EAAS,IACX4a,EAAO,IACP5a,GAAUA,GAERA,EAAS,MAKX,GAJA02B,EAAIxc,EAAIla,EAASia,EAAI,EAAG,GAAI,IAAM,GAClC0c,EAAID,EAAI,EAAI12B,EAASia,EAAI,GAAIyc,EAAG,GAAK12B,EAASia,EAAI,EAAGyc,EAAG,GACxDC,GAAK,iBACLD,EAAI,GAAKA,EACLA,EAAI,EAAG,CACTP,EAASppB,EAAM,EAAG4pB,GAClBr1B,EAAIs1B,EACJ,MAAOt1B,GAAK,EACV60B,EAASppB,EAAM,IAAK,GACpBzL,GAAK,EAEP60B,EAASppB,EAAMkN,EAAI,GAAI3Y,EAAG,GAAI,GAC9BA,EAAIo1B,EAAI,EACR,MAAOp1B,GAAK,GACV+0B,EAAOtpB,EAAM,GAAK,IAClBzL,GAAK,GAEP+0B,EAAOtpB,EAAM,GAAKzL,GAClB60B,EAASppB,EAAM,EAAG,GAClBspB,EAAOtpB,EAAM,GACb3I,EAASkyB,EAAavpB,QAEtBopB,EAASppB,EAAM,EAAG4pB,GAClBR,EAASppB,EAAM,IAAM2pB,EAAG,GACxBtyB,EAASkyB,EAAavpB,GAAQ+oB,EAAO,IAAKc,GAU5C,OAPEA,EAAc,GAChBtuB,EAAIlE,EAAO1K,OACX0K,EAASwW,GAAQtS,GAAKsuB,EAClB,KAAOd,EAAO,IAAKc,EAActuB,GAAKlE,EACtCiG,EAAYjG,EAAQ,EAAGkE,EAAIsuB,GAAe,IAAMvsB,EAAYjG,EAAQkE,EAAIsuB,KAE5ExyB,EAASwW,EAAOxW,EACTA,M,qBChIb,IAAI6J,EAAI,EAAQ,MACZ6T,EAAS,EAAQ,MAKrB7T,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAM4I,MAAO,EAAGjiB,OAAQ/C,OAAO2nB,SAAWA,GAAU,CAC9EA,OAAQA,K,qBCPV,IAAI7T,EAAI,EAAQ,MACZwN,EAAW,EAAQ,MACnBxhB,EAAQ,EAAQ,MAChBH,EAAW,EAAQ,KACnBiiB,EAAW,iBAGX8a,EAAU18B,OAAO28B,OACjB7R,EAAsBhrB,GAAM,WAAc48B,EAAQ,MAItD5oB,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,OAAQ+nB,EAAqBxO,MAAOgF,GAAY,CAChFqb,OAAQ,SAAgBl9B,GACtB,OAAOi9B,GAAW/8B,EAASF,GAAMi9B,EAAQ9a,EAASniB,IAAOA,M,qBCd7D,IAAIqU,EAAI,EAAQ,MACZhU,EAAQ,EAAQ,MAChBoL,EAAkB,EAAQ,MAC1B8nB,EAAiC,UACjC3yB,EAAc,EAAQ,MAEtByqB,EAAsBhrB,GAAM,WAAckzB,EAA+B,MACzE5lB,GAAU/M,GAAeyqB,EAI7BhX,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,OAAQqK,EAAQkP,MAAOjc,GAAe,CACtEoV,yBAA0B,SAAkChW,EAAIP,GAC9D,OAAO8zB,EAA+B9nB,EAAgBzL,GAAKP,O,qBCb/D,IAAI4U,EAAI,EAAQ,MACZzT,EAAc,EAAQ,MACtB8U,EAAU,EAAQ,MAClBjK,EAAkB,EAAQ,MAC1BkK,EAAiC,EAAQ,MACzC/K,EAAiB,EAAQ,MAI7ByJ,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAME,MAAOjc,GAAe,CACtDu8B,0BAA2B,SAAmC5sB,GAC5D,IAKI9Q,EAAK0X,EALLzN,EAAI+B,EAAgB8E,GACpByF,EAA2BL,EAA+BI,EAC1DtO,EAAOiO,EAAQhM,GACfc,EAAS,GACT5K,EAAQ,EAEZ,MAAO6H,EAAK3H,OAASF,EACnBuX,EAAanB,EAAyBtM,EAAGjK,EAAMgI,EAAK7H,WACjCN,IAAf6X,GAA0BvM,EAAeJ,EAAQ/K,EAAK0X,GAE5D,OAAO3M,M,qBCrBX,IAAI6J,EAAI,EAAQ,MACZhU,EAAQ,EAAQ,MAChBiE,EAAsB,UAGtB+mB,EAAsBhrB,GAAM,WAAc,OAAQE,OAAO+D,oBAAoB,MAIjF+P,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,OAAQ+nB,GAAuB,CAC/D/mB,oBAAqBA,K,qBCVvB,IAAI+P,EAAI,EAAQ,MACZgT,EAAgB,EAAQ,KACxBhnB,EAAQ,EAAQ,MAChB0nB,EAA8B,EAAQ,MACtC7e,EAAW,EAAQ,MAInByE,GAAU0Z,GAAiBhnB,GAAM,WAAc0nB,EAA4BhS,EAAE,MAIjF1B,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,OAAQqK,GAAU,CAClD4Z,sBAAuB,SAA+BvnB,GACpD,IAAIo9B,EAAyBrV,EAA4BhS,EACzD,OAAOqnB,EAAyBA,EAAuBl0B,EAASlJ,IAAO,O,oBCf3E,IAAIqU,EAAI,EAAQ,MACZhU,EAAQ,EAAQ,MAChB6I,EAAW,EAAQ,MACnBm0B,EAAuB,EAAQ,MAC/BnS,EAA2B,EAAQ,MAEnCG,EAAsBhrB,GAAM,WAAcg9B,EAAqB,MAInEhpB,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,OAAQ+nB,EAAqBxO,MAAOqO,GAA4B,CAChGhqB,eAAgB,SAAwBlB,GACtC,OAAOq9B,EAAqBn0B,EAASlJ,Q,qBCZzC,IAAIqU,EAAI,EAAQ,MACZ+W,EAAgB,EAAQ,MAK5B/W,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,OAAQ/C,OAAOC,eAAiB4qB,GAAiB,CACjF5qB,aAAc4qB,K,qBCPhB,IAAI/W,EAAI,EAAQ,MACZhU,EAAQ,EAAQ,MAChBH,EAAW,EAAQ,KACnBa,EAAU,EAAQ,MAClBoqB,EAA8B,EAAQ,MAGtCmS,EAAY/8B,OAAOg9B,SACnBlS,EAAsBhrB,GAAM,WAAci9B,EAAU,MAIxDjpB,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,OAAQ+nB,GAAuBF,GAA+B,CAC9FoS,SAAU,SAAkBv9B,GAC1B,OAAKE,EAASF,QACVmrB,GAA8C,eAAfpqB,EAAQf,OACpCs9B,GAAYA,EAAUt9B,Q,qBChBjC,IAAIqU,EAAI,EAAQ,MACZ6a,EAAK,EAAQ,MAIjB7a,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,GAAQ,CAClCuS,GAAIA,K,qBCNN,IAAI7a,EAAI,EAAQ,MACZnL,EAAW,EAAQ,MACnBs0B,EAAa,EAAQ,MACrBn9B,EAAQ,EAAQ,MAEhBgrB,EAAsBhrB,GAAM,WAAcm9B,EAAW,MAIzDnpB,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,OAAQ+nB,GAAuB,CAC/D5jB,KAAM,SAAczH,GAClB,OAAOw9B,EAAWt0B,EAASlJ,Q,qBCX/B,IAAI0Q,EAAwB,EAAQ,MAChCzP,EAAgB,EAAQ,MACxBuP,EAAW,EAAQ,KAIlBE,GACHzP,EAAcV,OAAOlB,UAAW,WAAYmR,EAAU,CAAEvI,QAAQ,K,iCCNlE,IAAIoM,EAAI,EAAQ,MACZ7W,EAAO,EAAQ,MACf4Q,EAAY,EAAQ,MACpBqvB,EAA6B,EAAQ,MACrCC,EAAU,EAAQ,MAClB9rB,EAAU,EAAQ,KAClB+rB,EAAsC,EAAQ,KAIlDtpB,EAAE,CAAE5K,OAAQ,UAAWkT,MAAM,EAAMrZ,OAAQq6B,GAAuC,CAChF7Q,IAAK,SAAaxa,GAChB,IAAIpP,EAAI/F,KACJygC,EAAaH,EAA2B1nB,EAAE7S,GAC1C6jB,EAAU6W,EAAW7W,QACrBW,EAASkW,EAAWlW,OACpBld,EAASkzB,GAAQ,WACnB,IAAIG,EAAkBzvB,EAAUlL,EAAE6jB,SAC9BpO,EAAS,GACTwY,EAAU,EACV2M,EAAY,EAChBlsB,EAAQU,GAAU,SAAU0T,GAC1B,IAAIpmB,EAAQuxB,IACR4M,GAAgB,EACpBD,IACAtgC,EAAKqgC,EAAiB36B,EAAG8iB,GAASC,MAAK,SAAUzmB,GAC3Cu+B,IACJA,GAAgB,EAChBplB,EAAO/Y,GAASJ,IACds+B,GAAa/W,EAAQpO,MACtB+O,QAEHoW,GAAa/W,EAAQpO,MAGzB,OADInO,EAAO/G,OAAOikB,EAAOld,EAAOhL,OACzBo+B,EAAW5X,Y,kCCnCtB,IAAI3R,EAAI,EAAQ,MACZoD,EAAU,EAAQ,MAClB6U,EAA6B,oBAC7BN,EAA2B,EAAQ,MACnCjQ,EAAa,EAAQ,MACrBzd,EAAa,EAAQ,KACrB2C,EAAgB,EAAQ,MAExBirB,EAAyBF,GAA4BA,EAAyB3sB,UAWlF,GAPAgV,EAAE,CAAE5K,OAAQ,UAAWmP,OAAO,EAAMtV,OAAQgpB,EAA4B0R,MAAM,GAAQ,CACpF,MAAS,SAAUC,GACjB,OAAO9gC,KAAK8oB,UAAK3mB,EAAW2+B,OAK3BxmB,GAAWnZ,EAAW0tB,GAA2B,CACpD,IAAI7d,EAAS4N,EAAW,WAAW1c,UAAU,SACzC6sB,EAAuB,WAAa/d,GACtClN,EAAcirB,EAAwB,QAAS/d,EAAQ,CAAElG,QAAQ,M,kCCtBrE,IAgDIi2B,EAAUC,EAAsBC,EAAgBC,EAhDhDhqB,EAAI,EAAQ,MACZoD,EAAU,EAAQ,MAClB6O,EAAU,EAAQ,MAClBzlB,EAAS,EAAQ,MACjBrD,EAAO,EAAQ,MACfyD,EAAgB,EAAQ,MACxBE,EAAiB,EAAQ,MACzBsD,EAAiB,EAAQ,MACzBqN,EAAa,EAAQ,MACrB1D,EAAY,EAAQ,MACpB9P,EAAa,EAAQ,KACrB4B,EAAW,EAAQ,KACnB+D,EAAa,EAAQ,MACrBywB,EAAqB,EAAQ,MAC7BtN,EAAO,WACPkX,EAAY,EAAQ,MACpBC,EAAmB,EAAQ,KAC3Bb,EAAU,EAAQ,MAClBzQ,EAAQ,EAAQ,MAChBvoB,EAAsB,EAAQ,MAC9BsnB,EAA2B,EAAQ,MACnCwS,EAA8B,EAAQ,MACtCf,EAA6B,EAAQ,MAErCgB,EAAU,UACVnS,EAA6BkS,EAA4B9R,YACzDN,EAAiCoS,EAA4B7R,gBAC7D+R,EAA6BF,EAA4BrS,YACzDwS,EAA0Bj6B,EAAoBuN,UAAUwsB,GACxDz5B,EAAmBN,EAAoBO,IACvCinB,EAAyBF,GAA4BA,EAAyB3sB,UAC9Eu/B,EAAqB5S,EACrB6S,EAAmB3S,EACnBztB,EAAYoC,EAAOpC,UACnBwa,EAAWpY,EAAOoY,SAClB6C,EAAUjb,EAAOib,QACjB8Q,EAAuB6Q,EAA2B1nB,EAClD+oB,EAA8BlS,EAE9BmS,KAAoB9lB,GAAYA,EAAS+lB,aAAen+B,EAAOo+B,eAC/DC,EAAsB,qBACtBC,EAAoB,mBACpBC,EAAU,EACVC,EAAY,EACZC,EAAW,EACXC,EAAU,EACVC,EAAY,EAKZC,EAAa,SAAUz/B,GACzB,IAAIimB,EACJ,SAAO/lB,EAASF,KAAO1B,EAAW2nB,EAAOjmB,EAAGimB,QAAQA,GAGlDyZ,EAAe,SAAUC,EAAU7sB,GACrC,IAMItI,EAAQyb,EAAM2Z,EANdpgC,EAAQsT,EAAMtT,MACdqgC,EAAK/sB,EAAMA,OAASusB,EACpBvN,EAAU+N,EAAKF,EAASE,GAAKF,EAASG,KACtC/Y,EAAU4Y,EAAS5Y,QACnBW,EAASiY,EAASjY,OAClBd,EAAS+Y,EAAS/Y,OAEtB,IACMkL,GACG+N,IACC/sB,EAAMitB,YAAcP,GAAWQ,GAAkBltB,GACrDA,EAAMitB,UAAYR,IAEJ,IAAZzN,EAAkBtnB,EAAShL,GAEzBonB,GAAQA,EAAOE,QACnBtc,EAASsnB,EAAQtyB,GACbonB,IACFA,EAAOC,OACP+Y,GAAS,IAGTp1B,IAAWm1B,EAAS3Z,QACtB0B,EAAOjpB,EAAU,yBACRwnB,EAAOwZ,EAAWj1B,IAC3BhN,EAAKyoB,EAAMzb,EAAQuc,EAASW,GACvBX,EAAQvc,IACVkd,EAAOloB,GACd,MAAOiE,GACHmjB,IAAWgZ,GAAQhZ,EAAOC,OAC9Ba,EAAOjkB,KAIPoiB,GAAS,SAAU/S,EAAOmtB,GACxBntB,EAAMotB,WACVptB,EAAMotB,UAAW,EACjB5B,GAAU,WACR,IACIqB,EADAQ,EAAYrtB,EAAMqtB,UAEtB,MAAOR,EAAWQ,EAAUt8B,MAC1B67B,EAAaC,EAAU7sB,GAEzBA,EAAMotB,UAAW,EACbD,IAAantB,EAAMitB,WAAWK,GAAYttB,QAI9CmsB,GAAgB,SAAU13B,EAAMye,EAASqa,GAC3C,IAAI5O,EAAOK,EACPiN,GACFtN,EAAQxY,EAAS+lB,YAAY,SAC7BvN,EAAMzL,QAAUA,EAChByL,EAAM4O,OAASA,EACf5O,EAAM6O,UAAU/4B,GAAM,GAAO,GAC7B1G,EAAOo+B,cAAcxN,IAChBA,EAAQ,CAAEzL,QAASA,EAASqa,OAAQA,IACtCjU,IAAmC0F,EAAUjxB,EAAO,KAAO0G,IAAQuqB,EAAQL,GACvElqB,IAAS23B,GAAqBX,EAAiB,8BAA+B8B,IAGrFD,GAAc,SAAUttB,GAC1BtV,EAAK4pB,EAAMvmB,GAAQ,WACjB,IAGI2J,EAHAwb,EAAUlT,EAAMiQ,OAChBvjB,EAAQsT,EAAMtT,MACd+gC,EAAeC,GAAY1tB,GAE/B,GAAIytB,IACF/1B,EAASkzB,GAAQ,WACXpX,EACFxK,EAAQ2kB,KAAK,qBAAsBjhC,EAAOwmB,GACrCiZ,GAAcC,EAAqBlZ,EAASxmB,MAGrDsT,EAAMitB,UAAYzZ,GAAWka,GAAY1tB,GAAS0sB,EAAYD,EAC1D/0B,EAAO/G,OAAO,MAAM+G,EAAOhL,UAKjCghC,GAAc,SAAU1tB,GAC1B,OAAOA,EAAMitB,YAAcR,IAAYzsB,EAAMxV,QAG3C0iC,GAAoB,SAAUltB,GAChCtV,EAAK4pB,EAAMvmB,GAAQ,WACjB,IAAImlB,EAAUlT,EAAMiQ,OAChBuD,EACFxK,EAAQ2kB,KAAK,mBAAoBza,GAC5BiZ,GAAcE,EAAmBnZ,EAASlT,EAAMtT,WAIvDiL,GAAO,SAAUqF,EAAIgD,EAAO4tB,GAC9B,OAAO,SAAUlhC,GACfsQ,EAAGgD,EAAOtT,EAAOkhC,KAIjBC,GAAiB,SAAU7tB,EAAOtT,EAAOkhC,GACvC5tB,EAAMtH,OACVsH,EAAMtH,MAAO,EACTk1B,IAAQ5tB,EAAQ4tB,GACpB5tB,EAAMtT,MAAQA,EACdsT,EAAMA,MAAQwsB,EACdzZ,GAAO/S,GAAO,KAGZ8tB,GAAkB,SAAU9tB,EAAOtT,EAAOkhC,GAC5C,IAAI5tB,EAAMtH,KAAV,CACAsH,EAAMtH,MAAO,EACTk1B,IAAQ5tB,EAAQ4tB,GACpB,IACE,GAAI5tB,EAAMiQ,SAAWvjB,EAAO,MAAMf,EAAU,oCAC5C,IAAIwnB,EAAOwZ,EAAWjgC,GAClBymB,EACFqY,GAAU,WACR,IAAInsB,EAAU,CAAE3G,MAAM,GACtB,IACEhO,EAAKyoB,EAAMzmB,EACTiL,GAAKm2B,GAAiBzuB,EAASW,GAC/BrI,GAAKk2B,GAAgBxuB,EAASW,IAEhC,MAAOrP,GACPk9B,GAAexuB,EAAS1O,EAAOqP,QAInCA,EAAMtT,MAAQA,EACdsT,EAAMA,MAAQusB,EACdxZ,GAAO/S,GAAO,IAEhB,MAAOrP,GACPk9B,GAAe,CAAEn1B,MAAM,GAAS/H,EAAOqP,MAK3C,GAAIwZ,IAEFsS,EAAqB,SAAiBiC,GACpC58B,EAAW9G,KAAM0hC,GACjBzwB,EAAUyyB,GACVrjC,EAAK0gC,EAAU/gC,MACf,IAAI2V,EAAQ6rB,EAAwBxhC,MACpC,IACE0jC,EAASp2B,GAAKm2B,GAAiB9tB,GAAQrI,GAAKk2B,GAAgB7tB,IAC5D,MAAOrP,GACPk9B,GAAe7tB,EAAOrP,KAI1Bo7B,EAAmBD,EAAmBv/B,UAGtC6+B,EAAW,SAAiB2C,GAC1B77B,EAAiB7H,KAAM,CACrBoV,KAAMksB,EACNjzB,MAAM,EACN00B,UAAU,EACV5iC,QAAQ,EACR6iC,UAAW,IAAIlT,EACf8S,WAAW,EACXjtB,MAAOssB,EACP5/B,WAAOF,KAMX4+B,EAAS7+B,UAAY4B,EAAc49B,EAAkB,QAAQ,SAAciC,EAAa7C,GACtF,IAAInrB,EAAQ6rB,EAAwBxhC,MAChCwiC,EAAW/S,EAAqB8H,EAAmBv3B,KAAMyhC,IAS7D,OARA9rB,EAAMxV,QAAS,EACfqiC,EAASE,IAAKvhC,EAAWwiC,IAAeA,EACxCnB,EAASG,KAAOxhC,EAAW2/B,IAAeA,EAC1C0B,EAAS/Y,OAASN,EAAUxK,EAAQ8K,YAAStnB,EACzCwT,EAAMA,OAASssB,EAAStsB,EAAMqtB,UAAUziC,IAAIiiC,GAC3CrB,GAAU,WACboB,EAAaC,EAAU7sB,MAElB6sB,EAAS3Z,WAGlBmY,EAAuB,WACrB,IAAInY,EAAU,IAAIkY,EACdprB,EAAQ6rB,EAAwB3Y,GACpC7oB,KAAK6oB,QAAUA,EACf7oB,KAAK4pB,QAAUtc,GAAKm2B,GAAiB9tB,GACrC3V,KAAKuqB,OAASjd,GAAKk2B,GAAgB7tB,IAGrC2qB,EAA2B1nB,EAAI6W,EAAuB,SAAU1pB,GAC9D,OAAOA,IAAM07B,GAAsB17B,IAAMk7B,EACrC,IAAID,EAAqBj7B,GACzB47B,EAA4B57B,KAG7BuU,GAAWnZ,EAAW0tB,IAA6BE,IAA2B3rB,OAAOlB,WAAW,CACnGg/B,EAAanS,EAAuBjG,KAE/ByY,GAEHz9B,EAAcirB,EAAwB,QAAQ,SAAc4U,EAAa7C,GACvE,IAAIrxB,EAAOzP,KACX,OAAO,IAAIyhC,GAAmB,SAAU7X,EAASW,GAC/ClqB,EAAK6gC,EAAYzxB,EAAMma,EAASW,MAC/BzB,KAAK6a,EAAa7C,KAEpB,CAAEh2B,QAAQ,IAIf,WACSikB,EAAuBvkB,YAC9B,MAAOlE,KAGLtC,GACFA,EAAe+qB,EAAwB2S,GAK7CxqB,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAMo5B,MAAM,EAAMz9B,OAAQgpB,GAA8B,CACrF7F,QAASmY,IAGXn6B,EAAem6B,EAAoBH,GAAS,GAAO,GACnD3sB,EAAW2sB,I,kCC9RX,IAAIpqB,EAAI,EAAQ,MACZoD,EAAU,EAAQ,MAClBuU,EAA2B,EAAQ,MACnC3rB,EAAQ,EAAQ,MAChB0b,EAAa,EAAQ,MACrBzd,EAAa,EAAQ,KACrBo2B,EAAqB,EAAQ,MAC7BsM,EAAiB,EAAQ,MACzB//B,EAAgB,EAAQ,MAExBirB,EAAyBF,GAA4BA,EAAyB3sB,UAG9E4hC,IAAgBjV,GAA4B3rB,GAAM,WAEpD6rB,EAAuB,WAAW1uB,KAAK,CAAEyoB,KAAM,eAA+B,kBAqBhF,GAhBA5R,EAAE,CAAE5K,OAAQ,UAAWmP,OAAO,EAAMolB,MAAM,EAAM16B,OAAQ29B,GAAe,CACrE,QAAW,SAAUC,GACnB,IAAIh+B,EAAIwxB,EAAmBv3B,KAAM4e,EAAW,YACxColB,EAAa7iC,EAAW4iC,GAC5B,OAAO/jC,KAAK8oB,KACVkb,EAAa,SAAUzb,GACrB,OAAOsb,EAAe99B,EAAGg+B,KAAajb,MAAK,WAAc,OAAOP,MAC9Dwb,EACJC,EAAa,SAAUrE,GACrB,OAAOkE,EAAe99B,EAAGg+B,KAAajb,MAAK,WAAc,MAAM6W,MAC7DoE,OAMLzpB,GAAWnZ,EAAW0tB,GAA2B,CACpD,IAAI7d,EAAS4N,EAAW,WAAW1c,UAAU,WACzC6sB,EAAuB,aAAe/d,GACxClN,EAAcirB,EAAwB,UAAW/d,EAAQ,CAAElG,QAAQ,M,qBCvCvE,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,O,kCCLR,IAAIoM,EAAI,EAAQ,MACZ7W,EAAO,EAAQ,MACf4Q,EAAY,EAAQ,MACpBqvB,EAA6B,EAAQ,MACrCC,EAAU,EAAQ,MAClB9rB,EAAU,EAAQ,KAClB+rB,EAAsC,EAAQ,KAIlDtpB,EAAE,CAAE5K,OAAQ,UAAWkT,MAAM,EAAMrZ,OAAQq6B,GAAuC,CAChFyD,KAAM,SAAc9uB,GAClB,IAAIpP,EAAI/F,KACJygC,EAAaH,EAA2B1nB,EAAE7S,GAC1CwkB,EAASkW,EAAWlW,OACpBld,EAASkzB,GAAQ,WACnB,IAAIG,EAAkBzvB,EAAUlL,EAAE6jB,SAClCnV,EAAQU,GAAU,SAAU0T,GAC1BxoB,EAAKqgC,EAAiB36B,EAAG8iB,GAASC,KAAK2X,EAAW7W,QAASW,SAI/D,OADIld,EAAO/G,OAAOikB,EAAOld,EAAOhL,OACzBo+B,EAAW5X,Y,iCCtBtB,IAAI3R,EAAI,EAAQ,MACZ7W,EAAO,EAAQ,MACfigC,EAA6B,EAAQ,MACrCnR,EAA6B,oBAIjCjY,EAAE,CAAE5K,OAAQ,UAAWkT,MAAM,EAAMrZ,OAAQgpB,GAA8B,CACvE5E,OAAQ,SAAgB2Z,GACtB,IAAIzD,EAAaH,EAA2B1nB,EAAE5Y,MAE9C,OADAK,EAAKogC,EAAWlW,YAAQpoB,EAAW+hC,GAC5BzD,EAAW5X,Y,kCCXtB,IAAI3R,EAAI,EAAQ,MACZ0H,EAAa,EAAQ,MACrBtE,EAAU,EAAQ,MAClBuU,EAA2B,EAAQ,MACnCM,EAA6B,oBAC7B0U,EAAiB,EAAQ,MAEzBM,EAA4BvlB,EAAW,WACvCwlB,EAAgB9pB,IAAY6U,EAIhCjY,EAAE,CAAE5K,OAAQ,UAAWkT,MAAM,EAAMrZ,OAAQmU,GAAW6U,GAA8B,CAClFvF,QAAS,SAAiBrB,GACxB,OAAOsb,EAAeO,GAAiBpkC,OAASmkC,EAA4BtV,EAA2B7uB,KAAMuoB,O,qBCfjH,IAAIrR,EAAI,EAAQ,MACZmtB,EAAgB,EAAQ,MACxBpzB,EAAY,EAAQ,MACpBwB,EAAW,EAAQ,MACnBvP,EAAQ,EAAQ,MAGhBohC,GAA2BphC,GAAM,WAEnC6d,QAAQ3Q,OAAM,kBAKhB8G,EAAE,CAAE5K,OAAQ,UAAWkT,MAAM,EAAMrZ,OAAQm+B,GAA2B,CACpEl0B,MAAO,SAAe9D,EAAQi4B,EAAcC,GAC1C,OAAOH,EAAcpzB,EAAU3E,GAASi4B,EAAc9xB,EAAS+xB,Q,qBChBnE,IAAIttB,EAAI,EAAQ,MACZ0H,EAAa,EAAQ,MACrBxO,EAAQ,EAAQ,MAChB9C,EAAO,EAAQ,MACfglB,EAAe,EAAQ,MACvB7f,EAAW,EAAQ,MACnB1P,EAAW,EAAQ,KACnBlB,EAAS,EAAQ,IACjBqB,EAAQ,EAAQ,MAEhBuhC,EAAkB7lB,EAAW,UAAW,aACxCpa,EAAkBpB,OAAOlB,UACzB8M,EAAO,GAAGA,KAMV01B,EAAiBxhC,GAAM,WACzB,SAAS4V,KACT,QAAS2rB,GAAgB,cAA6B,GAAI3rB,aAAcA,MAGtE6rB,GAAYzhC,GAAM,WACpBuhC,GAAgB,kBAGdj0B,EAASk0B,GAAkBC,EAE/BztB,EAAE,CAAE5K,OAAQ,UAAWkT,MAAM,EAAMrZ,OAAQqK,EAAQkP,KAAMlP,GAAU,CACjE4Q,UAAW,SAAmBwO,EAAQtO,GACpCgR,EAAa1C,GACbnd,EAAS6O,GACT,IAAIsjB,EAAYz5B,UAAUxI,OAAS,EAAIitB,EAAS0C,EAAannB,UAAU,IACvE,GAAIw5B,IAAaD,EAAgB,OAAOD,EAAgB7U,EAAQtO,EAAMsjB,GACtE,GAAIhV,GAAUgV,EAAW,CAEvB,OAAQtjB,EAAK3e,QACX,KAAK,EAAG,OAAO,IAAIitB,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAOtO,EAAK,IAC/B,KAAK,EAAG,OAAO,IAAIsO,EAAOtO,EAAK,GAAIA,EAAK,IACxC,KAAK,EAAG,OAAO,IAAIsO,EAAOtO,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjD,KAAK,EAAG,OAAO,IAAIsO,EAAOtO,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAG5D,IAAIujB,EAAQ,CAAC,MAEb,OADAz0B,EAAMpB,EAAM61B,EAAOvjB,GACZ,IAAKlR,EAAM9C,EAAMsiB,EAAQiV,IAGlC,IAAIppB,EAAQmpB,EAAU1iC,UAClB8V,EAAWnW,EAAOkB,EAAS0Y,GAASA,EAAQjX,GAC5C6I,EAAS+C,EAAMwf,EAAQ5X,EAAUsJ,GACrC,OAAOve,EAASsK,GAAUA,EAAS2K,M,qBCrDvC,IAAId,EAAI,EAAQ,MACZ7W,EAAO,EAAQ,MACf0C,EAAW,EAAQ,KACnB0P,EAAW,EAAQ,MACnBqyB,EAAmB,EAAQ,MAC3BtsB,EAAiC,EAAQ,MACzCzU,EAAiB,EAAQ,MAI7B,SAAS2C,EAAI4F,EAAQwN,GACnB,IACIE,EAAY9X,EADZ6iC,EAAW55B,UAAUxI,OAAS,EAAI2J,EAASnB,UAAU,GAEzD,OAAIsH,EAASnG,KAAYy4B,EAAiBz4B,EAAOwN,IACjDE,EAAaxB,EAA+BI,EAAEtM,EAAQwN,GAClDE,EAAmB8qB,EAAiB9qB,GACpCA,EAAW3X,WACQF,IAAnB6X,EAAWtT,SAAoBvE,EAAY9B,EAAK2Z,EAAWtT,IAAKq+B,GAChEhiC,EAASb,EAAY6B,EAAeuI,IAAiB5F,EAAIxE,EAAW4X,EAAairB,QAArF,GAGF7tB,EAAE,CAAE5K,OAAQ,UAAWkT,MAAM,GAAQ,CACnC9Y,IAAKA,K,qBCtBP,IAAIwQ,EAAI,EAAQ,MACZqB,EAAU,EAAQ,MAItBrB,EAAE,CAAE5K,OAAQ,UAAWkT,MAAM,GAAQ,CACnCjH,QAASA,K,qBCNX,IAAIrB,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MACjB4D,EAAiB,EAAQ,MAE7B4P,EAAE,CAAExT,QAAQ,GAAQ,CAAEqd,QAAS,KAI/BzZ,EAAe5D,EAAOqd,QAAS,WAAW,I,qBCR1C,IAAItd,EAAc,EAAQ,MACtBC,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MACtBwQ,EAAW,EAAQ,MACnBG,EAAoB,EAAQ,MAC5BzT,EAA8B,EAAQ,MACtCsD,EAAsB,UACtBvE,EAAgB,EAAQ,MACxBkkB,EAAW,EAAQ,MACnBzT,EAAW,EAAQ,MACnB2xB,EAAiB,EAAQ,MACzB7U,EAAgB,EAAQ,MACxB8H,EAAgB,EAAQ,MACxBn0B,EAAgB,EAAQ,MACxBZ,EAAQ,EAAQ,MAChBS,EAAS,EAAQ,MACjBskB,EAAuB,gBACvBtT,EAAa,EAAQ,MACrB/S,EAAkB,EAAQ,MAC1BwuB,EAAsB,EAAQ,MAC9BC,EAAkB,EAAQ,MAE1BxJ,EAAQjlB,EAAgB,SACxBqjC,EAAevhC,EAAOmc,OACtBD,EAAkBqlB,EAAa/iC,UAC/BgjC,EAAcxhC,EAAOwhC,YACrBjyB,EAAOtM,EAAYiZ,EAAgB3M,MACnC1Q,EAASoE,EAAY,GAAGpE,QACxByR,EAAUrN,EAAY,GAAGqN,SACzBmxB,EAAgBx+B,EAAY,GAAGkI,SAC/ByE,EAAc3M,EAAY,GAAG+K,OAE7B0zB,EAAS,2CACT1U,EAAM,KACNC,EAAM,KAGN0U,EAAc,IAAIJ,EAAavU,KAASA,EAExCoB,EAAgB3B,EAAc2B,cAC9BjB,EAAgBV,EAAcU,cAE9ByU,EAAc7hC,KACd4hC,GAAevT,GAAiB1B,GAAuBC,GAAmBntB,GAAM,WAGhF,OAFAytB,EAAI9J,IAAS,EAENoe,EAAavU,IAAQA,GAAOuU,EAAatU,IAAQA,GAAiC,QAA1BsU,EAAavU,EAAK,SAGjF6U,EAAe,SAAUtsB,GAM3B,IALA,IAIIkS,EAJAxoB,EAASsW,EAAOtW,OAChBF,EAAQ,EACR4K,EAAS,GACTm4B,GAAW,EAER/iC,GAASE,EAAQF,IACtB0oB,EAAM5oB,EAAO0W,EAAQxW,GACT,OAAR0oB,EAICqa,GAAoB,MAARra,GAGH,MAARA,EACFqa,GAAW,EACM,MAARra,IACTqa,GAAW,GACXn4B,GAAU8d,GANZ9d,GAAU,WAJVA,GAAU8d,EAAM5oB,EAAO0W,IAAUxW,GAYnC,OAAO4K,GAGPo4B,EAAY,SAAUxsB,GAWxB,IAVA,IASIkS,EATAxoB,EAASsW,EAAOtW,OAChBF,EAAQ,EACR4K,EAAS,GACTq4B,EAAQ,GACRvX,EAAQ,GACRqX,GAAW,EACXG,GAAM,EACNC,EAAU,EACVC,EAAY,GAETpjC,GAASE,EAAQF,IAAS,CAE/B,GADA0oB,EAAM5oB,EAAO0W,EAAQxW,GACT,OAAR0oB,EACFA,GAAY5oB,EAAO0W,IAAUxW,QACxB,GAAY,MAAR0oB,EACTqa,GAAW,OACN,IAAKA,EAAU,QAAQ,GAC5B,IAAa,MAARra,EACHqa,GAAW,EACX,MACF,IAAa,MAARra,EACClY,EAAKmyB,EAAQ9xB,EAAY2F,EAAQxW,EAAQ,MAC3CA,GAAS,EACTkjC,GAAM,GAERt4B,GAAU8d,EACVya,IACA,SACF,IAAa,MAARza,GAAewa,EAClB,GAAkB,KAAdE,GAAoBliC,EAAOwqB,EAAO0X,GACpC,MAAM,IAAIX,EAAY,8BAExB/W,EAAM0X,IAAa,EACnBH,EAAMA,EAAM/iC,QAAU,CAACkjC,EAAWD,GAClCD,GAAM,EACNE,EAAY,GACZ,SAEAF,EAAKE,GAAa1a,EACjB9d,GAAU8d,EACf,MAAO,CAAC9d,EAAQq4B,IAKpB,GAAIvuB,EAAS,SAAUmuB,GAAc,CA4DnC,IA3DA,IAAIQ,EAAgB,SAAgBC,EAAS3lB,GAC3C,IAKI4lB,EAAUrU,EAAQN,EAAQ4U,EAAS54B,EAAQsI,EAL3CuwB,EAAetjC,EAAcgd,EAAiB5f,MAC9CmmC,EAAkBrf,EAASif,GAC3BK,OAA8BjkC,IAAVie,EACpBgR,EAAS,GACTiV,EAAaN,EAGjB,IAAKG,GAAgBC,GAAmBC,GAAqBL,EAAQv7B,cAAgBs7B,EACnF,OAAOC,EA0CT,IAvCII,GAAmBvjC,EAAcgd,EAAiBmmB,MACpDA,EAAUA,EAAQrtB,OACd0tB,IAAmBhmB,EAAQ4kB,EAAeqB,KAGhDN,OAAsB5jC,IAAZ4jC,EAAwB,GAAK1yB,EAAS0yB,GAChD3lB,OAAkBje,IAAVie,EAAsB,GAAK/M,EAAS+M,GAC5CimB,EAAaN,EAET3V,GAAuB,WAAYM,IACrCiB,IAAWvR,GAAS+kB,EAAc/kB,EAAO,MAAQ,EAC7CuR,IAAQvR,EAAQpM,EAAQoM,EAAO,KAAM,MAG3C4lB,EAAW5lB,EAEP0R,GAAiB,WAAYpB,IAC/BW,IAAWjR,GAAS+kB,EAAc/kB,EAAO,MAAQ,EAC7CiR,GAAUR,IAAezQ,EAAQpM,EAAQoM,EAAO,KAAM,MAGxDiQ,IACF4V,EAAUR,EAAUM,GACpBA,EAAUE,EAAQ,GAClB7U,EAAS6U,EAAQ,IAGnB54B,EAASiK,EAAkB2tB,EAAac,EAAS3lB,GAAQ8lB,EAAelmC,KAAO4f,EAAiBkmB,IAE5FnU,GAAUN,GAAUD,EAAOzuB,UAC7BgT,EAAQsS,EAAqB5a,GACzBskB,IACFhc,EAAMgc,QAAS,EACfhc,EAAMwb,IAAM2U,EAAcP,EAAaQ,GAAUC,IAE/C3U,IAAQ1b,EAAM0b,QAAS,GACvBD,EAAOzuB,SAAQgT,EAAMyb,OAASA,IAGhC2U,IAAYM,EAAY,IAE1BxiC,EAA4BwJ,EAAQ,SAAyB,KAAfg5B,EAAoB,OAASA,GAC3E,MAAO//B,IAET,OAAO+G,GAGA/C,EAAOnD,EAAoB89B,GAAexiC,EAAQ,EAAG6H,EAAK3H,OAASF,GAC1Ew1B,EAAc6N,EAAeb,EAAc36B,EAAK7H,MAGlDmd,EAAgBpV,YAAcs7B,EAC9BA,EAAc5jC,UAAY0d,EAC1B9b,EAAcJ,EAAQ,SAAUoiC,EAAe,CAAEt7B,aAAa,IAIhEmK,EAAW,W,qBC7LX,IAAIlR,EAAc,EAAQ,MACtB2sB,EAAsB,EAAQ,MAC9BxsB,EAAU,EAAQ,MAClB0iC,EAAwB,EAAQ,MAChC1+B,EAAmB,YAEnBgY,EAAkBC,OAAO3d,UACzBb,EAAaC,UAIbmC,GAAe2sB,GACjBkW,EAAsB1mB,EAAiB,SAAU,CAC/Cxd,cAAc,EACdsE,IAAK,WACH,GAAI1G,OAAS4f,EAAb,CAGA,GAAsB,WAAlBhc,EAAQ5D,MACV,QAAS4H,EAAiB5H,MAAM2xB,OAElC,MAAMtwB,EAAW,+C,kCCpBvB,IAAI6V,EAAI,EAAQ,MACZjE,EAAO,EAAQ,MAInBiE,EAAE,CAAE5K,OAAQ,SAAUmP,OAAO,EAAMtV,OAAQ,IAAI8M,OAASA,GAAQ,CAC9DA,KAAMA,K,qBCPR,IAAIxP,EAAc,EAAQ,MACtB6iC,EAAwB,EAAQ,MAChC1U,EAAc,EAAQ,MACtB1uB,EAAQ,EAAQ,MAEhB0c,EAAkBC,OAAO3d,UAEzBsO,EAAS/M,GAAeP,GAAM,WAEhC,MAA8G,OAAvGE,OAAOyV,yBAAyB+G,EAAiB,SAASlZ,IAAIrG,KAAK,CAAEsxB,QAAQ,EAAMN,QAAQ,OAKhG7gB,GAAQ81B,EAAsB1mB,EAAiB,QAAS,CAC1Dxd,cAAc,EACdsE,IAAKkrB,K,qBChBP,IAAInuB,EAAc,EAAQ,MACtBquB,EAAgB,sBAChBluB,EAAU,EAAQ,MAClB0iC,EAAwB,EAAQ,MAChC1+B,EAAmB,YAEnBgY,EAAkBC,OAAO3d,UACzBb,EAAaC,UAIbmC,GAAequB,GACjBwU,EAAsB1mB,EAAiB,SAAU,CAC/Cxd,cAAc,EACdsE,IAAK,WACH,GAAI1G,OAAS4f,EAAb,CAGA,GAAsB,WAAlBhc,EAAQ5D,MACV,QAAS4H,EAAiB5H,MAAMqxB,OAElC,MAAMhwB,EAAW,+C,kCCnBvB,EAAQ,MACR,IAAI6V,EAAI,EAAQ,MACZ7W,EAAO,EAAQ,MACfsG,EAAc,EAAQ,MACtBxF,EAAa,EAAQ,KACrB4B,EAAW,EAAQ,KAEnBkd,EAAoB,WACtB,IAAIC,GAAa,EACbC,EAAK,OAKT,OAJAA,EAAGlN,KAAO,WAER,OADAiN,GAAa,EACN,IAAIjN,KAAK7C,MAAMpQ,KAAMmL,aAEJ,IAAnBgV,EAAG7L,KAAK,QAAmB4L,EAPZ,GAUpB7e,EAAaC,UACbilC,EAAU5/B,EAAY,IAAI2N,MAI9B4C,EAAE,CAAE5K,OAAQ,SAAUmP,OAAO,EAAMtV,QAAS8Z,GAAqB,CAC/D3L,KAAM,SAAUkM,GACd,IAAIvN,EAAOjT,KAAKiT,KAChB,IAAK9R,EAAW8R,GAAO,OAAOszB,EAAQvmC,KAAMwgB,GAC5C,IAAInT,EAAShN,EAAK4S,EAAMjT,KAAMwgB,GAC9B,GAAe,OAAXnT,IAAoBtK,EAASsK,GAC/B,MAAM,IAAIhM,EAAW,sEAEvB,QAASgM,M,kCC/Bb,IAAI7F,EAAuB,eACvB1D,EAAgB,EAAQ,MACxB2O,EAAW,EAAQ,MACnB+zB,EAAY,EAAQ,MACpBtjC,EAAQ,EAAQ,MAChB8hC,EAAiB,EAAQ,MAEzByB,EAAY,WACZ7mB,EAAkBC,OAAO3d,UACzBwkC,EAAa9mB,EAAgB6mB,GAE7BE,EAAczjC,GAAM,WAAc,MAAuD,QAAhDwjC,EAAWrmC,KAAK,CAAEqY,OAAQ,IAAK0H,MAAO,SAE/EwmB,EAAiBp/B,GAAwBk/B,EAAWt8B,MAAQq8B,GAI5DE,GAAeC,IACjB9iC,EAAc+b,OAAO3d,UAAWukC,GAAW,WACzC,IAAIxW,EAAIxd,EAASzS,MACb+lC,EAAUS,EAAUvW,EAAEvX,QACtB0H,EAAQomB,EAAUxB,EAAe/U,IACrC,MAAO,IAAM8V,EAAU,IAAM3lB,IAC5B,CAAEtV,QAAQ,K,kCCvBf,IAAIgzB,EAAa,EAAQ,MACrBC,EAAmB,EAAQ,MAI/BD,EAAW,OAAO,SAAUzE,GAC1B,OAAO,WAAiB,OAAOA,EAAKr5B,KAAMmL,UAAUxI,OAASwI,UAAU,QAAKhJ,MAC3E47B,I,oBCPH,EAAQ,O,kCCAR,IAAI7mB,EAAI,EAAQ,MACZ2vB,EAAa,EAAQ,MACrBC,EAAyB,EAAQ,MAIrC5vB,EAAE,CAAE5K,OAAQ,SAAUmP,OAAO,EAAMtV,OAAQ2gC,EAAuB,UAAY,CAC5EC,MAAO,WACL,OAAOF,EAAW7mC,KAAM,KAAM,GAAI,Q,kCCRtC,IAAIuC,EAAS,eACT8Q,EAAW,EAAQ,MACnB9L,EAAsB,EAAQ,MAC9BmN,EAAiB,EAAQ,KAEzBsyB,EAAkB,kBAClBn/B,EAAmBN,EAAoBO,IACvCF,EAAmBL,EAAoBuN,UAAUkyB,GAIrDtyB,EAAe/S,OAAQ,UAAU,SAAU4U,GACzC1O,EAAiB7H,KAAM,CACrBoV,KAAM4xB,EACN/tB,OAAQ5F,EAASkD,GACjB9T,MAAO,OAIR,WACD,IAGIwkC,EAHAtxB,EAAQ/N,EAAiB5H,MACzBiZ,EAAStD,EAAMsD,OACfxW,EAAQkT,EAAMlT,MAElB,OAAIA,GAASwW,EAAOtW,OAAe,CAAEN,WAAOF,EAAWkM,MAAM,IAC7D44B,EAAQ1kC,EAAO0W,EAAQxW,GACvBkT,EAAMlT,OAASwkC,EAAMtkC,OACd,CAAEN,MAAO4kC,EAAO54B,MAAM,Q,kCC3B/B,IAAI6I,EAAI,EAAQ,MACZ2vB,EAAa,EAAQ,MACrBC,EAAyB,EAAQ,MAIrC5vB,EAAE,CAAE5K,OAAQ,SAAUmP,OAAO,EAAMtV,OAAQ2gC,EAAuB,SAAW,CAC3EI,KAAM,SAAcC,GAClB,OAAON,EAAW7mC,KAAM,IAAK,OAAQmnC,O,kCCRzC,IAAI9mC,EAAO,EAAQ,MACf+mC,EAAgC,EAAQ,MACxC30B,EAAW,EAAQ,MACnBzL,EAAW,EAAQ,MACnBqM,EAAW,EAAQ,MACnB0F,EAAyB,EAAQ,MACjC4I,EAAY,EAAQ,MACpB0lB,EAAqB,EAAQ,MAC7BtK,EAAa,EAAQ,MAGzBqK,EAA8B,SAAS,SAAUvgB,EAAOygB,EAAaC,GACnE,MAAO,CAGL,SAAehnB,GACb,IAAIhU,EAAIwM,EAAuB/Y,MAC3BwnC,OAAoBrlC,GAAVoe,OAAsBpe,EAAYwf,EAAUpB,EAAQsG,GAClE,OAAO2gB,EAAUnnC,EAAKmnC,EAASjnB,EAAQhU,GAAK,IAAIsT,OAAOU,GAAQsG,GAAOxT,EAAS9G,KAIjF,SAAU0M,GACR,IAAIwuB,EAAKh1B,EAASzS,MACdwC,EAAI6Q,EAAS4F,GACbyuB,EAAMH,EAAgBD,EAAaG,EAAIjlC,GAE3C,GAAIklC,EAAIr5B,KAAM,OAAOq5B,EAAIrlC,MAEzB,IAAKolC,EAAG/jC,OAAQ,OAAOq5B,EAAW0K,EAAIjlC,GAEtC,IAAImlC,EAAcF,EAAG/kC,QACrB+kC,EAAG7W,UAAY,EACf,IAEIvjB,EAFA2d,EAAI,GACJvZ,EAAI,EAER,MAAwC,QAAhCpE,EAAS0vB,EAAW0K,EAAIjlC,IAAc,CAC5C,IAAIolC,EAAWv0B,EAAShG,EAAO,IAC/B2d,EAAEvZ,GAAKm2B,EACU,KAAbA,IAAiBH,EAAG7W,UAAYyW,EAAmB7kC,EAAGwE,EAASygC,EAAG7W,WAAY+W,IAClFl2B,IAEF,OAAa,IAANA,EAAU,KAAOuZ,Q,qBC3C9B,IAAI9T,EAAI,EAAQ,MACZ6nB,EAAS,EAAQ,MAIrB7nB,EAAE,CAAE5K,OAAQ,SAAUmP,OAAO,GAAQ,CACnCsjB,OAAQA,K,kCCLV,IAAI3uB,EAAQ,EAAQ,MAChB/P,EAAO,EAAQ,MACfsG,EAAc,EAAQ,MACtBygC,EAAgC,EAAQ,MACxClkC,EAAQ,EAAQ,MAChBuP,EAAW,EAAQ,MACnBtR,EAAa,EAAQ,KACrB4F,EAAsB,EAAQ,MAC9BC,EAAW,EAAQ,MACnBqM,EAAW,EAAQ,MACnB0F,EAAyB,EAAQ,MACjCsuB,EAAqB,EAAQ,MAC7B1lB,EAAY,EAAQ,MACpBkmB,EAAkB,EAAQ,KAC1B9K,EAAa,EAAQ,MACrBn7B,EAAkB,EAAQ,MAE1BkW,EAAUlW,EAAgB,WAC1B0P,EAAMlF,KAAKkF,IACXnF,EAAMC,KAAKD,IACXlL,EAAS0F,EAAY,GAAG1F,QACxB+N,EAAOrI,EAAY,GAAGqI,MACtBm2B,EAAgBx+B,EAAY,GAAGkI,SAC/ByE,EAAc3M,EAAY,GAAG+K,OAE7Bo2B,EAAgB,SAAUjlC,GAC5B,YAAcV,IAAPU,EAAmBA,EAAKlB,OAAOkB,IAKpCklC,EAAmB,WAErB,MAAkC,OAA3B,IAAI/zB,QAAQ,IAAK,MAFH,GAMnBg0B,EAA+C,WACjD,QAAI,IAAIlwB,IAC6B,KAA5B,IAAIA,GAAS,IAAK,MAFsB,GAO/CmwB,GAAiC/kC,GAAM,WACzC,IAAIid,EAAK,IAOT,OANAA,EAAGlN,KAAO,WACR,IAAI5F,EAAS,GAEb,OADAA,EAAO+jB,OAAS,CAAEtO,EAAG,KACdzV,GAGyB,MAA3B,GAAG2G,QAAQmM,EAAI,WAIxBinB,EAA8B,WAAW,SAAUc,EAAG5X,EAAeiX,GACnE,IAAIY,EAAoBH,EAA+C,IAAM,KAE7E,MAAO,CAGL,SAAiBI,EAAaC,GAC5B,IAAI97B,EAAIwM,EAAuB/Y,MAC3Bw9B,OAA0Br7B,GAAfimC,OAA2BjmC,EAAYwf,EAAUymB,EAAatwB,GAC7E,OAAO0lB,EACHn9B,EAAKm9B,EAAU4K,EAAa77B,EAAG87B,GAC/BhoC,EAAKiwB,EAAejd,EAAS9G,GAAI67B,EAAaC,IAIpD,SAAUpvB,EAAQovB,GAChB,IAAIZ,EAAKh1B,EAASzS,MACdwC,EAAI6Q,EAAS4F,GAEjB,GACyB,iBAAhBovB,IAC6C,IAApDlD,EAAckD,EAAcF,KACW,IAAvChD,EAAckD,EAAc,MAC5B,CACA,IAAIX,EAAMH,EAAgBjX,EAAemX,EAAIjlC,EAAG6lC,GAChD,GAAIX,EAAIr5B,KAAM,OAAOq5B,EAAIrlC,MAG3B,IAAIimC,EAAoBnnC,EAAWknC,GAC9BC,IAAmBD,EAAeh1B,EAASg1B,IAEhD,IAAI3kC,EAAS+jC,EAAG/jC,OAChB,GAAIA,EAAQ,CACV,IAAIikC,EAAcF,EAAG/kC,QACrB+kC,EAAG7W,UAAY,EAEjB,IAAI2X,EAAU,GACd,MAAO,EAAM,CACX,IAAIl7B,EAAS0vB,EAAW0K,EAAIjlC,GAC5B,GAAe,OAAX6K,EAAiB,MAGrB,GADA2B,EAAKu5B,EAASl7B,IACT3J,EAAQ,MAEb,IAAIkkC,EAAWv0B,EAAShG,EAAO,IACd,KAAbu6B,IAAiBH,EAAG7W,UAAYyW,EAAmB7kC,EAAGwE,EAASygC,EAAG7W,WAAY+W,IAKpF,IAFA,IAAIa,EAAoB,GACpBC,EAAqB,EAChBv+B,EAAI,EAAGA,EAAIq+B,EAAQ5lC,OAAQuH,IAAK,CACvCmD,EAASk7B,EAAQr+B,GAUjB,IARA,IAAI+X,EAAU5O,EAAShG,EAAO,IAC1B6U,EAAW5Q,EAAInF,EAAIpF,EAAoBsG,EAAO5K,OAAQD,EAAEG,QAAS,GACjEwf,EAAW,GAMN5X,EAAI,EAAGA,EAAI8C,EAAO1K,OAAQ4H,IAAKyE,EAAKmT,EAAU2lB,EAAcz6B,EAAO9C,KAC5E,IAAI6X,EAAgB/U,EAAO+jB,OAC3B,GAAIkX,EAAmB,CACrB,IAAII,EAAeznC,EAAO,CAACghB,GAAUE,EAAUD,EAAU1f,QACnCL,IAAlBigB,GAA6BpT,EAAK05B,EAActmB,GACpD,IAAIC,EAAchP,EAASjD,EAAMi4B,OAAclmC,EAAWumC,SAE1DrmB,EAAcwlB,EAAgB5lB,EAASzf,EAAG0f,EAAUC,EAAUC,EAAeimB,GAE3EnmB,GAAYumB,IACdD,GAAqBl1B,EAAY9Q,EAAGimC,EAAoBvmB,GAAYG,EACpEomB,EAAqBvmB,EAAWD,EAAQtf,QAG5C,OAAO6lC,EAAoBl1B,EAAY9Q,EAAGimC,QAG5CR,IAAkCF,GAAoBC,I,kCCtI1D,IAAI3nC,EAAO,EAAQ,MACf+mC,EAAgC,EAAQ,MACxC30B,EAAW,EAAQ,MACnBsG,EAAyB,EAAQ,MACjC4vB,EAAY,EAAQ,MACpBt1B,EAAW,EAAQ,MACnBsO,EAAY,EAAQ,MACpBob,EAAa,EAAQ,MAGzBqK,EAA8B,UAAU,SAAUwB,EAAQC,EAActB,GACtE,MAAO,CAGL,SAAgBhnB,GACd,IAAIhU,EAAIwM,EAAuB/Y,MAC3B8oC,OAAqB3mC,GAAVoe,OAAsBpe,EAAYwf,EAAUpB,EAAQqoB,GACnE,OAAOE,EAAWzoC,EAAKyoC,EAAUvoB,EAAQhU,GAAK,IAAIsT,OAAOU,GAAQqoB,GAAQv1B,EAAS9G,KAIpF,SAAU0M,GACR,IAAIwuB,EAAKh1B,EAASzS,MACdwC,EAAI6Q,EAAS4F,GACbyuB,EAAMH,EAAgBsB,EAAcpB,EAAIjlC,GAE5C,GAAIklC,EAAIr5B,KAAM,OAAOq5B,EAAIrlC,MAEzB,IAAI0mC,EAAoBtB,EAAG7W,UACtB+X,EAAUI,EAAmB,KAAItB,EAAG7W,UAAY,GACrD,IAAIvjB,EAAS0vB,EAAW0K,EAAIjlC,GAE5B,OADKmmC,EAAUlB,EAAG7W,UAAWmY,KAAoBtB,EAAG7W,UAAYmY,GAC9C,OAAX17B,GAAmB,EAAIA,EAAO5K,Y,kCChC3C,IAAIyU,EAAI,EAAQ,MACZ2vB,EAAa,EAAQ,MACrBC,EAAyB,EAAQ,MAIrC5vB,EAAE,CAAE5K,OAAQ,SAAUmP,OAAO,EAAMtV,OAAQ2gC,EAAuB,UAAY,CAC5EkC,MAAO,WACL,OAAOnC,EAAW7mC,KAAM,QAAS,GAAI,Q,kCCRzC,IAAIoQ,EAAQ,EAAQ,MAChB/P,EAAO,EAAQ,MACfsG,EAAc,EAAQ,MACtBygC,EAAgC,EAAQ,MACxCtgB,EAAW,EAAQ,MACnBrU,EAAW,EAAQ,MACnBsG,EAAyB,EAAQ,MACjCwe,EAAqB,EAAQ,MAC7B8P,EAAqB,EAAQ,MAC7BrgC,EAAW,EAAQ,MACnBqM,EAAW,EAAQ,MACnBsO,EAAY,EAAQ,MACpBta,EAAa,EAAQ,MACrB4hC,EAAiB,EAAQ,MACzBtpB,EAAa,EAAQ,MACrBwQ,EAAgB,EAAQ,MACxBjtB,EAAQ,EAAQ,MAEhB2tB,EAAgBV,EAAcU,cAC9BqY,EAAa,WACb/8B,EAAMC,KAAKD,IACXg9B,EAAQ,GAAGn6B,KACXiE,EAAOtM,EAAY,IAAIsM,MACvBjE,EAAOrI,EAAYwiC,GACnB71B,EAAc3M,EAAY,GAAG+K,OAI7B03B,GAAqClmC,GAAM,WAE7C,IAAIid,EAAK,OACLkpB,EAAelpB,EAAGlN,KACtBkN,EAAGlN,KAAO,WAAc,OAAOo2B,EAAaj5B,MAAMpQ,KAAMmL,YACxD,IAAIkC,EAAS,KAAK2R,MAAMmB,GACxB,OAAyB,IAAlB9S,EAAO1K,QAA8B,MAAd0K,EAAO,IAA4B,MAAdA,EAAO,MAI5D+5B,EAA8B,SAAS,SAAUkC,EAAOC,EAAahC,GACnE,IAAIiC,EAqDJ,OAzCEA,EAV2B,KAA3B,OAAOxqB,MAAM,QAAQ,IAEc,GAAnC,OAAOA,MAAM,QAAS,GAAGrc,QACO,GAAhC,KAAKqc,MAAM,WAAWrc,QACU,GAAhC,IAAIqc,MAAM,YAAYrc,QAEtB,IAAIqc,MAAM,QAAQrc,OAAS,GAC3B,GAAGqc,MAAM,MAAMrc,OAGC,SAAUs4B,EAAWwO,GACnC,IAAIxwB,EAAS5F,EAAS0F,EAAuB/Y,OACzC0pC,OAAgBvnC,IAAVsnC,EAAsBP,EAAaO,IAAU,EACvD,GAAY,IAARC,EAAW,MAAO,GACtB,QAAkBvnC,IAAd84B,EAAyB,MAAO,CAAChiB,GAErC,IAAK6N,EAASmU,GACZ,OAAO56B,EAAKkpC,EAAatwB,EAAQgiB,EAAWyO,GAE9C,IAQIprB,EAAOsS,EAAW+Y,EARlBC,EAAS,GACTxpB,GAAS6a,EAAUvJ,WAAa,IAAM,KAC7BuJ,EAAUzJ,UAAY,IAAM,KAC5ByJ,EAAUv4B,QAAU,IAAM,KAC1Bu4B,EAAU5J,OAAS,IAAM,IAClCwY,EAAgB,EAEhBC,EAAgB,IAAIjqB,OAAOob,EAAUviB,OAAQ0H,EAAQ,KAEzD,MAAO9B,EAAQje,EAAKsf,EAAYmqB,EAAe7wB,GAAS,CAEtD,GADA2X,EAAYkZ,EAAclZ,UACtBA,EAAYiZ,IACd76B,EAAK46B,EAAQt2B,EAAY2F,EAAQ4wB,EAAevrB,EAAM7b,QAClD6b,EAAM3b,OAAS,GAAK2b,EAAM7b,MAAQwW,EAAOtW,QAAQyN,EAAM+4B,EAAOS,EAAQviC,EAAWiX,EAAO,IAC5FqrB,EAAarrB,EAAM,GAAG3b,OACtBknC,EAAgBjZ,EACZgZ,EAAOjnC,QAAU+mC,GAAK,MAExBI,EAAclZ,YAActS,EAAM7b,OAAOqnC,EAAclZ,YAK7D,OAHIiZ,IAAkB5wB,EAAOtW,QACvBgnC,GAAe12B,EAAK62B,EAAe,KAAK96B,EAAK46B,EAAQ,IACpD56B,EAAK46B,EAAQt2B,EAAY2F,EAAQ4wB,IACjCD,EAAOjnC,OAAS+mC,EAAMriC,EAAWuiC,EAAQ,EAAGF,GAAOE,GAGnD,IAAI5qB,WAAM7c,EAAW,GAAGQ,OACjB,SAAUs4B,EAAWwO,GACnC,YAAqBtnC,IAAd84B,GAAqC,IAAVwO,EAAc,GAAKppC,EAAKkpC,EAAavpC,KAAMi7B,EAAWwO,IAErEF,EAEhB,CAGL,SAAetO,EAAWwO,GACxB,IAAIl9B,EAAIwM,EAAuB/Y,MAC3B+pC,OAAwB5nC,GAAb84B,OAAyB94B,EAAYwf,EAAUsZ,EAAWqO,GACzE,OAAOS,EACH1pC,EAAK0pC,EAAU9O,EAAW1uB,EAAGk9B,GAC7BppC,EAAKmpC,EAAen2B,EAAS9G,GAAI0uB,EAAWwO,IAOlD,SAAUxwB,EAAQwwB,GAChB,IAAIhC,EAAKh1B,EAASzS,MACdwC,EAAI6Q,EAAS4F,GACbyuB,EAAMH,EAAgBiC,EAAe/B,EAAIjlC,EAAGinC,EAAOD,IAAkBD,GAEzE,GAAI7B,EAAIr5B,KAAM,OAAOq5B,EAAIrlC,MAEzB,IAAI0D,EAAIwxB,EAAmBkQ,EAAI5nB,QAE3BmqB,EAAkBvC,EAAG/kC,QACrB0d,GAASqnB,EAAG/V,WAAa,IAAM,KACtB+V,EAAGjW,UAAY,IAAM,KACrBiW,EAAG/kC,QAAU,IAAM,KACnBmuB,EAAgB,IAAM,KAI/BkZ,EAAW,IAAIhkC,EAAE8qB,EAAgB,OAAS4W,EAAG/uB,OAAS,IAAM+uB,EAAIrnB,GAChEspB,OAAgBvnC,IAAVsnC,EAAsBP,EAAaO,IAAU,EACvD,GAAY,IAARC,EAAW,MAAO,GACtB,GAAiB,IAAblnC,EAAEG,OAAc,OAAuC,OAAhCsmC,EAAec,EAAUvnC,GAAc,CAACA,GAAK,GACxE,IAAIynC,EAAI,EACJC,EAAI,EACJlf,EAAI,GACR,MAAOkf,EAAI1nC,EAAEG,OAAQ,CACnBonC,EAASnZ,UAAYC,EAAgB,EAAIqZ,EACzC,IACIvK,EADAC,EAAIqJ,EAAec,EAAUlZ,EAAgBvd,EAAY9Q,EAAG0nC,GAAK1nC,GAErE,GACQ,OAANo9B,IACCD,EAAIxzB,EAAInF,EAAS+iC,EAASnZ,WAAaC,EAAgBqZ,EAAI,IAAK1nC,EAAEG,WAAasnC,EAEhFC,EAAI7C,EAAmB7kC,EAAG0nC,EAAGF,OACxB,CAEL,GADAh7B,EAAKgc,EAAG1X,EAAY9Q,EAAGynC,EAAGC,IACtBlf,EAAEroB,SAAW+mC,EAAK,OAAO1e,EAC7B,IAAK,IAAI9gB,EAAI,EAAGA,GAAK01B,EAAEj9B,OAAS,EAAGuH,IAEjC,GADA8E,EAAKgc,EAAG4U,EAAE11B,IACN8gB,EAAEroB,SAAW+mC,EAAK,OAAO1e,EAE/Bkf,EAAID,EAAItK,GAIZ,OADA3wB,EAAKgc,EAAG1X,EAAY9Q,EAAGynC,IAChBjf,OAGToe,EAAmCvY,I,kCC1JvC,IAAI3Z,EAAI,EAAQ,MACZizB,EAAQ,aACRC,EAAyB,EAAQ,MAIrClzB,EAAE,CAAE5K,OAAQ,SAAUmP,OAAO,EAAMtV,OAAQikC,EAAuB,SAAW,CAC3EjX,KAAM,WACJ,OAAOgX,EAAMnqC,U,kCCRjB,IAAIkX,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MACjBrD,EAAO,EAAQ,MACfsG,EAAc,EAAQ,MACtB2T,EAAU,EAAQ,MAClB7W,EAAc,EAAQ,MACtBymB,EAAgB,EAAQ,KACxBhnB,EAAQ,EAAQ,MAChBS,EAAS,EAAQ,MACjBf,EAAgB,EAAQ,MACxB6P,EAAW,EAAQ,MACnBnE,EAAkB,EAAQ,MAC1BuL,EAAgB,EAAQ,MACxB2sB,EAAY,EAAQ,MACpBntB,EAA2B,EAAQ,MACnCgxB,EAAqB,EAAQ,IAC7B1f,EAAa,EAAQ,MACrBnG,EAA4B,EAAQ,MACpC8lB,EAA8B,EAAQ,MACtC1f,EAA8B,EAAQ,MACtCpS,EAAiC,EAAQ,MACzCC,EAAuB,EAAQ,MAC/B6S,EAAyB,EAAQ,MACjCT,EAA6B,EAAQ,MACrC/mB,EAAgB,EAAQ,MACxBqhB,EAAS,EAAQ,MACjBC,EAAY,EAAQ,MACpBb,EAAa,EAAQ,MACrBtgB,EAAM,EAAQ,MACdrC,EAAkB,EAAQ,MAC1B+Z,EAA+B,EAAQ,MACvC4uB,EAAwB,EAAQ,MAChCC,EAA0B,EAAQ,MAClCljC,EAAiB,EAAQ,MACzBC,EAAsB,EAAQ,MAC9BwF,EAAW,gBAEX09B,EAASrlB,EAAU,UACnBrF,EAAS,SACT9X,EAAY,YAEZJ,EAAmBN,EAAoBO,IACvCF,EAAmBL,EAAoBuN,UAAUiL,GAEjDvb,EAAkBpB,OAAO6E,GACzB+e,EAAUtjB,EAAOkY,OACjBwX,EAAkBpM,GAAWA,EAAQ/e,GACrC3G,EAAYoC,EAAOpC,UACnBopC,EAAUhnC,EAAOgnC,QACjBtU,EAAiC5d,EAA+BI,EAChEud,EAAuB1d,EAAqBG,EAC5C+xB,EAA4BL,EAA4B1xB,EACxDgyB,EAA6B/f,EAA2BjS,EACxD5J,EAAOrI,EAAY,GAAGqI,MAEtB67B,GAAa1lB,EAAO,WACpB2lB,GAAyB3lB,EAAO,cAChCyS,GAAwBzS,EAAO,OAG/B4lB,IAAcL,IAAYA,EAAQziC,KAAeyiC,EAAQziC,GAAW+iC,UAGpEC,GAAsBxnC,GAAeP,GAAM,WAC7C,OAES,GAFFmnC,EAAmBlU,EAAqB,GAAI,IAAK,CACtDzvB,IAAK,WAAc,OAAOyvB,EAAqBn2B,KAAM,IAAK,CAAEqC,MAAO,IAAKygB,MACtEA,KACD,SAAUvW,EAAGsP,EAAG4R,GACnB,IAAIyd,EAA4B9U,EAA+B5xB,EAAiBqX,GAC5EqvB,UAAkC1mC,EAAgBqX,GACtDsa,EAAqB5pB,EAAGsP,EAAG4R,GACvByd,GAA6B3+B,IAAM/H,GACrC2xB,EAAqB3xB,EAAiBqX,EAAGqvB,IAEzC/U,EAEAyN,GAAO,SAAUhwB,EAAKokB,GACxB,IAAI3N,EAASwgB,GAAWj3B,GAAOy2B,EAAmBjX,GAOlD,OANAvrB,EAAiBwiB,EAAQ,CACvBjV,KAAM2K,EACNnM,IAAKA,EACLokB,YAAaA,IAEVv0B,IAAa4mB,EAAO2N,YAAcA,GAChC3N,GAGLgD,GAAkB,SAAwB9gB,EAAGsP,EAAG4R,GAC9ClhB,IAAM/H,GAAiB6oB,GAAgByd,GAAwBjvB,EAAG4R,GACtEhb,EAASlG,GACT,IAAIjK,EAAMuX,EAAcgC,GAExB,OADApJ,EAASgb,GACL9pB,EAAOknC,GAAYvoC,IAChBmrB,EAAW9T,YAIVhW,EAAO4I,EAAGk+B,IAAWl+B,EAAEk+B,GAAQnoC,KAAMiK,EAAEk+B,GAAQnoC,IAAO,GAC1DmrB,EAAa4c,EAAmB5c,EAAY,CAAE9T,WAAYN,EAAyB,GAAG,OAJjF1V,EAAO4I,EAAGk+B,IAAStU,EAAqB5pB,EAAGk+B,EAAQpxB,EAAyB,EAAG,KACpF9M,EAAEk+B,GAAQnoC,IAAO,GAIV2oC,GAAoB1+B,EAAGjK,EAAKmrB,IAC9B0I,EAAqB5pB,EAAGjK,EAAKmrB,IAGpC0d,GAAoB,SAA0B5+B,EAAGygB,GACnDva,EAASlG,GACT,IAAI6+B,EAAa98B,EAAgB0e,GAC7B1iB,EAAOqgB,EAAWygB,GAAYnqC,OAAOg/B,GAAuBmL,IAIhE,OAHAr+B,EAASzC,GAAM,SAAUhI,GAClBmB,IAAepD,EAAK+tB,GAAuBgd,EAAY9oC,IAAM+qB,GAAgB9gB,EAAGjK,EAAK8oC,EAAW9oC,OAEhGiK,GAGL8+B,GAAU,SAAgB9+B,EAAGygB,GAC/B,YAAsB7qB,IAAf6qB,EAA2Bqd,EAAmB99B,GAAK4+B,GAAkBd,EAAmB99B,GAAIygB,IAGjGoB,GAAwB,SAA8BvM,GACxD,IAAIhG,EAAIhC,EAAcgI,GAClBlI,EAAatZ,EAAKuqC,EAA4B5qC,KAAM6b,GACxD,QAAI7b,OAASwE,GAAmBb,EAAOknC,GAAYhvB,KAAOlY,EAAOmnC,GAAwBjvB,QAClFlC,IAAehW,EAAO3D,KAAM6b,KAAOlY,EAAOknC,GAAYhvB,IAAMlY,EAAO3D,KAAMyqC,IAAWzqC,KAAKyqC,GAAQ5uB,KACpGlC,IAGF2T,GAA4B,SAAkC/gB,EAAGsP,GACnE,IAAIhZ,EAAKyL,EAAgB/B,GACrBjK,EAAMuX,EAAcgC,GACxB,GAAIhZ,IAAO2B,IAAmBb,EAAOknC,GAAYvoC,IAASqB,EAAOmnC,GAAwBxoC,GAAzF,CACA,IAAI0X,EAAaoc,EAA+BvzB,EAAIP,GAIpD,OAHI0X,IAAcrW,EAAOknC,GAAYvoC,IAAUqB,EAAOd,EAAI4nC,IAAW5nC,EAAG4nC,GAAQnoC,KAC9E0X,EAAWL,YAAa,GAEnBK,IAGL2T,GAAuB,SAA6BphB,GACtD,IAAI4hB,EAAQwc,EAA0Br8B,EAAgB/B,IAClDc,EAAS,GAIb,OAHAN,EAASohB,GAAO,SAAU7rB,GACnBqB,EAAOknC,GAAYvoC,IAASqB,EAAO4gB,EAAYjiB,IAAM0M,EAAK3B,EAAQ/K,MAElE+K,GAGL4yB,GAAyB,SAAU1zB,GACrC,IAAI++B,EAAsB/+B,IAAM/H,EAC5B2pB,EAAQwc,EAA0BW,EAAsBR,GAAyBx8B,EAAgB/B,IACjGc,EAAS,GAMb,OALAN,EAASohB,GAAO,SAAU7rB,IACpBqB,EAAOknC,GAAYvoC,IAAUgpC,IAAuB3nC,EAAOa,EAAiBlC,IAC9E0M,EAAK3B,EAAQw9B,GAAWvoC,OAGrB+K,GAKJ6c,IACHlD,EAAU,WACR,GAAIpkB,EAAcwwB,EAAiBpzB,MAAO,MAAMsB,EAAU,+BAC1D,IAAI02B,EAAe7sB,UAAUxI,aAA2BR,IAAjBgJ,UAAU,GAA+Bq7B,EAAUr7B,UAAU,SAAhChJ,EAChEyR,EAAM3P,EAAI+zB,GACV9d,EAAS,SAAU7X,GACjBrC,OAASwE,GAAiBnE,EAAK6Z,EAAQ4wB,GAAwBzoC,GAC/DsB,EAAO3D,KAAMyqC,IAAW9mC,EAAO3D,KAAKyqC,GAAS72B,KAAM5T,KAAKyqC,GAAQ72B,IAAO,GAC3Eq3B,GAAoBjrC,KAAM4T,EAAKyF,EAAyB,EAAGhX,KAG7D,OADIoB,GAAesnC,IAAYE,GAAoBzmC,EAAiBoP,EAAK,CAAExR,cAAc,EAAM0F,IAAKoS,IAC7F0pB,GAAKhwB,EAAKokB,IAGnB5E,EAAkBpM,EAAQ/e,GAE1BnE,EAAcsvB,EAAiB,YAAY,WACzC,OAAOxrB,EAAiB5H,MAAM4T,OAGhC9P,EAAckjB,EAAS,iBAAiB,SAAUgR,GAChD,OAAO4L,GAAK3/B,EAAI+zB,GAAcA,MAGhCnN,EAA2BjS,EAAIwV,GAC/B3V,EAAqBG,EAAIyU,GACzB/B,EAAuB1S,EAAIuyB,GAC3B3yB,EAA+BI,EAAI0U,GACnC9I,EAA0B5L,EAAI0xB,EAA4B1xB,EAAI+U,GAC9D/C,EAA4BhS,EAAIqnB,GAEhCtkB,EAA6B/C,EAAI,SAAUxO,GACzC,OAAOw5B,GAAKhiC,EAAgBwI,GAAOA,IAGjC3G,IAEF0yB,EAAqB/C,EAAiB,cAAe,CACnDhxB,cAAc,EACdsE,IAAK,WACH,OAAOkB,EAAiB5H,MAAMg4B,eAG7B1d,GACHxW,EAAcU,EAAiB,uBAAwB4pB,GAAuB,CAAEtjB,QAAQ,MAK9FoM,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAMo5B,MAAM,EAAMz9B,QAAS+jB,EAAexK,MAAOwK,GAAiB,CAC/FtO,OAAQoL,IAGVja,EAAS4d,EAAWiN,KAAwB,SAAUxtB,GACpDmgC,EAAsBngC,MAGxB8M,EAAE,CAAE5K,OAAQyT,EAAQP,MAAM,EAAMrZ,QAAS+jB,GAAiB,CACxDqhB,UAAW,WAAcR,IAAa,GACtCS,UAAW,WAAcT,IAAa,KAGxC7zB,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,QAAS+jB,EAAexK,MAAOjc,GAAe,CAG9E5B,OAAQwpC,GAGRvpC,eAAgBurB,GAGhBH,iBAAkBie,GAGlBtyB,yBAA0ByU,KAG5BpW,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,QAAS+jB,GAAiB,CAG1D/iB,oBAAqBwmB,KAKvB6c,IAIAljC,EAAe0f,EAASjH,GAExBwE,EAAWkmB,IAAU,G,kCCxPrB,IAAIvzB,EAAI,EAAQ,MACZzT,EAAc,EAAQ,MACtBC,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MACtBhD,EAAS,EAAQ,MACjBxC,EAAa,EAAQ,KACrByB,EAAgB,EAAQ,MACxByQ,EAAW,EAAQ,MACnBvR,EAAiB,UACjBod,EAA4B,EAAQ,MAEpCusB,EAAe/nC,EAAOkY,OACtBwX,EAAkBqY,GAAgBA,EAAavpC,UAEnD,GAAIuB,GAAetC,EAAWsqC,OAAoB,gBAAiBrY,SAElCjxB,IAA/BspC,IAAezT,aACd,CACD,IAAI0T,EAA8B,GAE9BC,EAAgB,WAClB,IAAI3T,EAAc7sB,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,QAAmBhJ,EAAYkR,EAASlI,UAAU,IAClGkC,EAASzK,EAAcwwB,EAAiBpzB,MACxC,IAAIyrC,EAAazT,QAED71B,IAAhB61B,EAA4ByT,IAAiBA,EAAazT,GAE9D,MADoB,KAAhBA,IAAoB0T,EAA4Br+B,IAAU,GACvDA,GAGT6R,EAA0BysB,EAAeF,GACzCE,EAAczpC,UAAYkxB,EAC1BA,EAAgB5oB,YAAcmhC,EAE9B,IAAIzhB,EAAgD,gBAAhCvoB,OAAO8pC,EAAa,SACpCG,EAAiBjlC,EAAYysB,EAAgB/f,UAC7Cw4B,EAAgBllC,EAAYysB,EAAgBxE,SAC5CrO,EAAS,wBACTvM,EAAUrN,EAAY,GAAGqN,SACzBV,EAAc3M,EAAY,GAAG+K,OAEjC5P,EAAesxB,EAAiB,cAAe,CAC7ChxB,cAAc,EACdsE,IAAK,WACH,IAAI2jB,EAASwhB,EAAc7rC,MACvBiZ,EAAS2yB,EAAevhB,GAC5B,GAAI1mB,EAAO+nC,EAA6BrhB,GAAS,MAAO,GACxD,IAAIyhB,EAAO5hB,EAAgB5W,EAAY2F,EAAQ,GAAI,GAAKjF,EAAQiF,EAAQsH,EAAQ,MAChF,MAAgB,KAATurB,OAAc3pC,EAAY2pC,KAIrC50B,EAAE,CAAExT,QAAQ,EAAM8G,aAAa,EAAMrE,QAAQ,GAAQ,CACnDyV,OAAQ+vB,M,oBCxDZ,IAAIz0B,EAAI,EAAQ,MACZ0H,EAAa,EAAQ,MACrBjb,EAAS,EAAQ,MACjB0P,EAAW,EAAQ,MACnB8R,EAAS,EAAQ,MACjB4mB,EAAyB,EAAQ,KAEjCC,EAAyB7mB,EAAO,6BAChC8mB,EAAyB9mB,EAAO,6BAIpCjO,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,QAAS4lC,GAA0B,CACnE,IAAO,SAAUzpC,GACf,IAAI2W,EAAS5F,EAAS/Q,GACtB,GAAIqB,EAAOqoC,EAAwB/yB,GAAS,OAAO+yB,EAAuB/yB,GAC1E,IAAIoR,EAASzL,EAAW,SAAXA,CAAqB3F,GAGlC,OAFA+yB,EAAuB/yB,GAAUoR,EACjC4hB,EAAuB5hB,GAAUpR,EAC1BoR,M,qBCnBX,IAAIkgB,EAAwB,EAAQ,MAIpCA,EAAsB,a,qBCHtB,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,O,qBCLR,IAAIrzB,EAAI,EAAQ,MACZvT,EAAS,EAAQ,MACjB+xB,EAAW,EAAQ,MACnBt0B,EAAc,EAAQ,MACtB+jB,EAAS,EAAQ,MACjB4mB,EAAyB,EAAQ,KAEjCE,EAAyB9mB,EAAO,6BAIpCjO,EAAE,CAAE5K,OAAQ,SAAUkT,MAAM,EAAMrZ,QAAS4lC,GAA0B,CACnE5hB,OAAQ,SAAgB+hB,GACtB,IAAKxW,EAASwW,GAAM,MAAM5qC,UAAUF,EAAY8qC,GAAO,oBACvD,GAAIvoC,EAAOsoC,EAAwBC,GAAM,OAAOD,EAAuBC,O,qBCd3E,IAAIttB,EAAa,EAAQ,MACrB2rB,EAAwB,EAAQ,MAChCjjC,EAAiB,EAAQ,MAI7BijC,EAAsB,eAItBjjC,EAAesX,EAAW,UAAW,W,kCCTrC,IAAIkX,EAAsB,EAAQ,KAC9B7pB,EAAoB,EAAQ,MAC5BlF,EAAsB,EAAQ,MAE9BlB,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,MAAM,SAAYvD,GACvC,IAAI8J,EAAI1G,EAAY7F,MAChBwM,EAAMP,EAAkBM,GACxB4/B,EAAgBplC,EAAoBtE,GACpC8O,EAAI46B,GAAiB,EAAIA,EAAgB3/B,EAAM2/B,EACnD,OAAQ56B,EAAI,GAAKA,GAAK/E,OAAOrK,EAAYoK,EAAEgF,O,kCCd7C,IAAI5K,EAAc,EAAQ,MACtBmvB,EAAsB,EAAQ,KAC9BsW,EAAmB,EAAQ,MAE3BC,EAAoB1lC,EAAYylC,GAChCvmC,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,cAAc,SAAoBsG,EAAQvC,GAC/D,OAAOsiC,EAAkBxmC,EAAY7F,MAAOsM,EAAQvC,EAAOoB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,kCCXnG,IAAI2zB,EAAsB,EAAQ,KAC9BwW,EAAS,cAETzmC,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,SAAS,SAAemH,GAC7C,OAAOm/B,EAAOzmC,EAAY7F,MAAOmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,kCCTrF,IAAI2zB,EAAsB,EAAQ,KAC9ByW,EAAQ,EAAQ,MAChBC,EAAW,EAAQ,MACnB5oC,EAAU,EAAQ,KAClBvD,EAAO,EAAQ,MACfsG,EAAc,EAAQ,MACtBzD,EAAQ,EAAQ,MAEhB2C,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAC7C0L,EAAQ/K,EAAY,GAAG+K,OAGvB+6B,EAAiBvpC,GAAM,WACzB,IAAIuG,EAAQ,EAGZ,OADA,IAAIvF,UAAU,GAAGwE,KAAK,CAAEkmB,QAAS,WAAc,OAAOnlB,OACrC,IAAVA,KAKTzD,EAAuB,QAAQ,SAAc3D,GAC3C,IAAIM,EAASwI,UAAUxI,OACvBkD,EAAY7F,MACZ,IAAI0sC,EAA6C,QAA/Bh7B,EAAM9N,EAAQ5D,MAAO,EAAG,GAAewsC,EAASnqC,IAAUA,EAC5E,OAAOhC,EAAKksC,EAAOvsC,KAAM0sC,EAAa/pC,EAAS,EAAIwI,UAAU,QAAKhJ,EAAWQ,EAAS,EAAIwI,UAAU,QAAKhJ,KACxGsqC,I,kCC3BH,IAAI3W,EAAsB,EAAQ,KAC9BqE,EAAU,eACVwS,EAAqB,EAAQ,MAE7B9mC,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,UAAU,SAAgBmH,GAC/C,IAAIC,EAAO+sB,EAAQt0B,EAAY7F,MAAOmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,GACxF,OAAOwqC,EAAmB3sC,KAAMoN,O,kCCXlC,IAAI0oB,EAAsB,EAAQ,KAC9BuE,EAAa,kBAEbx0B,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,aAAa,SAAmB4mC,GACrD,OAAOvS,EAAWx0B,EAAY7F,MAAO4sC,EAAWzhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,kCCTxF,IAAI2zB,EAAsB,EAAQ,KAC9B0E,EAAQ,aAER30B,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,QAAQ,SAAc4mC,GAC3C,OAAOpS,EAAM30B,EAAY7F,MAAO4sC,EAAWzhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,qBCVnF,IAAI0qC,EAA8B,EAAQ,MAI1CA,EAA4B,WAAW,SAAUxT,GAC/C,OAAO,SAAsBrjB,EAAMhM,EAAYrH,GAC7C,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,Q,qBCNxC,IAAIkqC,EAA8B,EAAQ,MAI1CA,EAA4B,WAAW,SAAUxT,GAC/C,OAAO,SAAsBrjB,EAAMhM,EAAYrH,GAC7C,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,Q,kCCLxC,IAAImzB,EAAsB,EAAQ,KAC9B/oB,EAAW,gBAEXlH,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,WAAW,SAAiBmH,GACjDJ,EAASlH,EAAY7F,MAAOmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,kCCThF,IAAI2zB,EAAsB,EAAQ,KAC9B6E,EAAY,iBAEZ90B,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,YAAY,SAAkByK,GACnD,OAAOkqB,EAAU90B,EAAY7F,MAAOyQ,EAAetF,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,kCCT3F,IAAI2zB,EAAsB,EAAQ,KAC9BgX,EAAW,gBAEXjnC,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,WAAW,SAAiByK,GACjD,OAAOq8B,EAASjnC,EAAY7F,MAAOyQ,EAAetF,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,qBCV1F,IAAI0qC,EAA8B,EAAQ,MAI1CA,EAA4B,SAAS,SAAUxT,GAC7C,OAAO,SAAoBrjB,EAAMhM,EAAYrH,GAC3C,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,Q,qBCNxC,IAAIkqC,EAA8B,EAAQ,MAI1CA,EAA4B,SAAS,SAAUxT,GAC7C,OAAO,SAAoBrjB,EAAMhM,EAAYrH,GAC3C,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,Q,qBCNxC,IAAIkqC,EAA8B,EAAQ,MAI1CA,EAA4B,QAAQ,SAAUxT,GAC5C,OAAO,SAAmBrjB,EAAMhM,EAAYrH,GAC1C,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,Q,kCCLxC,IAAIe,EAAS,EAAQ,MACjBR,EAAQ,EAAQ,MAChByD,EAAc,EAAQ,MACtBmvB,EAAsB,EAAQ,KAC9BiX,EAAiB,EAAQ,MACzBnrC,EAAkB,EAAQ,MAE1BiR,EAAWjR,EAAgB,YAC3BoD,EAAatB,EAAOsB,WACpBgoC,EAAcrmC,EAAYomC,EAAevxB,QACzCyxB,EAAYtmC,EAAYomC,EAAeziC,MACvC4iC,EAAevmC,EAAYomC,EAAe/1B,SAC1CnR,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAC7CzB,EAAsBS,GAAcA,EAAW9C,UAE/CirC,GAAWjqC,GAAM,WACnBqB,EAAoBsO,GAAUxS,KAAK,CAAC,OAGlC+sC,IAAuB7oC,GACtBA,EAAoBiX,QACpBjX,EAAoBsO,KAActO,EAAoBiX,QAClB,WAApCjX,EAAoBiX,OAAOpR,KAE5BijC,EAAmB,WACrB,OAAOL,EAAYnnC,EAAY7F,QAKjCgG,EAAuB,WAAW,WAChC,OAAOknC,EAAarnC,EAAY7F,SAC/BmtC,GAGHnnC,EAAuB,QAAQ,WAC7B,OAAOinC,EAAUpnC,EAAY7F,SAC5BmtC,GAGHnnC,EAAuB,SAAUqnC,EAAkBF,IAAYC,EAAoB,CAAEhjC,KAAM,WAG3FpE,EAAuB6M,EAAUw6B,EAAkBF,IAAYC,EAAoB,CAAEhjC,KAAM,Y,kCC5C3F,IAAI0rB,EAAsB,EAAQ,KAC9BnvB,EAAc,EAAQ,MAEtBd,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAC7CsnC,EAAQ3mC,EAAY,GAAGua,MAI3Blb,EAAuB,QAAQ,SAAci1B,GAC3C,OAAOqS,EAAMznC,EAAY7F,MAAOi7B,O,kCCVlC,IAAInF,EAAsB,EAAQ,KAC9B1lB,EAAQ,EAAQ,MAChBC,EAAe,EAAQ,MAEvBxK,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,eAAe,SAAqByK,GACzD,IAAI9N,EAASwI,UAAUxI,OACvB,OAAOyN,EAAMC,EAAcxK,EAAY7F,MAAO2C,EAAS,EAAI,CAAC8N,EAAetF,UAAU,IAAM,CAACsF,Q,kCCX9F,IAAIqlB,EAAsB,EAAQ,KAC9BoF,EAAO,YACP5D,EAA+B,EAAQ,MAEvCzxB,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,OAAO,SAAa+H,GACzC,OAAOmtB,EAAKr1B,EAAY7F,MAAO+N,EAAO5C,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,GAAW,SAAUoK,EAAG5J,GAClG,OAAO,IAAK20B,EAA6B/qB,GAAlC,CAAsC5J,U,kCCXjD,IAAImzB,EAAsB,EAAQ,KAC9ByX,EAAe,cAEf1nC,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,eAAe,SAAqBmH,GACzD,IAAIxK,EAASwI,UAAUxI,OACvB,OAAO4qC,EAAa1nC,EAAY7F,MAAOmN,EAAYxK,EAAQA,EAAS,EAAIwI,UAAU,QAAKhJ,O,kCCVzF,IAAI2zB,EAAsB,EAAQ,KAC9B0X,EAAU,aAEV3nC,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,UAAU,SAAgBmH,GAC/C,IAAIxK,EAASwI,UAAUxI,OACvB,OAAO6qC,EAAQ3nC,EAAY7F,MAAOmN,EAAYxK,EAAQA,EAAS,EAAIwI,UAAU,QAAKhJ,O,kCCVpF,IAAI2zB,EAAsB,EAAQ,KAE9BjwB,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAC7C2L,EAAQvF,KAAKuF,MAIjB3L,EAAuB,WAAW,WAChC,IAII3D,EAJAoN,EAAOzP,KACP2C,EAASkD,EAAY4J,GAAM9M,OAC3BmP,EAASH,EAAMhP,EAAS,GACxBF,EAAQ,EAEZ,MAAOA,EAAQqP,EACbzP,EAAQoN,EAAKhN,GACbgN,EAAKhN,KAAWgN,IAAO9M,GACvB8M,EAAK9M,GAAUN,EACf,OAAOoN,M,kCClBX,IAAI/L,EAAS,EAAQ,MACjBrD,EAAO,EAAQ,MACfy1B,EAAsB,EAAQ,KAC9B7pB,EAAoB,EAAQ,MAC5BgqB,EAAW,EAAQ,MACnB3nB,EAAkB,EAAQ,MAC1BpL,EAAQ,EAAQ,MAEhBuF,EAAa/E,EAAO+E,WACpBvE,EAAYR,EAAOQ,UACnBC,EAAqBD,GAAaA,EAAUhC,UAC5CurC,EAAOtpC,GAAsBA,EAAmB2D,IAChDjC,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAE7C0nC,GAAiDxqC,GAAM,WAEzD,IAAI2N,EAAQ,IAAIzM,kBAAkB,GAElC,OADA/D,EAAKotC,EAAM58B,EAAO,CAAElO,OAAQ,EAAG,EAAG,GAAK,GACnB,IAAbkO,EAAM,MAIX88B,EAAgBD,GAAiD5X,EAAoBlxB,2BAA6B1B,GAAM,WAC1H,IAAI2N,EAAQ,IAAI3M,EAAU,GAG1B,OAFA2M,EAAM/I,IAAI,GACV+I,EAAM/I,IAAI,IAAK,GACK,IAAb+I,EAAM,IAAyB,IAAbA,EAAM,MAKjC7K,EAAuB,OAAO,SAAa6H,GACzChI,EAAY7F,MACZ,IAAIgL,EAASirB,EAAS9qB,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,EAAW,GACnEkY,EAAM/L,EAAgBT,GAC1B,GAAI6/B,EAA+C,OAAOrtC,EAAKotC,EAAMztC,KAAMqa,EAAKrP,GAChF,IAAIrI,EAAS3C,KAAK2C,OACd6J,EAAMP,EAAkBoO,GACxB5X,EAAQ,EACZ,GAAI+J,EAAMxB,EAASrI,EAAQ,MAAM8F,EAAW,gBAC5C,MAAOhG,EAAQ+J,EAAKxM,KAAKgL,EAASvI,GAAS4X,EAAI5X,QAC7CirC,GAAiDC,I,iCC1CrD,IAAI7X,EAAsB,EAAQ,KAC9BwB,EAA+B,EAAQ,MACvCp0B,EAAQ,EAAQ,MAChBmE,EAAa,EAAQ,KAErBxB,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAE7CwK,EAAStN,GAAM,WAEjB,IAAIgB,UAAU,GAAGwN,WAKnB1L,EAAuB,SAAS,SAAe+D,EAAO4C,GACpD,IAAIS,EAAO/F,EAAWxB,EAAY7F,MAAO+J,EAAO4C,GAC5C5G,EAAIuxB,EAA6Bt3B,MACjCyC,EAAQ,EACRE,EAASyK,EAAKzK,OACd0K,EAAS,IAAItH,EAAEpD,GACnB,MAAOA,EAASF,EAAO4K,EAAO5K,GAAS2K,EAAK3K,KAC5C,OAAO4K,IACNmD,I,kCCvBH,IAAIslB,EAAsB,EAAQ,KAC9B8X,EAAQ,aAER/nC,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,QAAQ,SAAcmH,GAC3C,OAAOygC,EAAM/nC,EAAY7F,MAAOmN,EAAYhC,UAAUxI,OAAS,EAAIwI,UAAU,QAAKhJ,O,kCCTpF,IAAIuB,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MACtBzD,EAAQ,EAAQ,MAChB+N,EAAY,EAAQ,MACpBmqB,EAAe,EAAQ,MACvBtF,EAAsB,EAAQ,KAC9BuF,EAAK,EAAQ,MACbC,EAAa,EAAQ,KACrBC,EAAK,EAAQ,MACbC,EAAS,EAAQ,MAEjB31B,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAC7Cd,EAAcxB,EAAOwB,YACrBu2B,EAAUv2B,GAAeyB,EAAYzB,EAAYhD,UAAUw5B,MAG3DmS,IAA+BpS,KAAav4B,GAAM,WACpDu4B,EAAQ,IAAIv2B,EAAY,GAAI,UACxBhC,GAAM,WACVu4B,EAAQ,IAAIv2B,EAAY,GAAI,QAG1B22B,IAAgBJ,IAAYv4B,GAAM,WAEpC,GAAIq4B,EAAI,OAAOA,EAAK,GACpB,GAAIF,EAAI,OAAOA,EAAK,GACpB,GAAIC,EAAY,OAAO,EACvB,GAAIE,EAAQ,OAAOA,EAAS,IAE5B,IAEI/4B,EAAOqrC,EAFPj9B,EAAQ,IAAI3L,EAAY,KACxB6oC,EAAW9rC,MAAM,KAGrB,IAAKQ,EAAQ,EAAGA,EAAQ,IAAKA,IAC3BqrC,EAAMrrC,EAAQ,EACdoO,EAAMpO,GAAS,IAAMA,EACrBsrC,EAAStrC,GAASA,EAAQ,EAAIqrC,EAAM,EAOtC,IAJArS,EAAQ5qB,GAAO,SAAUiS,EAAGC,GAC1B,OAAQD,EAAI,EAAI,IAAMC,EAAI,EAAI,MAG3BtgB,EAAQ,EAAGA,EAAQ,IAAKA,IAC3B,GAAIoO,EAAMpO,KAAWsrC,EAAStrC,GAAQ,OAAO,KAI7Cw5B,EAAiB,SAAUpqB,GAC7B,OAAO,SAAU0W,EAAGyJ,GAClB,YAAkB7vB,IAAd0P,GAAiCA,EAAU0W,EAAGyJ,IAAM,EAEpDA,IAAMA,GAAW,EAEjBzJ,IAAMA,EAAU,EACV,IAANA,GAAiB,IAANyJ,EAAgB,EAAIzJ,EAAI,GAAK,EAAIyJ,EAAI,EAAI,GAAK,EACtDzJ,EAAIyJ,IAMfhsB,EAAuB,QAAQ,SAAc6L,GAE3C,YADkB1P,IAAd0P,GAAyBZ,EAAUY,GACnCgqB,EAAoBJ,EAAQz7B,KAAM6R,GAE/BupB,EAAav1B,EAAY7F,MAAOi8B,EAAepqB,OACpDgqB,GAAegS,I,kCCpEnB,IAAI/X,EAAsB,EAAQ,KAC9B9uB,EAAW,EAAQ,MACnBgF,EAAkB,EAAQ,MAC1BsrB,EAA+B,EAAQ,MAEvCzxB,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAIjDA,EAAuB,YAAY,SAAkBgoC,EAAOrhC,GAC1D,IAAIJ,EAAI1G,EAAY7F,MAChB2C,EAAS4J,EAAE5J,OACXsrC,EAAajiC,EAAgBgiC,EAAOrrC,GACpCoD,EAAIuxB,EAA6B/qB,GACrC,OAAO,IAAIxG,EACTwG,EAAEpJ,OACFoJ,EAAEvC,WAAaikC,EAAa1hC,EAAE+pB,kBAC9BtvB,QAAkB7E,IAARwK,EAAoBhK,EAASqJ,EAAgBW,EAAKhK,IAAWsrC,Q,kCClB3E,IAAIvqC,EAAS,EAAQ,MACjB0M,EAAQ,EAAQ,MAChB0lB,EAAsB,EAAQ,KAC9B5yB,EAAQ,EAAQ,MAChBmE,EAAa,EAAQ,KAErBnD,EAAYR,EAAOQ,UACnB2B,EAAciwB,EAAoBjwB,YAClCG,EAAyB8vB,EAAoB9vB,uBAC7CkoC,EAAkB,GAAGC,eAGrBC,IAAyBlqC,GAAahB,GAAM,WAC9CgrC,EAAgB7tC,KAAK,IAAI6D,EAAU,OAGjCsM,EAAStN,GAAM,WACjB,MAAO,CAAC,EAAG,GAAGirC,kBAAoB,IAAIjqC,EAAU,CAAC,EAAG,IAAIiqC,sBACnDjrC,GAAM,WACXgB,EAAUhC,UAAUisC,eAAe9tC,KAAK,CAAC,EAAG,OAK9C2F,EAAuB,kBAAkB,WACvC,OAAOoK,EACL89B,EACAE,EAAuB/mC,EAAWxB,EAAY7F,OAAS6F,EAAY7F,MACnEqH,EAAW8D,cAEZqF,I,kCC9BH,IAAIxK,EAAyB,8BACzB9C,EAAQ,EAAQ,MAChBQ,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MAEtB3B,EAAatB,EAAOsB,WACpBqpC,EAAsBrpC,GAAcA,EAAW9C,WAAa,GAC5DosC,EAAgB,GAAGj7B,SACnB6N,EAAOva,EAAY,GAAGua,MAEtBhe,GAAM,WAAcorC,EAAcjuC,KAAK,SACzCiuC,EAAgB,WACd,OAAOptB,EAAKlhB,QAIhB,IAAIuuC,EAAsBF,EAAoBh7B,UAAYi7B,EAI1DtoC,EAAuB,WAAYsoC,EAAeC,I,qBCrBlD,IAAI1B,EAA8B,EAAQ,MAI1CA,EAA4B,UAAU,SAAUxT,GAC9C,OAAO,SAAqBrjB,EAAMhM,EAAYrH,GAC5C,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,Q,qBCNxC,IAAIkqC,EAA8B,EAAQ,MAI1CA,EAA4B,UAAU,SAAUxT,GAC9C,OAAO,SAAqBrjB,EAAMhM,EAAYrH,GAC5C,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,Q,qBCNxC,IAAIkqC,EAA8B,EAAQ,MAI1CA,EAA4B,SAAS,SAAUxT,GAC7C,OAAO,SAAoBrjB,EAAMhM,EAAYrH,GAC3C,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,Q,qBCNxC,IAAIkqC,EAA8B,EAAQ,MAI1CA,EAA4B,SAAS,SAAUxT,GAC7C,OAAO,SAA2BrjB,EAAMhM,EAAYrH,GAClD,OAAO02B,EAAKr5B,KAAMgW,EAAMhM,EAAYrH,OAErC,I,kCCPH,IAYI6rC,EAZA9qC,EAAS,EAAQ,MACjBiD,EAAc,EAAQ,MACtBE,EAAiB,EAAQ,MACzBuQ,EAAyB,EAAQ,MACjC0mB,EAAa,EAAQ,MACrB2Q,EAAiB,EAAQ,MACzB1rC,EAAW,EAAQ,KACnBM,EAAe,EAAQ,MACvB4kB,EAAuB,gBACvB/C,EAAkB,EAAQ,MAE1BwpB,GAAWhrC,EAAOqpB,eAAiB,kBAAmBrpB,EAGtDsR,EAAU,SAAUqkB,GACtB,OAAO,WACL,OAAOA,EAAKr5B,KAAMmL,UAAUxI,OAASwI,UAAU,QAAKhJ,KAMpDwsC,EAAW7Q,EAAW,UAAW9oB,EAASy5B,GAK9C,GAAIvpB,GAAmBwpB,EAAS,CAC9BF,EAAkBC,EAAe15B,eAAeC,EAAS,WAAW,GACpEoC,EAAuBW,SACvB,IAAI62B,EAAmBD,EAASzsC,UAC5B2sC,EAAeloC,EAAYioC,EAAiB,WAC5CE,EAAYnoC,EAAYioC,EAAiB14B,KACzC64B,EAAYpoC,EAAYioC,EAAiBloC,KACzCsoC,EAAYroC,EAAYioC,EAAiB9mC,KAC7CjB,EAAe+nC,EAAkB,CAC/B,OAAU,SAAUtsC,GAClB,GAAIS,EAAST,KAASe,EAAaf,GAAM,CACvC,IAAIqT,EAAQsS,EAAqBjoB,MAEjC,OADK2V,EAAMmB,SAAQnB,EAAMmB,OAAS,IAAI03B,GAC/BK,EAAa7uC,KAAMsC,IAAQqT,EAAMmB,OAAO,UAAUxU,GACzD,OAAOusC,EAAa7uC,KAAMsC,IAE9B4T,IAAK,SAAa5T,GAChB,GAAIS,EAAST,KAASe,EAAaf,GAAM,CACvC,IAAIqT,EAAQsS,EAAqBjoB,MAEjC,OADK2V,EAAMmB,SAAQnB,EAAMmB,OAAS,IAAI03B,GAC/BM,EAAU9uC,KAAMsC,IAAQqT,EAAMmB,OAAOZ,IAAI5T,GAChD,OAAOwsC,EAAU9uC,KAAMsC,IAE3BoE,IAAK,SAAapE,GAChB,GAAIS,EAAST,KAASe,EAAaf,GAAM,CACvC,IAAIqT,EAAQsS,EAAqBjoB,MAEjC,OADK2V,EAAMmB,SAAQnB,EAAMmB,OAAS,IAAI03B,GAC/BM,EAAU9uC,KAAMsC,GAAOysC,EAAU/uC,KAAMsC,GAAOqT,EAAMmB,OAAOpQ,IAAIpE,GACtE,OAAOysC,EAAU/uC,KAAMsC,IAE3BwF,IAAK,SAAaxF,EAAKD,GACrB,GAAIU,EAAST,KAASe,EAAaf,GAAM,CACvC,IAAIqT,EAAQsS,EAAqBjoB,MAC5B2V,EAAMmB,SAAQnB,EAAMmB,OAAS,IAAI03B,GACtCM,EAAU9uC,KAAMsC,GAAO0sC,EAAUhvC,KAAMsC,EAAKD,GAASsT,EAAMmB,OAAOhP,IAAIxF,EAAKD,QACtE2sC,EAAUhvC,KAAMsC,EAAKD,GAC5B,OAAOrC,U,qBC/Db,EAAQ,O,kCCAR,IAAI89B,EAAa,EAAQ,MACrB2Q,EAAiB,EAAQ,MAI7B3Q,EAAW,WAAW,SAAUzE,GAC9B,OAAO,WAAqB,OAAOA,EAAKr5B,KAAMmL,UAAUxI,OAASwI,UAAU,QAAKhJ,MAC/EssC,I,qBCPH,EAAQ,O,qBCDR,IAAIv3B,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MACjBmwB,EAAiB,aAIrB3c,EAAE,CAAExT,QAAQ,EAAM4J,MAAM,EAAMqM,YAAY,EAAMxT,OAAQzC,EAAOmwB,iBAAmBA,GAAkB,CAClGA,eAAgBA,K,qBCPlB,IAAInwB,EAAS,EAAQ,MACjBurC,EAAe,EAAQ,MACvB9wB,EAAwB,EAAQ,MAChCjR,EAAU,EAAQ,MAClBrJ,EAA8B,EAAQ,MAEtCqrC,EAAkB,SAAUC,GAE9B,GAAIA,GAAuBA,EAAoBjiC,UAAYA,EAAS,IAClErJ,EAA4BsrC,EAAqB,UAAWjiC,GAC5D,MAAO5G,GACP6oC,EAAoBjiC,QAAUA,IAIlC,IAAK,IAAIkiC,KAAmBH,EACtBA,EAAaG,IACfF,EAAgBxrC,EAAO0rC,IAAoB1rC,EAAO0rC,GAAiBltC,WAIvEgtC,EAAgB/wB,I,qBCrBhB,IAAIza,EAAS,EAAQ,MACjBurC,EAAe,EAAQ,MACvB9wB,EAAwB,EAAQ,MAChCkxB,EAAuB,EAAQ,MAC/BxrC,EAA8B,EAAQ,MACtCjC,EAAkB,EAAQ,MAE1BiR,EAAWjR,EAAgB,YAC3B6C,EAAgB7C,EAAgB,eAChC0tC,EAAcD,EAAqB7zB,OAEnC0zB,EAAkB,SAAUC,EAAqBC,GACnD,GAAID,EAAqB,CAEvB,GAAIA,EAAoBt8B,KAAcy8B,EAAa,IACjDzrC,EAA4BsrC,EAAqBt8B,EAAUy8B,GAC3D,MAAOhpC,GACP6oC,EAAoBt8B,GAAYy8B,EAKlC,GAHKH,EAAoB1qC,IACvBZ,EAA4BsrC,EAAqB1qC,EAAe2qC,GAE9DH,EAAaG,GAAkB,IAAK,IAAIx+B,KAAey+B,EAEzD,GAAIF,EAAoBv+B,KAAiBy+B,EAAqBz+B,GAAc,IAC1E/M,EAA4BsrC,EAAqBv+B,EAAay+B,EAAqBz+B,IACnF,MAAOtK,GACP6oC,EAAoBv+B,GAAey+B,EAAqBz+B,MAMhE,IAAK,IAAIw+B,KAAmBH,EAC1BC,EAAgBxrC,EAAO0rC,IAAoB1rC,EAAO0rC,GAAiBltC,UAAWktC,GAGhFF,EAAgB/wB,EAAuB,iB,qBCpCvC,EAAQ,MACR,EAAQ,O,qBCFR,IAAIjH,EAAI,EAAQ,MACZxT,EAAS,EAAQ,MACjBkwB,EAAe,WAInB1c,EAAE,CAAExT,QAAQ,EAAM4J,MAAM,EAAMqM,YAAY,EAAMxT,OAAQzC,EAAOkwB,eAAiBA,GAAgB,CAC9FA,aAAcA,K,qCCPhB,SAAS2b,EAAQvnB,GAGf,OAAQzmB,EAAOL,QAAUquC,EAAU,mBAAqB3zB,QAAU,iBAAmBA,OAAO1N,SAAW,SAAU8Z,GAC/G,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBpM,QAAUoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,gBAAkB8lB,GACvHzmB,EAAOL,QAAQsuC,YAAa,EAAMjuC,EAAOL,QAAQ,WAAaK,EAAOL,QAAUquC,EAAQvnB,G,gDAG5FzmB,EAAOL,QAAUquC,EAAShuC,EAAOL,QAAQsuC,YAAa,EAAMjuC,EAAOL,QAAQ,WAAaK,EAAOL,S,8ECa/F,SAASquC,EAAQvnB,GAAwT,OAAtOunB,EAArD,oBAAX3zB,QAAoD,WAA3B,EAAOA,OAAO1N,UAAmC,SAAiB8Z,GAAO,OAAO,EAAOA,IAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXpM,QAAyBoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,SAAhG,EAAkH8lB,IAAiBunB,EAAQvnB,GAExV,SAASynB,EAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qC,gJAEhH,IAoBIouC,EACAC,EArBAC,EAAWC,EAAQ,MACnBC,EAAiBF,EAASG,MAC1BC,EAAyBF,EAAeE,uBACxCC,EAAuBH,EAAeG,qBACtCC,EAAwBJ,EAAeI,sBACvCC,EAA2BL,EAAeK,yBAC1CC,EAAmBN,EAAeM,iBAElCC,EAAiBR,EAAQ,MAEzBS,EAAYT,EAAQ,MACpBU,EAAUD,EAAUC,QAEpBC,EAAiBX,EAAAA,MAAAA,MACjBY,EAAYD,EAAeC,UAC3B3pB,EAAW0pB,EAAe1pB,SAE1B4pB,EAAettC,OAAO2nB,OAAS3nB,OAAO2nB,OAAS8kB,EAAAA,MAAAA,OAC/Cc,EAAWvtC,OAAO2uB,GAAK3uB,OAAO2uB,GAAK8d,EAAQ,KAC9B,IAAIe,IAOrB,SAASC,IACP,IAAIC,EAAajB,EAAQ,MAEzBH,EAAcoB,EAAWpB,YACzBC,EAAoBmB,EAAWnB,kBAMjC,IAOIoB,GAAS,EAITC,EAASzvC,EAAOL,QAAUwhC,EAC1BuO,EAAwB,GAM5B,SAASC,EAAUlpB,GACjB,GAAIA,EAAI+Q,mBAAmBhlB,MAAO,MAAMiU,EAAI+Q,QAC5C,MAAM,IAAIsX,EAAeroB,GAG3B,SAAS2a,EAAKwO,EAAQpD,EAAUhV,EAASqY,EAAUC,GACjD,IACIC,EADAC,EAAUpmC,UAAUxI,OAGxB,GAAgB,IAAZ4uC,EACFD,EAAkB,cACb,GAAgB,IAAZC,EACTxY,EAAUoY,EACVA,OAAShvC,MACJ,CACL,IAAe,IAAX4uC,EAAkB,CACpBA,GAAS,EACT,IAAIS,EAAO7yB,EAAQ8yB,YAAc9yB,EAAQ8yB,YAAczuB,EAAQwuB,KAAKlkC,KAAK0V,GACzEwuB,EAAK,2HAAiI,qBAAsB,WAG9I,IAAZD,IAAeH,EAAW,MAGhC,GAAIrY,aAAmBhlB,MAAO,MAAMglB,EACpC,IAAI2Y,EAAU,CACZP,OAAQA,EACRpD,SAAUA,EACVqD,cAAuBjvC,IAAbivC,EAAyB,OAASA,EAC5CC,aAAcA,GAAgB1O,QAGhBxgC,IAAZ42B,IACF2Y,EAAQ3Y,QAAUA,GAGpB,IAAI4Y,EAAM,IAAItB,EAAeqB,GAO7B,MALIJ,IACFK,EAAI5Y,QAAUuY,EACdK,EAAIC,kBAAmB,GAGnBD,EAOR,SAASE,EAAQl/B,EAAIm/B,EAAQzvC,EAAO02B,GAClC,IAAK12B,EAAO,CACV,IAAIuvC,GAAmB,EAEvB,GAAe,IAAXE,EACFF,GAAmB,EACnB7Y,EAAU,iDACL,GAAIA,aAAmBhlB,MAC5B,MAAMglB,EAGR,IAAI4Y,EAAM,IAAItB,EAAe,CAC3Bc,OAAQ9uC,EACR0rC,UAAU,EACVhV,QAASA,EACTqY,SAAU,KACVC,aAAc1+B,IAGhB,MADAg/B,EAAIC,iBAAmBA,EACjBD,GAMV,SAASjP,IACP,IAAK,IAAIqP,EAAO5mC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8vC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1wB,EAAK0wB,GAAQ7mC,UAAU6mC,GAGzBH,EAAQzhC,WAAM,EAAQ,CAACsyB,EAAIphB,EAAK3e,QAAQ1B,OAAOqgB,IAuGjD,SAAS2wB,EAAmBd,EAAQpD,EAAUhV,GAC5C,GAAI5tB,UAAUxI,OAAS,EACrB,MAAM,IAAIytC,EAAiB,SAAU,iBAGnBjuC,IAAhButC,GAA2BmB,IAE3BlB,EAAkBwB,EAAQpD,IAC5BmD,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAU,qBACVC,aAAcY,IAtJpBjB,EAAOrO,KAAOA,EAEdqO,EAAOX,eAAiBA,EAmCxBW,EAAOtO,GAAKA,EAIZsO,EAAOkB,MAAQ,SAASA,EAAMf,EAAQpD,EAAUhV,GAC9C,GAAI5tB,UAAUxI,OAAS,EACrB,MAAM,IAAIytC,EAAiB,SAAU,YAInCe,GAAUpD,GACZmD,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAU,KACVC,aAAca,KAOpBlB,EAAOmB,SAAW,SAASA,EAAShB,EAAQpD,EAAUhV,GACpD,GAAI5tB,UAAUxI,OAAS,EACrB,MAAM,IAAIytC,EAAiB,SAAU,YAInCe,GAAUpD,GACZmD,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAU,KACVC,aAAcc,KAMpBnB,EAAOoB,UAAY,SAASA,EAAUjB,EAAQpD,EAAUhV,GACtD,GAAI5tB,UAAUxI,OAAS,EACrB,MAAM,IAAIytC,EAAiB,SAAU,iBAGnBjuC,IAAhButC,GAA2BmB,IAE1BnB,EAAYyB,EAAQpD,IACvBmD,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAU,YACVC,aAAce,KAMpBpB,EAAOqB,aAAe,SAASA,EAAalB,EAAQpD,EAAUhV,GAC5D,GAAI5tB,UAAUxI,OAAS,EACrB,MAAM,IAAIytC,EAAiB,SAAU,iBAGnBjuC,IAAhButC,GAA2BmB,IAE3BnB,EAAYyB,EAAQpD,IACtBmD,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAU,eACVC,aAAcgB,KAOpBrB,EAAOsB,gBAAkB,SAASA,EAAgBnB,EAAQpD,EAAUhV,GAClE,GAAI5tB,UAAUxI,OAAS,EACrB,MAAM,IAAIytC,EAAiB,SAAU,iBAGnBjuC,IAAhButC,GAA2BmB,IAE1BlB,EAAkBwB,EAAQpD,IAC7BmD,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAU,kBACVC,aAAciB,KAKpBtB,EAAOiB,mBAAqBA,EAoB5BjB,EAAOuB,YAAc,SAASA,EAAYpB,EAAQpD,EAAUhV,GAC1D,GAAI5tB,UAAUxI,OAAS,EACrB,MAAM,IAAIytC,EAAiB,SAAU,YAGlCO,EAASQ,EAAQpD,IACpBmD,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAU,cACVC,aAAckB,KAKpBvB,EAAOwB,eAAiB,SAASA,EAAerB,EAAQpD,EAAUhV,GAChE,GAAI5tB,UAAUxI,OAAS,EACrB,MAAM,IAAIytC,EAAiB,SAAU,YAGnCO,EAASQ,EAAQpD,IACnBmD,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAU,iBACVC,aAAcmB,KAKpB,IAAIC,EAAa,SAASA,EAAWzqB,EAAK1d,EAAM6mC,GAC9C,IAAIuB,EAAQ1yC,KAEZyvC,EAAgBzvC,KAAMyyC,GAEtBnoC,EAAK4C,SAAQ,SAAU5K,GACjBA,KAAO0lB,SACM7lB,IAAXgvC,GAA+C,kBAAhBA,EAAO7uC,IAAqBwkB,EAASkB,EAAI1lB,KAAS0lB,EAAI1lB,GAAKgS,KAAK68B,EAAO7uC,IACxGowC,EAAMpwC,GAAO6uC,EAAO7uC,GAEpBowC,EAAMpwC,GAAO0lB,EAAI1lB,QAMzB,SAASqwC,EAAoBxB,EAAQpD,EAAUzrC,EAAKy2B,EAASzuB,EAAMqI,GACjE,KAAMrQ,KAAO6uC,KAAYxB,EAAkBwB,EAAO7uC,GAAMyrC,EAASzrC,IAAO,CACtE,IAAKy2B,EAAS,CAEZ,IAAIjW,EAAI,IAAI2vB,EAAWtB,EAAQ7mC,GAC3ByY,EAAI,IAAI0vB,EAAW1E,EAAUzjC,EAAM6mC,GACnCQ,EAAM,IAAItB,EAAe,CAC3Bc,OAAQruB,EACRirB,SAAUhrB,EACVquB,SAAU,kBACVC,aAAc1+B,IAKhB,MAHAg/B,EAAIR,OAASA,EACbQ,EAAI5D,SAAWA,EACf4D,EAAIP,SAAWz+B,EAAGvI,KACZunC,EAGRT,EAAU,CACRC,OAAQA,EACRpD,SAAUA,EACVhV,QAASA,EACTqY,SAAUz+B,EAAGvI,KACbinC,aAAc1+B,KAKpB,SAASigC,EAAkBzB,EAAQpD,EAAU8E,EAAKlgC,GAChD,GAAwB,oBAAbo7B,EAAyB,CAClC,GAAIjnB,EAASinB,GAAW,OAAOA,EAASz5B,KAAK68B,GAE7C,GAAyB,IAArBhmC,UAAUxI,OACZ,MAAM,IAAIstC,EAAqB,WAAY,CAAC,WAAY,UAAWlC,GAIrE,GAAwB,WAApBwB,EAAQ4B,IAAmC,OAAXA,EAAiB,CACnD,IAAIQ,EAAM,IAAItB,EAAe,CAC3Bc,OAAQA,EACRpD,SAAUA,EACVhV,QAAS8Z,EACTzB,SAAU,kBACVC,aAAc1+B,IAGhB,MADAg/B,EAAIP,SAAWz+B,EAAGvI,KACZunC,EAGR,IAAIrnC,EAAOlH,OAAOkH,KAAKyjC,GAGvB,GAAIA,aAAoBh6B,MACtBzJ,EAAK0E,KAAK,OAAQ,gBACb,GAAoB,IAAhB1E,EAAK3H,OACd,MAAM,IAAIutC,EAAsB,QAASnC,EAAU,8BAWrD,YARoB5rC,IAAhButC,GAA2BmB,IAC/BvmC,EAAK4C,SAAQ,SAAU5K,GACM,kBAAhB6uC,EAAO7uC,IAAqBwkB,EAASinB,EAASzrC,KAASyrC,EAASzrC,GAAKgS,KAAK68B,EAAO7uC,KAI5FqwC,EAAoBxB,EAAQpD,EAAUzrC,EAAKuwC,EAAKvoC,EAAMqI,OAEjD,EAIT,YAA2BxQ,IAAvB4rC,EAAS7rC,WAA2BivC,aAAkBpD,IAItDh6B,MAAMnR,cAAcmrC,KAIa,IAA9BA,EAAS1tC,KAAK,GAAI8wC,GAG3B,SAAS2B,EAAUngC,GACjB,GAAkB,oBAAPA,EACT,MAAM,IAAIs9B,EAAqB,KAAM,WAAYt9B,GAGnD,IACEA,IACA,MAAOgtB,GACP,OAAOA,EAGT,OAAOsR,EAGT,SAAS8B,EAAe/qB,GAOtB,OAAOyoB,EAAUzoB,IAAgB,OAARA,GAAiC,WAAjBunB,EAAQvnB,IAAyC,oBAAbA,EAAIc,MAA4C,oBAAdd,EAAIgrB,MAGrH,SAASC,EAAcC,GACrB,OAAO5pB,QAAQM,UAAUd,MAAK,WAC5B,IAAIqqB,EAEJ,GAAyB,oBAAdD,GAIT,GAFAC,EAAgBD,KAEXH,EAAeI,GAClB,MAAM,IAAIhD,EAAyB,sBAAuB,YAAagD,OAEpE,KAAIJ,EAAeG,GAGxB,MAAM,IAAIjD,EAAqB,YAAa,CAAC,WAAY,WAAYiD,GAFrEC,EAAgBD,EAKlB,OAAO5pB,QAAQM,UAAUd,MAAK,WAC5B,OAAOqqB,KACNrqB,MAAK,WACN,OAAOmoB,KACN+B,OAAM,SAAUrT,GACjB,OAAOA,QAKb,SAASyT,EAAa/B,EAAcF,EAAQ7qC,EAAOyyB,GACjD,GAAqB,kBAAVzyB,EAAoB,CAC7B,GAAyB,IAArB6E,UAAUxI,OACZ,MAAM,IAAIstC,EAAqB,QAAS,CAAC,SAAU,QAAS,WAAY,UAAW3pC,GAGrF,GAAwB,WAApBipC,EAAQ4B,IAAmC,OAAXA,GAClC,GAAIA,EAAOpY,UAAYzyB,EACrB,MAAM,IAAI0pC,EAAuB,gBAAiB,sBAAuB/uC,OAAOkwC,EAAOpY,QAAS,wCAE7F,GAAIoY,IAAW7qC,EACpB,MAAM,IAAI0pC,EAAuB,gBAAiB,cAAe/uC,OAAOkwC,EAAQ,mCAGlFpY,EAAUzyB,EACVA,OAAQnE,OACH,GAAa,MAATmE,GAAoC,WAAnBipC,EAAQjpC,IAAwC,oBAAVA,EAChE,MAAM,IAAI2pC,EAAqB,QAAS,CAAC,SAAU,QAAS,WAAY,UAAW3pC,GAGrF,GAAI6qC,IAAWF,EAAuB,CACpC,IAAIoC,EAAU,GAEV/sC,GAASA,EAAM8D,OACjBipC,GAAW,KAAKpyC,OAAOqF,EAAM8D,KAAM,MAGrCipC,GAAWta,EAAU,KAAK93B,OAAO83B,GAAW,IAC5C,IAAIua,EAA+B,YAAtBjC,EAAajnC,KAAqB,YAAc,YAC7D8mC,EAAU,CACRC,YAAQhvC,EACR4rC,SAAUznC,EACV8qC,SAAUC,EAAajnC,KACvB2uB,QAAS,oBAAoB93B,OAAOqyC,GAAQryC,OAAOoyC,GACnDhC,aAAcA,IAIlB,GAAI/qC,IAAUssC,EAAkBzB,EAAQ7qC,EAAOyyB,EAASsY,GACtD,MAAMF,EAIV,SAASoC,EAAelC,EAAcF,EAAQ7qC,EAAOyyB,GACnD,GAAIoY,IAAWF,EAAf,CAOA,GALqB,kBAAV3qC,IACTyyB,EAAUzyB,EACVA,OAAQnE,IAGLmE,GAASssC,EAAkBzB,EAAQ7qC,GAAQ,CAC9C,IAAI+sC,EAAUta,EAAU,KAAK93B,OAAO83B,GAAW,IAC3Cua,EAA+B,kBAAtBjC,EAAajnC,KAA2B,YAAc,YACnE8mC,EAAU,CACRC,OAAQA,EACRpD,SAAUznC,EACV8qC,SAAUC,EAAajnC,KACvB2uB,QAAS,gBAAgB93B,OAAOqyC,GAAQryC,OAAOoyC,EAAS,MAAQ,oBAAqBpyC,OAAOkwC,GAAUA,EAAOpY,QAAS,KACtHsY,aAAcA,IAIlB,MAAMF,GA2FR,SAASqC,IACP,IAAK,IAAIC,EAAQtoC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAMwxC,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFpyB,EAAKoyB,GAASvoC,UAAUuoC,GAG1B7B,EAAQzhC,WAAM,EAAQ,CAACojC,EAAQlyB,EAAK3e,QAAQ1B,OAAOqgB,IA7FrD0vB,EAAO2C,OAAS,SAASA,EAAOT,GAC9B,IAAK,IAAIU,EAAQzoC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM2xC,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGvyB,EAAKuyB,EAAQ,GAAK1oC,UAAU0oC,GAG9BT,EAAahjC,WAAM,EAAQ,CAACujC,EAAQb,EAAUI,IAAYjyC,OAAOqgB,KAGnE0vB,EAAO8C,QAAU,SAASA,EAAQZ,GAChC,IAAK,IAAIa,EAAQ5oC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8xC,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG1yB,EAAK0yB,EAAQ,GAAK7oC,UAAU6oC,GAG9B,OAAOf,EAAcC,GAAWpqB,MAAK,SAAUzb,GAC7C,OAAO+lC,EAAahjC,WAAM,EAAQ,CAAC0jC,EAASzmC,GAAQpM,OAAOqgB,QAI/D0vB,EAAOiD,aAAe,SAASA,EAAathC,GAC1C,IAAK,IAAIuhC,EAAQ/oC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAMiyC,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG7yB,EAAK6yB,EAAQ,GAAKhpC,UAAUgpC,GAG9BZ,EAAenjC,WAAM,EAAQ,CAAC6jC,EAAcnB,EAAUngC,IAAK1R,OAAOqgB,KAGpE0vB,EAAOoD,cAAgB,SAASA,EAAczhC,GAC5C,IAAK,IAAI0hC,EAAQlpC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAMoyC,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGhzB,EAAKgzB,EAAQ,GAAKnpC,UAAUmpC,GAG9B,OAAOrB,EAActgC,GAAImW,MAAK,SAAUzb,GACtC,OAAOkmC,EAAenjC,WAAM,EAAQ,CAACgkC,EAAe/mC,GAAQpM,OAAOqgB,QAIvE0vB,EAAOuD,QAAU,SAASA,EAAQ5C,GAChC,GAAY,OAARA,QAAwBxvC,IAARwvC,EAAmB,CACrC,IAAI5Y,EAAU,mCAEO,WAAjBwW,EAAQoC,IAA4C,kBAAhBA,EAAI5Y,QACf,IAAvB4Y,EAAI5Y,QAAQp2B,QAAgBgvC,EAAInnC,YAClCuuB,GAAW4Y,EAAInnC,YAAYJ,KAE3B2uB,GAAW4Y,EAAI5Y,QAGjBA,GAAWwX,EAAQoB,GAGrB,IAAI6C,EAAS,IAAInE,EAAe,CAC9Bc,OAAQQ,EACR5D,SAAU,KACVqD,SAAU,UACVrY,QAASA,EACTsY,aAAckD,IAGZE,EAAY9C,EAAIx9B,MAEpB,GAAyB,kBAAdsgC,EAAwB,CAIjC,IAAIC,EAAOD,EAAUz1B,MAAM,MAC3B01B,EAAKC,QAIL,IAFA,IAAIC,EAAOJ,EAAOrgC,MAAM6K,MAAM,MAErB9U,EAAI,EAAGA,EAAIwqC,EAAK/xC,OAAQuH,IAAK,CAEpC,IAAIwoB,EAAMkiB,EAAK/lC,QAAQ6lC,EAAKxqC,IAE5B,IAAa,IAATwoB,EAAY,CAEdkiB,EAAOA,EAAKljC,MAAM,EAAGghB,GACrB,OAIJ8hB,EAAOrgC,MAAQ,GAAGlT,OAAO2zC,EAAK1zB,KAAK,MAAO,MAAMjgB,OAAOyzC,EAAKxzB,KAAK,OAGnE,MAAMszB,IAaVxD,EAAOwC,OAAS9C,EAAa8C,EAAQxC,EAAQ,CAC3CkB,MAAOlB,EAAOuB,YACdH,UAAWpB,EAAOsB,gBAClBH,SAAUnB,EAAOwB,eACjBH,aAAcrB,EAAOiB,qBAEvBjB,EAAOwC,OAAOA,OAASxC,EAAOwC,Q,qEClnB9B,SAASqB,EAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAyB,MAAhBvN,UAAUjB,GAAaiB,UAAUjB,GAAK,GAAQqO,EAAUnV,OAAOkH,KAAKoO,GAAqD,oBAAjCtV,OAAOgnB,wBAAwC7R,EAAUA,EAAQtX,OAAOmC,OAAOgnB,sBAAsB1R,GAAQ5I,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBH,EAAQwzB,GAAKvyB,gBAAmBpB,EAAQrL,SAAQ,SAAU5K,GAAOwyC,EAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAa,OAAOgK,EAExd,SAASwoC,EAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAE3M,SAASynB,EAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASyzC,EAAkBzoC,EAAQ6gB,GAAS,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,IAAK,CAAE,IAAI8P,EAAamT,EAAMjjB,GAAI8P,EAAWL,WAAaK,EAAWL,aAAc,EAAOK,EAAW5X,cAAe,EAAU,UAAW4X,IAAYA,EAAWJ,UAAW,GAAMxW,OAAOtB,eAAewK,EAAQ0N,EAAW1X,IAAK0X,IAE7S,SAASg7B,EAAazxC,EAAa0xC,EAAYC,GAAmJ,OAAhID,GAAYF,EAAkBxxC,EAAYrB,UAAW+yC,GAAiBC,GAAaH,EAAkBxxC,EAAa2xC,GAAqB3xC,EAEzM,SAAS4xC,EAA2BxlC,EAAMtP,GAAQ,OAAIA,GAA2B,WAAlBkvC,EAAQlvC,IAAsC,oBAATA,EAA8C+0C,EAAuBzlC,GAAtCtP,EAEnI,SAAS+0C,EAAuBzlC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI0lC,eAAe,6DAAgE,OAAO1lC,EAE/J,SAAS2lC,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIl0C,UAAU,sDAAyDi0C,EAASrzC,UAAYkB,OAAOvB,OAAO2zC,GAAcA,EAAWtzC,UAAW,CAAEsI,YAAa,CAAEnI,MAAOkzC,EAAU37B,UAAU,EAAMxX,cAAc,KAAeozC,GAAYC,EAAgBF,EAAUC,GAEnX,SAASE,EAAiBC,GAAS,IAAIC,EAAwB,oBAARhF,IAAqB,IAAIA,SAAQzuC,EAA8nB,OAAnnBuzC,EAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAAmBE,EAAkBF,GAAQ,OAAOA,EAAO,GAAqB,oBAAVA,EAAwB,MAAM,IAAIr0C,UAAU,sDAAyD,GAAsB,qBAAXs0C,EAAwB,CAAE,GAAIA,EAAO1/B,IAAIy/B,GAAQ,OAAOC,EAAOlvC,IAAIivC,GAAQC,EAAO9tC,IAAI6tC,EAAO1xB,GAAY,SAASA,IAAY,OAAO6xB,EAAWH,EAAOxqC,UAAW4qC,EAAgB/1C,MAAMwK,aAAgK,OAAhJyZ,EAAQ/hB,UAAYkB,OAAOvB,OAAO8zC,EAAMzzC,UAAW,CAAEsI,YAAa,CAAEnI,MAAO4hB,EAAStK,YAAY,EAAOC,UAAU,EAAMxX,cAAc,KAAkBqzC,EAAgBxxB,EAAS0xB,IAAkBD,EAAiBC,GAE9uB,SAASK,IAA6B,GAAuB,qBAAZj1B,UAA4BA,QAAQK,UAAW,OAAO,EAAO,GAAIL,QAAQK,UAAU1B,KAAM,OAAO,EAAO,GAAqB,oBAAVu2B,MAAsB,OAAO,EAAM,IAAiF,OAA3EC,KAAKh0C,UAAUmR,SAAShT,KAAK0gB,QAAQK,UAAU80B,KAAM,IAAI,iBAAyB,EAAQ,MAAOvW,GAAK,OAAO,GAEzT,SAASmW,EAAWK,EAAQ70B,EAAMq0B,GAAoV,OAAzSG,EAA9BE,IAA2Cj1B,QAAQK,UAAiC,SAAoB+0B,EAAQ70B,EAAMq0B,GAAS,IAAI7yB,EAAI,CAAC,MAAOA,EAAE9T,KAAKoB,MAAM0S,EAAGxB,GAAO,IAAI/d,EAAckD,SAAS6G,KAAK8C,MAAM+lC,EAAQrzB,GAAQ9K,EAAW,IAAIzU,EAAsE,OAAnDoyC,GAAOF,EAAgBz9B,EAAU29B,EAAMzzC,WAAmB8V,GAAsB89B,EAAW1lC,MAAM,KAAMjF,WAEpZ,SAAS0qC,EAAkBljC,GAAM,OAAgE,IAAzDlM,SAAS4M,SAAShT,KAAKsS,GAAI9D,QAAQ,iBAE3E,SAAS4mC,EAAgBW,EAAGnM,GAA+G,OAA1GwL,EAAkBryC,OAAOY,gBAAkB,SAAyBoyC,EAAGnM,GAAsB,OAAjBmM,EAAE5nB,UAAYyb,EAAUmM,GAAaX,EAAgBW,EAAGnM,GAErK,SAAS8L,EAAgBK,GAAwJ,OAAnJL,EAAkB3yC,OAAOY,eAAiBZ,OAAOW,eAAiB,SAAyBqyC,GAAK,OAAOA,EAAE5nB,WAAaprB,OAAOW,eAAeqyC,IAAcL,EAAgBK,GAExM,SAAS7G,EAAQvnB,GAAwT,OAAtOunB,EAArD,oBAAX3zB,QAAoD,WAA3B,EAAOA,OAAO1N,UAAmC,SAAiB8Z,GAAO,OAAO,EAAOA,IAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXpM,QAAyBoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,SAAhG,EAAkH8lB,IAAiBunB,EAAQvnB,G,+KAExV,IAAI4nB,EAAWC,EAAQ,MACnBU,EAAUX,EAASW,QAEnBD,EAAYT,EAAQ,MACpBI,EAAuBK,EAAUP,MAAME,qBAG3C,SAASoG,EAAS71B,EAAK81B,EAAQC,GAK7B,YAJiBp0C,IAAbo0C,GAA0BA,EAAW/1B,EAAI7d,UAC3C4zC,EAAW/1B,EAAI7d,QAGV6d,EAAIg2B,UAAUD,EAAWD,EAAO3zC,OAAQ4zC,KAAcD,EAI/D,SAASvX,EAAOve,EAAK/W,GAEnB,GADAA,EAAQ2C,KAAKuF,MAAMlI,GACD,GAAd+W,EAAI7d,QAAwB,GAAT8G,EAAY,MAAO,GAC1C,IAAIgtC,EAAWj2B,EAAI7d,OAAS8G,EAC5BA,EAAQ2C,KAAKuF,MAAMvF,KAAK+W,IAAI1Z,GAAS2C,KAAK+W,IAAI,IAE9C,MAAO1Z,EACL+W,GAAOA,EACP/W,IAIF,OADA+W,GAAOA,EAAIg2B,UAAU,EAAGC,EAAWj2B,EAAI7d,QAChC6d,EAGT,IAAIk2B,EAAO,GACPC,EAAQ,GACRC,EAAM,GACNC,EAAQ,GACRC,EAAoB,CACtBxE,gBAAiB,6CACjBC,YAAa,wCACbwE,kBAAmB,yDACnB3E,UAAW,4CACXF,MAAO,uCACPD,mBAAoB,sDACpBO,eAAgB,+CAChBwE,qBAAsB,6DACtB3E,aAAc,qDACdF,SAAU,8CACV8E,aAAc,6CAIZC,EAAkB,GAEtB,SAASC,EAAUz+B,GACjB,IAAIpO,EAAOlH,OAAOkH,KAAKoO,GACnBpM,EAASlJ,OAAOvB,OAAOuB,OAAOW,eAAe2U,IAOjD,OANApO,EAAK4C,SAAQ,SAAU5K,GACrBgK,EAAOhK,GAAOoW,EAAOpW,MAEvBc,OAAOtB,eAAewK,EAAQ,UAAW,CACvCjK,MAAOqW,EAAOqgB,UAETzsB,EAGT,SAAS8qC,EAAazoB,GAGpB,OAAO4hB,EAAQ5hB,EAAK,CAClB0oB,SAAS,EACTC,eAAe,EACfC,MAAO,IACPC,eAAgB1zB,IAEhB2zB,YAAY,EAMZC,YAAa5zB,IAEb6zB,WAAW,EACXC,QAAQ,EAERC,SAAS,IAIb,SAASC,EAAc3G,EAAQpD,EAAUqD,GACvC,IAAI2G,EAAQ,GACRrQ,EAAM,GACNsQ,EAAU,EACVrrC,EAAM,GACNsrC,GAAU,EACVC,EAAkBd,EAAajG,GAC/BgH,EAAcD,EAAgBl5B,MAAM,MACpCo5B,EAAgBhB,EAAarJ,GAAU/uB,MAAM,MAC7C9U,EAAI,EACJmuC,EAAY,GAShB,GANiB,gBAAbjH,GAAkD,WAApB7B,EAAQ4B,IAA8C,WAAtB5B,EAAQxB,IAAqC,OAAXoD,GAAgC,OAAbpD,IACrHqD,EAAW,qBAKc,IAAvB+G,EAAYx1C,QAAyC,IAAzBy1C,EAAcz1C,QAAgBw1C,EAAY,KAAOC,EAAc,GAAI,CACjG,IAAIE,EAAcH,EAAY,GAAGx1C,OAASy1C,EAAc,GAAGz1C,OAI3D,GAAI21C,GAAepB,GACjB,IAAyB,WAApB3H,EAAQ4B,IAAmC,OAAXA,KAA2C,WAAtB5B,EAAQxB,IAAuC,OAAbA,KAAkC,IAAXoD,GAA6B,IAAbpD,GAEjI,MAAO,GAAG9sC,OAAO61C,EAAkB1F,GAAW,QAAU,GAAGnwC,OAAOk3C,EAAY,GAAI,SAASl3C,OAAOm3C,EAAc,GAAI,WAEjH,GAAiB,sBAAbhH,EAAkC,CAI3C,IAAImH,EAAY55B,EAAQ65B,QAAU75B,EAAQ65B,OAAOC,MAAQ95B,EAAQ65B,OAAOE,QAAU,GAElF,GAAIJ,EAAcC,EAAW,CAC3B,MAAOJ,EAAY,GAAGjuC,KAAOkuC,EAAc,GAAGluC,GAC5CA,IAIEA,EAAI,IAGNmuC,EAAY,OAAOp3C,OAAO89B,EAAO,IAAK70B,GAAI,KAC1CA,EAAI,KAQZ,IAAI4Y,EAAIq1B,EAAYA,EAAYx1C,OAAS,GACrCogB,EAAIq1B,EAAcA,EAAcz1C,OAAS,GAE7C,MAAOmgB,IAAMC,EAAG,CASd,GARI7Y,IAAM,EACRyC,EAAM,OAAO1L,OAAO6hB,GAAG7hB,OAAO0L,GAE9BorC,EAAQj1B,EAGVq1B,EAAYQ,MACZP,EAAcO,MACa,IAAvBR,EAAYx1C,QAAyC,IAAzBy1C,EAAcz1C,OAAc,MAC5DmgB,EAAIq1B,EAAYA,EAAYx1C,OAAS,GACrCogB,EAAIq1B,EAAcA,EAAcz1C,OAAS,GAG3C,IAAIi2C,EAAWxsC,KAAKkF,IAAI6mC,EAAYx1C,OAAQy1C,EAAcz1C,QAG1D,GAAiB,IAAbi2C,EAAgB,CAElB,IAAIC,EAAeX,EAAgBl5B,MAAM,MAIzC,GAAI65B,EAAal2C,OAAS,GAAI,CAC5Bk2C,EAAa,IAAM,GAAG53C,OAAOy1C,EAAM,OAAOz1C,OAAO41C,GAEjD,MAAOgC,EAAal2C,OAAS,GAC3Bk2C,EAAaF,MAIjB,MAAO,GAAG13C,OAAO61C,EAAkBG,aAAc,QAAQh2C,OAAO43C,EAAa33B,KAAK,MAAO,MAGvFhX,EAAI,IACNyC,EAAM,KAAK1L,OAAOy1C,EAAM,OAAOz1C,OAAO41C,GAAO51C,OAAO0L,GACpDsrC,GAAU,GAGE,KAAVF,IACFprC,EAAM,OAAO1L,OAAO82C,GAAO92C,OAAO0L,GAClCorC,EAAQ,IAGV,IAAIe,EAAe,EACfjG,EAAMiE,EAAkB1F,GAAY,KAAKnwC,OAAO01C,EAAO,YAAY11C,OAAO41C,EAAO,KAAK51C,OAAO21C,EAAK,cAAc31C,OAAO41C,GACvHkC,EAAa,IAAI93C,OAAOy1C,EAAM,OAAOz1C,OAAO41C,EAAO,kBAEvD,IAAK3sC,EAAI,EAAGA,EAAI0uC,EAAU1uC,IAAK,CAE7B,IAAI8uC,EAAM9uC,EAAI8tC,EAEd,GAAIG,EAAYx1C,OAASuH,EAAI,EAIvB8uC,EAAM,GAAK9uC,EAAI,IACb8uC,EAAM,GACRtR,GAAO,KAAKzmC,OAAOy1C,EAAM,OAAOz1C,OAAO41C,GACvCoB,GAAU,GACDe,EAAM,IACftR,GAAO,OAAOzmC,OAAOm3C,EAAcluC,EAAI,IACvC4uC,KAGFpR,GAAO,OAAOzmC,OAAOm3C,EAAcluC,EAAI,IACvC4uC,KAIFd,EAAU9tC,EAEV6tC,GAAS,KAAK92C,OAAO21C,EAAK,KAAK31C,OAAO41C,EAAO,KAAK51C,OAAOm3C,EAAcluC,IACvE4uC,SACK,GAAIV,EAAcz1C,OAASuH,EAAI,EAIhC8uC,EAAM,GAAK9uC,EAAI,IACb8uC,EAAM,GACRtR,GAAO,KAAKzmC,OAAOy1C,EAAM,OAAOz1C,OAAO41C,GACvCoB,GAAU,GACDe,EAAM,IACftR,GAAO,OAAOzmC,OAAOk3C,EAAYjuC,EAAI,IACrC4uC,KAGFpR,GAAO,OAAOzmC,OAAOk3C,EAAYjuC,EAAI,IACrC4uC,KAIFd,EAAU9tC,EAEVw9B,GAAO,KAAKzmC,OAAO01C,EAAO,KAAK11C,OAAO41C,EAAO,KAAK51C,OAAOk3C,EAAYjuC,IACrE4uC,QACK,CACL,IAAIG,EAAeb,EAAcluC,GAC7BgvC,EAAaf,EAAYjuC,GAIzBivC,EAAiBD,IAAeD,KAAkB5C,EAAS6C,EAAY,MAAQA,EAAWxnC,MAAM,GAAI,KAAOunC,GAU3GE,GAAkB9C,EAAS4C,EAAc,MAAQA,EAAavnC,MAAM,GAAI,KAAOwnC,IACjFC,GAAiB,EACjBD,GAAc,KAGZC,GAIEH,EAAM,GAAK9uC,EAAI,IACb8uC,EAAM,GACRtR,GAAO,KAAKzmC,OAAOy1C,EAAM,OAAOz1C,OAAO41C,GACvCoB,GAAU,GACDe,EAAM,IACftR,GAAO,OAAOzmC,OAAOk3C,EAAYjuC,EAAI,IACrC4uC,KAGFpR,GAAO,OAAOzmC,OAAOk3C,EAAYjuC,EAAI,IACrC4uC,KAIFd,EAAU9tC,EAGVw9B,GAAO,KAAKzmC,OAAO01C,EAAO,KAAK11C,OAAO41C,EAAO,KAAK51C,OAAOi4C,GACzDnB,GAAS,KAAK92C,OAAO21C,EAAK,KAAK31C,OAAO41C,EAAO,KAAK51C,OAAOg4C,GACzDH,GAAgB,IAIhBpR,GAAOqQ,EACPA,EAAQ,GAGI,IAARiB,GAAmB,IAAN9uC,IACfw9B,GAAO,OAAOzmC,OAAOi4C,GACrBJ,MAMN,GAAIA,EAAe,IAAM5uC,EAAI0uC,EAAW,EACtC,MAAO,GAAG33C,OAAO4xC,GAAK5xC,OAAO83C,EAAY,MAAM93C,OAAOymC,EAAK,MAAMzmC,OAAOy1C,EAAM,OAAOz1C,OAAO41C,GAAO51C,OAAO82C,EAAO,MAAQ,GAAG92C,OAAOy1C,EAAM,OAAOz1C,OAAO41C,GAI3J,MAAO,GAAG51C,OAAO4xC,GAAK5xC,OAAOg3C,EAAUc,EAAa,GAAI,MAAM93C,OAAOymC,GAAKzmC,OAAO82C,GAAO92C,OAAO0L,GAAK1L,OAAOo3C,GAG7G,IAAIhI,EAEJ,SAAU+I,GAGR,SAAS/I,EAAe1wC,GACtB,IAAI+yC,EAIJ,GAFAjD,EAAgBzvC,KAAMqwC,GAEG,WAArBd,EAAQ5vC,IAAqC,OAAZA,EACnC,MAAM,IAAIswC,EAAqB,UAAW,SAAUtwC,GAGtD,IAAIo5B,EAAUp5B,EAAQo5B,QAClBqY,EAAWzxC,EAAQyxC,SACnBC,EAAe1xC,EAAQ0xC,aACvBF,EAASxxC,EAAQwxC,OACjBpD,EAAWpuC,EAAQouC,SACnBtE,EAAQ11B,MAAMslC,gBAGlB,GAFAtlC,MAAMslC,gBAAkB,EAET,MAAXtgB,EACF2Z,EAAQyC,EAA2Bn1C,KAAM+1C,EAAgB1F,GAAgBhwC,KAAKL,KAAM2B,OAAOo3B,UA0B3F,GAxBIpa,EAAQ65B,QAAU75B,EAAQ65B,OAAOC,QAG/B95B,EAAQ65B,QAAU75B,EAAQ65B,OAAOc,eAAoD,IAAnC36B,EAAQ65B,OAAOc,iBACnE5C,EAAO,QACPC,EAAQ,QACRE,EAAQ,QACRD,EAAM,UAENF,EAAO,GACPC,EAAQ,GACRE,EAAQ,GACRD,EAAM,KAOc,WAApBrH,EAAQ4B,IAAmC,OAAXA,GAAyC,WAAtB5B,EAAQxB,IAAuC,OAAbA,GAAqB,UAAWoD,GAAUA,aAAkBp9B,OAAS,UAAWg6B,GAAYA,aAAoBh6B,QACvMo9B,EAASgG,EAAUhG,GACnBpD,EAAWoJ,EAAUpJ,IAGN,oBAAbqD,GAA+C,gBAAbA,EACpCsB,EAAQyC,EAA2Bn1C,KAAM+1C,EAAgB1F,GAAgBhwC,KAAKL,KAAM83C,EAAc3G,EAAQpD,EAAUqD,UAC/G,GAAiB,uBAAbA,GAAkD,mBAAbA,EAA+B,CAG7E,IAAImI,EAAOzC,EAAkB1F,GACzB1J,EAAM0P,EAAajG,GAAQnyB,MAAM,MAQrC,GANiB,mBAAboyB,GAAqD,WAApB7B,EAAQ4B,IAAmC,OAAXA,IACnEoI,EAAOzC,EAAkBE,sBAKvBtP,EAAI/kC,OAAS,GAAI,CACnB+kC,EAAI,IAAM,GAAGzmC,OAAOy1C,EAAM,OAAOz1C,OAAO41C,GAExC,MAAOnP,EAAI/kC,OAAS,GAClB+kC,EAAIiR,MAMNjG,EADiB,IAAfhL,EAAI/kC,OACEwyC,EAA2Bn1C,KAAM+1C,EAAgB1F,GAAgBhwC,KAAKL,KAAM,GAAGiB,OAAOs4C,EAAM,KAAKt4C,OAAOymC,EAAI,MAE5GyN,EAA2Bn1C,KAAM+1C,EAAgB1F,GAAgBhwC,KAAKL,KAAM,GAAGiB,OAAOs4C,EAAM,QAAQt4C,OAAOymC,EAAIxmB,KAAK,MAAO,YAEhI,CACL,IAAIs4B,EAAOpC,EAAajG,GAEpB4G,EAAQ,GACR0B,EAAiB3C,EAAkB1F,GAEtB,iBAAbA,GAA4C,aAAbA,GACjCoI,EAAO,GAAGv4C,OAAO61C,EAAkB1F,GAAW,QAAQnwC,OAAOu4C,GAEzDA,EAAK72C,OAAS,OAChB62C,EAAO,GAAGv4C,OAAOu4C,EAAK9nC,MAAM,EAAG,MAAO,UAGxCqmC,EAAQ,GAAG92C,OAAOm2C,EAAarJ,IAE3ByL,EAAK72C,OAAS,MAChB62C,EAAO,GAAGv4C,OAAOu4C,EAAK9nC,MAAM,EAAG,KAAM,QAGnCqmC,EAAMp1C,OAAS,MACjBo1C,EAAQ,GAAG92C,OAAO82C,EAAMrmC,MAAM,EAAG,KAAM,QAGxB,cAAb0/B,GAAyC,UAAbA,EAC9BoI,EAAO,GAAGv4C,OAAOw4C,EAAgB,QAAQx4C,OAAOu4C,EAAM,wBAEtDzB,EAAQ,IAAI92C,OAAOmwC,EAAU,KAAKnwC,OAAO82C,IAI7CrF,EAAQyC,EAA2Bn1C,KAAM+1C,EAAgB1F,GAAgBhwC,KAAKL,KAAM,GAAGiB,OAAOu4C,GAAMv4C,OAAO82C,KA0B/G,OAtBAhkC,MAAMslC,gBAAkB5P,EACxBiJ,EAAMd,kBAAoB7Y,EAC1B31B,OAAOtB,eAAeszC,EAAuB1C,GAAQ,OAAQ,CAC3DrwC,MAAO,iCACPsX,YAAY,EACZC,UAAU,EACVxX,cAAc,IAEhBswC,EAAM5W,KAAO,gBACb4W,EAAMvB,OAASA,EACfuB,EAAM3E,SAAWA,EACjB2E,EAAMtB,SAAWA,EAEbr9B,MAAM2lC,mBAER3lC,MAAM2lC,kBAAkBtE,EAAuB1C,GAAQrB,GAIzDqB,EAAMv+B,MAENu+B,EAAMtoC,KAAO,iBACN+qC,EAA2BzC,GAsBpC,OAxJA4C,EAAUjF,EAAgB+I,GAqI1BpE,EAAa3E,EAAgB,CAAC,CAC5B/tC,IAAK,WACLD,MAAO,WACL,MAAO,GAAGpB,OAAOjB,KAAKoK,KAAM,MAAMnJ,OAAOjB,KAAK87B,KAAM,OAAO76B,OAAOjB,KAAK+4B,WAExE,CACDz2B,IAAKiuC,EAAQoJ,OACbt3C,MAAO,SAAeu3C,EAAcC,GAKlC,OAAOtJ,EAAQvwC,KAAM60C,EAAc,GAAIgF,EAAK,CAC1CvC,eAAe,EACfC,MAAO,SAKNlH,EAzJT,CA0JEqF,EAAiB3hC,QAEnBxS,EAAOL,QAAUmvC,G,2DCtejB,SAASd,EAAQvnB,GAAwT,OAAtOunB,EAArD,oBAAX3zB,QAAoD,WAA3B,EAAOA,OAAO1N,UAAmC,SAAiB8Z,GAAO,OAAO,EAAOA,IAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXpM,QAAyBoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,SAAhG,EAAkH8lB,IAAiBunB,EAAQvnB,GAExV,SAASynB,EAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAAS6zC,EAA2BxlC,EAAMtP,GAAQ,OAAIA,GAA2B,WAAlBkvC,EAAQlvC,IAAsC,oBAATA,EAA8C+0C,EAAuBzlC,GAAtCtP,EAEnI,SAAS+0C,EAAuBzlC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI0lC,eAAe,6DAAgE,OAAO1lC,EAE/J,SAASomC,EAAgBK,GAAwJ,OAAnJL,EAAkB3yC,OAAOY,eAAiBZ,OAAOW,eAAiB,SAAyBqyC,GAAK,OAAOA,EAAE5nB,WAAaprB,OAAOW,eAAeqyC,IAAcL,EAAgBK,GAExM,SAASd,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIl0C,UAAU,sDAAyDi0C,EAASrzC,UAAYkB,OAAOvB,OAAO2zC,GAAcA,EAAWtzC,UAAW,CAAEsI,YAAa,CAAEnI,MAAOkzC,EAAU37B,UAAU,EAAMxX,cAAc,KAAeozC,GAAYC,EAAgBF,EAAUC,GAEnX,SAASC,EAAgBW,EAAGnM,GAA+G,OAA1GwL,EAAkBryC,OAAOY,gBAAkB,SAAyBoyC,EAAGnM,GAAsB,OAAjBmM,EAAE5nB,UAAYyb,EAAUmM,GAAaX,EAAgBW,EAAGnM,G,uHAErK,IAEI+G,EACA8I,EAHA/J,EAAQ,GAKZ,SAASgK,EAAgBje,EAAM/C,EAASihB,GAKtC,SAASC,EAAWC,EAAMz5B,EAAM05B,GAC9B,MAAuB,kBAAZphB,EACFA,EAEAA,EAAQmhB,EAAMz5B,EAAM05B,GAR1BH,IACHA,EAAOjmC,OAWT,IAAIqmC,EAEJ,SAAUC,GAGR,SAASD,EAAUF,EAAMz5B,EAAM05B,GAC7B,IAAIzH,EAMJ,OAJAjD,EAAgBzvC,KAAMo6C,GAEtB1H,EAAQyC,EAA2Bn1C,KAAM+1C,EAAgBqE,GAAW/5C,KAAKL,KAAMi6C,EAAWC,EAAMz5B,EAAM05B,KACtGzH,EAAM5W,KAAOA,EACN4W,EAGT,OAZA4C,EAAU8E,EAAWC,GAYdD,EAbT,CAcEJ,GAEFjK,EAAMjU,GAAQse,EAIhB,SAASE,EAAMvM,EAAUwM,GACvB,GAAIt4C,MAAMqQ,QAAQy7B,GAAW,CAC3B,IAAIvhC,EAAMuhC,EAASprC,OAKnB,OAJAorC,EAAWA,EAASl+B,KAAI,SAAU3F,GAChC,OAAOvI,OAAOuI,MAGZsC,EAAM,EACD,UAAUvL,OAAOs5C,EAAO,KAAKt5C,OAAO8sC,EAASr8B,MAAM,EAAGlF,EAAM,GAAG0U,KAAK,MAAO,SAAW6sB,EAASvhC,EAAM,GAC3F,IAARA,EACF,UAAUvL,OAAOs5C,EAAO,KAAKt5C,OAAO8sC,EAAS,GAAI,QAAQ9sC,OAAO8sC,EAAS,IAEzE,MAAM9sC,OAAOs5C,EAAO,KAAKt5C,OAAO8sC,EAAS,IAGlD,MAAO,MAAM9sC,OAAOs5C,EAAO,KAAKt5C,OAAOU,OAAOosC,IAKlD,SAASyM,EAAWh6B,EAAK81B,EAAQ5jB,GAC/B,OAAOlS,EAAIi6B,QAAQ/nB,GAAOA,EAAM,EAAI,GAAKA,EAAK4jB,EAAO3zC,UAAY2zC,EAInE,SAASD,EAAS71B,EAAK81B,EAAQC,GAK7B,YAJiBp0C,IAAbo0C,GAA0BA,EAAW/1B,EAAI7d,UAC3C4zC,EAAW/1B,EAAI7d,QAGV6d,EAAIg2B,UAAUD,EAAWD,EAAO3zC,OAAQ4zC,KAAcD,EAI/D,SAAS1nC,EAAS4R,EAAK81B,EAAQvsC,GAK7B,MAJqB,kBAAVA,IACTA,EAAQ,KAGNA,EAAQusC,EAAO3zC,OAAS6d,EAAI7d,UAGS,IAAhC6d,EAAI3R,QAAQynC,EAAQvsC,GAI/BgwC,EAAgB,yBAA0B,qCAAsCz4C,WAChFy4C,EAAgB,wBAAwB,SAAU3vC,EAAM2jC,EAAUoD,GAIhE,IAAIuJ,EASA7H,EAEJ,QAde1wC,IAAX6uC,IAAsBA,EAASnB,EAAQ,OAC3CmB,EAAuB,kBAAT5mC,EAAmB,2BAIT,kBAAb2jC,GAAyByM,EAAWzM,EAAU,SACvD2M,EAAa,cACb3M,EAAWA,EAAS/5B,QAAQ,QAAS,KAErC0mC,EAAa,UAKXrE,EAASjsC,EAAM,aAEjByoC,EAAM,OAAO5xC,OAAOmJ,EAAM,KAAKnJ,OAAOy5C,EAAY,KAAKz5C,OAAOq5C,EAAMvM,EAAU,aACzE,CACL,IAAI34B,EAAOxG,EAASxE,EAAM,KAAO,WAAa,WAC9CyoC,EAAM,QAAS5xC,OAAOmJ,EAAM,MAAOnJ,OAAOmU,EAAM,KAAKnU,OAAOy5C,EAAY,KAAKz5C,OAAOq5C,EAAMvM,EAAU,SAKtG,OADA8E,GAAO,mBAAmB5xC,OAAOsuC,EAAQ4B,IAClC0B,IACNvxC,WACHy4C,EAAgB,yBAAyB,SAAU3vC,EAAM/H,GACvD,IAAI6gC,EAAS/3B,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,kBACpEhJ,IAAT23C,IAAoBA,EAAOjK,EAAQ,OACvC,IAAI8K,EAAYb,EAAKvJ,QAAQluC,GAM7B,OAJIs4C,EAAUh4C,OAAS,MACrBg4C,EAAY,GAAG15C,OAAO05C,EAAUjpC,MAAM,EAAG,KAAM,QAG1C,iBAAiBzQ,OAAOmJ,EAAM,MAAMnJ,OAAOiiC,EAAQ,eAAejiC,OAAO05C,KAC/Er5C,UAAWmH,YACdsxC,EAAgB,4BAA4B,SAAUtrB,EAAOrkB,EAAM/H,GACjE,IAAI+S,EAQJ,OALEA,EADE/S,GAASA,EAAMmI,aAAenI,EAAMmI,YAAYJ,KAC3C,eAAenJ,OAAOoB,EAAMmI,YAAYJ,MAExC,QAAQnJ,OAAOsuC,EAAQltC,IAGzB,YAAYpB,OAAOwtB,EAAO,8BAA+BxtB,OAAOmJ,EAAM,KAAQ,qBAAqBnJ,OAAOmU,EAAM,OACtH9T,WACHy4C,EAAgB,oBAAoB,WAClC,IAAK,IAAIhI,EAAO5mC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8vC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1wB,EAAK0wB,GAAQ7mC,UAAU6mC,QAGV7vC,IAAX6uC,IAAsBA,EAASnB,EAAQ,OAC3CmB,EAAO1vB,EAAK3e,OAAS,EAAG,0CACxB,IAAIkwC,EAAM,OACNrmC,EAAM8U,EAAK3e,OAKf,OAJA2e,EAAOA,EAAKzR,KAAI,SAAUiT,GACxB,MAAO,IAAK7hB,OAAO6hB,EAAG,QAGhBtW,GACN,KAAK,EACHqmC,GAAO,GAAG5xC,OAAOqgB,EAAK,GAAI,aAC1B,MAEF,KAAK,EACHuxB,GAAO,GAAG5xC,OAAOqgB,EAAK,GAAI,SAASrgB,OAAOqgB,EAAK,GAAI,cACnD,MAEF,QACEuxB,GAAOvxB,EAAK5P,MAAM,EAAGlF,EAAM,GAAG0U,KAAK,MACnC2xB,GAAO,SAAS5xC,OAAOqgB,EAAK9U,EAAM,GAAI,cACtC,MAGJ,MAAO,GAAGvL,OAAO4xC,EAAK,wBACrBvxC,WACHC,EAAOL,QAAQ6uC,MAAQA,G,2DC9LvB,SAAS6K,EAAeC,EAAK3wC,GAAK,OAAO4wC,EAAgBD,IAAQE,EAAsBF,EAAK3wC,IAAM8wC,IAElG,SAASA,IAAqB,MAAM,IAAI15C,UAAU,wDAElD,SAASy5C,EAAsBF,EAAK3wC,GAAK,IAAI+wC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKj5C,EAAW,IAAM,IAAK,IAAiCk5C,EAA7BC,EAAKT,EAAIj/B,OAAO1N,cAAmBgtC,GAAMG,EAAKC,EAAGntC,QAAQE,MAAO6sC,GAAK,EAA6B,GAArBD,EAAKjsC,KAAKqsC,EAAGh5C,OAAY6H,GAAK+wC,EAAKt4C,SAAWuH,EAAG,MAAW,MAAOynC,GAAOwJ,GAAK,EAAMC,EAAKzJ,EAAtL,QAAuM,IAAWuJ,GAAsB,MAAhBI,EAAG,WAAmBA,EAAG,YAA1C,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOH,EAElZ,SAASH,EAAgBD,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOA,EAE/D,SAAStL,EAAQvnB,GAAwT,OAAtOunB,EAArD,oBAAX3zB,QAAoD,WAA3B,EAAOA,OAAO1N,UAAmC,SAAiB8Z,GAAO,OAAO,EAAOA,IAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXpM,QAAyBoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,SAAhG,EAAkH8lB,IAAiBunB,EAAQvnB,G,qYAExV,IAAIuzB,OAAqCp5C,IAAf,KAAKie,MAE3Bo7B,EAAe,SAAsB1zC,GACvC,IAAI+I,EAAQ,GAIZ,OAHA/I,EAAIoF,SAAQ,SAAU7K,GACpB,OAAOwO,EAAM7B,KAAK3M,MAEbwO,GAGL4qC,EAAe,SAAsB5rC,GACvC,IAAIgB,EAAQ,GAIZ,OAHAhB,EAAI3C,SAAQ,SAAU7K,EAAOC,GAC3B,OAAOuO,EAAM7B,KAAK,CAAC1M,EAAKD,OAEnBwO,GAGL8/B,EAAWvtC,OAAO2uB,GAAK3uB,OAAO2uB,GAAK8d,EAAQ,KAC3C6L,EAA8Bt4C,OAAOgnB,sBAAwBhnB,OAAOgnB,sBAAwB,WAC9F,MAAO,IAELuxB,EAAcj1B,OAAOmY,MAAQnY,OAAOmY,MAAQgR,EAAQ,IAExD,SAASlpC,EAAYiS,GACnB,OAAOA,EAAEvY,KAAKiN,KAAKsL,GAGrB,IAAIoI,EAAiBra,EAAYvD,OAAOlB,UAAU8e,gBAC9CgD,EAAuBrd,EAAYvD,OAAOlB,UAAU8hB,sBACpD43B,EAAiBj1C,EAAYvD,OAAOlB,UAAUmR,UAE9Cm9B,EAAiBX,EAAAA,MAAAA,MACjBgM,EAAmBrL,EAAeqL,iBAClCC,EAAoBtL,EAAesL,kBACnCC,EAASvL,EAAeuL,OACxBC,EAAQxL,EAAewL,MACvBl1B,EAAW0pB,EAAe1pB,SAC1Bm1B,EAAQzL,EAAeyL,MACvBC,EAAgB1L,EAAe0L,cAC/BC,EAAmB3L,EAAe2L,iBAClCC,EAAiB5L,EAAe4L,eAChCC,EAAiB7L,EAAe6L,eAChCC,EAAkB9L,EAAe8L,gBACjCC,EAAiB/L,EAAe+L,eAChCC,EAAiBhM,EAAegM,eAChCC,EAAiBjM,EAAeiM,eAChCC,EAAiBlM,EAAekM,eAEpC,SAASC,EAAWr6C,GAClB,GAAmB,IAAfA,EAAIK,QAAgBL,EAAIK,OAAS,GAAI,OAAO,EAEhD,IAAK,IAAIuH,EAAI,EAAGA,EAAI5H,EAAIK,OAAQuH,IAAK,CACnC,IAAI4xB,EAAOx5B,EAAIkwB,WAAWtoB,GAC1B,GAAI4xB,EAAO,IAAMA,EAAO,GAAI,OAAO,EAIrC,OAAsB,KAAfx5B,EAAIK,QAAiBL,GAAO8J,KAAK8W,IAAI,EAAG,IAGjD,SAAS05B,EAAyBv6C,GAChC,OAAOe,OAAOkH,KAAKjI,GAAOyN,OAAO6sC,GAAY17C,OAAOy6C,EAA4Br5C,GAAOyN,OAAO1M,OAAOlB,UAAU8hB,qBAAqB1W,KAAKjL;;;;;;GAY3I,SAASw6C,EAAQ/5B,EAAGC,GAClB,GAAID,IAAMC,EACR,OAAO,EAMT,IAHA,IAAIwF,EAAIzF,EAAEngB,OACNqvB,EAAIjP,EAAEpgB,OAEDuH,EAAI,EAAGsC,EAAMJ,KAAKD,IAAIoc,EAAGyJ,GAAI9nB,EAAIsC,IAAOtC,EAC/C,GAAI4Y,EAAE5Y,KAAO6Y,EAAE7Y,GAAI,CACjBqe,EAAIzF,EAAE5Y,GACN8nB,EAAIjP,EAAE7Y,GACN,MAIJ,OAAIqe,EAAIyJ,GACE,EAGNA,EAAIzJ,EACC,EAGF,EAGT,IAAIu0B,OAAkB36C,EAClB46C,GAAU,EACVC,GAAS,EACTC,EAAc,EACdC,EAAW,EACXC,EAAS,EACTC,EAAS,EAEb,SAASC,EAAkBv6B,EAAGC,GAC5B,OAAOw4B,EAAsBz4B,EAAEpK,SAAWqK,EAAErK,QAAUoK,EAAE1C,QAAU2C,EAAE3C,MAAQP,OAAO3d,UAAUmR,SAAShT,KAAKyiB,KAAOjD,OAAO3d,UAAUmR,SAAShT,KAAK0iB,GAGnJ,SAASu6B,EAAsBx6B,EAAGC,GAChC,GAAID,EAAEjZ,aAAekZ,EAAElZ,WACrB,OAAO,EAGT,IAAK,IAAImB,EAAS,EAAGA,EAAS8X,EAAEjZ,WAAYmB,IAC1C,GAAI8X,EAAE9X,KAAY+X,EAAE/X,GAClB,OAAO,EAIX,OAAO,EAGT,SAASuyC,EAAsBz6B,EAAGC,GAChC,OAAID,EAAEjZ,aAAekZ,EAAElZ,YAIwG,IAAxHgzC,EAAQ,IAAI73C,WAAW8d,EAAE3f,OAAQ2f,EAAE9Y,WAAY8Y,EAAEjZ,YAAa,IAAI7E,WAAW+d,EAAE5f,OAAQ4f,EAAE/Y,WAAY+Y,EAAElZ,aAGhH,SAAS2zC,EAAqBC,EAAMC,GAClC,OAAOD,EAAK5zC,aAAe6zC,EAAK7zC,YAAsE,IAAxDgzC,EAAQ,IAAI73C,WAAWy4C,GAAO,IAAIz4C,WAAW04C,IAG7F,SAASC,EAAsBC,EAAMC,GACnC,OAAIzB,EAAewB,GACVxB,EAAeyB,IAASlN,EAASjqB,OAAOxkB,UAAU0sB,QAAQvuB,KAAKu9C,GAAOl3B,OAAOxkB,UAAU0sB,QAAQvuB,KAAKw9C,IAGzGxB,EAAeuB,GACVvB,EAAewB,IAASl8C,OAAOO,UAAU0sB,QAAQvuB,KAAKu9C,KAAUj8C,OAAOO,UAAU0sB,QAAQvuB,KAAKw9C,GAGnGvB,EAAgBsB,GACXtB,EAAgBuB,IAAS9sC,QAAQ7O,UAAU0sB,QAAQvuB,KAAKu9C,KAAU7sC,QAAQ7O,UAAU0sB,QAAQvuB,KAAKw9C,GAGtGtB,EAAeqB,GACVrB,EAAesB,IAAStoB,OAAOrzB,UAAU0sB,QAAQvuB,KAAKu9C,KAAUroB,OAAOrzB,UAAU0sB,QAAQvuB,KAAKw9C,GAGhGrB,EAAeqB,IAASjiC,OAAO1Z,UAAU0sB,QAAQvuB,KAAKu9C,KAAUhiC,OAAO1Z,UAAU0sB,QAAQvuB,KAAKw9C,GAqBvG,SAASC,EAAeF,EAAMC,EAAMrK,EAAQuK,GAE1C,GAAIH,IAASC,EACX,OAAa,IAATD,KACGpK,GAAS7C,EAASiN,EAAMC,IAIjC,GAAIrK,EAAQ,CACV,GAAsB,WAAlBjE,EAAQqO,GACV,MAAuB,kBAATA,GAAqBjC,EAAYiC,IAASjC,EAAYkC,GAGtE,GAAsB,WAAlBtO,EAAQsO,IAA+B,OAATD,GAA0B,OAATC,EACjD,OAAO,EAGT,GAAIz6C,OAAOW,eAAe65C,KAAUx6C,OAAOW,eAAe85C,GACxD,OAAO,MAEJ,CACL,GAAa,OAATD,GAAmC,WAAlBrO,EAAQqO,GAC3B,OAAa,OAATC,GAAmC,WAAlBtO,EAAQsO,KAEpBD,GAAQC,EAMnB,GAAa,OAATA,GAAmC,WAAlBtO,EAAQsO,GAC3B,OAAO,EAIX,IAAIG,EAAUpC,EAAegC,GACzBK,EAAUrC,EAAeiC,GAE7B,GAAIG,IAAYC,EACd,OAAO,EAGT,GAAIh8C,MAAMqQ,QAAQsrC,GAAO,CAEvB,GAAIA,EAAKj7C,SAAWk7C,EAAKl7C,OACvB,OAAO,EAGT,IAAIu7C,EAAQtB,EAAyBgB,EAAMd,GACvCqB,EAAQvB,EAAyBiB,EAAMf,GAE3C,OAAIoB,EAAMv7C,SAAWw7C,EAAMx7C,QAIpBy7C,EAASR,EAAMC,EAAMrK,EAAQuK,EAAOb,EAAUgB,GAMvD,GAAgB,oBAAZF,KAEGhC,EAAM4B,IAAS5B,EAAM6B,KAAU5B,EAAM2B,IAAS3B,EAAM4B,IACvD,OAAO,EAIX,GAAI9B,EAAO6B,IACT,IAAK7B,EAAO8B,IAAS3H,KAAKh0C,UAAUm8C,QAAQh+C,KAAKu9C,KAAU1H,KAAKh0C,UAAUm8C,QAAQh+C,KAAKw9C,GACrF,OAAO,OAEJ,GAAI/2B,EAAS82B,IAClB,IAAK92B,EAAS+2B,KAAUR,EAAkBO,EAAMC,GAC9C,OAAO,OAEJ,GAAI3B,EAAc0B,IAASA,aAAgB7pC,OAGhD,GAAI6pC,EAAK7kB,UAAY8kB,EAAK9kB,SAAW6kB,EAAKxzC,OAASyzC,EAAKzzC,KACtD,OAAO,MAEJ,IAAI0xC,EAAkB8B,GAAO,CAClC,GAAKpK,IAAWiJ,EAAemB,KAASlB,EAAekB,IAIhD,IAAKL,EAAsBK,EAAMC,GACtC,OAAO,OAJP,IAAKP,EAAsBM,EAAMC,GAC/B,OAAO,EASX,IAAIS,EAAQ1B,EAAyBgB,EAAMd,GAEvCyB,EAAS3B,EAAyBiB,EAAMf,GAE5C,OAAIwB,EAAM37C,SAAW47C,EAAO57C,QAIrBy7C,EAASR,EAAMC,EAAMrK,EAAQuK,EAAOd,EAAaqB,GACnD,GAAIrC,EAAM2B,GACf,SAAK3B,EAAM4B,IAASD,EAAKroC,OAASsoC,EAAKtoC,OAIhC6oC,EAASR,EAAMC,EAAMrK,EAAQuK,EAAOZ,GACtC,GAAInB,EAAM4B,GACf,SAAK5B,EAAM6B,IAASD,EAAKroC,OAASsoC,EAAKtoC,OAIhC6oC,EAASR,EAAMC,EAAMrK,EAAQuK,EAAOX,GACtC,GAAIvB,EAAiB+B,IAC1B,IAAKJ,EAAqBI,EAAMC,GAC9B,OAAO,OAEJ,GAAI1B,EAAiByB,KAAUD,EAAsBC,EAAMC,GAChE,OAAO,EAGT,OAAOO,EAASR,EAAMC,EAAMrK,EAAQuK,EAAOd,GAG7C,SAASuB,EAAe7vB,EAAKrkB,GAC3B,OAAOA,EAAKwF,QAAO,SAAUyB,GAC3B,OAAOyS,EAAqB2K,EAAKpd,MAIrC,SAAS6sC,EAASR,EAAMC,EAAMrK,EAAQuK,EAAOU,EAAeC,GAQ1D,GAAyB,IAArBvzC,UAAUxI,OAAc,CAC1B+7C,EAAQt7C,OAAOkH,KAAKszC,GACpB,IAAIe,EAAQv7C,OAAOkH,KAAKuzC,GAExB,GAAIa,EAAM/7C,SAAWg8C,EAAMh8C,OACzB,OAAO,EAOX,IAFA,IAAIuH,EAAI,EAEDA,EAAIw0C,EAAM/7C,OAAQuH,IACvB,IAAK8W,EAAe68B,EAAMa,EAAMx0C,IAC9B,OAAO,EAIX,GAAIspC,GAA+B,IAArBroC,UAAUxI,OAAc,CACpC,IAAIi8C,EAAclD,EAA4BkC,GAE9C,GAA2B,IAAvBgB,EAAYj8C,OAAc,CAC5B,IAAI8G,EAAQ,EAEZ,IAAKS,EAAI,EAAGA,EAAI00C,EAAYj8C,OAAQuH,IAAK,CACvC,IAAI5H,EAAMs8C,EAAY10C,GAEtB,GAAI8Z,EAAqB45B,EAAMt7C,GAAM,CACnC,IAAK0hB,EAAqB65B,EAAMv7C,GAC9B,OAAO,EAGTo8C,EAAM1vC,KAAK1M,GACXmH,SACK,GAAIua,EAAqB65B,EAAMv7C,GACpC,OAAO,EAIX,IAAIu8C,EAAcnD,EAA4BmC,GAE9C,GAAIe,EAAYj8C,SAAWk8C,EAAYl8C,QAAU67C,EAAeX,EAAMgB,GAAal8C,SAAW8G,EAC5F,OAAO,MAEJ,CACL,IAAIq1C,EAAepD,EAA4BmC,GAE/C,GAA4B,IAAxBiB,EAAan8C,QAA8D,IAA9C67C,EAAeX,EAAMiB,GAAcn8C,OAClE,OAAO,GAKb,GAAqB,IAAjB+7C,EAAM/7C,SAAiB87C,IAAkBxB,GAAewB,IAAkBvB,GAA4B,IAAhBU,EAAKj7C,QAA8B,IAAdi7C,EAAKroC,MAClH,OAAO,EAIT,QAAcpT,IAAV47C,EACFA,EAAQ,CACNH,KAAM,IAAIhN,IACViN,KAAM,IAAIjN,IACV1uB,SAAU,OAEP,CAIL,IAAI68B,EAAYhB,EAAMH,KAAKl3C,IAAIk3C,GAE/B,QAAkBz7C,IAAd48C,EAAyB,CAC3B,IAAIC,EAAYjB,EAAMF,KAAKn3C,IAAIm3C,GAE/B,QAAkB17C,IAAd68C,EACF,OAAOD,IAAcC,EAIzBjB,EAAM77B,WAGR67B,EAAMH,KAAK91C,IAAI81C,EAAMG,EAAM77B,UAC3B67B,EAAMF,KAAK/1C,IAAI+1C,EAAME,EAAM77B,UAC3B,IAAI+8B,EAAQC,GAAStB,EAAMC,EAAMrK,EAAQkL,EAAOX,EAAOU,GAGvD,OAFAV,EAAMH,KAAKuB,OAAOvB,GAClBG,EAAMF,KAAKsB,OAAOtB,GACXoB,EAGT,SAASG,EAAmBt3C,EAAK81C,EAAMpK,EAAQriC,GAI7C,IAFA,IAAIkuC,EAAY7D,EAAa1zC,GAEpBoC,EAAI,EAAGA,EAAIm1C,EAAU18C,OAAQuH,IAAK,CACzC,IAAI2zC,EAAOwB,EAAUn1C,GAErB,GAAI4zC,EAAeF,EAAMC,EAAMrK,EAAQriC,GAGrC,OADArJ,EAAIq3C,OAAOtB,IACJ,EAIX,OAAO,EAOT,SAASyB,GAA4BhqB,GACnC,OAAQia,EAAQja,IACd,IAAK,YACH,OAAO,KAET,IAAK,SAEH,OAEF,IAAK,SACH,OAAO,EAET,IAAK,SACHA,GAAQA,EAKV,IAAK,SACH,GAAIqmB,EAAYrmB,GACd,OAAO,EAKb,OAAO,EAGT,SAASiqB,GAAsBz8B,EAAGC,EAAGuS,GACnC,IAAIkqB,EAAWF,GAA4BhqB,GAC3C,OAAgB,MAAZkqB,EAAyBA,EACtBz8B,EAAE7M,IAAIspC,KAAc18B,EAAE5M,IAAIspC,GAGnC,SAASC,GAAsB38B,EAAGC,EAAGuS,EAAMtF,EAAM7e,GAC/C,IAAIquC,EAAWF,GAA4BhqB,GAE3C,GAAgB,MAAZkqB,EACF,OAAOA,EAGT,IAAIE,EAAO38B,EAAErc,IAAI84C,GAEjB,aAAar9C,IAATu9C,IAAuB38B,EAAE7M,IAAIspC,KAAc1B,EAAe9tB,EAAM0vB,GAAM,EAAOvuC,OAIzE2R,EAAE5M,IAAIspC,IAAa1B,EAAe9tB,EAAM0vB,GAAM,EAAOvuC,IAG/D,SAASwuC,GAAS78B,EAAGC,EAAGywB,EAAQriC,GAM9B,IAHA,IAAIrJ,EAAM,KACN83C,EAAUpE,EAAa14B,GAElB5Y,EAAI,EAAGA,EAAI01C,EAAQj9C,OAAQuH,IAAK,CACvC,IAAIykB,EAAMixB,EAAQ11C,GAIlB,GAAqB,WAAjBqlC,EAAQ5gB,IAA6B,OAARA,EACnB,OAAR7mB,IACFA,EAAM,IAAI+3C,KAOZ/3C,EAAIvH,IAAIouB,QACH,IAAK5L,EAAE7M,IAAIyY,GAAM,CACtB,GAAI6kB,EAAQ,OAAO,EAEnB,IAAK+L,GAAsBz8B,EAAGC,EAAG4L,GAC/B,OAAO,EAGG,OAAR7mB,IACFA,EAAM,IAAI+3C,KAGZ/3C,EAAIvH,IAAIouB,IAIZ,GAAY,OAAR7mB,EAAc,CAGhB,IAFA,IAAIg4C,EAAUtE,EAAaz4B,GAElBu4B,EAAK,EAAGA,EAAKwE,EAAQn9C,OAAQ24C,IAAM,CAC1C,IAAIyE,EAAOD,EAAQxE,GAGnB,GAAsB,WAAlB/L,EAAQwQ,IAA+B,OAATA,GAChC,IAAKX,EAAmBt3C,EAAKi4C,EAAMvM,EAAQriC,GAAO,OAAO,OACpD,IAAKqiC,IAAW1wB,EAAE5M,IAAI6pC,KAAUX,EAAmBt3C,EAAKi4C,EAAMvM,EAAQriC,GAC3E,OAAO,EAIX,OAAoB,IAAbrJ,EAAIyN,KAGb,OAAO,EAGT,SAASyqC,GAAiBl4C,EAAK+H,EAAKowC,EAAMC,EAAO1M,EAAQriC,GAMvD,IAFA,IAAIkuC,EAAY7D,EAAa1zC,GAEpBoC,EAAI,EAAGA,EAAIm1C,EAAU18C,OAAQuH,IAAK,CACzC,IAAIi2C,EAAOd,EAAUn1C,GAErB,GAAI4zC,EAAemC,EAAME,EAAM3M,EAAQriC,IAAS2sC,EAAeoC,EAAOrwC,EAAInJ,IAAIy5C,GAAO3M,EAAQriC,GAE3F,OADArJ,EAAIq3C,OAAOgB,IACJ,EAIX,OAAO,EAGT,SAASC,GAASt9B,EAAGC,EAAGywB,EAAQriC,GAI9B,IAHA,IAAIrJ,EAAM,KACNu4C,EAAW5E,EAAa34B,GAEnB5Y,EAAI,EAAGA,EAAIm2C,EAAS19C,OAAQuH,IAAK,CACxC,IAAIo2C,EAAc1F,EAAeyF,EAASn2C,GAAI,GAC1C5H,EAAMg+C,EAAY,GAClBJ,EAAQI,EAAY,GAExB,GAAqB,WAAjB/Q,EAAQjtC,IAA6B,OAARA,EACnB,OAARwF,IACFA,EAAM,IAAI+3C,KAGZ/3C,EAAIvH,IAAI+B,OACH,CAGL,IAAIi+C,EAAQx9B,EAAErc,IAAIpE,GAElB,QAAcH,IAAVo+C,IAAwBx9B,EAAE7M,IAAI5T,KAASw7C,EAAeoC,EAAOK,EAAO/M,EAAQriC,GAAO,CACrF,GAAIqiC,EAAQ,OAAO,EAGnB,IAAKiM,GAAsB38B,EAAGC,EAAGzgB,EAAK49C,EAAO/uC,GAAO,OAAO,EAE/C,OAARrJ,IACFA,EAAM,IAAI+3C,KAGZ/3C,EAAIvH,IAAI+B,KAKd,GAAY,OAARwF,EAAc,CAGhB,IAFA,IAAI04C,EAAW/E,EAAa14B,GAEnB09B,EAAM,EAAGA,EAAMD,EAAS79C,OAAQ89C,IAAO,CAC9C,IAAIC,EAAe9F,EAAe4F,EAASC,GAAM,GAE7CzwB,GADA1tB,EAAMo+C,EAAa,GACZA,EAAa,IAExB,GAAqB,WAAjBnR,EAAQjtC,IAA6B,OAARA,GAC/B,IAAK09C,GAAiBl4C,EAAKgb,EAAGxgB,EAAK0tB,EAAMwjB,EAAQriC,GAAO,OAAO,OAC1D,IAAKqiC,KAAY1wB,EAAE5M,IAAI5T,KAASw7C,EAAeh7B,EAAEpc,IAAIpE,GAAM0tB,GAAM,EAAO7e,MAAW6uC,GAAiBl4C,EAAKgb,EAAGxgB,EAAK0tB,GAAM,EAAO7e,GACnI,OAAO,EAIX,OAAoB,IAAbrJ,EAAIyN,KAGb,OAAO,EAGT,SAAS2pC,GAASp8B,EAAGC,EAAGywB,EAAQlpC,EAAMyzC,EAAOU,GAG3C,IAAIv0C,EAAI,EAER,GAAIu0C,IAAkBtB,GACpB,IAAKwC,GAAS78B,EAAGC,EAAGywB,EAAQuK,GAC1B,OAAO,OAEJ,GAAIU,IAAkBrB,GAC3B,IAAKgD,GAASt9B,EAAGC,EAAGywB,EAAQuK,GAC1B,OAAO,OAEJ,GAAIU,IAAkBvB,EAC3B,KAAOhzC,EAAI4Y,EAAEngB,OAAQuH,IAAK,CACxB,IAAI8W,EAAe8B,EAAG5Y,GAIf,IAAI8W,EAAe+B,EAAG7Y,GAC3B,OAAO,EAKP,IAFA,IAAIy2C,EAAQv9C,OAAOkH,KAAKwY,GAEjB5Y,EAAIy2C,EAAMh+C,OAAQuH,IAAK,CAC5B,IAAI5H,EAAMq+C,EAAMz2C,GAEhB,IAAK8W,EAAe+B,EAAGzgB,KAASw7C,EAAeh7B,EAAExgB,GAAMygB,EAAEzgB,GAAMkxC,EAAQuK,GACrE,OAAO,EAIX,OAAI4C,EAAMh+C,SAAWS,OAAOkH,KAAKyY,GAAGpgB,OAjBpC,IAAKqe,EAAe+B,EAAG7Y,KAAO4zC,EAAeh7B,EAAE5Y,GAAI6Y,EAAE7Y,GAAIspC,EAAQuK,GAC/D,OAAO,EA2Bf,IAAK7zC,EAAI,EAAGA,EAAII,EAAK3H,OAAQuH,IAAK,CAChC,IAAI8nC,EAAO1nC,EAAKJ,GAEhB,IAAK4zC,EAAeh7B,EAAEkvB,GAAOjvB,EAAEivB,GAAOwB,EAAQuK,GAC5C,OAAO,EAIX,OAAO,EAGT,SAASrO,GAAYkO,EAAMC,GACzB,OAAOC,EAAeF,EAAMC,EAAMb,GAGpC,SAASrN,GAAkBiO,EAAMC,GAC/B,OAAOC,EAAeF,EAAMC,EAAMd,GAGpCx7C,EAAOL,QAAU,CACfwuC,YAAaA,GACbC,kBAAmBA,K,kKC9qBViR,G,QAAuC,qBAAXriC,QAC5BsiC,EAA2C,qBAAb/kC,SAC9BglC,EAA6C,qBAAdC,UAC/BC,EAAyC,qBAAZ13B,QAG7B23B,EAA4D,qBAArB73B,kBAAsE,qBAA3BC,wBAAyE,qBAAxB63B,oBACnIpyB,EAAa8xB,GAAsBC,GAAwBC,EAC3DK,EAASP,EAAqBriC,OAAS,GACvC6iC,EAAWP,EAAuB/kC,SAAW,GAC7CulC,EAAYP,EAAwBC,UAAY,GAChDO,GAAcD,EAAUjjC,WAAa,IAAIqI,cACzC86B,EAAWD,EAAWzyC,QAAQ,SAAW,EAGzC2yC,GAFQ,eAAeltC,KAAKgtC,GAEA,WACrC,IAAIG,GAAwB,EAE5B,GAAI3yB,EACF,IACE,IAAInvB,EAAU,CAGR+hD,cAEFD,GAAwB,IAI5BN,EAAOnsB,iBAAiB,OAAQr1B,EAASA,GACzCwhD,EAAOQ,oBAAoB,OAAQhiD,EAASA,GAC5C,MAAOiiD,GAEPH,GAAwB,EAI5B,OAAOA,EAtB8B,IAwB5BI,EAAoB/yB,IAAe,iBAAkBsyB,EAASU,iBAAmBT,EAAUU,eAAiB,GAC5GC,EAA4BlzB,GAAc/d,QAAQowC,EAAOc,cAAgBd,EAAOe,gBAGhFC,EAAmCrzB,GAAc,yBAA0BqyB,GAAU,8BAA+BA,GAG/H,sBAAuBA,EAAOiB,0BAA0BlgD,UC9C7CoB,G,QAAO,YACP++C,EAAY,YACZC,EAAqB,CAAC,KAAM,KAAM,KAAM,KAAM,MCD9CC,G,gEAAoB,aACpBC,EAAe,SACfC,EAAY,QACZC,EAAe,QACfC,EAAU,KACVC,EAAa,wBACbC,EAAe,gBACfC,EAAe,aACfC,EAAiB,kBACjBC,EAAY,oBACZC,EAAU,MACVC,EAAoB,wBACpBC,EAAY,mBACZC,EAAiB,MACjBC,EAAU,QACVC,EAAsB,cACtBC,EAAe,OAEfC,EAAgB,KAChBC,EAAc,SAIdC,EAAU,6BAEVC,EAAgB,SAEhBC,EAAU,oDAGVC,EAAU,eACVC,EAAmB,OACnBC,EAAoB,WACpBC,EAAiB,YAEjBC,EAAY,+BACZC,EAAsB,OAEtBC,EAAe,QAEfC,EAAiB,SAEjBC,EAAuB,Q,uCC3ClC,SAAS9U,EAAQvnB,GAAkC,OAAOunB,EAAU,mBAAqB3zB,QAAU,iBAAmBA,OAAO1N,SAAW,SAAU8Z,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBpM,QAAUoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,gBAAkB8lB,GAAQunB,EAAQvnB,GAEzU,SAASynB,GAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASg0C,GAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIl0C,UAAU,sDAAyD8B,OAAOtB,eAAeyzC,EAAU,YAAa,CAAElzC,MAAOe,OAAOvB,OAAO2zC,GAAcA,EAAWtzC,UAAW,CAAEsI,YAAa,CAAEnI,MAAOkzC,EAAU37B,UAAU,EAAMxX,cAAc,KAAWwX,UAAU,IAAc47B,GAAYC,GAAgBF,EAAUC,GAExa,SAAS8O,GAAaC,GAAW,IAAIC,EAA4BC,KAA6B,OAAO,WAAkC,IAAsCp3C,EAAlCq3C,EAAQ3O,GAAgBwO,GAAkB,GAAIC,EAA2B,CAAE,IAAItgC,EAAY6xB,GAAgB/1C,MAAMwK,YAAa6C,EAAS0T,QAAQK,UAAUsjC,EAAOv5C,UAAW+Y,QAAqB7W,EAASq3C,EAAMt0C,MAAMpQ,KAAMmL,WAAc,OAAOgqC,GAA2Bn1C,KAAMqN,IAE5Z,SAAS8nC,GAA2BxlC,EAAMtP,GAAQ,GAAIA,IAA2B,WAAlBkvC,EAAQlvC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIiB,UAAU,4DAA+D,OAAO8zC,GAAuBzlC,GAExR,SAASylC,GAAuBzlC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI0lC,eAAe,6DAAgE,OAAO1lC,EAE/J,SAAS+lC,GAAiBC,GAAS,IAAIC,EAAwB,oBAARhF,IAAqB,IAAIA,SAAQzuC,EAA8nB,OAAnnBuzC,GAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAAmBE,GAAkBF,GAAQ,OAAOA,EAAO,GAAqB,oBAAVA,EAAwB,MAAM,IAAIr0C,UAAU,sDAAyD,GAAsB,qBAAXs0C,EAAwB,CAAE,GAAIA,EAAO1/B,IAAIy/B,GAAQ,OAAOC,EAAOlvC,IAAIivC,GAAQC,EAAO9tC,IAAI6tC,EAAO1xB,GAAY,SAASA,IAAY,OAAO6xB,GAAWH,EAAOxqC,UAAW4qC,GAAgB/1C,MAAMwK,aAAgK,OAAhJyZ,EAAQ/hB,UAAYkB,OAAOvB,OAAO8zC,EAAMzzC,UAAW,CAAEsI,YAAa,CAAEnI,MAAO4hB,EAAStK,YAAY,EAAOC,UAAU,EAAMxX,cAAc,KAAkBqzC,GAAgBxxB,EAAS0xB,IAAkBD,GAAiBC,GAE9uB,SAASG,GAAWK,EAAQ70B,EAAMq0B,GAAqV,OAAzSG,GAA/B2O,KAA4C1jC,QAAQK,UAAiC,SAAoB+0B,EAAQ70B,EAAMq0B,GAAS,IAAI7yB,EAAI,CAAC,MAAOA,EAAE9T,KAAKoB,MAAM0S,EAAGxB,GAAO,IAAI/d,EAAckD,SAAS6G,KAAK8C,MAAM+lC,EAAQrzB,GAAQ9K,EAAW,IAAIzU,EAAsE,OAAnDoyC,GAAOF,GAAgBz9B,EAAU29B,EAAMzzC,WAAmB8V,GAAsB89B,GAAW1lC,MAAM,KAAMjF,WAErZ,SAASs5C,KAA8B,GAAuB,qBAAZ1jC,UAA4BA,QAAQK,UAAW,OAAO,EAAO,GAAIL,QAAQK,UAAU1B,KAAM,OAAO,EAAO,GAAqB,oBAAVu2B,MAAsB,OAAO,EAAM,IAAsF,OAAhFllC,QAAQ7O,UAAU0sB,QAAQvuB,KAAK0gB,QAAQK,UAAUrQ,QAAS,IAAI,iBAAyB,EAAQ,MAAO4uB,GAAK,OAAO,GAE/T,SAASkW,GAAkBljC,GAAM,OAAgE,IAAzDlM,SAAS4M,SAAShT,KAAKsS,GAAI9D,QAAQ,iBAE3E,SAAS4mC,GAAgBW,EAAGnM,GAA+G,OAA1GwL,GAAkBryC,OAAOY,gBAAkB,SAAyBoyC,EAAGnM,GAAsB,OAAjBmM,EAAE5nB,UAAYyb,EAAUmM,GAAaX,GAAgBW,EAAGnM,GAErK,SAAS8L,GAAgBK,GAAwJ,OAAnJL,GAAkB3yC,OAAOY,eAAiBZ,OAAOW,eAAiB,SAAyBqyC,GAAK,OAAOA,EAAE5nB,WAAaprB,OAAOW,eAAeqyC,IAAcL,GAAgBK,GAKjM,IAAIuO,GAAU/D,EAAqBO,EAAOwD,QAAuB,SAAUC,GAChFtP,GAAUqP,EAASC,GAEnB,IAAIC,EAASP,GAAaK,GAE1B,SAASA,IAGP,OAFAlV,GAAgBzvC,KAAM2kD,GAEfE,EAAOz0C,MAAMpQ,KAAMmL,WAG5B,OAAOw5C,EAX+D,CAYxDjP,GAAiBtyC,SAGtB0hD,GAAclE,EAAqBO,EAAO2D,YAA2B,SAAUC,GACxFzP,GAAUwP,EAAaC,GAEvB,IAAIC,EAAUV,GAAaQ,GAE3B,SAASA,IAGP,OAFArV,GAAgBzvC,KAAM8kD,GAEfE,EAAQ50C,MAAMpQ,KAAMmL,WAG7B,OAAO25C,EAXuE,CAY9EH,IAGSM,GAAarE,EAAqBO,EAAO8D,WAA0B,SAAUC,GACtF5P,GAAU2P,EAAYC,GAEtB,IAAIC,EAAUb,GAAaW,GAE3B,SAASA,IAGP,OAFAxV,GAAgBzvC,KAAMilD,GAEfE,EAAQ/0C,MAAMpQ,KAAMmL,WAG7B,OAAO85C,EAXqE,CAY5EN,IAGSS,GAAOxE,EAAqBO,EAAOiE,KAAoB,SAAUC,GAC1E/P,GAAU8P,EAAMC,GAEhB,IAAIC,EAAUhB,GAAac,GAE3B,SAASA,IAGP,OAFA3V,GAAgBzvC,KAAMolD,GAEfE,EAAQl1C,MAAMpQ,KAAMmL,WAG7B,OAAOi6C,EAXyD,CAYlD1P,GAAiBtyC,SCpFjC,SAASmsC,GAAQvnB,GAAkC,OAAOunB,GAAU,mBAAqB3zB,QAAU,iBAAmBA,OAAO1N,SAAW,SAAU8Z,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBpM,QAAUoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,gBAAkB8lB,GAAQunB,GAAQvnB,GAKlU,IAAIu9B,GAAS,SAAgBljD,GAClC,OAAOktC,GAAQltC,IAENmjD,GAAY,SAAmBnjD,GACxC,OAAOe,OAAOlB,UAAUmR,SAAShT,KAAKgC,GAAOqP,MAAM,GAAI,IAK9C+zC,GAAc,SAAqBpjD,GAC5C,YAAiBF,IAAVE,GAEEqjD,GAAS,SAAgBrjD,GAClC,OAAiB,OAAVA,GAKEsjD,GAAoB,SAA2BtjD,GACxD,OAAOojD,GAAYpjD,IAAUqjD,GAAOrjD,IAK3B2hC,GAAa,SAAoB3hC,GAC1C,MAAyB,aAAlBkjD,GAAOljD,IAELujD,GAAY,SAAmBvjD,GACxC,MAAyB,YAAlBkjD,GAAOljD,IAELwjD,GAAW,SAAkBxjD,GACtC,MAAyB,WAAlBkjD,GAAOljD,IAELyjD,GAAW,SAAkBzjD,GACtC,MAAyB,WAAlBkjD,GAAOljD,IAEL0jD,GAAY,SAAmB1jD,GACxC,OAAO2gD,EAAU1uC,KAAK3S,OAAOU,KAKpBiQ,GAAU,SAAiBjQ,GACpC,OAAOJ,MAAMqQ,QAAQjQ,IAMZU,GAAW,SAAkBilB,GACtC,OAAe,OAARA,GAAiC,WAAjBunB,GAAQvnB,IAItBg+B,GAAgB,SAAuBh+B,GAChD,MAA+C,oBAAxC5kB,OAAOlB,UAAUmR,SAAShT,KAAK2nB,IAE7B+zB,GAAS,SAAgB15C,GAClC,OAAOA,aAAiB6zC,MAEf+P,GAAU,SAAiB5jD,GACpC,OAAOA,aAAiB6jD,OAEfC,GAAS,SAAgB9jD,GAClC,OAAOA,aAAiB+iD,IAEft+B,GAAW,SAAkBzkB,GACtC,MAA4B,WAArBmjD,GAAUnjD,IAERouC,GAAY,SAAmBpuC,GACxC,OAAQsjD,GAAkBtjD,IAAU2hC,GAAW3hC,EAAMymB,OAASkb,GAAW3hC,EAAM2wC,Q,wCC3EjF,SAASz6B,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAIpM,IAAI+C,GAAS,WAClB,OAAO3nB,OAAO2nB,OAAO3a,MAAMhN,OAAQ+H,YAE1BtJ,GAAS,SAAgB4Z,EAAO4qC,GACzC,OAAOjjD,OAAOvB,OAAO4Z,EAAO4qC,IAEnBn5B,GAAmB,SAA0BlF,EAAKmF,GAC3D,OAAO/pB,OAAO8pB,iBAAiBlF,EAAKmF,IAE3BrrB,GAAiB,SAAwBkmB,EAAKs+B,EAAMtsC,GAC7D,OAAO5W,OAAOtB,eAAekmB,EAAKs+B,EAAMtsC,IAK/B7S,GAAsB,SAA6B6gB,GAC5D,OAAO5kB,OAAO+D,oBAAoB6gB,IAiBzB1d,GAAO,SAAc0d,GAC9B,OAAO5kB,OAAOkH,KAAK0d,IAGVhH,GAAiB,SAAwBgH,EAAKs+B,GACvD,OAAOljD,OAAOlB,UAAU8e,eAAe3gB,KAAK2nB,EAAKs+B,IAExCjzC,GAAW,SAAkB2U,GACtC,OAAO5kB,OAAOlB,UAAUmR,SAAShT,KAAK2nB,IAI7Bu+B,GAAQ,SAAev+B,GAChC,OAAO6sB,GAAc,GAAI7sB,IAIhBw+B,GAAO,SAAcx+B,EAAKmF,GACnC,OAAO7iB,GAAK0d,GAAKlY,QAAO,SAAUxN,GAChC,OAA+B,IAAxB6qB,EAAMte,QAAQvM,MACpBmkD,QAAO,SAAUp5C,EAAQ/K,GAC1B,OAAOuyC,GAAcA,GAAc,GAAIxnC,GAAS,GAAIynC,GAAgB,GAAIxyC,EAAK0lB,EAAI1lB,OAChF,KAIMokD,GAAO,SAAc1+B,EAAKmF,GACnC,OAAO7iB,GAAK0d,GAAKlY,QAAO,SAAUxN,GAChC,OAA+B,IAAxB6qB,EAAMte,QAAQvM,MACpBmkD,QAAO,SAAUp5C,EAAQ/K,GAC1B,OAAOuyC,GAAcA,GAAc,GAAIxnC,GAAS,GAAIynC,GAAgB,GAAIxyC,EAAK0lB,EAAI1lB,OAChF,KAIMqkD,GAAY,SAASA,EAAUr6C,EAAQoM,GAehD,OAdI3V,GAASuJ,IAAWvJ,GAAS2V,IAC/BpO,GAAKoO,GAAQxL,SAAQ,SAAU5K,GACzBS,GAAS2V,EAAOpW,KACbgK,EAAOhK,IAASS,GAASuJ,EAAOhK,MACnCgK,EAAOhK,GAAOoW,EAAOpW,IAGvBqkD,EAAUr6C,EAAOhK,GAAMoW,EAAOpW,KAE9ByoB,GAAOze,EAAQwoC,GAAgB,GAAIxyC,EAAKoW,EAAOpW,QAK9CgK,GAGEs6C,GAAW,SAAkB5+B,GACtC,OAAO1d,GAAK0d,GAAK0T,OAAO+qB,QAAO,SAAUp5C,EAAQ/K,GAC/C,OAAOuyC,GAAcA,GAAc,GAAIxnC,GAAS,GAAIynC,GAAgB,GAAIxyC,EAAK0lB,EAAI1lB,OAChF,KAGMukD,GAAqB,WAC9B,MAAO,CACLltC,YAAY,EACZvX,cAAc,EACdwX,UAAU,ICxGd,SAASrB,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAE3M,SAAS8+B,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAIzK,IAAIC,GAAY,SAASA,EAAUv/B,GACxC,IAAIw/B,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK6c,EAEvF,OAAI1V,GAAQ0V,GACHA,EAAIy+B,QAAO,SAAUp5C,EAAQshB,GAClC,MAAO,GAAG1tB,OAAO6lD,GAAmBz5C,GAAS,CAACk6C,EAAU54B,EAAKA,OAC5D,IAGDq3B,GAAch+B,GACT1d,GAAK0d,GAAKy+B,QAAO,SAAUp5C,EAAQ/K,GACxC,OAAOuyC,GAAcA,GAAc,GAAIxnC,GAAS,GAAIynC,GAAgB,GAAIxyC,EAAKilD,EAAUv/B,EAAI1lB,GAAM0lB,EAAI1lB,QACpG,IAGEklD,GCnCEC,I,QAAW,SAAkBl/B,GACtC,OAAOA,ICYEm/B,GAAS,SAAgB1/B,EAAKtM,GACvC,IAAI8rC,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,QAAKhJ,EAIvF,GAFAuZ,EAAOpJ,GAAQoJ,GAAQA,EAAKwF,KAAK,KAAOxF,GAEnCA,IAAS3Y,GAASilB,GACrB,OAAOw/B,EAOT,GAAI9rC,KAAQsM,EACV,OAAOA,EAAItM,GAIbA,EAAO/Z,OAAO+Z,GAAM1H,QAAQuuC,EAAmB,OAC/C,IAAIoF,EAAQjsC,EAAKsD,MAAM,KAAKlP,OAAO23C,IAEnC,OAAqB,IAAjBE,EAAMhlD,OACD6kD,EAMFG,EAAM33C,OAAM,SAAU/B,GAC3B,OAAOlL,GAASilB,IAAQ/Z,KAAQ+Z,IAAQ29B,GAAkB39B,EAAMA,EAAI/Z,OACjE+Z,EAAM09B,GAAO19B,GAAO,KAAOw/B,GAavB9gD,GAAM,SAAashB,EAAKtM,GACjC,IAAI8rC,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KACnF9I,EAAQqlD,GAAO1/B,EAAKtM,GACxB,OAAOiqC,GAAkBtjD,GAASmlD,EAAenlD,G,WCxDxCulD,GAAS,SAAgBtlD,GAClC,IAAIulD,EAAW18C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAC/E28C,EAAyB,qBAAZnpC,IAA2BA,GAAUA,CAAAA,SAAAA,aAAAA,SAAAA,MAAe,EAAK,GAE1E,OAAKrc,EAKEwlD,EAAIxlD,IAAQulD,EAHVC,GAKAC,GAAY,WACrB,OAAOH,GAAO,0BAAmD,eAAvBA,GAAO,a,UCRxCpW,GAAO,SAAczY,GAG9B,IAAIrgB,EAASvN,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAE5E48C,MACH/kC,GAAQwuB,KAAK,wBAAwBvwC,OAAOyX,EAAS,GAAGzX,OAAOyX,EAAQ,OAAS,IAAIzX,OAAO83B,KASpFivB,GAAgB,SAAuBtvC,GAEhD,OAAIoW,IAGF0iB,GAAK,GAAGvwC,OAAOyX,EAAQ,qCAChB,IASAuvC,GAAuB,SAA8BvvC,GAE9D,OAAIsoC,IAGFxP,GAAK,GAAGvwC,OAAOyX,EAAQ,iCAChB,IASAwvC,GAAgC,SAAuCxvC,GAEhF,OAAIuoC,IAGFzP,GAAK,GAAGvwC,OAAOyX,EAAQ,0CAChB,IC1DX,SAAS+2B,GAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASyzC,GAAkBzoC,EAAQ6gB,GAAS,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,IAAK,CAAE,IAAI8P,EAAamT,EAAMjjB,GAAI8P,EAAWL,WAAaK,EAAWL,aAAc,EAAOK,EAAW5X,cAAe,EAAU,UAAW4X,IAAYA,EAAWJ,UAAW,GAAMxW,OAAOtB,eAAewK,EAAQ0N,EAAW1X,IAAK0X,IAE7S,SAASg7B,GAAazxC,EAAa0xC,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxxC,EAAYrB,UAAW+yC,GAAiBC,GAAaH,GAAkBxxC,EAAa2xC,GAAc9xC,OAAOtB,eAAeyB,EAAa,YAAa,CAAEqW,UAAU,IAAiBrW,EAU/Q,IAAI4kD,GAAwB,WAC1B,SAASA,IACP1Y,GAAgBzvC,KAAMmoD,GAEtBnoD,KAAKooD,SAAW,GA+DlB,OA3DApT,GAAamT,EAAU,CAAC,CACtB7lD,IAAK,YACLD,MAAO,WACL,IAAIqwC,EAAQ1yC,KAERqoD,EAASl9C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAGjF,GAAK66C,GAAcqC,GAAnB,CAIA,IAAIC,EAAanhD,GAAoBkhD,GACrCC,EAAWp7C,SAAQ,SAAU5K,GAE3B,IAAIimD,EAAYF,EAAO/lD,GAEX,gBAARA,GAEGgQ,GAAQi2C,IAAcA,EAAU5lD,OAAS,GAAK4lD,EAAUx4C,MAAK,SAAUgT,GAC1E,OAAQ8iC,GAAS9iC,IAAmB,IAAbA,EAAEpgB,UAEzB6uC,GAAK,gEAAiEluC,GAEtEovC,EAAM0V,SAAS9lD,GAAOilD,GAAUgB,GAEzBvC,GAAcuC,KAEvB7V,EAAM0V,SAAS9lD,GAAO6E,GAAoBohD,GAAW9B,QAAO,SAAU4B,EAAQ/B,GAK5E,OAJKb,GAAY8C,EAAUjC,MACzB+B,EAAO/B,GAAQiB,GAAUgB,EAAUjC,KAG9B+B,IACN3V,EAAM0V,SAAS9lD,IAAQ,WAK/B,CACDA,IAAK,cACLD,MAAO,WACLrC,KAAKooD,SAAW,KAGjB,CACD9lD,IAAK,YACLD,MAAO,WACL,OAAOklD,GAAUvnD,KAAKooD,YAGvB,CACD9lD,IAAK,iBACLD,MAAO,SAAwBC,GAC7B,IAAIklD,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,QAAKhJ,EACvF,OAAOolD,GAAUG,GAAO1nD,KAAKooD,SAAU9lD,EAAKklD,QAIzCW,EAnEmB,GAuEjBK,GAAY,WACrB,IAAIH,EAASl9C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC7Es9C,EAAMt9C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKu9C,EAAAA,WAG9ED,EAAIvmD,UAAUmgD,GAAaqG,EAAAA,WAAAA,UAAiBrG,GAAaoG,EAAIvmD,UAAUmgD,IAAcqG,EAAAA,WAAAA,UAAiBrG,IAAc,IAAI8F,GAExHM,EAAIvmD,UAAUmgD,GAAWmG,UAAUH,IC5FrC,SAAS9vC,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAWpM,IAAI2gC,GAAmB,WAC5B,IAAIC,GAAyB,EACzBC,EAAuB,CAAC,sCAAuC,kEAAmE,6DAA6D3nC,KAAK,MACxM,OAAO,SAAUunC,GAEVG,GAA0BF,EAAAA,aAAWD,GAAQlH,GAChD/P,GAAKqX,GAGPD,GAAyB,GATC,GAkBnBE,GAAiB,WAC1B,IAAIC,EAAO59C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC3E69C,EAAaD,EAAKC,WAClBC,EAAaF,EAAKE,WAClBC,EAAUH,EAAKG,QAEfC,EAAU,SAASA,EAAQV,GAC7B,IAAIJ,EAASl9C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAE7Eg+C,EAAQC,YAKZD,EAAQC,WAAY,EACpBT,GAAiBF,GACjBD,GAAUH,EAAQI,GAClBY,GAAmBZ,EAAKO,GACxBM,GAAmBb,EAAKQ,GACxBM,GAAgBd,EAAKS,KAIvB,OADAC,EAAQC,WAAY,EACbD,GAoCEK,GAAgB,WACzB,IAAI7pD,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC9Es+C,EAASt+C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAO0pC,GAAcA,GAAc,GAAI4U,GAAS,GAAI,CAClDN,QAASL,GAAenpD,MAsBjB4pD,GAAkB,SAAyBd,GACpD,IAAIS,EAAU/9C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAElF,IAAK,IAAIu+C,KAAUR,EACbQ,GAAUR,EAAQQ,IACpBjB,EAAIkB,IAAIT,EAAQQ,KAWXE,GAAoB,SAA2BnB,EAAKr+C,EAAMy/C,GAC/DpB,GAAOr+C,GAAQy/C,GACjBpB,EAAIqB,UAAU1/C,EAAMy/C,IASbR,GAAqB,SAA4BZ,GAC1D,IAAIO,EAAa79C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAErF,IAAK,IAAI2+C,KAAad,EACpBY,GAAkBnB,EAAKqB,EAAWd,EAAWc,KAUtCC,GAAoB,SAA2BtB,EAAKr+C,EAAMy/C,GAC/DpB,GAAOr+C,GAAQy/C,GAGjBpB,EAAIuB,UAAU5/C,EAAK4J,QAAQ,MAAO,KAAM61C,IASjCP,GAAqB,SAA4Bb,GAC1D,IAAIQ,EAAa99C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAErF,IAAK,IAAI6+C,KAAaf,EACpBc,GAAkBtB,EAAKuB,EAAWf,EAAWe,K,2NC9K3CjkB,GAAU,CACdkkB,MAAO,SACPC,UAAW,QACZC,UAAW,iBAGZ,SAASC,GAAaC,EAAiB/rC,GACrC,OAAOA,EAAQA,EAAMgsC,cAAgB,GAOvC,SAASC,GAAW99B,GAGlB,IAFA,IALiBjM,EAKbgqC,EAAgC,GAAAhnC,EAAAA,EAEtBinC,EAAAA,EAAMzrC,MAAM+mB,GAAQokB,WAApB7O,EAAAA,EAAAA,OAAAA,IAAgC,CAAzC,IACCoP,EAAAA,EAAAA,GAAAA,MAAAA,GAAAA,WAACpoD,EAAAA,EAAAA,GAAKqsB,EAAAA,EAAAA,IACVrsB,EAAMA,EAAI6wB,UAKS,iBAARxE,IACTA,EAAMA,EAAIwE,QAEZq3B,GAjBehqC,EAiBIle,EAhBdke,EAAIxM,QAAQ+xB,GAAQkkB,MAAOG,MAgBLz7B,GAG7B,OAAO67B,EAST,SAASG,KAOP,IANA,IAEIrE,EACAhyB,EAHAs2B,EAA+C,GAC/C1gD,EAAYiB,UAAUxI,OAKnBuH,KAGL,IAAa,UAAA9G,OAAOkH,KAAKa,UAAUjB,IAAtBoxC,EAAAA,EAAAA,OAAAA,IACX,OADGgL,EAAAA,EAAAA,IAGD,IAAK,QACL,IAAK,QACL,IAAK,aAKH,GAJKrkD,MAAMqQ,QAAQs4C,EAAYtE,MAC7BsE,EAAYtE,GAAQ,IAGT,UAATA,EAAkB,CACpB,IAAI75B,OAAAA,EAEFA,EADExqB,MAAMqQ,QAAQnH,UAAUjB,GAAGuiB,OACrBthB,UAAUjB,GAAGuiB,MAEb,CAACthB,UAAUjB,GAAGuiB,OAExB,IAAK,IAAIliB,EAAI,EAAGA,EAAIkiB,EAAM9pB,OAAQ4H,IAAK,CACrC,IAAIi1B,EAAI/S,EAAMliB,GACG,iBAANi1B,IACT/S,EAAMliB,GAAKggD,GAAW/qB,IAG1Br0B,UAAUjB,GAAGuiB,MAAQA,EAKvBm+B,EAAYtE,GAAQsE,EAAYtE,GAAMrlD,OAAOkK,UAAUjB,GAAGo8C,IAC1D,MAEF,IAAK,cACH,IAAKn7C,UAAUjB,GAAGo8C,GAChB,eAEEsE,EAAYtE,KACdsE,EAAYtE,GAAQ,IAElBsE,EAAYtE,KAEdsE,EAAYtE,IAAS,KAEvBsE,EAAYtE,IAASn7C,UAAUjB,GAAGo8C,GAAMnzB,OACxC,MAMF,IAAK,KACL,IAAK,WACEy3B,EAAYtE,KACfsE,EAAYtE,GAAQ,IAEtB,IAAc,UAAAljD,OAAOkH,KAAKa,UAAUjB,GAAGo8C,IAAS,IAAlCoE,EAAAA,EAAAA,OAAAA,IAATp2B,EAAAA,EAAAA,GAECs2B,EAAYtE,GAAMhyB,GAEpBs2B,EAAYtE,GAAMhyB,GAAS,GAAGrzB,OAC5B2pD,EAAYtE,GAAMhyB,GAClBnpB,UAAUjB,GAAGo8C,GAAMhyB,IAIrBs2B,EAAYtE,GAAMhyB,GAASnpB,UAAUjB,GAAGo8C,GAAMhyB,GAGlD,MAEF,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACEs2B,EAAYtE,KACfsE,EAAYtE,GAAQ,IAEtBsE,EAAYtE,GAAAA,GAAAA,GAAan7C,UAAUjB,GAAGo8C,GAAUsE,EAAYtE,IAC5D,MAEF,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACOsE,EAAYtE,KACfsE,EAAYtE,GAAQn7C,UAAUjB,GAAGo8C,IAM3C,OAAOsE,EChJT,IAAIC,GAAoB,OCFbC,GAAa,SACbC,GAAc,UACdC,GAAc,UACdC,GAAoB,eACpBC,GAAa,SACbC,GAAkB,cAClBC,GAAuB,kBACvBC,GAAuB,kBACvBC,GAAc,UACdC,GAAoB,eACpBC,GAAoB,eACpBC,GAAsB,iBACtBC,GAAgB,YAChBC,GAAY,QACZC,GAAiB,YACjBC,GAAmB,cACnBC,GAAkB,aAClBC,GAAmB,cACnBC,GAAgB,WAChBC,GAAqB,eACrBC,GAAsB,gBACtBC,GAAiB,YACjBC,GAAkB,aAClBC,GAAgB,YAChBC,GAAsB,iBACtBC,GAAW,OACXC,GAAgB,YAChBC,GAAiB,aACjBC,GAAgB,YAChBC,GAAwB,mBACxBC,GAAqB,gBACrBC,GAAsB,iBACtBC,GAAuB,kBACvBC,GAAqB,gBACrBC,GAA4B,sBAC5BC,GAAqB,gBACrBC,GAAa,SACbC,GAAY,QACZC,GAAqB,gBACrBC,GAA2B,qBAC3BC,GAAqB,gBACrBC,GAAuB,kBACvBC,GAAiB,YACjBC,GAAkB,aAClBC,GAAkB,aAClBC,GAA6B,uBAC7BC,GAAkB,aAClBC,GAAwB,kBACxBC,GAAmB,cACnBC,GAAgB,WAChBC,GAAmB,cACnBC,GAA0B,oBAC1BC,GAAgC,yBAChCC,GAAuB,kBACvBC,GAAgB,WAChBC,GAAiB,YACjBC,GAAiB,YACjBC,GAAqB,gBACrBC,GAAuB,kBACvBC,GAA2B,qBAC3BC,GAAY,QAEZC,GAAiB,YACjBC,GAAW,OACXC,GAAgB,WAChBC,GAAmB,cACnBC,GAAyB,mBACzBC,GAA0B,oBAC1BC,GAA2B,qBAC3BC,GAAwB,kBACxBC,GAAiB,aACjBC,GAAY,QACZC,GAAkB,aAClBC,GAAuB,iBACvBC,GAAa,SACbC,GAAmB,cACnBC,GAAkB,aAClBC,GAAa,SACbC,GAAe,UACfC,GAAW,OACXC,GAAc,UACdC,GAAoB,eACpBC,GAAkB,aAClBC,GAAqB,gBACrBC,GAAgB,WAChBC,GAAgB,WAChBC,GAAyB,mBACzBC,GAAgB,WAChBC,GAAe,WACfC,GAAkB,cAClBC,GAAsB,iBACtBC,GAAe,WACfC,GAAgB,YAChBC,GAAoB,eACpBC,GAAW,OACXC,GAAe,WACfC,GAAgB,YAChBC,GAAqB,gBACrBC,GAAoB,eACpBC,GAAsB,iBACtBC,GAAwB,mBACxBC,GAAe,WACfC,GAAW,OACXC,GAAa,SACbC,GAAkB,aAClBC,GAAkB,aAClBC,GAAoB,eACpBC,GAAY,QACZC,GAAa,SACbC,GAAa,SACbC,GAAU,MACVC,GAAa,SACbC,GAAY,QACZC,GAAa,SACbC,GAAe,WACfC,GAAe,WACfC,GAAU,MAEVC,GAAuB,aACvBC,GAAiC,wBACjCC,GAAwB,mBACxBC,GAAsB,YACtBC,GAAwB,oBACxBC,GAAc,WACdC,GAAyB,cACzBC,GAAiB,aACjBC,GAAsB,YACtBC,GAAwB,oBACxBC,GAAkB,eAClBC,GAAmB,gBACnBC,GAA0B,sBCnI1BC,GAA0B,eAC1BC,GAAkB,OAClBC,GAAoB,SACpBC,GAAoB,SACpBC,GAAqB,UACrBC,GAAmB,QACnBC,GAAmB,QACnBC,GAAqB,UACrBC,GAA6B,kBAC7BC,GAAuB,YACvBC,GAAqB,UACrBC,GAAsB,WACtBC,GAAuB,YACvBC,GAAgC,qBAChCC,GAAoB,SACpBC,GAAqB,UACrBC,GAAsB,WACtBC,GAAmB,QACnBC,GAAmB,QACnBC,GAAqB,UACrBC,GAAsB,WACtBC,GAA0B,eAC1BC,GAAoB,SACpBC,GAAkB,OAClBC,GAAuB,YACvBC,GAAmB,QACnBC,GAAkB,OAClBC,GAAwB,aACxBC,GAAwB,aACxBC,GAAkB,OAClBC,GAAgB,KAChBC,GAAkB,OAClBC,GAAwB,aACxBC,GAAoB,SACpBC,GAAkB,OAClBC,GAAqB,UACrBC,GAAuB,YACvBC,GAAoB,SACpBC,GAAyB,cACzBC,GAA6B,kBAC7BC,GAA4B,iBAC5BC,GAAyB,cACzBC,GAAgC,qBAChCC,GAA0B,eAC1BC,GAA2B,gBAC3BC,GAAsB,WACtBC,GAAkB,OAClBC,GAAmB,QACnBC,GAAyB,cACzBC,GAA2B,gBAC3BC,GAA0B,eAC1BC,GAAuB,YACvBC,GAAoB,SACpBC,GAAsB,WACtBC,GAAoB,SACpBC,GAAiC,qBACjCC,GAA4B,iBAC5BC,GAA0B,UAC1BC,GAAyB,KACzBC,GAA4B,KAC5BC,GAAwB,CACjCjV,SAAS,GAEAkV,GAA2B,CACpClV,SAAS,EACTh/B,SAAS,GChEAm0C,I,qCAAgB10D,GAChB20D,GAAkB70D,MAClB80D,GAAoBhmD,QACpBimD,GAAiB9gB,KACjB+gB,GAAqBxwD,SACrBywD,GAAmBxwC,OACnBywC,GAAmB/zD,OACnBg0D,GAAoBv3C,OACpBw3C,GAAmB11D,OAEnB21D,GAA2B,CAACR,GAAiBG,IAC7CM,GAAyB,CAACT,GAAiBK,IAC3CK,GAAgC,CAACV,GAAiBK,GAAkBE,IACpEI,GAAyB,CAACX,GAAiBO,IAC3CK,GAA2B,CAACX,GAAmBG,IAC/CS,GAAkC,CAACZ,GAAmBG,GAAkBG,IACxEO,GAA2B,CAACb,GAAmBM,IAC/CQ,GAAwB,CAACb,GAAgBK,IACzCS,GAA4B,CAACb,GAAoBI,IACjDU,GAA0B,CAACb,GAAkBG,IAC7CW,GAAiC,CAACd,GAAkBC,GAAkBE,IACtEY,GAA4B,CAACd,GAAkBF,IAC/CiB,GAA0B,CAACf,GAAkBE,ICvB7Cc,GAA4B,kBAC5BC,GAAmB,SACnBC,GAAkB,QAClBC,GAAkB,QAClBC,GAAuB,aACvBC,GAA2B,iBAC3BC,GAAwB,cACxBC,GAAsB,YACtBC,GAAoB,UACpBC,GAAwB,cACxBC,GAAoB,UACpBC,GAA6B,mBAC7BC,GAA0B,gBAC1BC,GAAkB,QAClBC,GAA0B,gBAC1BC,GAAsB,YACtBC,GAAkB,QAClBC,GAAuB,aACvBC,GAAmB,SACnBC,GAAmB,SACnBC,GAAyB,eACzBC,GAAuB,aACvBC,GAAuB,aACvBC,GAAsB,YACtBC,GAAsB,YACtBC,GAAgB,MAChBC,GAAsB,YACtBC,GAA6B,mBAC7BC,GAAkB,QAClBC,GAAsB,YACtBC,GAAiB,OACjBC,GAAoB,UACpBC,GAA2B,iBAC3BC,GAAyB,eACzBC,GAAyB,eACzBC,GAAyB,eACzBC,GAA+B,qBAC/BC,GAAqB,WACrBC,GAAwB,cACxBC,GAA4B,kBAC5BC,GAA2B,iBAC3BC,GAA0B,gBAC1BC,GAA2B,kBAC3BC,GAA0B,iBAC1BC,GAAyB,gBACzBC,GAA2B,iBAC3BC,GAAsB,YACtBC,GAAoB,UACpBC,GAAiB,OACjBC,GAAwB,cACxBC,GAAoB,UACpBC,GAAsB,YACtBC,GAAwB,cACxBC,GAAuB,aACvBC,GAA0B,gBAC1BC,GAA2B,iBAC3BC,GAAqB,WACrBC,GAAuB,aACvBC,GAAiB,OACjBC,GAAsB,YACtBC,GAAkB,QAClBC,GAAwB,cACxBC,GAAoB,UACpBC,GAA2B,iBC7D3BxvD,I,QAAO,WAChB,OAAOzK,MAAMyK,KAAK0D,MAAMnO,MAAOkJ,aAGtBgxD,GAAgB,SAAuBtrD,EAAOxO,GACvD,OAAiC,IAA1BwO,EAAMhC,QAAQxM,IAEZpB,GAAS,WAClB,IAAK,IAAI8wC,EAAO5mC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8vC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1wB,EAAK0wB,GAAQ7mC,UAAU6mC,GAGzB,OAAO/vC,MAAMC,UAAUjB,OAAOmP,MAAM,GAAIkR,IAG/B86C,GAAc,SAAqBz5D,EAAQ05D,GACpD,IAAIC,EAAQt4B,GAAWq4B,GAAUA,EAAS,WACxC,OAAOA,GAET,OAAOp6D,MAAMmO,MAAM,KAAM,CACvBzN,OAAQA,IACPkN,IAAIysD,IAEEC,GAAU,SAAiB1rD,GACpC,OAAOA,EAAM41C,QAAO,SAAUp5C,EAAQ2iB,GACpC,OAAO/uB,GAAOoM,EAAQ2iB,KACrB,KAEMwsC,GAAc,SAASA,EAAY3rD,GAC5C,OAAOA,EAAM41C,QAAO,SAAUp5C,EAAQ2iB,GACpC,OAAO/uB,GAAOoM,EAAQpL,MAAMqQ,QAAQ0d,GAAQwsC,EAAYxsC,GAAQA,KAC/D,KC9BMysC,I,QAAY,SAAmBp6D,GACxC,IAAImlD,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKd,IACnF+qB,EAAUuJ,SAASt8B,EAAO,IAC9B,OAAOw8B,MAAMzJ,GAAWoyB,EAAepyB,IAG9BsnC,GAAU,SAAiBr6D,GACpC,IAAImlD,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKd,IACnFsyD,EAAQC,WAAWv6D,GACvB,OAAOw8B,MAAM89B,GAASnV,EAAemV,GAK5B19B,GAAU,SAAiBtQ,EAAKkuC,GACzC,OAAOH,GAAQ/tC,GAAKsQ,QAAQw9B,GAAUI,EAAW,KCbxCC,I,QAAY,SAAmBt8C,GACxC,OAAOA,EAAIxM,QAAQ8uC,EAAc,OAAOr8B,gBAG/Bs2C,GAAa,SAAoBv8C,GAI1C,OAHAA,EAAMs8C,GAAUt8C,GAAKxM,QAAQyvC,GAAa,SAAUvb,EAAG1kB,GACrD,OAAOA,EAAIA,EAAE8mC,cAAgB,MAExB9pC,EAAIje,OAAO,GAAG+nD,cAAgB9pC,EAAI9O,MAAM,IAKtCsrD,GAAY,SAAmBx8C,GACxC,OAAOA,EAAIxM,QAAQwvC,EAAe,KAAKxvC,QAAQ+uC,GAAgB,SAAUviC,EAAKy8C,EAAIC,GAChF,OAAOD,EAAK,IAAMC,KACjBlpD,QAAQsvC,GAAqB,SAAU9iC,EAAKy8C,EAAIC,GACjD,OAAOD,EAAKC,EAAG5S,kBAIR6S,GAAa,SAAoB38C,GAE1C,OADAA,EAAMqlC,GAASrlC,GAAOA,EAAI2S,OAASxxB,OAAO6e,GACnCA,EAAIje,OAAO,GAAGkkB,cAAgBjG,EAAI9O,MAAM,IAGtC0rD,GAAa,SAAoB58C,GAE1C,OADAA,EAAMqlC,GAASrlC,GAAOA,EAAI2S,OAASxxB,OAAO6e,GACnCA,EAAIje,OAAO,GAAG+nD,cAAgB9pC,EAAI9O,MAAM,IAGtC2rD,GAAe,SAAsB78C,GAC9C,OAAOA,EAAIxM,QAAQkvC,EAAmB,SAK7B7vC,GAAW,SAAkBsb,GACtC,IAAI2uC,EAASnyD,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,EACjF,OAAOw6C,GAAkBh3B,GAAO,GAAKrc,GAAQqc,IAAQq3B,GAAcr3B,IAAQA,EAAItb,WAAajQ,OAAOlB,UAAUmR,SAAWwqB,KAAKF,UAAUhP,EAAK,KAAM2uC,GAAU37D,OAAOgtB,IAG1J4uC,GAAW,SAAkB/8C,GACtC,OAAOnN,GAASmN,GAAKxM,QAAQuvC,EAAc,KAOlCpwB,GAAO,SAAc3S,GAC9B,OAAOnN,GAASmN,GAAK2S,QAGZqqC,GAAY,SAAmBh9C,GACxC,OAAOnN,GAASmN,GAAKiG,eCrDnBg3C,GAAgB9Y,GAAQziD,UACxBw7D,GAAmB,CAAC,SAAU,wBAAyB,QAAS,SAAU,WAAY,aAAc,qBAAqB7tD,KAAI,SAAU2vB,GACzI,MAAO,GAAGv+B,OAAOu+B,EAAG,sCACnBte,KAAK,MAKGy8C,GAAYF,GAAcG,SAAWH,GAAcI,mBAAqBJ,GAAcK,sBAItFC,GAAYN,GAAcO,SAAW,SAAUC,GACxD,IAAIvvD,EAAK1O,KAET,EAAG,CAED,GAAI49D,GAAQlvD,EAAIuvD,GACd,OAAOvvD,EAGTA,EAAKA,EAAGwvD,eAAiBxvD,EAAGyvD,kBACpBzY,GAAOh3C,IAAOA,EAAG0vD,WAAaC,KAAKC,cAE7C,OAAO,MAKEC,IAAapd,EAAOqd,uBAAyBrd,EAAOsd,6BAA+Btd,EAAOud,0BAA4Bvd,EAAOwd,yBAA2Bxd,EAAOyd,wBAI1K,SAAUC,GACR,OAAO1pC,WAAW0pC,EAAI,MACrBvxD,KAAK6zC,GACG2d,GAAc3d,EAAO/3B,kBAAoB+3B,EAAO93B,wBAA0B83B,EAAOD,qBAAuB,KAGxG6d,GAAa,SAAoBrwD,GAC1C,OAAOA,GAAMA,EAAGyvD,YAAczvD,EAAGyvD,WAAWjpC,YAAYxmB,IAG/CswD,GAAY,SAAmBtwD,GACxC,SAAUA,GAAMA,EAAG0vD,WAAaC,KAAKC,eAG5BW,GAAmB,WAC5B,IAAIC,EAAW/zD,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC/Eg0D,EAAgB/d,EAAS+d,cAC7B,OAAOA,IAAkBD,EAASnvD,MAAK,SAAUrB,GAC/C,OAAOA,IAAOywD,KACXA,EAAgB,MAGZC,GAAQ,SAAexrD,EAAKxJ,GACrC,OAAOiJ,GAASO,GAAK6S,gBAAkBpT,GAASjJ,GAAMqc,eAG7C44C,GAAkB,SAAyB3wD,GACpD,OAAOswD,GAAUtwD,IAAOA,IAAOuwD,MAGtBK,GAAY,SAAmB5wD,GACxC,IAAKswD,GAAUtwD,KAAQA,EAAGyvD,aAAeoB,GAASne,EAASoe,KAAM9wD,GAG/D,OAAO,EAGT,GAAgC,SAA5B+wD,GAAS/wD,EAAI,WAIf,OAAO,EAMT,IAAIgxD,EAAMC,GAAOjxD,GACjB,SAAUgxD,GAAOA,EAAIE,OAAS,GAAKF,EAAIG,MAAQ,IAGtCC,GAAa,SAAoBpxD,GAC1C,OAAQswD,GAAUtwD,IAAOA,EAAGqxD,UAAYC,GAAQtxD,EAAI,aAAeuxD,GAASvxD,EAAI,aAGvEwxD,GAAS,SAAgBxxD,GAIlC,OAAOswD,GAAUtwD,IAAOA,EAAGyxD,cAGlBC,GAAY,SAAmBC,EAAUC,GAClD,OAAOC,IAAWvB,GAAUsB,GAAQA,EAAOlf,GAAUof,iBAAiBH,KAG7DI,GAAS,SAAgBJ,EAAUC,GAC5C,OAAQtB,GAAUsB,GAAQA,EAAOlf,GAAUsf,cAAcL,IAAa,MAG7DzC,GAAU,SAAiBlvD,EAAI2xD,GACxC,QAAOrB,GAAUtwD,IAAMivD,GAAUt9D,KAAKqO,EAAI2xD,IAGjCrC,GAAU,SAAiBqC,EAAUC,GAC9C,IAAIK,EAAcx1D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GAEjF,IAAK6zD,GAAUsB,GACb,OAAO,KAGT,IAAI5xD,EAAKqvD,GAAU19D,KAAKigE,EAAMD,GAI9B,OAAOM,EAAcjyD,EAAKA,IAAO4xD,EAAO,KAAO5xD,GAGtC6wD,GAAW,SAAkBp/D,EAAQygE,GAC9C,SAAOzgE,IAAU6jC,GAAW7jC,EAAOo/D,YAAYp/D,EAAOo/D,SAASqB,IAGtDC,GAAU,SAAiBjqD,GACpC,OAAOwqC,EAAS0f,eAAe,KAAKxsD,KAAKsC,GAAMA,EAAGlF,MAAM,GAAKkF,IAAO,MAG3DmqD,GAAW,SAAkBryD,EAAIsyD,GAItCA,GAAahC,GAAUtwD,IAAOA,EAAGwP,WACnCxP,EAAGwP,UAAU3d,IAAIygE,IAIVC,GAAc,SAAqBvyD,EAAIsyD,GAI5CA,GAAahC,GAAUtwD,IAAOA,EAAGwP,WACnCxP,EAAGwP,UAAUgjD,OAAOF,IAIbf,GAAW,SAAkBvxD,EAAIsyD,GAI1C,SAAIA,GAAahC,GAAUtwD,IAAOA,EAAGwP,YAC5BxP,EAAGwP,UAAUqhD,SAASyB,IAMtBG,GAAU,SAAiBzyD,EAAI0yD,EAAM/+D,GAC1C++D,GAAQpC,GAAUtwD,IACpBA,EAAG2yD,aAAaD,EAAM/+D,IAIfi/D,GAAa,SAAoB5yD,EAAI0yD,GAC1CA,GAAQpC,GAAUtwD,IACpBA,EAAG6yD,gBAAgBH,IAKZI,GAAU,SAAiB9yD,EAAI0yD,GACxC,OAAOA,GAAQpC,GAAUtwD,GAAMA,EAAG+yD,aAAaL,GAAQ,MAI9CpB,GAAU,SAAiBtxD,EAAI0yD,GACxC,OAAOA,GAAQpC,GAAUtwD,GAAMA,EAAGgzD,aAAaN,GAAQ,MAG9CO,GAAW,SAAkBjzD,EAAI43C,EAAMjkD,GAC5CikD,GAAQ0Y,GAAUtwD,KACpBA,EAAG+d,MAAM65B,GAAQjkD,IAIVu/D,GAAc,SAAqBlzD,EAAI43C,GAC5CA,GAAQ0Y,GAAUtwD,KACpBA,EAAG+d,MAAM65B,GAAQ,KAKVmZ,GAAW,SAAkB/wD,EAAI43C,GAC1C,OAAOA,GAAQ0Y,GAAUtwD,IAAMA,EAAG+d,MAAM65B,IAAgB,MAM/CqZ,GAAS,SAAgBjxD,GAClC,OAAOswD,GAAUtwD,GAAMA,EAAGmzD,wBAA0B,MAK3CC,GAAQ,SAAepzD,GAChC,IAAIqzD,EAAmB5gB,EAAO4gB,iBAC9B,OAAOA,GAAoB/C,GAAUtwD,GAAMqzD,EAAiBrzD,GAAM,IAMzDszD,GAAS,WAClB,IAAIC,EAAe9gB,EAAO8gB,aAC1B,OAAOA,EAAe9gB,EAAO8gB,eAAiB,MAIrCj3D,GAAS,SAAgB0D,GAGlC,IAAIwzD,EAAU,CACZC,IAAK,EACL/wD,KAAM,GAGR,IAAK4tD,GAAUtwD,IAAsC,IAA/BA,EAAG0zD,iBAAiBz/D,OACxC,OAAOu/D,EAGT,IAAIxC,EAAMC,GAAOjxD,GAEjB,GAAIgxD,EAAK,CACP,IAAI2C,EAAM3zD,EAAG4zD,cAAcC,YAC3BL,EAAQC,IAAMzC,EAAIyC,IAAME,EAAIG,YAC5BN,EAAQ9wD,KAAOsuD,EAAItuD,KAAOixD,EAAII,YAGhC,OAAOP,GAIEhgD,GAAW,SAAkBxT,GAGtC,IAAIwzD,EAAU,CACZC,IAAK,EACL/wD,KAAM,GAGR,IAAK4tD,GAAUtwD,GACb,OAAOwzD,EAGT,IAAIQ,EAAe,CACjBP,IAAK,EACL/wD,KAAM,GAEJuxD,EAAWb,GAAMpzD,GAErB,GAA0B,UAAtBi0D,EAASzgD,SACXggD,EAAUvC,GAAOjxD,IAAOwzD,MACnB,CACLA,EAAUl3D,GAAO0D,GACjB,IAAIk0D,EAAMl0D,EAAG4zD,cACTO,EAAen0D,EAAGm0D,cAAgBD,EAAI9gB,gBAE1C,MAAO+gB,IAAiBA,IAAiBD,EAAIpD,MAAQqD,IAAiBD,EAAI9gB,kBAAqD,WAAjCggB,GAAMe,GAAc3gD,SAChH2gD,EAAeA,EAAa1E,WAG9B,GAAI0E,GAAgBA,IAAiBn0D,GAAMm0D,EAAazE,WAAaC,KAAKC,aAAc,CACtFoE,EAAe13D,GAAO63D,GACtB,IAAIC,EAAqBhB,GAAMe,GAC/BH,EAAaP,KAAOzF,GAAQoG,EAAmBC,eAAgB,GAC/DL,EAAatxD,MAAQsrD,GAAQoG,EAAmBE,gBAAiB,IAIrE,MAAO,CACLb,IAAKD,EAAQC,IAAMO,EAAaP,IAAMzF,GAAQiG,EAASM,UAAW,GAClE7xD,KAAM8wD,EAAQ9wD,KAAOsxD,EAAatxD,KAAOsrD,GAAQiG,EAASO,WAAY,KAK/DC,GAAc,WACvB,IAAIC,EAASj4D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK2Q,SACjF,OAAOskD,GAAU1C,GAAkB0F,GAAQtzD,OAAOwvD,IAAWxvD,QAAO,SAAUpB,GAC5E,OAAOA,EAAG20D,UAAY,IAAM30D,EAAGqxD,aAIxBuD,GAAe,SAAsB50D,GAC9C,IAAI/O,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAElF,IACEuD,EAAG60D,MAAM5jE,GACT,MAAOiiD,IAET,OAAOyd,GAAgB3wD,IAGd80D,GAAc,SAAqB90D,GAC5C,IACEA,EAAG+0D,OACH,MAAOC,IAET,OAAQrE,GAAgB3wD,IC5Tfi1D,GAAU,SAAiBhxD,GACpC,IAAIixD,EAAQ/hE,GAAO,MACnB,OAAO,WACL,IAAK,IAAIkwC,EAAO5mC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8vC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1wB,EAAK0wB,GAAQ7mC,UAAU6mC,GAGzB,IAAI6xB,EAAUhmC,KAAKF,UAAUrc,GAC7B,OAAOsiD,EAAMC,GAAWD,EAAMC,IAAYlxD,EAAGvC,MAAM,KAAMkR,KCJzDwiD,GAAWrb,EAAAA,WAAAA,UAUJsb,GAAiB,SAAwBzhE,GAClD,IAAIklD,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,QAAKhJ,EACnF6hE,EAAWF,GAASzhB,GACxB,OAAO2hB,EAAWA,EAASD,eAAezhE,EAAKklD,GAAgBD,GAAUC,IAGhEyc,GAAqB,SAA4B3hE,GAC1D,IAAI4hE,EAAU/4D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAC9Eq8C,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,QAAKhJ,EAGvF,OAAO+hE,EAAUH,GAAe,GAAG9iE,OAAOqB,EAAK,KAAKrB,OAAOijE,GAAU1c,GAAgBuc,GAAezhE,EAAK,KAGhG6hE,GAAiB,WAC1B,OAAOJ,GAAe,cAAezhB,IAGnC8hB,GAAwBT,IAAQ,WAClC,OAAOQ,QAIEE,GAAuB,WAChC,OAAO9c,GAAU6c,OAWRE,GAAyBX,IAAQ,WAC1C,IAAIY,EAAcF,KAElB,OADAE,EAAY,GAAK,GACVA,KCrDT,SAAShsD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAIw8C,GAAiB,SAAwBC,EAAQpiE,GAC1D,OAAOoiE,EAASrH,GAAW/6D,IAGlBqiE,GAAmB,SAA0BD,EAAQpiE,GAC9D,OAAO86D,GAAW96D,EAAM2R,QAAQywD,EAAQ,MAK/BE,GAAiB,SAAwBC,EAAQviE,GAC1D,OAAOA,GAASuiE,EAASxH,GAAWwH,GAAU,KAGrCC,GAAW,WACpB,IAAIzvD,EAAOjK,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK0rD,GAC3Ex0D,EAAQ8I,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,QAAKhJ,EAC5E2iE,EAAsB35D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,QAAKhJ,EAC1F4iE,EAAY55D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,QAAKhJ,EAChFw1B,GAAmC,IAAxBmtC,EAEf,OADAC,EAAYptC,EAAWotC,EAAYD,EAC5BjwB,GAAcA,GAAcA,GAAc,GAAIz/B,EAAO,CAC1DA,KAAMA,GACJ,IAAKuiB,EAAW,CAClBA,SAAUA,GACR8tB,GAAYpjD,GAAS,GAAK,CAC5B2iE,QAASjiE,GAASV,GAAS,WACzB,OAAOA,GACLA,IACFojD,GAAYsf,GAAa,GAAK,CAChCA,UAAWA,KAOJE,GAAY,SAAmB93C,GACxC,IAAI+3C,EAAc/5D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKs8C,GAEtF,GAAIn1C,GAAQ6a,GACV,OAAOA,EAAMtd,IAAIq1D,GAGnB,IAAIC,EAAS,GAEb,IAAK,IAAI7e,KAAQn5B,EAEXnM,GAAemM,EAAOm5B,KAGxB6e,EAAOD,EAAY5e,IAASvjD,GAASoqB,EAAMm5B,IAASC,GAAMp5B,EAAMm5B,IAASn5B,EAAMm5B,IAInF,OAAO6e,GAKEC,GAAa,SAAoBC,EAAaC,GACvD,IAAIJ,EAAc/5D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKs8C,GACtF,OAAQn1C,GAAQ+yD,GAAeA,EAAY3zD,QAAUpH,GAAK+6D,IAAc5e,QAAO,SAAUt1C,EAAMm1C,GAE7F,OADAn1C,EAAK+zD,EAAY5e,IAASgf,EAAWhf,GAC9Bn1C,IACN,KAKMo0D,GAAuB,SAA8Bjf,EAAMhkD,EAAKkjE,GACzE,OAAO3wB,GAAcA,GAAc,GAAI0S,GAAUjB,IAAQ,GAAI,CAC3D0e,QAAS,WACP,IAAI3iE,EAAQ4hE,GAAmBuB,EAAcljE,EAAKgkD,EAAK0e,SACvD,OAAOhhC,GAAW3hC,GAASA,IAAUA,MAOhCojE,GAAwB,SAA+Bt4C,EAAOq4C,GACvE,OAAOl7D,GAAK6iB,GAAOs5B,QAAO,SAAUp5C,EAAQ/K,GAC1C,OAAOuyC,GAAcA,GAAc,GAAIxnC,GAAS,GAAIynC,GAAgB,GAAIxyC,EAAKijE,GAAqBp4C,EAAM7qB,GAAMA,EAAKkjE,OAClH,KAKDE,GAAgCH,GAAqB,GAAI,GAAI,IAAIP,QAAQ56D,KAGlEu7D,GAAkB,SAAyBhzD,GACpD,OAAOqxB,GAAWrxB,IAAOA,EAAGvI,MAAQuI,EAAGvI,OAASs7D,IC3GlD,SAAS5wB,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAMpM,IAAI49C,GAAiB,SAAwBtf,GAClD,IAAIyC,EAAO59C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC3E06D,EAAY9c,EAAK3zC,KACjBA,OAAqB,IAAdywD,EAAuBhP,GAAgBgP,EAC9CC,EAAoB/c,EAAKvB,aACzBA,OAAqC,IAAtBse,OAA+B3jE,EAAY2jE,EAC1DC,EAAiBhd,EAAKgc,UACtBA,OAA+B,IAAnBgB,OAA4B5jE,EAAY4jE,EACpDC,EAAajd,EAAKz0B,MAClBA,OAAuB,IAAf0xC,EAAwBxR,GAAmBwR,EAEnD74C,EAAQ2nB,GAAgB,GAAIwR,EAAMue,GAASzvD,EAAMoyC,EAAcud,IAG/DkB,EAAQxd,EAAAA,WAAAA,OAAW,CACrByd,MAAO,CACL5f,KAAMA,EACNhyB,MAAOA,GAETnH,MAAOA,IAET,MAAO,CACL84C,MAAOA,EACP94C,MAAOA,EACPm5B,KAAMA,EACNhyB,MAAOA,ICfA6xC,GAAoB,SAA2Bh4C,GACxD,IAAIi4C,EAAej7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GACnFk7D,EAASl7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAIjF,OAFAgjB,EAAQltB,GAAOktB,GAAOre,OAAO23C,IAEtBt5B,EAAMpe,MAAK,SAAU3F,GAC1B,OAAOg8D,EAAah8D,IAASi8D,EAAOj8D,OAa7Bk8D,GAAgB,SAAuBn4C,GAChD,IAKIo4C,EALAC,EAAQr7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC5Ei7D,EAAej7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GACnFk7D,EAASl7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAEjFgjB,EAAQltB,GAAOktB,GAAOre,OAAO23C,IAG7B,IAAK,IAAIv9C,EAAI,EAAGA,EAAIikB,EAAMxrB,SAAW4jE,EAAMr8D,IAAK,CAC9C,IAAIE,EAAO+jB,EAAMjkB,GACjBq8D,EAAOH,EAAah8D,IAASi8D,EAAOj8D,GAItC,OAAO45B,GAAWuiC,GAAQA,EAAKC,GAASD,GC7C/BE,GAAqBhe,EAAAA,WAAAA,OAAW,CACzCztC,QAAS,CAGPmrD,kBAAmB,WACjB,IAAI/7D,EAAOe,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKwtD,GAC3E+N,EAAcv7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKnL,KAAKomE,aACvFO,EAAQx7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKnL,KAAKqmE,OACrF,OAAOO,GAAmBx8D,EAAMs8D,EAAaC,IAI/CL,cAAe,WACb,IAAIl8D,EAAOe,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKwtD,GAC3E6N,EAAQr7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC5Eu7D,EAAcv7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKnL,KAAKomE,aACvFO,EAAQx7D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKnL,KAAKqmE,OAEjFQ,EAASC,GAAe18D,EAAMo8D,EAAOE,EAAaC,GAEtD,OAAOE,EAAS5lE,GAAO4lE,GAAUA,MCjB5BE,GAAoB,SAA2BpnE,GAExD,OAAI6hD,EACKz+C,GAASpD,GAAWA,EAAU,CACnC+iB,UAAW/iB,IAAW,MAIdoD,GAASpD,GAAWA,EAAQ+iB,QAAU/iB,IAIzCqnE,GAAU,SAAiBt4D,EAAIu4D,EAAWtyC,EAASh1B,GACxD+O,GAAMA,EAAGsmB,kBACXtmB,EAAGsmB,iBAAiBiyC,EAAWtyC,EAASoyC,GAAkBpnE,KAInDunE,GAAW,SAAkBx4D,EAAIu4D,EAAWtyC,EAASh1B,GAC1D+O,GAAMA,EAAGizC,qBACXjzC,EAAGizC,oBAAoBslB,EAAWtyC,EAASoyC,GAAkBpnE,KAKtDwnE,GAAa,SAAoBC,GAG1C,IAFA,IAAIp2D,EAASo2D,EAAKJ,GAAUE,GAEnBn1B,EAAO5mC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8vC,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClG1wB,EAAK0wB,EAAO,GAAK7mC,UAAU6mC,GAG7BhhC,EAAOZ,WAAM,EAAQkR,IAGZ+lD,GAAY,SAAmB/yC,GACxC,IAAIy0B,EAAO59C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC3Em8D,EAAsBve,EAAKwe,eAC3BA,OAAyC,IAAxBD,GAAwCA,EACzDE,EAAmBze,EAAK0e,YACxBA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAwB3e,EAAK4e,qBAC7BA,OAAiD,IAA1BD,GAA2CA,EAElEH,GACFjzC,EAAMizC,iBAGJE,GACFnzC,EAAMszC,kBAGJD,GACFrzC,EAAMuzC,4BAMNC,GAAmB,SAA0BzlE,GAC/C,OAAOy6D,GAAUz6D,EAAM2R,QAAQwuC,EAAc,MAKpCulB,GAAmB,SAA0B39D,EAAM68D,GAC5D,MAAO,CAACxQ,GAAwBqR,GAAiB19D,GAAO68D,GAAW/lD,KAAKw1C,KAI/DsR,GAAyB,SAAgC59D,EAAM69D,GACxE,MAAO,CAACxR,GAAwBwR,EAAYH,GAAiB19D,IAAO8W,KAAKw1C,KC/E3E,SAAS5hB,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAWpM,IAAImF,GAAQs4C,GAAsB,CACvCyC,UAAWrD,GAASxN,GAAkB,SACtCtrC,QAAS84C,GAASxN,GAAkB,WACpC0I,SAAU8E,GAAS9N,IAAmB,GACtCoR,YAAatD,GAASxN,KACrB9L,IAGQ6c,GAA4B3f,EAAAA,WAAAA,OAAW,CAChDr+C,KAAMmhD,GACN1rD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZ2wD,EAAQ5d,EAAK4d,MACbD,EAAc3d,EAAK2d,YACnBL,EAASM,IACTP,EAAeM,GAAe,GAC9B2B,EAAgB,CAClBC,YAAa,QACbC,MAAOzzB,GAAgB,GAAI,QAAQ7zC,OAAOksB,EAAMg7C,aAAch7C,EAAMg7C,aACpEK,MAAO,CACLpzD,KAAM,SACN2qD,SAAU5yC,EAAM4yC,SAChB,aAAc5yC,EAAM+6C,UAAYvmE,OAAOwrB,EAAM+6C,WAAa,MAE5Dd,GAAI,CACFqB,MAAO,SAAen0C,GAIhBnH,EAAM4yC,UAAY9Z,GAAQ3xB,IAC5B+yC,GAAU/yC,MAYlB,OANK6xC,GAAkBxN,GAAmByN,EAAcC,KACtDgC,EAAcK,SAAW,CACvBC,UAAWx7C,EAAMpB,UAIdjrB,EAAE,SAAU6pD,GAAU30C,EAAMqyD,GAAgB/B,GAAc3N,GAAmB,GAAIyN,EAAcC,OCxD1G,SAAS9tD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAa3M,ICjBI4gD,GDiBAC,GAAgB,CAClBz+D,KAAM,GACN0+D,WAAY,GACZC,iBAAkB,GAClBC,aAAc,OACdC,WAAY,OACZC,iBAAkB,GAClBC,aAAc,IAGZC,GAAav0B,GAAcA,GAAc,GAAIg0B,IAAgB,GAAI,CACnEE,iBAAkB,OAClBG,iBAAkB,SAIT/7C,GAAQ,CAEjBk8C,OAAQxE,GAAS9N,IAAmB,GAEpC5kC,KAAM0yC,GAASxN,IAGfiS,OAAQzE,GAAS9N,IAAmB,GAEpCwS,WAAY1E,GAAS1N,KAIZqS,GAA4B/gB,EAAAA,WAAAA,OAAW,CAChDr+C,KAAMwoD,GACN/yD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI0gB,EAAW1gB,EAAK0gB,SAChBzzD,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACbo8C,EAAap8C,EAAMo8C,WAsBvB,OApBKvjB,GAAcujB,KACjBA,EAAap8C,EAAMm8C,OAAST,GAAgBO,GAExCj8C,EAAMk8C,SAERE,EAAa10B,GAAcA,GAAc,GAAI00B,GAAa,GAAI,CAC5DF,QAAQ,EACRK,YAAaH,EAAWT,WACxBa,kBAAmBJ,EAAWR,iBAC9Ba,cAAeL,EAAWP,iBAKhCO,EAAa10B,GAAcA,GAAc,CACvC1iB,KAAMhF,EAAMgF,MACXo3C,GAAa,GAAI,CAElBM,KAAK,IAEA/oE,EAAE,aACT6pD,GAAU30C,EAAM,CACdmX,MAAOo8C,IACLE,MC7ER,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAiB3M,IAAI8hD,GAAkBlE,GAAe,OAAQ,CAC3CxwD,KAAMuiD,GACNnQ,cAAc,IAEZuiB,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAInC61C,GAAiB,SAAwBC,GAC3C,MAAa,KAATA,GAAexkB,GAAUwkB,GACpB,GAGTA,EAAO3N,GAAU2N,EAAM,GAChBA,EAAO,EAAIA,EAAO,IAIvBC,GAAY,SAAmBD,GACjC,MAAa,KAATA,IAAwB,IAATA,KAIf3N,GAAU2N,EAAM,GAAK,MAKhBA,GAIAj9C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIm1B,IAAa,GAAI,CACjGM,aAAczF,GAASxN,GAAkB,SACzCkT,YAAa1F,GAAS9N,IAAmB,GACzCyT,KAAM3F,GAAS9N,IAAmB,GAClC0T,QAAS5F,GAASxN,GAAkB,WACjCvM,IAGM4f,GAAsBjiB,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAM0gD,GACN6f,OAAQ,CAACZ,GAAYtD,IACrBt5C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL40D,UAAW,EAEXC,UAAWR,GAAUrqE,KAAKiqE,OAG9Ba,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,GACtE/qE,KAAK4qE,UAAYT,GAAeY,GAChC/qE,KAAK6qE,UAAYR,GAAUU,MACzBj2B,GAAgB8zB,GAAQ,aAAa,SAAmBmC,GAC1D,IAAIr4B,EAAQ1yC,KAEZA,KAAKgrE,yBACL,IAAIZ,EAAOpqE,KAAKiqE,IAEZlkB,GAAUqkB,KACZpqE,KAAKirE,MAAMrX,GAA+BmX,GAEtCX,IAASW,GACX/qE,KAAKirE,MAAMf,GAAkBa,GAG3BA,EAAW,GACb/qE,KAAK6qE,WAAY,EACjB7qE,KAAKkrE,mBAAqB/1C,YAAW,WACnCud,EAAMk4B,cACL,MAGH5qE,KAAKmrE,WAAU,WACb5M,IAAU,WACR7rB,EAAMm4B,WAAY,YAKxB/1B,GAAgB8zB,GAAQ,aAAa,SAAmBmC,GAC1D,IAAIX,EAAOpqE,KAAKiqE,IAEXc,IAAa/qE,KAAKuqE,cAAexkB,GAAUqkB,IAC9CpqE,KAAKirE,MAAMtX,IAIR5N,GAAUqkB,IAASA,IAASW,GAC/B/qE,KAAKirE,MAAMf,GAAkBa,MAE7BnC,IACJwC,QAAS,WAEPprE,KAAKqrE,cAAgB,KACrB,IAAIjB,EAAOpqE,KAAKiqE,IAChBjqE,KAAK4qE,UAAYT,GAAeC,GAChCpqE,KAAK6qE,UAAYR,GAAUD,IAE7BkB,cAAe,WACbtrE,KAAKgrE,0BAEPhwD,QAAS,CACPuwD,QAAS,WACPvrE,KAAKgrE,yBACLhrE,KAAK4qE,UAAY,EACjB5qE,KAAK6qE,WAAY,GAEnBG,uBAAwB,WACtBQ,aAAaxrE,KAAKkrE,oBAClBlrE,KAAKkrE,mBAAqB,OAG9B/rE,OAAQ,SAAgB2B,GACtB,IAAI2qE,EAAS3qE,IAEb,GAAId,KAAK6qE,UAAW,CAClB,IAAIN,EAAcvqE,KAAKuqE,YACnBE,EAAUzqE,KAAKyqE,QACfiB,EAAiB5qE,IAEjBypE,IAEFmB,EAAiB5qE,EAAEsnE,GAAc,CAC/BI,MAAO,CACL,aAAcxoE,KAAKsqE,cAErBlD,GAAI,CACFqB,MAAOzoE,KAAKurE,UAEb,CAACvrE,KAAKsmE,cAAczN,OAGzB4S,EAAS3qE,EAAE,MAAO,CAChBwnE,YAAa,QACbC,MAAOzzB,GAAgB,CACrB,oBAAqBy1B,GACpB,SAAStpE,OAAOwpE,GAAUA,GAC7BjC,MAAO,CACLmD,KAAM,QACN,YAAa,SACb,eAAe,GAEjBrpE,IAAKtC,KAAK6qD,KACT,CAAC6gB,EAAgB1rE,KAAKsmE,kBAG3B,OAAOxlE,EAAE0oE,GAAc,CACrBr8C,MAAO,CACLm8C,QAAStpE,KAAKwqE,OAEf,CAACiB,OChLJG,GAA2BpiB,GAAc,CAC3CR,WAAY,CACV0hB,OAAQA,MCHDmB,GAAUz/D,KAAKD,IACf2/D,GAAU1/D,KAAKkF,IACfy6D,GAAU3/D,KAAK6W,IACf+oD,GAAW5/D,KAAKic,KAChB4jD,GAAY7/D,KAAKuF,MACjBu6D,GAAU9/D,KAAK8W,IACfipD,GAAY//D,KAAKiqB,MCP5B,SAASukB,GAAeC,EAAK3wC,GAAK,OAAO4wC,GAAgBD,IAAQE,GAAsBF,EAAK3wC,IAAM+8C,GAA4BpM,EAAK3wC,IAAM8wC,KAEzI,SAASA,KAAqB,MAAM,IAAI15C,UAAU,6IAElD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASC,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAEhL,SAASvM,GAAsBF,EAAK3wC,GAAK,IAAIoxC,EAAY,MAAPT,EAAc,KAAyB,qBAAXj/B,QAA0Bi/B,EAAIj/B,OAAO1N,WAAa2sC,EAAI,cAAe,GAAU,MAANS,EAAJ,CAAwB,IAAkDD,EAAID,EAAlDH,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKG,EAAKA,EAAGj7C,KAAKw6C,KAAQK,GAAMG,EAAKC,EAAGntC,QAAQE,MAAO6sC,GAAK,EAA6B,GAArBD,EAAKjsC,KAAKqsC,EAAGh5C,OAAY6H,GAAK+wC,EAAKt4C,SAAWuH,EAAG,MAAW,MAAOynC,GAAOwJ,GAAK,EAAMC,EAAKzJ,EAApK,QAAqL,IAAWuJ,GAAsB,MAAhBI,EAAG,WAAmBA,EAAG,YAA1C,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOH,GAE1f,SAASH,GAAgBD,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOA,EAW/D,IAAIuxB,GAAa,WAENj/C,GAAQs4C,GAAsB,CAGvC4G,OAAQxH,GAAS9M,GAAyB,OAC1CnkD,IAAKixD,GAASxN,GAAkB,QAC/BtM,IAGQuhB,GAAuB7jB,EAAAA,WAAAA,OAAW,CAC3Cr+C,KAAM2gD,GACN4f,OAAQ,CAAClE,IACTt5C,MAAOA,GACPo/C,SAAU,CACRC,QAAS,WACP,IAAIH,EAASrsE,KAAKqsE,OACdI,EAAQ,EAEZ,GAAIxoB,EAAU3vC,KAAK+3D,GAAS,CAG1B,IAAIK,EAAoBL,EAAOrtD,MAAMklC,GAAqBr0C,KAAI,SAAUmsB,GACtE,OAAO0gC,GAAQ1gC,IAAM,KAEnB2wC,EAAqB/xB,GAAe8xB,EAAmB,GACvD7M,EAAQ8M,EAAmB,GAC3B/M,EAAS+M,EAAmB,GAEhCF,EAAQ5M,EAAQD,OAEhB6M,EAAQ/P,GAAQ2P,IAAW,EAG7B,MAAO,GAAGprE,OAAO,IAAM8qE,GAAQU,GAAQ,OAG3CttE,OAAQ,SAAgB2B,GACtB,IAAI8rE,EAAS9rE,EAAE,MAAO,CACpBwnE,YAAa,GAAGrnE,OAAOmrE,GAAY,sBACnC3/C,MAAO,CACLogD,cAAe7sE,KAAKwsE,QACpB5M,OAAQ,KAGRkN,EAAWhsE,EAAE,MAAO,CACtBwnE,YAAa,GAAGrnE,OAAOmrE,GAAY,qCACnC3/C,MAAO,CACLy2C,WAAY,UAEbljE,KAAKsmE,iBACR,OAAOxlE,EAAEd,KAAK4T,IAAK,CACjB00D,YAAa,GAAGrnE,OAAOmrE,GAAY,YAClC,CAACQ,EAAQE,OCxEZC,GAA4BvjB,GAAc,CAC5CR,WAAY,CACVsjB,QAASA,MCCTU,GAAa,IAEbC,GAAwB,SAA+BzpD,GACzD,MAAO,IAAMA,EAAEgP,WAAW,GAAGnf,SAAS,KAMpC65D,GAAS,SAAgB1sD,GAC3B,OAAO2sD,mBAAmB95D,GAASmN,IAAMxM,QAAQ+vC,EAAmBkpB,IAAuBj5D,QAAQ8vC,EAAkB,MAGnHspB,GAASC,mBAGFC,GAAoB,SAA2BtlD,GACxD,IAAKg+B,GAAch+B,GACjB,MAAO,GAGT,IAAIulD,EAAQjjE,GAAK0d,GAAKnY,KAAI,SAAUvN,GAClC,IAAID,EAAQ2lB,EAAI1lB,GAEhB,OAAImjD,GAAYpjD,GACP,GACEqjD,GAAOrjD,GACT6qE,GAAO5qE,GACLgQ,GAAQjQ,GACVA,EAAMokD,QAAO,SAAUle,EAASilC,GAQrC,OAPI9nB,GAAO8nB,GACTjlC,EAAQv5B,KAAKk+D,GAAO5qE,IACVmjD,GAAY+nB,IAEtBjlC,EAAQv5B,KAAKk+D,GAAO5qE,GAAO,IAAM4qE,GAAOM,IAGnCjlC,IACN,IAAIrnB,KAAK,KAIPgsD,GAAO5qE,GAAO,IAAM4qE,GAAO7qE,MAGnCyN,QAAO,SAAUyY,GAChB,OAAOA,EAAE5lB,OAAS,KACjBue,KAAK,KACR,OAAOqsD,EAAQ,IAAItsE,OAAOssE,GAAS,IAE1BE,GAAa,SAAoBF,GAC1C,IAAIG,EAAS,GAGb,OAFAH,EAAQl6D,GAASk6D,GAAOp6C,OAAOnf,QAAQgwC,EAAgB,IAElDupB,GAILA,EAAMvuD,MAAM,KAAK9R,SAAQ,SAAUygE,GACjC,IAAIC,EAAQD,EAAM35D,QAAQivC,EAAS,KAAKjkC,MAAM,KAC1C1c,EAAM8qE,GAAOQ,EAAMj5B,SACnBtyC,EAAQurE,EAAMjrE,OAAS,EAAIyqE,GAAOQ,EAAM1sD,KAAK,MAAQ,KAErDukC,GAAYioB,EAAOprE,IACrBorE,EAAOprE,GAAOD,EACLiQ,GAAQo7D,EAAOprE,IACxBorE,EAAOprE,GAAK0M,KAAK3M,GAEjBqrE,EAAOprE,GAAO,CAACorE,EAAOprE,GAAMD,MAGzBqrE,GAhBEA,GAkBAG,GAAS,SAAgB1gD,GAClC,SAAUA,EAAM2gD,OAAQ3gD,EAAM1gB,KAErBshE,GAAe,SAAsBn6D,GAC9C,SAAUA,GAAQwrD,GAAMxrD,EAAK,OAEpBo6D,GAAa,SAAoBjlB,EAAMklB,GAChD,IAAIxhE,EAAKs8C,EAAKt8C,GACVszD,EAAWhX,EAAKgX,SAChBmO,EAAsBnlB,EAAKmlB,oBAC3BC,IAAcF,EAAaG,QAE/B,OAAKD,GAAaA,IAAcpO,IAAatzD,GACpCugE,GAWFkB,IAAwBD,EAAaI,MAAQ,YAAc,gBAEzDC,GAAa,WACtB,IAAIC,EAAQpjE,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC5EmB,EAASiiE,EAAMjiE,OACfkiE,EAAMD,EAAMC,IAEhB,MAAkB,WAAXliE,GAAuBo5C,GAAO8oB,GAAO,WAAaA,GAAO,MAEvDC,GAAc,WACvB,IAAIC,EAAQvjE,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC5E2iE,EAAOY,EAAMZ,KACbrhE,EAAKiiE,EAAMjiE,GAEXmH,EAAMzI,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK6hE,GAC1EnlB,EAAW18C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,IAC/EwjE,EAAaxjE,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,IAGrF,GAAI2iE,EACF,OAAOA,EAMT,GAAIC,GAAan6D,GACf,OAAO,KAIT,GAAIiyC,GAASp5C,GACX,OAAOA,GAAMkiE,EAIf,GAAI3oB,GAAcv5C,KAAQA,EAAGiP,MAAQjP,EAAG8gE,OAAS9gE,EAAGmiE,MAAO,CACzD,IAAIlzD,EAAOrI,GAAS5G,EAAGiP,MACnB6xD,EAAQD,GAAkB7gE,EAAG8gE,OAC7BqB,EAAOv7D,GAAS5G,EAAGmiE,MAEvB,OADAA,EAAQA,GAA2B,MAAnBA,EAAKrsE,OAAO,GAAoB,IAAItB,OAAO2tE,GAAlBA,EAClC,GAAG3tE,OAAOya,GAAMza,OAAOssE,GAAOtsE,OAAO2tE,IAASD,EAIvD,OAAO9mB,GCnJT,SAAS/S,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAY3M,IAAI6mD,GAAa,CACfC,QAAS,YACTjP,MAAO,MACPD,OAAQ,MACRmP,UAAW,QACXpD,KAAM,MACN,aAAc,QAGZqD,GAAgB,CAClBnP,MAAO,KACPD,OAAQ,KACRmP,UAAW,KACXpD,KAAM,KACN,aAAc,MAGLx+C,GAAQ,CACjB8hD,UAAWpK,GAASxN,IACpBtrC,QAAS84C,GAASxN,IAClB6X,MAAOrK,GAAS9N,IAAmB,GACnCoY,MAAOtK,GAAS9N,IAAmB,GACnCqY,UAAWvK,GAAS9M,GAAyB,GAC7CsX,OAAQxK,GAAS9M,GAAyB,GAC1CuX,MAAOzK,GAAS9M,GAAyB,GACzCwX,OAAQ1K,GAAS9M,GAAyB,GAC1CyX,OAAQ3K,GAAS9M,GAAyB,GAC1C0X,QAAS5K,GAAS9N,IAAmB,GACrC2Y,MAAO7K,GAASxN,IAChBoT,QAAS5F,GAASxN,KAKTsY,GAA0BlnB,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAMukD,GACN9uD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI6mB,EAEA55D,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACbs8C,EAAW1gB,EAAK0gB,SAChBwF,EAAY9hD,EAAM8hD,UAClBljD,EAAUoB,EAAMpB,QAChBmjD,EAAQ/hD,EAAM+hD,MACdC,EAAQhiD,EAAMgiD,MACdM,EAAUtiD,EAAMsiD,QAChBC,EAAQviD,EAAMuiD,MACdjF,EAAUt9C,EAAMs9C,QAChB2E,EAAYtD,GAAQpP,GAAQvvC,EAAMiiD,UAAW,GAAI,IAAM,EACvDE,EAAQxD,GAAQpP,GAAQvvC,EAAMmiD,MAAO,GAAI,IAAM,EAC/CD,EAAS3S,GAAQvvC,EAAMkiD,OAAQ,GAC/BE,EAAS7S,GAAQvvC,EAAMoiD,OAAQ,GAC/BC,EAAS9S,GAAQvvC,EAAMqiD,OAAQ,GAM/BK,EAAWX,GAASC,GAAmB,IAAVG,EAC7BQ,EAAgBD,GAAYR,EAC5BU,EAAWR,GAAUC,EACrBQ,GAAcrqB,GAAkB55B,GAChCkkD,EAAa,CAACH,EAAgB,iBAAmB,KAAMD,EAAW,SAAS5uE,QAAQiuE,GAAS,EAAI,GAAKI,EAAO,KAAKruE,QAAQkuE,GAAS,EAAI,GAAKG,EAAO,KAAO,KAAMD,EAAS,UAAUpuE,OAAOouE,EAAQ,KAAO,KAAMS,EAAgB,mBAAqB,MAAMhgE,OAAO23C,IAEhQyoB,EAASpvE,EAAE,IAAK,CAClB0nE,MAAO,CACL2H,UAAWF,EAAW/uD,KAAK,MAAQ,MAErCwnD,SAAUsH,EAAa,CACrBrH,UAAW58C,GAAW,IACpB,IACH09C,GAECsG,IACFG,EAASpvE,EAAE,IAAK,CACd0nE,MAAO,CACL2H,UAAW,aAAalvE,OAAO,GAAKsuE,EAAS,GAAI,KAAKtuE,QAAQ,GAAKuuE,EAAS,GAAI,OAEjF,CAACU,KAIFT,IACFS,EAASpvE,EAAE,IAAK,CAACovE,KAGnB,IAAIE,EAASV,EAAQ5uE,EAAE,QAAS4uE,GAAS,KACrC5C,EAAW,CAACsD,EAAQF,GAAQpgE,OAAO23C,IACvC,OAAO3mD,EAAE,MAAO6pD,GAAU,CACxB2d,YAAa,YACbC,OAAQqH,EAAS,GAAI96B,GAAgB86B,EAAQ,QAAQ3uE,OAAOwpE,GAAUA,GAAU31B,GAAgB86B,EAAQ,oBAAoB3uE,OAAOguE,GAAYA,GAAYW,GAC3JpH,MAAOqG,GACPpiD,MAAOgjD,EAAU,GAAK,CACpBY,SAAwB,IAAdjB,EAAkB,KAAO,GAAGnuE,OAAmB,IAAZmuE,EAAiB,OAGlEp5D,EACAy5D,EAAU,CACRjH,MAAOwG,IACL,GACJ,CACExG,MAAO,CACL8H,MAAOb,EAAU,KAAO,6BACxB/mE,KAAM,kBAENokE,MCxHR,SAASv0D,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAM3M,IAAIuoD,GAAY7pB,GAAK8pB,GAAiB,CAAC,YAS5BC,GAAW,SAAkBrmE,EAAM2hB,GAG5C,IAAI2kD,EAAY5T,GAAU1yD,GACtBumE,EAAW,QAAQ1vE,OAAO87D,GAAW3yD,IACrCwmE,EAAgB,MAAM3vE,OAAOyvE,GAC7BG,EAAYH,EAAU18D,QAAQ,KAAM,KACpC88D,EAAa39C,GAAKpH,GAAW,IACjC,OAAoB08B,EAAAA,WAAAA,OAAW,CAC7Br+C,KAAMumE,EACN9wE,YAAY,EACZstB,MAAOojD,GACPpxE,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI/yC,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACjB,OAAOrsB,EAAE6uE,GAAYhlB,GACrB,CACEx9B,MAAO,CACLuiD,MAAOmB,GAETrI,MAAO,CACL,aAAcqI,IAGlB76D,EACA,CACEsyD,YAAasI,EACbzjD,MAAO0nB,GAAcA,GAAc,GAAI1nB,GAAQ,GAAI,CACjDpB,QAAS+kD,WClCRC,GAAwBN,GAAS,QAAQ,IAsOzCO,GAA2BP,GAAS,WAAW,iMA2C/CQ,GAA+BR,GAAS,eAAe,+JA4GvDS,GAAiCT,GAAS,iBAAiB,uNAS3DU,GAAoCV,GAAS,oBAAoB,6SAGjEW,GAA8BX,GAAS,cAAc,0JAErDY,GAA8BZ,GAAS,cAAc,yJAErDa,GAA4Bb,GAAS,YAAY,yIAEjDc,GAA6Bd,GAAS,aAAa,iCASnDe,GAAwBf,GAAS,QAAQ,mLACzCgB,GAA4BhB,GAAS,YAAY,qIAyFjDiB,GAAuBjB,GAAS,OAAO,yEAqgBvCkB,GAA6BlB,GAAS,aAAa,0FAiCnDmB,GAAuBnB,GAAS,OAAO,qHA0JvCoB,GAAuBpB,GAAS,OAAO,2fACvCqB,GAA2BrB,GAAS,WAAW,0QAC/CsB,GAA2BtB,GAAS,WAAW,mgBA2J/CuB,GAAoBvB,GAAS,IAAI,+MC51C5C,SAASl4D,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAY3M,IAAIiqD,GAAoB,SAASA,EAAkBp4B,EAAK82B,GACtD,IAAK92B,EACH,OAAO4O,EAAAA,WAAAA,UAAckoB,GAGvB,IAAI3nB,GAAcnP,EAAIn5C,UAAY,IAAIsoD,WAClCkpB,EAAgBlpB,GAAcA,EAAW2nB,GAC7C,OAAOuB,GAAiBD,EAAkBp4B,EAAIs4B,QAASxB,IAIrDJ,GAAY7pB,GAAK8pB,GAAiB,CAAC,YAC5BrjD,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI07B,IAAY,GAAI,CAChG6B,KAAMvN,GAASxN,OACZ3I,IAKM2jB,GAAqB5pB,EAAAA,WAAAA,OAAW,CACzCr+C,KAAMskD,GACN7uD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI/yC,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACbhtB,EAAS4oD,EAAK5oD,OACdiyE,EAAOrV,GAAW5pC,GAAKhG,EAAMilD,MAAQ,KAAKp+D,QAAQowC,EAAgB,IAItE,OAAOtjD,EAAEsxE,GAAOH,GAAkB9xE,EAAQ,QAAQc,OAAOmxE,KAAuBrB,GAAYpmB,GAAU30C,EAAM,CAC1GmX,MAAOi4C,GAAWmL,GAAWpjD,SChDxBmlD,GAAiB,EAEjBC,GAAc,GACdC,GAAY,GACZC,GAAW,GACXC,GAAa,GACbC,GAAW,GACXC,GAAY,GACZC,GAAY,GACZC,GAAgB,GAChBC,GAAc,GACdC,GAAa,GACbC,GAAa,GACbC,GAAU,GCTjBC,GAAgB,SAAuBrwD,EAAGC,GAC5C,GAAID,EAAEngB,SAAWogB,EAAEpgB,OACjB,OAAO,EAKT,IAFA,IAAIuvC,GAAQ,EAEHhoC,EAAI,EAAGgoC,GAAShoC,EAAI4Y,EAAEngB,OAAQuH,IACrCgoC,EAAQkhC,GAAWtwD,EAAE5Y,GAAI6Y,EAAE7Y,IAG7B,OAAOgoC,GASEkhC,GAAa,SAASA,EAAWtwD,EAAGC,GAC7C,GAAID,IAAMC,EACR,OAAO,EAGT,IAAIswD,EAAat3B,GAAOj5B,GACpBwwD,EAAav3B,GAAOh5B,GAExB,GAAIswD,GAAcC,EAChB,SAAOD,IAAcC,IAAaxwD,EAAEu7B,YAAct7B,EAAEs7B,UAMtD,GAHAg1B,EAAa/gE,GAAQwQ,GACrBwwD,EAAahhE,GAAQyQ,GAEjBswD,GAAcC,EAChB,SAAOD,IAAcC,IAAaH,GAAcrwD,EAAGC,GAMrD,GAHAswD,EAAatwE,GAAS+f,GACtBwwD,EAAavwE,GAASggB,GAElBswD,GAAcC,EAAY,CAE5B,IAAKD,IAAeC,EAClB,OAAO,EAGT,IAAIC,EAAajpE,GAAKwY,GAAGngB,OACrB6wE,EAAalpE,GAAKyY,GAAGpgB,OAEzB,GAAI4wE,IAAeC,EACjB,OAAO,EAGT,IAAK,IAAIlxE,KAAOwgB,EAAG,CACjB,IAAI2wD,EAAUzyD,GAAe8B,EAAGxgB,GAC5BoxE,EAAU1yD,GAAe+B,EAAGzgB,GAEhC,GAAImxE,IAAYC,IAAYD,GAAWC,IAAYN,EAAWtwD,EAAExgB,GAAMygB,EAAEzgB,IACtE,OAAO,GAKb,OAAOX,OAAOmhB,KAAOnhB,OAAOohB,ICrE9B,SAAS+xB,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAO3M,IAAI2rD,GAAU,SAAiBtxE,GAC7B,OAAQA,GAAgC,IAAvBiI,GAAKjI,GAAOM,QAGpBixE,GAAkB,SAAyBC,GACpD,MAAO,CACLl/C,QAAS,SAAiBo2C,EAAU+I,GAClC,IAAIV,GAAWrI,EAAU+I,GAIzB,GAAIH,GAAQ5I,IAAa4I,GAAQG,GAC/B9zE,KAAK6zE,GAAYtsB,GAAUwjB,OAD7B,CAKA,IAAK,IAAIzoE,KAAOwxE,EACT9yD,GAAe+pD,EAAUzoE,IAC5BtC,KAAK+zE,QAAQ/zE,KAAKg0E,MAAMH,GAAWvxE,GAIvC,IAAK,IAAI0vC,KAAQ+4B,EACf/qE,KAAKytC,KAAKztC,KAAKg0E,MAAMH,GAAW7hC,EAAM+4B,EAAS/4B,QAK5CiiC,GAAqB,SAA4BJ,EAAUK,GACpE,OAAOzrB,EAAAA,WAAAA,OAAW,CAChBzyC,KAAM,WACJ,OAAO8+B,GAAgB,GAAIo/B,EAAe3sB,GAAUvnD,KAAK6zE,MAE3D/I,MAAOh2B,GAAgB,GAAI++B,EAAUD,GAAgBM,OCvC9CC,GAAaF,GAAmB,SAAU,WCGjDG,GAAO,kBAGAC,GAAoB5rB,EAAAA,WAAAA,OAAW,CACxC2iB,QAAS,WAIPprE,KAAKo0E,IAAQ,IAEf9I,cAAe,WACb,IAAI54B,EAAQ1yC,KAGZsK,GAAKtK,KAAKo0E,KAAS,IAAIlnE,SAAQ,SAAUonB,GACvCoe,EAAM0hC,IAAM9/C,GAAOpnB,SAAQ,SAAUonE,GACnC5hC,EAAM6hC,cAAcjgD,EAAOggD,SAG/Bt0E,KAAKo0E,IAAQ,MAEfp5D,QAAS,CACPw5D,qBAAsB,SAA8BlgD,EAAOggD,GACrDt0E,KAAKo0E,MACPp0E,KAAKo0E,IAAM9/C,GAASt0B,KAAKo0E,IAAM9/C,IAAU,GAEpC6nC,GAAcn8D,KAAKo0E,IAAM9/C,GAAQggD,IACpCt0E,KAAKo0E,IAAM9/C,GAAOtlB,KAAKslE,KAI7BG,uBAAwB,SAAgCngD,EAAOggD,GACzDt0E,KAAKo0E,KAASp0E,KAAKo0E,IAAM9/C,KAC3Bt0B,KAAKo0E,IAAM9/C,GAASt0B,KAAKo0E,IAAM9/C,GAAOxkB,QAAO,SAAU+uD,GACrD,OAAOA,IAAOyV,OAkBpBI,aAAc,SAAsBpgD,EAAOggD,GACrCt0E,KAAKS,QACPT,KAAKS,MAAMk0E,IAAIrgD,EAAOggD,GACtBt0E,KAAKw0E,qBAAqBlgD,EAAOggD,KAiBrCM,iBAAkB,SAA0BtgD,EAAOggD,GACjD,IAAIO,EAAS70E,KAEb,GAAIA,KAAKS,MAAO,CACd,IAAIq0E,EAAY,SAASA,IACvBD,EAAOJ,uBAAuBK,GAG9BR,EAASlkE,WAAM,EAAQjF,YAGzBnL,KAAKS,MAAMs0E,MAAMzgD,EAAOwgD,GACxB90E,KAAKw0E,qBAAqBlgD,EAAOwgD,KAUrCP,cAAe,SAAuBjgD,EAAOggD,GAC3Ct0E,KAAKy0E,uBAAuBngD,EAAOggD,GAE/Bt0E,KAAKS,OACPT,KAAKS,MAAMu0E,KAAK1gD,EAAOggD,IAU3BW,WAAY,SAAoB3gD,GAC9B,GAAIt0B,KAAKS,MAAO,CAGd,IAFA,IAAIy0E,EAEKnjC,EAAO5mC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8vC,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClG1wB,EAAK0wB,EAAO,GAAK7mC,UAAU6mC,IAG5BkjC,EAAcl1E,KAAKS,OAAOwqE,MAAM76D,MAAM8kE,EAAa,CAAC5gD,GAAOrzB,OAAOqgB,SCvHhE6zD,GAAiBlB,GAAmB,aAAc,eCD7D,SAASntB,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAEhL,SAAS/uC,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAkB3M,IAAIotD,GAA0BrN,GAAiB3Y,GAAW,WAG/CimB,GAAkB,CAC3BC,YAAazQ,GAASxN,IACtBke,OAAQ1Q,GAAS9N,IAAmB,GACpCziC,MAAOuwC,GAASpN,IAChB+d,MAAO3Q,GAAS9N,IAAmB,GACnC0e,iBAAkB5Q,GAASxN,IAC3Bqe,UAAW7Q,GAAS9N,IAAmB,GACvC4e,qBAAsB9Q,GAASxN,IAC/BrjD,QAAS6wD,GAAS9N,IAAmB,GACrC6e,UAAW/Q,GAASxN,IACpB5qD,GAAIo4D,GAAS3M,KAGJ2d,GAAgB,CACzBC,WAAYjR,GAAS9N,IAAmB,GAOxCgf,SAAUlR,GAAS9N,GAAmB,OAG7B5pC,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIghC,IAAgBR,IAAkB,GAAI,CACpIW,OAAQnR,GAAS9N,IAAmB,GACpCgJ,SAAU8E,GAAS9N,IAAmB,GACtC+W,KAAMjJ,GAASxN,IAEfmX,IAAK3J,GAASxN,GAAkB,MAKhC6W,oBAAqBrJ,GAASxN,IAC9B/qD,OAAQu4D,GAASxN,GAAkB,YAChCjI,IAGM6mB,GAAqBxtB,EAAAA,WAAAA,OAAW,CACzCr+C,KAAMglD,GAENub,OAAQ,CAACwJ,GAAYgB,GAAgBd,GAAmB5N,IACxDyP,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CACR4J,YAAa,WAEX,IAAI1pE,EAAKzM,KAAKyM,GACVszD,EAAW//D,KAAK+/D,SAChBmO,EAAsBluE,KAAKkuE,oBAC/B,OAAOF,GAAW,CAChBvhE,GAAIA,EACJszD,SAAUA,EACVmO,oBAAqBA,GACpBluE,OAEL+tE,aAAc,WACZ,OAAOqI,GAAcp2E,KAAKm2E,cAE5BE,YAAa,WAEX,IAAI/pE,EAAStM,KAAKsM,OACdkiE,EAAMxuE,KAAKwuE,IACf,OAAOF,GAAW,CAChBhiE,OAAQA,EACRkiE,IAAKA,KAGT8H,aAAc,WAEZ,IAAI7pE,EAAKzM,KAAKyM,GACVqhE,EAAO9tE,KAAK8tE,KAChB,OAAOW,GAAY,CACjBhiE,GAAIA,EACJqhE,KAAMA,GACL9tE,KAAKm2E,cAEVI,cAAe,WACb,IAAIjiD,EAAQt0B,KAAKs0B,MACbyhD,EAAW/1E,KAAK+1E,SAChBH,EAAY51E,KAAK41E,UACrB,OAAO51E,KAAK+tE,aAAel5B,GAAcA,GAAcA,GAAcA,GAAc,GAAIuwB,GAAW1e,GAAK7R,GAAcA,GAAc,GAAIwgC,IAAkBQ,IAAgB,CAAC,QAAS,WAAY,cAAe71E,OAAQs0B,EAAQ,CAC5NA,MAAOA,GACL,IAAKsxB,GAAUmwB,GAAY,CAC7BA,SAAUA,GACR,IAAKH,EAAY,CACnBhiE,IAAKgiE,GACH,IAAM,IAEZY,cAAe,WACb,IAAIC,EAAUz2E,KAAKy2E,QACf3I,EAAO9tE,KAAKs2E,aACZ9H,EAAMxuE,KAAKq2E,YACXtW,EAAW//D,KAAK+/D,SAChBzzD,EAAStM,KAAKsM,OACdspE,EAAY51E,KAAK41E,UACjB7H,EAAe/tE,KAAK+tE,aACxB,OAAOl5B,GAAcA,GAAcA,GAAcA,GAAc,GAAI4hC,GAAU3I,EAAO,CAClFA,KAAMA,GACJ,IAAKC,GAAgB6H,IAAcxW,GAAMwW,EAAW,KAAO,GAAK,CAClEpH,IAAKA,EACLliE,OAAQA,IACN,GAAI,CACNoqE,SAAU3W,EAAW,KAAOta,GAAYgxB,EAAQC,UAAY,KAAOD,EAAQC,SAC3E,gBAAiB3W,EAAW,OAAS,QAGzC4W,kBAAmB,WACjB,OAAO9hC,GAAcA,GAAc,GAAI70C,KAAK42E,aAAc,GAAI,CAG5DnO,MAAOzoE,KAAK62E,YAIlB77D,QAAS,CACP67D,QAAS,SAAiBviD,GACxB,IAAIwiD,EAAa3rE,UACb4rE,EAAe9wB,GAAQ3xB,GACvBy5C,EAAe/tE,KAAK+tE,aACpBiJ,EAAkBh3E,KAAK42E,YAAYnO,MAEnCsO,GAAgB/2E,KAAK+/D,SAIvBsH,GAAU/yC,EAAO,CACfqzC,sBAAsB,KAOpBoG,GAAgBz5C,EAAM2iD,cAAcC,SACtC5iD,EAAM2iD,cAAcC,QAAQjM,MAAM7X,GAAkB9+B,GAItDrzB,GAAO+1E,GAAiBlnE,QAAO,SAAUhP,GACvC,OAAOkjC,GAAWljC,MACjBoM,SAAQ,SAAUynB,GACnBA,EAAQvkB,WAAM,EAAQ02C,GAAmBgwB,OAG3C92E,KAAKi1E,WAAWG,GAAyB9gD,GAEzCt0B,KAAKi1E,WAAW,gBAAiB3gD,IAK/ByiD,IAAiBhJ,GAAsC,MAAtB/tE,KAAKs2E,cACxCjP,GAAU/yC,EAAO,CACfmzC,aAAa,KAInBlE,MAAO,WACLD,GAAatjE,KAAKm3E,MAEpB1T,KAAM,WACJD,GAAYxjE,KAAKm3E,OAGrBh4E,OAAQ,SAAgB2B,GACtB,IAAIk1E,EAASh2E,KAAKg2E,OACdjW,EAAW//D,KAAK+/D,SACpB,OAAOj/D,EAAEd,KAAKm2E,YAAarhC,GAAgB,CACzCyzB,MAAO,CACLyN,OAAQA,EACRjW,SAAUA,GAEZyI,MAAOxoE,KAAKw2E,cACZrpD,MAAOntB,KAAKu2E,eACXv2E,KAAK+tE,aAAe,WAAa,KAAM/tE,KAAK22E,mBAAoB32E,KAAKsmE,oBCrN5E,SAAS/tD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAe3M,IAAIovD,GAAY1wB,GAAK2wB,GAAY,CAAC,QAAS,qBACpCD,GAAUtJ,KAAK9I,eACfoS,GAAU3qE,GAAGu4D,QACb,IAAI73C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIuiC,IAAY,GAAI,CAChGE,MAAOzS,GAAS9N,IAAmB,GACnCgJ,SAAU8E,GAAS9N,IAAmB,GACtCwgB,KAAM1S,GAAS9N,IAAmB,GAGlCygB,QAAS3S,GAAS9N,GAAmB,MACrCxhD,KAAMsvD,GAASxN,IACfogB,QAAS5S,GAAS9N,IAAmB,GACrCnjD,IAAKixD,GAASxN,GAAkB,UAChCjiD,KAAMyvD,GAASxN,GAAkB,UACjCoT,QAAS5F,GAASxN,GAAkB,gBACjC/L,IAIDosB,GAAc,SAAqBpjD,GAClB,YAAfA,EAAMlf,KACR2rD,GAASzsC,EAAMhoB,OAAQ,SACC,aAAfgoB,EAAMlf,MACf6rD,GAAY3sC,EAAMhoB,OAAQ,UAM1BuhE,GAAS,SAAgB1gD,GAC3B,OAAOwqD,GAAaxqD,IAAUiyC,GAAMjyC,EAAMvZ,IAAK,MAI7CgkE,GAAW,SAAkBzqD,GAC/B,OAAOy4B,GAAUz4B,EAAMqqD,UAIrBK,GAAW,SAAkB1qD,GAC/B,QAAS0gD,GAAO1gD,IAAUA,EAAMvZ,MAAQwrD,GAAMjyC,EAAMvZ,IAAK,YAIvDkkE,GAAmB,SAA0B3qD,GAC/C,OAAQ0gD,GAAO1gD,KAAW0qD,GAAS1qD,IAIjC4qD,GAAe,SAAsB5qD,GACvC,IAAI47B,EAEJ,MAAO,CAAC,OAAO9nD,OAAOksB,EAAMs9C,SAAW,cAAe1hB,EAAO,GAAIjU,GAAgBiU,EAAM,OAAO9nD,OAAOksB,EAAM5X,MAAO4X,EAAM5X,MAAOu/B,GAAgBiU,EAAM,YAAa57B,EAAMmqD,OAAQxiC,GAAgBiU,EAAM,eAAgB57B,EAAMoqD,MAAOziC,GAAgBiU,EAAM,YAAa57B,EAAMsqD,UAAYtqD,EAAMoqD,MAAOziC,GAAgBiU,EAAM,WAAY57B,EAAM4yC,UAAWjrB,GAAgBiU,EAAM,SAAU57B,EAAMqqD,SAAUzuB,KAItYivB,GAAmB,SAA0B7qD,GAC/C,OAAO0gD,GAAO1gD,GAASi4C,GAAWgS,GAAWjqD,GAAS,IAIpD8qD,GAAe,SAAsB9qD,EAAOnX,GAC9C,IAAIkiE,EAASL,GAAS1qD,GAClB+Z,EAAO2mC,GAAO1gD,GACdxE,EAASivD,GAASzqD,GAClBgrD,EAAiBL,GAAiB3qD,GAClCirD,EAAWlxC,GAAuB,MAAf/Z,EAAM2gD,KACzBnC,EAAO31D,EAAKwyD,OAASxyD,EAAKwyD,MAAMmD,KAAO31D,EAAKwyD,MAAMmD,KAAO,KACzD+K,EAAW1gE,EAAKwyD,MAAQxyD,EAAKwyD,MAAMkO,SAAW,KAMlD,OAJIyB,GAAkBC,KACpB1B,EAAW,KAGN,CAELthE,KAAM8iE,IAAWhxC,EAAO/Z,EAAM/X,KAAO,KAErC2qD,SAAUmY,EAAS/qD,EAAM4yC,SAAW,KAIpC4L,KAAMwM,GAAkBC,EAAW,SAAWzM,EAE9C,gBAAiBwM,EAAiBx2E,OAAOwrB,EAAM4yC,UAAY,KAE3D,eAAgBp3C,EAAShnB,OAAOwrB,EAAMqqD,SAAW,KAGjDa,aAAc1vD,EAAS,MAAQ,KAK/B+tD,SAAUvpD,EAAM4yC,WAAamY,EAAS,KAAOxB,IAMtC4B,GAAuB7vB,EAAAA,WAAAA,OAAW,CAC3Cr+C,KAAMkhD,GACNzrD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGytE,GACzB,IAAIphD,EAAQohD,EAAMphD,MACdnX,EAAOu4D,EAAMv4D,KACbuiE,EAAYhK,EAAMgK,UAClB9O,EAAW8E,EAAM9E,SACjB9gD,EAASivD,GAASzqD,GAClB+Z,EAAO2mC,GAAO1gD,GACdgrD,EAAiBL,GAAiB3qD,GAClCirD,EAAWlxC,GAAuB,MAAf/Z,EAAM2gD,KACzB1G,EAAK,CACPoR,QAAS,SAAiBlkD,GAKxB,IAAInH,EAAM4yC,WAAcoY,GAAkBC,GAA1C,CAIA,IAAIK,EAAUnkD,EAAMmkD,QAEpB,GAAIA,IAAYxF,IAAcwF,IAAY/F,IAAcyF,EAAgB,CACtE,IAAI7rE,EAASgoB,EAAM2iD,eAAiB3iD,EAAMhoB,OAC1C+6D,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfn7D,EAAOm8D,WAGXA,MAAO,SAAen0C,GAEhBnH,EAAM4yC,UAAY9Z,GAAQ3xB,GAC5B+yC,GAAU/yC,GACD3L,GAAU4vD,GAAaA,EAAU,mBAI1Ct3E,GAAOs3E,EAAU,mBAAmBrrE,SAAQ,SAAUyF,GAChDqxB,GAAWrxB,IACbA,GAAIwa,EAAMqqD,cAOhB7uD,IACFy+C,EAAGsR,QAAUhB,GACbtQ,EAAGuR,SAAWjB,IAGhB,IAAIrP,EAAgB,CAClBC,YAAa,MACbC,MAAOwP,GAAa5qD,GACpBA,MAAO6qD,GAAiB7qD,GACxBq7C,MAAOyP,GAAa9qD,EAAOnX,GAC3BoxD,GAAIA,GAEN,OAAOtmE,EAAEomC,EAAO+uC,GAAQ9oD,EAAMvZ,IAAK+2C,GAAU30C,EAAMqyD,GAAgBoB,MCrLvE,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAkB3M,IAAIokD,GAAa,WACbwM,GAAQ,CAAC,KAAM,KAAM,MACrBC,GAAkB,GAClBC,GAA0C,GAAlBD,GAEjBE,GAAc,SAAqB12E,GAI5C,OAFAA,EAAQwjD,GAASxjD,IAAU0jD,GAAU1jD,GAASq6D,GAAQr6D,EAAO,GAAKA,EAE3DyjD,GAASzjD,GAAS,GAAGpB,OAAOoB,EAAO,MAAQA,GAAS,MAGzD+0E,GAAY1wB,GAAK2wB,GAAY,CAAC,SAAU,QAAS,cAC1ClqD,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIuiC,IAAY,GAAI,CAChG4B,IAAKnU,GAASxN,GAAkB,UAChC6Q,UAAWrD,GAASxN,IACpB4hB,MAAOpU,GAASjN,IAA0B,GAC1CshB,UAAWrU,GAAS9N,IAAmB,GACvCoiB,YAAatU,GAASxN,IACtB+hB,SAAUvU,GAAS9N,IAAmB,GACtCsiB,aAAcxU,GAASxN,GAAkB,WACzC6gB,OAAQrT,GAAS9N,IAAmB,GACpCuiB,WAAYzU,GAASxN,GAAkB,UACvC+a,KAAMvN,GAASxN,IACfkiB,QAAS1U,GAASjN,IAA0B,GAC5CriD,KAAMsvD,GAAS9M,IACfyhB,OAAQ3U,GAAS9N,IAAmB,GACpC18C,IAAKwqD,GAASxN,IACdoiB,KAAM5U,GAASxN,IACfoT,QAAS5F,GAASxN,GAAkB,gBACjCrM,IAGM0uB,GAAuBjxB,EAAAA,WAAAA,OAAW,CAC3Cr+C,KAAM4gD,GACN2f,OAAQ,CAAClE,IACTkT,OAAQ,CACNC,cAAe,CACb5U,QAAS,OAGb73C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL6jE,SAAU75E,KAAKqa,KAAO,OAG1BkyD,SAAU,CACRuN,aAAc,WAEZ,IAAIF,EAAgB55E,KAAK45E,cACzB,OAAOb,GAAYa,EAAgBA,EAAcrkE,KAAOvV,KAAKuV,OAE/DwkE,gBAAiB,WACf,IAAIH,EAAgB55E,KAAK45E,cACzB,OAAOA,GAAiBA,EAAcnP,QAAUmP,EAAcnP,QAAUzqE,KAAKyqE,SAE/EuP,gBAAiB,WACf,IAAIJ,EAAgB55E,KAAK45E,cACrBJ,KAASI,IAAiBA,EAAcJ,SAAgBx5E,KAAKw5E,OAC7DD,EAAUK,GAAiBA,EAAcL,QAAUK,EAAcL,QAAUv5E,KAAKu5E,QACpF,OAAOC,EAAS,IAAkB,KAAZD,IAAwBA,GAAW,WAE3DU,UAAW,WACT,IAAI1kE,EAAOvV,KAAK85E,aACZzJ,GAAoC,IAAzBuI,GAAM/pE,QAAQ0G,GAAe,QAAQtU,OAAOsU,EAAM,OAAOtU,OAAO43E,GAAiB,KAAO,KACvG,OAAOxI,EAAW,CAChBA,SAAUA,GACR,IAEN6J,YAAa,WACX,IAAI3kE,EAAOvV,KAAK85E,aACZF,EAAgB55E,KAAK45E,cACrBO,EAAeP,EAAgBA,EAAcO,aAAe,EAC5D93E,EAAQkT,GAAQ4kE,EAAe,QAAQl5E,OAAOsU,EAAM,QAAQtU,OAAOk5E,EAAc,KAAO,KAC5F,OAAO93E,EAAQ,CACb6gE,WAAY7gE,EACZ+3E,YAAa/3E,GACX,IAENg4E,WAAY,WACV,IAAI9kE,EAAOvV,KAAK85E,aACZV,EAAWp5E,KAAKo5E,SAChBF,EAAYl5E,KAAKk5E,UACjBC,EAAcn5E,KAAKm5E,YACnBnuE,EAASmuE,GAAe,MAC5B,MAAO,CACL9I,UAAmC,IAAzBuI,GAAM/pE,QAAQ0G,GAAe,QAAQtU,OAAOsU,EAAM,OAAOtU,OAAO63E,GAAuB,MAAQ,KACzG3W,IAAKiX,EAAWpuE,EAAS,KACzBsvE,OAAQlB,EAAW,KAAOpuE,EAC1BoG,KAAM8nE,EAAYluE,EAAS,KAC3BqG,MAAO6nE,EAAY,KAAOluE,KAIhC8/D,MAAO,CACLzwD,IAAK,SAAa0wD,EAAU+I,GACtB/I,IAAa+I,IACf9zE,KAAK65E,SAAW9O,GAAY,QAIlC/vD,QAAS,CACPu/D,WAAY,SAAoBjmD,GAC9Bt0B,KAAK65E,SAAW,KAChB75E,KAAKirE,MAAM1W,GAAsBjgC,IAEnCuiD,QAAS,SAAiBviD,GACxBt0B,KAAKirE,MAAM7X,GAAkB9+B,KAGjCn1B,OAAQ,SAAgB2B,GACtB,IAAI05E,EAEA/P,EAAUzqE,KAAK+5E,gBACfha,EAAW//D,KAAK+/D,SAChBwZ,EAAUv5E,KAAKg6E,gBACf5H,EAAOpyE,KAAKoyE,KACZ/3D,EAAMra,KAAK65E,SACXJ,EAAOz5E,KAAKy5E,KACZQ,EAAYj6E,KAAKi6E,UACjBC,EAAcl6E,KAAKk6E,YACnB3kE,EAAOvV,KAAK85E,aACZ5B,EAASl4E,KAAKk4E,OACd9iE,EAAOpV,KAAKs5E,WACZL,EAAQj5E,KAAKi5E,MACbI,EAAer5E,KAAKq5E,aACpBgB,EAAar6E,KAAKq6E,WAClBnzC,GAAQgxC,GAAUrK,GAAO7tE,MACzB4T,EAAMskE,EAASI,GAAUpxC,EAAO+uC,GAAQ,OACxC+C,EAAMh5E,KAAKg5E,IACX9Q,EAAYloE,KAAKkoE,WAAa,KAC9B4E,EAAW,KAEX9sE,KAAKmmE,oBAEP2G,EAAWhsE,EAAE,OAAQ,CACnBwnE,YAAa,mBACZ,CAACtoE,KAAKsmE,kBACAjsD,GACTyyD,EAAWhsE,EAAE,MAAO,CAClB2rB,MAAOg+C,EAAU,GAAK,CACpB5K,MAAO,OACPD,OAAQ,QAEV4I,MAAO,CACLnuD,IAAKA,EACL2+D,IAAKA,GAEP5R,GAAI,CACF9gE,MAAOtG,KAAKu6E,cAGhBzN,EAAWhsE,EAAE,OAAQ,CACnBwnE,YAAa,gBACZ,CAACwE,KAEJA,EADSsF,EACEtxE,EAAEuxE,GAAO,CAClBllD,MAAO,CACLilD,KAAMA,GAER5J,MAAO,CACL,cAAe,OACfwQ,IAAKA,KAGAS,EACE34E,EAAE,OAAQ,CACnBwnE,YAAa,gBACb77C,MAAOwtD,GACN,CAACn5E,EAAE,OAAQ24E,KAGH34E,EAAE6wE,GAAiB,CAC5BnJ,MAAO,CACL,cAAe,OACfwQ,IAAKA,KAKX,IAAIyB,EAAS35E,IACT45E,EAAe16E,KAAKmmE,kBAAkB7N,IAE1C,GAAI2gB,GAAmB,KAAVA,GAAgByB,EAAc,CACzC,IAAIC,GAAsB,IAAV1B,EAAiB,GAAKA,EACtCwB,EAAS35E,EAAE,OAAQ,CACjBwnE,YAAa,iBACbC,MAAOzzB,GAAgB,GAAI,SAAS7zC,OAAOo4E,GAAeA,GAC1D5sD,MAAO4tD,GACN,CAACK,EAAe16E,KAAKsmE,cAAchO,IAAmBqiB,IAG3D,IAAItS,EAAgB,CAClBC,YAAa8D,GACb7D,OAAQiS,EAAU,GAAI1lC,GAAgB0lC,EAAS,GAAGv5E,OAAOmrE,GAAY,KAAKnrE,OAAOsU,GAAOA,IAAiC,IAAzBqjE,GAAM/pE,QAAQ0G,IAAeu/B,GAAgB0lC,EAAS,SAASv5E,OAAOwpE,IAAWyN,GAAUzN,GAAU31B,GAAgB0lC,EAAS,WAAuB,IAAZjB,GAAmBzkC,GAAgB0lC,EAAS,WAAWv5E,OAAOs4E,GAAUA,IAAuB,IAAZA,GAAmBzkC,GAAgB0lC,EAAS,WAAYza,GAAWya,GAC/X/tD,MAAOooB,GAAcA,GAAc,GAAIqlC,GAAc,GAAI,CACvDra,MAAOtqD,EACPqqD,OAAQrqD,IAEVizD,MAAO,CACL,aAAcN,GAAa,MAE7B/6C,MAAO+qD,EAAS,CACdzN,QAASA,EACT1K,SAAUA,EACV3qD,KAAMA,GACJ8xB,EAAOk+B,GAAWgS,GAAWp3E,MAAQ,GACzConE,GAAI8Q,GAAUhxC,EAAO,CACnBuhC,MAAOzoE,KAAK62E,SACV,IAEN,OAAO/1E,EAAE8S,EAAKy0D,EAAe,CAACyE,EAAU2N,OCjOjCttD,GAAQs4C,GAAsB,CACvCmV,QAAS/V,GAAS9M,GAAyB,IAE3CwhB,QAAS1U,GAASjN,IAA0B,GAE5CriD,KAAMsvD,GAASxN,IAEfmiB,OAAQ3U,GAAS9N,IAAmB,GACpCnjD,IAAKixD,GAASxN,GAAkB,OAEhCoT,QAAS5F,GAASxN,KACjBpM,IAGQ4vB,GAA4BpyB,EAAAA,WAAAA,OAAW,CAChDr+C,KAAM6gD,GACN0f,OAAQ,CAAClE,IACTqU,QAAS,WACP,MAAO,CACLlB,cAAe55E,OAGnBmtB,MAAOA,GACPo/C,SAAU,CACRuN,aAAc,WACZ,OAAOf,GAAY/4E,KAAKuV,OAE1B4kE,aAAc,WACZ,OAAOtO,GAAQC,GAAQpP,GAAQ18D,KAAK46E,QAAS,GAAI,GAAI,GAAK,GAE5DG,aAAc,WACZ,IAAI14E,EAAQrC,KAAK85E,aAEjB,OADAz3E,EAAQA,EAAQ,QAAQpB,OAAOoB,EAAO,OAAOpB,OAAOjB,KAAKm6E,aAAc,KAAO,KACvE93E,EAAQ,CACb24E,YAAa34E,EACb44E,aAAc54E,GACZ,KAGRlD,OAAQ,SAAgB2B,GACtB,IAAIovE,EAASpvE,EAAE,MAAO,CACpBwnE,YAAa,uBACb77C,MAAOzsB,KAAK+6E,cACX/6E,KAAKsmE,iBACR,OAAOxlE,EAAEd,KAAK4T,IAAK,CACjB00D,YAAa,iBACbE,MAAO,CACLmD,KAAM,UAEP,CAACuE,OCvDJgL,GAA4B1xB,GAAc,CAC5CR,WAAY,CACV0wB,QAASA,GACTmB,aAAcA,MCNlB,SAAStiE,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAU3M,IAAIovD,GAAY1wB,GAAK2wB,GAAY,CAAC,QAAS,qBACpCD,GAAUtJ,KAAK9I,eACfoS,GAAU3qE,GAAGu4D,QACb,IAAI73C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIuiC,IAAY,GAAI,CAChGG,KAAM1S,GAAS9N,IAAmB,GAClCnjD,IAAKixD,GAASxN,GAAkB,QAChCoT,QAAS5F,GAASxN,GAAkB,gBACjCnM,IAGMiwB,GAAsB1yB,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAM8gD,GACNrrD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBuM,EAAS7oD,EAAM6oD,OACfjW,EAAW5yC,EAAM4yC,SACjB74B,EAAO2mC,GAAO1gD,GACdvZ,EAAMszB,EAAO+uC,GAAQ9oD,EAAMvZ,IAC3B62D,EAAUt9C,EAAMs9C,SAAW,YAC/B,OAAO3pE,EAAE8S,EAAK+2C,GAAU30C,EAAM,CAC5BsyD,YAAa,QACbC,MAAO,CAAC,SAAStnE,OAAOwpE,GAAU,CAChC,aAAct9C,EAAMoqD,KACpBvB,OAAQA,EACRjW,SAAUA,IAEZ5yC,MAAO+Z,EAAOk+B,GAAWgS,GAAWjqD,GAAS,KAC3Cs8C,MC3CJ2R,GAA2B5xB,GAAc,CAC3CR,WAAY,CACVmyB,OAAQA,MCFDE,GAAY,WACrB,IAAI5B,EAAOtuE,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAOxJ,OAAO83E,GAAMzlE,QAAQ6uC,EAAc,KAGjCy4B,GAAa,SAAoB3S,EAAW4S,GACrD,OAAO5S,EAAY,CACjBA,UAAWA,GACT4S,EAAc,CAChBA,YAAaA,GACX,ICZN,SAAShjE,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI6R,GAAK2wB,GAAY,CAAC,QAAS,eAAgB,GAAI,CAC/HmE,YAAa3W,GAASxN,GAAkB,YACxC7rC,KAAMq5C,GAASxN,IACfoiB,KAAM5U,GAASxN,OACZhM,IAGMowB,GAA+BhzB,EAAAA,WAAAA,OAAW,CACnDr+C,KAAMihD,GACNxrD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI2yB,EAAgB3yB,EAAK57B,MACrBnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBuM,EAAS0F,EAAc1F,OACvBpiE,EAAMoiE,EAAS,OAASC,GACxB5N,EAAgB,CAClBG,MAAO,CACL,eAAgBwN,EAAS0F,EAAcF,YAAc,MAEvDruD,MAAOi4C,GAAWj4C,GAAOuuD,IAO3B,OAJKjS,IACHpB,EAAcK,SAAW4S,GAAWI,EAAclwD,KAAMkwD,EAAcjC,OAGjE34E,EAAE8S,EAAK+2C,GAAU30C,EAAMqyD,GAAgBoB,MCrCvCt8C,GAAQs4C,GAAsBkW,GAAsBvwB,IAGpDwwB,GAA+BnzB,EAAAA,WAAAA,OAAW,CACnDr+C,KAAMghD,GACNvrD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAE,KAAM6pD,GAAU30C,EAAM,CAC7BsyD,YAAa,kBACbC,MAAO,CACLyN,OAAQ7oD,EAAM6oD,UAEd,CAACl1E,EAAE26E,GAAiB,CACtBtuD,MAAOA,GACNs8C,QCvBP,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB,CACvCtpC,MAAO0oC,GAAS/N,KACf3L,IAGQ0wB,GAA2BpzB,EAAAA,WAAAA,OAAW,CAC/Cr+C,KAAM+gD,GACNtrD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBttC,EAAQhP,EAAMgP,MAEd2/C,EAAarS,EAEjB,GAAIn3D,GAAQ6pB,GAAQ,CAClB,IAAI4/C,GAAgB,EACpBD,EAAa3/C,EAAMtsB,KAAI,SAAUmgB,EAAMgsD,GAChCj5E,GAASitB,KACZA,EAAO,CACLypD,KAAMpmE,GAAS2c,KAKnB,IAAIisD,EAAQjsD,EACRgmD,EAASiG,EAAMjG,OAWnB,OATIA,IACF+F,GAAgB,GAIb/F,GAAW+F,IACd/F,EAASgG,EAAM,IAAM7/C,EAAMx5B,QAGtB7B,EAAE86E,GAAiB,CACxBzuD,MAAO0nB,GAAcA,GAAc,GAAI7kB,GAAO,GAAI,CAChDgmD,OAAQA,SAMhB,OAAOl1E,EAAE,KAAM6pD,GAAU30C,EAAM,CAC7BsyD,YAAa,eACXwT,MC3DJI,GAAgC1yB,GAAc,CAChDR,WAAY,CACV6yB,YAAaA,GACbD,gBAAiBA,GACjBH,gBAAiBA,MCLjBU,GAA4B3yB,GAAc,CAC5CR,WAAY,CACVsvB,QAASA,GACT8D,KAAM9D,GACNlQ,aAAcA,GACdiU,UAAWjU,MCRf,SAAS7vD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EASpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI2R,GAAK81B,GAAa,CAAC,UAAW,GAAI,CAClHC,SAAU1X,GAASxN,GAAkB,SACrC9hD,KAAMsvD,GAASxN,IACfzjD,IAAKixD,GAASxN,GAAkB,OAChCmlB,SAAU3X,GAAS9N,IAAmB,MACnCvL,IAGMixB,GAA4Bh0B,EAAAA,WAAAA,OAAW,CAChDr+C,KAAMohD,GACN3rD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCuyD,MAAOzzB,GAAgB,CACrB,aAAc3nB,EAAMqvD,SACpB,qBAAsBrvD,EAAMqvD,UAC3B,aAAav7E,OAAOksB,EAAM5X,MAAO4X,EAAM5X,MAC1CizD,MAAO,CACLmD,KAAMx+C,EAAMovD,YAEZ9S,MCnCJiT,GAAiClzB,GAAc,CACjDR,WAAY,CACVyzB,aAAcA,GACdE,UAAWF,MCIXG,GAAgB,CAAC,0DAA2D,+CAAgD,wCAAyC,wCAAyC,sCAAsC17D,KAAK,KAElPiM,GAAQs4C,GAAsB,CACvCoX,QAAShY,GAAS9N,IAAmB,GACrC+lB,OAAQjY,GAAS9N,IAAmB,IACnCtL,IAGQsxB,GAA8Bt0B,EAAAA,WAAAA,OAAW,CAClDr+C,KAAMqhD,GACNkf,OAAQ,CAAClE,IACTt5C,MAAOA,GACP6vD,QAAS,WAGHh9E,KAAK88E,QACP98E,KAAKi9E,YAGTjiE,QAAS,CACPiiE,SAAU,WACR,IAAI9gD,EAAQikC,GAAUwc,GAAe58E,KAAKm3E,KAK1C,OAHAh7C,EAAMjvB,SAAQ,SAAU8iB,GACtBA,EAAKqzC,UAAY,KAEZlnC,EAAMrsB,QAAO,SAAUpB,GAC5B,OAAO4wD,GAAU5wD,OAGrBwuE,WAAY,WACV,IAAI/gD,EAAQn8B,KAAKi9E,WACjB3Z,GAAannC,EAAM,KAErBghD,UAAW,SAAmB7oD,GAC5B,IAAI6H,EAAQn8B,KAAKi9E,WACbx6E,EAAQ05B,EAAMttB,QAAQylB,EAAMhoB,QAE5B7J,GAAS,IACX05B,EAAQA,EAAMzqB,MAAM,EAAGjP,GAAOkG,UAC9B26D,GAAannC,EAAM,MAGvBihD,UAAW,SAAmB9oD,GAC5B,IAAI6H,EAAQn8B,KAAKi9E,WACbx6E,EAAQ05B,EAAMttB,QAAQylB,EAAMhoB,QAE5B7J,GAAS,IACX05B,EAAQA,EAAMzqB,MAAMjP,EAAQ,GAC5B6gE,GAAannC,EAAM,MAGvBkhD,UAAW,WACT,IAAIlhD,EAAQn8B,KAAKi9E,WAAWt0E,UAC5B26D,GAAannC,EAAM,KAErBmhD,UAAW,SAAmBhpD,GAC5B,IAAI6iD,EAAMn3E,KAAKm3E,IAEX7iD,EAAMhoB,SAAW6qE,GAAQ5X,GAAS4X,EAAK7iD,EAAMipD,iBAC/ClW,GAAU/yC,GACVt0B,KAAKk9E,WAAW5oD,KAGpBkpD,UAAW,SAAmBlpD,GAC5B,IAAImkD,EAAUnkD,EAAMmkD,QAChBgF,EAAWnpD,EAAMmpD,SAEjBhF,IAAYvF,IAAWuF,IAAY5F,IACrCxL,GAAU/yC,GACVmpD,EAAWz9E,KAAKk9E,WAAW5oD,GAASt0B,KAAKm9E,UAAU7oD,IAC1CmkD,IAAYjG,IAAaiG,IAAYzF,KAC9C3L,GAAU/yC,GACVmpD,EAAWz9E,KAAKq9E,UAAU/oD,GAASt0B,KAAKo9E,UAAU9oD,MAIxDn1B,OAAQ,SAAgB2B,GACtB,IAAIg8E,EAAS98E,KAAK88E,OAClB,OAAOh8E,EAAE,MAAO,CACdwnE,YAAa,cACbC,MAAO,CACL,0BAA2BvoE,KAAK68E,SAElCrU,MAAO,CACLmD,KAAM,UACN+K,SAAUoG,EAAS,IAAM,MAE3B1V,GAAI0V,EAAS,CACXpE,QAAS14E,KAAKs9E,UACd9E,QAASx4E,KAAKw9E,WACZ,IACH,CAACx9E,KAAKsmE,qBCnGToX,GAAmCl0B,GAAc,CACnDR,WAAY,CACV+zB,eAAgBA,GAChBY,YAAaZ,MCLNa,GAAmB,UACnBC,GAAgB,OAChBC,GAAkB,SAClBC,GAAiB,QACjBC,GAAsB,UACtBC,GAAsB,UCLjC,SAASrjC,GAAeC,EAAK3wC,GAAK,OAAO4wC,GAAgBD,IAAQE,GAAsBF,EAAK3wC,IAAM+8C,GAA4BpM,EAAK3wC,IAAM8wC,KAEzI,SAASA,KAAqB,MAAM,IAAI15C,UAAU,6IAElD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASC,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAEhL,SAASvM,GAAsBF,EAAK3wC,GAAK,IAAIoxC,EAAY,MAAPT,EAAc,KAAyB,qBAAXj/B,QAA0Bi/B,EAAIj/B,OAAO1N,WAAa2sC,EAAI,cAAe,GAAU,MAANS,EAAJ,CAAwB,IAAkDD,EAAID,EAAlDH,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKG,EAAKA,EAAGj7C,KAAKw6C,KAAQK,GAAMG,EAAKC,EAAGntC,QAAQE,MAAO6sC,GAAK,EAA6B,GAArBD,EAAKjsC,KAAKqsC,EAAGh5C,OAAY6H,GAAK+wC,EAAKt4C,SAAWuH,EAAG,MAAW,MAAOynC,GAAOwJ,GAAK,EAAMC,EAAKzJ,EAApK,QAAqL,IAAWuJ,GAAsB,MAAhBI,EAAG,WAAmBA,EAAG,YAA1C,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOH,GAE1f,SAASH,GAAgBD,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOA,EAE/D,SAAS/E,GAAWK,EAAQ70B,EAAMq0B,GAAqV,OAAzSG,GAA/B2O,KAA4C1jC,QAAQK,UAAiC,SAAoB+0B,EAAQ70B,EAAMq0B,GAAS,IAAI7yB,EAAI,CAAC,MAAOA,EAAE9T,KAAKoB,MAAM0S,EAAGxB,GAAO,IAAI/d,EAAckD,SAAS6G,KAAK8C,MAAM+lC,EAAQrzB,GAAQ9K,EAAW,IAAIzU,EAAsE,OAAnDoyC,GAAOF,GAAgBz9B,EAAU29B,EAAMzzC,WAAmB8V,GAAsB89B,GAAW1lC,MAAM,KAAMjF,WAErZ,SAASs5C,KAA8B,GAAuB,qBAAZ1jC,UAA4BA,QAAQK,UAAW,OAAO,EAAO,GAAIL,QAAQK,UAAU1B,KAAM,OAAO,EAAO,GAAqB,oBAAVu2B,MAAsB,OAAO,EAAM,IAAsF,OAAhFllC,QAAQ7O,UAAU0sB,QAAQvuB,KAAK0gB,QAAQK,UAAUrQ,QAAS,IAAI,iBAAyB,EAAQ,MAAO4uB,GAAK,OAAO,GAE/T,SAAS8V,GAAgBW,EAAGnM,GAA+G,OAA1GwL,GAAkBryC,OAAOY,gBAAkB,SAAyBoyC,EAAGnM,GAAsB,OAAjBmM,EAAE5nB,UAAYyb,EAAUmM,GAAaX,GAAgBW,EAAGnM,GAW9J,IC3BH2+B,GD2BOsV,GAAa,WACtB,IAAK,IAAInsC,EAAO5mC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8vC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1wB,EAAK0wB,GAAQ7mC,UAAU6mC,GAGzB,OAAO8D,GAAWI,KAAM50B,IAGf68D,GAAW,SAAkBC,GACtC,GAAIv4B,GAASu4B,IAAS16B,EAAQpvC,KAAK8pE,EAAKjrD,QAAS,CAC/C,IAAIkrD,EAAkBD,EAAKp/D,MAAM2kC,GAAe9zC,KAAI,SAAUmsB,GAC5D,OAAOygC,GAAUzgC,EAAG,MAElBsiD,EAAmB1jC,GAAeyjC,EAAiB,GACnDE,EAAOD,EAAiB,GACxBE,EAAQF,EAAiB,GACzBG,EAAMH,EAAiB,GAE3B,OAAOJ,GAAWK,EAAMC,EAAQ,EAAGC,GAC9B,OAAI1iC,GAAOqiC,GACTF,GAAWE,EAAKM,cAAeN,EAAKO,WAAYP,EAAKQ,WAGvD,MAGEC,GAAY,SAAmBT,GAGxC,GAFAA,EAAOD,GAASC,IAEXA,EACH,OAAO,KAGT,IAAIG,EAAOH,EAAKM,cACZF,EAAQ,IAAIv9E,OAAOm9E,EAAKO,WAAa,GAAGjtE,OAAO,GAC/C+sE,EAAM,IAAIx9E,OAAOm9E,EAAKQ,WAAWltE,OAAO,GAC5C,MAAO,GAAGzQ,OAAOs9E,EAAM,KAAKt9E,OAAOu9E,EAAO,KAAKv9E,OAAOw9E,IAG7CK,GAAgB,SAAuBC,GAGhD,IAAIC,EAAW7zE,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKyyE,GACnFmB,EAAU99E,GAAO89E,GAASjvE,OAAO23C,IACjC,IAAIw3B,EAAM,IAAIC,KAAKC,eAAeJ,EAAS,CACzCC,SAAUA,IAEZ,OAAOC,EAAIG,kBAAkBC,QAGpBC,GAAsB,SAA6BD,EAAQ1/E,GAGpE,IAAI4/E,EAAM,IAAIL,KAAKC,eAAeE,EAAQ1/E,GAC1C,OAAO4/E,EAAIC,QAGFC,GAAa,SAAoBC,EAAOC,GAGjD,OAAOd,GAAUa,KAAWb,GAAUc,IAG7BC,GAAmB,SAA0BxB,GAGtD,OAFAA,EAAOF,GAAWE,GAClBA,EAAKyB,QAAQ,GACNzB,GAEE0B,GAAkB,SAAyB1B,GAIpD,OAHAA,EAAOF,GAAWE,GAClBA,EAAK2B,SAAS3B,EAAKO,WAAa,GAChCP,EAAKyB,QAAQ,GACNzB,GAEE4B,GAAW,SAAkB5B,EAAM6B,GAC5C7B,EAAOF,GAAWE,GAClB,IAAII,EAAQJ,EAAKO,WAOjB,OANAP,EAAK8B,YAAY9B,EAAKM,cAAgBuB,GAElC7B,EAAKO,aAAeH,GACtBJ,EAAKyB,QAAQ,GAGRzB,GAEE+B,GAAc,SAAqB/B,GAC5CA,EAAOF,GAAWE,GAClB,IAAII,EAAQJ,EAAKO,WAOjB,OANAP,EAAK2B,SAASvB,EAAQ,GAElBJ,EAAKO,aAAeH,GACtBJ,EAAKyB,QAAQ,GAGRzB,GAEEgC,GAAgB,SAAuBhC,GAChDA,EAAOF,GAAWE,GAClB,IAAII,EAAQJ,EAAKO,WAOjB,OANAP,EAAK2B,SAASvB,EAAQ,GAElBJ,EAAKO,cAAgBH,EAAQ,GAAK,IACpCJ,EAAKyB,QAAQ,GAGRzB,GAEEiC,GAAa,SAAoBjC,GAC1C,OAAO4B,GAAS5B,GAAO,IAEdkC,GAAe,SAAsBlC,GAC9C,OAAO4B,GAAS5B,EAAM,IAEbmC,GAAe,SAAsBnC,GAC9C,OAAO4B,GAAS5B,GAAO,KAEdoC,GAAiB,SAAwBpC,GAClD,OAAO4B,GAAS5B,EAAM,KAIbqC,GAAgB,SAAuBrC,GAChD,IAAIjyE,EAAMhB,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAC1EmG,EAAMnG,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAM9E,OAJAizE,EAAOD,GAASC,GAChBjyE,EAAMgyE,GAAShyE,IAAQiyE,EACvB9sE,EAAM6sE,GAAS7sE,IAAQ8sE,EAEhBA,EAAOA,EAAOjyE,EAAMA,EAAMiyE,EAAO9sE,EAAMA,EAAM8sE,EAAO,MEvJzDsC,GAAY,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAM7wE,KAAI,SAAUwvE,GACpH,OAAOA,EAAO54D,iBAGLk6D,GAAc,SAAqBtB,GAE5C,IAAIzR,EAAQv6D,GAASgsE,GAAQ54D,cAAczS,QAAQqwC,EAAsB,IAAIrlC,MAAM,KAC/E4hE,EAAUhT,EAAMl8D,MAAM,EAAG,GAAGwP,KAAK,KACjC2/D,EAAUjT,EAAM,GACpB,OAAOzR,GAAcukB,GAAWE,IAAYzkB,GAAcukB,GAAWG,ICP5D1zD,GAAQ,CACjBvW,GAAIiuD,GAASxN,KAIJypB,GAAUr4B,EAAAA,WAAAA,OAAW,CAC9Bt7B,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL+qE,SAAU,OAGdxU,SAAU,CACRyU,OAAQ,WAGN,IAAIpqE,EAAK5W,KAAK4W,IAAM5W,KAAK+gF,SAIrBpuE,EAAK,SAAYiyD,GACnB,OAAKhuD,GAILguD,EAASjjE,OAAOijE,GAAU,IAAI5wD,QAAQ,OAAQ,KACvC4wD,EAAShuD,EAAK,IAAMguD,EAAShuD,GAJ3B,MAOX,OAAOjE,IAGXqqE,QAAS,WACP,IAAItqC,EAAQ1yC,KAGZA,KAAKmrE,WAAU,WAGbz4B,EAAMquC,SAAW,WAAW9/E,OAAOyxC,EAAMmY,WF5C/C,SAAStyC,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EA4B3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAMyiD,KAEJkS,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAG5BnH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAa,GAAI,CACzHkX,aAAcrc,GAASxN,IAEvBigB,MAAOzS,GAAS9N,IAAmB,GACnCoqB,eAAgBtc,GAAS5N,IAEzBmqB,kBAAmBvc,GAAS1N,GAAkB,CAC5ConB,KAAMN,GACNO,MAAOX,GACPY,IAAKR,GACLoD,QAASxD,KAOXyD,WAAYzc,GAAS5N,IAErBsqB,UAAW1c,GAASxN,IACpB0I,SAAU8E,GAAS9N,IAAmB,GACtCyqB,UAAW3c,GAASxN,GAAkB,UAKtCoqB,OAAQ5c,GAAS9N,IAAmB,GAEpC2qB,WAAY7c,GAAS9N,IAAmB,GAIxC4qB,YAAa9c,GAAShN,IAEtB+pB,cAAe/c,GAASxN,GAAkB,YAC1CwqB,kBAAmBhd,GAASxN,GAAkB,iBAC9CyqB,UAAWjd,GAASxN,GAAkB,8CACtC0qB,SAAUld,GAASxN,GAAkB,uBACrC2qB,gBAAiBnd,GAASxN,GAAkB,eAC5C4qB,eAAgBpd,GAASxN,GAAkB,cAC3C6qB,cAAerd,GAASxN,GAAkB,aAC1C8qB,oBAAqBtd,GAASxN,GAAkB,oBAChD+qB,gBAAiBvd,GAASxN,GAAkB,mBAC5CgrB,eAAgBxd,GAASxN,GAAkB,kBAC3CirB,cAAezd,GAASxN,GAAkB,iBAC1CkrB,cAAe1d,GAASxN,GAAkB,iBAC1CmrB,WAAY3d,GAASxN,GAAkB,SAGvCgoB,OAAQxa,GAASpN,IACjBnmD,IAAKuzD,GAAShN,IACd1rD,IAAK04D,GAAShN,IAEd4qB,iBAAkB5d,GAASxN,GAAkB,aAE7CqrB,iBAAkB7d,GAAS9N,IAAmB,GAC9C4rB,SAAU9d,GAAS9N,IAAmB,GACtC6rB,SAAU/d,GAAS9N,IAAmB,GACtC8rB,gBAAiBhe,GAASxN,IAE1ByrB,gBAAiBje,GAASxN,GAAkB,WAE5C0rB,cAAele,GAAS9N,IAAmB,GAG3CisB,aAAcne,GAAS9M,GAAyB,GAEhDkrB,aAAcpe,GAASxN,IAEvB6rB,YAAare,GAAS9N,IAAmB,GAMzCosB,oBAAqBte,GAASxN,GAAkB0mB,IAAgB,SAAU17E,GACxE,OAAO85D,GAAc,CAAC0hB,GAAeE,GAAgBD,IAAkBz7E,MAGzEw9D,MAAOgF,GAASxN,GAAkB,YAC/B3L,IAGM03B,GAAY36B,EAAAA,WAAAA,OAAW,CAChCr+C,KAAMshD,GAENif,OAAQ,CAACwJ,GAAY2M,GAAS/W,GAAYtD,IAC1Ct5C,MAAOA,GACPnX,KAAM,WACJ,IAAIqtE,EAAWxE,GAAU7+E,KAAKiqE,MAAqB,GACnD,MAAO,CAELqZ,YAAaD,EAEbE,UAAWF,GAAYxE,GAAU2E,GAAexjF,KAAK2hF,aAAe3hF,KAAKyjF,YAAazjF,KAAKmM,IAAKnM,KAAKsR,KAErGoyE,cAAc,EAGdC,QAAQ,IAGZpX,SAAU,CACRqX,QAAS,WACP,OAAO5jF,KAAKghF,UAEd6C,SAAU,WACR,OAAO7jF,KAAKghF,OAAO,uBAErB8C,MAAO,WACL,OAAO9jF,KAAKghF,OAAO,mBAErB+C,OAAQ,WACN,OAAO/jF,KAAKghF,OAAO,oBAErBgD,cAAe,WACb,OAAOhkF,KAAKghF,OAAO,4BAErBiD,WAAY,WACV,OAAOjkF,KAAKghF,OAAO,yBAErBkD,SAAU,WACR,OAAOlkF,KAAKujF,UAAYvjF,KAAKghF,OAAO,SAAS//E,OAAOjB,KAAKujF,UAAW,MAAQ,MAG9EY,aAAc,WAEZ,OAAOhG,GAASn+E,KAAKsjF,cAEvBc,WAAY,WAEV,OAAOjG,GAASn+E,KAAKujF,YAEvBc,YAAa,WACX,OAAOlG,GAASn+E,KAAKmM,MAEvBm4E,YAAa,WACX,OAAOnG,GAASn+E,KAAKsR,MAEvBizE,mBAAoB,WAElB,OAAOzY,GAAQrP,GAAUz8D,KAAKgjF,aAAc,GAAI,GAAK,GAEvDwB,eAAgB,WAEd,OAAO1F,GAAc79E,GAAOjB,KAAKq/E,QAAQvvE,OAAO23C,IAAWm2B,KAE7D6G,uBAAwB,WACtB,IAAItD,EAAiBnhF,KAAKmhF,eAC1B,OAAOxb,GAAgBwb,GAAkBA,EAAiB,WACxD,OAAO,IAIXuD,mBAAoB,WAClB,IAAIpD,EAAathF,KAAKshF,WACtB,OAAO3b,GAAgB2b,GAAcA,EAAa,WAChD,MAAO,KAGXqD,eAAgB,WAKd,IAAI1F,EAAM,IAAIC,KAAKC,eAAen/E,KAAKwkF,eAAgB,CACrDxF,SAAUpB,KAERoB,EAAWC,EAAIG,kBAAkBJ,SACjCK,EAASJ,EAAIG,kBAAkBC,OAUnC,OAPIL,IAAapB,KAIfyB,EAASA,EAAOrrE,QAAQ,UAAW,IAAI/S,OAAO,kBAGzCo+E,GAETuF,aAAc,WACZ,OAAO5kF,KAAKokF,WAAW1F,eAEzBmG,cAAe,WACb,OAAO7kF,KAAKokF,WAAWzF,YAEzBmG,iBAAkB,WAIhB,OAAO5G,GAAWl+E,KAAK4kF,aAAc5kF,KAAK6kF,cAAe,EAAG,KAE9DE,oBAAqB,WAEnB,IAAI3G,EAAOF,GAAWl+E,KAAK8kF,kBAE3B,OADA1G,EAAK2B,SAAS3B,EAAKO,WAAa,EAAG,GAC5BP,EAAKQ,WAEd7E,gBAAiB,WACf,MAAO,OAAO94E,OAAOjB,KAAK8iF,iBAAmB,YAE/CkC,qBAAsB,WACpB,MAAO,eAAe/jF,OAAOjB,KAAKijF,cAAgBjjF,KAAK8iF,iBAAmB,YAE5EmC,yBAA0B,WACxB,MAAO,eAAehkF,OAAOjB,KAAKyiF,kBAAoB,YAExDyC,MAAO,WAEL,IAAIC,EAAM9xE,GAASrT,KAAKuhF,WAAW96D,cAEnC,MAAY,QAAR0+D,GAGe,QAARA,GAKJxE,GAAY3gF,KAAKwkF,iBAE1BzkF,QAAS,WACP,IAAIujF,EAActjF,KAAKsjF,YACnBC,EAAYvjF,KAAKujF,UACjBY,EAAehG,GAASmF,GACxBc,EAAajG,GAASoF,GAC1B,MAAO,CAELD,YAAaA,EACba,aAAcA,EACdiB,kBAAmBjB,EAAenkF,KAAKqlF,iBAAiBlB,GAAgBnkF,KAAKmiF,oBAE7EoB,UAAWA,EACXa,WAAYA,EACZkB,gBAAiBlB,EAAapkF,KAAKqlF,iBAAiBjB,GAAc,GAElErkB,SAAU//D,KAAKulF,aAAanB,GAE5B/E,OAAQr/E,KAAKwkF,eACbG,eAAgB3kF,KAAK2kF,eACrBa,IAAKxlF,KAAKklF,QAIdO,eAAgB,WAKd,IAAIt5E,EAAMnM,KAAKqkF,YACX/yE,EAAMtR,KAAKskF,YACf,OAAO,SAAUlG,GAGf,OADAA,EAAOD,GAASC,GACTjyE,GAAOiyE,EAAOjyE,GAAOmF,GAAO8sE,EAAO9sE,IAG9Ci0E,aAAc,WACZ,IAAI7yC,EAAQ1yC,KAOR0lF,EAAU1lF,KAAKylF,eAEnB,OAAO,SAAUrH,GAEfA,EAAOD,GAASC,GAChB,IAAIuH,EAAM9G,GAAUT,GACpB,SAAUsH,EAAQtH,KAAS1rC,EAAM+xC,uBAAuBkB,EAAKvH,MAIjEiH,iBAAkB,WAEhB,OAAO/F,GAAoBt/E,KAAK2kF,eAAgB9vC,GAAcA,GAAc,CAI1E0pC,KAAMN,GACNO,MAAOR,GACPS,IAAKT,IACJh+E,KAAKohF,mBAAoB,GAAI,CAG9BwE,UAAMzjF,EACN0jF,YAAQ1jF,EACRwwB,YAAQxwB,EAER68E,SAAUpB,OAGdkI,gBAAiB,WAEf,OAAOxG,GAAoBt/E,KAAK2kF,eAAgB,CAC9CpG,KAAMN,GACNO,MAAOX,GACPmB,SAAUpB,MAGdmI,kBAAmB,WAEjB,OAAOzG,GAAoBt/E,KAAK2kF,eAAgB,CAC9CtD,QAASxD,GACTmB,SAAUpB,MAGdoI,uBAAwB,WAGtB,OAAO1G,GAAoBt/E,KAAK2kF,eAAgB,CAC9CtD,QAASrhF,KAAKmjF,qBAAuBpF,GACrCiB,SAAUpB,MAGdqI,UAAW,WAIT,IAAIC,EAAK,IAAIhH,KAAKiH,aAAa,CAACnmF,KAAKwkF,gBAAiB,CACpD/3D,MAAO,UACP25D,qBAAsB,EACtBC,sBAAuB,EACvBC,sBAAuB,EACvBC,SAAU,aAGZ,OAAO,SAAUnI,GACf,OAAO8H,EAAG1G,OAAOpB,EAAKQ,aAI1B4H,mBAAoB,WAClB,IAAIr6E,EAAMnM,KAAKqkF,YACf,OAAOrkF,KAAK+/D,UAAY5zD,GAAO2zE,GAAgBS,GAAavgF,KAAKokF,aAAej4E,GAElFs6E,iBAAkB,WAChB,IAAIt6E,EAAMnM,KAAKqkF,YACf,OAAOrkF,KAAK+/D,UAAY5zD,GAAO2zE,GAAgBO,GAAWrgF,KAAKokF,aAAej4E,GAEhFu6E,kBAAmB,WACjB,IAAIv6E,EAAMnM,KAAKqkF,YACf,OAAOrkF,KAAK+/D,UAAY5zD,GAAO2zE,GAAgBK,GAAYngF,KAAKokF,aAAej4E,GAEjFw6E,kBAAmB,WAEjB,OAAO3mF,KAAK+/D,UAEd6mB,kBAAmB,WACjB,IAAIt1E,EAAMtR,KAAKskF,YACf,OAAOtkF,KAAK+/D,UAAYzuD,GAAOsuE,GAAiBQ,GAAcpgF,KAAKokF,aAAe9yE,GAEpFu1E,iBAAkB,WAChB,IAAIv1E,EAAMtR,KAAKskF,YACf,OAAOtkF,KAAK+/D,UAAYzuD,GAAOsuE,GAAiBU,GAAatgF,KAAKokF,aAAe9yE,GAEnFw1E,mBAAoB,WAClB,IAAIx1E,EAAMtR,KAAKskF,YACf,OAAOtkF,KAAK+/D,UAAYzuD,GAAOsuE,GAAiBY,GAAexgF,KAAKokF,aAAe9yE,GAGrF0tE,SAAU,WAYR,IAXA,IAAI+H,EAAS,GACTC,EAAWhnF,KAAK8kF,iBAChBF,EAAeoC,EAAStI,cACxBmG,EAAgBmC,EAASrI,WACzBsI,EAAcjnF,KAAK+kF,oBACnBmC,EAAaF,EAASG,SAEtBC,GAAcpnF,KAAKukF,mBAAqB2C,EAAa,EAAI,GAAKlnF,KAAKukF,mBAEnE8C,EAAa,EAAID,EAAaF,EAEzBI,EAAO,EAAGA,EAAO,GAAKD,EAAaJ,EAAaK,IAAQ,CAE/DP,EAAOO,GAAQ,GAEf,IAAK,IAAI/8E,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAE1B88E,IACA,IAAIjJ,EAAOF,GAAW0G,EAAcC,EAAewC,GAC/C7I,EAAQJ,EAAKO,WACb4I,EAAS1I,GAAUT,GACnBoJ,EAAcxnF,KAAKulF,aAAanH,GAEhCqJ,EAAWznF,KAAK0kF,mBAAmB6C,EAAQpJ,GAASoJ,IACxDE,EAAW5hC,GAAS4hC,IAAan1E,GAAQm1E,GAEzC,CACElf,MAAOkf,GACLzhC,GAAcyhC,GAAY5yC,GAAc,CAC1C0zB,MAAO,IACNkf,GAEH,CACElf,MAAO,IAETwe,EAAOO,GAAMt4E,KAAK,CAChB22E,IAAK4B,EAEL9I,IAAKz+E,KAAKimF,UAAU7H,GACpBsJ,MAAO1nF,KAAKqlF,iBAAiBjH,GAE7BuJ,YAAanJ,IAAUqG,EACvB/kB,WAAY0nB,EAEZI,KAAMH,KAKZ,OAAOV,GAETc,iBAAkB,WAChB,IAAIhT,EAAS70E,KAEb,OAAOA,KAAKg/E,SAAS,GAAGnvE,KAAI,SAAUi4E,GACpC,MAAO,CACLrO,KAAM5E,EAAOmR,uBAAuB7H,GAAS2J,EAAEnC,MAC/C+B,MAAO7S,EAAOkR,kBAAkB5H,GAAS2J,EAAEnC,YAKnD7a,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,EAAU+I,GAChF,IAAIuP,EAAWxE,GAAU9T,IAAa,GAClCgd,EAAMlJ,GAAU/K,IAAa,GAE5B2L,GAAW4D,EAAU0E,KACxB/nF,KAAKujF,UAAYF,GAAYrjF,KAAKujF,UAClCvjF,KAAKsjF,YAAcD,MAEnBvuC,GAAgB8zB,GAAQ,eAAe,SAAqBof,EAAQC,GAIlED,IAAWC,GACbjoF,KAAKirE,MAAMf,GAAkBlqE,KAAKkjF,YAAc/E,GAAS6J,IAAW,KAAOA,GAAU,OAErFlzC,GAAgB8zB,GAAQ,WAAW,SAAiBmC,EAAU+I,GAC3DV,GAAWrI,EAAU+I,IACxB9zE,KAAKirE,MAAM3X,GAAoByX,MAE/Bj2B,GAAgB8zB,GAAQ,UAAU,SAAgBmC,GAEpD/qE,KAAKujF,UAAYvjF,KAAKsjF,aAAezE,GAAU7+E,KAAKiqE,KAAoBjqE,KAAKygF,cAAczgF,KAAK2hF,aAAe3hF,KAAKyjF,aAEpHzjF,KAAKkoF,SAASnd,MACZnC,IACJwC,QAAS,WACP,IAAI+c,EAASnoF,KAEbA,KAAKmrE,WAAU,WACbgd,EAAOld,MAAM3X,GAAoB60B,EAAOpoF,aAG5Ci9E,QAAS,WACPh9E,KAAKkoF,SAAQ,IAIfE,UAAW,WACTpoF,KAAKkoF,SAAQ,IAIfG,YAAa,WACXroF,KAAKkoF,SAAQ,IAEf5c,cAAe,WACbtrE,KAAKkoF,SAAQ,IAEfltE,QAAS,CAEPuoD,MAAO,WACAvjE,KAAK+/D,UACRuD,GAAatjE,KAAKsoF,MAAMC,OAG5B9kB,KAAM,WACCzjE,KAAK+/D,UACRyD,GAAYxjE,KAAKsoF,MAAMC,OAI3BL,QAAS,SAAiB9gB,GACxB,IAAIohB,EAASxoF,KAETonE,EACFpnE,KAAKmrE,WAAU,WACb5M,IAAU,WACRiqB,EAAO7E,QAAS,QAIpB3jF,KAAK2jF,QAAS,GAGlBF,SAAU,WACR,OAAOtF,GAASD,OAElBuC,cAAe,SAAuBrC,GAGpC,OAAOoF,GAAepF,EAAMp+E,KAAKqkF,YAAarkF,KAAKskF,cAErDmE,aAAc,SAAsBrK,GAClC,IAAIsK,EAAS1oF,KAIbA,KAAKmrE,WAAU,WACbud,EAAOzd,MAAMrV,GAAqBipB,GAAUT,IAAS,GAAID,GAASC,IAAS,UAI/EuK,iBAAkB,SAA0Br0D,GAE1Ct0B,KAAK0jF,cAAgB1jF,KAAK+/D,UAA2B,UAAfzrC,EAAMlf,MAE9CwzE,iBAAkB,SAA0Bt0D,GAI1C,IAAIt0B,KAAK2iF,SAAT,CAKA,IAAIkG,EAASv0D,EAAMu0D,OACfC,EAAUx0D,EAAMw0D,QAChBrQ,EAAUnkD,EAAMmkD,QAEpB,GAAKtc,GAAc,CAAC4W,GAAaD,GAAeL,GAAUG,GAAWC,GAAWK,GAASF,GAAYR,IAAYiG,GAAjH,CAKApR,GAAU/yC,GACV,IAAI8vD,EAAalG,GAAWl+E,KAAKokF,YAC7B2E,EAAY7K,GAAWl+E,KAAKokF,YAC5B3F,EAAM2F,EAAWxF,UACjBoK,EAAmBhpF,KAAKygF,cAAczgF,KAAKyjF,YAC3CyB,EAAQllF,KAAKklF,MAEbzM,IAAY1F,IAEdqR,GAAcyE,EAASC,EAAUvI,GAAeF,GAAaF,IAAaiE,GAE1E2E,EAAY7K,GAAWkG,GACvB2E,EAAUlJ,QAAQ,IACTpH,IAAY3F,IAErBsR,GAAcyE,EAASC,EAAUtI,GAAiBF,GAAeF,IAAegE,GAEhF2E,EAAY7K,GAAWkG,GACvB2E,EAAUhJ,SAASgJ,EAAUpK,WAAa,GAC1CoK,EAAUlJ,QAAQ,IACTpH,IAAY5F,IAErBuR,EAAWvE,QAAQpB,GAAOyG,EAAQ,GAAK,IACvCd,EAAapkF,KAAKygF,cAAc2D,GAChC2E,EAAY3E,GACH3L,IAAYzF,IAErBoR,EAAWvE,QAAQpB,GAAOyG,GAAS,EAAI,IACvCd,EAAapkF,KAAKygF,cAAc2D,GAChC2E,EAAY3E,GACH3L,IAAYvF,IAErBkR,EAAWvE,QAAQpB,EAAM,GACzB2F,EAAapkF,KAAKygF,cAAc2D,GAChC2E,EAAY3E,GACH3L,IAAYjG,IAErB4R,EAAWvE,QAAQpB,EAAM,GACzB2F,EAAapkF,KAAKygF,cAAc2D,GAChC2E,EAAY3E,GACH3L,IAAY7F,IAErBwR,EAAa4E,EACbD,EAAY3E,GACH3L,IAAYhG,KAErB2R,EAAajG,GAASn+E,KAAKmkF,eAAiB6E,EAC5CD,EAAY3E,GAGTpkF,KAAKylF,eAAesD,IAAetJ,GAAW2E,EAAYpkF,KAAKokF,cAGlEpkF,KAAKujF,UAAY1E,GAAUuF,IAI7BpkF,KAAKujE,WAEP0lB,cAAe,SAAuB30D,GAEpC,IAAImkD,EAAUnkD,EAAMmkD,QAChB2L,EAAapkF,KAAKokF,WAElB3L,IAAY/F,IAAc+F,IAAYxF,KACxC5L,GAAU/yC,GAELt0B,KAAK+/D,UAAa//D,KAAK4iF,UAAa5iF,KAAKulF,aAAanB,KACzDpkF,KAAKsjF,YAAczE,GAAUuF,GAC7BpkF,KAAKyoF,aAAarE,IAIpBpkF,KAAKujE,UAGT2lB,WAAY,SAAoBzK,GAE9B,IAAI0F,EAAenkF,KAAKmkF,aACpBC,EAAapkF,KAAKokF,WAClB+E,EAAchL,GAASM,EAAIkH,KAE1B3lF,KAAK+/D,UAAa0e,EAAI3e,YAAe9/D,KAAKulF,aAAa4D,KACrDnpF,KAAK4iF,WAGR5iF,KAAKsjF,YAAczE,GAAUY,GAAW0J,EAAahF,GAAgBA,EAAegF,GACpFnpF,KAAKyoF,aAAaU,IAGpBnpF,KAAKujF,UAAY1E,GAAUY,GAAW0J,EAAa/E,GAAcA,EAAalG,GAAWiL,IAEzFnpF,KAAKujE,UAGT6lB,eAAgB,WACdppF,KAAKujF,UAAY1E,GAAU7+E,KAAKygF,cAAcF,GAAavgF,KAAKokF,eAElEiF,aAAc,WACZrpF,KAAKujF,UAAY1E,GAAU7+E,KAAKygF,cAAcJ,GAAWrgF,KAAKokF,eAEhEkF,cAAe,WACbtpF,KAAKujF,UAAY1E,GAAU7+E,KAAKygF,cAAcN,GAAYngF,KAAKokF,eAEjEmF,iBAAkB,WAEhBvpF,KAAKujF,UAAY1E,GAAU7+E,KAAKygF,cAAczgF,KAAKyjF,cAErD+F,cAAe,WACbxpF,KAAKujF,UAAY1E,GAAU7+E,KAAKygF,cAAcL,GAAcpgF,KAAKokF,eAEnEqF,aAAc,WACZzpF,KAAKujF,UAAY1E,GAAU7+E,KAAKygF,cAAcH,GAAatgF,KAAKokF,eAElEsF,eAAgB,WACd1pF,KAAKujF,UAAY1E,GAAU7+E,KAAKygF,cAAcD,GAAexgF,KAAKokF,eAEpEuF,cAAe,WACR3pF,KAAK+/D,WACR//D,KAAKujF,UAAYvjF,KAAKsjF,aAAezE,GAAU7+E,KAAKyjF,YACpDzjF,KAAKujE,WAIXpkE,OAAQ,SAAgB2B,GACtB,IAAI8oF,EAAS5pF,KAGb,GAAIA,KAAKyhF,OACP,OAAO3gF,IAGT,IAAI8iF,EAAU5jF,KAAK4jF,QACfC,EAAW7jF,KAAK6jF,SAChBC,EAAQ9jF,KAAK8jF,MACbC,EAAS/jF,KAAK+jF,OACdC,EAAgBhkF,KAAKgkF,cACrBC,EAAajkF,KAAKikF,WAClBC,EAAWlkF,KAAKkkF,SAChBnkB,EAAW//D,KAAK+/D,SAChB4iB,EAAW3iF,KAAK2iF,SAChBgB,EAAS3jF,KAAK2jF,OACduB,EAAQllF,KAAKklF,MACb3B,EAAYvjF,KAAKujF,UACjBD,EAActjF,KAAKsjF,YACnBtC,EAAShhF,KAAKghF,OACd6I,GAAiB7pF,KAAK+iF,cACtB+G,EAAWjL,GAAU7+E,KAAKyjF,YAC1BsG,GAAkB/pF,KAAK0iF,iBAEvBsH,EAAUlpF,EAAE,SAAU,CACxBwnE,YAAa,2CACbC,MAAO,CACL,aAAcxI,EACd6iB,SAAU5iF,KAAK4iF,UAAY7iB,GAE7ByI,MAAO,CACL5xD,GAAIgtE,EACJqG,IAAKlG,EACLpY,KAAM,SACN+K,SAAU3W,EAAW,KAAO,KAG5B,gBAAiB1sD,GAASiwE,GAG1B,YAAaK,EAAS,SAAW,MACjC,cAAeA,EAAS,OAAS,MAEnCvc,GAAI,CAGFqB,MAAOzoE,KAAK2pF,cACZpmB,MAAOvjE,KAAK2pF,gBAEb3pF,KAAKmkF,aAAe,CAEvBrjF,EAAE,MAAO,CACPwnE,YAAa,WACZ,KAAKrnE,OAAOoS,GAASrT,KAAKuiF,eAAgB,OAAQzhF,EAAE,MAAOd,KAAKqlF,iBAAiBrlF,KAAKmkF,gBAAkBnkF,KAAKmiF,qBAAuB,KAEvI6H,EAAUlpF,EAAEd,KAAKwhF,UAAW,CAC1BlZ,YAAa,oBACbC,MAAO,CACL,UAAWvoE,KAAK0hF,YAElBlZ,MAAO,CACLkH,MAAO1vE,KAAKmkF,cAAenkF,KAAKkqF,mBAA4B,OAE7D,CAACF,IAEJ,IAAIG,EAAW,CACbjF,MAAOA,GAELkF,EAAW,CACb5a,OAAQ,IAGN6a,EAAex1C,GAAcA,GAAc,GAAIu1C,GAAW,GAAI,CAChElb,MAAOgW,IAGLoF,EAAez1C,GAAcA,GAAc,GAAIu1C,GAAW,GAAI,CAChElb,OAAQgW,IAGNqF,EAAkBvqF,KAAKsmE,cAAczL,GAA0BsvB,IAAarpF,EAAEowE,GAAqB,CACrG/jD,MAAOk9D,IAELG,EAAgBxqF,KAAKsmE,cAAcvL,GAAwBovB,IAAarpF,EAAEqwE,GAAwB,CACpGhkD,MAAOk9D,IAELI,EAAiBzqF,KAAKsmE,cAAcxL,GAAyBqvB,IAAarpF,EAAEuwE,GAAkB,CAChGlkD,MAAOk9D,IAELK,EAAiB1qF,KAAKsmE,cAActL,GAA0BmvB,IAAarpF,EAAEywE,GAAiB,CAChGpkD,MAAOi9D,IAELO,EAAiB3qF,KAAKsmE,cAAc3L,GAA0BwvB,IAAarpF,EAAEuwE,GAAkB,CACjGlkD,MAAOm9D,IAELM,EAAgB5qF,KAAKsmE,cAAc1L,GAAyBuvB,IAAarpF,EAAEqwE,GAAwB,CACrGhkD,MAAOm9D,IAELO,EAAkB7qF,KAAKsmE,cAAc5L,GAA2ByvB,IAAarpF,EAAEowE,GAAqB,CACtG/jD,MAAOm9D,IAGLQ,EAAa,SAAoB/+D,EAAS27D,EAAO/yD,EAASo2D,EAAaC,GACzE,OAAOlqF,EAAE,SAAU,CACjBwnE,YAAa,gCACbC,MAAO,CAACqhB,EAAO3E,yBAA0B,CACvCllB,SAAUgrB,IAEZviB,MAAO,CACLkH,MAAOgY,GAAS,KAChBtyE,KAAM,SACNshE,SAAUiM,EAAW,KAAO,KAC5B,aAAc+E,GAAS,KACvB,gBAAiBqD,EAAc,OAAS,KACxC,oBAAqBC,GAAY,MAEnC5jB,GAAI2jB,EAAc,GAAK,CACrBtiB,MAAO9zC,IAER,CAAC7zB,EAAE,MAAO,CACX0nE,MAAO,CACL,cAAe,SAEhB,CAACz8C,OAIFk/D,EAAOnqF,EAAE,MAAO,CAClBwnE,YAAa,wBACbE,MAAO,CACL5xD,GAAIktE,EACJnY,KAAM,QACN+K,SAAUiM,EAAW,KAAO,KAC5B,cAAe5iB,EAAW,OAAS,KACnC,aAAc//D,KAAK+hF,UAAY,KAC/B,gBAAiBgC,IAElB,CAAC8F,EAAgB/oF,IAAMgqF,EAAWP,EAAiBvqF,KAAKoiF,gBAAiBpiF,KAAKopF,eAAgBppF,KAAKwmF,mBAAoB,qBAAsBsE,EAAWN,EAAexqF,KAAKsiF,cAAetiF,KAAKqpF,aAAcrpF,KAAKymF,iBAAkB,gBAAiBqE,EAAWL,EAAgBzqF,KAAKqiF,eAAgBriF,KAAKspF,cAAetpF,KAAK0mF,kBAAmB,YAAaoE,EAAWJ,EAAgB1qF,KAAK6hF,kBAAmB7hF,KAAKupF,iBAAkBvpF,KAAK2mF,kBAAmB,QAASmE,EAAWH,EAAgB3qF,KAAKiiF,eAAgBjiF,KAAKwpF,cAAexpF,KAAK4mF,kBAAmB,UAAWkE,EAAWF,EAAe5qF,KAAKkiF,cAAeliF,KAAKypF,aAAczpF,KAAK6mF,iBAAkB,cAAegD,EAAgB/oF,IAAMgqF,EAAWD,EAAiB7qF,KAAKgiF,gBAAiBhiF,KAAK0pF,eAAgB1pF,KAAK8mF,mBAAoB,qBAE7wBoE,EAAepqF,EAAE,MAAO,CAC1BwnE,YAAa,uDACbC,MAAO,CACL,aAAcxI,GAEhByI,MAAO,CACL5xD,GAAIotE,EACJ,YAAaL,EAAS,SAAW,KACjC,cAAeA,EAAS,OAAS,MAEnCrhF,IAAK,gBACJtC,KAAK8lF,gBAAgB9lF,KAAK8kF,mBAEzBqG,EAAgBrqF,EAAE,MAAO,CAC3BwnE,YAAa,wDACbE,MAAO,CACL,cAAe,SAEhBxoE,KAAK6nF,iBAAiBh4E,KAAI,SAAUi4E,EAAG9L,GACxC,OAAOl7E,EAAE,QAAS,CAChBwnE,YAAa,oBACbC,MAAO,CACL,aAAcxI,GAEhByI,MAAO,CACLkH,MAAOoY,EAAEJ,QAAUI,EAAErO,KAAO,KAAOqO,EAAEJ,MACrC,aAAcI,EAAEJ,OAElBplF,IAAK05E,GACJ8L,EAAErO,UAGH2R,EAAYprF,KAAKg/E,SAASnvE,KAAI,SAAUy3E,GAC1C,IAAI+D,EAAS/D,EAAKz3E,KAAI,SAAU4uE,EAAK6M,GACnC,IAAI1b,EAEA2b,EAAa9M,EAAIkH,MAAQrC,EACzBkI,EAAW/M,EAAIkH,MAAQpC,EACvBkI,EAAUhN,EAAIkH,MAAQmE,EACtB4B,EAAS1K,EAAO,SAAS//E,OAAOw9E,EAAIkH,IAAK,MAEzCgG,EAAO7qF,EAAE,OAAQ,CACnBwnE,YAAa,0CAEbC,OAAQqH,EAAS,CAEfrM,MAAOioB,GAAY5B,EAAOlG,aAE1B3jB,SAAU0e,EAAI3e,YAAcC,EAC5BiW,OAAQuV,GACPz2C,GAAgB86B,EAAQga,EAAO7P,gBAAiBwR,GAAaz2C,GAAgB86B,EAAQga,EAAO5E,qBAAsByG,GAAW1B,IAAmBwB,GAAc9M,EAAIkJ,aAAc7yC,GAAgB86B,EAAQ,sBAAuB6b,GAAW1B,KAAoBwB,IAAeC,GAAW12C,GAAgB86B,EAAQ,cAAe6b,GAAW1B,KAAoBwB,GAAcC,GAAW12C,GAAgB86B,EAAQ,cAAe6O,EAAIkJ,cAAgB4D,GAAaz2C,GAAgB86B,EAAQ,cAAe6b,GAAW1B,KAAoBwB,IAAeC,GAAY/M,EAAIkJ,aAAc7yC,GAAgB86B,EAAQ,oBAAqB2b,GAAc9M,EAAIkJ,eAAiBlJ,EAAI3e,YAAa8P,GACtpBxI,GAAI,CACFqB,MAAO,WACL,OAAOmhB,EAAOV,WAAWzK,MAG5BA,EAAIA,KACP,OAAO39E,EAAE,MACT,CACEwnE,YAAa,UACbC,MAAOkW,EAAI3e,WAAa,WAAa2e,EAAImJ,KAAKrf,OAAS,GACvDC,MAAO,CACL5xD,GAAI80E,EACJ/f,KAAM,SACN,YAAa8S,EAAIkH,IAGjB,cAAelH,EAAIkJ,YAAc,KAAO,OACxC,gBAAiBlJ,EAAI3e,YAAcC,EAAW,OAAS,KACvD,aAAc,CAAC0e,EAAIiJ,MAAO6D,EAAa,IAAItqF,OAAO2oF,EAAOrH,cAAe,KAAO,KAAMkJ,EAAU,IAAIxqF,OAAO2oF,EAAOpH,WAAY,KAAO,MAAM1yE,OAAO23C,IAAUvmC,KAAK,KAIhK,gBAAiBqqE,EAAa,OAAS,KACvC,eAAgBA,EAAa,OAAS,MAExCjpF,IAAKgpF,GACJ,CAACK,OAKN,OAAO7qF,EAAE,MAAO,CACdwnE,YAAa,iBACbhmE,IAAKglF,EAAK,GAAG3B,KACZ0F,MAELD,EAAYtqF,EAAE,MAAO,CAEnBwnE,YAAa,uBACb77C,MAAOszC,EAAW,CAChB6rB,cAAe,QACb,IAEHR,GACH,IAAIS,EAAY/qF,EAAE,MAAO,CACvBwnE,YAAa,wEACbE,MAAO,CACL5xD,GAAIqtE,IAEL,CAACnjF,EAAE,MAAO,CACXwnE,YAAa,SACZtoE,KAAK8hF,aACJgK,EAAQhrF,EAAE,MAAO,CACnBwnE,YAAa,kDACbE,MAAO,CACL5xD,GAAImtE,EACJpY,KAAM,cACN+K,SAAUiM,EAAW,KAAO5iB,EAAW,KAAO,IAC9C,aAAcwjB,EAAU7xE,MAAM,GAAI,GAElC,uBAAwB1R,KAAK4hF,eAAiB,KAC9C,kBAAmBoC,EACnB,mBAAoBC,EAIpB,gBAAiBlkB,EAAW,OAAS,KACrC,wBAAyBmkB,GAE3B9c,GAAI,CACFoR,QAASx4E,KAAKipF,cACd1lB,MAAOvjE,KAAK2oF,iBACZllB,KAAMzjE,KAAK2oF,kBAEboD,IAAK,QACJ,CAACb,EAAcC,EAAeC,EAAWS,IAExCG,EAAQhsF,KAAKsmE,gBACjB0lB,EAAQA,EAAQlrF,EAAE,SAAU,CAC1BwnE,YAAa,qBACZ0jB,GAASlrF,IACZ,IAAImrF,EAAUnrF,EAAE,MAAO,CACrBwnE,YAAa,mBACb77C,MAAOzsB,KAAKs3E,MAAQ,GAAK,CACvBzX,MAAO7/D,KAAK6/D,OAEd2I,MAAO,CACL5xD,GAAIitE,EACJsB,IAAKD,EAAQ,MAAQ,MACrBgH,KAAMlsF,KAAKwkF,gBAAkB,KAC7B7Y,KAAM,QACN,gBAAiB5L,EAAW,OAAS,KAErC,gBAAiB//D,KAAKkhF,cAAgB,KAEtC,uBAAwBlhF,KAAK6iF,iBAAmB,KAChD,mBAAoB,CAEpB7iF,KAAKy2E,QAAQ,oBAAqBmN,EAASK,GAAYn0E,OAAO23C,IAAUvmC,KAAK,MAE/EkmD,GAAI,CACFoR,QAASx4E,KAAK4oF,mBAEf,CAACoB,EAASiB,EAAMa,EAAOE,IAE1B,OAAOlrF,EAAE,MAAO,CACdwnE,YAAa,aACbC,MAAO,CACL,UAAWvoE,KAAKs3E,QAEjB,CAAC2U,OGh/BJE,GAA8B3iC,GAAc,CAC9CR,WAAY,CACVo6B,UAAWA,MCCJj2D,GAAQs4C,GAAsB,CACvC2mB,UAAWvnB,GAASxN,IACpBg1B,cAAexnB,GAASxN,IACxBzjD,IAAKixD,GAASxN,GAAkB,OAChC8Q,YAAatD,GAASxN,KACrB1L,ICJQx+B,IDOYs7B,EAAAA,WAAAA,OAAW,CAChCt7B,MAAOA,KCRUs4C,GAAsB,CACvCiK,MAAO7K,GAASxN,IAChBi1B,SAAUznB,GAASxN,GAAkB,OACpCjL,KAGQmgC,GAA0B9jC,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAMgiD,GACNvsD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMm/D,SAAU3hC,GAAU30C,EAAM,CACvCsyD,YAAa,eACXmB,GAAYp2D,GAAS8Z,EAAMuiD,WChBxBviD,GAAQs4C,GAAsB,CACvC+mB,SAAU3nB,GAASxN,IACnBo1B,YAAa5nB,GAASxN,GAAkB,MACxCq1B,oBAAqB7nB,GAASxN,GAAkB,UAC/CnL,IAGQygC,GAA6BlkC,EAAAA,WAAAA,OAAW,CACjDr+C,KAAM8hD,GACNrsD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMs/D,YAAa9hC,GAAU30C,EAAM,CAC1CsyD,YAAa,gBACbC,MAAO,CAACp7C,EAAMu/D,oBAAsB,QAAQzrF,OAAOksB,EAAMu/D,qBAAuB,QAC9EjjB,GAAYp2D,GAAS8Z,EAAMq/D,cCxBnC,SAASj0E,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAWpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAc,GAAI+3C,IAAaC,IAAgB5nB,GAAU6nB,GAAWtoB,GAAel3D,KAAK,KAAM,UAAW,GAAI,CACvMy/E,UAAWloB,GAASrN,IACpBw1B,QAASnoB,GAAS9N,IAAmB,MAClCnL,IAGMqhC,GAAyBxkC,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMwhD,GACN/rD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAIwlB,EAEAphD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChByjB,EAAgB//D,EAAM+/D,cACtBC,EAAoBhgE,EAAMggE,kBAC1BC,EAAkBjgE,EAAMigE,gBACxBhd,EAAStvE,IAETqsB,EAAMuiD,QACRU,EAAStvE,EAAEyrF,GAAY,CACrBp/D,MAAOi4C,GAAWwnB,GAAYz/D,MAIlC,IAAIkgE,EAAYvsF,IAShB,OAPIqsB,EAAMq/D,WACRa,EAAYvsF,EAAE6rF,GAAe,CAC3Bx/D,MAAOi4C,GAAWynB,GAAe1/D,GACjCo7C,MAAO,CAAC,WAILznE,EAAEqsB,EAAMmgE,QAAS3iC,GAAU30C,EAAM,CACtCsyD,YAAa,YACbC,MAAO,EAAEgG,EAAQ,CACf,mBAAoBphD,EAAM6/D,SACzBl4C,GAAgBy5B,EAAO,MAAMttE,OAAOisF,GAAgBA,GAAgBp4C,GAAgBy5B,EAAO,UAAUttE,OAAOksF,GAAoBA,GAAoBr4C,GAAgBy5B,EAAO,QAAQttE,OAAOmsF,GAAkBA,GAAkB7e,GAAQphD,EAAM4/D,aAC7O,CAAC3c,EAAQid,EAAW5jB,OCxD5B,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIowB,GAAUsoB,GAAY/oB,GAAel3D,KAAK,KAAM,YAAa,GAAI,CACjJkgF,OAAQ3oB,GAASxN,IACjBo2B,YAAa5oB,GAASrN,IACtBk2B,WAAY7oB,GAASxN,OAClBtL,IAGM4hC,GAA2BllC,EAAAA,WAAAA,OAAW,CAC/Cr+C,KAAM2hD,GACNlsD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAIwlB,EAEAphD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBmkB,EAAkBzgE,EAAMygE,gBACxBC,EAAsB1gE,EAAM0gE,oBAC5BC,EAAoB3gE,EAAM2gE,kBAC9B,OAAOhtF,EAAEqsB,EAAMq0D,UAAW72B,GAAU30C,EAAM,CACxCsyD,YAAa,cACbC,MAAO,CAACp7C,EAAMsgE,aAAclf,EAAQ,GAAIz5B,GAAgBy5B,EAAO,MAAMttE,OAAO2sF,GAAkBA,GAAkB94C,GAAgBy5B,EAAO,UAAUttE,OAAO4sF,GAAsBA,GAAsB/4C,GAAgBy5B,EAAO,QAAQttE,OAAO6sF,GAAoBA,GAAoBvf,IAClR7F,SAAUe,EAAW,GAAK6R,GAAWnuD,EAAMugE,WAAYvgE,EAAMqgE,UAC3D/jB,MCtCR,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIowB,GAAUsoB,GAAY/oB,GAAel3D,KAAK,KAAM,YAAa,GAAI,CACjJygF,OAAQlpB,GAASxN,IACjB22B,YAAanpB,GAASrN,IACtBy2B,WAAYppB,GAASxN,OAClBxL,IAGMqiC,GAA2BzlC,EAAAA,WAAAA,OAAW,CAC/Cr+C,KAAMyhD,GACNhsD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAIwlB,EAEAphD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChB0kB,EAAkBhhE,EAAMghE,gBACxBC,EAAsBjhE,EAAMihE,oBAC5BC,EAAoBlhE,EAAMkhE,kBAC9B,OAAOvtF,EAAEqsB,EAAMmhE,UAAW3jC,GAAU30C,EAAM,CACxCsyD,YAAa,cACbC,MAAO,CAACp7C,EAAM6gE,aAAczf,EAAQ,GAAIz5B,GAAgBy5B,EAAO,MAAMttE,OAAOktF,GAAkBA,GAAkBr5C,GAAgBy5B,EAAO,UAAUttE,OAAOmtF,GAAsBA,GAAsBt5C,GAAgBy5B,EAAO,QAAQttE,OAAOotF,GAAoBA,GAAoB9f,IAClR7F,SAAUe,EAAW,GAAK6R,GAAWnuD,EAAM8gE,WAAY9gE,EAAM4gE,UAC3DtkB,MCtCR,SAAS30B,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAa3M,IAAIumE,GAAiB,0LAEjBC,GAAkB,SAAyB3uB,EAAOD,EAAQ6uB,GAC5D,IAAIp0E,EAAM8yD,mBAAmBohB,GAAev6E,QAAQ,OAAQX,GAASwsD,IAAQ7rD,QAAQ,OAAQX,GAASusD,IAAS5rD,QAAQ,OAAQy6E,IAC/H,MAAO,oCAAoCxtF,OAAOoZ,IAIzC8S,GAAQs4C,GAAsB,CACvCuT,IAAKnU,GAASxN,IACdq3B,MAAO7pB,GAAS9N,IAAmB,GACnC43B,WAAY9pB,GAASxN,GAAkB,eACvCigB,MAAOzS,GAAS9N,IAAmB,GACnC63B,OAAQ/pB,GAAS9N,IAAmB,GACpC83B,MAAOhqB,GAAS9N,IAAmB,GAEnC+3B,UAAWjqB,GAAS9N,IAAmB,GACvC6I,OAAQiF,GAAS9M,IACjB3mD,KAAMyzD,GAAS9N,IAAmB,GAClC1lD,MAAOwzD,GAAS9N,IAAmB,GAUnCwiB,QAAS1U,GAASjN,IAA0B,GAC5Cm3B,MAAOlqB,GAASpN,IAChBp9C,IAAKwqD,GAASxN,IACd23B,OAAQnqB,GAASpN,IACjBw3B,UAAWpqB,GAAS9N,IAAmB,GACvC8I,MAAOgF,GAAS9M,KACfnJ,IAGQsgC,GAAoBzmC,EAAAA,WAAAA,OAAW,CACxCr+C,KAAMwkD,GACN/uD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI6mB,EAEAziD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZgjE,EAAM7rD,EAAM6rD,IACZ3+D,EAAM8S,EAAM9S,IACZi9D,EAAQnqD,EAAMmqD,MACdwX,EAAY3hE,EAAM2hE,UAClBvV,EAAUpsD,EAAMosD,QAChB1Z,EAAQpD,GAAUtvC,EAAM0yC,QAAU,KAClCD,EAASnD,GAAUtvC,EAAMyyC,SAAW,KACpCuvB,EAAQ,KACRH,EAAS/tF,GAAOksB,EAAM6hE,QAAQl/E,OAAO23C,IAAUvmC,KAAK,KACpD6tE,EAAQ9tF,GAAOksB,EAAM4hE,OAAOj/E,OAAO23C,IAAUvmC,KAAK,KA8BtD,OA5BIiM,EAAMuhE,SACH9uB,GAAUC,EACbD,EAASC,GACCA,GAASD,IACnBC,EAAQD,GAGLC,GAAUD,IACbC,EAAQ,EACRD,EAAS,GAIXvlD,EAAMm0E,GAAgB3uB,EAAOD,EAAQzyC,EAAMwhE,YAAc,eAEzDK,EAAS,KACTD,EAAQ,MAGN5hE,EAAM/b,KACR+9E,EAAQ,aACChiE,EAAM9b,MACf89E,EAAQ,cACChiE,EAAMyhE,SACfO,EAAQ,UACR7X,GAAQ,GAGHx2E,EAAE,MAAO6pD,GAAU30C,EAAM,CAC9BwyD,MAAO,CACLnuD,IAAKA,EACL2+D,IAAKA,EACLnZ,MAAOA,EAAQxsD,GAASwsD,GAAS,KACjCD,OAAQA,EAASvsD,GAASusD,GAAU,KACpCovB,OAAQA,GAAU,KAClBD,MAAOA,GAAS,MAElBxmB,OAAQqH,EAAS,CACf,gBAAiBziD,EAAM8hE,UACvB,YAAa9hE,EAAM0hE,OAASC,EAC5B,QAASA,EACTvV,QAAqB,KAAZA,IAA8B,IAAZA,GAC1BzkC,GAAgB86B,EAAQ,WAAW3uE,OAAOs4E,GAAU1zB,GAAS0zB,IAAwB,KAAZA,GAAiBzkC,GAAgB86B,EAAQuf,EAAOA,GAAQr6C,GAAgB86B,EAAQ,UAAW0H,GAAQ1H,SCjHrL,SAASr3D,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EASpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI2R,GAAK4oC,GAAW,CAAC,MAAO,MAAO,QAAS,SAAU,OAAQ,WAAY,GAAI,CAC1J9U,OAAQzV,GAAS9N,IAAmB,GACpCpqD,IAAKk4D,GAAS9N,IAAmB,GACjChtD,MAAO86D,GAAS9N,IAAmB,GACnCoL,IAAK0C,GAAS9N,IAAmB,MAC9B/K,IAGMqjC,GAAwB5mC,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAM4hD,GACNnsD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZqE,EAAM8S,EAAM9S,IACZ2+D,EAAM7rD,EAAM6rD,IACZnZ,EAAQ1yC,EAAM0yC,MACdD,EAASzyC,EAAMyyC,OACf0vB,EAAY,WAYhB,OAVIniE,EAAMg1C,IACRmtB,GAAa,OACJniE,EAAM9b,OAAS8b,EAAMxgB,IAC9B2iF,GAAa,SACJniE,EAAMmtD,OACfgV,GAAa,WACJniE,EAAM/b,MAAQ+b,EAAMpjB,SAC7BulF,GAAa,SAGRxuF,EAAE,MAAO6pD,GAAU30C,EAAM,CAC9BuyD,MAAO+mB,EACP9mB,MAAO,CACLnuD,IAAKA,EACL2+D,IAAKA,EACLnZ,MAAOA,EACPD,OAAQA,SClDhB,SAASrnD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAgB3M,IAAIunE,GAAetqB,GAAUuqB,GAAehrB,GAAel3D,KAAK,KAAM,QACtEiiF,GAAaE,OAAO93D,UAAW,EACxB,IAAIxK,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAI66C,IAAiBC,IAAmBC,IAAmBL,IAAezC,IAAY,GAAI,CAC9NqC,MAAOtqB,GAASxN,IAChBw4B,OAAQhrB,GAAS9N,IAAmB,MACjCpL,IAGMmkC,GAAqBrnC,EAAAA,WAAAA,OAAW,CACzCr+C,KAAMuhD,GACN9rD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI6mB,EAEAziD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZ2wD,EAAQ5d,EAAK4d,MACbD,EAAc3d,EAAK2d,YACnB+oB,EAAStiE,EAAMsiE,OACfM,EAAU5iE,EAAM4iE,QAChBC,EAAW7iE,EAAM6iE,SACjBC,EAAW9iE,EAAM8iE,SACjBC,EAAS/iE,EAAM+iE,OACfC,EAAYhjE,EAAMgjE,UAClB3C,EAASrgE,EAAMqgE,OACfE,EAAavgE,EAAMugE,WACnBK,EAAS5gE,EAAM4gE,OACfE,EAAa9gE,EAAM8gE,WACnBkB,EAAQhiE,EAAMgiE,MACdhnB,EAAch7C,EAAMg7C,YACpBikB,EAAYj/D,EAAMi/D,UAClBC,EAAgBl/D,EAAMk/D,cACtBjmB,EAAeM,GAAe,GAC9BL,EAASM,IACTypB,EAAY,GACZC,EAAYvvF,IACZwvF,EAAWxvF,IAEf,GAAI2uF,EAAQ,CACV,IAAIc,EAAOzvF,EAAEuuF,GAAU,CACrBliE,MAAOi4C,GAAWmqB,GAAcpiE,EAAOu3C,GAAiBp3D,KAAK,KAAM,UAGjE6iF,EACFG,EAAWC,EAEXF,EAAYE,EAIhB,IAAIvG,EAAUlpF,IACV0vF,EAAgBrqB,GAAkB7M,GAAkB8M,EAAcC,IAElEmqB,GAAiBhD,GAAUE,KAC7B1D,EAAUlpF,EAAE6sF,GAAa,CACvBxgE,MAAOi4C,GAAWuqB,GAAkBxiE,GACpCu7C,SAAU8nB,EAAgB,GAAKlV,GAAWoS,EAAYF,IACrDlnB,GAAchN,GAAkB82B,EAAWhqB,EAAcC,KAG9D,IAAIyG,EAAWxG,GAAc3N,GAAmBy3B,EAAWhqB,EAAcC,GAEpEl5C,EAAM0iE,SACT/iB,EAAWhsE,EAAEmsF,GAAW,CACtB9/D,MAAOi4C,GAAWsqB,GAAgBviE,IACjC2/C,GAGC3/C,EAAM6/D,SAAWyC,IACnB3iB,EAAWhsE,EAAE,MAAO,CAClBwnE,YAAa,qBACZ,CAAC+nB,EAAWvjB,EAAUwjB,IAEzBD,EAAYvvF,IACZwvF,EAAWxvF,MAIf,IAAI2vF,EAAU3vF,IACV4vF,EAAgBvqB,GAAkB9M,GAAkB+M,EAAcC,GAStE,OAPIqqB,GAAiB3C,GAAUE,KAC7BwC,EAAU3vF,EAAEotF,GAAa,CACvB/gE,MAAOi4C,GAAWwqB,GAAkBziE,GACpCu7C,SAAU8nB,EAAgB,GAAKlV,GAAW2S,EAAYF,IACrDznB,GAAcjN,GAAkB+2B,EAAWhqB,EAAcC,KAGvDvlE,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,OACbC,OAAQqH,EAAS,CACf,WAAYmgB,GAAWE,EACvB,oBAAqBD,GAAYE,MAAaH,GAAWE,IACxDn7C,GAAgB86B,EAAQ,QAAQ3uE,OAAOkuF,GAAQA,GAAQr6C,GAAgB86B,EAAQ,MAAM3uE,OAAOmrF,GAAYA,GAAYt3C,GAAgB86B,EAAQ,UAAU3uE,OAAOorF,GAAgBA,GAAgBv3C,GAAgB86B,EAAQ,QAAQ3uE,OAAOknE,GAAcA,GAAcyH,KACjQ,CAACygB,EAAWrG,EAASld,EAAU2jB,EAASH,OCnHhD,SAAS7gD,GAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASyzC,GAAkBzoC,EAAQ6gB,GAAS,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,IAAK,CAAE,IAAI8P,EAAamT,EAAMjjB,GAAI8P,EAAWL,WAAaK,EAAWL,aAAc,EAAOK,EAAW5X,cAAe,EAAU,UAAW4X,IAAYA,EAAWJ,UAAW,GAAMxW,OAAOtB,eAAewK,EAAQ0N,EAAW1X,IAAK0X,IAE7S,SAASg7B,GAAazxC,EAAa0xC,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxxC,EAAYrB,UAAW+yC,GAAiBC,GAAaH,GAAkBxxC,EAAa2xC,GAAc9xC,OAAOtB,eAAeyB,EAAa,YAAa,CAAEqW,UAAU,IAAiBrW,EAuC/Q,IC3CIqlE,GD2CA+nB,GAAqB,4BAErBC,GAAkC,WACpC,SAASA,EAAmBliF,EAAI/O,EAASkxF,GACvCphD,GAAgBzvC,KAAM4wF,GAEtB5wF,KAAK0O,GAAKA,EACV1O,KAAKs0E,SAAW30E,EAAQ20E,SACxBt0E,KAAK8wF,OAASnxF,EAAQmxF,QAAU,EAChC9wF,KAAK+wF,KAAOpxF,EAAQoxF,OAAQ,EAC5B/wF,KAAKgxF,SAAW,KAChBhxF,KAAKixF,aAAU9uF,EACfnC,KAAKkxF,UAAW,EAEhBlxF,KAAKmxF,eAAeN,GAgFtB,OA7EA77C,GAAa47C,EAAoB,CAAC,CAChCtuF,IAAK,iBACLD,MAAO,SAAwBwuF,GAC7B,IAAIn+C,EAAQ1yC,KASZ,GANIA,KAAKgxF,UAEPhxF,KAAKwnB,QAIHxnB,KAAKkxF,UAAaltD,GAAWhkC,KAAKs0E,UAAtC,CAMA,IAGEt0E,KAAKgxF,SAAW,IAAII,qBAAqBpxF,KAAK20B,QAAQrnB,KAAKtN,MAAO,CAEhEsgE,KAAM,KAEN+wB,WAAYrxF,KAAK8wF,OAEjBQ,UAAW,IAEb,MAAO1vC,GAKP,OAHA5hD,KAAKkxF,UAAW,EAChBlxF,KAAKgxF,cAAW7uF,OAChBnC,KAAKs0E,SAAS,MAOhBuc,EAAM9wF,QAAQorE,WAAU,WACtB5M,IAAU,WAGJ7rB,EAAMs+C,UACRt+C,EAAMs+C,SAASjnE,QAAQ2oB,EAAMhkC,aAOpC,CACDpM,IAAK,UACLD,MAAO,SAAiB2U,GACtB,IAAIpB,EAAQoB,EAAUA,EAAQ,GAAK,GAC/Bu6E,EAAiBxgF,QAAQ6E,EAAM27E,gBAAkB37E,EAAM47E,kBAAoB,GAE3ED,IAAmBvxF,KAAKixF,UAC1BjxF,KAAKixF,QAAUM,EACfvxF,KAAKs0E,SAASid,GAEVvxF,KAAK+wF,MAAQ/wF,KAAKixF,UACpBjxF,KAAKkxF,UAAW,EAChBlxF,KAAKwnB,WAIV,CACDllB,IAAK,OACLD,MAAO,WAELrC,KAAKgxF,UAAYhxF,KAAKgxF,SAASS,aAC/BzxF,KAAKgxF,SAAW,SAIbJ,EA5F6B,GA+FlCc,GAAU,SAAiBhjF,GAC7B,IAAIsiF,EAAWtiF,EAAGiiF,IAEdK,GAAYA,EAASxpE,MACvBwpE,EAASxpE,cAGJ9Y,EAAGiiF,KAGRrjF,GAAO,SAAcoB,EAAIq6C,EAAM8nC,GACjC,IAAIxuF,EAAQ0mD,EAAK1mD,MACbsvF,EAAY5oC,EAAK4oC,UAEjBhyF,EAAU,CACZmxF,OAAQ,MACRC,MAAM,EACNzc,SAAUjyE,GAGZiI,GAAKqnF,GAAWzkF,SAAQ,SAAU4gC,GAE5B2U,EAAUnuC,KAAKw5B,GACjBnuC,EAAQmxF,OAAS,GAAG7vF,OAAO6sC,EAAK,MACD,SAAtBA,EAAIrnB,gBACb9mB,EAAQoxF,MAAO,MAInBW,GAAQhjF,GAERA,EAAGiiF,IAAsB,IAAIC,GAAmBliF,EAAI/O,EAASkxF,GAE7DniF,EAAGiiF,IAAoBiB,eAAiBrrC,GAAMorC,IAI5CE,GAAmB,SAA0BnjF,EAAI6/D,EAAOsiB,GAC1D,IAAIxuF,EAAQksE,EAAMlsE,MACdyxE,EAAWvF,EAAMuF,SACjB6d,EAAYpjB,EAAMojB,UAKtBA,EAAYprC,GAAMorC,IAGdjjF,GAAOrM,IAAUyxE,GAAaplE,EAAGiiF,KAAwBvd,GAAWue,EAAWjjF,EAAGiiF,IAAoBiB,iBAExGtkF,GAAKoB,EAAI,CACPrM,MAAOA,EACPsvF,UAAWA,GACVd,IAKHiB,GAAS,SAAgBpjF,GAE3BgjF,GAAQhjF,IAICqjF,GAAY,CACrBzkF,KAAMA,GACNukF,iBAAkBA,GAClBC,OAAQA,IC7MV,SAASv5E,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAgB3M,IAAIgqE,GAAuB,OACvBC,GAAwBz7B,GAA0Bw7B,GAElDE,GAAWxrC,GAAK0oC,GAAW,CAAC,UACrBjiE,GAAQs4C,GAAsB5wB,GAAcA,GAAc,GAAIq9C,IAAW,GAAIp9C,GAAgB,CACtGq9C,YAAattB,GAAS9M,IAEtBq6B,SAAUvtB,GAASxN,GAAkB,MACrCg7B,WAAYxtB,GAAS9M,IAGrB/sD,OAAQ65D,GAAS9M,GAAyB,MACzCi6B,GAAsBntB,GAAS9N,IAAmB,KAAUlI,IAGpDyjC,GAAwB7pC,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAMykD,GACN5F,WAAY,CACV,YAAa8oC,IAEf5kE,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLu8E,QAASvyF,KAAKgyF,MAGlBzlB,SAAU,CACRimB,YAAa,WACX,IAAIJ,EAAWpyF,KAAKoyF,SACpB,OAAQA,GAAYpyF,KAAKuyF,QAAUvyF,KAAKqa,IAAM+3E,GAEhDK,cAAe,WACb,QAASzyF,KAAKuyF,SAAWvyF,KAAKoyF,WAEhCM,cAAe,WACb,IAAI7yB,EAAQ7/D,KAAK6/D,MACjB,OAAO7/D,KAAKuyF,QAAU1yB,EAAQ7/D,KAAKqyF,YAAcxyB,GAEnD8yB,eAAgB,WACd,IAAI/yB,EAAS5/D,KAAK4/D,OAClB,OAAO5/D,KAAKuyF,QAAU3yB,EAAS5/D,KAAKmyF,aAAevyB,GAErDgzB,eAAgB,WACd,IAAI5D,EAAS/tF,GAAOjB,KAAKgvF,QAAQl/E,OAAO23C,IAAUvmC,KAAK,KACvD,OAAO8tE,GAAYhvF,KAAKoyF,WAAYpyF,KAAKuyF,QAAoB,KAATvD,GAEtD6D,cAAe,WACb,IAAI9D,EAAQ9tF,GAAOjB,KAAK+uF,OAAOj/E,OAAO23C,IAAUvmC,KAAK,KACrD,OAAO6tE,GAAW/uF,KAAKoyF,WAAYpyF,KAAKuyF,QAAmB,KAARxD,IAGvDjkB,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQopB,IAAsB,SAAUjnB,EAAU+I,GACrF,GAAI/I,IAAa+I,EAAU,CAEzB,IAAImd,GAAU9uC,GAAmC4oB,EACjD/qE,KAAKuyF,QAAUtB,EAEXlmB,IAAakmB,GACfjxF,KAAKmrE,UAAUnrE,KAAK8yF,oBAGtBh+C,GAAgB8zB,GAAQ,WAAW,SAAiBmC,EAAU+I,GAE5D/I,IAAa+I,GACf9zE,KAAK8yF,oBAELlqB,IACJoU,QAAS,WAEPh9E,KAAKuyF,SAAUpwC,GAAmCniD,KAAKgyF,KAEzDh3E,QAAS,CACP83E,eAAgB,WACd9yF,KAAKirE,MAAMgnB,GAAuBjyF,KAAKuyF,UAEzCQ,OAAQ,SAAgB9B,GACtB,IAAIv+C,EAAQ1yC,MAIPixF,GAAuB,OAAZA,GAAsBjxF,KAAKuyF,SAGzCh0B,IAAU,WACR7rB,EAAM6/C,SAAU,OAKxBpzF,OAAQ,SAAgB2B,GACtB,IAGMkyF,EAHF/pC,EAAa,GAEZjpD,KAAKuyF,SAIRtpC,EAAWj6C,KAAK,CAGd5E,KAAM,YAEN/H,MAAOrC,KAAK+yF,OACZpB,WAAYqB,EAAa,GAAIl+C,GAAgBk+C,EAAY,GAAG/xF,OAAOw7D,GAAUz8D,KAAKgL,OAAQ,KAAK,GAAO8pC,GAAgBk+C,EAAY,QAAQ,GAAOA,KAIrJ,OAAOlyF,EAAEouF,GAAM,CACbjmC,WAAYA,EACZ97B,MAAO0nB,GAAcA,GAAc,GAAIuwB,GAAW8sB,GAAUlyF,KAAKizF,SAAU,GAAI,CAE7E54E,IAAKra,KAAKwyF,YACV9D,MAAO1uF,KAAKyyF,cACZ5yB,MAAO7/D,KAAK0yF,cACZ9yB,OAAQ5/D,KAAK2yF,eACb3D,OAAQhvF,KAAK4yF,eACb7D,MAAO/uF,KAAK6yF,qBCzIpB,SAASt6E,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI6R,GAAKwsC,GAAe5oF,GAAK8kF,MAAc1oC,GAAK8oC,GAAe,CAAC,MAAO,MAAO,QAAS,aAAcvjC,IAGxKknC,GAA4B1qC,EAAAA,WAAAA,OAAW,CAChDr+C,KAAM6hD,GACNpsD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZs5E,EAAY,WAYhB,OAVIniE,EAAMg1C,IACRmtB,GAAa,OACJniE,EAAM9b,OAAS8b,EAAMxgB,IAC9B2iF,GAAa,SACJniE,EAAMmtD,OACfgV,GAAa,WACJniE,EAAM/b,MAAQ+b,EAAMpjB,SAC7BulF,GAAa,SAGRxuF,EAAEwxF,GAAU3nC,GAAU30C,EAAM,CACjCuyD,MAAO,CAAC+mB,GAERniE,MAAOu5B,GAAKv5B,EAAO,CAAC,OAAQ,gBClCvBA,GAAQs4C,GAAsB,CACvC2tB,QAASvuB,GAASxN,GAAkB,MACnClL,IAGQknC,GAAyB5qC,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAM+hD,GACNtsD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMimE,QAASzoC,GAAU30C,EAAM,CACtCsyD,YAAa,cACXmB,MCfGt8C,GAAQs4C,GAAsB,CACvC/sB,QAASmsB,GAAS9N,IAAmB,GACrCu8B,KAAMzuB,GAAS9N,IAAmB,GAClCnjD,IAAKixD,GAASxN,GAAkB,QAC/BvL,IAGQynC,GAA0B9qC,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAM0hD,GACNjsD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCuyD,MAAOp7C,EAAMmmE,KAAO,YAAcnmE,EAAMurB,QAAU,eAAiB,eACjE+wB,MCXJ+pB,GAA0BhqC,GAAc,CAC1CR,WAAY,CACV8mC,MAAOA,GACPnC,YAAaA,GACbV,UAAWA,GACXV,WAAYA,GACZI,cAAeA,GACfuB,YAAaA,GACbmB,SAAUA,GACV8D,aAAcA,GACdE,UAAWA,GACXE,WAAYA,MCtBLztE,GAAO,aCAlB,SAASvN,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAYpM,IChBH4gD,GDgBO6qB,GAAa,SAAoB/kF,EAAI4lE,EAAU30E,GAQxD,GAJA+O,EAAKA,EAAKA,EAAGyoE,KAAOzoE,EAAK,MAIpBswD,GAAUtwD,GACb,OAAO,KAIT,GAAIw5C,GAA8B,cAChC,OAAO,KAIT,IAAIwrC,EAAM,IAAI50B,IAAY,SAAU60B,GAMlC,IALA,IAAIC,GAAU,EAKL1pF,EAAI,EAAGA,EAAIypF,EAAUhxF,SAAWixF,EAAS1pF,IAAK,CAErD,IAAI2pF,EAAWF,EAAUzpF,GAErBkL,EAAOy+E,EAASz+E,KAEhB9I,EAASunF,EAASvnF,QAET,kBAAT8I,GAA4B9I,EAAO8xD,WAAaC,KAAKy1B,WAIrC,eAAT1+E,GAES,cAATA,IAAyBy+E,EAASE,WAAWpxF,OAAS,GAAKkxF,EAASG,aAAarxF,OAAS,MAHnGixF,GAAU,GAYVA,GACFtf,OAWJ,OAPAof,EAAI3pE,QAAQrb,EAAImmC,GAAc,CAC5Bo/C,WAAW,EACXC,SAAS,GACRv0F,IAII+zF,GCzET,SAASn7E,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAqB3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAM8hD,GACN1P,aAAc,IAEZuiB,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAGnC6/D,GAAY,CACdhmF,KAAM,CACJimF,SAAU,qBACVC,aAAc,sBAEhBp+E,KAAM,CACJm+E,SAAU,sBACVC,aAAc,uBAIdC,GAAiB,IAEjBC,GAA0B,IAE1BC,GAAkB,GAElBC,GAAc,CAChBC,MAAO,QACPC,IAAK,OAGHC,GAAsB,CACxBC,iBAAkB,sBAClBC,cAAe,gBACfC,YAAa,gCACbC,WAAY,iBAIVC,GAAwB,SAA+BvmF,GACzD,IAAK,IAAItE,KAAQwqF,GACf,IAAKnvC,GAAY/2C,EAAG+d,MAAMriB,IACxB,OAAOwqF,GAAoBxqF,GAO/B,OAAO,MAIE+iB,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAa,GAAI,CACzHkrB,WAAYrwB,GAASxN,IACrB89B,SAAUtwB,GAAS9N,IAAmB,GAEtCyT,KAAM3F,GAAS9N,IAAmB,GAElCq+B,UAAWvwB,GAAS9M,IAEpBs9B,SAAUxwB,GAAS9M,IACnBu9B,WAAYzwB,GAAS9N,IAAmB,GACxCw+B,SAAU1wB,GAAS3N,GAAkB,KACrCs+B,eAAgB3wB,GAASxN,GAAkB,cAC3Co+B,gBAAiB5wB,GAASxN,GAAkB,6BAC5Cq+B,UAAW7wB,GAASxN,GAAkB,cACtCs+B,UAAW9wB,GAASxN,GAAkB,kBAEtCu+B,YAAa/wB,GAAS9N,IAAmB,GAEzC8+B,aAAchxB,GAAS9N,IAAmB,GAE1C++B,QAASjxB,GAAS9N,IAAmB,GAErCg/B,OAAQlxB,GAAS9N,IAAmB,MACjC1K,IAGM2pC,GAAyBvtC,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMiiD,GACNse,OAAQ,CAACmW,GAAS/W,GAAYtD,IAC9BqU,QAAS,WACP,MAAO,CACLmb,WAAYj2F,OAGhBmtB,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLvT,MAAOzC,KAAKiqE,KAAoB,EAChCisB,WAAW,EACXC,mBAAoB,KACpBC,OAAQ,GACR7U,UAAW,KACX8U,WAAY55B,GAAUz8D,KAAKu1F,SAAU,GAAK,GAE1Ce,YAAa,EACbC,YAAa,IAGjBhqB,SAAU,CACRiqB,UAAW,WACT,OAAOx2F,KAAKo2F,OAAOzzF,SAGvBmoE,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,EAAU+I,GAC5E/I,IAAa+I,GACf9zE,KAAKy2F,SAASh6B,GAAUsO,EAAU,OAElCj2B,GAAgB8zB,GAAQ,YAAY,SAAkBmC,EAAU+I,GAE9D/I,IAAa+I,IAIZ/I,GAKH/qE,KAAK02F,OAAM,GACX12F,KAAK+J,OAAM,IAJX/J,KAAK02F,OAAM,OAMX5hD,GAAgB8zB,GAAQ,YAAY,SAAkBmC,EAAU+I,GAC9D/I,IAAa+I,GACf9zE,KAAKirE,MAAMF,EAAW/V,GAAoBoB,OAE1CthB,GAAgB8zB,GAAQ,SAAS,SAAen8D,EAAIC,GAElDD,IAAOC,GAAQ1M,KAAKk2F,WAIxBl2F,KAAK22F,QAAQlqF,EAAIC,MACfk8D,IACJwC,QAAS,WAEPprE,KAAK42F,WAAa,KAClB52F,KAAK62F,mBAAqB,KAC1B72F,KAAK82F,eAAiB,KACtB92F,KAAK+2F,WAAa,KAElB/2F,KAAKq2F,WAAa55B,GAAUz8D,KAAKu1F,SAAU,GAAK,IAElDvY,QAAS,WAEPh9E,KAAKm2F,mBAAqBlB,GAAsBj1F,KAAKm3E,MAAQ,KAE7Dn3E,KAAKg3F,eAELh3F,KAAKi3F,aAAY,IAEnB3rB,cAAe,WACbtrE,KAAKk3F,gBACLl3F,KAAKm3F,wBACLn3F,KAAKo3F,oBACLp3F,KAAKi3F,aAAY,IAEnBj8E,QAAS,CACPk8E,cAAe,SAAUG,GACvB,SAASH,IACP,OAAOG,EAAejnF,MAAMpQ,KAAMmL,WAOpC,OAJA+rF,EAAc7jF,SAAW,WACvB,OAAOgkF,EAAehkF,YAGjB6jF,EATM,EAUb,WACAA,cAAcl3F,KAAK42F,YACnB52F,KAAK42F,WAAa,QAEpBO,sBAAuB,WACrB3rB,aAAaxrE,KAAK62F,oBAClB72F,KAAK62F,mBAAqB,MAE5BO,kBAAmB,WACjB5rB,aAAaxrE,KAAK82F,gBAClB92F,KAAK82F,eAAiB,MAExBG,YAAa,WACX,IAAI7vB,EAAKj8D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GACxEnL,KAAK+2F,YAAc/2F,KAAK+2F,WAAWtF,aACnCzxF,KAAK+2F,WAAa,KAEd3vB,IACFpnE,KAAK+2F,WAAatD,GAAWzzF,KAAKsoF,MAAMgP,MAAOt3F,KAAKg3F,aAAa1pF,KAAKtN,MAAO,CAC3Ek0F,SAAS,EACTD,WAAW,EACXsD,YAAY,EACZC,gBAAiB,CAAC,UAKxBf,SAAU,SAAkBgB,GAC1B,IAAI/kD,EAAQ1yC,KAERuhF,EAAYp2E,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAKpF,KAAI2jB,GAAchT,SAAS47E,iBAAmB57E,SAAS2lE,QAAvD,CAIA,IAAIsU,EAAS/1F,KAAK+1F,OACdS,EAAYx2F,KAAKw2F,UAErBiB,EAAQxrB,GAAUwrB,GAEA,IAAdjB,IAKAx2F,KAAKk2F,UAEPl2F,KAAK+0E,MAAMhf,IAAwB,WAEjCwI,IAAU,WACR,OAAO7rB,EAAM+jD,SAASgB,EAAOlW,UAMnCvhF,KAAKuhF,UAAYA,EAGjBvhF,KAAKyC,MAAQg1F,GAASjB,EAAYT,EAASS,EAAY,EAAI,EAAIiB,EAAQ,EAAI1B,EAAS,EAAIS,EAAY,EAAIiB,EAGpG1B,GAAU/1F,KAAKyC,QAAUg1F,GAASz3F,KAAKyC,QAAUzC,KAAKiqE,KACxDjqE,KAAKirE,MAAMf,GAAkBlqE,KAAKyC,WAItCwT,KAAM,WACJjW,KAAKy2F,SAASz2F,KAAKyC,MAAQ,EAAG,SAGhC0L,KAAM,WACJnO,KAAKy2F,SAASz2F,KAAKyC,MAAQ,EAAG,SAGhCi0F,MAAO,SAAepiE,GACfA,IACHt0B,KAAKq2F,UAAW,GAGlBr2F,KAAKk3F,iBAGPntF,MAAO,SAAeuqB,GACfA,IACHt0B,KAAKq2F,UAAW,GAKlBr2F,KAAKk3F,gBAEDl3F,KAAKu1F,UAAYv1F,KAAKw2F,UAAY,IACpCx2F,KAAK42F,WAAae,YAAY33F,KAAKmO,KAAM29D,GAAQ,IAAM9rE,KAAKu1F,aAMhEqC,QAAS,WACF53F,KAAKm3E,IAAI5X,SAASN,OACrBj/D,KAAK+J,SAGT4sF,QAAS,SAAiBlqF,EAAIC,GAC5B,IAAImoE,EAAS70E,KAET63F,EAAY9mF,QAAQ/Q,KAAKu1F,UAEzBhU,EAAYvhF,KAAK83F,cAAc93F,KAAKuhF,UAAW70E,EAAMD,GACrD4nF,EAAe9S,EAAU8S,aACzBD,EAAW7S,EAAU6S,SAErB2D,EAAe/3F,KAAKo2F,OAAO1pF,GAC3BsrF,EAAYh4F,KAAKo2F,OAAO3pF,GAE5B,GAAKsrF,GAAiBC,EAAtB,CAgBA,GAVAh4F,KAAKk2F,WAAY,EAEb2B,GACF73F,KAAK02F,OAAM,GAGb12F,KAAKirE,MAAMjV,GAA0BvpD,GAErCzM,KAAKirE,MAAMf,GAAkBlqE,KAAKyC,OAE9BzC,KAAK41F,YACP70B,GAASi3B,EAAW,UACpB/2B,GAAY82B,EAAc,UAC1B/3F,KAAKk2F,WAAY,EAEjBl2F,KAAKmrE,WAAU,WACb,OAAO0J,EAAO5J,MAAMlV,GAAwBtpD,UAEzC,CACLs0D,GAASi3B,EAAW3D,GAEpBn0B,GAAO83B,GACPj3B,GAASg3B,EAAc3D,GACvBrzB,GAASi3B,EAAW5D,GAEpB,IAAIrhF,GAAS,EAGTklF,EAAe,SAASA,IAC1B,IAAIllF,EAAJ,CAOA,GAHAA,GAAS,EAGL8hE,EAAOshB,mBAAoB,CAC7B,IAAI+B,EAASrjB,EAAOshB,mBAAmBn3E,MAAM,OAE7Ck5E,EAAOhrF,SAAQ,SAAUonB,GACvB,OAAO4yC,GAAS8wB,EAAW1jE,EAAO2jE,EAAcrhC,OAIpDie,EAAOsiB,wBAEPl2B,GAAY+2B,EAAW5D,GACvBnzB,GAAY+2B,EAAW3D,GACvBtzB,GAASi3B,EAAW,UACpB/2B,GAAY82B,EAAc,UAC1B92B,GAAY82B,EAAc3D,GAC1BnzB,GAAY82B,EAAc1D,GAC1BlzB,GAAQ42B,EAAc,eAAgB,SACtC52B,GAAQ62B,EAAW,eAAgB,QACnC72B,GAAQ42B,EAAc,cAAe,QACrC52B,GAAQ62B,EAAW,cAAe,SAClCnjB,EAAOqhB,WAAY,EACnBrhB,EAAO0M,UAAY,KAEnB1M,EAAO1J,WAAU,WACf,OAAO0J,EAAO5J,MAAMlV,GAAwBtpD,QAOhD,GAAIzM,KAAKm2F,mBAAoB,CAC3B,IAAI+B,EAASl4F,KAAKm2F,mBAAmBn3E,MAAM,OAC3Ck5E,EAAOhrF,SAAQ,SAAUonB,GACvB,OAAO0yC,GAAQgxB,EAAW1jE,EAAO2jE,EAAcrhC,OAKnD52D,KAAK62F,mBAAqB1hE,WAAW8iE,EAAc3D,IAGjDuD,GACF73F,KAAK+J,OAAM,KAIfitF,aAAc,WACZh3F,KAAK02F,OAAM,GAEX12F,KAAKo2F,OAASh2B,GAAU,iBAAkBpgE,KAAKsoF,MAAMgP,OACrD,IAAId,EAAYx2F,KAAKo2F,OAAOzzF,OAExBF,EAAQqpE,GAAQ,EAAGD,GAAQI,GAAUjsE,KAAKyC,OAAQ+zF,EAAY,IAClEx2F,KAAKo2F,OAAOlpF,SAAQ,SAAUuqF,EAAOzb,GACnC,IAAIvqE,EAAIuqE,EAAM,EAEVA,IAAQv5E,GACVs+D,GAAS02B,EAAO,UAChBt2B,GAAQs2B,EAAO,eAAgB,UAE/Bx2B,GAAYw2B,EAAO,UACnBt2B,GAAQs2B,EAAO,eAAgB,UAGjCt2B,GAAQs2B,EAAO,gBAAiB91F,OAAO8P,IACvC0vD,GAAQs2B,EAAO,eAAgB91F,OAAO60F,OAGxCx2F,KAAKy2F,SAASh0F,GACdzC,KAAK+J,MAAM/J,KAAKq2F,WAElByB,cAAe,WACb,IAAIvW,EAAYp2E,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAChFgtF,EAAWhtF,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,EAC/EitF,EAAYjtF,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,EAEpF,OAAKo2E,EAIE4S,GAAU5S,GAHR6W,EAAYD,EAAWhE,GAAUhmF,KAAOgmF,GAAUl+E,MAK7DoiF,YAAa,SAAqB/jE,EAAO3hB,GACvC,IAAI8lE,EAAUnkD,EAAMmkD,QAED,UAAfnkD,EAAMlf,MAAoBqjE,IAAYxF,IAAcwF,IAAY/F,KAClErL,GAAU/yC,GACV3hB,MAKJ2lF,YAAa,WACX,IAAIC,EAAYxsB,GAAQ/rE,KAAKu2F,aAE7B,KAAIgC,GAAa/D,IAAjB,CAIA,IAAIjT,EAAYgX,EAAYv4F,KAAKu2F,YAGjCv2F,KAAKu2F,YAAc,EAEfhV,EAAY,EAEdvhF,KAAKiW,OACIsrE,EAAY,GAErBvhF,KAAKmO,SAKTqqF,WAAY,SAAoBlkE,GAC1B0tB,GAA6ByyC,GAAYngE,EAAMmkE,YAAYnuC,eAC7DtqD,KAAKs2F,YAAchiE,EAAMokE,QACf12C,IACVhiD,KAAKs2F,YAAchiE,EAAMqkE,QAAQ,GAAGD,UAKxCE,UAAW,SAAmBtkE,GAExBA,EAAMqkE,SAAWrkE,EAAMqkE,QAAQh2F,OAAS,EAC1C3C,KAAKu2F,YAAc,EAEnBv2F,KAAKu2F,YAAcjiE,EAAMqkE,QAAQ,GAAGD,QAAU14F,KAAKs2F,aAKvDuC,SAAU,SAAkBvkE,GACtB0tB,GAA6ByyC,GAAYngE,EAAMmkE,YAAYnuC,iBAC7DtqD,KAAKu2F,YAAcjiE,EAAMokE,QAAU14F,KAAKs2F,aAG1Ct2F,KAAKs4F,cAQLt4F,KAAK02F,OAAM,GACX12F,KAAKo3F,oBACLp3F,KAAK82F,eAAiB3hE,WAAWn1B,KAAK+J,MAAOwqF,GAA0BzoB,GAAQ,IAAM9rE,KAAKu1F,aAG9Fp2F,OAAQ,SAAgB2B,GACtB,IAAIqnF,EAASnoF,KAETs1F,EAAat1F,KAAKs1F,WAClBJ,EAAal1F,KAAKk1F,WAClBU,EAAc51F,KAAK41F,YACnBC,EAAe71F,KAAK61F,aACpBC,EAAU91F,KAAK81F,QACfrzF,EAAQzC,KAAKyC,MACbyzF,EAAYl2F,KAAKk2F,UACjBQ,EAAQ12F,KAAK02F,MACbkB,EAAU53F,KAAK43F,QACfY,EAAax4F,KAAKw4F,WAClBK,EAAW74F,KAAK64F,SAChBC,EAAU94F,KAAKghF,OAAO,eAEtB9Q,EAASpvE,EAAE,MAAO,CACpBwnE,YAAa,iBACbE,MAAO,CACL5xD,GAAIkiF,EACJntB,KAAM,QAERogB,IAAK,SACJ,CAAC/rF,KAAKsmE,kBAELyyB,EAAYj4F,IAEhB,GAAId,KAAKm1F,SAAU,CACjB,IAAI6D,EAAc,SAAqBzX,EAAWmG,EAAO/yD,GACvD,IAAIskE,EAAiB,SAAwB3kE,GAEtC4hE,EAGH7uB,GAAU/yC,EAAO,CACfmzC,aAAa,IAHf0gB,EAAOkQ,YAAY/jE,EAAOK,IAQ9B,OAAO7zB,EAAE,IAAK,CACZwnE,YAAa,oBAAoBrnE,OAAOsgF,GACxC/Y,MAAO,CACLsF,KAAM,IACNnC,KAAM,SACN,gBAAiBmtB,EACjB,gBAAiB5C,EAAY,OAAS,MAExC9uB,GAAI,CACFqB,MAAOwwB,EACPzgB,QAASygB,IAEV,CAACn4F,EAAE,OAAQ,CACZwnE,YAAa,oBAAoBrnE,OAAOsgF,EAAW,SACnD/Y,MAAO,CACL,cAAe,UAEf1nE,EAAE,OAAQ,CACZynE,MAAO,WACN,CAACmf,OAGNqR,EAAY,CAACC,EAAY,OAAQh5F,KAAK21F,UAAW31F,KAAKiW,MAAO+iF,EAAY,OAAQh5F,KAAK01F,UAAW11F,KAAKmO,OAIxG,IAAI+qF,EAAcp4F,EAAE,KAAM,CACxBwnE,YAAa,sBACbrf,WAAY,CAAC,CACX7+C,KAAM,OACN/H,MAAOizF,IAET9sB,MAAO,CACL5xD,GAAI5W,KAAKghF,OAAO,oBAChB,cAAesU,EAAa,QAAU,OACtC,aAAct1F,KAAKy1F,gBACnB,YAAaqD,IAEd94F,KAAKo2F,OAAOvmF,KAAI,SAAU4nF,EAAOvtF,GAClC,IAAIyqB,EAAU,SAAiBL,GAC7B6zD,EAAOkQ,YAAY/jE,GAAO,WACxB6zD,EAAOsO,SAASvsF,OAIpB,OAAOpJ,EAAE,KAAM,CACbynE,MAAO,CACLyN,OAAQ9rE,IAAMzH,GAEhB+lE,MAAO,CACLmD,KAAM,SACN/0D,GAAIuxE,EAAOnH,OAAO,kBAAkB//E,OAAOiJ,EAAI,EAAG,MAClDwsE,SAAU4e,EAAa,IAAM,KAC7B,eAAgBprF,IAAMzH,EAAQ,OAAS,QACvC,aAAc,GAAGxB,OAAOknF,EAAOqN,eAAgB,KAAKv0F,OAAOiJ,EAAI,GAC/D,mBAAoButF,EAAM7gF,IAAM,KAChC,gBAAiBkiF,GAEnB1xB,GAAI,CACFqB,MAAO9zC,EACP6jD,QAAS7jD,GAEXryB,IAAK,SAASrB,OAAOiJ,SAGrBk9D,EAAK,CACP+xB,WAAYtD,EAAe/vE,GAAO4wE,EAClC0C,WAAYvD,EAAe/vE,GAAO8xE,EAClClf,QAASge,EACT/d,SAAUif,EACVpf,QAAS,SAAiBlkD,GAExB,IAAI,kBAAkBhgB,KAAKggB,EAAMhoB,OAAO+sF,SAAxC,CAIA,IAAI5gB,EAAUnkD,EAAMmkD,QAEhBA,IAAY5F,IAAa4F,IAAYzF,KACvC3L,GAAU/yC,GAEV6zD,EAAO1P,IAAY5F,GAAY,OAAS,cAoB9C,OAfIhxB,IAAsBi0C,IAIpB9zC,GACFolB,EAAG,gBAAkBoxB,EACrBpxB,EAAG,cAAgByxB,IAEnBzxB,EAAG,eAAiBoxB,EACpBpxB,EAAG,cAAgBpnE,KAAK44F,UACxBxxB,EAAG,aAAeyxB,IAKf/3F,EAAE,MAAO,CACdwnE,YAAa,WACbC,MAAO,CACLkvB,OAAQ7B,EACR,iBAAkBA,GAAe51F,KAAKwqE,KACtC,gBAAiB3oB,GAAqBG,IAA8B8zC,GAEtErpE,MAAO,CACLyoE,WAAYA,GAEd1sB,MAAO,CACLmD,KAAM,SACN/0D,GAAI5W,KAAKghF,SACT,YAAakV,EAAY,OAAS,SAEpC9uB,GAAIA,GACH,CAAC8I,EAAQ6oB,EAAWG,OC7pB3B,SAAS3gF,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAgB3M,ICpBI4gD,GDoBAspB,GAAW,CACboH,OAAQz0B,GAASxN,IACjBkiC,SAAU10B,GAAS9N,IAAmB,GACtCyiC,cAAe30B,GAASxN,GAAkB,eAC1C+9B,UAAWvwB,GAAS9M,IACpB03B,OAAQ5qB,GAASxN,IACjBg+B,SAAUxwB,GAAS9M,KAEV5qC,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIosC,IAAUiR,IAAW,GAAI,CACvHgD,WAAYrwB,GAASxN,IACrBoiC,QAAS50B,GAASxN,IAClBqiC,YAAa70B,GAASxN,IACtBsiC,WAAY90B,GAASxN,GAAkB,MACvCuiC,WAAY/0B,GAASxN,GAAkB,OACvCwiC,iBAAkBh1B,GAASxN,IAC3BoiB,KAAM5U,GAASxN,IACfyiC,SAAUj1B,GAASxN,IACnB+7B,QAASvuB,GAASxN,GAAkB,QACjC/K,IAGMytC,GAA8BtxC,EAAAA,WAAAA,OAAW,CAClDr+C,KAAMkiD,GACNqe,OAAQ,CAACmW,GAASra,IAClBkT,OAAQ,CACNsc,WAAY,CAEVjxB,QAAS,WACP,MAAO,CACL8wB,SAAS,MAKjB3oE,MAAOA,GACPo/C,SAAU,CACRytB,eAAgB,WACd,MAAO,CAACh6F,KAAK65F,iBAAmB,SAAW,GAAI75F,KAAK65F,iBAAmB,KAAK54F,OAAOjB,KAAK65F,iBAAkB,UAAY,KAExHnH,cAAe,WAEb,OAAO1yF,KAAKq1F,UAAYr1F,KAAKi2F,WAAWZ,UAAY,MAEtD1C,eAAgB,WAEd,OAAO3yF,KAAKo1F,WAAap1F,KAAKi2F,WAAWb,WAAa,OAG1Dj2F,OAAQ,SAAgB2B,GACtB,IAAIyvF,EAAOvwF,KAAKsmE,cAAc1M,IAE9B,IAAK22B,IAASvwF,KAAKyvF,QAAUzvF,KAAKu5F,UAAW,CAC3C,IAAInyB,EAAK,IAIJpnE,KAAKi2F,WAAWH,SAAWj0C,IAC9BulB,EAAG6yB,UAAY,SAAU3lE,GACvB,OAAO+yC,GAAU/yC,EAAO,CACtBmzC,aAAa,MAKnB8oB,EAAOzvF,EAAEouF,GAAM,CACb/hE,MAAO0nB,GAAcA,GAAc,GAAIuwB,GAAW8sB,GAAUlyF,KAAKizF,OAAQvuB,GAAiBp3D,KAAK,KAAM,SAAU,GAAI,CACjHuyD,MAAO7/D,KAAK0yF,cACZ9yB,OAAQ5/D,KAAK2yF,eACb7D,WAAW,EACXxX,OAAO,IAETlQ,GAAIA,IAIR,IAAI8yB,EAAmB,IACvBl6F,KAAKy5F,UAAWz5F,KAAK05F,cAAc54F,EAAEd,KAAK25F,WAAY,CACpDjxB,SAAU4S,GAAWt7E,KAAK05F,YAAa15F,KAAKy5F,cAE9Cz5F,KAAKy5E,OAAQz5E,KAAK85F,WAAWh5F,EAAEd,KAAKozF,QAAS,CAC3C1qB,SAAU4S,GAAWt7E,KAAK85F,SAAU95F,KAAKy5E,QAE3Cz5E,KAAKsmE,kBAAmB,GACpBwG,EAAWhsE,IAWf,OATIo5F,EAAiBnqF,KAAK03C,MACxBqlB,EAAWhsE,EAAEd,KAAK45F,WAAY,CAC5BtxB,YAAa,mBACbC,MAAOvoE,KAAKg6F,gBACXE,EAAiBrqF,KAAI,SAAUsqF,GAChC,OAAOA,GAAUr5F,SAIdA,EAAE,MAAO,CACdwnE,YAAa,gBACb77C,MAAO,CACLyoE,WAAYl1F,KAAKk1F,YAAcl1F,KAAKi2F,WAAWf,YAAc,MAE/D1sB,MAAO,CACL5xD,GAAI5W,KAAKghF,SACTrV,KAAM,aAEP,CAAC4kB,EAAMzjB,OExHVstB,GAEJ5wC,GAAc,CACZR,WAAY,CACVgtC,UAAWA,GACX+D,eAAgBA,MCRTM,GAAkB,OCczBC,GAAU,SAAiB5rF,GAC7BizD,GAASjzD,EAAI,SAAU,GAEvB6vD,IAAU,WACR2B,GAAOxxD,GACPizD,GAASjzD,EAAI,SAAU,GAAGzN,OAAOyN,EAAG6rF,aAAc,WAIlDC,GAAe,SAAsB9rF,GACvCkzD,GAAYlzD,EAAI,WAGd+rF,GAAU,SAAiB/rF,GAC7BizD,GAASjzD,EAAI,SAAU,QACvBizD,GAASjzD,EAAI,UAAW,SACxBizD,GAASjzD,EAAI,SAAU,GAAGzN,OAAO0+D,GAAOjxD,GAAIkxD,OAAQ,OACpDM,GAAOxxD,GACPizD,GAASjzD,EAAI,SAAU,IAGrBgsF,GAAe,SAAsBhsF,GACvCkzD,GAAYlzD,EAAI,WAMdisF,GAAmB,CACrB9wB,KAAK,EACLf,WAAY,GACZC,iBAAkB,aAClBC,aAAc,gBACdC,WAAY,gBACZC,iBAAkB,aAClBC,aAAc,YAIZyxB,GAAsB,CACxBjxE,MAAO2wE,GACPO,WAAYL,GACZM,MAAOL,GACPM,WAAYL,IAGHvtE,GAAQ,CAEjBk8C,OAAQxE,GAAS9N,IAAmB,IAI3BikC,GAA0BvyC,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAM8nD,GACNryD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAE,aACT6pD,GAAU30C,EAAM,CACdmX,MAAOwtE,GACPvzB,GAAIwzB,IACH,CACDztE,MAAOA,IAETs8C,MH/EJ,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAmB3M,IAAIizE,GAAgCjzB,GAAuBxb,GAAe,UACtE0uC,GAAuClzB,GAAuBxb,GAAe,iBAC7E2uC,GAA4BpzB,GAAiBvb,GAAe,aAC5D4uC,GAAwBrzB,GAAiBvb,GAAe,SACxD6uC,GAA6BtzB,GAAiBvb,GAAe,cAE7Dsd,GAAkBlE,GAAe,UAAW,CAC9CxwD,KAAM2hD,GACNvP,cAAc,IAEZuiB,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAG5BnH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAa,GAAI,CAEzHsxB,UAAWz2B,GAASxN,IACpBgS,OAAQxE,GAAS9N,IAAmB,GACpCwkC,MAAO12B,GAAS9N,IAAmB,GACnCnjD,IAAKixD,GAASxN,GAAkB,UAC7B7K,IAGMgvC,GAAyB/yC,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMoiD,GACNme,OAAQ,CAACmW,GAAS/W,GAAYtD,GAAoB4N,IAClDlnD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLo0D,KAAMpqE,KAAKiqE,IACXwxB,eAAe,IAGnBlvB,SAAU,CACRmvB,YAAa,WACX,IAAID,EAAgBz7F,KAAKy7F,cACzB,MAAO,CACL,kBAAmBz7F,KAAKu7F,MACxBI,UAAWF,EACXrxB,KAAMpqE,KAAKoqE,OAASqxB,IAGxBrL,UAAW,WACT,IAAI19C,EAAQ1yC,KAEZ,MAAO,CACLixF,QAASjxF,KAAKoqE,KACdl+C,MAAO,WACLwmB,EAAM03B,MAAO,MAKrBU,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,GAClEA,IAAa/qE,KAAKoqE,OACpBpqE,KAAKoqE,KAAOW,MAEZj2B,GAAgB8zB,GAAQ,QAAQ,SAAcmC,EAAU+I,GACtD/I,IAAa+I,GACf9zE,KAAK47F,eAELhzB,IACJwC,QAAS,WACPprE,KAAKoqE,KAAOpqE,KAAKiqE,KAEnB+S,QAAS,WACP,IAAInI,EAAS70E,KAEbA,KAAKoqE,KAAOpqE,KAAKiqE,IAEjBjqE,KAAK00E,aAAaumB,GAA+Bj7F,KAAK67F,mBAEtD77F,KAAK00E,aAAaymB,GAA2Bn7F,KAAK87F,sBAE9C97F,KAAKu7F,QAEPv7F,KAAK+7F,iBAAgB,GACrB/7F,KAAKg8F,gBAGPh8F,KAAKmrE,WAAU,WACb0J,EAAO+mB,eAGT57F,KAAK00E,aAAawmB,IAAsC,SAAUtkF,GAC5DA,IAAOi+D,EAAOmM,UAChBnM,EAAO1J,UAAU0J,EAAOonB,cAI9BC,QAAS,WAIPl8F,KAAKi8F,YAIP5T,YAAa,WACProF,KAAKu7F,OACPv7F,KAAK+7F,iBAAgB,IAKzB3T,UAAW,WACLpoF,KAAKu7F,OACPv7F,KAAK+7F,iBAAgB,GAGvB/7F,KAAKi8F,YAEP3wB,cAAe,WAEbtrE,KAAKoqE,MAAO,EAERpqE,KAAKu7F,OAASzsE,GAChB9uB,KAAK+7F,iBAAgB,IAGzB/gF,QAAS,CACP+gF,gBAAiB,SAAyB30B,GACxCD,GAAWC,EAAI7oD,OAAQ,SAAUve,KAAKg8F,aAAcplC,IACpDuQ,GAAWC,EAAI7oD,OAAQ,oBAAqBve,KAAKg8F,aAAcplC,KAEjEjuC,OAAQ,WACN3oB,KAAKoqE,MAAQpqE,KAAKoqE,MAEpBkwB,QAAS,WACPt6F,KAAKy7F,eAAgB,EAErBz7F,KAAKirE,MAAMpV,KAEb2kC,aAAc,WACZx6F,KAAKy7F,eAAgB,EACrBz7F,KAAKirE,MAAMnV,KAEb2kC,QAAS,WACPz6F,KAAKy7F,eAAgB,EAErBz7F,KAAKirE,MAAM3W,KAEbomC,aAAc,WACZ16F,KAAKy7F,eAAgB,EACrBz7F,KAAKirE,MAAM5W,KAEbunC,UAAW,WACT,IAAIxxB,EAAOpqE,KAAKoqE,KACZkxB,EAAYt7F,KAAKs7F,UACjB1kF,EAAK5W,KAAKghF,SACdhhF,KAAKirE,MAAMf,GAAkBE,GAE7BpqE,KAAKi1E,WAAWmmB,GAAuBxkF,EAAIwzD,GAEvCkxB,GAAalxB,GAEfpqE,KAAKi1E,WAAWkmB,GAA2BvkF,EAAI0kF,IAGnDW,SAAU,WAIRj8F,KAAKi1E,WAAWomB,GAA4Br7F,KAAKghF,SAAUhhF,KAAKoqE,OAElE+xB,kBAAmB,WAIjB,IAAIhlB,EAAMn3E,KAAKm3E,IACXilB,EAAUn8B,GAASkX,EAAKkjB,IAC5Bp5B,GAAYkW,EAAKkjB,IACjB,IAAIgC,EAAiC,UAAvBv6B,GAAMqV,GAAKzqD,QAMzB,OAJI0vE,GACFr7B,GAASoW,EAAKkjB,IAGTgC,GAETC,aAAc,SAAsBhoE,GAClC,IAAI5lB,EAAK4lB,EAAMhoB,OAIVtM,KAAKu7F,OAAU7sF,GAAkC,UAA5BozD,GAAM9hE,KAAKm3E,KAAKzqD,WAKrCkxC,GAAQlvD,EAAI,8BAA+BsvD,GAAQ,2BAA4BtvD,IAAS1O,KAAKm8F,sBAChGn8F,KAAKoqE,MAAO,KAGhByxB,kBAAmB,SAA2BjlF,GACxCA,IAAO5W,KAAKghF,UACdhhF,KAAK2oB,UAGTmzE,qBAAsB,SAA8BS,EAAUC,GAC5D,IAAIlB,EAAYt7F,KAAKs7F,UACjBlxB,EAAOpqE,KAAKoqE,KAEhB,GAAKkxB,GAAaA,IAAckB,EAAhC,CAIA,IAAIC,EAASF,IAAav8F,KAAKghF,UAG3Byb,IAAWryB,IAASqyB,GAAUryB,IAChCpqE,KAAK2oB,WAGTqzE,aAAc,WAEZh8F,KAAKoqE,KAAmC,UAA5BtI,GAAM9hE,KAAKm3E,KAAKzqD,UAGhCvtB,OAAQ,SAAgB2B,GACtB,IAAIuoE,EAASrpE,KAAKqpE,OACdyD,EAAWhsE,EAAEd,KAAK4T,IAAK,CACzB20D,MAAOvoE,KAAK07F,YACZzyC,WAAY,CAAC,CACX7+C,KAAM,OACN/H,MAAOrC,KAAKoqE,OAEd5B,MAAO,CACL5xD,GAAI5W,KAAKghF,UAEX5Z,GAAI,CACFqB,MAAOzoE,KAAKs8F,eAEbt8F,KAAKsmE,cAAc3N,GAAmB34D,KAAKowF,YAC9C,OAAOtvF,EAAEk6F,GAAY,CACnB7tE,MAAO,CACLk8C,OAAQA,GAEVjC,GAAI,CACFz9C,MAAO3pB,KAAKs6F,QACZO,WAAY76F,KAAKw6F,aACjBM,MAAO96F,KAAKy6F,QACZM,WAAY/6F,KAAK06F,eAElB,CAAC5tB,OIlQJ4vB,GAA4B,YAC5BC,GAAgC,gBAEhCC,GAAU,cAEVC,GAAyB,GAAG57F,OAAO27F,GAAS,cAE5CE,GAA0B,GAAG77F,OAAO27F,GAAS,YAE7CG,GAAkB,GAAG97F,OAAO27F,GAAS,YAErCI,GAAoB,GAAG/7F,OAAO27F,GAAS,cAEvCK,GAAe,QACfC,GAAc,OAEdC,GAAqB,gBACrBC,GAAqB,gBACrBC,GAAY,OACZC,GAAgB,WAEhBC,GAAwB,kBAExBtC,GAAgCjzB,GAAuBxb,GAAe,UAEtE4uC,GAAwBrzB,GAAiBvb,GAAe,SAIxD6uC,GAA6BtzB,GAAiBvb,GAAe,cAE7D0uC,GAAuClzB,GAAuBxb,GAAe,iBAC7EgxC,GAAoB,CAAC9qB,GAAYO,IAEjC6E,GAAmB,SAA0BppE,GAC/C,OAAQytD,GAAc,CAAC,SAAU,KAAMztD,EAAG2qF,QAAQ5yE,gBAGhDg3E,GAAa,SAAoB10C,EAAMr6C,GACzC,IAAIijF,EAAY5oC,EAAK4oC,UACjBz9E,EAAM60C,EAAK70C,IACX7R,EAAQ0mD,EAAK1mD,MAEbq7F,EAAUpzF,GAAKqnF,GAAa,IAIhC,GAFAtvF,EAAQwjD,GAASxjD,GAASA,EAAM2c,MAAMokC,GAAkB/gD,EAEpD+8D,GAAM1wD,EAAG2qF,QAAS,KAAM,CAC1B,IAAIvrB,EAAOtM,GAAQ9yD,EAAI,SAAW,GAE9Bk0C,EAAWtuC,KAAKw5D,IAClB4vB,EAAQ1uF,KAAK8+D,EAAK95D,QAAQ2uC,EAAS,KAWvC,OAJA1hD,GAAOiT,EAAK7R,GAAO6K,SAAQ,SAAUuyB,GACnC,OAAOomB,GAASpmB,IAAMi+D,EAAQ1uF,KAAKywB,MAG9Bi+D,EAAQ5tF,QAAO,SAAU2vB,EAAGh9B,EAAOo4C,GACxC,OAAOpb,GAAKob,EAAIhsC,QAAQ4wB,KAAOh9B,MAI/Bk7F,GAAsB,SAA6BjvF,GACrD,IAAIimB,EAAUjmB,EAAGouF,IAEbnoE,IACFuyC,GAASx4D,EAAI,QAASimB,EAASgiC,IAC/BuQ,GAASx4D,EAAI,UAAWimB,EAASgiC,KAGnCjoD,EAAGouF,IAA2B,MAG5Bc,GAAmB,SAA0BlvF,EAAImiF,GAGnD,GAFA8M,GAAoBjvF,GAEhBmiF,EAAM9wF,QAAS,CACjB,IAAI40B,EAAU,SAAiBL,GAC7B,IAAqB,YAAfA,EAAMlf,MAAuB+mD,GAAcqhC,GAAmBlpE,EAAMmkD,YAAc3Y,GAAWpxD,GAAK,CACtG,IAAIgvF,EAAUhvF,EAAGsuF,KAAsB,GACvCU,EAAQxwF,SAAQ,SAAUZ,GACxBukF,EAAM9wF,QAAQU,MAAMwqE,MAAMgwB,GAA+B3uF,QAK/DoC,EAAGouF,IAA2BnoE,EAC9BqyC,GAAQt4D,EAAI,QAASimB,EAASgiC,IAE1BmhB,GAAiBppE,IACnBs4D,GAAQt4D,EAAI,UAAWimB,EAASgiC,MAKlCknC,GAAsB,SAA6BnvF,EAAImiF,GACrDniF,EAAGmuF,KAA2BhM,EAAM9wF,SACtC8wF,EAAM9wF,QAAQU,MAAMu0E,KAAK,CAAComB,GAAuBC,IAA6B3sF,EAAGmuF,KAGnFnuF,EAAGmuF,IAA0B,MAG3BiB,GAAmB,SAA0BpvF,EAAImiF,GAGnD,GAFAgN,GAAoBnvF,EAAImiF,GAEpBA,EAAM9wF,QAAS,CACjB,IAAI40B,EAAU,SAAiB/d,EAAIjB,GAE7BwmD,GAAcztD,EAAGsuF,KAAsB,GAAIpmF,KAE7ClI,EAAGquF,IAAmBpnF,EAEtBooF,GAAervF,EAAIiH,KAIvBjH,EAAGmuF,IAA0BloE,EAE7Bk8D,EAAM9wF,QAAQU,MAAMk0E,IAAI,CAACymB,GAAuBC,IAA6B1mE,KAI7EopE,GAAiB,SAAwBrvF,EAAIiH,GAE3CA,GACFsrD,GAAYvyD,EAAIguF,IAChB37B,GAASryD,EAAIiuF,IACbx7B,GAAQzyD,EAAI0uF,GAAoBF,MAEhCj8B,GAAYvyD,EAAIiuF,IAChB57B,GAASryD,EAAIguF,IACbv7B,GAAQzyD,EAAI0uF,GAAoBH,MAKhCe,GAAY,SAAmBtvF,EAAI43C,GACrC53C,EAAG43C,GAAQ,YACJ53C,EAAG43C,IAIR23C,GAAe,SAAsBvvF,EAAIwvF,EAASrN,GAEpD,GAAK/hE,GAAe+hE,EAAM9wF,QAA1B,CAMI+3E,GAAiBppE,KACdsxD,GAAQtxD,EAAI2uF,KACfl8B,GAAQzyD,EAAI2uF,GAAW,UAGpBr9B,GAAQtxD,EAAI4uF,KACfn8B,GAAQzyD,EAAI4uF,GAAe,MAO/BS,GAAervF,EAAIA,EAAGquF,KAEtB,IAAIW,EAAUD,GAAWS,EAASxvF,GAO9BgvF,EAAQ/6F,OAAS,GACnBw+D,GAAQzyD,EAAIyuF,GAAoBO,EAAQx8E,KAAK,MAC7CygD,GAASjzD,EAAI6uF,GAAuB,UAEpCj8B,GAAW5yD,EAAIyuF,IACfv7B,GAAYlzD,EAAI6uF,KAMlBh/B,IAAU,WACRq/B,GAAiBlvF,EAAImiF,MAGlBzd,GAAWsqB,EAAShvF,EAAGsuF,OAE1BtuF,EAAGsuF,IAAqBU,EAIxBA,EAAQxwF,SAAQ,SAAUZ,GACxBukF,EAAM9wF,QAAQU,MAAMwqE,MAAMiwB,GAAsC5uF,SAS3D6xF,GAAW,CACpB7wF,KAAM,SAAcoB,EAAIwvF,EAASrN,GAE/BniF,EAAGquF,KAAmB,EAEtBruF,EAAGsuF,IAAqB,GAExBc,GAAiBpvF,EAAImiF,GAErBoN,GAAavvF,EAAIwvF,EAASrN,IAE5BgB,iBAAkBoM,GAClB/B,QAAS+B,GACTnM,OAAQ,SAAgBpjF,EAAIwvF,EAASrN,GACnC8M,GAAoBjvF,GAEpBmvF,GAAoBnvF,EAAImiF,GAExBmN,GAAUtvF,EAAImuF,IACdmB,GAAUtvF,EAAIouF,IACdkB,GAAUtvF,EAAIquF,IACdiB,GAAUtvF,EAAIsuF,IAEd/7B,GAAYvyD,EAAIguF,IAChBz7B,GAAYvyD,EAAIiuF,IAChBr7B,GAAW5yD,EAAI0uF,IACf97B,GAAW5yD,EAAIyuF,IACf77B,GAAW5yD,EAAI2uF,IACfz7B,GAAYlzD,EAAI6uF,MCxPhBa,GAA8B50C,GAAc,CAC9CP,WAAY,CACVk1C,SAAUA,MCDVE,GAA8B70C,GAAc,CAC9CR,WAAY,CACVwyC,UAAWA,IAEbtyC,QAAS,CACPk1C,eAAgBA,M,oDCRpB,GAAiC,qBAAX7/E,QAA8C,qBAAbzC,UAAiD,qBAAdilC,UCEpFu9C,GAAmB,W,QACjBC,EAAwB,CAAC,OAAQ,UAAW,WACzCr0F,EAAI,EAAGA,EAAIq0F,EAAsB57F,OAAQuH,GAAK,E,GACjDs0F,IAAaz9C,UAAU3iC,UAAUvP,QAAQ0vF,EAAsBr0F,KAAO,E,OACjE,E,OAGJ,EAPgB,GAUzB,SAAgBu0F,GAAkB9rF,G,IAC5BI,GAAS,E,OACN,WACDA,I,GAGK,E,OACFuW,QAAQM,UAAUd,MAAK,W,GACnB,E,SAMf,SAAgB41E,GAAa/rF,G,IACvBgsF,GAAY,E,OACT,WACAA,I,GACS,E,YACD,W,GACG,E,MAEXL,MAKT,IAAMM,GAAqBJ,IAAajgF,OAAO+K,QAY/C,GAAgBs1E,GACZH,GACAC,GC9CJ,SAAwB16D,GAAW66D,G,IAC3BC,EAAU,G,OAEdD,GAC2C,sBAA3CC,EAAQzrF,SAAShT,KAAKw+F,GCJ1B,SAAwBE,GAAyB9sF,EAAS/L,G,GAC/B,IAArB+L,EAAQmsD,S,MACH,G,IAGH7/C,EAAStM,EAAQqwD,cAAcC,YAC/BsH,EAAMtrD,EAAOwjD,iBAAiB9vD,EAAS,M,OACtC/L,EAAW2jE,EAAI3jE,GAAY2jE,ECPpC,SAAwBm1B,GAAc/sF,G,MACX,SAArBA,EAAQgtF,SACHhtF,EAEFA,EAAQksD,YAAclsD,EAAQyiB,KCDvC,SAAwBwqE,GAAgBjtF,G,IAEjCA,E,OACI6J,SAAS0jD,K,OAGVvtD,EAAQgtF,U,IACT,O,IACA,O,OACIhtF,EAAQqwD,cAAc9C,K,IAC1B,Y,OACIvtD,EAAQutD,K,MAIwBu/B,GAAyB9sF,GAA5DktF,EAfuC,EAevCA,SAAUC,EAf6B,EAe7BA,UAAWC,EAfkB,EAelBA,U,MACzB,wBAAwB/qF,KAAK6qF,EAAWE,EAAYD,GAC/CntF,EAGFitF,GAAgBF,GAAc/sF,ICvBvC,SAAwBqtF,GAAiBC,G,OAChCA,GAAaA,EAAUC,cAAgBD,EAAUC,cAAgBD,ECN1E,IAAME,GAASjB,OAAgBjgF,OAAOmhF,uBAAwB5jF,SAAS6jF,cACjEC,GAASpB,IAAa,UAAUlqF,KAAKysC,UAAU3iC,WASrD,SAAwByhF,GAAKhhF,G,OACX,KAAZA,EACK4gF,GAEO,KAAZ5gF,EACK+gF,GAEFH,IAAUG,GCVnB,SAAwBE,GAAgB7tF,G,IACjCA,E,OACI6J,SAASgmC,gB,IAGZi+C,EAAiBF,GAAK,IAAM/jF,SAAS0jD,KAAO,KAG9CqD,EAAe5wD,EAAQ4wD,cAAgB,K,MAEpCA,IAAiBk9B,GAAkB9tF,EAAQ+tF,mB,GAChC/tF,EAAUA,EAAQ+tF,oBAAoBn9B,a,IAGlDo8B,EAAWp8B,GAAgBA,EAAao8B,S,OAEzCA,GAAyB,SAAbA,GAAoC,SAAbA,GAOoB,IAA1D,CAAC,KAAM,KAAM,SAASpwF,QAAQg0D,EAAao8B,WACY,WAAvDF,GAAyBl8B,EAAc,YAEhCi9B,GAAgBj9B,GAGlBA,EAZE5wD,EAAUA,EAAQqwD,cAAcxgB,gBAAkBhmC,SAASgmC,gBCxBvD,SAASm+C,GAAkBhuF,G,IAChCgtF,EAAahtF,EAAbgtF,S,MACS,SAAbA,IAIW,SAAbA,GAAuBa,GAAgB7tF,EAAQiuF,qBAAuBjuF,GCD1E,SAAwBkuF,GAAQv3E,G,OACN,OAApBA,EAAKu1C,WACAgiC,GAAQv3E,EAAKu1C,YAGfv1C,ECAT,SAAwBw3E,GAAuBC,EAAUC,G,IAElDD,IAAaA,EAASjiC,WAAakiC,IAAaA,EAASliC,S,OACrDtiD,SAASgmC,gB,IAIZy+C,EACJF,EAASG,wBAAwBF,GACjCjiC,KAAKoiC,4BACD12F,EAAQw2F,EAAQF,EAAWC,EAC3B3zF,EAAM4zF,EAAQD,EAAWD,EAGzBK,EAAQ5kF,SAAS6kF,c,EACjBC,SAAS72F,EAAO,G,EAChB82F,OAAOl0F,EAAK,G,IACVm0F,EAA4BJ,EAA5BI,wB,GAILT,IAAaS,GACZR,IAAaQ,GACf/2F,EAAMw1D,SAAS5yD,G,OAEXszF,GAAkBa,GACbA,EAGFhB,GAAgBgB,G,IAInBC,EAAeZ,GAAQE,G,OACzBU,EAAarsE,KACR0rE,GAAuBW,EAAarsE,KAAM4rE,GAE1CF,GAAuBC,EAAUF,GAAQG,GAAU5rE,MCzC9D,SAAwBssE,GAAU/uF,G,IAASgvF,EAAc,uDAAP,MAC1CC,EAAqB,QAATD,EAAiB,YAAc,aAC3ChC,EAAWhtF,EAAQgtF,S,GAER,SAAbA,GAAoC,SAAbA,EAAqB,C,IACxCzzE,EAAOvZ,EAAQqwD,cAAcxgB,gBAC7Bq/C,EAAmBlvF,EAAQqwD,cAAc6+B,kBAAoB31E,E,OAC5D21E,EAAiBD,G,OAGnBjvF,EAAQivF,GCPjB,SAAwBE,GAAcC,EAAMpvF,G,IAASqvF,EAAkB,wDAC/DC,EAAYP,GAAU/uF,EAAS,OAC/BuvF,EAAaR,GAAU/uF,EAAS,QAChCwvF,EAAWH,GAAY,EAAI,E,SAC5Bn/B,KAAOo/B,EAAYE,E,EACnBnnB,QAAUinB,EAAYE,E,EACtBrwF,MAAQowF,EAAaC,E,EACrBpwF,OAASmwF,EAAaC,EACpBJ,ECTT,SAAwBK,GAAeC,EAAQC,G,IACvCC,EAAiB,MAATD,EAAe,OAAS,MAChCE,EAAkB,SAAVD,EAAmB,QAAU,S,OAGzCjlC,WAAW+kC,EAAO,SAASE,EAAhBF,UACX/kC,WAAW+kC,EAAO,SAASG,EAAhBH,UCdf,SAASI,GAAQH,EAAMpiC,EAAMh0C,EAAMw2E,G,OAC1B51F,KAAKkF,IACVkuD,EAAK,SAASoiC,GACdpiC,EAAK,SAASoiC,GACdp2E,EAAK,SAASo2E,GACdp2E,EAAK,SAASo2E,GACdp2E,EAAK,SAASo2E,GACd/B,GAAK,IACAlhE,SAASnT,EAAK,SAASo2E,IAC1BjjE,SAASqjE,EAAc,UAAkB,WAATJ,EAAoB,MAAQ,UAC5DjjE,SAASqjE,EAAc,UAAkB,WAATJ,EAAoB,SAAW,WAC/D,GAIN,SAAwBK,GAAenmF,G,IAC/B0jD,EAAO1jD,EAAS0jD,KAChBh0C,EAAO1P,EAASgmC,gBAChBkgD,EAAgBnC,GAAK,KAAO99B,iBAAiBv2C,G,MAE5C,C,OACGu2E,GAAQ,SAAUviC,EAAMh0C,EAAMw2E,G,MAC/BD,GAAQ,QAASviC,EAAMh0C,EAAMw2E,I,ynBCjBxC,SAAwBE,GAAcC,G,aAE/BA,EADL,C,MAESA,EAAQ/wF,KAAO+wF,EAAQtiC,M,OACtBsiC,EAAQhgC,IAAMggC,EAAQviC,SCGlC,SAAwBiC,GAAsB5vD,G,IACxCovF,EAAO,G,OAMLxB,GAAK,IAAK,C,EACL5tF,EAAQ4vD,wB,IACT0/B,EAAYP,GAAU/uF,EAAS,OAC/BuvF,EAAaR,GAAU/uF,EAAS,Q,EACjCkwD,KAAOo/B,E,EACPnwF,MAAQowF,E,EACRlnB,QAAUinB,E,EACVlwF,OAASmwF,O,EAGPvvF,EAAQ4vD,wBAGnB,MAAMliC,I,IAEAtyB,EAAS,C,KACPg0F,EAAKjwF,K,IACNiwF,EAAKl/B,I,MACHk/B,EAAKhwF,MAAQgwF,EAAKjwF,K,OACjBiwF,EAAK/mB,OAAS+mB,EAAKl/B,KAIvB4sB,EAA6B,SAArB98E,EAAQgtF,SAAsBgD,GAAehwF,EAAQqwD,eAAiB,GAC9EzC,EACJkvB,EAAMlvB,OAAS5tD,EAAQmwF,aAAe/0F,EAAOwyD,MACzCD,EACJmvB,EAAMnvB,QAAU3tD,EAAQowF,cAAgBh1F,EAAOuyD,OAE7C0iC,EAAiBrwF,EAAQswF,YAAc1iC,EACvC2iC,EAAgBvwF,EAAQkuD,aAAeP,E,GAIvC0iC,GAAkBE,EAAe,C,IAC7Bb,EAAS5C,GAAyB9sF,G,GACtByvF,GAAeC,EAAQ,K,GACxBD,GAAeC,EAAQ,K,EAEjC9hC,OAASyiC,E,EACT1iC,QAAU4iC,E,OAGZN,GAAc70F,GCzDR,SAASo1F,GAAqCh5B,EAAUtpE,G,IAAQuiG,EAAuB,wDAC9F9C,EAAS+C,GAAQ,IACjBC,EAA6B,SAApBziG,EAAO8+F,SAChB4D,EAAehhC,GAAsB4H,GACrCq5B,EAAajhC,GAAsB1hE,GACnC4iG,EAAe7D,GAAgBz1B,GAE/Bk4B,EAAS5C,GAAyB5+F,GAClC4iE,EAAiBnG,WAAW+kC,EAAO5+B,gBACnCC,EAAkBpG,WAAW+kC,EAAO3+B,iBAGvC0/B,GAAiBE,I,EACPzgC,IAAM/1D,KAAKkF,IAAIwxF,EAAW3gC,IAAK,G,EAC/B/wD,KAAOhF,KAAKkF,IAAIwxF,EAAW1xF,KAAM,I,IAE1C+wF,EAAUD,GAAc,C,IACrBW,EAAa1gC,IAAM2gC,EAAW3gC,IAAMY,E,KACnC8/B,EAAazxF,KAAO0xF,EAAW1xF,KAAO4xD,E,MACrC6/B,EAAahjC,M,OACZgjC,EAAajjC,S,KAEfqD,UAAY,E,EACZC,WAAa,GAMhB08B,GAAUgD,EAAQ,C,IACf3/B,EAAYrG,WAAW+kC,EAAO1+B,WAC9BC,EAAatG,WAAW+kC,EAAOz+B,Y,EAE7Bf,KAAOY,EAAiBE,E,EACxBqX,QAAUvX,EAAiBE,E,EAC3B7xD,MAAQ4xD,EAAkBE,E,EAC1B7xD,OAAS2xD,EAAkBE,E,EAG3BD,UAAYA,E,EACZC,WAAaA,E,OAIrB08B,IAAW8C,EACPviG,EAAOo/D,SAASwjC,GAChB5iG,IAAW4iG,GAA0C,SAA1BA,EAAa9D,Y,EAElCmC,GAAce,EAAShiG,IAG5BgiG,ECtDM,SAASa,GAA8C/wF,G,IAASgxF,EAAuB,wDAC9Fz3E,EAAOvZ,EAAQqwD,cAAcxgB,gBAC7BohD,EAAiBT,GAAqCxwF,EAASuZ,GAC/Dq0C,EAAQzzD,KAAKkF,IAAIka,EAAK42E,YAAa7jF,OAAO4kF,YAAc,GACxDvjC,EAASxzD,KAAKkF,IAAIka,EAAK62E,aAAc9jF,OAAO6kF,aAAe,GAE3D7B,EAAa0B,EAAkC,EAAlBjC,GAAUx1E,GACvCg2E,EAAcyB,EAA0C,EAA1BjC,GAAUx1E,EAAM,QAE9CxgB,EAAS,C,IACRu2F,EAAY2B,EAAe/gC,IAAM+gC,EAAejgC,U,KAC/Cu+B,EAAa0B,EAAe9xF,KAAO8xF,EAAehgC,W,yBAKnDg/B,GAAcl3F,GCTvB,SAAwBq4F,GAAQpxF,G,IACxBgtF,EAAWhtF,EAAQgtF,S,GACR,SAAbA,GAAoC,SAAbA,E,OAClB,E,GAE6C,UAAlDF,GAAyB9sF,EAAS,Y,OAC7B,E,IAEHksD,EAAa6gC,GAAc/sF,G,QAC5BksD,GAGEklC,GAAQllC,GCbjB,SAAwBmlC,GAA6BrxF,G,IAE7CA,IAAYA,EAAQisD,eAAiB2hC,K,OAClC/jF,SAASgmC,gB,IAEdpzC,EAAKuD,EAAQisD,c,MACVxvD,GAAoD,SAA9CqwF,GAAyBrwF,EAAI,a,EACnCA,EAAGwvD,c,OAEHxvD,GAAMoN,SAASgmC,gBCExB,SAAwByhD,GACtBC,EACAjE,EACA/yB,EACAi3B,G,IACAf,EACA,wDAGIgB,EAAa,CAAEvhC,IAAK,EAAG/wD,KAAM,GAC3ByxD,EAAe6/B,EAAgBY,GAA6BE,GAAUpD,GAAuBoD,EAAQlE,GAAiBC,I,GAGlG,aAAtBkE,E,EACWT,GAA8CngC,EAAc6/B,OAGtE,C,IAECiB,OAAAA,EACsB,iBAAtBF,G,EACevE,GAAgBF,GAAcO,IACf,SAA5BoE,EAAe1E,W,EACAuE,EAAOlhC,cAAcxgB,kB,EAET,WAAtB2hD,EACQD,EAAOlhC,cAAcxgB,gBAErB2hD,E,IAGbtB,EAAUM,GACdkB,EACA9gC,EACA6/B,G,GAI8B,SAA5BiB,EAAe1E,UAAwBoE,GAAQxgC,G,EAQpCs/B,MARmD,C,MACtCF,GAAeuB,EAAOlhC,eAAxC1C,EADwD,EACxDA,OAAQC,EADgD,EAChDA,M,EACLsC,KAAOggC,EAAQhgC,IAAMggC,EAAQl/B,U,EAC7BqX,OAAS1a,EAASuiC,EAAQhgC,I,EAC1B/wD,MAAQ+wF,EAAQ/wF,KAAO+wF,EAAQj/B,W,EAC/B7xD,MAAQwuD,EAAQsiC,EAAQ/wF,M,EAQ7Bo7D,GAAW,E,IACfo3B,EAAqC,kBAAZp3B,E,SACpBp7D,MAAQwyF,EAAkBp3B,EAAUA,EAAQp7D,MAAQ,E,EACpD+wD,KAAOyhC,EAAkBp3B,EAAUA,EAAQrK,KAAO,E,EAClD9wD,OAASuyF,EAAkBp3B,EAAUA,EAAQn7D,OAAS,E,EACtDipE,QAAUspB,EAAkBp3B,EAAUA,EAAQ8N,QAAU,EAE5DopB,EC7ET,SAASG,GAAT,G,IAAmBhkC,EAAiB,EAAjBA,MAAOD,EAAU,EAAVA,O,OACjBC,EAAQD,EAYjB,SAAwBkkC,GACtBC,EACAC,EACAR,EACAjE,EACAkE,G,IACAj3B,EACA,uDADU,E,IAEyB,IAA/Bu3B,EAAUl1F,QAAQ,Q,OACbk1F,E,IAGHL,EAAaH,GACjBC,EACAjE,EACA/yB,EACAi3B,GAGIQ,EAAQ,C,IACP,C,MACIP,EAAW7jC,M,OACVmkC,EAAQ7hC,IAAMuhC,EAAWvhC,K,MAE5B,C,MACEuhC,EAAWryF,MAAQ2yF,EAAQ3yF,M,OAC1BqyF,EAAW9jC,Q,OAEb,C,MACC8jC,EAAW7jC,M,OACV6jC,EAAWppB,OAAS0pB,EAAQ1pB,Q,KAEhC,C,MACG0pB,EAAQ5yF,KAAOsyF,EAAWtyF,K,OACzBsyF,EAAW9jC,SAIjBskC,EAAc9gG,OAAOkH,KAAK25F,GAC7Bp0F,KAAI,SAAAvN,G,kBAEA2hG,EAAM3hG,GAFN,C,KAGGuhG,GAAQI,EAAM3hG,SAErBo5B,MAAK,SAAC5Y,EAAGC,G,OAAMA,EAAEohF,KAAOrhF,EAAEqhF,QAEvBC,EAAgBF,EAAYp0F,QAChC,Y,IAAG+vD,EAAH,EAAGA,MAAOD,EAAV,EAAUA,O,OACRC,GAAS2jC,EAAOpB,aAAexiC,GAAU4jC,EAAOnB,gBAG9CgC,EAAoBD,EAAczhG,OAAS,EAC7CyhG,EAAc,GAAG9hG,IACjB4hG,EAAY,GAAG5hG,IAEbgiG,EAAYP,EAAU/kF,MAAM,KAAK,G,OAEhCqlF,GAAqBC,EAAY,IAAIA,EAAc,ICzD5D,SAAwBC,GAAoB5uF,EAAO6tF,EAAQjE,G,IAAWmD,EAAsB,uDAAN,KAC9E8B,EAAqB9B,EAAgBY,GAA6BE,GAAUpD,GAAuBoD,EAAQlE,GAAiBC,I,OAC3HkD,GAAqClD,EAAWiF,EAAoB9B,GCV7E,SAAwB+B,GAAcxyF,G,IAC9BsM,EAAStM,EAAQqwD,cAAcC,YAC/Bo/B,EAASpjF,EAAOwjD,iBAAiB9vD,GACjCsW,EAAIq0C,WAAW+kC,EAAO1+B,WAAa,GAAKrG,WAAW+kC,EAAO+C,cAAgB,GAC1E1yE,EAAI4qC,WAAW+kC,EAAOz+B,YAAc,GAAKtG,WAAW+kC,EAAOvnB,aAAe,GAC1E/sE,EAAS,C,MACN4E,EAAQswF,YAAcvwE,E,OACrB/f,EAAQkuD,aAAe53C,G,OAE1Blb,ECTT,SAAwBs3F,GAAqBZ,G,IACrCn1B,EAAO,CAAEx9D,KAAM,QAASC,MAAO,OAAQipE,OAAQ,MAAOnY,IAAK,U,OAC1D4hC,EAAU/vF,QAAQ,0BAA0B,SAAAiO,G,OAAW2sD,EAAK3sD,MCIrE,SAAwB2iF,GAAiBpB,EAAQqB,EAAkBd,G,EACrDA,EAAU/kF,MAAM,KAAK,G,IAG3B8lF,EAAaL,GAAcjB,GAG3BuB,EAAgB,C,MACbD,EAAWjlC,M,OACVilC,EAAWllC,QAIfolC,GAAoD,IAA1C,CAAC,QAAS,QAAQn2F,QAAQk1F,GACpCkB,EAAWD,EAAU,MAAQ,OAC7BE,EAAgBF,EAAU,OAAS,MACnCG,EAAcH,EAAU,SAAW,QACnCI,EAAwBJ,EAAqB,QAAX,S,SAE1BC,GACZJ,EAAiBI,GACjBJ,EAAiBM,GAAe,EAChCL,EAAWK,GAAe,E,EAEZD,GADZnB,IAAcmB,EAEdL,EAAiBK,GAAiBJ,EAAWM,GAG7CP,EAAiBF,GAAqBO,IAGnCH,ECnCT,SAAwB90F,GAAK4qC,EAAKl4B,G,OAE5B1gB,MAAMC,UAAU+N,KACX4qC,EAAI5qC,KAAK0S,GAIXk4B,EAAI/qC,OAAO6S,GAAO,GCL3B,SAAwBzS,GAAU2qC,EAAKyL,EAAMjkD,G,GAEvCJ,MAAMC,UAAUgO,U,OACX2qC,EAAI3qC,WAAU,SAAA8oC,G,OAAOA,EAAIsN,KAAUjkD,K,IAItCic,EAAQrO,GAAK4qC,GAAK,SAAA7yB,G,OAAOA,EAAIs+B,KAAUjkD,K,OACtCw4C,EAAIhsC,QAAQyP,GCLrB,SAAwB+mF,GAAa1T,EAAW37E,EAAMsvF,G,IAC9CC,OAA0BpjG,IAATmjG,EACnB3T,EACAA,EAAUjgF,MAAM,EAAGxB,GAAUyhF,EAAW,OAAQ2T,I,SAErCp4F,SAAQ,SAAAu0F,GACjBA,EAAS,a,GACHjwD,KAAK,yD,IAET7+B,EAAK8uF,EAAS,aAAeA,EAAS9uF,GACxC8uF,EAAS+D,SAAWxhE,GAAWrxB,K,EAI5BwvF,QAAQqB,OAAStB,GAAclsF,EAAKmsF,QAAQqB,Q,EAC5CrB,QAAQ5C,UAAY2C,GAAclsF,EAAKmsF,QAAQ5C,W,EAE7C5sF,EAAGqD,EAAMyrF,OAIbzrF,ECvBT,SAAwByvF,K,IAElBzlG,KAAK2V,MAAM+vF,Y,KAIX1vF,EAAO,C,SACChW,K,OACF,G,YACK,G,WACD,G,SACH,E,QACA,I,EAINmiG,QAAQ5C,UAAYgF,GACvBvkG,KAAK2V,MACL3V,KAAKwjG,OACLxjG,KAAKu/F,UACLv/F,KAAKL,QAAQgmG,e,EAMV5B,UAAYD,GACf9jG,KAAKL,QAAQokG,UACb/tF,EAAKmsF,QAAQ5C,UACbv/F,KAAKwjG,OACLxjG,KAAKu/F,UACLv/F,KAAKL,QAAQgyF,UAAUiU,KAAKnC,kBAC5BzjG,KAAKL,QAAQgyF,UAAUiU,KAAKp5B,S,EAIzBq5B,kBAAoB7vF,EAAK+tF,U,EAEzB4B,cAAgB3lG,KAAKL,QAAQgmG,c,EAG7BxD,QAAQqB,OAASoB,GACpB5kG,KAAKwjG,OACLxtF,EAAKmsF,QAAQ5C,UACbvpF,EAAK+tF,W,EAGF5B,QAAQqB,OAAOthF,SAAWliB,KAAKL,QAAQgmG,cACxC,QACA,W,EAGGN,GAAarlG,KAAK2xF,UAAW37E,GAI/BhW,KAAK2V,MAAMmwF,U,KAITnmG,QAAQomG,SAAS/vF,I,KAHjBL,MAAMmwF,WAAY,E,KAClBnmG,QAAQqmG,SAAShwF,KChE1B,SAAwBiwF,GAAkBtU,EAAWuU,G,OAC5CvU,EAAU5hF,MACf,Y,IAAG3F,EAAH,EAAGA,KAAMo7F,EAAT,EAASA,Q,OAAcA,GAAWp7F,IAAS87F,KCD/C,SAAwBC,GAAyBjgG,G,QACzCkgG,EAAW,EAAC,EAAO,KAAM,SAAU,MAAO,KAC1CC,EAAYngG,EAAS3D,OAAO,GAAG+nD,cAAgBpkD,EAASwL,MAAM,GAE3DxH,EAAI,EAAGA,EAAIk8F,EAASzjG,OAAQuH,IAAK,C,IAClCu6D,EAAS2hC,EAASl8F,GAClBo8F,EAAU7hC,EAAS,GAAGA,EAAS4hC,EAAcngG,E,GACP,qBAAjC4V,SAAS0jD,KAAK/yC,MAAM65E,G,OACtBA,E,OAGJ,KCVT,SAAwB5U,K,YACjB/7E,MAAM+vF,aAAc,EAGrBO,GAAkBjmG,KAAK2xF,UAAW,gB,KAC/B6R,OAAOjiC,gBAAgB,e,KACvBiiC,OAAO/2E,MAAMvK,SAAW,G,KACxBshF,OAAO/2E,MAAM01C,IAAM,G,KACnBqhC,OAAO/2E,MAAMrb,KAAO,G,KACpBoyF,OAAO/2E,MAAMpb,MAAQ,G,KACrBmyF,OAAO/2E,MAAM6tD,OAAS,G,KACtBkpB,OAAO/2E,MAAM85E,WAAa,G,KAC1B/C,OAAO/2E,MAAM05E,GAAyB,cAAgB,I,KAGxDK,wBAIDxmG,KAAKL,QAAQ8mG,iB,KACVjD,OAAOrlC,WAAWjpC,YAAYl1B,KAAKwjG,QAEnCxjG,KCzBT,SAAwB0mG,GAAUz0F,G,IAC1BqwD,EAAgBrwD,EAAQqwD,c,OACvBA,EAAgBA,EAAcC,YAAchkD,OCJrD,SAASooF,GAAsB5D,EAAczuE,EAAOggD,EAAUsyB,G,IACtDC,EAAmC,SAA1B9D,EAAa9D,SACtB3yF,EAASu6F,EAAS9D,EAAazgC,cAAcC,YAAcwgC,E,EAC1D/tE,iBAAiBV,EAAOggD,EAAU,CAAE5yB,SAAS,IAE/CmlD,G,GAED3H,GAAgB5yF,EAAO6xD,YACvB7pC,EACAggD,EACAsyB,G,EAGU53F,KAAK1C,GASrB,SAAwBw6F,GACtBvH,EACA5/F,EACAgW,EACAoxF,G,EAGMA,YAAcA,E,GACVxH,GAAWvqE,iBAAiB,SAAUrf,EAAMoxF,YAAa,CAAErlD,SAAS,I,IAGxEslD,EAAgB9H,GAAgBK,G,UAEpCyH,EACA,SACArxF,EAAMoxF,YACNpxF,EAAMixF,e,EAEFI,cAAgBA,E,EAChBC,eAAgB,EAEftxF,ECtCT,SAAwBuxF,KACjBlnG,KAAK2V,MAAMsxF,gB,KACTtxF,MAAQmxF,GACX9mG,KAAKu/F,UACLv/F,KAAKL,QACLK,KAAK2V,MACL3V,KAAKmnG,iBCNX,SAAwBC,GAAqB7H,EAAW5pF,G,UAE5C4pF,GAAW59C,oBAAoB,SAAUhsC,EAAMoxF,a,EAGnDH,cAAc15F,SAAQ,SAAAZ,G,EACnBq1C,oBAAoB,SAAUhsC,EAAMoxF,gB,EAIvCA,YAAc,K,EACdH,cAAgB,G,EAChBI,cAAgB,K,EAChBC,eAAgB,EACftxF,ECbT,SAAwB6wF,KAClBxmG,KAAK2V,MAAMsxF,gB,qBACQjnG,KAAKmnG,gB,KACrBxxF,MAAQyxF,GAAqBpnG,KAAKu/F,UAAWv/F,KAAK2V,QCL3D,SAAwBowC,GAAUt0C,G,MACnB,KAANA,IAAaotB,MAAM+9B,WAAWnrD,KAAOmV,SAASnV,GCEvD,SAAwB41F,GAAUp1F,EAAS0vF,G,OAClCr3F,KAAKq3F,GAAQz0F,SAAQ,SAAAo5C,G,IACtBghD,EAAO,IAIN,IADH,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,QAAQz4F,QAAQy3C,IAE9DP,GAAU47C,EAAOr7C,M,EAEV,M,EAED75B,MAAM65B,GAAQq7C,EAAOr7C,GAAQghD,KCbzC,SAAwBC,GAAct1F,EAASslF,G,OACtCjtF,KAAKitF,GAAYrqF,SAAQ,SAASo5C,G,IACjCjkD,EAAQk1F,EAAWjxC,IACX,IAAVjkD,E,EACMg/D,aAAa/a,EAAMixC,EAAWjxC,I,EAE9Bib,gBAAgBjb,MCA9B,SAAwBkhD,GAAWxxF,G,UAKvBA,EAAKgC,SAASwrF,OAAQxtF,EAAK2rF,Q,GAIvB3rF,EAAKgC,SAASwrF,OAAQxtF,EAAKuhF,YAGrCvhF,EAAKyxF,cAAgBrkG,OAAOkH,KAAK0L,EAAK0xF,aAAa/kG,Q,GAC3CqT,EAAKyxF,aAAczxF,EAAK0xF,aAG7B1xF,EAaT,SAAgB2xF,GACdpI,EACAiE,EACA7jG,EACAioG,EACAjyF,G,IAGMkvF,EAAmBN,GAAoB5uF,EAAO6tF,EAAQjE,EAAW5/F,EAAQgmG,eAKzE5B,EAAYD,GAChBnkG,EAAQokG,UACRc,EACArB,EACAjE,EACA5/F,EAAQgyF,UAAUiU,KAAKnC,kBACvB9jG,EAAQgyF,UAAUiU,KAAKp5B,S,SAGlBnL,aAAa,cAAe0iC,G,GAIzBP,EAAQ,CAAEthF,SAAUviB,EAAQgmG,cAAgB,QAAU,aAEzDhmG,ECpDT,SAAwBkoG,GAAkB7xF,EAAM8xF,G,MAChB9xF,EAAKmsF,QAA3BqB,EADmD,EACnDA,OAAQjE,EAD2C,EAC3CA,UACRlpE,EAAiBjqB,KAAjBiqB,MAAO1kB,EAAUvF,KAAVuF,MACTo2F,EAAU,SAAA/rE,G,OAAKA,GAEfgsE,EAAiB3xE,EAAMkpE,EAAU1/B,OACjCooC,EAAc5xE,EAAMmtE,EAAO3jC,OAE3BqoC,GAA4D,IAA/C,CAAC,OAAQ,SAASr5F,QAAQmH,EAAK+tF,WAC5CoE,GAA+C,IAAjCnyF,EAAK+tF,UAAUl1F,QAAQ,KACrCu5F,EAAkBJ,EAAiB,IAAMC,EAAc,EACvDI,EAAeL,EAAiB,IAAM,GAAKC,EAAc,IAAM,EAE/DK,EAAuBR,EAEzBI,GAAcC,GAAeC,EAC7B/xE,EACA1kB,EAHAo2F,EAIEQ,EAAqBT,EAAwBzxE,EAAV0xE,E,MAElC,C,KACCO,EACJD,IAAiBF,GAAeL,EAC5BtE,EAAOpyF,KAAO,EACdoyF,EAAOpyF,M,IAERm3F,EAAkB/E,EAAOrhC,K,OACtBomC,EAAkB/E,EAAOlpB,Q,MAC1BguB,EAAoB9E,EAAOnyF,QCxCtC,IAAMm3F,GAAYhK,IAAa,WAAWlqF,KAAKysC,UAAU3iC,WASzD,SAAwBqqF,GAAazyF,EAAMrW,G,IACjC4oB,EAAS5oB,EAAT4oB,EAAGyJ,EAAMryB,EAANqyB,EACHwxE,EAAWxtF,EAAKmsF,QAAhBqB,OAGFkF,EAA8Bz4F,GAClC+F,EAAKgC,SAAS25E,WACd,SAAA8P,G,MAA8B,eAAlBA,EAASr3F,QACrBu+F,qBACkCxmG,IAAhCumG,G,GACMl3D,KACN,iI,IAGEm3D,OAC4BxmG,IAAhCumG,EACIA,EACA/oG,EAAQgpG,gBAER9lC,EAAei9B,GAAgB9pF,EAAKgC,SAASwrF,QAC7CoF,EAAmB/mC,GAAsBgB,GAGzC8+B,EAAS,C,SACH6B,EAAOthF,UAGbigF,EAAU0F,GACd7xF,EACAuI,OAAOsqF,iBAAmB,IAAML,IAG5B3G,EAAc,WAANt5E,EAAiB,MAAQ,SACjCu5E,EAAc,UAAN9vE,EAAgB,OAAS,QAKjC82E,EAAmB3C,GAAyB,aAW9C/0F,OAAAA,EAAM+wD,OAAAA,E,KACI,WAAV0/B,EAG4B,SAA1Bh/B,EAAao8B,UACRp8B,EAAaw/B,aAAeF,EAAQ7nB,QAEpCsuB,EAAiBhpC,OAASuiC,EAAQ7nB,OAGrC6nB,EAAQhgC,I,EAEF,UAAV2/B,EAC4B,SAA1Bj/B,EAAao8B,UACPp8B,EAAau/B,YAAcD,EAAQ9wF,OAEnCu3F,EAAiB/oC,MAAQsiC,EAAQ9wF,MAGpC8wF,EAAQ/wF,KAEbu3F,GAAmBG,E,EACdA,GAAP,eAA0C13F,EAA1C,OAAqD+wD,EAArD,S,EACO0/B,GAAS,E,EACTC,GAAS,E,EACTyE,WAAa,gBACf,C,IAECwC,EAAsB,WAAVlH,GAAsB,EAAI,EACtCmH,EAAuB,UAAVlH,GAAqB,EAAI,E,EACrCD,GAAS1/B,EAAM4mC,E,EACfjH,GAAS1wF,EAAO43F,E,EAChBzC,WAAgB1E,EAAvB,KAAiCC,E,IAI7BvK,EAAa,C,cACFvhF,EAAK+tF,W,SAIjBxM,WAAL0R,GAAAA,GAAuB1R,EAAevhF,EAAKuhF,Y,EACtCoK,OAALsH,GAAAA,GAAmBtH,EAAW3rF,EAAK2rF,Q,EAC9B+F,YAALuB,GAAAA,GAAwBjzF,EAAKmsF,QAAQ+G,MAAUlzF,EAAK0xF,aAE7C1xF,EClGT,SAAwBmzF,GACtBxX,EACAyX,EACAC,G,IAEMC,EAAar5F,GAAK0hF,GAAW,Y,IAAGvnF,EAAH,EAAGA,K,OAAWA,IAASg/F,KAEpDG,IACFD,GACF3X,EAAU5hF,MAAK,SAAA0xF,G,OAEXA,EAASr3F,OAASi/F,GAClB5H,EAAS+D,SACT/D,EAASlB,MAAQ+I,EAAW/I,S,IAI7BgJ,EAAY,C,IACTD,EAAAA,IAAkBF,EAAlBE,IACAE,EAAY,IAAKH,EAAjBG,I,GACEh4D,KACHg4D,EADL,4BAC0CF,EAD1C,4DACgHA,EADhH,K,OAIKC,ECxBT,SAAwBL,GAAMlzF,EAAMrW,G,UAE7BwpG,GAAmBnzF,EAAKgC,SAAS25E,UAAW,QAAS,gB,OACjD37E,E,IAGLyxF,EAAe9nG,EAAQsS,Q,GAGC,kBAAjBw1F,G,KACMzxF,EAAKgC,SAASwrF,OAAO9iC,cAAc+mC,IAG7CA,E,OACIzxF,O,IAKJA,EAAKgC,SAASwrF,OAAOjkC,SAASkoC,G,UACzBj2D,KACN,iEAEKx7B,E,IAIL+tF,EAAY/tF,EAAK+tF,UAAU/kF,MAAM,KAAK,G,EACdhJ,EAAKmsF,QAA3BqB,EA5BmC,EA4BnCA,OAAQjE,EA5B2B,EA4B3BA,UACV2I,GAAuD,IAA1C,CAAC,OAAQ,SAASr5F,QAAQk1F,GAEvCv3F,EAAM07F,EAAa,SAAW,QAC9BuB,EAAkBvB,EAAa,MAAQ,OACvCjH,EAAOwI,EAAgBhjF,cACvBijF,EAAUxB,EAAa,OAAS,MAChCyB,EAASzB,EAAa,SAAW,QACjC0B,EAAmBnF,GAAcgD,GAAcj7F,GAQjD+yF,EAAUoK,GAAUC,EAAmBpG,EAAOvC,K,EAC3CkB,QAAQqB,OAAOvC,IAClBuC,EAAOvC,IAAS1B,EAAUoK,GAAUC,IAGpCrK,EAAU0B,GAAQ2I,EAAmBpG,EAAOmG,K,EACzCxH,QAAQqB,OAAOvC,IAClB1B,EAAU0B,GAAQ2I,EAAmBpG,EAAOmG,I,EAE3CxH,QAAQqB,OAAStB,GAAclsF,EAAKmsF,QAAQqB,Q,IAG3C5U,EAAS2Q,EAAU0B,GAAQ1B,EAAU/yF,GAAO,EAAIo9F,EAAmB,EAInE//B,EAAMk1B,GAAyB/oF,EAAKgC,SAASwrF,QAC7CqG,EAAmBjtC,WAAWiN,EAAI,SAAS4/B,IAC3CK,EAAmBltC,WAAWiN,EAAI,SAAS4/B,EAAb5/B,UAChCkgC,EACFnb,EAAS54E,EAAKmsF,QAAQqB,OAAOvC,GAAQ4I,EAAmBC,E,SAG9C19F,KAAKkF,IAAIlF,KAAKD,IAAIq3F,EAAOh3F,GAAOo9F,EAAkBG,GAAY,G,EAErEtC,aAAeA,E,EACftF,QAAQ+G,OAAbc,EAAAA,GAAAA,GAAAA,EACG/I,EAAO70F,KAAKiqB,MAAM0zE,IADrB,KAEGL,EAAU,IAFb,GAKO1zF,EChFT,SAAwBi0F,GAAqB3F,G,MACzB,QAAdA,EACK,QACgB,UAAdA,EACF,MAEFA,ECkBT,OAAe,CACb,aACA,OACA,WACA,YACA,MACA,UACA,cACA,QACA,YACA,aACA,SACA,eACA,WACA,OACA,cC3CI4F,GAAkBC,GAAWz4F,MAAM,GAYzC,SAAwB04F,GAAUrG,G,IAAW/vE,EAAiB,wDACtDvxB,EAAQynG,GAAgBr7F,QAAQk1F,GAChClpD,EAAMqvD,GACTx4F,MAAMjP,EAAQ,GACdxB,OAAOipG,GAAgBx4F,MAAM,EAAGjP,I,OAC5BuxB,EAAU6mB,EAAIlyC,UAAYkyC,ECZnC,IAAMwvD,GAAY,C,KACV,O,UACK,Y,iBACO,oBAUpB,SAAwBzE,GAAK5vF,EAAMrW,G,GAE7BsmG,GAAkBjwF,EAAKgC,SAAS25E,UAAW,S,OACtC37E,E,GAGLA,EAAKs0F,SAAWt0F,EAAK+tF,YAAc/tF,EAAK6vF,kB,OAEnC7vF,E,IAGH0tF,EAAaH,GACjBvtF,EAAKgC,SAASwrF,OACdxtF,EAAKgC,SAASunF,UACd5/F,EAAQ6sE,QACR7sE,EAAQ8jG,kBACRztF,EAAK2vF,eAGH5B,EAAY/tF,EAAK+tF,UAAU/kF,MAAM,KAAK,GACtCurF,EAAoB5F,GAAqBZ,GACzCO,EAAYtuF,EAAK+tF,UAAU/kF,MAAM,KAAK,IAAM,GAE5CwrF,EAAY,G,OAER7qG,EAAQ8qG,U,KACTJ,GAAUK,K,EACD,CAAC3G,EAAWwG,G,WAErBF,GAAUM,U,EACDP,GAAUrG,G,WAEnBsG,GAAUO,iB,EACDR,GAAUrG,GAAW,G,gBAGrBpkG,EAAQ8qG,S,SAGdv9F,SAAQ,SAACe,EAAMxL,G,GACnBshG,IAAc91F,GAAQu8F,EAAU7nG,SAAWF,EAAQ,E,OAC9CuT,E,EAGGA,EAAK+tF,UAAU/kF,MAAM,KAAK,G,EAClB2lF,GAAqBZ,G,IAEnCgB,EAAgB/uF,EAAKmsF,QAAQqB,OAC7BqH,EAAa70F,EAAKmsF,QAAQ5C,UAG1B5tF,EAAQvF,KAAKuF,MACbm5F,EACW,SAAd/G,GACCpyF,EAAMozF,EAAc1zF,OAASM,EAAMk5F,EAAWz5F,OACjC,UAAd2yF,GACCpyF,EAAMozF,EAAc3zF,MAAQO,EAAMk5F,EAAWx5F,QAChC,QAAd0yF,GACCpyF,EAAMozF,EAAczqB,QAAU3oE,EAAMk5F,EAAW1oC,MAClC,WAAd4hC,GACCpyF,EAAMozF,EAAc5iC,KAAOxwD,EAAMk5F,EAAWvwB,QAE1CywB,EAAgBp5F,EAAMozF,EAAc3zF,MAAQO,EAAM+xF,EAAWtyF,MAC7D45F,EAAiBr5F,EAAMozF,EAAc1zF,OAASM,EAAM+xF,EAAWryF,OAC/D45F,EAAet5F,EAAMozF,EAAc5iC,KAAOxwD,EAAM+xF,EAAWvhC,KAC3D+oC,EACJv5F,EAAMozF,EAAczqB,QAAU3oE,EAAM+xF,EAAWppB,QAE3C6wB,EACW,SAAdpH,GAAwBgH,GACV,UAAdhH,GAAyBiH,GACX,QAAdjH,GAAuBkH,GACT,WAAdlH,GAA0BmH,EAGvBhD,GAAuD,IAA1C,CAAC,MAAO,UAAUr5F,QAAQk1F,GAGvCqH,IACFzrG,EAAQ0rG,iBACRnD,GAA4B,UAAd5D,GAAyByG,GACtC7C,GAA4B,QAAd5D,GAAuB0G,IACpC9C,GAA4B,UAAd5D,GAAyB2G,IACvC/C,GAA4B,QAAd5D,GAAuB4G,GAGrCI,IACF3rG,EAAQ4rG,0BACRrD,GAA4B,UAAd5D,GAAyB0G,GACtC9C,GAA4B,QAAd5D,GAAuByG,IACpC7C,GAA4B,UAAd5D,GAAyB4G,IACvChD,GAA4B,QAAd5D,GAAuB2G,GAErCO,EAAmBJ,GAAyBE,GAE9CR,GAAeK,GAAuBK,K,EAEnClB,SAAU,GAEXQ,GAAeK,K,EACLX,EAAU/nG,EAAQ,IAG5B+oG,I,EACUvB,GAAqB3F,I,EAG9BP,UAAYA,GAAaO,EAAY,IAAMA,EAAY,I,EAIvDnC,QAAQqB,OAAbyF,GAAAA,GACKjzF,EAAKmsF,QAAQqB,OACboB,GACD5uF,EAAKgC,SAASwrF,OACdxtF,EAAKmsF,QAAQ5C,UACbvpF,EAAK+tF,Y,EAIFsB,GAAarvF,EAAKgC,SAAS25E,UAAW37E,EAAM,YAGhDA,ECzIT,SAAwBy1F,GAAaz1F,G,MACLA,EAAKmsF,QAA3BqB,EADiC,EACjCA,OAAQjE,EADyB,EACzBA,UACVwE,EAAY/tF,EAAK+tF,UAAU/kF,MAAM,KAAK,GACtCrN,EAAQvF,KAAKuF,MACbu2F,GAAuD,IAA1C,CAAC,MAAO,UAAUr5F,QAAQk1F,GACvC9C,EAAOiH,EAAa,QAAU,SAC9ByB,EAASzB,EAAa,OAAS,MAC/B/C,EAAc+C,EAAa,QAAU,S,OAEvC1E,EAAOvC,GAAQtvF,EAAM4tF,EAAUoK,M,EAC5BxH,QAAQqB,OAAOmG,GAClBh4F,EAAM4tF,EAAUoK,IAAWnG,EAAO2B,IAElC3B,EAAOmG,GAAUh4F,EAAM4tF,EAAU0B,M,EAC9BkB,QAAQqB,OAAOmG,GAAUh4F,EAAM4tF,EAAU0B,KAGzCjrF,ECRT,SAAgB01F,GAAQlrF,EAAK2kF,EAAaJ,EAAeF,G,IAEjD7lF,EAAQwB,EAAIlC,MAAM,6BAClBjc,GAAS2c,EAAM,GACfsoF,EAAOtoF,EAAM,G,IAGd3c,E,OACIme,E,GAGiB,IAAtB8mF,EAAKz4F,QAAQ,KAAY,C,IACvBoD,OAAAA,E,OACIq1F,G,IACD,K,EACOvC,E,UAEP,I,IACA,K,UAEOF,E,IAGRxD,EAAOa,GAAcjwF,G,OACpBovF,EAAK8D,GAAe,IAAM9iG,EAC5B,GAAa,OAATilG,GAA0B,OAATA,EAAe,C,IAErC/xF,OAAAA,E,SACS,OAAT+xF,EACKl7F,KAAKkF,IACVwK,SAASgmC,gBAAgBugD,aACzB9jF,OAAO6kF,aAAe,GAGjBh3F,KAAKkF,IACVwK,SAASgmC,gBAAgBsgD,YACzB7jF,OAAO4kF,YAAc,GAGlB5tF,EAAO,IAAMlT,E,OAIbA,EAeX,SAAgBspG,GACd3gG,EACA+5F,EACAF,EACA+G,G,IAEMzJ,EAAU,CAAC,EAAG,GAKd0J,GAA0D,IAA9C,CAAC,QAAS,QAAQh9F,QAAQ+8F,GAItCE,EAAY9gG,EAAOgU,MAAM,WAAWnP,KAAI,SAAAk8F,G,OAAQA,EAAK54E,UAIrD64E,EAAUF,EAAUj9F,QACxBoB,GAAK67F,GAAW,SAAAC,G,OAAiC,IAAzBA,EAAKz1D,OAAO,YAGlCw1D,EAAUE,KAAiD,IAArCF,EAAUE,GAASn9F,QAAQ,M,GAC3C2iC,KACN,gF,IAMEy6D,EAAa,cACfC,GAAmB,IAAbF,EACN,CACEF,EACGp6F,MAAM,EAAGs6F,GACT/qG,OAAO,CAAC6qG,EAAUE,GAAShtF,MAAMitF,GAAY,KAChD,CAACH,EAAUE,GAAShtF,MAAMitF,GAAY,IAAIhrG,OACxC6qG,EAAUp6F,MAAMs6F,EAAU,KAG9B,CAACF,G,SAGCI,EAAIr8F,KAAI,SAACs8F,EAAI1pG,G,IAEX0iG,GAAyB,IAAV1iG,GAAeopG,EAAYA,GAC5C,SACA,QACAO,GAAoB,E,OAEtBD,EAGG1lD,QAAO,SAAC3jC,EAAGC,G,MACc,KAApBD,EAAEA,EAAEngB,OAAS,KAAwC,IAA3B,CAAC,IAAK,KAAKkM,QAAQkU,I,EAC7CD,EAAEngB,OAAS,GAAKogB,E,GACE,EACbD,GACEspF,G,EACPtpF,EAAEngB,OAAS,IAAMogB,E,GACC,EACbD,GAEAA,EAAE7hB,OAAO8hB,KAEjB,IAEFlT,KAAI,SAAA2Q,G,OAAOkrF,GAAQlrF,EAAK2kF,EAAaJ,EAAeF,S,EAKvD33F,SAAQ,SAACi/F,EAAI1pG,G,EACZyK,SAAQ,SAAC6+F,EAAMM,GACZtmD,GAAUgmD,K,EACJtpG,IAAUspG,GAA2B,MAAnBI,EAAGE,EAAS,IAAc,EAAI,UAIvDlK,EAYT,SAAwBn3F,GAAOgL,EAAhB+yC,G,IAAwB/9C,EAAU,EAAVA,OAC7B+4F,EAA8C/tF,EAA9C+tF,U,EAA8C/tF,EAAnCmsF,QAAWqB,EADiB,EACjBA,OAAQjE,EADS,EACTA,UAChCqM,EAAgB7H,EAAU/kF,MAAM,KAAK,GAEvCmjF,OAAAA,E,SACAp8C,IAAW/6C,GACH,EAAEA,EAAQ,GAEV2gG,GAAY3gG,EAAQw4F,EAAQjE,EAAWqM,GAG7B,SAAlBA,G,EACKzpC,KAAOggC,EAAQ,G,EACf/wF,MAAQ+wF,EAAQ,IACI,UAAlByJ,G,EACFzpC,KAAOggC,EAAQ,G,EACf/wF,MAAQ+wF,EAAQ,IACI,QAAlByJ,G,EACFx6F,MAAQ+wF,EAAQ,G,EAChBhgC,KAAOggC,EAAQ,IACK,WAAlByJ,I,EACFx6F,MAAQ+wF,EAAQ,G,EAChBhgC,KAAOggC,EAAQ,I,EAGnBqB,OAASA,EACPxtF,ECrLT,SAAwBs2F,GAAgBt2F,EAAMrW,G,IACxC8jG,EACF9jG,EAAQ8jG,mBAAqB3D,GAAgB9pF,EAAKgC,SAASwrF,QAKzDxtF,EAAKgC,SAASunF,YAAckE,I,EACV3D,GAAgB2D,I,IAMhC8I,EAAgBpG,GAAyB,aACzCqG,EAAex2F,EAAKgC,SAASwrF,OAAO/2E,MAClC01C,EAA0CqqC,EAA1CrqC,IAAK/wD,EAAqCo7F,EAArCp7F,KAAuB++D,EAAcq8B,EAA9BD,G,EACPpqC,IAAM,G,EACN/wD,KAAO,G,EACPm7F,GAAiB,G,IAExB7I,EAAaH,GACjBvtF,EAAKgC,SAASwrF,OACdxtF,EAAKgC,SAASunF,UACd5/F,EAAQ6sE,QACRi3B,EACAztF,EAAK2vF,e,EAKMxjC,IAAMA,E,EACN/wD,KAAOA,E,EACPm7F,GAAiBp8B,E,EAEtBuzB,WAAaA,E,IAEfnD,EAAQ5gG,EAAQ8sG,SAClBjJ,EAASxtF,EAAKmsF,QAAQqB,OAEpB7gF,EAAQ,C,QAAA,SACJohF,G,IACF1hG,EAAQmhG,EAAOO,G,OAEjBP,EAAOO,GAAaL,EAAWK,KAC9BpkG,EAAQ+sG,sB,EAEDtgG,KAAKkF,IAAIkyF,EAAOO,GAAYL,EAAWK,K,MAEvCA,EAAY1hG,I,UATZ,SAWF0hG,G,IACFkB,EAAyB,UAAdlB,EAAwB,OAAS,MAC9C1hG,EAAQmhG,EAAOyB,G,OAEjBzB,EAAOO,GAAaL,EAAWK,KAC9BpkG,EAAQ+sG,sB,EAEDtgG,KAAKD,IACXq3F,EAAOyB,GACPvB,EAAWK,IACM,UAAdA,EAAwBP,EAAO3jC,MAAQ2jC,EAAO5jC,U,MAG3CqlC,EAAW5iG,K,SAInB6K,SAAQ,SAAA62F,G,IACN9C,GACoC,IAAxC,CAAC,OAAQ,OAAOpyF,QAAQk1F,GAAoB,UAAY,Y,QAC5CP,EAAW7gF,EAAMs+E,GAAM8C,O,EAGlC5B,QAAQqB,OAASA,EAEfxtF,EChFT,SAAwB2+B,GAAM3+B,G,IACtB+tF,EAAY/tF,EAAK+tF,UACjB6H,EAAgB7H,EAAU/kF,MAAM,KAAK,GACrC2tF,EAAiB5I,EAAU/kF,MAAM,KAAK,G,GAGxC2tF,EAAgB,C,MACY32F,EAAKmsF,QAA3B5C,EADU,EACVA,UAAWiE,EADD,EACCA,OACb0E,GAA2D,IAA9C,CAAC,SAAU,OAAOr5F,QAAQ+8F,GACvC3K,EAAOiH,EAAa,OAAS,MAC7B/C,EAAc+C,EAAa,QAAU,SAErC0E,EAAe,C,YACT3L,EAAO1B,EAAU0B,I,UAExBA,EAAO1B,EAAU0B,GAAQ1B,EAAU4F,GAAe3B,EAAO2B,K,EAIzDhD,QAAQqB,OAAbyF,GAAAA,GAA2BzF,EAAWoJ,EAAaD,I,OAG9C32F,ECnBT,SAAwB62F,GAAK72F,G,IACtBmzF,GAAmBnzF,EAAKgC,SAAS25E,UAAW,OAAQ,mB,OAChD37E,E,IAGHguF,EAAUhuF,EAAKmsF,QAAQ5C,UACvBuN,EAAQ78F,GACZ+F,EAAKgC,SAAS25E,WACd,SAAA8P,G,MAA8B,oBAAlBA,EAASr3F,QACrBs5F,W,GAGAM,EAAQ1pB,OAASwyB,EAAM3qC,KACvB6hC,EAAQ5yF,KAAO07F,EAAMz7F,OACrB2yF,EAAQ7hC,IAAM2qC,EAAMxyB,QACpB0pB,EAAQ3yF,MAAQy7F,EAAM17F,KACtB,C,IAEkB,IAAd4E,EAAK62F,K,OACA72F,E,EAGJ62F,MAAO,E,EACPtV,WAAW,uBAAyB,OACpC,C,IAEa,IAAdvhF,EAAK62F,K,OACA72F,E,EAGJ62F,MAAO,E,EACPtV,WAAW,wBAAyB,E,OAGpCvhF,EClCT,SAAwBshF,GAAMthF,G,IACtB+tF,EAAY/tF,EAAK+tF,UACjB6H,EAAgB7H,EAAU/kF,MAAM,KAAK,G,EACbhJ,EAAKmsF,QAA3BqB,EAH0B,EAG1BA,OAAQjE,EAHkB,EAGlBA,UACVyF,GAAwD,IAA9C,CAAC,OAAQ,SAASn2F,QAAQ+8F,GAEpCmB,GAA6D,IAA5C,CAAC,MAAO,QAAQl+F,QAAQ+8F,G,SAExC5G,EAAU,OAAS,OACxBzF,EAAUqM,IACTmB,EAAiBvJ,EAAOwB,EAAU,QAAU,UAAY,G,EAEtDjB,UAAYY,GAAqBZ,G,EACjC5B,QAAQqB,OAAStB,GAAcsB,GAE7BxtF,ECOT,OAAe,C,MASN,C,MAEE,I,SAEE,E,GAEL2+B,I,OAyCE,C,MAEC,I,SAEE,E,GAEL3pC,G,OAII,G,gBAoBO,C,MAER,I,SAEE,E,GAELshG,G,SAMM,CAAC,OAAQ,QAAS,MAAO,U,QAO1B,E,kBAMU,gB,aAYP,C,MAEL,I,SAEE,E,GAELb,I,MAaC,C,MAEE,I,SAEE,E,GAELvC,G,QAEK,a,KAcL,C,MAEG,I,SAEE,E,GAELtD,G,SAOM,O,QAKD,E,kBAOU,W,gBAQH,E,yBAQS,G,MAUpB,C,MAEE,I,SAEE,E,GAELtO,I,KAaA,C,MAEG,I,SAEE,E,GAELuV,I,aAkBQ,C,MAEL,I,SAEE,E,GAELpE,G,iBAMa,E,EAMd,S,EAMA,S,WAkBO,C,MAEH,I,SAEE,E,GAELjB,G,OAEIG,G,qBAOSxlG,ICzUrB,GAAe,C,UAKF,S,eAMI,E,eAMA,E,iBAOE,E,SAQP,a,SAUA,a,cChDS6qG,GAAAA,W,WASPzN,EAAWiE,G,WAAQ7jG,EAAc,uDAAJ,G,gBAyFzCwnG,eAAiB,W,OAAM3oC,sBAAsB9rB,EAAK+yD,S,KAvF3CA,OAASwH,GAASjtG,KAAKylG,OAAOn4F,KAAKtN,O,KAGnCL,QAALspG,GAAAA,GAAoB+D,EAAOE,SAAavtG,G,KAGnCgW,MAAQ,C,aACE,E,WACF,E,cACI,I,KAIZ4pF,UAAYA,GAAaA,EAAU4N,OAAS5N,EAAU,GAAKA,E,KAC3DiE,OAASA,GAAUA,EAAO2J,OAAS3J,EAAO,GAAKA,E,KAG/C7jG,QAAQgyF,UAAY,G,OAClBrnF,KAAP2+F,GAAAA,GACK+D,EAAOE,SAASvb,UAChBhyF,EAAQgyF,YACVzkF,SAAQ,SAAA9C,G,EACJzK,QAAQgyF,UAAUvnF,GAAvB6+F,GAAAA,GAEM+D,EAAOE,SAASvb,UAAUvnF,IAAS,GAEnCzK,EAAQgyF,UAAYhyF,EAAQgyF,UAAUvnF,GAAQ,O,KAKjDunF,UAAYvuF,OAAOkH,KAAKtK,KAAKL,QAAQgyF,WACvC9hF,KAAI,SAAAzF,G,mBAEAsoC,EAAK/yC,QAAQgyF,UAAUvnF,OAG3BsxB,MAAK,SAAC5Y,EAAGC,G,OAAMD,EAAEy9E,MAAQx9E,EAAEw9E,S,KAMzB5O,UAAUzkF,SAAQ,SAAA06F,GACjBA,EAAgBpC,SAAWxhE,GAAW4jE,EAAgBwF,S,EACxCA,OACd16D,EAAK6sD,UACL7sD,EAAK8wD,OACL9wD,EAAK/yC,QACLioG,EACAl1D,EAAK/8B,U,KAMN8vF,S,IAECwB,EAAgBjnG,KAAKL,QAAQsnG,cAC/BA,G,KAEGC,uB,KAGFvxF,MAAMsxF,cAAgBA,E,mDAMpBxB,GAAOplG,KAAKL,Q,uCAGZ0xF,GAAQrxF,KAAKL,Q,oDAGbknG,GAAqB7mG,KAAKL,Q,qDAG1BwmG,GAAsBnmG,KAAKL,U,EA1FjBgtG,GAAAA,GAoHZK,OAA2B,qBAAX9uF,OAAyBA,OAAS7a,EAAAA,GAAQ4pG,YApH9CN,GAsHZ7C,WAAaA,GAtHD6C,GAwHZE,SAAWA,G,UCpITK,GAAsB,YACtBC,GAAoB,UACpBC,GAAyB,eACzBC,GAAuB,aACvBC,GAAwB,cAExBC,GAAuB,aCNlC,SAASn+D,GAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASyzC,GAAkBzoC,EAAQ6gB,GAAS,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,IAAK,CAAE,IAAI8P,EAAamT,EAAMjjB,GAAI8P,EAAWL,WAAaK,EAAWL,aAAc,EAAOK,EAAW5X,cAAe,EAAU,UAAW4X,IAAYA,EAAWJ,UAAW,GAAMxW,OAAOtB,eAAewK,EAAQ0N,EAAW1X,IAAK0X,IAE7S,SAASg7B,GAAazxC,EAAa0xC,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxxC,EAAYrB,UAAW+yC,GAAiBC,GAAaH,GAAkBxxC,EAAa2xC,GAAc9xC,OAAOtB,eAAeyB,EAAa,YAAa,CAAEqW,UAAU,IAAiBrW,EAGxQ,IAAIsqG,GAAuB,WAChC,SAASA,EAAQz4F,GACf,IAAI04F,EAAY3iG,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAKpF,GAHAskC,GAAgBzvC,KAAM6tG,IAGjBz4F,EAEH,MAAM,IAAI9T,UAAU,wBAAwBL,OAAOjB,KAAKwK,YAAYJ,KAAM,4BAA4BnJ,OAAOkK,UAAUxI,OAAQ,YAKjIooB,GAAO/qB,KAAM6tG,EAAQX,SAAUltG,KAAKwK,YAAY0iG,SAAUY,EAAW,CACnE14F,KAAMA,IAGR8X,GAAiBltB,KAAM,CACrBoV,KAAMyxC,KACNknD,WAAYlnD,KACZmnD,YAAannD,KACbv6C,OAAQu6C,KACR02B,cAAe12B,KACfonD,UAAWpnD,KACXqnD,YAAarnD,OAGf,IAAIsnD,GAAmB,EAEvBnuG,KAAKunE,eAAiB,WAChBvnE,KAAK+tG,aACPI,GAAmB,IAMvBrsG,GAAe9B,KAAM,mBAAoB,CACvC2Z,YAAY,EACZjT,IAAK,WACH,OAAOynG,KAoBb,OAfAn5D,GAAa64D,EAAS,KAAM,CAAC,CAC3BvrG,IAAK,WACLoE,IAAK,WACH,MAAO,CACL0O,KAAM,GACN24F,YAAY,EACZC,YAAa,KACb1hG,OAAQ,KACRixE,cAAe,KACf0wB,UAAW,KACXC,YAAa,UAKZL,EA7DyB,GCFvBO,GAAgB3lD,EAAAA,WAAAA,OAAW,CACpCzyC,KAAM,WACJ,MAAO,CACLq4F,mBAAmB,IAGvBvjC,MAAO,CACLujC,kBAAmB,SAA2BtjC,EAAU+I,GAClD/I,IAAa+I,IACf5M,GAASlnE,KAAKsuG,gBAAiBtuG,KAAKuuG,kBAAmBvuG,KAAKwuG,iBAAkB53C,IAE1EmU,GACF/D,GAAQhnE,KAAKsuG,gBAAiBtuG,KAAKuuG,kBAAmBvuG,KAAKwuG,iBAAkB53C,OAKrF51D,aAAc,WAEZhB,KAAKsuG,gBAAkB,KACvBtuG,KAAKuuG,kBAAoB,MAE3BvxB,QAAS,WACFh9E,KAAKsuG,kBACRtuG,KAAKsuG,gBAAkBxyF,UAGpB9b,KAAKuuG,oBACRvuG,KAAKuuG,kBAAoB,SAGvBvuG,KAAKquG,mBACPrnC,GAAQhnE,KAAKsuG,gBAAiBtuG,KAAKuuG,kBAAmBvuG,KAAKwuG,iBAAkB53C,KAGjF0U,cAAe,WACbpE,GAASlnE,KAAKsuG,gBAAiBtuG,KAAKuuG,kBAAmBvuG,KAAKwuG,iBAAkB53C,KAEhF57C,QAAS,CACPyzF,WAAY,SAAoBn6E,GAC9B,OAAQirC,GAASv/D,KAAKm3E,IAAK7iD,EAAMhoB,SAEnCkiG,iBAAkB,SAA0Bl6E,GACtCt0B,KAAK0uG,iBAAmB1uG,KAAKyuG,WAAWn6E,IAC1Ct0B,KAAK0uG,gBAAgBp6E,OC7ClBq6E,GAAelmD,EAAAA,WAAAA,OAAW,CACnCzyC,KAAM,WACJ,MAAO,CACL44F,kBAAkB,IAGtB9jC,MAAO,CACL8jC,iBAAkB,SAA0B7jC,EAAU+I,GAChD/I,IAAa+I,IACf5M,GAASlnE,KAAK6uG,eAAgB,UAAW7uG,KAAK8uG,gBAAiBl4C,IAE3DmU,GACF/D,GAAQhnE,KAAK6uG,eAAgB,UAAW7uG,KAAK8uG,gBAAiBl4C,OAKtE51D,aAAc,WAEZhB,KAAK6uG,eAAiB,MAExB7xB,QAAS,WACFh9E,KAAK6uG,iBACR7uG,KAAK6uG,eAAiB/yF,UAGpB9b,KAAK4uG,kBACP5nC,GAAQhnE,KAAK6uG,eAAgB,UAAW7uG,KAAK8uG,gBAAiBl4C,KAGlE0U,cAAe,WACbpE,GAASlnE,KAAK6uG,eAAgB,UAAW7uG,KAAK8uG,gBAAiBl4C,KAEjE57C,QAAS,CACP8zF,gBAAiB,SAAyBx6E,GACpCt0B,KAAK+uG,gBACP/uG,KAAK+uG,eAAez6E,OCxC5B,SAAS/b,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAuB3M,IAAIgnF,GAAwBjnC,GAAiBrb,GAAeoJ,IACxDm5C,GAAyBlnC,GAAiBrb,GAAe2H,IAEzD66C,GAAsB,iBACtBC,GAAgB,CAAC,iBAAkB,oBAAoBt/F,KAAI,SAAUwwD,GACvE,MAAO,GAAGp/D,OAAOo/D,EAAU,sCAC1Bn/C,KAAK,MAGJkuF,GAAiB,SAAwBC,GAC3C,OAAQA,GAAO,IAAIv/F,OAAOwvD,KAIjBnyC,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIosC,IAAU,GAAI,CAG9FquB,SAAUzqC,GAAS,CAAC/f,GAAauS,IAAmB,gBACpD0I,SAAU8E,GAAS9N,IAAmB,GAEtCw4C,SAAU1qC,GAAS9N,IAAmB,GAEtCy4C,UAAW3qC,GAAS9N,IAAmB,GAEvC04C,OAAQ5qC,GAAS9N,IAAmB,GAEpC24C,OAAQ7qC,GAAS9N,IAAmB,GAGpC/rD,OAAQ65D,GAAS9M,GAAyB,GAC1C43C,WAAY9qC,GAAS1N,GAAkB,IAEvC9lD,MAAOwzD,GAAS9N,IAAmB,MAChCrK,IAGMkjD,GAAgBnnD,EAAAA,WAAAA,OAAW,CACpCkiB,OAAQ,CAACmW,GAASzM,GAAmB+5B,GAAeO,IACpD7zB,QAAS,WACP,MAAO,CACL+0B,WAAY7vG,OAGhB25E,OAAQ,CACNm2B,SAAU,CACR9qC,QAAS,OAGb73C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLi7E,SAAS,EACT8e,wBAAwB,IAG5BxjC,SAAU,CACRyjC,SAAU,WACR,OAAQtqD,GAAO1lD,KAAK8vG,WAEtBG,QAAS,WACP,IAAItnF,EAAS3oB,KAAKsoF,MAAM3/D,OACxB,OAAOA,EAASA,EAAOwuD,KAAOxuD,EAAS,MAEzCunF,eAAgB,WACd,OAAIlwG,KAAKyvG,OACA,SACEzvG,KAAKwvG,UACP,YACExvG,KAAKuvG,SACP,WAGF,IAETY,cAAe,WAIb,MAAyB,iBAAlBnwG,KAAKsvG,UAAgCtvG,KAAKgwG,SAA+B,GAApB,mBAE9DI,UAAW,WACT,OAAOpwG,KAAKgwG,SAAWnuD,EAAoB,IAAM,GAAK,IAG1DipB,MAAO,CACLmmB,QAAS,SAAiBlmB,EAAU+I,GAClC,GAAI9zE,KAAK+vG,uBACP/vG,KAAK+vG,wBAAyB,OAIhC,GAAIhlC,IAAa+I,EAAU,CACzB,IAAI7M,EAAY8D,EAAWlV,GAAkBvB,GACzC+7C,EAAU,IAAIxC,GAAQ5mC,EAAW,CACnC8mC,YAAY,EACZE,UAAWjuG,KACXsM,OAAQtM,KAAKsoF,MAAMgoB,KACnB/yB,cAAe,KACf2wB,YAAaluG,KAAKghF,OAAShhF,KAAKghF,SAAWhhF,KAAK4W,IAAM,OAIxD,GAFA5W,KAAKuwG,UAAUF,GAEXA,EAAQlC,iBAMV,OAJAnuG,KAAK+vG,wBAAyB,EAC9B/vG,KAAKixF,QAAUnd,OAEf9zE,KAAKg1E,KAAK3gB,GAAmBr0D,KAAKwwG,cAIhCzlC,EACF/qE,KAAKywG,WAELzwG,KAAK0wG,aAIX3wC,SAAU,SAAkBgL,EAAU+I,GAChC/I,IAAa+I,GAAY/I,GAAY/qE,KAAKixF,UAE5CjxF,KAAKixF,SAAU,KAIrB7lB,QAAS,WAEPprE,KAAK2wG,SAAW,KAChB3wG,KAAK4wG,cAAgB,MAIvBvoB,YAAa,WAEXroF,KAAKixF,SAAU,EACfjxF,KAAK6wG,iBAAgB,GACrB7wG,KAAK8wG,iBAEPxlC,cAAe,WACbtrE,KAAKixF,SAAU,EACfjxF,KAAK6wG,iBAAgB,GACrB7wG,KAAK8wG,gBACL9wG,KAAK+wG,oBAEP/1F,QAAS,CAEPu1F,UAAW,SAAmBF,GAC5B,IAAIj7F,EAAOi7F,EAAQj7F,KACnBpV,KAAKi1E,WAAWlN,GAAiBrb,GAAet3C,GAAOi7F,GACvDrwG,KAAKirE,MAAM71D,EAAMi7F,IAEnBI,SAAU,WACR,IAAI/9D,EAAQ1yC,KAEZ,IAAIA,KAAK+/D,SAAT,CAMA,IAAK//D,KAAKgwG,SACR,GAAsB,qBAAXhD,GAETx7D,GAAK,uDAAwDkb,QACxD,CAEL,IAAIh+C,EAAK1O,KAAKyvG,QAAUzvG,KAAKqR,OAASrR,KAAKgf,MAAQhf,KAAKm3E,IAAMn3E,KAAKsoF,MAAM3/D,OAEzEja,EAAKA,EAAGyoE,KAAOzoE,EAEf1O,KAAKgxG,aAAatiG,GAKtB1O,KAAKi1E,WAAW+5B,GAAuBhvG,MAEvCA,KAAK6wG,iBAAgB,GAErB7wG,KAAKmrE,WAAU,WAEbz4B,EAAMu+D,YAGNv+D,EAAMu4B,MAAMnV,SAGhB46C,SAAU,WACR1wG,KAAK6wG,iBAAgB,GACrB7wG,KAAKi1E,WAAWg6B,GAAwBjvG,MACxCA,KAAKirE,MAAM5W,IACXr0D,KAAK8wG,iBAEPE,aAAc,SAAsB/+F,GAClCjS,KAAK8wG,gBACL9wG,KAAK2wG,SAAW,IAAI3D,GAAO/6F,EAASjS,KAAKsoF,MAAMgoB,KAAMtwG,KAAKkxG,oBAG5DJ,cAAe,WACb9wG,KAAK2wG,UAAY3wG,KAAK2wG,SAASjf,UAC/B1xF,KAAK2wG,SAAW,MAIlBQ,aAAc,WACZ,IACEnxG,KAAK2wG,SAASxJ,iBACd,MAAOvlD,MAEXmvD,iBAAkB,WAChBvlC,aAAaxrE,KAAK4wG,eAClB5wG,KAAK4wG,cAAgB,MAEvBM,gBAAiB,WACf,IAAInN,EAAY0J,GAEZztG,KAAKyvG,OACP1L,EAAY/jG,KAAKqR,MAAQm8F,GAAoBD,GACpCvtG,KAAKwvG,UACdzL,EAAY4J,GACH3tG,KAAKuvG,SACdxL,EAAY6J,GACH5tG,KAAKqR,QACd0yF,EAAY2J,IAGd,IAAI0D,EAAe,CACjBrN,UAAWA,EACXpS,UAAW,CACT3mF,OAAQ,CACNA,OAAQhL,KAAKgL,QAAU,GAEzB46F,KAAM,CACJJ,SAAUxlG,KAAK0vG,UAIjBjM,EAAoBzjG,KAAKsvG,SAQ7B,OANI7L,IACF2N,EAAazf,UAAU2a,gBAAkB,CACvC7I,kBAAmBA,IAIhB98C,GAAUyqD,EAAcpxG,KAAK2vG,YAAc,KAGpDkB,gBAAiB,SAAyBQ,GAExCrxG,KAAKquG,kBAAoBgD,EAEzBrxG,KAAK4uG,iBAAmByC,EAExB,IAAIrgG,EAASqgG,EAAS,MAAQ,OAC9BrxG,KAAKS,MAAMuQ,GAAQg+F,GAAuBhvG,KAAKsxG,oBAEjDA,kBAAmB,SAA2BC,GACxCA,IAAOvxG,OACTA,KAAKixF,SAAU,IAInB7mB,KAAM,WACJ,IAAIyK,EAAS70E,KAETA,KAAK+/D,UAMTxB,IAAU,WACRsW,EAAOoc,SAAU,MAIrB4b,KAAM,WACJ,IAAI2E,EAAUrmG,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GAGzEnL,KAAK+/D,WAIT//D,KAAKixF,SAAU,EAEXugB,GAEFxxG,KAAK+0E,MAAM1gB,GAAmBr0D,KAAKwwG,gBAIvC7nF,OAAQ,SAAgB2L,GACtBA,EAAQA,GAAS,GAEjB,IAAIm9E,EAASn9E,EACTlf,EAAOq8F,EAAOr8F,KACdqjE,EAAUg5B,EAAOh5B,SAER,UAATrjE,GAA+B,YAATA,IAAgF,IAA1D,CAACs9D,GAAYO,GAAYT,IAAW3jE,QAAQ4pE,MAOxFz4E,KAAK+/D,SACP//D,KAAKixF,SAAU,GAIjBjxF,KAAKirE,MAAM9U,GAAmB7hC,GAC9B+yC,GAAU/yC,GAENt0B,KAAKixF,QACPjxF,KAAK6sG,MAAK,GAEV7sG,KAAKoqE,UAMTsnC,YAAa,SAAqBp9E,GAShC+yC,GAAU/yC,EAAO,CACfmzC,aAAa,KAIjB+V,UAAW,SAAmBlpD,GAC5B,IAAImkD,EAAUnkD,EAAMmkD,QAEhBA,IAAY9F,GAEd3yE,KAAK2xG,MAAMr9E,GACFmkD,IAAYjG,GAErBxyE,KAAKo9E,UAAU9oD,GAAO,GACbmkD,IAAYvF,IAErBlzE,KAAKo9E,UAAU9oD,GAAO,IAI1Bq9E,MAAO,SAAer9E,GAChBt0B,KAAKixF,UACPjxF,KAAKixF,SAAU,EACf5pB,GAAU/yC,GAEVt0B,KAAK+0E,MAAM1gB,GAAmBr0D,KAAKwwG,gBAIvCoB,aAAc,SAAsBt9E,GAE9Bt0B,KAAK+/D,SACP//D,KAAKixF,SAAU,EAIjBjxF,KAAKirE,MAAM7X,GAAkB9+B,IAG/Bu9E,YAAa,SAAqBv9E,GAChC,IAAI6zD,EAASnoF,KAETsM,EAASgoB,EAAMhoB,QAEftM,KAAKixF,SAAY1xB,GAASv/D,KAAKsoF,MAAMgoB,KAAMhkG,IAAYizD,GAASv/D,KAAKiwG,QAAS3jG,KAChFtM,KAAK+wG,mBACL/wG,KAAK4wG,cAAgBz7E,YAAW,WAC9B,OAAOgzD,EAAO0kB,SACb7sG,KAAKowG,aAIZ1B,gBAAiB,SAAyBp6E,GACxCt0B,KAAK6xG,YAAYv9E,IAGnBy6E,eAAgB,SAAwBz6E,GACtCt0B,KAAK6xG,YAAYv9E,IAGnB8oD,UAAW,SAAmB9oD,EAAOw9E,GACnC,IAAItpB,EAASxoF,KAGTsM,EAASgoB,EAAMhoB,QAEdtM,KAAKixF,SAAW38D,GAAS0pC,GAAQkxC,GAAqB5iG,KAK3D+6D,GAAU/yC,GACVt0B,KAAKmrE,WAAU,WACb,IAAIhvC,EAAQqsD,EAAOvL,WAEnB,KAAI9gD,EAAMx5B,OAAS,GAAnB,CAKA,IAAIF,EAAQ05B,EAAMttB,QAAQvC,GAEtBwlG,GAAMrvG,EAAQ,EAChBA,KACUqvG,GAAMrvG,EAAQ05B,EAAMx5B,OAAS,GACvCF,IAGEA,EAAQ,IAEVA,EAAQ,GAGV+lF,EAAOupB,UAAUtvG,EAAO05B,SAG5B41E,UAAW,SAAmBtvG,EAAO05B,GACnC,IAAIztB,EAAKytB,EAAMlsB,MAAK,SAAUvB,EAAIxE,GAChC,OAAOA,IAAMzH,KAEf6gE,GAAa50D,IAEfuuE,SAAU,WAER,OAAOmyB,GAAehvC,GAAU+uC,GAAenvG,KAAKsoF,MAAMgoB,QAE5DW,UAAW,WACT3tC,GAAatjE,KAAKsoF,MAAMgoB,OAE1BE,aAAc,WACZ,IAAI9nB,EAAS1oF,KAEbA,KAAKmrE,WAAU,WACb7H,GAAaolB,EAAOunB,gBCzd5B,SAAS13F,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAgBpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIosC,IAAU+wB,IAAgB,GAAI,CAC5H16B,MAAOzS,GAAS9N,IAAmB,GACnCvrC,KAAMq5C,GAASxN,IAEf46C,KAAMptC,GAAS9N,IAAmB,GAClCm7C,UAAWrtC,GAASrN,IACpB26C,QAASttC,GAAS9N,IAAmB,GACrC4U,KAAM9G,GAASxN,GAAkB,QACjC9hD,KAAMsvD,GAASxN,IACfr4C,MAAO6lD,GAAS9N,IAAmB,GACnCq7C,gBAAiBvtC,GAASxN,GAAkB,UAAU,SAAUh1D,GAC9D,OAAO85D,GAAc,CAAC,SAAU,SAAU,SAAU95D,MAEtDgwG,WAAYxtC,GAASrN,IACrB86C,UAAWztC,GAASxN,IACpBk7C,QAAS1tC,GAAS3M,IAClBs6C,aAAc3tC,GAASxN,IACvBoiB,KAAM5U,GAASxN,IACfo7C,YAAa5tC,GAAS1N,GAAkB,IACxCu7C,YAAa7tC,GAASrN,IACtBm7C,UAAW9tC,GAASxN,GAAkB,UAEtCu7C,WAAY/tC,GAASxN,GAAkB,mBACvCoT,QAAS5F,GAASxN,GAAkB,gBACjC3K,IAGMmmD,GAAyBpqD,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMsiD,GACNie,OAAQ,CAACmW,GAAS8uB,GAAenpC,IACjCt5C,MAAOA,GACPo/C,SAAU,CACRumC,gBAAiB,WACf,IAAIx7B,EAAQt3E,KAAKs3E,MACbt4D,EAAQhf,KAAKgf,MACjB,MAAO,CAAChf,KAAKkwG,eAAgBlwG,KAAKmwG,cAAe,CAC/C/lC,KAAMpqE,KAAKixF,QAIX,YAAajyE,IAAUs4D,EAGvB,SAAUA,GAASt4D,KAGvB+zF,YAAa,WACX,MAAO,CAAC/yG,KAAKkyG,UAAW,CACtB,sBAAuBlyG,KAAKqR,MAC5B+4D,KAAMpqE,KAAKixF,WAGf+hB,cAAe,WACb,IAAIh0F,EAAQhf,KAAKgf,MACjB,MAAO,CAAChf,KAAK0yG,YAAa,CACxB,wBAAyB1zF,EACzB,2BAA4Bhf,KAAKmyG,UAAYnzF,MAInD7f,OAAQ,SAAgB2B,GACtB,IAAImwF,EAAUjxF,KAAKixF,QACfxmB,EAAUzqE,KAAKyqE,QACfl1D,EAAOvV,KAAKuV,KACZ+hE,EAAQt3E,KAAKs3E,MACbvX,EAAW//D,KAAK+/D,SAChB/gD,EAAQhf,KAAKgf,MACb2sD,EAAO3rE,KAAK2rE,KACZkhC,EAAO7sG,KAAK6sG,KACZlkF,EAAS3oB,KAAK2oB,OACdsqF,EAAc,CAChBxoC,QAASA,EACTl1D,KAAMA,EACN+hE,MAAOA,EACPvX,SAAUA,GAERmzC,EAAkBlzG,KAAKsmE,cAAc9N,IACrC26C,EAAwBnzG,KAAKmmE,kBAAkB3N,IAA4B,GAAK8iB,GAAWt7E,KAAKwrB,KAAMxrB,KAAKy5E,MAC3G25B,EAAStyG,IAEb,GAAIke,EAAO,CACT,IAAIuzF,EAAUvyG,KAAKuyG,QACfD,EAAYtyG,KAAKsyG,UACjBF,EAAkBpyG,KAAKoyG,gBAEvBiB,EAAWx+D,GAAcA,GAAc,GAAIo+D,GAAc,GAAI,CAC/DxoC,QAASzqE,KAAKwyG,cAAgB/nC,IAK5B8nC,EACFc,EAAS5mG,GAAK8lG,EACLD,EACTe,EAASvlC,KAAOwkC,EACPF,IACTiB,EAASj+F,KAAOg9F,GAGlBgB,EAAStyG,EAAEw3E,GAAS,CAClB/P,MAAOvoE,KAAKqyG,WACZ7pC,MAAO,CACL5xD,GAAI5W,KAAKghF,OAAO,gBAElB7zD,MAAOkmF,EACP3qC,SAAUyqC,EACV/rC,GAAI,CACFqB,MAAOzoE,KAAK4xG,cAEd7lB,IAAK,UACJmnB,GAEHA,EAAkB,CAACpyG,EAAE,OAAQ,CAC3BynE,MAAO,CAAC,YACP,CAACvoE,KAAK4yG,cACTO,EAAwB,GAG1B,IAAIG,EAAoB,CAAC,OAAQ,UAAW,OAAQ,OAAQ,UACxDC,EAAUzyG,EAAEw3E,GAAS,CACvBhQ,YAAa,kBACbC,MAAOvoE,KAAKgzG,cACZxqC,MAAO3zB,GAAcA,GAAc,GAAI70C,KAAKyyG,aAAc,GAAI,CAE5D77F,GAAI5W,KAAKghF,OAAO,eAChB,gBAAiBsyB,EAAkB1kG,SAAS+8D,GAAQA,EAAO,QAC3D,gBAAiBt4D,GAAS49E,KAE5B9jE,MAAO0nB,GAAcA,GAAc,GAAIo+D,GAAc,GAAI,CACvDr/F,IAAK5T,KAAK2yG,UACVr7B,MAAOA,IAAUt4D,IAEnB0pD,SAAUyqC,EACV/rC,GAAI,CACFosC,UAAWxzG,KAAK0xG,YAChBjpC,MAAO9/C,EACP6vD,QAAS7vD,GAGXojE,IAAK,UACJmnB,GACCO,EAAQ3yG,EAAE,KAAM,CAClBwnE,YAAa,gBACbC,MAAOvoE,KAAK+yG,YACZvqC,MAAO,CACLmD,KAAMA,EACN+K,SAAU,KACV,kBAAmB12E,KAAKghF,OAAOhiE,EAAQ,cAAgB,gBAEzDooD,GAAI,CACFoR,QAASx4E,KAAKw9E,WAGhBuO,IAAK,QACJ,EAAE/rF,KAAKiyG,MAAQhhB,EAAUjxF,KAAKsmE,cAAc3N,GAAmB,CAChEk0C,KAAMA,IACH/rG,MACL,OAAOA,EAAE,MAAO,CACdwnE,YAAa,sBACbC,MAAOvoE,KAAK8yG,gBACZtqC,MAAO,CACL5xD,GAAI5W,KAAKghF,WAEV,CAACoyB,EAAQG,EAASE,OCvLzB,SAASl7F,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAa3M,IAAIovD,GAAY1wB,GAAK2wB,GAAY,CAAC,QAAS,cAChClqD,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIuiC,IAAY,GAAI,CAChGs8B,UAAW7uC,GAASrN,IACpBiT,QAAS5F,GAASxN,OACftK,IAGM4mD,GAA6BlrD,EAAAA,WAAAA,OAAW,CACjDr+C,KAAM2iD,GACN4d,OAAQ,CAACwJ,GAAY1N,IACrBkT,OAAQ,CACNk2B,WAAY,CACV7qC,QAAS,OAGbkR,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CACRiK,cAAe,WACb,OAAO3hC,GAAcA,GAAc,GAAI70C,KAAKy2E,SAAU,GAAI,CACxD9K,KAAM,eAIZ3wD,QAAS,CACP44F,cAAe,WACb,IAAIlhE,EAAQ1yC,KAGZu+D,IAAU,WACJ7rB,EAAMm9D,YACRn9D,EAAMm9D,WAAWhD,MAAK,OAI5Bh2B,QAAS,SAAiBviD,GACxBt0B,KAAKirE,MAAM7X,GAAkB9+B,GAC7Bt0B,KAAK4zG,kBAGTz0G,OAAQ,SAAgB2B,GACtB,IAAI4yG,EAAY1zG,KAAK0zG,UACjBjpC,EAAUzqE,KAAKyqE,QACfuL,EAASh2E,KAAKg2E,OACdjW,EAAW//D,KAAK+/D,SAChB8W,EAAU72E,KAAK62E,QACfJ,EAAUz2E,KAAKy2E,QACnB,OAAO31E,EAAE,KAAM,CACbynE,MAAOkO,EAAQlO,MACf97C,MAAOgqD,EAAQhqD,MACf+7C,MAAO,CACLmD,KAAM,iBAEP,CAAC7qE,EAAEm1E,GAAO,CACX3N,YAAa,gBACbC,MAAO,CAACmrC,EAAW5+D,GAAgB,GAAI,QAAQ7zC,OAAOwpE,GAAUA,KAAauL,GAAUjW,KACvF5yC,MAAOi4C,GAAWgS,GAAWp3E,KAAKizF,QAClCzqB,MAAOxoE,KAAKw2E,cACZpP,GAAI,CACFqB,MAAOoO,GAETkV,IAAK,QACJ/rF,KAAKsmE,sBC/EZ,SAAS/tD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB,CACvCuQ,OAAQnR,GAAS9N,IAAmB,GACpCue,YAAazQ,GAASxN,GAAkB,UACxCw8C,YAAahvC,GAASrN,IACtBuI,SAAU8E,GAAS9N,IAAmB,GACtC0T,QAAS5F,GAASxN,KACjBrK,IAGQ8mD,GAAmCrrD,EAAAA,WAAAA,OAAW,CACvDr+C,KAAM4iD,GACN2d,OAAQ,CAACwJ,GAAY1N,IACrBkT,OAAQ,CACNk2B,WAAY,CACV7qC,QAAS,OAGbkR,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CACRiK,cAAe,WACb,OAAO3hC,GAAcA,GAAc,GAAI70C,KAAKy2E,SAAU,GAAI,CACxD9K,KAAM,WACNv2D,KAAM,SACN2qD,SAAU//D,KAAK+/D,aAIrB/kD,QAAS,CACP44F,cAAe,WACT5zG,KAAK6vG,YACP7vG,KAAK6vG,WAAWhD,MAAK,IAGzBh2B,QAAS,SAAiBviD,GACxBt0B,KAAKirE,MAAM7X,GAAkB9+B,GAC7Bt0B,KAAK4zG,kBAGTz0G,OAAQ,SAAgB2B,GACtB,IAAIioD,EAEAitB,EAASh2E,KAAKg2E,OACdvL,EAAUzqE,KAAKyqE,QACfgM,EAAUz2E,KAAKy2E,QACnB,OAAO31E,EAAE,KAAM,CACbynE,MAAOkO,EAAQlO,MACf97C,MAAOgqD,EAAQhqD,MACf+7C,MAAO,CACLmD,KAAM,iBAEP,CAAC7qE,EAAE,SAAU,CACdwnE,YAAa,gBACbC,MAAO,CAACvoE,KAAK6zG,aAAc9qD,EAAO,GAAIjU,GAAgBiU,EAAM/oD,KAAKs1E,YAAaU,GAASlhC,GAAgBiU,EAAM,QAAQ9nD,OAAOwpE,GAAUA,KAAauL,GAAUh2E,KAAK+/D,WAAYhX,IAC9Kyf,MAAOxoE,KAAKw2E,cACZpP,GAAI,CACFqB,MAAOzoE,KAAK62E,SAEdkV,IAAK,UACJ/rF,KAAKsmE,sBCzEZ,SAAS/tD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EASpM,IAAImF,GAAQs4C,GAAsB,CACvC7uD,GAAIiuD,GAASxN,IACbzjD,IAAKixD,GAASxN,GAAkB,UAChCoT,QAAS5F,GAASxN,KACjBvK,IAGQinD,GAA+BtrD,EAAAA,WAAAA,OAAW,CACnDr+C,KAAM0iD,GACNjtD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChB71D,EAAMuZ,EAAMvZ,IACZ62D,EAAUt9C,EAAMs9C,QACpB,OAAO3pE,EAAE,KAAM6pD,GAAUjE,GAAK1wC,EAAM,CAAC,UAAW,CAC9CwyD,MAAO,CACLmD,KAAM,kBAEN,CAAC7qE,EAAE8S,EAAK,CACV00D,YAAa,kBACbC,MAAOzzB,GAAgB,GAAI,QAAQ7zC,OAAOwpE,GAAUA,GACpDjC,MAAO3zB,GAAcA,GAAc,GAAI7+B,EAAKwyD,OAAS,IAAK,GAAI,CAC5D5xD,GAAIuW,EAAMvW,IAAM,KAChB+0D,KAAMvM,GAAMxrD,EAAK,UAAY,KAAO,YAEtCm4E,IAAK,UACJtiB,QC1CP,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAQpM,IAAImF,GAAQs4C,GAAsB,CACvC7xD,IAAKixD,GAASxN,GAAkB,OAC/B1K,IAGQqnD,GAAgCvrD,EAAAA,WAAAA,OAAW,CACpDr+C,KAAMuiD,GACN9sD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KAChB,OAAOlV,EAAE,KAAM6pD,GAAUjE,GAAK1wC,EAAM,CAAC,UAAW,CAC9CwyD,MAAO,CACLmD,KAAM,kBAEN,CAAC7qE,EAAEqsB,EAAMvZ,IAAK,CAChB00D,YAAa,mBACbE,MAAO3zB,GAAcA,GAAc,GAAI7+B,EAAKwyD,OAAS,IAAK,GAAI,CAC5DmD,KAAM,YACN,mBAAoB,eAEtBogB,IAAK,iBC7BA5+D,GAAQs4C,GAAsB,CACvC7uD,GAAIiuD,GAASxN,IACb48C,OAAQpvC,GAAS9N,IAAmB,GACpCm9C,WAAYrvC,GAAS9N,IAAmB,GACxCo9C,UAAWtvC,GAAS9N,IAAmB,IACtC5J,IAGQinD,GAAqB3rD,EAAAA,WAAAA,OAAW,CACzCr+C,KAAM+iD,GACNttD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAE,OAAQ6pD,GAAU30C,EAAM,CAC/BuyD,MAAO,CACL,cAAep7C,EAAM8mF,OACrB,gBAAiB9mF,EAAMgnF,WAEzB3rC,MAAO,CACL5xD,GAAIuW,EAAMvW,GACVs9F,WAAY/mF,EAAM+mF,cAElBzqC,MC9BR,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EASpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIw/D,IAAmB,GAAI,CACvGt0C,SAAU8E,GAAS9N,IAAmB,GACtCu9C,UAAWzvC,GAASrN,OACjB5K,IAGM2nD,GAA6B9rD,EAAAA,WAAAA,OAAW,CACjDr+C,KAAMwiD,GACN/sD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZuiE,EAAYxvB,EAAKwvB,UACjB9O,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAE,KAAM6pD,GAAUjE,GAAK1wC,EAAM,CAAC,QAAS,OAAQ,CACpDwyD,MAAO,CACLmD,KAAM,kBAEN,CAAC7qE,EAAEszG,GAAO,CACZ9rC,YAAa,kBACbC,MAAO,CAACp7C,EAAMmnF,UAAW,CACvBv0C,SAAU5yC,EAAM4yC,WAElB5yC,MAAOA,EACPq7C,MAAO3zB,GAAcA,GAAc,GAAI7+B,EAAKwyD,OAAS,IAAK,GAAI,CAC5DzI,SAAU5yC,EAAM4yC,SAEhB2W,SAAUvpD,EAAM4yC,SAAW,KAAO,OAEpCqH,GAAImR,EACJwT,IAAK,QACJtiB,QC7CP,SAAS30B,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAQpM,IAAImF,GAAQs4C,GAAsB,CACvC7xD,IAAKixD,GAASxN,GAAkB,KAChCm9C,UAAW3vC,GAASrN,IACpBiT,QAAS5F,GAASxN,KACjBpK,IAGQwnD,GAA6BhsD,EAAAA,WAAAA,OAAW,CACjDr+C,KAAM6iD,GACNptD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChB71D,EAAMuZ,EAAMvZ,IACZ4gG,EAAYrnF,EAAMqnF,UAClB/pC,EAAUt9C,EAAMs9C,QACpB,OAAO3pE,EAAE,KAAM6pD,GAAUjE,GAAK1wC,EAAM,CAAC,UAAW,CAC9CwyD,MAAO,CACLmD,KAAM,kBAEN,CAAC7qE,EAAE8S,EAAK,CACV00D,YAAa,kBACbC,MAAO,CAACisC,EAAW1/D,GAAgB,GAAI,QAAQ7zC,OAAOwpE,GAAUA,IAChEt9C,MAAOA,EACPq7C,MAAOxyD,EAAKwyD,OAAS,GACrBujB,IAAK,QACJtiB,QCpCP,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAYpM,IAAImF,GAAQs4C,GAAsB,CACvCivC,gBAAiB7vC,GAASxN,IAC1Bm2B,OAAQ3oB,GAASxN,IACjBs9C,cAAe9vC,GAASrN,IACxBgqB,UAAW3c,GAASxN,GAAkB,UACtCu9C,cAAe/vC,GAASxN,IACxBzgD,GAAIiuD,GAASxN,KACZxK,IAGQgoD,GAA8BpsD,EAAAA,WAAAA,OAAW,CAClDr+C,KAAMyiD,GACNhtD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZ2wD,EAAQ5d,EAAK4d,MACbD,EAAc3d,EAAK2d,YACnB9vD,EAAKuW,EAAMvW,GACX6zD,EAAUt9C,EAAMs9C,QAChB+iB,EAASrgE,EAAMqgE,OACfhM,EAAYr0D,EAAMq0D,UAClBnb,EAASM,IACTP,EAAeM,GAAe,GAC9B0pB,EAAY,GACZ0kB,EAAWl+F,EAAK,OAAO3V,OAAO2V,EAAI,oBAAsB,KACxDozE,EAAUlpF,IAad,OAXIqlE,GAAkB7M,GAAkB8M,EAAcC,IAAWmnB,KAC/DxD,EAAUlpF,EAAE0gF,EAAW,CACrBlZ,YAAa,kBACbC,MAAO,CAACp7C,EAAMwnF,cAAe7/D,GAAgB,GAAI,QAAQ7zC,OAAOwpE,GAAUA,IAC1EjC,MAAO,CACL5xD,GAAIk+F,EACJnpC,KAAMvM,GAAMoiB,EAAW,UAAY,KAAO,YAE3Clb,GAAchN,GAAkB82B,EAAWhqB,EAAcC,IAAWmnB,IAGlE1sF,EAAE,KAAM6pD,GAAUjE,GAAK1wC,EAAM,CAAC,UAAW,CAC9CwyD,MAAO,CACLmD,KAAM,kBAEN,CAACqe,EAASlpF,EAAE,KAAM,CACpBwnE,YAAa,gBACbE,MAAO3zB,GAAcA,GAAc,GAAI7+B,EAAKwyD,OAAS,IAAK,GAAI,CAC5D5xD,GAAIA,EACJ+0D,KAAM,QACN,mBAAoB,CAACmpC,EAAU3nF,EAAM4nF,iBAAiBjlG,OAAO23C,IAAUvmC,KAAK,KAAKiS,QAAU,QAE5FmzC,GAAc3N,GAAmBy3B,EAAWhqB,EAAcC,SC1D7D2uC,GAA8BxrD,GAAc,CAC9CR,WAAY,CACV6pD,UAAWA,GACXoC,IAAKpC,GACLc,cAAeA,GACfuB,QAASvB,GACTG,oBAAqBA,GACrBqB,iBAAkBrB,GAClBsB,cAAetB,GACfuB,WAAYvB,GACZC,gBAAiBA,GACjBuB,UAAWvB,GACXC,iBAAkBA,GAClBuB,WAAYvB,GACZO,cAAeA,GACfiB,QAASjB,GACTE,cAAeA,GACfgB,QAAShB,GACTI,eAAgBA,GAChBa,SAAUb,MC5Bd,SAAS//D,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAS3M,IAAI2tF,GAAQ,CAAC,SAAU,QAAS,QAAS,SAAU,MAAO,QAAS,cAExDxoF,GAAQs4C,GAAsB,CACvC4G,OAAQxH,GAASxN,GAAkB,SACnCzjD,IAAKixD,GAASxN,GAAkB,OAChCjiD,KAAMyvD,GAASxN,GAAkB,UAAU,SAAUh1D,GACnD,OAAO85D,GAAcw5C,GAAOtzG,OAE7B6qD,IAGQ0oD,GAAsBntD,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAM8iD,GACNrtD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChB4C,EAASl/C,EAAMk/C,OACnB,OAAOvrE,EAAEqsB,EAAMvZ,IAAK,CAClB00D,YAAa,mBACbC,MAAOzzB,GAAgB,GAAI,oBAAoB7zC,OAAOorE,GAASA,GAC/D0f,IAAK/1E,EAAK+1E,KACT,CAACjrF,EAAEqsB,EAAM/X,KAAMu1C,GAAUjE,GAAK1wC,EAAM,CAAC,QAAS,CAC/CsyD,YAAa,0BACXmB,QCjCJosC,GAA2BrsD,GAAc,CAC3CR,WAAY,CACV4sD,OAAQA,MCKRE,GAAgC,mFAEzB3oF,GAAQs4C,GAAsB,CACvCswC,cAAelxC,GAASxN,GAAkB,YAC1C2+C,UAAWnxC,GAASxN,GAAkB,QACtC13D,QAASklE,GAAStN,GAAwB,IAC1C0+C,UAAWpxC,GAASxN,GAAkB,QACtC6+C,WAAYrxC,GAASxN,GAAkB,UACtC,sBAGQ8+C,GAAmB1tD,EAAAA,WAAAA,OAAW,CACvCt7B,MAAOA,GACPo/C,SAAU,CACR6pC,YAAa,WACX,OAAOp2G,KAAKq2G,iBAAiBr2G,KAAKL,WAGtCqb,QAAS,CACPs7F,gBAAiB,SAAyBC,GACxC,IAAIj0G,EAAM6I,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAG9E,GAAI66C,GAAcuwD,GAAS,CACzB,IAAIl0G,EAAQqE,GAAI6vG,EAAQv2G,KAAKk2G,YACzBz8B,EAAO/yE,GAAI6vG,EAAQv2G,KAAKi2G,WAC5B,MAAO,CACL5zG,MAAOojD,GAAYpjD,GAASC,GAAOm3E,EAAOp3E,EAC1Co3E,KAAM4B,GAAU15E,OAAO8jD,GAAYg0B,GAAQn3E,EAAMm3E,IACjDjuD,KAAM9kB,GAAI6vG,EAAQv2G,KAAKg2G,WACvBj2C,SAAUhvD,QAAQrK,GAAI6vG,EAAQv2G,KAAK+1G,iBAKvC,MAAO,CACL1zG,MAAOC,GAAOi0G,EACd98B,KAAM4B,GAAU15E,OAAO40G,IACvBx2C,UAAU,IAGds2C,iBAAkB,SAA0B12G,GAC1C,IAAI+yC,EAAQ1yC,KAGZ,OAAIsS,GAAQ3S,GACHA,EAAQkQ,KAAI,SAAU0mG,GAC3B,OAAO7jE,EAAM4jE,gBAAgBC,MAEtBvwD,GAAcrmD,IAEvB6xC,GAAKskE,GAA+B91G,KAAKU,SAAS0J,MAE3CE,GAAK3K,GAASkQ,KAAI,SAAUvN,GACjC,OAAOowC,EAAM4jE,gBAAgB32G,EAAQ2C,IAAQ,GAAIA,OAO9C,OCtEb,SAASiW,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAWpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI2hE,IAAmB,GAAI,CACvG5/F,GAAIiuD,GAASxN,QAAkBl1D,GAAW,MAEvCmrD,IAGMmpD,GAA6BhuD,EAAAA,WAAAA,OAAW,CACjDr+C,KAAMkjD,GACNqd,OAAQ,CAACwrC,GAAkB1vC,IAC3Bt5C,MAAOA,GACPhuB,OAAQ,SAAgB2B,GACtB,IAAI8V,EAAK5W,KAAK4W,GACVlW,EAAWV,KAAKo2G,YAAYvmG,KAAI,SAAU0mG,EAAQ9zG,GACpD,IAAIJ,EAAQk0G,EAAOl0G,MACfo3E,EAAO88B,EAAO98B,KACdjuD,EAAO+qF,EAAO/qF,KACdu0C,EAAWw2C,EAAOx2C,SACtB,OAAOj/D,EAAE,SAAU,CACjB0nE,MAAO,CACLnmE,MAAOA,EACP09D,SAAUA,GAEZ2I,SAAU4S,GAAW9vD,EAAMiuD,GAC3Bn3E,IAAK,UAAUrB,OAAOwB,QAG1B,OAAO3B,EAAE,WAAY,CACnB0nE,MAAO,CACL5xD,GAAIA,IAEL,CAAClW,EAAUV,KAAKsmE,qBC7CvB,SAASxxB,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAOpM,ICPH4gD,GAAQ8tC,GDODvpF,GAAQs4C,GAAsB,CACvC7uD,GAAIiuD,GAASxN,IACb48C,OAAQpvC,GAAS9N,IAAmB,GACpCnjD,IAAKixD,GAASxN,GAAkB,SAChC8Q,YAAatD,GAASxN,GAAkB,UACvC/I,IAGQqoD,GAAyBluD,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMkkD,GACNzuD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCuyD,MAAOzzB,GAAgB,CACrB,aAAc3nB,EAAM8mF,QACnB,QAAQhzG,OAAOksB,EAAMg7C,aAAch7C,EAAMg7C,aAC5CK,MAAO,CACL5xD,GAAIuW,EAAMvW,MAEV6yD,MEzBGt8C,GAAQs4C,GAAsB,CACvCmxC,SAAU/xC,GAASxN,IACnBw/C,UAAWhyC,GAAS9N,IAAmB,GACvCngD,GAAIiuD,GAASxN,IACbsU,KAAM9G,GAASxN,IAEf1hD,MAAOkvD,GAAS9N,GAAmB,MACnCnjD,IAAKixD,GAASxN,GAAkB,OAChCy/C,QAASjyC,GAAS9N,IAAmB,IACpCpJ,IAGQopD,GAAoCtuD,EAAAA,WAAAA,OAAW,CACxDr+C,KAAMujD,GACN9tD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBqtC,EAAU3pF,EAAM2pF,QAChBF,EAAWzpF,EAAMypF,SACjBxsC,GAA2B,IAApBj9C,EAAM0pF,YAAsC,IAAhB1pF,EAAMxX,MAC7C,OAAO7U,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCuyD,MAAO,CACL,UAAW6B,EACX,oBAAqB0sC,EACrB,kBAAmBA,GAErBtuC,MAAO,CACL5xD,GAAIuW,EAAMvW,IAAM,KAChB+0D,KAAMx+C,EAAMw+C,MAAQ,KACpB,YAAairC,GAAY,KACzB,cAAeA,EAAW,OAAS,QAEnCntC,MCnCGt8C,GAAQs4C,GAAsB,CACvCmxC,SAAU/xC,GAASxN,IACnBw/C,UAAWhyC,GAAS9N,IAAmB,GACvCngD,GAAIiuD,GAASxN,IACbsU,KAAM9G,GAASxN,IAEf1hD,MAAOkvD,GAAS9N,GAAmB,MACnCnjD,IAAKixD,GAASxN,GAAkB,OAChCy/C,QAASjyC,GAAS9N,IAAmB,IACpCtI,IAGQuoD,GAAkCvuD,EAAAA,WAAAA,OAAW,CACtDr+C,KAAMqkD,GACN5uD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBqtC,EAAU3pF,EAAM2pF,QAChBF,EAAWzpF,EAAMypF,SACjBxsC,GAA2B,IAApBj9C,EAAM0pF,YAAsC,IAAhB1pF,EAAMxX,MAC7C,OAAO7U,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCuyD,MAAO,CACL,UAAW6B,EACX,kBAAmB0sC,EACnB,gBAAiBA,GAEnBtuC,MAAO,CACL5xD,GAAIuW,EAAMvW,IAAM,KAChB+0D,KAAMx+C,EAAMw+C,MAAQ,KACpB,YAAairC,GAAY,KACzB,cAAeA,EAAW,OAAS,QAEnCntC,MCnCGt8C,GAAQs4C,GAAsB,CACvC7xD,IAAKixD,GAASxN,GAAkB,QAC/BtJ,IAGQkpD,GAAwBxuD,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAM2jD,GACNluD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,aACXmB,MCbJytC,GAA0B1tD,GAAc,CAC1CR,WAAY,CACVorD,MAAOA,GACPqC,cAAeA,GACfU,UAAWV,GACXE,UAAWA,GACXI,qBAAsBA,GACtBK,cAAeL,GACfC,mBAAoBA,GAEpBC,SAAUA,MCfHI,GAAe,SAAsBxmG,EAAOxO,GACrD,IAAK,IAAI6H,EAAI,EAAGA,EAAI2G,EAAMlO,OAAQuH,IAChC,GAAIkpE,GAAWviE,EAAM3G,GAAI7H,GACvB,OAAO6H,EAIX,OAAQ,GCJNotG,GAAW,0BAEJnqF,GAAQs4C,GAAsB,CACvC8xC,UAAW1yC,GAAS9N,IAAmB,GACvCgJ,SAAU8E,GAAS9N,IAAmB,GACtCygD,KAAM3yC,GAASxN,IACfzgD,GAAIiuD,GAASxN,IACbjtD,KAAMy6D,GAASxN,IACf1/B,SAAUktC,GAAS9N,IAAmB,IACrC,gBAGQ0gD,GAAmBhvD,EAAAA,WAAAA,OAAW,CACvCt7B,MAAOA,GACP6vD,QAAS,WACPh9E,KAAK03G,mBAIPtvB,UAAW,WACTpoF,KAAK03G,mBAEP18F,QAAS,CACP08F,gBAAiB,WACf,IAAIhlE,EAAQ1yC,KAEZA,KAAKmrE,WAAU,WACb5M,IAAU,WACR,IAAI7vD,EAAKgkC,EAAMykC,IAEXzkC,EAAM6kE,WAAaj4C,GAAU5wD,KAC1BkvD,GAAQlvD,EAAI4oG,MACf5oG,EAAK+xD,GAAO62C,GAAU5oG,IAGxB40D,GAAa50D,cCpCdye,GAAQs4C,GAAsB,CACvCkyC,MAAO9yC,GAAS9N,IAAmB,IAClC,gBAGQ6gD,GAAkBnvD,EAAAA,WAAAA,OAAW,CACtCt7B,MAAOA,GACPo/C,SAAU,CACR5yB,OAAQ,WACN,OAAQ35C,KAAK23G,UCTRxqF,GAAQs4C,GAAsB,CACvClwD,KAAMsvD,GAASxN,KACd,gBAGQwgD,GAAgBpvD,EAAAA,WAAAA,OAAW,CACpCt7B,MAAOA,GACPo/C,SAAU,CACRurC,cAAe,WACb,MAAO,CAAC93G,KAAKuV,KAAO,gBAAgBtU,OAAOjB,KAAKuV,MAAQ,UCAnD4X,GAAQs4C,GAAsB,CAEvC9vD,MAAOkvD,GAAS9N,GAAmB,OAClC,aAGQghD,GAAiBtvD,EAAAA,WAAAA,OAAW,CACrCt7B,MAAOA,GACPo/C,SAAU,CACRyrC,cAAe,WAEb,OAAOpyD,GAAU5lD,KAAK2V,OAAS3V,KAAK2V,MAAQ,MAE9CsiG,WAAY,WACV,IAAItiG,EAAQ3V,KAAKg4G,cACjB,OAAiB,IAAVriG,EAAiB,YAAuB,IAAVA,EAAkB,aAAe,MAExEuiG,oBAAqB,WACnB,IAAIC,EAAcn4G,KAAKm4G,YAEvB,OAAoB,IAAhBA,GAAwC,SAAhBA,GAA0C,KAAhBA,IAIxB,IAAvBn4G,KAAKg4G,cAHH,OAGsCG,MTnCrD,SAAS5/F,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAmB3M,IUzBIowF,GVyBAtuC,GAAkBlE,GAAe,UAAW,CAC9Cpe,aAAc,OAEZuiB,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAI5BnH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAaqqC,IAAmBgE,IAAgBC,IAAiBC,IAAkB,GAAI,CACvPrwC,UAAWrD,GAASxN,IACpBmhD,eAAgB3zC,GAASxN,IAEzB6gB,OAAQrT,GAAS9N,IAAmB,GAEpC0hD,cAAe5zC,GAASxN,IACxB48C,OAAQpvC,GAAS9N,IAAmB,GACpC10D,MAAOwiE,GAAShO,OACb,0BAGM6hD,GAAsBjwD,EAAAA,WAAAA,OAAW,CAC1CkiB,OAAQ,CAACwJ,GAAY2M,GAAS/W,GAAYtD,GAAoBgxC,GAAkBI,GAAeE,GAAgBH,IAC/G1hC,cAAc,EACd/oD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL2iG,aAAc34G,KAAK44G,QAAU54G,KAAK64G,QAAQ5uC,IAAmBjqE,KAAKiqE,IAClE6uC,UAAU,IAGdvsC,SAAU,CACRwsC,qBAAsB,CACpBryG,IAAK,WACH,OAAO1G,KAAK44G,QAAU54G,KAAK64G,QAAQF,aAAe34G,KAAK24G,cAEzD7wG,IAAK,SAAazF,GACZrC,KAAK44G,QACP54G,KAAK64G,QAAQF,aAAet2G,EAE5BrC,KAAK24G,aAAet2G,IAI1B22G,UAAW,WACT,OAAO5lC,GAAWpzE,KAAKqC,MAAOrC,KAAK+4G,uBAErCE,QAAS,WACP,OAAO,GAETL,QAAS,WAEP,QAAS54G,KAAK64G,SAEhBK,UAAW,WAET,OAAOl5G,KAAK44G,QAAU54G,KAAK64G,QAAQM,QAAUn5G,KAAKk4E,QAEpDkhC,QAAS,WACP,OAAOp5G,KAAKk5G,YAAoBl5G,KAAK44G,QAAU54G,KAAK64G,QAAQlB,MAAQ33G,KAAK23G,QAE3E0B,SAAU,WACR,OAAOr5G,KAAKk5G,YAAqBl5G,KAAKo5G,SAExCE,SAAU,WAER,QAAOt5G,KAAKk5G,WAAal5G,KAAKi5G,SAAWj5G,KAAKo5G,WAAkBp5G,KAAK44G,QAAU54G,KAAK64G,QAAQU,SAAWv5G,KAAKw5G,SAE9GC,SAAU,WACR,OAAOz5G,KAAK44G,QAAU54G,KAAK64G,QAAQ5E,OAASj0G,KAAKi0G,QAEnDn0C,WAAY,WAEV,OAAO9/D,KAAK44G,SAAU54G,KAAK64G,QAAQ94C,UAA4B//D,KAAK+/D,UAEtEwpC,WAAY,WAIV,OAAOvpG,KAAK05G,eAAiB15G,KAAK44G,QAAU54G,KAAK64G,QAAQlhF,SAAW33B,KAAK23B,WAE3E+hF,aAAc,WAEZ,OAAQ15G,KAAK44G,QAAU54G,KAAK64G,QAAQc,UAAY35G,KAAKoK,OAAS,MAEhEwvG,aAAc,WACZ,OAAQ55G,KAAK44G,QAAU54G,KAAK64G,QAAQrB,KAAOx3G,KAAKw3G,OAAS,MAE3D19B,aAAc,WACZ,OAAQ95E,KAAK44G,QAAU54G,KAAK64G,QAAQtjG,KAAOvV,KAAKuV,OAAS,IAE3DyiG,cAAe,WACb,OAAOh4G,KAAK44G,QAAU54G,KAAK64G,QAAQb,cAAgBpyD,GAAU5lD,KAAK2V,OAAS3V,KAAK2V,MAAQ,MAE1FkkG,sBAAuB,WAErB,IAAIpB,EAAgBz4G,KAAKy4G,cAEzB,OAAIA,IAIAz4G,KAAK44G,SAAW54G,KAAK64G,QAAQJ,cACxBz4G,KAAK64G,QAAQJ,cAGf,cAETqB,cAAe,WACb,IAAI/wD,EAEA+wB,EAAe95E,KAAK85E,aACxB,MAAO,CAAC,MAAO,OAAO74E,OAAOjB,KAAK65G,wBAAyB9wD,EAAO,GAAIjU,GAAgBiU,EAAM,OAAO9nD,OAAO64E,GAAeA,GAAehlC,GAAgBiU,EAAM,WAAY/oD,KAAK8/D,YAAahrB,GAAgBiU,EAAM,SAAU/oD,KAAKg5G,WAAYlkE,GAAgBiU,EAAM,QAAS/oD,KAAK84G,UAAW/vD,KAE9RytB,cAAe,WACb,IAAIzW,EAAW//D,KAAK8/D,WAChBnoC,EAAW33B,KAAKupG,WACpB,OAAO10D,GAAcA,GAAc,GAAI70C,KAAKy2E,SAAU,GAAI,CACxD7/D,GAAI5W,KAAKghF,SACT5rE,KAAMpV,KAAKi5G,QAAU,QAAU,WAC/B7uG,KAAMpK,KAAK05G,aACXlC,KAAMx3G,KAAK45G,aACX75C,SAAUA,EACVpoC,SAAUA,EACV,gBAAiBA,GAAY,KAC7B,aAAc33B,KAAKkoE,WAAa,KAChC,kBAAmBloE,KAAKw4G,gBAAkB,SAIhD1tC,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,WAC5DjqE,KAAK,GAAGiB,OAAOgpE,GAAiB,YAAY75D,MAAMpQ,KAAMmL,cACtD2pC,GAAgB8zB,GAAQ,wBAAwB,WAClD5oE,KAAK+5G,4BAA4B3pG,MAAMpQ,KAAMmL,cAC3Cy9D,IACJ5tD,SAAU07F,GAAW,GAAI5hE,GAAgB4hE,GAAU,GAAGz1G,OAAOgpE,GAAiB,YAAY,SAAiBc,GACpGqI,GAAWrI,EAAU/qE,KAAK+4G,wBAC7B/4G,KAAK+4G,qBAAuBhuC,MAE5Bj2B,GAAgB4hE,GAAU,+BAA+B,SAAqC3rC,EAAU+I,GACrGV,GAAWrI,EAAU+I,IACxB9zE,KAAKirE,MAAMf,GAAkBa,MAE7Bj2B,GAAgB4hE,GAAU,gBAAgB,SAAsBnoC,GAClE,IAAI77B,EAAQ1yC,KAERg6G,EAAUzrC,EAAMjiE,OAAO0tG,QACvB33G,EAAQrC,KAAKqC,MACbs2G,EAAeqB,EAAU33G,EAAQ,KACrCrC,KAAK+4G,qBAAuB12G,EAE5BrC,KAAKmrE,WAAU,WAEbz4B,EAAMu4B,MAAM/X,GAAmBylD,GAG3BjmE,EAAMkmE,SACRlmE,EAAMmmE,QAAQ5tC,MAAM/X,GAAmBylD,SAGzC7jE,GAAgB4hE,GAAU,eAAe,SAAqBpiF,GAG5DA,EAAMhoB,SACW,UAAfgoB,EAAMlf,KACRpV,KAAK84G,UAAW,EACQ,SAAfxkF,EAAMlf,OACfpV,KAAK84G,UAAW,OAGlBhkE,GAAgB4hE,GAAU,SAAS,WAChC12G,KAAK8/D,YACRwD,GAAatjE,KAAKsoF,MAAM75D,UAExBqmB,GAAgB4hE,GAAU,QAAQ,WAC/B12G,KAAK8/D,YACR0D,GAAYxjE,KAAKsoF,MAAM75D,UAEvBioF,IACJv3G,OAAQ,SAAgB2B,GACtB,IAAIm4G,EAAUj5G,KAAKi5G,QACfC,EAAYl5G,KAAKk5G,UACjBE,EAAUp5G,KAAKo5G,QACfC,EAAWr5G,KAAKq5G,SAChBI,EAAWz5G,KAAKy5G,SAChBH,EAAWt5G,KAAKs5G,SAChBx/B,EAAe95E,KAAK85E,aACpBrD,EAAUz2E,KAAKy2E,QACf3J,EAAW9sE,KAAKsmE,gBAChB2zC,EAASn5G,EAAE,QAAS,CACtBynE,MAAO,CAAC,CACN,mBAAoB6wC,EACpB,uBAAwBC,EAExB,kBAAmBD,IAAYtsC,GAC9BosC,EAAY,GAAKl5G,KAAKi4G,YACzBhvD,WAAY,CAAC,CACX7+C,KAAM,QACN/H,MAAOrC,KAAK+4G,uBAEdvwC,MAAOxoE,KAAKw2E,cACZ9N,SAAU,CACRrmE,MAAOrC,KAAKqC,MACZ23G,QAASh6G,KAAKg5G,WAEhB5xC,GAAIvyB,GAAc,CAChBqlE,OAAQl6G,KAAKm6G,cACZjB,EAAY,CACb31C,MAAOvjE,KAAK03E,YACZjU,KAAMzjE,KAAK03E,aACT,IACJp1E,IAAK,QACLypF,IAAK,UAGP,GAAImtB,EAAW,CACb,IAAIkB,EAAUt5G,EAAE,QAAS,CACvBynE,MAAOvoE,KAAK85G,eACX,CAACG,EAAQntC,IAUZ,OARK9sE,KAAK44G,UAGRwB,EAAUt5G,EAAE,MAAO,CACjBynE,MAAO,CAAC,mBAAoB,mBAC3B,CAAC6xC,KAGCA,EAKT,IAAIC,EAASv5G,IAcb,OAZMs4G,IAAYtsC,IAChButC,EAASv5G,EAAE,QAAS,CAClBynE,MAAO,CACL,mBAAoB6wC,EACpB,uBAAwBC,GAE1B7wC,MAAO,CACLyhB,IAAKjqF,KAAKghF,WAEXlU,IAGEhsE,EAAE,MAAO,CACdynE,MAAO,CAACzzB,GAAgB,CACtB,aAAcskE,EACd,oBAAqBA,GAAWK,EAChC,iBAAkBJ,EAClB,wBAAyBA,GAAYI,EACrC,kBAAmBJ,IAAaJ,IAAYK,EAC5C,gBAAiBA,EACjB,eAAgBD,GAAYJ,GAC3B,oBAAoBh4G,OAAO64E,GAAeA,IAAiBo/B,GAAYziC,EAAQlO,OAClF97C,MAAOgqD,EAAQhqD,OACd,CAACwtF,EAAQI,OU1RhB,SAAS9hG,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAa3M,ICnBI4gD,GDmBA0xC,GAAgC,gBAChCC,GAAiC/jD,GAA0B8jD,GAEpDntF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI2lE,IAAsB,IAAKpC,GAAiB,GAAItjE,GAAgBsjE,GAAgBkC,GAA+Bz1C,GAAS9N,IAAmB,IAASjiB,GAAgBsjE,GAAgB,SAAUvzC,GAAS9N,IAAmB,IAASjiB,GAAgBsjE,GAAgB,iBAAkBvzC,GAAShO,IAAe,IAAS/hB,GAAgBsjE,GAAgB,QAASvzC,GAAShO,IAAe,IAAQuhD,MAAmBhrD,IAGzdqtD,GAA6BhyD,EAAAA,WAAAA,OAAW,CACjDr+C,KAAMgjD,GACNud,OAAQ,CAAC+tC,IACT/+B,OAAQ,CACNk/B,QAAS,CACPnsG,KAAM,eACNs4D,QAAS,OAGb73C,MAAOA,GACPo/C,SAAU,CACRysC,UAAW,WACT,IAAI32G,EAAQrC,KAAKqC,MACb23G,EAAUh6G,KAAK+4G,qBACnB,OAAOzmG,GAAQ0nG,GAAW3C,GAAa2C,EAAS33G,IAAU,EAAI+wE,GAAW4mC,EAAS33G,IAEpF42G,QAAS,WACP,OAAO,IAGXnuC,MAAOh2B,GAAgB,GAAIwlE,IAA+B,SAAUvvC,EAAU+I,GACvEV,GAAWrI,EAAU+I,IACxB9zE,KAAK06G,iBAAiB3vC,MAG1BiS,QAAS,WAEPh9E,KAAK06G,iBAAiB16G,KAAKs6G,MAE7Bt/F,QAAS,CACP++F,4BAA6B,SAAqChvC,EAAU+I,GAC1E,IAAKV,GAAWrI,EAAU+I,GAAW,CACnC9zE,KAAKirE,MAAMf,GAAkBa,GAC7B,IAAIkvC,EAASj6G,KAAKsoF,MAAM75D,MAEpBwrF,GACFj6G,KAAKirE,MAAMsvC,GAAgCN,EAAOU,iBAIxDR,aAAc,SAAsBpxD,GAClC,IAAIrW,EAAQ1yC,KAER46G,EAAc7xD,EAAKz8C,OACnB0tG,EAAUY,EAAYZ,QACtBW,EAAgBC,EAAYD,cAC5Bt4G,EAAQrC,KAAKqC,MACbw4G,EAAiB76G,KAAK66G,eAEtBlC,EAAe34G,KAAK+4G,qBAExB,GAAIzmG,GAAQqmG,GAAe,CACzB,IAAIl2G,EAAQ40G,GAAasB,EAAct2G,GAEnC23G,GAAWv3G,EAAQ,EAErBk2G,EAAeA,EAAa13G,OAAOoB,IACzB23G,GAAWv3G,GAAS,IAE9Bk2G,EAAeA,EAAajnG,MAAM,EAAGjP,GAAOxB,OAAO03G,EAAajnG,MAAMjP,EAAQ,UAGhFk2G,EAAeqB,EAAU33G,EAAQw4G,EAGnC76G,KAAK+4G,qBAAuBJ,EAE5B34G,KAAKmrE,WAAU,WAEbz4B,EAAMu4B,MAAM/X,GAAmBylD,GAG3BjmE,EAAMkmE,SACRlmE,EAAMmmE,QAAQ5tC,MAAM/X,GAAmBylD,GAGzCjmE,EAAMu4B,MAAMsvC,GAAgCI,OAGhDD,iBAAkB,SAA0B/kG,GAEtCrD,GAAQtS,KAAK+4G,wBACfpjG,GAAQ,GAGV,IAAIskG,EAASj6G,KAAKsoF,MAAM75D,MAEpBwrF,IACFA,EAAOU,cAAgBhlG,EAEvB3V,KAAKirE,MAAMsvC,GAAgC5kG,QE7GxCwX,GAAQs4C,GAAsB+0C,GAAqB5sD,IAGnDktD,GAA0BryD,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAMwjD,GACN+c,OAAQ,CAAC+tC,IACT/+B,OAAQ,CACNk/B,QAAS,CACPnsG,KAAM,eACNs4D,SAAS,IAGb73C,MAAOA,GACP29C,MAAO,CACLiuC,qBAAsB,SAA8BhuC,EAAU+I,GACvDV,GAAWrI,EAAU+I,IACxB9zE,KAAKirE,MAAMf,GAAkBa,ODpBrC,SAASxyD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAqB3M,IE3BIowF,GF2BA2C,GAAkB,CAAC,mBAAoB,mBAEvCjxC,GAAkBlE,GAAe,WACjCmE,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAI5BnH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAaqqC,IAAmBmC,IAAmB6B,IAAgBC,IAAiBC,IAAkB,GAAI,CACxRJ,YAAatzC,GAASjN,IAA0B,GAEhD6gD,cAAe5zC,GAASxN,IAExB8hD,QAASt0C,GAAS9N,IAAmB,GACrC0Y,QAAS5K,GAAS9N,IAAmB,GACrCo9C,UAAWtvC,GAAS9N,IAAmB,MACpC,wBAGMikD,GAA2BvyD,EAAAA,WAAAA,OAAW,CAC/CkiB,OAAQ,CAACmW,GAAS/W,GAAYtD,GAAoBgxC,GAAkBtB,GAAkB0B,GAAeE,GAAgBH,IACrH1hC,cAAc,EACd/oD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL2iG,aAAc34G,KAAKiqE,MAGvBsC,SAAU,CACR0nC,OAAQ,WACN,OAAQj0G,KAAKyvE,SAEfkqC,UAAW,WAGT,OAAO35G,KAAKoK,MAAQpK,KAAKghF,UAE3Bi6B,aAAc,WACZ,IAAIhH,EAASj0G,KAAKi0G,OACd1+F,EAAOvV,KAAKuV,KACZ4+F,EAAYn0G,KAAKm0G,UACjB+G,EAAU,CACZ,gBAAiB/G,GAUnB,OAPIn0G,KAAKm5G,UACP+B,EAAU,CAACA,EAAS,mBAAoBpmE,GAAgB,CACtD,YAAam/D,EACb,sBAAuBA,GACtB,aAAahzG,OAAOsU,GAAOA,KAGzB2lG,IAGXpwC,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,GACjEqI,GAAWrI,EAAU/qE,KAAK24G,gBAC7B34G,KAAK24G,aAAe5tC,MAEpBj2B,GAAgB8zB,GAAQ,gBAAgB,SAAsBmC,EAAU+I,GACrEV,GAAWrI,EAAU+I,IACxB9zE,KAAKirE,MAAMf,GAAkBa,MAE7BnC,IACJzpE,OAAQ,SAAgB2B,GACtB,IAAI4xC,EAAQ1yC,KAERm7G,EAAen7G,KAAKm7G,aACpB3yC,EAAQhiB,GAAKxmD,KAAKo7G,OAAQL,IAC1BM,EAAkBF,EAAeL,GAAaL,GAC9Ca,EAAUt7G,KAAKo2G,YAAYvmG,KAAI,SAAU0mG,EAAQ9zG,GACnD,IAAIH,EAAM,aAAarB,OAAOwB,GAC9B,OAAO3B,EAAEu6G,EAAiB,CACxBluF,MAAO,CAEL4yC,SAAUw2C,EAAOx2C,WAAY,EAC7BnpD,GAAI87B,EAAMsuC,OAAO1+E,GACjBD,MAAOk0G,EAAOl0G,OAOhBmmE,MAAOA,EACPlmE,IAAKA,GACJ,CAACxB,EAAE,OAAQ,CACZ4nE,SAAU4S,GAAWi7B,EAAO/qF,KAAM+qF,EAAO98B,aAG7C,OAAO34E,EAAE,MAAO,CACdynE,MAAO,CAACvoE,KAAKi7G,aAAc,oBAC3BzyC,MAAO3zB,GAAcA,GAAc,GAAI6R,GAAK1mD,KAAKo7G,OAAQL,KAAmB,GAAI,CAC9E,eAAgB/6G,KAAKk4G,oBACrB,gBAAiBl4G,KAAK23B,SAAW,OAAS,KAC1C/gB,GAAI5W,KAAKghF,SACTrV,KAAMwvC,EAAe,aAAe,QAEpCzkC,SAAU,QAEX,CAAC12E,KAAKsmE,cAAcnN,IAAkBmiD,EAASt7G,KAAKsmE,qBE/H3D,SAAS/tD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EASpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI0mE,IAA2B,IAAKnD,GAAiB,GAAItjE,GAAgBsjE,GAAgBnuC,GAAiBpF,GAAS/N,GAAiB,KAAMhiB,GAAgBsjE,GAAgB,WAAYvzC,GAAS9N,IAAmB,IAASqhD,MAAmB/qD,IAGjTmuD,GAAkC/yD,EAAAA,WAAAA,OAAW,CACtDr+C,KAAMijD,GAENsd,OAAQ,CAACqwC,IACTlgC,QAAS,WACP,MAAO,CACL2gC,aAAcz7G,OAGlBmtB,MAAOA,GACPo/C,SAAU,CACR4uC,aAAc,WACZ,OAAO,MC3BTO,GAAkClyD,GAAc,CAClDR,WAAY,CACVyxD,cAAeA,GACfkB,UAAWlB,GACXmB,OAAQnB,GACRe,mBAAoBA,GACpBK,eAAgBL,GAChBM,YAAaN,MCJbpnC,GAAO,uBACP2nC,GAAa,aACbC,GAAa,aAEbC,GAAiB,SAAwBtnF,GAC3C,IAAIN,EAAW,SAAkBC,GAC/BK,EAAQL,EAAMlf,OAAS2mG,GAAYznF,IAIrC,OADAD,EAAS1hB,GAAKgiB,EACPN,GAGL6nF,GAAkB,SAAyB90C,EAAI14D,EAAI2lB,GACrD8yC,GAAWC,EAAI14D,EAAIqtG,GAAY1nF,EAAUuiC,IACzCuQ,GAAWC,EAAI14D,EAAIstG,GAAY3nF,EAAUuiC,KAIvC5M,GAAY,SAAmBt7C,EAAIq6C,GACrC,IAAIozD,EAAapzD,EAAK1mD,MAClBsyB,OAAyB,IAAfwnF,EAAwB,KAAOA,EAE7C,GAAIrtF,EAAY,CACd,IAAIuF,EAAW3lB,EAAG0lE,IACdgoC,EAAcp4E,GAAW3P,GACzBgoF,IAAmBD,GAAe/nF,EAAS1hB,KAAOgiB,GAElDynF,GAAeC,IACjBH,IAAgB,EAAOxtG,EAAI2lB,UACpB3lB,EAAG0lE,KAGRpwC,GAAWrP,IAAY0nF,IACzB3tG,EAAG0lE,IAAQ6nC,GAAetnF,GAC1BunF,IAAgB,EAAMxtG,EAAIA,EAAG0lE,QAMxBkoC,GAAU,CACnBhvG,KAAM08C,GACN6nC,iBAAkB7nC,GAClB8nC,OAAQ,SAAgBpjF,GACtBs7C,GAAUt7C,EAAI,CACZrM,MAAO,SCpDb,SAASkW,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAuBpM,IC3BH4gD,GD2BOz7C,GAAQy5B,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUo3B,IAAgBC,IAAiB5xD,GAAKsrD,GAAe,CAAC,cAAetrD,GAAK2tD,GAAkB,CAAC,eAAgB,GAAI,CAE7OkI,WAAY13C,GAAS9N,IAAmB,GAExC0hD,cAAe5zC,GAASxN,GAAkB,aAG1CmlD,eAAgB33C,GAASxN,IAEzBkrB,cAAe1d,GAASxN,IACxB60B,KAAMrnB,GAASxN,IAEf66C,UAAWrtC,GAASrN,IAEpBilD,YAAa53C,GAASxN,IACtBurB,SAAU/d,GAAS9N,IAAmB,GAEtCyuB,IAAK3gB,GAAS9N,GAAmB,MACjC10D,MAAOwiE,GAASxN,GAAkB,OAIzBqlD,GAAqCj0D,EAAAA,WAAAA,OAAW,CACzDr+C,KAAM+nD,GACNlJ,WAAY,CACV,UAAWqzD,IAEb3xC,OAAQ,CAACmW,GAAS+2B,GAAeE,GAAgBnI,GAAenpC,IAChEt5C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL2mG,WAAW,EACX7D,UAAU,IAGdvsC,SAAU,CACRqwC,SAAU,WACR,OAAO58G,KAAKghF,UAEd67B,QAAS,WACP,OAAO78G,KAAKghF,OAAO,YAErB87B,OAAQ,WACN,OAAO98G,KAAKghF,OAAO,aAErB+7B,UAAW,WACT,OAAO/8G,KAAKghF,OAAO,YAErBg8B,YAAa,WACX,OAAoB,IAAbh9G,KAAKwlF,IAAe,OAAqB,IAAbxlF,KAAKwlF,IAAgB,MAAQ,OAGpExqE,QAAS,CACPuoD,MAAO,WACAvjE,KAAK+/D,UACRuD,GAAatjE,KAAKsoF,MAAM3/D,SAG5B86C,KAAM,WACCzjE,KAAK+/D,UACRyD,GAAYxjE,KAAKsoF,MAAM3/D,SAG3Bs0F,SAAU,SAAkB3oF,GAC1Bt0B,KAAK84G,SAA0B,UAAfxkF,EAAMlf,MAExB8nG,YAAa,SAAqBC,GAChCn9G,KAAK28G,UAAYQ,IAGrBh+G,OAAQ,SAAgB2B,GACtB,IAAI8uE,EAEAgtC,EAAW58G,KAAK48G,SAChBC,EAAU78G,KAAK68G,QACfC,EAAS98G,KAAK88G,OACdC,EAAY/8G,KAAK+8G,UACjBh9C,EAAW//D,KAAK+/D,SAChB6iB,EAAW5iF,KAAK4iF,SAChBjrD,EAAW33B,KAAK23B,SAChBvtB,EAAOpK,KAAKoK,KACZuL,EAAQ3V,KAAK2V,MACbs7E,EAAUjxF,KAAKixF,QACf17E,EAAOvV,KAAKuV,KACZonG,EAAY38G,KAAK28G,UACjB7D,EAAW94G,KAAK84G,SAChBv2B,EAAgBviF,KAAKuiF,cACrBk2B,EAAgBz4G,KAAKy4G,cACrB8D,EAAav8G,KAAKu8G,WAClBl6G,EAAQgR,GAASrT,KAAKqC,QAAU,GAChC+6G,GAAoB,IAAVznG,GAAmBgiB,IAAat1B,EAC1Cg7G,EAAW,CACbV,UAAWA,EACX7D,SAAUA,EACVnjG,MAAOA,EACP2nG,OAAQrsB,GAENmpB,EAAUt5G,EAAE,SAAU,CACxBwnE,YAAa,MACbC,OAAQqH,EAAS,GAAI96B,GAAgB86B,EAAQ,OAAO3uE,OAAOw3G,GAAgB8D,GAAaznE,GAAgB86B,EAAQ,OAAO3uE,OAAOsU,GAAOA,GAAOu/B,GAAgB86B,EAAQ,UAAW2sC,GAAaznE,GAAgB86B,EAAQ,kBAAmB2sC,GAAaznE,GAAgB86B,EAAQ,2BAA4B2sC,GAAa3sC,GACrTpH,MAAO,CACL5xD,GAAIgmG,EACJxnG,KAAM,SACN2qD,SAAUA,EACV,gBAAiB,SACjB,gBAAiBkxB,EAAU,OAAS,QACpC,eAAgBmsB,EAAU,OAAS,KACnC,gBAAiBzlF,EAAW,OAAS,MAEvCsxB,WAAY,CAAC,CACX7+C,KAAM,UACN/H,MAAOrC,KAAKk9G,cAEd91C,GAAI,CACFosC,UAAWxzG,KAAK0xG,YAChBjpC,MAAOzoE,KAAK2oB,OACZ6vD,QAASx4E,KAAK2oB,OAEd,SAAU3oB,KAAKi9G,SACf,QAASj9G,KAAKi9G,UAEhBlxB,IAAK,UACJ,CAAC/rF,KAAKmmE,kBAAkB3N,IAA4Bx4D,KAAKsmE,cAAc9N,GAA0B6kD,GAEpGv8G,EAAEswE,GAAkB,CAClBjkD,MAAO,CACLmiD,MAAO,UAIPiuC,EAAUz8G,IAEVsJ,IAAS21D,IACXw9C,EAAUz8G,EAAE,QAAS,CACnB0nE,MAAO,CACLpzD,KAAM,SACNhL,KAAMA,GAAQ,KACdotG,KAAMx3G,KAAKw3G,MAAQ,KACnBn1G,MAAOA,MAMb,IAAIoxG,EAAQ3yG,EAAE,MAAO,CACnBwnE,YAAa,gBACbC,MAAO,CAACvoE,KAAKkyG,UAAW,CACtB9nC,KAAM6mB,EACN,sBAAuBjxF,KAAKqR,QAE9Bm3D,MAAO,CACL5xD,GAAIkmG,EACJnxC,KAAM,SACN+K,SAAU,KACV,aAAc,QACd,kBAAmBmmC,GAErBz1C,GAAI,CACFoR,QAASx4E,KAAKw9E,WAGhBuO,IAAK,QACJ,CAAC/rF,KAAKsmE,cAAc3N,GAAmB,CACxC2kD,OAAQrsB,MAGNopB,EAASv5G,EAAE,QAAS,CACtBynE,MAAOg0C,EAAa,UAClB,CAAC,eACH,CACE,cAAel6G,GACdrC,KAAKi4G,WAAYj4G,KAAK83G,eACzBtvC,MAAO,CACL5xD,GAAIimG,EACJ5yB,IAAK2yB,EACL,eAAgBQ,EAAU,OAAS,KACnC,gBAAiBzlF,EAAW,OAAS,MAEvCsxB,WAAY,CAAC,CACX7+C,KAAM,UACN/H,MAAOrC,KAAKk9G,cAEd91C,GAAI,CAGF,SAEA,SAAe9yC,GACb+yC,GAAU/yC,EAAO,CACfizC,gBAAgB,OAIrB,CAACllE,EAAQrC,KAAKw8G,gBAAkBn6G,EAAQrC,KAAKy8G,aAAe,GAC/Dp6G,GAASkgF,EAAgBzhF,EAAE,MAAO,CAChCwnE,YAAa,WACZia,GAAiB,KAEpB,OAAOzhF,EAAE,MAAO,CACdwnE,YAAa,oCACbC,MAAO,CAACvoE,KAAKkwG,eAAgBlwG,KAAKmwG,cAAe,CAAC,CAChD,YAAaoM,EACb,gBAAiBA,EACjBh5C,MAAOu1C,IAAayD,EACpBnyC,KAAM6mB,EACN,YAAsB,IAAVt7E,EACZ,cAAwB,IAAVA,GACb4mG,EAAa,KAAOv8G,KAAK83G,gBAC5BtvC,MAAO,CACL5xD,GAAImmG,EACJpxC,KAAM4wC,EAAa,KAAO,QAC1BrwB,KAAMlsF,KAAKksF,MAAQ,KACnB/G,IAAKnlF,KAAKg9G,YACV,gBAAiBj9C,EACjB,gBAAiB6iB,IAAa7iB,EAC9B,kBAAmB88C,EACnB,gBAA0B,IAAVlnG,GAAmBgiB,IAAat1B,EAAQ,OAAS,KACjE,gBAAiBs1B,EAAW,OAAS,OAEtC,CAACyiF,EAASmD,EAAS9J,EAAO4G,OCpPjC,SAAS9hG,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAmB3M,ICzBI4gD,GDyBAkB,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAMyiD,KAEJkS,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAGnCkpF,GAAgB92D,GAAK+2D,GAAgB,CAAC,QAAS,SAAU,KAAM,WAAY,kBAAmB,QAAS,UACvGC,GAA2Bh3D,GAAKi3D,GAA4B,CAAC,iBAAkB,KAAM,OAAQ,MAAO,UAC7FxwF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAawzC,IAAgBE,IAA2B,GAAI,CAEhME,cAAe/4C,GAASxN,GAAkB,SAC1CwmD,YAAah5C,GAAS9N,IAAmB,GACzC+mD,mBAAoBj5C,GAASxN,GAAkB,qBAE/C0mD,KAAMl5C,GAAS9N,IAAmB,GAClCinD,iBAAkBn5C,GAASxN,GAAkB,SAC7C4mD,iBAAkBp5C,GAASxN,GAAkB,SAC7C6mD,iBAAkBr5C,GAASxN,GAAkB,gBAC7C8mD,gBAAiBt5C,GAAS9N,IAAmB,GAC7CqnD,YAAav5C,GAAS9N,IAAmB,GACzCsnD,mBAAoBx5C,GAASxN,GAAkB,kBAC/CinD,WAAYz5C,GAAShN,IACrB0mD,YAAa15C,GAAS9N,IAAmB,GACzCynD,mBAAoB35C,GAASxN,GAAkB,sBAC5C9J,IAGMkxD,GAA+Bh2D,EAAAA,WAAAA,OAAW,CACnDr+C,KAAMmjD,GACNod,OAAQ,CAACmW,GAAS/W,IAClB58C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CAEL0oG,SAAU7/B,GAAU7+E,KAAKiqE,MAAqB,GAE9C3K,WAAW,EAEXq/C,YAAa,KACbz5B,OAAO,EACPs3B,eAAgB,GAChBj5B,UAAW,KAGfhX,SAAU,CACRqyC,WAAY,WAGV,OAAO5+G,KAAKujF,UAAU7xE,MAAM,GAAI,IAElCmtG,aAAc,WACZ,OAAQ7+G,KAAK2+G,aAAe,IAAI3qG,QAAQ,UAAW,KAAO,MAE5D8qG,mBAAoB,WAClB,OAAOjgC,GAAU4B,GAAczgF,KAAKs+G,cAAgB,KAGxDxzC,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,GACtE/qE,KAAK0+G,SAAW7/B,GAAU9T,IAAa,MACrCj2B,GAAgB8zB,GAAQ,YAAY,SAAkBmC,GAEpD/qE,KAAKs/D,WACPt/D,KAAKirE,MAAMf,GAAkBlqE,KAAKkjF,YAAc/E,GAASpT,IAAa,KAAOA,GAAY,OAEzFj2B,GAAgB8zB,GAAQ,cAAc,SAAoBmC,EAAU+I,GAItE,GAAI/I,IAAa+I,GAAYA,EAC3B,IACE9zE,KAAKsoF,MAAMy2B,QAAQ5N,eACnB,MAAOvvD,QAETgnB,IACJ5tD,QAAS,CAEPuoD,MAAO,WACAvjE,KAAK+/D,UACRuD,GAAatjE,KAAKsoF,MAAMy2B,UAG5Bt7C,KAAM,WACCzjE,KAAK+/D,UACRyD,GAAYxjE,KAAKsoF,MAAMy2B,UAI3BC,YAAa,SAAqBr5B,GAChC,IAAIjzC,EAAQ1yC,KAEZA,KAAK0+G,SAAW/4B,EAEX3lF,KAAKm+G,iBACRn+G,KAAKmrE,WAAU,WACbz4B,EAAM41C,MAAMy2B,QAAQlS,MAAK,OAI/BoS,WAAY,SAAoBt5B,GAC9B,IAAI9Q,EAAS70E,KAEbA,KAAKmrE,WAAU,WACb0J,EAAOmqC,YAAYr5B,OAGvBu5B,QAAS,SAAiBv5B,GACpB3lF,KAAK0+G,WAAa/4B,IACpB3lF,KAAK0+G,SAAW/4B,IAGpBw5B,UAAW,SAAmBtlE,GAC5B,IAAI0pC,EAAY1pC,EAAI0pC,UAChB2B,EAAQrrC,EAAIqrC,MACZ7F,EAASxlC,EAAIwlC,OACbiE,EAAczpC,EAAIypC,YAClB8B,EAAoBvrC,EAAIurC,kBAC5BplF,KAAKklF,MAAQA,EACbllF,KAAK2+G,YAAct/B,EACnBr/E,KAAKw8G,eAAiBp3B,EACtBplF,KAAK0+G,SAAWp7B,EAChBtjF,KAAKujF,UAAYA,EAEjBvjF,KAAKirE,MAAM3X,GAAoBzZ,IAEjCulE,cAAe,WAEbp/G,KAAKg/G,YAAYngC,GAAU4B,GAAcvC,KAAcl+E,KAAKmM,IAAKnM,KAAKsR,QAExE+tG,cAAe,WACbr/G,KAAKg/G,YAAYh/G,KAAK8+G,qBAExBQ,cAAe,WACbt/G,KAAKsoF,MAAMy2B,QAAQlS,MAAK,IAG1B0S,OAAQ,WACNv/G,KAAKs/D,WAAY,GAEnBkgD,QAAS,WACP,IAAIr3B,EAASnoF,KAEbA,KAAKmrE,WAAU,WACb7H,GAAa6kB,EAAOG,MAAMtJ,UAE1BmJ,EAAOld,MAAMnV,QAGjB2pD,SAAU,WACRz/G,KAAKs/D,WAAY,EACjBt/D,KAAKirE,MAAM5W,KAGbqrD,gBAAiB,SAAyB32D,GACxC,IAAI4zD,EAAY5zD,EAAK4zD,UACjB7D,EAAW/vD,EAAK+vD,SACpB,OAAO94G,KAAK2/G,eAAehD,GAAa7D,EAAW7nC,GAAoBD,GAAe,CACpFxI,MAAO,CACL,cAAe,YAKvBrpE,OAAQ,SAAgB2B,GACtB,IAAI49G,EAAW1+G,KAAK0+G,SAChB3+C,EAAW//D,KAAK+/D,SAChB6iB,EAAW5iF,KAAK4iF,SAChBm7B,EAAO/9G,KAAK+9G,KACZ9qB,EAASjzF,KAAKizF,OACd7sB,EAAepmE,KAAKomE,aACpBq2C,EAAc92D,GAAkB3lD,KAAKy8G,aAAez8G,KAAKmiF,oBAAsBniF,KAAKy8G,YAEpFhsB,EAAU,GAEd,GAAIzwF,KAAKu+G,YAAa,CACpB,IAAI72B,EAAQ1nF,KAAKk+G,iBACjBztB,EAAQzhF,KAAKlO,EAAEw3E,GAAS,CACtBnrD,MAAO,CACL4yC,SAAUA,GAAY6iB,EACtBrtE,KAAM,KACNk1D,QAASzqE,KAAKw+G,oBAEhBh2C,MAAO,CACL,aAAckf,GAAS,MAEzBtgB,GAAI,CACFqB,MAAOzoE,KAAKo/G,gBAEb13B,IAGL,GAAI1nF,KAAKo+G,YAAa,CACpB,IAAIwB,EAAS5/G,KAAKi+G,iBAClBxtB,EAAQzhF,KAAKlO,EAAEw3E,GAAS,CACtBnrD,MAAO,CACL4yC,SAAUA,GAAY6iB,EACtBrtE,KAAM,KACNk1D,QAASzqE,KAAKq+G,oBAEhB71C,MAAO,CACL,aAAco3C,GAAU,MAE1Bx4C,GAAI,CACFqB,MAAOzoE,KAAKq/G,gBAEbO,IAGL,GAAI5/G,KAAK69G,YAAa,CACpB,IAAIgC,EAAU7/G,KAAKg+G,iBACnBvtB,EAAQzhF,KAAKlO,EAAEw3E,GAAS,CACtBnrD,MAAO,CACL4yC,SAAUA,EACVxqD,KAAM,KACNk1D,QAASzqE,KAAK89G,oBAEhBt1C,MAAO,CACL,aAAcq3C,GAAW,MAE3Bz4C,GAAI,CACFqB,MAAOzoE,KAAKs/G,gBAEbO,IAGDpvB,EAAQ9tF,OAAS,IACnB8tF,EAAU,CAAC3vF,EAAE,MAAO,CAClBwnE,YAAa,wCACbC,MAAO,CACL,0BAA2BkoB,EAAQ9tF,OAAS,EAC5C,sBAAuB8tF,EAAQ9tF,OAAS,IAEzC8tF,KAGL,IAAIqvB,EAAYh/G,EAAEsiF,GAAW,CAC3B9a,YAAa,6BACbn7C,MAAO0nB,GAAcA,GAAc,GAAIuwB,GAAWo4C,GAAevqB,IAAU,GAAI,CAC7ExR,QAASzhF,KAAKs/D,UACdj9D,MAAOq8G,EACPx7B,aAAa,EACbrjB,MAAO7/D,KAAK49G,gBAEdx2C,GAAI,CACFic,SAAUrjF,KAAKi/G,WACfxwF,MAAOzuB,KAAKk/G,QACZn/G,QAASC,KAAKm/G,WAEhBz4C,YAAalgB,GAAK4f,EAAc,CAAC,kBAAmB,gBAAiB,iBAAkB,iBAAkB,iBAAkB,gBAAiB,oBAC5I9jE,IAAK,WACLypF,IAAK,YACJ0E,GACH,OAAO3vF,EAAE47G,GAAuB,CAC9Bp0C,YAAa,oBACbn7C,MAAO0nB,GAAcA,GAAc,GAAIuwB,GAAWs4C,GAA0BzqB,IAAU,GAAI,CACxFupB,eAAgBkC,EAAW1+G,KAAKw8G,eAAiB,GACjD5lG,GAAI5W,KAAKghF,SACTkL,KAAMlsF,KAAK6+G,aACX3M,UAAW,CAAC,CACV,UAAW6L,EACX,aAAcA,GACb/9G,KAAKkyG,WACRuK,YAAaA,EACbj3B,IAAKxlF,KAAKklF,MACV7iF,MAAOq8G,IAETt3C,GAAI,CACFgD,KAAMpqE,KAAKu/G,OACXQ,MAAO//G,KAAKw/G,QACZ/9B,OAAQzhF,KAAKy/G,UAEf/4C,YAAa5xB,GAAgB,GAAI0jB,GAA0B4N,EAAa5N,KAA6Bx4D,KAAK0/G,iBAC1G3zB,IAAK,WACJ,CAAC+zB,OE1SJE,GAAoCx2D,GAAc,CACpDR,WAAY,CACVy1D,gBAAiBA,GACjBwB,YAAaxB,MDHjB,SAASlmG,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EA8B3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAM,CAAC0hD,GAAiB1R,IACxBoC,aAAc,KACdud,UAAW,SAAmB1iE,GAE5B,MAAc,KAAVA,GACFmvC,GAAK0uE,GAA4B1yD,KAC1B,GAGF7H,GAAkBtjD,IAAU89G,GAAa99G,MAGhD0nE,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAEnC4rF,GAA6B,+FAE7BC,GAAe,SAASA,EAAa99G,GACvC,OAAO8jD,GAAO9jD,IAAUiQ,GAAQjQ,IAAUA,EAAM2N,OAAM,SAAUgsB,GAC9D,OAAOmkF,EAAankF,OAOpBokF,GAA2B,SAAkCpwF,GAC/D,OAAOgU,GAAWhU,EAAKqwF,YAAcrwF,EAAKqwF,aAAer8E,GAAWhU,EAAKswF,kBAAoBtwF,EAAKswF,mBAAqB,MAMrHC,GAAoB,SAA2BC,GACjD,IAAIC,IAAsBt1G,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,KAAmBA,UAAU,GACzF,OAAOme,QAAQqG,IAAI4wC,GAAUigD,GAAsB1wG,QAAO,SAAUkgB,GAClE,MAAqB,SAAdA,EAAKxZ,QACX3G,KAAI,SAAUmgB,GACf,IAAIpa,EAAQwqG,GAAyBpwF,GAErC,GAAIpa,EAAO,CACT,GAAIA,EAAM8qG,aAAeD,EACvB,OAAOE,GAA6B/qG,EAAMgrG,eAAgB,GAAG3/G,OAAO2U,EAAMxL,KAAM,MAC3E,GAAIwL,EAAMuwC,OACf,OAAO,IAAI78B,SAAQ,SAAUM,GAC3BhU,EAAMirG,MAAK,SAAUA,GACnBA,EAAKC,MAAQ,GACbl3F,EAAQi3F,SAMhB,OAAO,QACN/wG,OAAO23C,MAMRk5D,GAA+B,SAASA,EAA6BI,GACvE,IAAIrlG,EAAOvQ,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAO,IAAIme,SAAQ,SAAUM,GAC3B,IAAIo3F,EAAgB,GAEhBC,EAAuB,SAASA,IAClCF,EAAgBG,aAAY,SAAUlqG,GACb,IAAnBA,EAAQrU,OACVinB,EAAQN,QAAQqG,IAAIqxF,GAAel4F,MAAK,SAAU9R,GAChD,OAAOulD,GAAQvlD,QAGjBgqG,EAAchyG,KAAKsa,QAAQqG,IAAI3Y,EAAQnH,KAAI,SAAU+F,GACnD,GAAIA,EAAO,CACT,GAAIA,EAAM8qG,YACR,OAAOC,EAA6B/qG,EAAMgrG,eAAgB,GAAG3/G,OAAOya,GAAMza,OAAO2U,EAAMxL,KAAM,MACxF,GAAIwL,EAAMuwC,OACf,OAAO,IAAI78B,SAAQ,SAAUM,GAC3BhU,EAAMirG,MAAK,SAAUA,GACnBA,EAAKC,MAAQ,GAAG7/G,OAAOya,GAAMza,OAAO4/G,EAAKz2G,MACzCwf,EAAQi3F,SAMhB,OAAO,QACN/wG,OAAO23C,MACVw5D,SAKNA,QAKA9zF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAaqqC,IAAmBkE,IAAkBD,IAAiBD,IAAgB,GAAI,CAChP8I,OAAQt8C,GAASxN,GAAkB,IACnC+pD,WAAYv8C,GAASxN,GAAkB,UAEvC30C,QAASmiD,GAAS9N,IAAmB,GACrCsqD,UAAWx8C,GAAS9N,IAAmB,GACvCuqD,gBAAiBz8C,GAASxN,GAAkB,mBAC5CkqD,kBAAmB18C,GAAS5N,IAC5BuqD,SAAU38C,GAAS9N,IAAmB,GACtC0qD,OAAQ58C,GAAS9N,IAAmB,GACpC2qD,kBAAmB78C,GAASxN,GAAkB,eAS9CsqD,WAAY98C,GAAS9N,IAAmB,GACxC0lD,YAAa53C,GAASxN,GAAkB,qBACrC7J,IAGMo0D,GAAyBn5D,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMojD,GACNmd,OAAQ,CAACwJ,GAAY2M,GAAS/W,GAAYtD,GAAoBgxC,GAAkBM,GAAgBH,GAAiBnxC,IACjHyP,cAAc,EACd/oD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL6rG,MAAO,GACPC,UAAU,EAIVC,aAAc/hH,KAAKyhH,OACnB3I,UAAU,IAGdvsC,SAAU,CAERy1C,eAAgB,WACd,IAAIb,EAASnhH,KAAKmhH,OAGlB,OAFAA,GAAUA,GAAU,IAAIhuF,OAAOnU,MAAM,UAAUlP,OAAO23C,IAEhC,IAAlB05D,EAAOx+G,OACF,KAGFw+G,EAAOtxG,KAAI,SAAUoyG,GAC1B,IAAI37D,EAAO,OACP47D,EAAa,IACbC,EAAW,IAEXz/D,EAAapuC,KAAK2tG,GAEpBC,EAAa,IAGb57D,EAAO,OAEHjD,EAAQ/uC,KAAK2tG,KACfE,EAAW,MAEXF,EAAYA,EAAUvwG,MAAM,GAAI,KAKpCuwG,EAAY5kD,GAAa4kD,GACzB,IAAIx6E,EAAK,IAAI5nB,OAAO,GAAG5e,OAAOihH,GAAYjhH,OAAOghH,GAAWhhH,OAAOkhH,IACnE,MAAO,CACL16E,GAAIA,EACJ6e,KAAMA,OAIZ87D,gBAAiB,WACf,IAAI1/F,EAAU1iB,KAAK0iB,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,IAAwBA,GAAW,OAEhE8zD,cAAe,WACb,IAAIpsE,EAAOpK,KAAKoK,KACZ21D,EAAW//D,KAAK+/D,SAChBpoC,EAAW33B,KAAK23B,SAChB6/E,EAAOx3G,KAAKw3G,KACZ4K,EAAkBpiH,KAAKoiH,gBACvBjB,EAASnhH,KAAKmhH,OACdK,EAAWxhH,KAAKwhH,SAChBH,EAAYrhH,KAAKqhH,UACrB,OAAOxsE,GAAcA,GAAc,GAAI70C,KAAKy2E,SAAU,GAAI,CACxDrhE,KAAM,OACNwB,GAAI5W,KAAKghF,SACT52E,KAAMA,EACN21D,SAAUA,EACVpoC,SAAUA,EACV6/E,KAAMA,GAAQ,KACd90F,QAAS0/F,EACTjB,OAAQA,GAAU,KAClBK,SAAUA,EACVH,UAAWA,EACXgB,gBAAiBhB,EACjB,gBAAiB1pF,EAAW,OAAS,QAGzC2qF,0BAA2B,WACzB,IAAIf,EAAoBvhH,KAAKuhH,kBAC7B,OAAO57C,GAAgB47C,GAAqBA,EAAoBvhH,KAAKuiH,0BAEvEC,YAAa,WACX,OAAOj7D,GAAUvnD,KAAK6hH,QAExBY,eAAgB,WACd,OAAOjmD,GAAYx8D,KAAK6hH,QAE1Ba,UAAW,WACT,OAAO1iH,KAAKyiH,eAAe5yG,KAAI,SAAUgxG,GACvC,OAAOA,EAAKz2G,SAGhBu4G,aAAc,WAIZ,GAAI3iH,KAAK8hH,WAAa9hH,KAAKyhH,OACzB,OACEzhH,KAAKsmE,cAAcxN,GAA4B,CAC7C8pD,QAAS5iH,KAAK+hH,gBACT/hH,KAAK+hH,YAAc/hH,KAAKshH,gBAAkBthH,KAAK2/G,eAAe,OAAQ,CAC3Er3C,YAAa,eACZtoE,KAAK0hH,oBAKZ,GAA0B,IAAtB1hH,KAAK6hH,MAAMl/G,OACb,OAAO3C,KAAKsmE,cAAclL,KAA0Bp7D,KAAKy8G,YAG3D,IAAIgG,EAAiBziH,KAAKyiH,eACtBD,EAAcxiH,KAAKwiH,YACnBE,EAAY1iH,KAAK0iH,UACjBJ,EAA4BtiH,KAAKsiH,0BAErC,OAAItiH,KAAKmmE,kBAAkBjN,IAClBl5D,KAAKsmE,cAAcpN,GAAqB,CAC7C2oD,MAAOY,EACPI,eAAgBL,EAChBr0F,MAAOu0F,IAIJJ,EAA0BG,EAAgBD,EAAaE,KAGlE53C,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,KACjEA,GAAYz4D,GAAQy4D,IAAiC,IAApBA,EAASpoE,SAC7C3C,KAAK8iH,WAELhuE,GAAgB8zB,GAAQ,SAAS,SAAemC,EAAU+I,GAC5D,IAAKV,GAAWrI,EAAU+I,GAAW,CACnC,IAAI0tC,EAAWxhH,KAAKwhH,SAChBG,EAAa3hH,KAAK2hH,WAClBE,GAASL,GAAYG,EAAanlD,GAAYuO,GAAYA,EAC9D/qE,KAAKirE,MAAMf,GAAkBs3C,EAAWK,EAAQA,EAAM,IAAM,UAE5Dj5C,IACJwC,QAAS,WAEPprE,KAAK+iH,OAAS,MAEhB/lC,QAAS,WAEP,IAAIgmC,EAAQhlD,GAAQ,OAAQh+D,KAAKm3E,KAE7B6rC,IACFh8C,GAAQg8C,EAAO,QAAShjH,KAAK8iH,MAAOnsD,IACpC32D,KAAK+iH,OAASC,IAGlB13C,cAAe,WACb,IAAI03C,EAAQhjH,KAAK+iH,OAEbC,GACF97C,GAAS87C,EAAO,QAAShjH,KAAK8iH,MAAOnsD,KAGzC37C,QAAS,CACPioG,YAAa,SAAqBpC,GAChC,IAAKA,EACH,OAAO,EAGT,IAAIM,EAASnhH,KAAKgiH,eAClB,OAAOb,GAASA,EAAOpxG,MAAK,SAAU+S,GACpC,OAAOA,EAAE2kB,GAAGnzB,KAAKusG,EAAK/9F,EAAEwjC,WAG5B48D,kBAAmB,SAA2BrB,GAC5C,IAAInvE,EAAQ1yC,KAEZ,OAAOsS,GAAQuvG,GAASA,EAAM7xG,OAAM,SAAU6wG,GAC5C,OAAOnuE,EAAMuwE,YAAYpC,MACtB7gH,KAAKijH,YAAYpB,IAExBU,yBAA0B,SAAkCE,EAAgBD,EAAaE,GACvF,OAAOA,EAAUxhG,KAAK,OAExBiiG,SAAU,SAAkBtB,GAE1B7hH,KAAK+hH,aAAe/hH,KAAKyhH,OACzBzhH,KAAK8hH,UAAW,EAEhB9hH,KAAK6hH,MAAQ7hH,KAAKwhH,SAAWxhH,KAAKqhH,UAAYQ,EAAQrlD,GAAYqlD,GAASrlD,GAAYqlD,GAAOnwG,MAAM,EAAG,IAIzG0xG,cAAe,SAAuBvB,GAIpC,IAEE,IAAIwB,EAAe,IAAIC,eAAe,IAAIC,eAAiB,IAAIC,aAE/DhnD,GAAYjV,GAAUs6D,IAAQ30G,SAAQ,SAAU2zG,UAEvCA,EAAKC,MACZuC,EAAalnF,MAAM57B,IAAIsgH,MAEzB7gH,KAAKsoF,MAAM75D,MAAMozF,MAAQwB,EAAaxB,MACtC,MAAOjgE,MAEXkhE,MAAO,WAKL,IACE,IAAI7I,EAASj6G,KAAKsoF,MAAM75D,MACxBwrF,EAAO53G,MAAQ,GACf43G,EAAO7kG,KAAO,GACd6kG,EAAO7kG,KAAO,OACd,MAAOsuD,IAET1jE,KAAK6hH,MAAQ,IAEf4B,YAAa,SAAqB5B,GAChC,IAAI6B,EAASv4G,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GAE5E,GAAIu4G,EAAQ,CAEV,IAAIC,EAAgB9B,EAAM/xG,OAAO9P,KAAKkjH,mBAElCS,EAAchhH,OAAS,IACzB3C,KAAKmjH,SAASQ,GAGd3jH,KAAKojH,cAAcO,SAIrB3jH,KAAKmjH,SAAStB,IAGlB+B,aAAc,SAAsBtvF,GAI9Bt0B,KAAK23G,OAAwB,aAAfrjF,EAAMlf,KACtBpV,KAAK84G,UAAW,EAGhB94G,KAAK84G,UAAW,GAGpB+K,SAAU,SAAkBvvF,GAC1B,IAAIugD,EAAS70E,KAEToV,EAAOkf,EAAMlf,KACb9I,EAASgoB,EAAMhoB,OACfw3G,EAAsBxvF,EAAM+uF,aAC5BA,OAAuC,IAAxBS,EAAiC,GAAKA,EACrDJ,EAAkB,SAATtuG,EAEbpV,KAAKirE,MAAM/X,GAAmB5+B,GAC9B,IAAI6H,EAAQokC,GAAU8iD,EAAalnF,OAAS,IAE5C,GAAI6kB,GAAuB7kB,EAAMx5B,OAAS,IAAM+iD,GAAO06D,GAAyBjkF,EAAM,KAKpFokF,GAAkBpkF,EAAOn8B,KAAKqhH,WAAWv4F,MAAK,SAAU+4F,GACtD,OAAOhtC,EAAO4uC,YAAY5B,EAAO6B,UAE9B,CAGL,IAAI7B,EAAQthD,GAAUj0D,EAAOu1G,OAASwB,EAAaxB,OAAS,IAAIhyG,KAAI,SAAUgxG,GAG5E,OADAA,EAAKC,MAAQD,EAAKkD,oBAAsB,GACjClD,KAET7gH,KAAKyjH,YAAY5B,EAAO6B,KAG5BM,YAAa,SAAqB1vF,GAChC+yC,GAAU/yC,GACVt0B,KAAK8hH,UAAW,EAChB,IAAImC,EAAuB3vF,EAAM+uF,aAC7BA,OAAwC,IAAzBY,EAAkC,GAAKA,EAE1D,GAAIjkH,KAAKyhH,QAAUzhH,KAAK+/D,WAAa//D,KAAK+hH,YAMxC,OAFAsB,EAAaa,WAAa,YAC1BlkH,KAAK+hH,aAAc,GAMrBsB,EAAaa,WAAa,QAI5BC,WAAY,SAAoB7vF,GAC9B+yC,GAAU/yC,GACVt0B,KAAK8hH,UAAW,EAChB,IAAIsC,EAAuB9vF,EAAM+uF,aAC7BA,OAAwC,IAAzBe,EAAkC,GAAKA,EAE1D,GAAIpkH,KAAKyhH,QAAUzhH,KAAK+/D,WAAa//D,KAAK+hH,YAMxC,OAFAsB,EAAaa,WAAa,YAC1BlkH,KAAK+hH,aAAc,GAMrBsB,EAAaa,WAAa,QAE5BG,YAAa,SAAqB/vF,GAChC,IAAI6zD,EAASnoF,KAEbqnE,GAAU/yC,GACVt0B,KAAKmrE,WAAU,WACbgd,EAAO25B,UAAW,EAElB35B,EAAO45B,aAAe55B,EAAOs5B,WAIjC6C,OAAQ,SAAgBhwF,GACtB,IAAIk0D,EAASxoF,KAEbqnE,GAAU/yC,GACVt0B,KAAK8hH,UAAW,EAEZ9hH,KAAKyhH,QAAUzhH,KAAK+/D,WAAa//D,KAAK+hH,YACxC/hH,KAAKmrE,WAAU,WAEbqd,EAAOu5B,aAAev5B,EAAOi5B,UAKjCzhH,KAAK6jH,SAASvvF,KAGlBn1B,OAAQ,SAAgB2B,GACtB,IAAI64C,EAAS35C,KAAK25C,OACdg+D,EAAQ33G,KAAK23G,MACbpiG,EAAOvV,KAAKuV,KACZusG,EAAW9hH,KAAK8hH,SAChB7J,EAAaj4G,KAAKi4G,WAClBxhC,EAAUz2E,KAAKy2E,QAEfwjC,EAASn5G,EAAE,QAAS,CACtBynE,MAAO,CAAC,CACN,oBAAqBovC,EACrB,oBAAqBh+D,EACrB4pB,MAAO5pB,GAAU35C,KAAK84G,UACrBb,GAIHxrF,MAAOktB,EAAS,CACd4qE,QAAS,GACP,GACJ/7C,MAAOxoE,KAAKw2E,cACZpP,GAAI,CACF8yC,OAAQl6G,KAAK6jH,SACbnrC,QAAS14E,KAAK4jH,aACdjrC,SAAU34E,KAAK4jH,aACfd,MAAO9iH,KAAK8iH,OAEd/2B,IAAK,UAGP,GAAI4rB,EACF,OAAOsC,EAIT,IAAII,EAASv5G,EAAE,QAAS,CACtBwnE,YAAa,oBACbC,MAAO,CACLu5C,SAAUA,GAEZt5C,MAAO,CACLyhB,IAAKjqF,KAAKghF,SAEV,cAAehhF,KAAKohH,YAAc,OAEnC,CAACtgH,EAAE,OAAQ,CACZwnE,YAAa,yBAGb77C,MAAO,CACLm/D,cAAe,SAEhB,CAAC5rF,KAAK2iH,iBAET,OAAO7hH,EAAE,MAAO,CACdwnE,YAAa,0BACbC,MAAO,CAACzzB,GAAgB,GAAI,oBAAoB7zC,OAAOsU,GAAOA,GAAO0iG,EAAYxhC,EAAQlO,OACzF97C,MAAOgqD,EAAQhqD,MACf+7C,MAAO,CACL5xD,GAAI5W,KAAKghF,OAAO,oBAElB5Z,GAAI,CACFo9C,UAAWxkH,KAAKgkH,YAChBS,SAAUzkH,KAAKmkH,WACfO,UAAW1kH,KAAKqkH,YAChBM,KAAM3kH,KAAKskH,SAEZ,CAACrK,EAAQI,OElkBZuK,GAA8Bp7D,GAAc,CAC9CR,WAAY,CACV44D,UAAWA,GACXiD,MAAOjD,MCHPkD,GAAa,SAAoBziH,GACnC,MAAO,KAAOA,GAKL0iH,GAAY,SAAmB1iH,GACxCA,EAAQgR,GAAShR,GACjB,IAAIM,EAASN,EAAMM,OACfqiH,EAAgB3iH,EAAMmwB,WAAW,GACrC,OAAOnwB,EAAM2c,MAAM,IAAIynC,QAAO,SAAUp5C,EAAQ43G,EAAMxiH,GACpD,IAAIyiH,EAAW7iH,EAAMmwB,WAAW/vB,GAEhC,OAAiB,IAAbyiH,EACK73G,EAAS,IAKL,MAAb63G,GACAA,GAAY,GAAUA,GAAY,IACxB,IAAVziH,GAAeyiH,GAAY,IAAUA,GAAY,IAEvC,IAAVziH,GAAeyiH,GAAY,IAAUA,GAAY,IAA4B,KAAlBF,EAElD33G,EAASy3G,GAAW,GAAG7jH,OAAOikH,EAAS7xG,SAAS,IAAK,MAKpD,IAAV5Q,GACa,KAAbyiH,GACW,IAAXviH,EAES0K,EAASy3G,GAAWG,GAK7BC,GAAY,KACC,KAAbA,GACa,KAAbA,GACAA,GAAY,IAAUA,GAAY,IAClCA,GAAY,IAAUA,GAAY,IAClCA,GAAY,IAAUA,GAAY,IAEzB73G,EAAS43G,EAKX53G,EAASy3G,GAAWG,KAC1B,KCtDL,SAAS1sG,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAe3M,IAAIm9F,GAAoB,CAAC,OAAQ,QAAS,MAAO,SAAU,WAAY,WAGnEC,GAAoB,SAA2BhwG,EAAMiwG,EAAYhjH,GACnE,IAAI2+D,EAAY5rD,EAEhB,IAAIuwC,GAAkBtjD,KAAoB,IAAVA,EAWhC,OAPIgjH,IACFrkD,GAAa,IAAI//D,OAAOokH,IAMb,QAATjwG,GAA6B,KAAV/S,IAA0B,IAAVA,GAMvC2+D,GAAa,IAAI//D,OAAOoB,GACjBm7D,GAAUwD,IALRxD,GAAUwD,IASjBskD,GAAyB3hD,GAAQyhD,IAEjCG,GAAoB1jH,GAAO,MAGpB2jH,GAAgB,WAEzB,IAAIjhD,EAAcD,KAAyBx0D,OAAO23C,IAE9Cg+D,EAAgBlhD,EAAY9d,QAAO,SAAUt5B,EAAOk4F,GAEtD,OADAl4F,EAAMk4F,GAAcxgD,GAASlN,IACtBxqC,IACNtrB,GAAO,OAEN6jH,EAAmBnhD,EAAY9d,QAAO,SAAUt5B,EAAOk4F,GAEzD,OADAl4F,EAAMw3C,GAAe0gD,EAAY,WAAaxgD,GAAS9M,IAChD5qC,IACNtrB,GAAO,OAEN8jH,EAAkBphD,EAAY9d,QAAO,SAAUt5B,EAAOk4F,GAExD,OADAl4F,EAAMw3C,GAAe0gD,EAAY,UAAYxgD,GAAS9M,IAC/C5qC,IACNtrB,GAAO,OASV,OANA0jH,GAAoBx6F,GAAOlpB,GAAO,MAAO,CACvC+jH,IAAKt7G,GAAKm7G,GACVz6G,OAAQV,GAAKo7G,GACbnlB,MAAOj2F,GAAKq7G,KAGPlgD,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAc,GAAI4wE,GAAgBC,GAAmBC,GAAkB,GAAI,CAEzJE,UAAWhhD,GAASxN,GAAkB,MAAM,SAAUh1D,GACpD,OAAO85D,GAAcgpD,GAAmB9iH,MAG1CujH,IAAK/gD,GAAS9N,IAAmB,GAEjC+uD,KAAMjhD,GAAS9M,IACf/sD,OAAQ65D,GAAS9M,IACjBwoC,MAAO17B,GAAS9M,IAChBnkD,IAAKixD,GAASxN,GAAkB,UAC7B9K,KAMIw5D,GAAO,CAChB37G,KAAMmiD,GACN1sD,YAAY,EAERstB,YAMF,cAFOntB,KAAKmtB,MAELntB,KAAKmtB,MAAQq4F,MAGtBrmH,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAIi9D,EAEA74F,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBq8C,EAAO34F,EAAM24F,KACb96G,EAASmiB,EAAMniB,OACfu1F,EAAQpzE,EAAMozE,MACdslB,EAAY14F,EAAM04F,UAClB3nG,EAAY,GAEhB,IAAK,IAAI9I,KAAQmwG,GAIf,IAFA,IAAIjnE,EAAQinE,GAAkBnwG,GAErBlL,EAAI,EAAGA,EAAIo0C,EAAM37C,OAAQuH,IAAK,CAErC,IAAIsZ,EAAI8hG,GAAuBlwG,EAAMkpC,EAAMp0C,GAAG8J,QAAQoB,EAAM,IAAK+X,EAAMmxB,EAAMp0C,KAEzEsZ,GACFtF,EAAUlP,KAAKwU,GAKrB,IAAIyiG,EAAgB/nG,EAAUnO,MAAK,SAAUixD,GAC3C,OAAO7c,EAAa7vC,KAAK0sD,MAM3B,OAJA9iD,EAAUlP,MAAMg3G,EAAkB,CAEhCJ,IAAKz4F,EAAMy4F,MAAQK,IAAkBH,GACpChxE,GAAgBkxE,EAAiB,OAAO/kH,OAAO6kH,GAAOA,GAAOhxE,GAAgBkxE,EAAiB,UAAU/kH,OAAO+J,GAASA,GAAS8pC,GAAgBkxE,EAAiB,SAAS/kH,OAAOs/F,GAAQA,GAAQzrD,GAAgBkxE,EAAiB,cAAc/kH,OAAO4kH,GAAYA,GAAYG,IAC5QllH,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCuyD,MAAOrqD,IACLurD,KChJR,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAyB3M,IAAIk+F,GAAS,CAAC,QAAS,SAAU,YAE7BC,GAAiBD,GAAOr2G,KAAI,SAAUmsB,GACxC,MAAO,GAAG/6B,OAAO+6B,EAAG,uBACnB9a,OAECklG,GAA8B,GAAGnlH,OAAOilH,GAAQ,CAAC,IAAK,SAAU,UAGzDV,GAAgB,WACzB,OAAO//C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUq3B,IAAiBh0C,KAAyB7d,QAAO,SAAUt5B,EAAOk4F,GAO5K,OALAl4F,EAAMw3C,GAAe0gD,EAAY,gBAAkBxgD,GAASlN,IAE5DxqC,EAAMw3C,GAAe0gD,EAAY,eAAiBxgD,GAASxN,IAE3DlqC,EAAMw3C,GAAe0gD,EAAY,cAAgBxgD,GAASlN,IACnDxqC,IACNtrB,GAAO,QAAS,GAAI,CACrBm2B,YAAa6sC,GAASxN,IACtB0I,SAAU8E,GAAS9N,IAAmB,GACtCsvD,iBAAkBxhD,GAASxN,GAAkB,aAC7CivD,gBAAiBzhD,GAASxN,IAC1BqwB,MAAO7iB,GAASxN,IAChBkvD,WAAY1hD,GAASrN,IACrBgvD,SAAU3hD,GAASxN,IACnBovD,UAAW5hD,GAASxN,IACpBqvD,YAAa7hD,GAAS9N,IAAmB,GACzC+/C,QAASjyC,GAAS9N,IAAmB,GACrC4vD,cAAe9hD,GAASxN,IACxB88C,UAAWtvC,GAAS9N,IAAmB,MACpCtJ,KAMIm5D,GAAa,CACtBx8G,KAAMqjD,GACNkd,OAAQ,CAACmW,GAASi3B,GAAgBtxC,IAE9Bt5C,YAMF,cAFOntB,KAAKmtB,MAELntB,KAAKmtB,MAAQq4F,MAGtBxvG,KAAM,WACJ,MAAO,CACL0+F,gBAAiB,OAGrBnoC,SAAU,CACRs6C,gBAAiB,WACf,OAAO7mH,KAAK8mH,YAAY9mH,KAAKizF,OAAQ,YAEvC8zB,kBAAmB,WACjB,OAAO/mH,KAAKgnH,gBAAgBhnH,KAAKizF,OAAQ,UAE3Cg0B,cAAe,WACb,OAAOjnH,KAAK8mH,YAAY9mH,KAAKizF,OAAQ,UAEvCi0B,aAAc,WAGZ,OAAO58G,GAAKtK,KAAK6mH,iBAAiBlkH,OAAS,GAAK2H,GAAKtK,KAAKinH,eAAetkH,OAAS,IAGtFmoE,MAAO,CACL4pC,gBAAiB,SAAyB3pC,EAAU+I,GAC9C/I,IAAa+I,GACf9zE,KAAKmnH,sBAAsBp8C,EAAU+I,KAI3CkJ,QAAS,WACP,IAAItqC,EAAQ1yC,KAEZA,KAAKmrE,WAAU,WAGbz4B,EAAMy0E,sBAAsBz0E,EAAMgiE,qBAGtC15F,QAAS,CACPgsG,gBAAiB,SAAyB75F,EAAOs3C,GAC/C,OAAOH,KAAyB7d,QAAO,SAAUp5C,EAAQg4G,GACvD,IAAI+B,EAAYj6F,EAAMw3C,GAAe0gD,EAAY,GAAGpkH,OAAOwjE,EAAQ,YAAc,KAMjF,OAJI2iD,GACF/5G,EAAO2B,KAAK,CAAC,OAAQq2G,EAAY+B,GAAWt3G,OAAO23C,IAAUvmC,KAAK,MAG7D7T,IACN,KAELy5G,YAAa,SAAqB35F,EAAOs3C,GACvC,OAAOH,KAAyB7d,QAAO,SAAUp5C,EAAQg4G,GACvD,IAAI+B,EAAYj6F,EAAMw3C,GAAe0gD,EAAY,GAAGpkH,OAAOwjE,EAAQ,UAmBnE,OAhBA2iD,EAA0B,KAAdA,IAA0BA,IAAa,GAE9CxhE,GAAUwhE,IAA4B,SAAdA,IAE3BA,EAAY3qD,GAAU2qD,EAAW,GAEjCA,EAAYA,EAAY,GAAIA,GAM1BA,IACF/5G,EAAOg4G,IAAez/D,GAAUwhE,GAAa,MAAQ,SAAWA,GAG3D/5G,IACN,KAKL85G,sBAAuB,SAA+Bp8C,EAAU+I,GAC9D,IAAI0yC,EAAWxmH,KAAKwmH,SAEpB,GAAI13F,GAAc03F,EAAU,CAE1B,IAAIvM,EAASx5C,GAAO,IAAIx/D,OAAO8jH,GAAUyB,IAAYxmH,KAAKsoF,MAAMv8D,SAEhE,GAAIkuF,EAAQ,CACV,IAAI74C,EAAO,mBACPimD,GAAUt8C,GAAY,IAAI/rD,MAAMokC,GAChCkkE,GAAUxzC,GAAY,IAAI90D,MAAMokC,GAGhCmkE,GAAO/lD,GAAQy4C,EAAQ74C,IAAS,IAAIpiD,MAAMokC,GAAgBtzC,QAAO,SAAU8G,GAC7E,OAAQulD,GAAcmrD,EAAQ1wG,MAC7B3V,OAAOomH,GAAQv3G,QAAO,SAAU8G,EAAInU,EAAO8kH,GAC5C,OAAOA,EAAI14G,QAAQ+H,KAAQnU,KAC1BqN,OAAO23C,IAAUvmC,KAAK,KAAKiS,OAE1Bo0F,EACFpmD,GAAQ84C,EAAQ74C,EAAMmmD,GAEtBjmD,GAAW24C,EAAQ74C,MAK3BomD,cAAe,SAAuBlzF,GAIpC,IAAIt0B,KAAKwmH,SAAT,CAIA,IAAIl6G,EAASgoB,EAAMhoB,OACf+sF,EAAU/sF,EAASA,EAAO+sF,QAAU,GAKxC,IAAsD,IAAlD+sB,GAA4Bv3G,QAAQwqF,GAAxC,CAKA,IAAIouB,EAASrnD,GAAU+lD,GAAgBnmH,KAAKsoF,MAAMv8D,SAASjc,OAAOwvD,IAE5C,IAAlBmoD,EAAO9kH,QACT2gE,GAAamkD,EAAO,QAI1BtoH,OAAQ,SAAgB2B,GACtB,IAAI6U,EAAQ3V,KAAKg4G,cACbqO,EAAmBrmH,KAAKqmH,iBACxBa,EAAelnH,KAAKknH,aACpBV,EAAWxmH,KAAKwmH,SAChBlgD,EAAgBtmE,KAAKsmE,cACrB0a,EAAShhF,KAAKghF,OACd81B,EAAU92G,KAAK82G,QACflgG,EAAKoqE,IACL0mC,GAAclB,EACdnM,EAASv5G,IACT6hH,EAAer8C,EAAcvM,KAAoB/5D,KAAK0nF,MACtDigC,EAAUhF,EAAe3hC,EAAO,cAAgB,KAEpD,GAAI2hC,GAAgBuE,EAAc,CAChC,IAAIT,EAAYzmH,KAAKymH,UACjBQ,EAAgBjnH,KAAKinH,cACrBW,EAAWF,EAAa,SAAW,QAEnC1nH,KAAK0mH,aACH/D,IACFtI,EAASv5G,EAAE8mH,EAAU,CACnBr/C,MAAO,UACPC,MAAO,CACL5xD,GAAI+wG,EACJ19B,IAAKu8B,GAAY,OAElB,CAAC7D,KAGNtI,EAASv5G,EAAEomH,EAAenB,GAAO,MAAO,CACtC54F,MAAO+5F,EAAeD,EAAgB,IACrC,CAAC5M,KAEJA,EAASv5G,EAAEomH,EAAenB,GAAO6B,EAAU,CACzCxgD,GAAIsgD,EAAa,CACfj/C,MAAOzoE,KAAKwnH,eACV,GACJr6F,MAAO+5F,EAAeryE,GAAcA,GAAc,GAAIoyE,GAAgB,GAAI,CACxErzG,IAAKg0G,IACF,GACLp/C,MAAO,CACL5xD,GAAI+wG,EACJ19B,IAAKu8B,GAAY,KAGjB9vC,SAAUgxC,EAAa,KAAO,MAEhCn/C,MAAO,CACPm/C,EAAa,mBAAqB,GAIlCR,GAAgBQ,EAAa,iBAAmB,IAC/CR,GAAgBQ,EAAa,OAAS,GAEtCR,GAAiBQ,EAAyB,GAAZ,UAAgBjB,EAAY,kBAAkBxlH,OAAOwlH,GAAa,GAAIzmH,KAAK+mH,kBAAmB/mH,KAAKumH,aACjI,CAAC5D,IAIR,IAAIkF,EAAmB/mH,IACnBgnH,EAAyBxhD,EAAcxM,KAA+B95D,KAAKsmH,gBAC3EyB,EAAoBD,EAAyB9mC,EAAO,yBAA2B,KAE/E8mC,IACFD,EAAmB/mH,EAAEi2G,GAAsB,CACzC5pF,MAAO,CACLypF,SAAUyP,EACVzvG,GAAImxG,EAEJpyG,MAAOA,EACPmhG,QAASA,GAEXtuC,MAAO,CACLkO,SAAUoxC,EAAyB,KAAO,OAE3C,CAACA,KAGN,IAAIE,EAAiBlnH,IACjBmnH,EAAuB3hD,EAAcpK,KAA6Bl8D,KAAK2mH,cACvEuB,EAAkBD,EAAuBjnC,EAAO,uBAAyB,KAEzEinC,IACFD,EAAiBlnH,EAAEk2G,GAAoB,CACrC7pF,MAAO,CACLypF,SAAUyP,EACVzvG,GAAIsxG,EAEJvyG,MAAOA,EACPmhG,QAASA,GAEXtuC,MAAO,CACLkO,SAAUuxC,EAAuB,KAAO,OAEzC,CAACA,KAGN,IAAIE,EAAernH,IACfsnH,EAAqB9hD,EAAc1N,KAA0B54D,KAAKg4B,YAClEqwF,EAAgBD,EAAqBpnC,EAAO,oBAAsB,KAElEonC,IACFD,EAAernH,EAAE61G,GAAW,CAC1BnuC,MAAO,CACL5xD,GAAIyxG,EACJ3xC,SAAU,OAEX,CAAC0xC,KAON,IAAI1T,EAAkB10G,KAAK00G,gBAAkB,CAAC2T,GAAyB,IAAV1yG,EAAkBoyG,EAAoB,MAAgB,IAAVpyG,EAAiBuyG,EAAkB,MAAMp4G,OAAO23C,IAAUvmC,KAAK,MAAQ,KAC5K4rD,EAAWhsE,EAAEomH,EAAenB,GAAO,MAAO,CAC5C54F,MAAO+5F,EAAelnH,KAAK6mH,gBAAkB,GAC7C96B,IAAK,WACJ,CAACzlB,EAAc3N,GAAmB,CACnC+7C,gBAAiBA,EACjB2T,cAAeA,EACfzxG,GAAIA,EACJ+wG,QAASA,KACL7mH,IAAK+mH,EAAkBG,EAAgBG,IAK7C,OAAOrnH,EAAE4mH,EAAa,WAAaR,EAAejQ,GAAW,MAAO,CAClE3uC,YAAa,aACbC,MAAO,CAAC,CACN,gBAAiBvoE,KAAKm0G,WACrBn0G,KAAKi4G,YACRzvC,MAAO,CACL5xD,GAAIA,EACJmpD,SAAU2nD,EAAa1nH,KAAK+/D,SAAW,KACvC4L,KAAM+7C,EAAa,KAAO,QAC1B,eAAgB1nH,KAAKk4G,oBAGrB,kBAAmBwP,GAAcR,EAAeS,EAAU,OAE3DT,GAAgBQ,EAAa,CAAC5mH,EAAEm2G,GAAU,CAACoD,EAAQvtC,KAAc,CAACutC,EAAQvtC,MC9V7Ew7C,GAA+B9+D,GAAc,CAC/CR,WAAY,CACV49D,WAAYA,GACZ2B,cAAe3B,MCHR4B,GAAqB//D,EAAAA,WAAAA,OAAW,CACzC8jB,SAAU,CACRk8C,eAAgB,CAEd7kD,OAAO,EAGPl9D,IAAK,WACH,OAAO1G,KAAKsoF,MAAM75D,MAAMg6F,gBAI1B3gH,IAAK,SAAa6mB,GAChB3uB,KAAKsoF,MAAM75D,MAAMg6F,eAAiB95F,IAGtC+5F,aAAc,CAEZ9kD,OAAO,EAGPl9D,IAAK,WACH,OAAO1G,KAAKsoF,MAAM75D,MAAMi6F,cAI1B5gH,IAAK,SAAa6mB,GAChB3uB,KAAKsoF,MAAM75D,MAAMi6F,aAAe/5F,IAGpCg6F,mBAAoB,CAElB/kD,OAAO,EAGPl9D,IAAK,WACH,OAAO1G,KAAKsoF,MAAM75D,MAAMk6F,oBAI1B7gH,IAAK,SAAa6mB,GAChB3uB,KAAKsoF,MAAM75D,MAAMk6F,mBAAqBh6F,KAI5C3T,QAAS,CAEPylD,OAAQ,WACN,IAAImoD,GAGHA,EAAoB5oH,KAAKsoF,MAAM75D,OAAOgyC,OAAOrwD,MAAMw4G,EAAmBz9G,YAIzE09G,kBAAmB,WACjB,IAAIC,GAGHA,EAAqB9oH,KAAKsoF,MAAM75D,OAAOo6F,kBAAkBz4G,MAAM04G,EAAoB39G,YAItF49G,aAAc,WACZ,IAAIC,GAGHA,EAAqBhpH,KAAKsoF,MAAM75D,OAAOs6F,aAAa34G,MAAM44G,EAAoB79G,eCrErF,SAASoN,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAc3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAM2iD,GACNvQ,aAAc,GACdlzB,MAAO+hC,KAEL0T,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAI5BnH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIm1B,IAAa,GAAI,CACjGmuC,YAAatzC,GAASjN,IAA0B,GAChDygB,aAAcxT,GAASxN,IAEvB41C,SAAUpoC,GAAS9M,GAAyB,GAC5CkxD,UAAWpkD,GAAS5N,IAEpBg7C,KAAMptC,GAAS9N,IAAmB,GAClCmyD,cAAerkD,GAAS9N,IAAmB,GAC3C9tD,OAAQ47D,GAAS9N,IAAmB,GACpC0lD,YAAa53C,GAASxN,IACtB8xD,UAAWtkD,GAAS9N,IAAmB,GACvC6rB,SAAU/d,GAAS9N,IAAmB,GACtC5jC,KAAM0xC,GAAS9N,IAAmB,MAC/B,oBAGMqyD,GAAgB3gE,EAAAA,WAAAA,OAAW,CACpCkiB,OAAQ,CAACZ,IACT58C,MAAOA,GACPnX,KAAM,WACJ,IAAI3T,EAAQrC,KAAKiqE,IACjB,MAAO,CACLo/C,WAAYh2G,GAAShR,GACrBinH,YAAatpH,KAAKupH,YAAYlnH,KAGlCkqE,SAAU,CACRi9C,cAAe,WACb,IAAIL,EAAYnpH,KAAKmpH,UACjB/zG,EAAOpV,KAAKoV,KACZq0G,EAAmB,UAATr0G,EACVs0G,EAAmB,UAATt0G,EACd,MAAO,CAAC,CAEN,eAAgBq0G,EAEhB,yBAA0BN,IAAcM,IAAYC,EAGpD,eAAgBA,IAAYP,IAAcM,GACzCzpH,KAAK83G,cAAe93G,KAAKi4G,aAE9B0R,iBAAkB,WAEhB,OAAO79C,GAAQrP,GAAUz8D,KAAKitG,SAAU,GAAI,IAE9C2c,aAAc,WACZ,OAAOjkD,GAAgB3lE,KAAKipH,aAGhCn+C,MAAOh2B,GAAgB,GAAIm1B,IAAiB,SAAUc,GACpD,IAAI8+C,EAAiBx2G,GAAS03D,GAC1B++C,EAAgB9pH,KAAKupH,YAAYx+C,GAEjC8+C,IAAmB7pH,KAAKqpH,YAAcS,IAAkB9pH,KAAKspH,cAE/DtpH,KAAK+pH,gBAEL/pH,KAAKqpH,WAAaQ,EAClB7pH,KAAKspH,YAAcQ,MAGvB1+C,QAAS,WAEPprE,KAAKgqH,qBAAuB,MAE9B1+C,cAAe,WACbtrE,KAAK+pH,iBAEP/uG,QAAS,CACP+uG,cAAe,WACbv+C,aAAaxrE,KAAKgqH,sBAClBhqH,KAAKgqH,qBAAuB,MAE9BC,YAAa,SAAqB5nH,EAAOiyB,GACvC,IAAI41F,EAAQ/+G,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GAO3E,OANA9I,EAAQgR,GAAShR,IAEbrC,KAAK4pH,cAAkB5pH,KAAKkpH,gBAAiBgB,IAC/C7nH,EAAQrC,KAAKipH,UAAU5mH,EAAOiyB,IAGzBjyB,GAETknH,YAAa,SAAqBlnH,GAYhC,OAXAA,EAAQgR,GAAShR,GAEbrC,KAAKmzB,OACP9wB,EAAQA,EAAM8wB,QAIZnzB,KAAKiJ,SACP5G,EAAQq6D,GAAQr6D,EAAOA,IAGlBA,GAET8nH,YAAa,SAAqB9nH,GAChC,IAAIqwC,EAAQ1yC,KAERkqH,EAAQ/+G,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GACvE8mG,EAAOjyG,KAAKiyG,KAEhB,IAAIA,GAASiY,EAAb,CAMAlqH,KAAK+pH,gBAGL,IAAIK,EAAW,WAGb,GAFA/nH,EAAQqwC,EAAM62E,YAAYlnH,GAEtBA,IAAUqwC,EAAM42E,YAClB52E,EAAM42E,YAAcjnH,EAEpBqwC,EAAMu4B,MAAMf,GAAkB7nE,QACzB,GAAIqwC,EAAMk3E,aAAc,CAS7B,IAAI3P,EAASvnE,EAAM41C,MAAM75D,MAGrBwrF,GAAU53G,IAAU43G,EAAO53G,QAC7B43G,EAAO53G,MAAQA,KAOjB4qG,EAAWjtG,KAAK2pH,iBAEhB1c,EAAW,IAAMgF,IAASiY,EAC5BlqH,KAAKgqH,qBAAuB70F,WAAWi1F,EAAUnd,GAGjDmd,MAGJlL,QAAS,SAAiB5qF,GAMxB,IAAIA,EAAMhoB,OAAO+9G,UAAjB,CAIA,IAAIhoH,EAAQiyB,EAAMhoB,OAAOjK,MACrBm6G,EAAiBx8G,KAAKiqH,YAAY5nH,EAAOiyB,IAKtB,IAAnBkoF,GAA4BloF,EAAM65E,iBACpC9mC,GAAU/yC,EAAO,CACfmzC,aAAa,KAKjBznE,KAAKqpH,WAAa7M,EAClBx8G,KAAKmqH,YAAY3N,GACjBx8G,KAAKirE,MAAMzW,GAAkBgoD,MAE/BqH,SAAU,SAAkBvvF,GAC1B,IAAIjyB,EAAQiyB,EAAMhoB,OAAOjK,MACrBm6G,EAAiBx8G,KAAKiqH,YAAY5nH,EAAOiyB,IAKtB,IAAnBkoF,GAA4BloF,EAAM65E,iBACpC9mC,GAAU/yC,EAAO,CACfmzC,aAAa,KAKjBznE,KAAKqpH,WAAa7M,EAClBx8G,KAAKmqH,YAAY3N,GAAgB,GACjCx8G,KAAKirE,MAAM/X,GAAmBspD,KAEhC8N,OAAQ,SAAgBh2F,GAGtB,IAAIjyB,EAAQiyB,EAAMhoB,OAAOjK,MACrBm6G,EAAiBx8G,KAAKiqH,YAAY5nH,EAAOiyB,GAAO,IAE7B,IAAnBkoF,IAGFx8G,KAAKqpH,WAAah2G,GAASrT,KAAKupH,YAAY/M,IAG5Cx8G,KAAKmqH,YAAY3N,GAAgB,IAInCx8G,KAAKirE,MAAMjY,GAAiB1+B,IAE9BivC,MAAO,WAEAvjE,KAAK+/D,UACRuD,GAAatjE,KAAKm3E,MAGtB1T,KAAM,WAECzjE,KAAK+/D,UACRyD,GAAYxjE,KAAKm3E,SC1PdozC,GAAoB9hE,EAAAA,WAAAA,OAAW,CACxC8jB,SAAU,CACRi+C,SAAU,CAER5mD,OAAO,EAGPl9D,IAAK,WACH,OAAO1G,KAAKsoF,MAAM75D,MAAM+7F,WAG5BC,kBAAmB,CAEjB7mD,OAAO,EAGPl9D,IAAK,WACH,OAAO1G,KAAKsoF,MAAM75D,MAAMg8F,oBAG5BC,aAAc,CAEZ9mD,OAAO,EAGPl9D,IAAK,WACH,OAAO1G,KAAKsoF,MAAM75D,MAAMi8F,gBAI9B1vG,QAAS,CAEP2vG,kBAAmB,WACjB,IAAI/B,EAGJ,OAAQA,EAAoB5oH,KAAKsoF,MAAM75D,OAAOk8F,kBAAkBv6G,MAAMw4G,EAAmBz9G,YAI3Fy/G,cAAe,WACb,IAAI9B,EAGJ,OAAQA,EAAqB9oH,KAAKsoF,MAAM75D,OAAOm8F,cAAcx6G,MAAM04G,EAAoB39G,YAIzF0/G,eAAgB,WACd,IAAI7B,EAGJ,OAAQA,EAAqBhpH,KAAKsoF,MAAM75D,OAAOo8F,eAAez6G,MAAM44G,EAAoB79G,eCtD9F,SAASoN,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAoB3M,ICxBI4gD,GDwBA+sC,GAAQ,CAAC,OAAQ,WAAY,QAAS,SAAU,MAAO,MAAO,SAAU,QAAS,QAAS,OAAQ,OAAQ,WAAY,iBAAkB,QAAS,QAE1IxoF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUozB,IAAmBgE,IAAgBC,IAAiBwS,IAAgB,GAAI,CAC1N19G,KAAMy3D,GAASxN,IACf/lD,IAAKuzD,GAAS9M,IACd5rD,IAAK04D,GAAS9M,IAEdgzD,QAASlmD,GAAS9N,IAAmB,GACrC9oD,KAAM42D,GAAS9M,IACf3iD,KAAMyvD,GAASxN,GAAkB,QAAQ,SAAUjiD,GACjD,OAAO+mD,GAAcw5C,GAAOvgG,SAE3Bs4C,IAGMs9D,GAA0BviE,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAMsjD,GAENid,OAAQ,CAACwK,GAAgB2L,GAAS22B,GAAkBI,GAAeE,GAAgBqR,GAAeZ,GAAoB+B,IACtHp9F,MAAOA,GACPo/C,SAAU,CACR0+C,UAAW,WAET,IAAI71G,EAAOpV,KAAKoV,KAChB,OAAO+mD,GAAcw5C,GAAOvgG,GAAQA,EAAO,QAE7CohE,cAAe,WACb,IAAIphE,EAAOpV,KAAKirH,UACZ7gH,EAAOpK,KAAKoK,KACZotG,EAAOx3G,KAAKw3G,KACZz3C,EAAW//D,KAAK+/D,SAChB08C,EAAcz8G,KAAKy8G,YACnB9kF,EAAW33B,KAAK23B,SAChBxrB,EAAMnM,KAAKmM,IACXmF,EAAMtR,KAAKsR,IACXrD,EAAOjO,KAAKiO,KAChB,MAAO,CACL2I,GAAI5W,KAAKghF,SACT52E,KAAMA,EACNotG,KAAMA,EACNpiG,KAAMA,EACN2qD,SAAUA,EACV08C,YAAaA,EACb9kF,SAAUA,EACV0gD,aAAcr4E,KAAKq4E,cAAgB,KACnCuK,SAAU5iF,KAAK4iF,UAAY5iF,KAAKmpH,UAChCh9G,IAAKA,EACLmF,IAAKA,EACLrD,KAAMA,EACNb,KAAe,aAATgI,EAAsBpV,KAAKoN,KAAO,KACxC,gBAAiBuqB,EAAW,OAAS,KACrC,eAAgB33B,KAAKk4G,sBAGzBvhC,kBAAmB,WACjB,OAAO9hC,GAAcA,GAAc,GAAI70C,KAAK42E,aAAc,GAAI,CAC5DnoD,MAAOzuB,KAAKk/G,QACZhF,OAAQl6G,KAAK6jH,SACbpgD,KAAMzjE,KAAKsqH,WAIjBx/C,MAAO,CACLigD,QAAS,SAAiBhgD,GACxB/qE,KAAKkrH,gBAAgBngD,KAGzBiS,QAAS,WACPh9E,KAAKkrH,gBAAgBlrH,KAAK+qH,UAI5B1iC,YAAa,WAIXroF,KAAKkrH,iBAAgB,IAIvB9iC,UAAW,WAITpoF,KAAKkrH,gBAAgBlrH,KAAK+qH,UAE5Bz/C,cAAe,WAEbtrE,KAAKkrH,iBAAgB,IAEvBlwG,QAAS,CACPkwG,gBAAiB,SAAyB9jD,GACxC,IAAI34C,EAAQzuB,KAAKm3E,IAEjBhQ,GAAWC,EAAI34C,EAAO,QAASzuB,KAAKmrH,cACpChkD,GAAWC,EAAI34C,EAAO,OAAQzuB,KAAKorH,aAE9BhkD,GACHF,GAASprD,SAAU,QAAS9b,KAAKqrH,YAGrCF,aAAc,WACZnkD,GAAQlrD,SAAU,QAAS9b,KAAKqrH,YAElCD,YAAa,WACXlkD,GAASprD,SAAU,QAAS9b,KAAKqrH,YAEnCA,UAAW,SAAmB/2F,GAC5B+yC,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfjE,GAAYxjE,KAAKm3E,OAGrBh4E,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,QAAS,CAChBynE,MAAOvoE,KAAKwpH,cACZhhD,MAAOxoE,KAAKw2E,cACZ9N,SAAU,CACRrmE,MAAOrC,KAAKqpH,YAEdjiD,GAAIpnE,KAAK22E,kBACToV,IAAK,aEhJPu/B,GAA+B9hE,GAAc,CAC/CR,WAAY,CACVgiE,WAAYA,GACZO,OAAQP,MCAD79F,GAAQs4C,GAAsB81C,GAA0B1tD,IAGxD29D,GAA+B/iE,EAAAA,WAAAA,OAAW,CACnDr+C,KAAMyjD,GACN8c,OAAQ,CAACqwC,IACTlgC,QAAS,WACP,MAAO,CACL2wC,aAAczrH,OAGlBmtB,MAAOA,GACPo/C,SAAU,CACR4uC,aAAc,WACZ,OAAO,MChBTuQ,GAA+BliE,GAAc,CAC/CR,WAAY,CACV8xD,WAAYA,GACZ6Q,OAAQ7Q,GACR0Q,gBAAiBA,GACjBI,YAAaJ,MHNjB,SAASjzG,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EA2B3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAM2iD,GACNzjC,MAAO4+B,KAEL6W,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAEnCu3F,GAAY,EACZC,GAAgB,EAEhBC,GAAe,SAAsBC,GACvC,OAAOlgD,GAAQ+/C,GAAWpvD,GAAUuvD,EAAOF,MAGzCG,GAAa,SAAoB5pH,EAAO8J,EAAKmF,GAC/C,OAAOw6D,GAAQD,GAAQxpE,EAAOiP,GAAMnF,IAKlC+/G,GAAmBzjE,EAAAA,WAAAA,OAAW,CAChCr+C,KAAMgoD,GACNuY,OAAQ,CAAClE,IACTt5C,MAAO,CACL4yC,SAAU8E,GAAS9N,IAAmB,GAEtCo1D,QAAStnD,GAAS9N,IAAmB,GACrCq1D,SAAUvnD,GAAS9N,IAAmB,GACtCs1D,OAAQxnD,GAAS3N,GAAkB,GACnC0rB,SAAU/d,GAAS9N,IAAmB,GACtCu1D,KAAMznD,GAAS3N,GAAkB,GACjCuT,QAAS5F,GAASxN,KAEpBr8C,QAAS,CACP67D,QAAS,SAAiBviD,GACnBt0B,KAAK+/D,UAAa//D,KAAK4iF,WAC1Bvb,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfznE,KAAKirE,MAAMrV,GAAqB51D,KAAKssH,SAI3CntH,OAAQ,SAAgB2B,GACtB,IAAIurH,EAASrsH,KAAKqsH,OACdC,EAAOtsH,KAAKssH,KACZH,EAAUnsH,KAAKmsH,QACfC,EAAWpsH,KAAKosH,SAChB3hD,EAAUzqE,KAAKyqE,QACf1K,EAAW//D,KAAK+/D,SAChB6iB,EAAW5iF,KAAK4iF,SAChB2pC,EAAUH,EAAW,EAAI,EACzBh3G,EAAOi3G,GAAUC,EAAO,OAASD,GAAUC,EAAO,GAAM,OAAS,QACjEl8B,EAAY,CACd3lB,QAASA,EACT1K,SAAUA,EACV6iB,SAAUA,GAEZ,OAAO9hF,EAAE,OAAQ,CACfwnE,YAAa,gBACbC,MAAO,CAEL4jD,QAASA,GAAWE,IAAWC,IAAS7vD,GAAU4vD,IAAWC,IAASC,EAEtE,sBAAgC,UAATn3G,EACvB,qBAA+B,SAATA,EACtB,qBAA+B,SAATA,GAExBozD,MAAO,CACLkO,SAAW3W,GAAa6iB,EAAkB,KAAP,MAErCxb,GAAI,CACFqB,MAAOzoE,KAAK62E,UAEb,CAAC/1E,EAAE,OAAQ,CACZwnE,YAAa,iBACZ,CAACtoE,KAAKsmE,cAAclxD,EAAMg7E,UAItBjjE,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAatjB,GAAK2tD,GAAkB,CAAC,WAAY,eAAgBgE,IAAgB,GAAI,CAEzN5pB,MAAO5pB,GAASxN,IAChBm1D,UAAW3nD,GAASxN,GAAkB,KACtCo1D,UAAW5nD,GAASxN,GAAkB,QACtCq1D,SAAU7nD,GAASxN,GAAkB,aACrCs1D,SAAU9nD,GAASxN,GAAkB,aACrC48C,OAAQpvC,GAAS9N,IAAmB,GAGpCsoB,OAAQxa,GAASpN,IACjBm1D,SAAU/nD,GAAS9N,IAAmB,GACtC8F,UAAWgI,GAAS9M,IACpB6qB,SAAU/d,GAAS9N,IAAmB,GACtC81D,UAAWhoD,GAAS9N,IAAmB,GACvC+1D,UAAWjoD,GAAS9N,IAAmB,GACvCg2D,aAAcloD,GAAS9N,IAAmB,GAC1Ci1D,MAAOnnD,GAAS9M,GAAyB+zD,IAAe,SAAUzpH,GAChE,OAAOo6D,GAAUp6D,IAAUwpH,MAE7BphD,QAAS5F,GAASxN,OACfvJ,IAGMk/D,GAA2BvkE,EAAAA,WAAAA,OAAW,CAC/Cr+C,KAAM0jD,GACN9E,WAAY,CACV6oB,UAAWA,GACXE,cAAeA,GACfD,cAAeA,GACfE,OAAQA,IAEVrH,OAAQ,CAACmW,GAAS/W,GAAY8tC,IAC9B1qF,MAAOA,GACPnX,KAAM,WACJ,IAAI3T,EAAQq6D,GAAQ18D,KAAKiqE,IAAkB,MACvC+hD,EAAQD,GAAa/rH,KAAKgsH,OAC9B,MAAO,CACL3C,WAAY3jE,GAAOrjD,GAAS,KAAO4pH,GAAW5pH,EAAO,EAAG2pH,GACxDlT,UAAU,IAGdvsC,SAAU,CACR0gD,cAAe,WACb,OAAOlB,GAAa/rH,KAAKgsH,QAE3BkB,eAAgB,WACd,IAAI7qH,EAAQq6D,GAAQ18D,KAAKqpH,WAAY,GACjCxsD,EAAYJ,GAAUz8D,KAAK68D,UAAW,GAE1C,OAAOovD,GAAWvvD,GAAQr6D,EAAM48B,QAAQ49B,IAAa,EAAG78D,KAAKitH,gBAE/DzoC,eAAgB,WACd,IAAIzF,EAAU99E,GAAOjB,KAAKq/E,QAAQvvE,OAAO23C,IACrCy+B,EAAK,IAAIhH,KAAKiH,aAAapH,GAC/B,OAAOmH,EAAG9G,kBAAkBC,QAE9B8tC,cAAe,WACb,OAAQntH,KAAK+/D,WAAa//D,KAAK4iF,UAEjCsC,MAAO,WACL,OAAOvE,GAAY3gF,KAAKwkF,iBAE1B4oC,gBAAiB,WACf,IAAIvwD,EAAYJ,GAAUz8D,KAAK68D,WAC3BkwD,EAAe/sH,KAAK+sH,aACpB1tC,EAASr/E,KAAKwkF,eACd6oC,EAAgB,CAClB9mC,SAAU,WACVF,sBAAuBxnD,MAAMg+B,GAAa,EAAIA,EAC9CypB,sBAAuBznD,MAAMg+B,GAAa,EAAIA,GAE5CmvD,EAAQhsH,KAAKitH,cAAc9+E,eAAekxC,GAC1Ch9E,EAAQrC,KAAKqpH,WAEjB,OADAhnH,EAAQqjD,GAAOrjD,GAAS0qH,EAAe,IAAM,GAAK1qH,EAAM8rC,eAAekxC,EAAQguC,GACxEN,EAAe,GAAG9rH,OAAOoB,EAAO,KAAKpB,OAAO+qH,GAAS3pH,IAGhEyoE,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,EAAU+I,GAChF,GAAI/I,IAAa+I,EAAU,CACzB,IAAIzxE,EAAQq6D,GAAQqO,EAAU,MAC9B/qE,KAAKqpH,WAAa3jE,GAAOrjD,GAAS,KAAO4pH,GAAW5pH,EAAO,EAAGrC,KAAKitH,mBAEnEn4E,GAAgB8zB,GAAQ,cAAc,SAAoBmC,EAAU+I,GAClE/I,IAAa+I,GAAY/I,KAAc/qE,KAAKqC,OAAS,IACvDrC,KAAKirE,MAAMf,GAAkBa,GAAY,SAEzCj2B,GAAgB8zB,GAAQ,YAAY,SAAkBmC,GACpDA,IACF/qE,KAAK84G,UAAW,EAChB94G,KAAKyjE,WAELmF,IACJ5tD,QAAS,CAEPuoD,MAAO,WACAvjE,KAAK+/D,UACRuD,GAAatjE,KAAKm3E,MAGtB1T,KAAM,WACCzjE,KAAK+/D,UACRyD,GAAYxjE,KAAKm3E,MAIrBqG,UAAW,SAAmBlpD,GAC5B,IAAImkD,EAAUnkD,EAAMmkD,QAEpB,GAAIz4E,KAAKmtH,eAAiBhxD,GAAc,CAAC0W,GAAWL,GAAWQ,GAAYE,IAAUuF,GAAU,CAC7FpR,GAAU/yC,EAAO,CACfmzC,aAAa,IAEf,IAAIplE,EAAQo6D,GAAUz8D,KAAKqpH,WAAY,GACnCl9G,EAAMnM,KAAK6sH,UAAY,EAAI,EAC3Bb,EAAQhsH,KAAKitH,cAEbK,EAAYttH,KAAKklF,OAAS,EAAI,EAE9BzM,IAAY5F,GACd7yE,KAAKqpH,WAAa4C,GAAW5pH,EAAQirH,EAAWnhH,EAAK6/G,IAAU,KACtDvzC,IAAYzF,GACrBhzE,KAAKqpH,WAAa4C,GAAW5pH,EAAQirH,EAAWnhH,EAAK6/G,GAC5CvzC,IAAYjG,GACrBxyE,KAAKqpH,WAAa4C,GAAW5pH,EAAQ,EAAG8J,EAAK6/G,IAAU,KAC9CvzC,IAAYvF,KACrBlzE,KAAKqpH,WAAa4C,GAAW5pH,EAAQ,EAAG8J,EAAK6/G,MAInD/M,WAAY,SAAoB58G,GAC1BrC,KAAKmtH,gBACPntH,KAAKqpH,WAAahnH,IAGtBkrH,QAAS,SAAiBj5F,GACxBt0B,KAAK84G,WAAY94G,KAAKmtH,eAAuC,UAAf74F,EAAMlf,MAGtDo4G,WAAY,SAAoBp7C,GAC9B,OAAOpyE,KAAK2/G,eAAettC,GAAO,CAChCllD,MAAO,CACLilD,KAAMA,EACN3H,QAASzqE,KAAK+/D,UAAY//D,KAAKyuF,MAAQ,KAAOzuF,KAAKyqE,SAAW,SAIpEgjD,YAAa,WACX,OAAOztH,KAAKwtH,WAAWxtH,KAAKysH,YAE9BiB,WAAY,WACV,OAAO1tH,KAAKwtH,WAAWxtH,KAAK2sH,WAE9BgB,WAAY,WACV,OAAO3tH,KAAKwtH,WAAWxtH,KAAK0sH,WAE9BkB,YAAa,WACX,OAAO5tH,KAAK2/G,eAAettC,GAAO,CAChCllD,MAAO,CACLilD,KAAMpyE,KAAKwsH,eAKnBrtH,OAAQ,SAAgB2B,GACtB,IAAI4xC,EAAQ1yC,KAER+/D,EAAW//D,KAAK+/D,SAChB6iB,EAAW5iF,KAAK4iF,SAChBx4E,EAAOpK,KAAKoK,KACZotG,EAAOx3G,KAAKw3G,KACZvD,EAASj0G,KAAKi0G,OACdxpC,EAAUzqE,KAAKyqE,QACfgkB,EAAQzuF,KAAKyuF,MACbm+B,EAAW5sH,KAAK4sH,SAChB9T,EAAW94G,KAAK84G,SAChBoU,EAAiBltH,KAAKktH,eACtBD,EAAgBjtH,KAAKitH,cACrBG,EAAkBptH,KAAKotH,gBACvBP,EAAY7sH,KAAK6sH,UACjB3nC,EAAQllF,KAAKklF,MACbioC,EAAgBntH,KAAKmtH,cACrB/mD,EAAepmE,KAAKomE,aACpB0G,EAAW,GAEf,GAAI+/C,IAAc9sD,IAAa6iB,EAAU,CACvC,IAAIirC,EAAQ/sH,EAAE,OAAQ,CACpBwnE,YAAa,iBACZ,EAAElC,EAAa5M,KAAyBx5D,KAAK4tH,iBAChD9gD,EAAS99D,KAAKlO,EAAE,OAAQ,CACtBwnE,YAAa,gDACbC,MAAO,CACL4jD,QAASrT,GAA+B,IAAnBoU,GAEvB1kD,MAAO,CACLkO,SAAUy2C,EAAgB,KAAO,MAEnC/lD,GAAI,CACFqB,MAAO,WACL,OAAO/1B,EAAMusE,WAAW,QAG5B38G,IAAK,SACJ,CAACurH,KAGN,IAAK,IAAIprH,EAAQ,EAAGA,EAAQwqH,EAAexqH,IAAS,CAClD,IAAIJ,EAAQI,EAAQ,EACpBqqE,EAAS99D,KAAKlO,EAAEorH,GAAkB,CAChC5jD,YAAa,cACb77C,MAAOgiE,IAAU1uB,EAAW,CAC1B0uB,MAAOA,GACL,GACJthE,MAAO,CACLk/F,OAAQa,EACRZ,KAAMjqH,EACNooE,QAAS1K,EAAW,KAAO0K,GAAW,KACtC1K,SAAUA,EACV6iB,SAAUA,EACVupC,QAASrT,EACTsT,SAAUS,GAEZzlD,GAAI,CACFic,SAAUrjF,KAAKi/G,YAEjBv4C,YAAa,CACX3gD,MAAOqgD,EAAa3M,KAAyBz5D,KAAKytH,YAClDK,KAAM1nD,EAAazM,KAAwB35D,KAAK0tH,WAChDK,KAAM3nD,EAAa1M,KAAwB15D,KAAK2tH,YAElDrrH,IAAKG,KA0BT,OAtBI2H,GACF0iE,EAAS99D,KAAKlO,EAAE,QAAS,CACvB0nE,MAAO,CACLpzD,KAAM,SACN/S,MAAOqjD,GAAO1lD,KAAKqpH,YAAc,GAAK6D,EACtC9iH,KAAMA,EACNotG,KAAMA,GAAQ,MAEhBl1G,IAAK,YAILtC,KAAK8sH,WACPhgD,EAAS99D,KAAKlO,EAAE,IAAK,CACnBwnE,YAAa,6BACbE,MAAO,CACL,cAAe,QAEjBlmE,IAAK,SACJ+Q,GAAS+5G,KAGPtsH,EAAE,SAAU,CACjBwnE,YAAa,2CACbC,MAAO,CAAC,CACN,gBAAiB0rC,EACjB,UAAWA,EACX,WAAY2Y,EACZ7sD,SAAUA,EACV6iB,UAAW7iB,GAAY6iB,GACtB5iF,KAAK83G,eACRtvC,MAAO,CACL5xD,GAAI5W,KAAKghF,SACTmE,IAAKD,EAAQ,MAAQ,MACrBxO,SAAU3W,EAAW,KAAO,IAC5BA,SAAUA,EACV4L,KAAM,SACN,gBAAiB5L,EAAW,OAAS,KACrC,iBAAkBA,GAAY6iB,EAAW,OAAS,KAClD,YAAa,MACb,gBAAiBiqC,EAAY,IAAM,IACnC,gBAAiBx5G,GAAS45G,GAC1B,gBAAiBC,EAAiB75G,GAAS65G,GAAkB,MAE/D9lD,GAAI,CACFoR,QAASx4E,KAAKw9E,UACdja,MAAOvjE,KAAKutH,QACZ9pD,KAAMzjE,KAAKutH,UAEZzgD,MI5YHkhD,GAAgCxkE,GAAc,CAChDR,WAAY,CACVgkE,YAAaA,GACbiB,QAASjB,MCHTljD,GAAkBlE,GAAe,SACjCK,GAAQ6D,GAAgB7D,MACxB94C,GAAQ28C,GAAgB38C,MACxBm5B,GAAOwjB,GAAgBxjB,KACvBhyB,GAAQw1C,GAAgBx1C,MCN5B,SAAS/b,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI2hE,IAAmB,GAAI,CACvG0X,WAAYrpD,GAASxN,GAAkB,SACvC82D,aAActpD,GAASxN,GAAkB,cACtC,eAGM+2D,GAAe3lE,EAAAA,WAAAA,OAAW,CACnCkiB,OAAQ,CAACwrC,IACThpF,MAAOA,GACPnS,QAAS,CACPs7F,gBAAiB,SAAyBC,GACxC,IAAIj0G,EAAM6I,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAG9E,GAAI66C,GAAcuwD,GAAS,CACzB,IAAIl0G,EAAQqE,GAAI6vG,EAAQv2G,KAAKk2G,YACzBz8B,EAAO/yE,GAAI6vG,EAAQv2G,KAAKi2G,WACxBt2G,EAAU+G,GAAI6vG,EAAQv2G,KAAKmuH,aAAc,MAE7C,OAAKzoE,GAAO/lD,GAQL,CACL0C,MAAOojD,GAAYpjD,GAASC,GAAOm3E,EAAOp3E,EAC1Co3E,KAAM93E,OAAO8jD,GAAYg0B,GAAQn3E,EAAMm3E,GACvCjuD,KAAM9kB,GAAI6vG,EAAQv2G,KAAKg2G,WACvBj2C,SAAUhvD,QAAQrK,GAAI6vG,EAAQv2G,KAAK+1G,iBAX5B,CACLruB,MAAO/lF,OAAO+E,GAAI6vG,EAAQv2G,KAAKkuH,aAAez0C,GAC9C95E,QAASK,KAAKq2G,iBAAiB12G,IAcrC,MAAO,CACL0C,MAAOC,GAAOi0G,EACd98B,KAAM93E,OAAO40G,GACbx2C,UAAU,OChDP5yC,GAAQs4C,GAAsB,CACvC1F,SAAU8E,GAAS9N,IAAmB,GACtC10D,MAAOwiE,GAAShO,QAAe10D,GAAW,IAEzC8rD,IAGQogE,GAAiC5lE,EAAAA,WAAAA,OAAW,CACrDr+C,KAAM6jD,GACNpuD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBpnE,EAAQ8qB,EAAM9qB,MACd09D,EAAW5yC,EAAM4yC,SACrB,OAAOj/D,EAAE,SAAU6pD,GAAU30C,EAAM,CACjCwyD,MAAO,CACLzI,SAAUA,GAEZ2I,SAAU,CACRrmE,MAAOA,KAEPonE,MC7BR,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAapM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI2hE,IAAmB,GAAI,CACvG9uB,MAAO7iB,GAASxN,QAAkBl1D,GAAW,MAE1C+rD,IAGMogE,GAAsC7lE,EAAAA,WAAAA,OAAW,CAC1Dr+C,KAAM8jD,GACNyc,OAAQ,CAAClE,GAAoB0vC,IAC7BhpF,MAAOA,GACPhuB,OAAQ,SAAgB2B,GACtB,IAAI4mF,EAAQ1nF,KAAK0nF,MACbhnF,EAAWV,KAAKo2G,YAAYvmG,KAAI,SAAU0mG,EAAQ9zG,GACpD,IAAIJ,EAAQk0G,EAAOl0G,MACfo3E,EAAO88B,EAAO98B,KACdjuD,EAAO+qF,EAAO/qF,KACdu0C,EAAWw2C,EAAOx2C,SACtB,OAAOj/D,EAAEutH,GAAmB,CAC1B7lD,MAAO,CACLnmE,MAAOA,EACP09D,SAAUA,GAEZ2I,SAAU4S,GAAW9vD,EAAMiuD,GAC3Bn3E,IAAK,UAAUrB,OAAOwB,QAG1B,OAAO3B,EAAE,WAAY,CACnB0nE,MAAO,CACLkf,MAAOA,IAER,CAAC1nF,KAAKsmE,cAAcnN,IAAkBz4D,EAAUV,KAAKsmE,qBC/C5D,SAAS/tD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAwBpM,IC5BH4gD,GD4BOz7C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAaqqC,IAAmBkE,IAAkBF,IAAgBC,IAAiB,GAAI,CACvPH,YAAatzC,GAASjN,IAA0B,GAChD4pD,SAAU38C,GAAS9N,IAAmB,GAGtCw3D,WAAY1pD,GAAS3N,GAAkB,MACpClJ,IAGMwgE,GAA2B/lE,EAAAA,WAAAA,OAAW,CAC/Cr+C,KAAM4jD,GACN2c,OAAQ,CAACmW,GAAS/W,GAAY0tC,GAAkBI,GAAeE,GAAgBH,GAAiBwW,GAAc3nD,IAC9Gt5C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLqzG,WAAYrpH,KAAKiqE,MAGrBsC,SAAU,CACRkiD,mBAAoB,WAGlB,OAAQzuH,KAAK23G,OAA6B,IAApB33G,KAAKuuH,WAA0BvuH,KAAKuuH,WAAZ,MAEhDG,WAAY,WACV,MAAO,CAAC1uH,KAAK23G,MAAQ,eAAiB,gBAAiB33G,KAAKuV,MAAQvV,KAAK23G,MAAQ,gBAAgB12G,OAAOjB,KAAKuV,MAAQ,KAAMvV,KAAKuV,OAASvV,KAAK23G,MAAQ,iBAAiB12G,OAAOjB,KAAKuV,MAAQ,KAAMvV,KAAKi4G,cAG1MntC,MAAO,CACLzoE,MAAO,SAAe0oE,GACpB/qE,KAAKqpH,WAAat+C,GAEpBs+C,WAAY,WACVrpH,KAAKirE,MAAMf,GAAkBlqE,KAAKqpH,cAGtCruG,QAAS,CACPuoD,MAAO,WACLD,GAAatjE,KAAKsoF,MAAM75D,QAE1Bg1C,KAAM,WACJD,GAAYxjE,KAAKsoF,MAAM75D,QAEzBo1F,SAAU,SAAkBvvF,GAC1B,IAAIoe,EAAQ1yC,KAERsM,EAASgoB,EAAMhoB,OACfqiH,EAAgBpuD,GAAUj0D,EAAO3M,SAASmQ,QAAO,SAAUsmC,GAC7D,OAAOA,EAAEitC,YACRxzE,KAAI,SAAUumC,GACf,MAAO,WAAYA,EAAIA,EAAEw4E,OAASx4E,EAAE/zC,SAEtCrC,KAAKqpH,WAAa/8G,EAAOk1G,SAAWmN,EAAgBA,EAAc,GAClE3uH,KAAKmrE,WAAU,WACbz4B,EAAMu4B,MAAM/X,GAAmBxgB,EAAM22E,iBAI3ClqH,OAAQ,SAAgB2B,GACtB,IAAIsJ,EAAOpK,KAAKoK,KACZ21D,EAAW//D,KAAK+/D,SAChBpoC,EAAW33B,KAAK23B,SAChBpiB,EAAOvV,KAAKyuH,mBACZpsH,EAAQrC,KAAKqpH,WACb3oH,EAAWV,KAAKo2G,YAAYvmG,KAAI,SAAU0mG,EAAQ9zG,GACpD,IAAIJ,EAAQk0G,EAAOl0G,MACfqlF,EAAQ6uB,EAAO7uB,MACf/nF,EAAU42G,EAAO52G,QACjBogE,EAAWw2C,EAAOx2C,SAClBz9D,EAAM,UAAUrB,OAAOwB,GAC3B,OAAO6P,GAAQ3S,GAAWmB,EAAEwtH,GAAwB,CAClDnhG,MAAO,CACLu6D,MAAOA,EACP/nF,QAASA,GAEX2C,IAAKA,IACFxB,EAAEutH,GAAmB,CACxBlhG,MAAO,CACL9qB,MAAOA,EACP09D,SAAUA,GAEZ2I,SAAU4S,GAAWi7B,EAAO/qF,KAAM+qF,EAAO98B,MACzCn3E,IAAKA,OAGT,OAAOxB,EAAE,SAAU,CACjBynE,MAAOvoE,KAAK0uH,WACZlmD,MAAO,CACL5xD,GAAI5W,KAAKghF,SACT52E,KAAMA,EACNotG,KAAMx3G,KAAKw3G,MAAQ,KACnBgK,SAAUxhH,KAAKwhH,UAAY,KAC3BjsG,KAAMA,EACNwqD,SAAUA,EACVpoC,SAAUA,EACV,gBAAiBA,EAAW,OAAS,KACrC,eAAgB33B,KAAKk4G,qBAEvB9wC,GAAI,CACF8yC,OAAQl6G,KAAK6jH,UAEf56D,WAAY,CAAC,CACX7+C,KAAM,QACN/H,MAAOA,IAET0pF,IAAK,SACJ,CAAC/rF,KAAKsmE,cAAcnN,IAAkBz4D,EAAUV,KAAKsmE,qBElIxDuoD,GAAgCrlE,GAAc,CAChDR,WAAY,CACVwlE,YAAaA,GACbH,kBAAmBA,GACnBC,uBAAwBA,GACxBQ,QAASN,GACTO,cAAeV,GACfW,mBAAoBV,MDTxB,SAAS/1G,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EA4B3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAE5CxwD,KAAMsiD,KAEJqS,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAGnC26F,GAAc,EACdC,GAAc,IACdC,GAAe,EAEfC,GAAuB,IAEvBC,GAA0B,IAE1BC,GAA2B,GAE3BC,GAA4B,EAC5BC,GAAY,CAACt8C,GAASV,GAAWI,GAAWH,GAAUM,GAAaD,IAE5D3lD,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAatjB,GAAK2tD,GAAkB,CAAC,WAAY,eAAgBgE,IAAgBC,IAAiB,GAAI,CACxPp3B,aAAcrc,GAASxN,IACvB6Q,UAAWrD,GAASxN,IACpBo4D,YAAa5qD,GAAS5N,IACtBg9C,OAAQpvC,GAAS9N,IAAmB,GACpC24D,eAAgB7qD,GAASxN,GAAkB,aAC3Cs4D,eAAgB9qD,GAASxN,GAAkB,aAC3CgoB,OAAQxa,GAASpN,IACjBnmD,IAAKuzD,GAAS9M,GAAyBm3D,IACvC/iH,IAAK04D,GAAS9M,GAAyBk3D,IACvCxS,YAAa53C,GAASxN,IACtBurB,SAAU/d,GAAS9N,IAAmB,GACtC64D,YAAa/qD,GAAS9M,GAAyBq3D,IAC/CS,eAAgBhrD,GAAS9M,GAAyBs3D,IAClDS,qBAAsBjrD,GAAS9M,GAAyBw3D,IACxDQ,gBAAiBlrD,GAAS9M,GAAyBu3D,IACnDrhH,KAAM42D,GAAS9M,GAAyBo3D,IACxC3yC,SAAU3X,GAAS9N,IAAmB,GACtCnzB,KAAMihC,GAAS9N,IAAmB,MAC/B5I,IAGM6hE,GAA+BvnE,EAAAA,WAAAA,OAAW,CACnDr+C,KAAM+jD,GAENwc,OAAQ,CAACwJ,GAAY2M,GAAS/W,GAAY8tC,GAAeE,GAAgBtxC,IACzEyP,cAAc,EACd/oD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLqzG,WAAY3sD,GAAQ18D,KAAKiqE,IAAkB,MAC3C6uC,UAAU,IAGdvsC,SAAU,CACR0jD,OAAQ,WACN,OAAOjwH,KAAKghF,UAEdkvC,eAAgB,WACd,OAAOlwH,KAAKi0G,SAAWj0G,KAAKw8E,UAE9B2zC,iBAAkB,WAChB,OAAOnwH,KAAK4iF,WAAa5iF,KAAK+/D,UAEhCqwD,iBAAkB,WAChB,OAAOpwH,KAAK23B,WAAa33B,KAAKmwH,mBAAqBnwH,KAAK+/D,UAE1DswD,aAAc,WACZ,OAAO3zD,GAAQ18D,KAAKiO,KAAMkhH,KAE5B9qC,YAAa,WACX,OAAO3nB,GAAQ18D,KAAKmM,IAAK8iH,KAE3B3qC,YAAa,WAEX,IAAIhzE,EAAMorD,GAAQ18D,KAAKsR,IAAK49G,IACxBjhH,EAAOjO,KAAKqwH,aACZlkH,EAAMnM,KAAKqkF,YACf,OAAOpY,IAAW36D,EAAMnF,GAAO8B,GAAQA,EAAO9B,GAEhDmkH,cAAe,WACb,IAAIC,EAAQ9zD,GAAUz8D,KAAK4vH,YAAa,GACxC,OAAOW,EAAQ,EAAIA,EAAQnB,IAE7BoB,iBAAkB,WAChB,IAAIj7B,EAAW94B,GAAUz8D,KAAK6vH,eAAgB,GAC9C,OAAOt6B,EAAW,EAAIA,EAAW85B,IAEnCoB,kBAAmB,WACjB,OAAO3kD,GAAQrP,GAAUz8D,KAAK+vH,gBAAiBT,IAA2B,IAE5EoB,uBAAwB,WACtB,OAAO5kD,GAAQrP,GAAUz8D,KAAK8vH,qBAAsBP,IAA4B,IAElFoB,kBAAmB,WAEjB,IAAI1iH,EAAOjO,KAAKqwH,aAChB,OAAOpkD,GAAUh+D,KAAUA,EAAO,GAAKA,EAAKoF,WAAW2L,MAAM,KAAK,IAAM,IAAIrc,QAE9EiuH,mBAAoB,WAClB,OAAO1kD,GAAQ,GAAIlsE,KAAK2wH,mBAAqB,IAE/CE,aAAc,WACZ,IAAIxuH,EAAQrC,KAAKqpH,WACjB,OAAO3jE,GAAOrjD,GAAS,GAAKA,EAAM48B,QAAQj/B,KAAK2wH,oBAEjDnsC,eAAgB,WACd,IAAIzF,EAAU99E,GAAOjB,KAAKq/E,QAAQvvE,OAAO23C,IACrCy+B,EAAK,IAAIhH,KAAKiH,aAAapH,GAC/B,OAAOmH,EAAG9G,kBAAkBC,QAE9ByxC,YAAa,WACX,OAAOnwC,GAAY3gF,KAAKwkF,iBAE1BusC,iBAAkB,WAEhB,IAAIl0D,EAAY78D,KAAK2wH,kBACjBzqC,EAAK,IAAIhH,KAAKiH,aAAanmF,KAAKwkF,eAAgB,CAClD/3D,MAAO,UACPukG,aAAa,EACb5qC,qBAAsB,EACtBC,sBAAuBxpB,EACvBypB,sBAAuBzpB,EACvB0pB,SAAU,aAGZ,OAAOL,EAAG1G,QAEZyxC,kBAAmB,WACjB,IAAIxB,EAAczvH,KAAKyvH,YACvB,OAAO9pD,GAAgB8pD,GAAeA,EAAczvH,KAAK+wH,kBAE3Dv6C,cAAe,WACb,OAAO3hC,GAAcA,GAAc,GAAI70C,KAAKy2E,SAAU,GAAI,CACxD9K,KAAM,QACNugB,KAAMlsF,KAAKwkF,eACX9N,SAAU12E,KAAK+/D,SAAW,KAAO,KACjC2P,MAAO1vE,KAAKkoE,aAGhBgpD,kBAAmB,WACjB,IAAIjB,EAASjwH,KAAKiwH,OACd5tH,EAAQrC,KAAKqpH,WACb1xF,EAAW33B,KAAKowH,iBAChBrwD,EAAW//D,KAAK+/D,SAChBpqD,EAAQ3V,KAAK2V,MACbs7G,EAAoBjxH,KAAKixH,kBACzBE,GAAYzrE,GAAOrjD,GACvB,OAAOwyC,GAAcA,GAAc,CACjCswC,IAAKnlF,KAAK8wH,YAAc,MAAQ,OAC/B9wH,KAAKy2E,SAAU,GAAI,CACpB7/D,GAAIq5G,EACJtkD,KAAM,aACN+K,SAAU3W,EAAW,KAAO,IAC5B,YAAa,MACb,aAAc//D,KAAKkoE,WAAa,KAChC,gBAAiBloE,KAAKkhF,cAAgB,KAEtC,gBAA0B,IAAVvrE,IAAoBw7G,GAAYx5F,EAAW,OAAS,KACpE,gBAAiBA,EAAW,OAAS,KAErC,gBAAiBtkB,GAASrT,KAAKqkF,aAC/B,gBAAiBhxE,GAASrT,KAAKskF,aAG/B,gBAAiB6sC,EAAW9uH,EAAQ,KACpC,iBAAkB8uH,EAAWF,EAAkB5uH,GAAS,SAI9DyoE,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAU5nE,GACtErC,KAAKqpH,WAAa3sD,GAAQr6D,EAAO,SAC/ByyC,GAAgB8zB,GAAQ,cAAc,SAAoBvmE,GAC5DrC,KAAKirE,MAAMf,GAAkB7nE,MAC3ByyC,GAAgB8zB,GAAQ,YAAY,SAAkBwoD,GACpDA,GACFpxH,KAAKqxH,iBAELv8E,GAAgB8zB,GAAQ,YAAY,SAAkB0oD,GACpDA,GACFtxH,KAAKqxH,iBAELzoD,IACJwC,QAAS,WAEPprE,KAAKuxH,iBAAmB,KACxBvxH,KAAKwxH,kBAAoB,KACzBxxH,KAAKyxH,aAAc,GAErBnmD,cAAe,WACbtrE,KAAKqxH,eAIPhpC,YAAa,WACXroF,KAAKqxH,eAEPr2G,QAAS,CAEPuoD,MAAO,WACAvjE,KAAK+/D,UACRuD,GAAatjE,KAAKsoF,MAAMopC,UAG5BjuD,KAAM,WACCzjE,KAAK+/D,UACRyD,GAAYxjE,KAAKsoF,MAAMopC,UAI3BC,WAAY,WACV3xH,KAAKirE,MAAM/X,GAAmBlzD,KAAKqpH,aAErCuI,UAAW,SAAmBrwC,GAG5B,IAAIl/E,EAAQrC,KAAKqpH,WAEjB,IAAKrpH,KAAK+/D,WAAara,GAAOrjD,GAAQ,CACpC,IAAI4L,EAAOjO,KAAKqwH,aAAe9uC,EAC3Bp1E,EAAMnM,KAAKqkF,YACX/yE,EAAMtR,KAAKskF,YACXutC,EAAa7xH,KAAK4wH,mBAClBhtF,EAAO5jC,KAAK4jC,KAEhBvhC,EAAQ8pE,IAAW9pE,EAAQ8J,GAAO8B,GAAQA,EAAO9B,EAAM8B,EAEvD5L,EAAQ8pE,GAAU9pE,EAAQwvH,GAAcA,EAExC7xH,KAAKqpH,WAAahnH,EAAQiP,EAAMsyB,EAAOz3B,EAAMmF,EAAMjP,EAAQ8J,EAAMy3B,EAAOtyB,EAAMnF,EAAM9J,IAGxFyvH,YAAa,SAAqBx9F,GAChCt0B,KAAK84G,UAAW94G,KAAK+/D,UAAkC,UAAfzrC,EAAMlf,MAEhD28G,OAAQ,WACN,IAAIF,EAAa1mH,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,EACjF9I,EAAQrC,KAAKqpH,WAEb3jE,GAAOrjD,GACTrC,KAAKqpH,WAAarpH,KAAKqkF,YAEvBrkF,KAAK4xH,UAAU,EAAKC,IAGxBG,SAAU,WACR,IAAIH,EAAa1mH,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,EACjF9I,EAAQrC,KAAKqpH,WAEb3jE,GAAOrjD,GACTrC,KAAKqpH,WAAarpH,KAAK4jC,KAAO5jC,KAAKskF,YAActkF,KAAKqkF,YAEtDrkF,KAAK4xH,WAAW,EAAIC,IAGxBr0C,UAAW,SAAmBlpD,GAC5B,IAAImkD,EAAUnkD,EAAMmkD,QAChBoQ,EAASv0D,EAAMu0D,OACfC,EAAUx0D,EAAMw0D,QAChBmpC,EAAU39F,EAAM29F,QAGpB,KAAIjyH,KAAK+/D,UAAY//D,KAAK4iF,UAAYiG,GAAUC,GAAWmpC,IAIvD91D,GAAcqzD,GAAW/2C,GAAU,CAOrC,GALApR,GAAU/yC,EAAO,CACfmzC,aAAa,IAIXznE,KAAKyxH,YAEP,OAGFzxH,KAAKkyH,cAED/1D,GAAc,CAAC+W,GAASV,IAAYiG,IAEtCz4E,KAAKyxH,aAAc,EAEfh5C,IAAYvF,GACdlzE,KAAKmyH,iBAAiB79F,EAAOt0B,KAAK+xH,QACzBt5C,IAAYjG,IACrBxyE,KAAKmyH,iBAAiB79F,EAAOt0B,KAAKgyH,WAIhCv5C,IAAY1F,GACd/yE,KAAK+xH,OAAO/xH,KAAK0wH,wBACRj4C,IAAY3F,GACrB9yE,KAAKgyH,SAAShyH,KAAK0wH,wBACVj4C,IAAY7F,GACrB5yE,KAAKqpH,WAAarpH,KAAKqkF,YACd5L,IAAYhG,KACrBzyE,KAAKqpH,WAAarpH,KAAKskF,eAK/B8tC,QAAS,SAAiB99F,GAExB,IAAImkD,EAAUnkD,EAAMmkD,QAChBoQ,EAASv0D,EAAMu0D,OACfC,EAAUx0D,EAAMw0D,QAChBmpC,EAAU39F,EAAM29F,QAGhBjyH,KAAK+/D,UAAY//D,KAAK4iF,UAAYiG,GAAUC,GAAWmpC,GAIvD91D,GAAcqzD,GAAW/2C,KAC3BpR,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfznE,KAAKkyH,cACLlyH,KAAKyxH,aAAc,EACnBzxH,KAAK2xH,eAGTQ,iBAAkB,SAA0B79F,EAAO+9F,GACjD,IAAI3/E,EAAQ1yC,KAER+oD,EAAOz0B,GAAS,GAChBlf,EAAO2zC,EAAK3zC,KACZ8iE,EAASnvB,EAAKmvB,OAElB,IAAKl4E,KAAK+/D,WAAa//D,KAAK4iF,SAAU,CAEpC,GAAa,cAATxtE,GAAwB8iE,EAE1B,OAGFl4E,KAAKkyH,cAELG,EAAQ,GACR,IAAI/gC,EAAYtxF,KAAKywH,kBACjBoB,EAAa7xH,KAAK0wH,uBAClBH,EAAQvwH,KAAKswH,cACb/6B,EAAWv1F,KAAKwwH,iBAEpBxwH,KAAKuxH,iBAAmBp8F,YAAW,WACjC,IAAI1rB,EAAQ,EACZipC,EAAM8+E,kBAAoB75B,aAAY,WAKpC06B,EAAQ5oH,EAAQ6nF,EAAY,EAAIugC,GAChCpoH,MACC8rF,KACFg7B,KAGP+B,UAAW,SAAmBh+F,GAE5B,IAAIi6C,EAAQj6C,GAAS,GACjBlf,EAAOm5D,EAAMn5D,KACb8iE,EAAS3J,EAAM2J,OAIN,YAAT9iE,GAAsB8iE,IAK1B7Q,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfznE,KAAKkyH,cACLlyH,KAAKuyH,YAAW,GAEhBvyH,KAAK2xH,eAEPY,WAAY,SAAoBnrD,GAG9B,IACED,GAAWC,EAAItrD,SAAS0jD,KAAM,UAAWx/D,KAAKsyH,WAAW,GACzDnrD,GAAWC,EAAItrD,SAAS0jD,KAAM,WAAYx/D,KAAKsyH,WAAW,GAC1D,MAAO1wE,MAEXswE,YAAa,WACX1mD,aAAaxrE,KAAKuxH,kBAClBr6B,cAAcl3F,KAAKwxH,mBACnBxxH,KAAKuxH,iBAAmB,KACxBvxH,KAAKwxH,kBAAoB,MAE3BH,YAAa,WACXrxH,KAAKkyH,cACLlyH,KAAKuyH,YAAW,GAChBvyH,KAAKyxH,aAAc,IAGvBtyH,OAAQ,SAAgB2B,GACtB,IAAI+zE,EAAS70E,KAETiwH,EAASjwH,KAAKiwH,OACd5tH,EAAQrC,KAAKqpH,WACbpV,EAASj0G,KAAKkwH,eACdttC,EAAW5iF,KAAKmwH,iBAChB3zC,EAAWx8E,KAAKw8E,SAChBzc,EAAW//D,KAAK+/D,SAChBkxD,EAAoBjxH,KAAKixH,kBACzBE,GAAYzrE,GAAOrjD,GAEnBmwH,EAAa,SAAoBH,EAAS3qC,EAAO+qC,EAASC,EAAQ1nC,EAAUD,EAAa4nC,GAC3F,IAAI9E,EAAQ/sH,EAAE2xH,EAAS,CACrBtlG,MAAO,CACLmiD,MAAOuF,EAAOikC,SAAW,IAAM,MAEjCtwC,MAAO,CACL,cAAe,UAGfhC,EAAQ,CACVsyC,SAAUjkC,EAAOikC,UAGfnkF,EAAU,SAAiBL,GACxByrC,GAAa6iB,IAChBvb,GAAU/yC,EAAO,CACfmzC,aAAa,IAGfoN,EAAO09C,YAAW,GAGlBjvD,GAAahvC,EAAM2iD,eAEnBpC,EAAOs9C,iBAAiB79F,EAAO+9F,KAInC,OAAOvxH,EAAE,SAAU,CACjBwnE,YAAa,gCACbC,MAAO,CACL,QAASiU,GAEXhU,MAAO,CACLkO,SAAU,KACVthE,KAAM,SACN2qD,SAAUA,GAAY6iB,GAAYmI,EAClC,gBAAiBhrB,GAAY6iB,GAAYmI,EAAc,OAAS,KAChE,gBAAiBklC,EACjB,aAAcvoC,GAAS,KACvB,oBAAqBsD,GAAY,MAEnC5jB,GAAI,CACFosC,UAAW7+E,EACXi+F,WAAYj+F,GAEdryB,IAAKowH,GAAU,KACf3mC,IAAK2mC,GACJ,CAAC79C,EAAOvO,cAAcqsD,EAAUnsD,IAAUqnD,KAI3CgF,EAAaL,EAAWxyH,KAAK+xH,OAAQ/xH,KAAK2vH,eAAgB/9C,GAAW,MAAO,WAAW,EAAO/X,IAC9Fi5D,EAAaN,EAAWxyH,KAAKgyH,SAAUhyH,KAAK0vH,eAAgBh+C,GAAW,MAAO,aAAa,EAAOhZ,IAClG6kD,EAAUz8G,IAEVd,KAAKoK,OAAS21D,IAChBw9C,EAAUz8G,EAAE,QAAS,CACnB0nE,MAAO,CACLpzD,KAAM,SACNhL,KAAMpK,KAAKoK,KACXotG,KAAMx3G,KAAKw3G,MAAQ,KAEnBn1G,MAAOrC,KAAK6wH,cAEdvuH,IAAK,YAIT,IAAIywH,EAAQjyH,EACZ,SAAU,CACRwnE,YAAa,cACbC,MAAO,CACL,SAAUiU,EACV,qBAAsBA,EACtB,qBAAsBA,EACtB,aAAcA,EACd,gBAAiBA,EACjB,eAAgBA,EAChB,gBAAiBA,GAEnBhU,MAAOxoE,KAAKkxH,kBACZ5uH,IAAK,SACLypF,IAAK,WACJ,CAACjrF,EAAE,MAAOqwH,EAAWF,EAAkB5uH,GAASrC,KAAKy8G,aAAe,MACvE,OAAO37G,EAAE,MAAO,CACdwnE,YAAa,iCACbC,MAAO,CAAC,CACNxI,SAAUA,EACV6iB,SAAUA,EACVrf,MAAOvjE,KAAK84G,SACZ,gBAAiB7E,GAAUz3B,EAC3B,UAAWy3B,IAAWz3B,EACtB,uBAAwBA,EACxB,cAAeA,GACdx8E,KAAK83G,cAAe93G,KAAKi4G,YAC5BzvC,MAAOxoE,KAAKw2E,cACZpP,GAAI,CACFoR,QAASx4E,KAAKw9E,UACdw1C,MAAOhzH,KAAKoyH,QAEZ,SAAUpyH,KAAK8xH,YACf,QAAS9xH,KAAK8xH,cAEft1C,EAAW,CAACq2C,EAAYtV,EAASwV,EAAOD,GAAc,CAACA,EAAYvV,EAASwV,EAAOF,OEviBtFI,GAAoCzpE,GAAc,CACpDR,WAAY,CACVgnE,gBAAiBA,GACjBkD,YAAalD,MCLjB,SAASz3G,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAcpM,IClBH4gD,GDkBOz7C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIosC,IAAU,GAAI,CAC9FlhB,SAAU8E,GAAS9N,IAAmB,GACtCo8D,SAAUtuD,GAAS9N,IAAmB,GACtCwgB,KAAM1S,GAAS9N,IAAmB,GAClCq8D,YAAavuD,GAASxN,GAAkB,cACxCzjD,IAAKixD,GAASxN,GAAkB,QAChCqY,MAAO7K,GAASxN,IAChBoT,QAAS5F,GAASxN,GAAkB,gBACjCjJ,IAGMilE,GAAwB5qE,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAMgkD,GACNuc,OAAQ,CAACmW,GAASra,IAClBt5C,MAAOA,GACPnS,QAAS,CACPs4G,SAAU,SAAkBh/F,GAC1B,IAAIlf,EAAOkf,EAAMlf,KACbqjE,EAAUnkD,EAAMmkD,QAEfz4E,KAAK+/D,UAAsB,UAAT3qD,IAA6B,YAATA,GAAsBqjE,IAAYlG,KAC3EvyE,KAAKirE,MAAM7V,MAIjBj2D,OAAQ,SAAgB2B,GACtB,IAAI4uE,EAAQ1vE,KAAK0vE,MACb97D,EAAM5T,KAAK4T,IACX62D,EAAUzqE,KAAKyqE,QACf8M,EAAOv3E,KAAKu3E,KACZxX,EAAW//D,KAAK+/D,SAChBwzD,EAAQvzH,KAAKghF,SACbwyC,EAAaxzH,KAAKghF,OAAO,cACzByyC,EAAU3yH,IAETd,KAAKmzH,UAAapzD,IACrB0zD,EAAU3yH,EAAEsnE,GAAc,CACxBE,YAAa,oBACbn7C,MAAO,CACL+6C,UAAWloE,KAAKozH,aAElB5qD,MAAO,CACL,gBAAiB+qD,EACjB,mBAAoBC,EACpB,oBAAqB,UAEvBpsD,GAAI,CACFqB,MAAOzoE,KAAKszH,SACZ96C,QAASx4E,KAAKszH,aAKpB,IAAII,EAAO5yH,EAAE,OAAQ,CACnBwnE,YAAa,+CACbE,MAAO,CACL5xD,GAAI48G,IAELxzH,KAAKsmE,iBAAmBoJ,GAC3B,OAAO5uE,EAAEq6E,GAAQ,CACf7S,YAAa,uDACbC,MAAO,CACLxI,SAAUA,GAEZ5yC,MAAO,CACLvZ,IAAKA,EACL62D,QAASA,EACT8M,KAAMA,GAER/O,MAAO,CACL5xD,GAAI28G,EACJ7jD,MAAOA,GAAS,KAChB,kBAAmB8jD,IAEpB,CAACE,EAAMD,OC1Fd,SAAS3sE,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAEhL,SAAS/uC,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAiC3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAM0hD,GACNtP,aAAc,KAEZuiB,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAGnCqhF,GAAQ,CAAC,OAAQ,QAAS,MAAO,MAAO,UAExCge,GAA+B,CAAC,cAAe,SAAU,QAAS,UAAUzyG,KAAK,KAIjF0yG,GAAoB,SAA2BpzG,GACjD,OAAO68C,GAAa78C,GAAKxM,QAAQmvC,EAAW,QAI1C0wE,GAAY,SAAmBC,GACjC,OAAO7yH,GAAO6yH,GAAMjkH,KAAI,SAAU+D,GAChC,OAAOuf,GAAK9f,GAASO,OACpB9D,QAAO,SAAU8D,EAAKnR,EAAOo4C,GAC9B,OAAOjnC,EAAIjR,OAAS,GAAKk4C,EAAIhsC,QAAQ+E,KAASnR,MAK9CsxH,GAAoB,SAA2Bz/F,GACjD,OAAOuxB,GAASvxB,GAASA,EAAQ2xB,GAAQ3xB,IAASA,EAAMhoB,OAAOjK,OAAc,IAI3E2xH,GAAiB,WACnB,MAAO,CACLrkG,IAAK,GACLskG,MAAO,GACP7W,QAAS,GACT8W,UAAW,KAKX/mG,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAaqqC,IAAmBgE,IAAgBC,IAAiB,GAAI,CAChN6b,cAAetvD,GAASxN,GAAkB,OAC1C+8D,iBAAkBvvD,GAASxN,GAAkB,qBAG7Cg9D,YAAaxvD,GAAS9N,IAAmB,GACzCu9D,iBAAkBzvD,GAASxN,GAAkB,oBAC7CgvD,iBAAkBxhD,GAASxN,GAAkB,aAG7Ck9D,yBAA0B1vD,GAASpN,GAAwBk8D,IAE3Da,WAAY3vD,GAAS1N,GAAkB,IACvCu3D,WAAY7pD,GAASrN,IACrBi9D,QAAS5vD,GAASxN,IAClBq9D,UAAW7vD,GAASxN,GAAkB,QAAQ,SAAUh1D,GACtD,OAAO85D,GAAcw5C,GAAOtzG,MAE9BsyH,eAAgB9vD,GAASxN,GAAkB,kBAC3C5tB,MAAOo7B,GAAS3N,IAChB09D,cAAe/vD,GAASxN,GAAkB,qBAE1Cw9D,aAAchwD,GAAS9N,IAAmB,GAE1C+9D,aAAcjwD,GAAS9N,IAAmB,GAC1Cg+D,YAAalwD,GAAS9N,IAAmB,GACzC0lD,YAAa53C,GAASxN,GAAkB,cAGxC29D,eAAgBnwD,GAAS9N,IAAmB,GAE5C97B,UAAW4pC,GAASpN,IACpBw9D,SAAUpwD,GAASrN,IACnB09D,SAAUrwD,GAAS9N,IAAmB,GACtCo+D,eAAgBtwD,GAASxN,GAAkB,cAC3C+9D,gBAAiBvwD,GAASxN,GAAkB,eAC5Cg+D,aAAcxwD,GAAS5N,IACvBq+D,WAAYzwD,GAASxN,GAAkB,gBACpChJ,IAGMknE,GAAyB9sE,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMikD,GACNsc,OAAQ,CAACwK,GAAgB2L,GAAS/W,GAAY0tC,GAAkBI,GAAeE,GAAgBtxC,IAC/Ft5C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL8iG,UAAU,EACV0c,OAAQ,GACR1B,KAAM,GAEN2B,YAAa,GAEbC,UAAW1B,KACX2B,WAAY,OAGhBppD,SAAU,CACRqpD,gBAAiB,WACf,OAAO51H,KAAKy0H,SAAWz0H,KAAKghF,OAAO,cAErC60C,kBAAmB,WAEjB,OAAO15D,GAAcw5C,GAAO31G,KAAK00H,WAAa10H,KAAK00H,UAAY,QAEjEoB,mBAAoB,WAClB,IAAI/1D,EAAW//D,KAAK+/D,SAChBy3C,EAAOx3G,KAAKw3G,KAChB,OAAO3iE,GAAcA,GAAc,GAAI70C,KAAKw0H,YAAa,GAAI,CAE3D59G,GAAI5W,KAAK41H,gBACTvzH,MAAOrC,KAAKw1H,OACZz1D,SAAUA,EACVy3C,KAAMA,KAGVue,sBAAuB,WACrB,OAAOlhF,GAAcA,GAAc,GAAI6R,GAAK1mD,KAAK42E,YAAa,CAAC1iB,GAAoBC,MAAwB,GAAI,CAC7GsP,KAAMzjE,KAAKg2H,YACX9b,OAAQl6G,KAAKi2H,cACb1yD,MAAOvjE,KAAKk2H,aACZznG,MAAOzuB,KAAKm2H,aACZ39C,QAASx4E,KAAKo2H,eACdtT,MAAO9iH,KAAK8iH,SAGhBuT,kBAAmB,WAEjB,OAAOp1H,GAAOjB,KAAKi7B,WAAWnrB,OAAO+1C,IAAU/1C,OAAO23C,IAAUvmC,KAAK,KAEvEo1G,wBAAyB,WAKvB,IAAIr7F,EAAYj7B,KAAKq2H,kBACrB,OAAOp7F,EAAY,IAAIpb,OAAO,IAAI5e,OAAO2yH,GAAkB34F,GAAY,OAAS,MAElFs7F,eAAgB,WAMd,IAAIC,EAASx2H,KAAKq2H,kBAAkB9zH,OAAO,GAC3C,MAAkB,MAAXi0H,EAAiB,GAAGv1H,OAAOu1H,EAAQ,KAAOA,GAEnDC,gCAAiC,WAE/B,OAAOx1H,GAAOjB,KAAKu0H,0BAA0BzkH,OAAO23C,IAAUvmC,KAAK,KAAKiS,QAE1EujG,iBAAkB,WAChB,IAAIhkF,EAAQ1yC,KAKRw1H,EAASriG,GAAKnzB,KAAKw1H,QACvB,MAAkB,KAAXA,IAAkBx1H,KAAK22H,UAAUnB,GAAQzlH,MAAK,SAAU0vB,GAC7D,OAAQ08B,GAAczpB,EAAMohF,KAAMr0F,IAAMiT,EAAMkkF,YAAYn3F,OAG9Do3F,cAAe,WACb,OAAO72H,KAAK01H,UAAUxB,WAExB4C,iBAAkB,WAChB,OAAO92H,KAAK62H,cAAcl0H,OAAS,GAErCo0H,YAAa,WACX,OAAO/2H,KAAK01H,UAAUtY,SAExB4Z,eAAgB,WACd,OAAOh3H,KAAK+2H,YAAYp0H,OAAS,GAEnCs0H,eAAgB,WACd,IAAIxtF,EAAQzpC,KAAKypC,MACjB,OAAOqc,GAASrc,IAAUA,GAAS,GAAKzpC,KAAK8zH,KAAKnxH,QAAU8mC,IAGhEqhC,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,GACtE/qE,KAAK8zH,KAAOD,GAAU9oD,MACpBj2B,GAAgB8zB,GAAQ,QAAQ,SAAcmC,EAAU+I,GAErDV,GAAWrI,EAAU/qE,KAAKiqE,MAC7BjqE,KAAKirE,MAAMf,GAAkBa,GAG1BqI,GAAWrI,EAAU+I,KACxB/I,EAAW9pE,GAAO8pE,GAAUj7D,OAAO23C,IACnCqsB,EAAW7yE,GAAO6yE,GAAUhkE,OAAO23C,IACnCznD,KAAKy1H,YAAc3hD,EAAShkE,QAAO,SAAUi4E,GAC3C,OAAQ5rB,GAAc4O,EAAUgd,UAGlCjzC,GAAgB8zB,GAAQ,aAAa,SAAmBmC,EAAU+I,GAE/DV,GAAWrI,EAAU+I,IACxB9zE,KAAKirE,MAAM/U,GAAsB6U,EAASkpD,MAAOlpD,EAASqyC,QAASryC,EAASmpD,cAE5EtrD,IACJwC,QAAS,WAGPprE,KAAK8zH,KAAOD,GAAU7zH,KAAKiqE,MAE7B+S,QAAS,WAEP,IAAIgmC,EAAQhlD,GAAQ,OAAQh+D,KAAKm3E,KAE7B6rC,GACFh8C,GAAQg8C,EAAO,QAAShjH,KAAK8iH,MAAOnsD,KAGxC2U,cAAe,WACb,IAAI03C,EAAQhlD,GAAQ,OAAQh+D,KAAKm3E,KAE7B6rC,GACF97C,GAAS87C,EAAO,QAAShjH,KAAK8iH,MAAOnsD,KAGzC37C,QAAS,CACPk8G,OAAQ,SAAgB1B,GAItB,GAHAA,EAAS3vE,GAAS2vE,GAAUA,EAASx1H,KAAKw1H,QAGtCx1H,KAAK+/D,UAA6B,KAAjB5sC,GAAKqiG,KAAkBx1H,KAAKi3H,eAAjD,CAKA,IAAIvpD,EAAS1tE,KAAKm3H,UAAU3B,GAG5B,GAAI9nD,EAAOumD,MAAMtxH,OAAS,GAA2B,IAAtB+qE,EAAO/9C,IAAIhtB,OAIxC,GAAIi7D,GAAQ59D,KAAKo3H,WAAY,UAG3Bp3H,KAAKw1H,OAAS,OACT,CACL,IAAI6B,EAAuB,GAAGp2H,OAAO6lD,GAAmB4mB,EAAO0vC,SAAUt2D,GAAmB4mB,EAAOwmD,YACnGl0H,KAAKw1H,OAAS9nD,EAAO/9C,IAAI7f,QAAO,SAAU8D,GACxC,OAAOuoD,GAAck7D,EAAsBzjH,MAC1CsN,KAAKlhB,KAAKu2H,gBAAgBt1H,OAAOo2H,EAAqB10H,OAAS,EAAI3C,KAAKu2H,eAAeh0H,OAAO,GAAK,IAItGmrE,EAAOumD,MAAMtxH,OAAS,IAKxB3C,KAAK8zH,KAAO7yH,GAAOjB,KAAK8zH,KAAMpmD,EAAOumD,QAGvCj0H,KAAK01H,UAAYhoD,EAGjB1tE,KAAKujE,UAEP+zD,UAAW,SAAmB1jH,GAExB5T,KAAK+/D,WAQT//D,KAAK8zH,KAAO9zH,KAAK8zH,KAAKhkH,QAAO,SAAU2vB,GACrC,OAAOA,IAAM7rB,OAGjBkvG,MAAO,WACL,IAAIjuC,EAAS70E,KAEbA,KAAKw1H,OAAS,GACdx1H,KAAK8zH,KAAO,GACZ9zH,KAAKmrE,WAAU,WACb0J,EAAO4gD,YAAc,GACrB5gD,EAAO6gD,UAAY1B,SAIvBmC,aAAc,SAAsB7hG,GAElC,KAAIt0B,KAAK+/D,UAAY9Z,GAAQ3xB,IAAUA,EAAMhoB,OAAO+9G,WAApD,CAMA,IAAImL,EAASzB,GAAkBz/F,GAC3BijG,EAAcv3H,KAAKs2H,wBAEnBt2H,KAAKw1H,SAAWA,IAClBx1H,KAAKw1H,OAASA,GAIhBA,EAASj4D,GAASi4D,GAEd+B,GAAeA,EAAYjjH,KAAKkhH,EAAO9jH,OAAO,IAGhD1R,KAAKk3H,SAGLl3H,KAAK01H,UAAuB,KAAXF,EAAgBxB,KAAmBh0H,KAAKm3H,UAAU3B,KAGvES,cAAe,SAAuB3hG,GAGpC,IAAKt0B,KAAK+/D,UAAY//D,KAAKq0H,YAAa,CACtC,IAAImB,EAASzB,GAAkBz/F,GAG3Bt0B,KAAKw1H,SAAWA,IAClBx1H,KAAKw1H,OAASA,GAGhBx1H,KAAKk3H,WAGTd,eAAgB,SAAwB9hG,GAItC,IAAIt0B,KAAK+/D,UAAa9Z,GAAQ3xB,GAA9B,CAIA,IAAImkD,EAAUnkD,EAAMmkD,QAChBp2E,EAAQiyB,EAAMhoB,OAAOjK,OAAS,GAG7BrC,KAAK60H,cAAgBp8C,IAAY/F,IAM3B1yE,KAAKg1H,gBAAmBv8C,IAAYnG,IAAkBmG,IAAYlG,IAA0B,KAAVlwE,IAE3FglE,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfznE,KAAK8zH,KAAO9zH,KAAK8zH,KAAKpiH,MAAM,GAAI,KAThC21D,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfznE,KAAKk3H,YAUTrgD,QAAS,SAAiBviD,GACxB,IAAI6zD,EAASnoF,KAETw3H,EAAsBx3H,KAAKy2H,gCAE1Be,GAAwBx5D,GAAQw5D,EAAqBljG,EAAMhoB,QAAQ,IACtEtM,KAAKmrE,WAAU,WACbgd,EAAO5kB,YAIb2yD,aAAc,SAAsB5hG,GAClC,IAAIk0D,EAASxoF,KAEW,QAApBA,KAAK21H,aACP31H,KAAK21H,WAAa,KAClB31H,KAAKmrE,WAAU,WACb5M,IAAU,WACJiqB,EAAOswB,WACTtwB,EAAOvd,MAAMhX,GAAkB3/B,GAE/Bk0D,EAAOmtC,WAAa,cAM9BK,YAAa,SAAqB1hG,GAChC,IAAIo0D,EAAS1oF,KAEW,OAApBA,KAAK21H,aACP31H,KAAK21H,WAAa,MAClB31H,KAAKmrE,WAAU,WACb5M,IAAU,WACHmqB,EAAOowB,WACVpwB,EAAOzd,MAAMjY,GAAiB1+B,GAE9Bo0D,EAAOitC,WAAa,cAM9Br4C,UAAW,SAAmBhpD,GAC5Bt0B,KAAK84G,UAAW,EAChB94G,KAAKirE,MAAM/W,GAAoB5/B,IAEjCmjG,WAAY,SAAoBnjG,GAC9Bt0B,KAAK84G,UAAW,EAChB94G,KAAKirE,MAAM9W,GAAqB7/B,IAElCojF,gBAAiB,WACf,IAAI9tB,EAAS5pF,KAEbA,KAAKmrE,WAAU,WACb5M,IAAU,WACJqrB,EAAO2tB,WACT3tB,EAAOrmB,eAMfA,MAAO,WACAvjE,KAAK+/D,UACRuD,GAAatjE,KAAKo3H,aAGtB3zD,KAAM,WACCzjE,KAAK+/D,UACRyD,GAAYxjE,KAAKo3H,aAIrBT,UAAW,SAAmBnB,GAE5BA,EAASniH,GAASmiH,GAClB,IAAI+B,EAAcv3H,KAAKs2H,wBAIvB,OAAQiB,EAAc/B,EAAOx2G,MAAMu4G,GAAe,CAAC/B,IAAS3lH,IAAIsjB,IAAMrjB,OAAO23C,KAE/E0vE,UAAW,SAAmB3B,GAC5B,IAAIkC,EAAS13H,KAKT8zH,EAAO9zH,KAAK22H,UAAUnB,GAEtB9nD,EAAS,CACX/9C,IAAKmkG,EACLG,MAAO,GACP7W,QAAS,GACT8W,UAAW,IAmBb,OAhBAJ,EAAK5mH,SAAQ,SAAU0G,GACjBuoD,GAAcu7D,EAAO5D,KAAMlgH,IAAQuoD,GAAcuR,EAAOumD,MAAOrgH,GAE5DuoD,GAAcuR,EAAOwmD,UAAWtgH,IACnC85D,EAAOwmD,UAAUllH,KAAK4E,GAEf8jH,EAAOd,YAAYhjH,GAE5B85D,EAAOumD,MAAMjlH,KAAK4E,GAGbuoD,GAAcuR,EAAO0vC,QAASxpG,IACjC85D,EAAO0vC,QAAQpuG,KAAK4E,MAInB85D,GAETkpD,YAAa,SAAqBhjH,GAChC,IAAIyhH,EAAer1H,KAAKq1H,aACxB,OAAO1vD,GAAgB0vD,IAAgBA,EAAazhH,IAEtDwjH,SAAU,WAGR,OAAO32D,GAAO,IAAIx/D,OAAO8jH,GAAU/kH,KAAK41H,kBAAmB51H,KAAKm3E,MAGlEwgD,cAAe,SAAuB5uE,GACpC,IAAIorE,EAAgBprE,EAAKorE,cACrBC,EAAmBrrE,EAAKqrE,iBACxB8C,EAASnuE,EAAKmuE,OACdR,EAAmB3tE,EAAK2tE,iBACxB32D,EAAWhX,EAAKgX,SAChBu0D,EAAmBvrE,EAAKurE,iBACxBE,EAAazrE,EAAKyrE,WAClB9F,EAAa3lE,EAAK2lE,WAClBkJ,EAAgB7uE,EAAK6uE,cACrBlD,EAAY3rE,EAAK2rE,UACjBC,EAAiB5rE,EAAK4rE,eACtBkD,EAAc9uE,EAAK8uE,YACnBC,EAAY/uE,EAAK+uE,UACjBb,EAAiBluE,EAAKkuE,eACtBrC,EAAgB7rE,EAAK6rE,cACrBG,EAAchsE,EAAKgsE,YACnBtY,EAAc1zD,EAAK0zD,YACnB6a,EAAYvuE,EAAKuuE,UACjBrC,EAAWlsE,EAAKksE,SAChBC,EAAWnsE,EAAKmsE,SAChBC,EAAiBpsE,EAAKosE,eACtBG,EAAavsE,EAAKusE,WAClBxB,EAAO/qE,EAAK+qE,KACZhzH,EAAId,KAAK2/G,eAEToY,EAAQjE,EAAKjkH,KAAI,SAAU+D,GAE7B,OADAA,EAAMP,GAASO,GACR9S,EAAEuyH,GAAU,CACjB9qD,MAAO0sD,EAGP9nG,MAAO,CACL4yC,SAAUA,EACVozD,SAAU4B,EACVx9C,KAAM29C,EACN9B,YAAa+B,EACbvhH,IAAK,KACL87D,MAAO97D,EACP62D,QAAS6qD,GAEXluD,GAAI,CACFlG,OAAQ,WACN,OAAOo2D,EAAU1jH,KAGrBtR,IAAK,QAAQrB,OAAO2S,IACnBA,MAGDm0G,EAAoB4M,GAAkBmD,EAAY93H,KAAKghF,OAAO,wBAA0B,KACxFg3C,EAAsB1D,GAAoBuD,EAAc73H,KAAKghF,OAAO,0BAA4B,KAChGi3C,EAAkBrD,GAAiBqC,EAAiBj3H,KAAKghF,OAAO,sBAAwB,KAExF0zB,EAAkB,CAAC8f,EAAW,oBAAqBzM,EAAmBiQ,EAAqBC,GAAiBnoH,OAAO23C,IAAUvmC,KAAK,KAElI+4F,EAASn5G,EAAE,QAAS,CACtBwnE,YAAa,sEACbC,MAAOmmD,EACPjiG,MAAO,CACLyrG,QAAS,EACTC,SAAU,QAEZ3vD,MAAO3zB,GAAcA,GAAc,GAAI2/E,GAAa,GAAI,CACtD,mBAAoB9f,GAAmB,KACvCt/F,KAAMs/G,EACNjY,YAAaA,GAAe,OAE9B/zC,SAAU,CACRrmE,MAAOmyH,EAAWnyH,OAEpB+kE,GAAIwwD,EAEJ3uE,WAAY,CAAC,CACX7+C,KAAM,QACN/H,MAAOmyH,EAAWnyH,QAEpB0pF,IAAK,UAGHquB,EAAUt5G,EAAEw3E,GAAS,CACvBhQ,YAAa,0BACbC,MAAO,CAKL6vD,UAAW1B,GAEbjqG,MAAO,CACL4jD,SAAU,OAEZljD,MAAO,CACL4yC,SAAU22D,GAAoBO,EAC9BxsD,QAAS2pD,GAEXhtD,GAAI,CACFqB,MAAO,WACL,OAAOyuD,MAGXnrC,IAAK,UACJ,CAAC/rF,KAAKsmE,cAAcnO,KAA8Bg8D,IAMjDkE,EAAYr4H,KAAKghF,OAAO,gBACxBs3C,EAASx3H,EAAE,KAAM,CACnBwnE,YAAa,gCACbE,MAAO,CACLmD,KAAM,OACN,YAAa,MACb,gBAAiB0sD,GAEnB/1H,IAAK,cACJ,CAACxB,EAAE,MAAO,CACXwnE,YAAa,SACbE,MAAO,CACLmD,KAAM,UAEP,CAACsuC,EAAQG,MAERme,EAAMz3H,EAAE,KAAM,CAChBwnE,YAAa,0EACbE,MAAO,CACL5xD,GAAIyhH,GAEN/1H,IAAK,aACJ,CAACy1H,EAAOO,IAEPE,EAAY13H,IAEhB,GAAI6zH,GAAkBL,GAAoBM,EAAe,CAGvD,IAAIhe,EAAW52G,KAAKqmH,iBAChBmQ,EAASx2H,KAAKu2H,eAEdkC,EAAW33H,IAEXinH,IACF0Q,EAAW33H,EAAEi2G,GAAsB,CACjC5pF,MAAO,CACLvW,GAAImxG,EACJnR,SAAUA,EACVC,WAAW,GAEbv0G,IAAK,yBACJ,CAACtC,KAAK20H,eAAgB,KAAM30H,KAAK+2H,YAAY71G,KAAKs1G,MAIvD,IAAIkC,EAAa53H,IAEbk3H,IACFU,EAAa53H,EAAE61G,GAAW,CACxBxpF,MAAO,CACLvW,GAAIohH,EACJphB,SAAUA,GAEZt0G,IAAK,2BACJ,CAACtC,KAAKs0H,iBAAkB,KAAMt0H,KAAK62H,cAAc31G,KAAKs1G,MAI3D,IAAImC,EAAS73H,IAETm3H,IACFU,EAAS73H,EAAE61G,GAAW,CACpBxpF,MAAO,CACLvW,GAAIqhH,EACJrhB,SAAUA,GAEZt0G,IAAK,uBACJ,CAACsyH,KAGN4D,EAAY13H,EAAE,MAAO,CACnB0nE,MAAO,CACL,YAAa,SACb,cAAe,QAEjBlmE,IAAK,iBACJ,CAACm2H,EAAUC,EAAYC,IAI5B,MAAO,CAACJ,EAAKC,KAGjBr5H,OAAQ,SAAgB2B,GACtB,IAAIsJ,EAAOpK,KAAKoK,KACZ21D,EAAW//D,KAAK+/D,SAChBpoC,EAAW33B,KAAK23B,SAChB6/E,EAAOx3G,KAAKw3G,KACZsc,EAAO9zH,KAAK8zH,KACZ8B,EAAkB51H,KAAK41H,gBACvB9c,EAAW94G,KAAK84G,SAChBgc,EAAe90H,KAAK80H,aAEpBtuD,EAAQ3xB,GAAc,CAExBi/E,KAAMA,EAAKpiH,QAEX8iH,WAAYx0H,KAAK81H,mBAEjBpB,UAAW10H,KAAK61H,kBAEhB+B,cAAe53H,KAAK+1H,sBAEpBuB,UAAWt3H,KAAKs3H,UAChBJ,OAAQl3H,KAAKk3H,OACbpU,MAAO9iH,KAAK8iH,MAEZ2R,QAASmB,EAETkC,UAAW93H,KAAKg3H,eAChBD,YAAa/2H,KAAK+2H,YAAYrlH,QAC9BmmH,YAAa73H,KAAK82H,iBAClBD,cAAe72H,KAAK62H,cAAcnlH,QAClCulH,eAAgBj3H,KAAKi3H,eAErBP,iBAAkB12H,KAAK02H,kBACtBlwE,GAAKxmD,KAAKizF,OAAQ,CAAC,gBAAiB,mBAAoB,WAAY,mBAAoB,OAAQ,aAAc,iBAAkB,QAAS,gBAAiB,cAAe,cAAe,WAAY,YAAa,OAAQ,QAAS,WAAY,WAAY,iBAAkB,gBAG3QnmB,EAAW9sE,KAAKsmE,cAAc3N,GAAmB6N,IAAUxmE,KAAK23H,cAAcnxD,GAE9EoyD,EAAU93H,EAAE,SAAU,CACxBwnE,YAAa,UACbE,MAAO,CACL5xD,GAAI5W,KAAKghF,OAAO,qBAChBrV,KAAM,SACNse,IAAK2rC,EACL,YAAa9c,EAAW,SAAW,MACnC,cAAe,OACf,gBAAiB,mBAElB94G,KAAK8zH,KAAK5yG,KAAK,OAEd23G,EAAW/3H,EAAE,MAAO,CACtBwnE,YAAa,UACbE,MAAO,CACL5xD,GAAI5W,KAAKghF,OAAO,oBAChBrV,KAAM,SACN,YAAamtC,EAAW,YAAc,MACtC,cAAe,SAEhB94G,KAAKy1H,YAAY9yH,OAAS,EAAI,IAAI1B,OAAOjB,KAAKo1H,gBAAiB,MAAMn0H,OAAOjB,KAAKy1H,YAAYv0G,KAAK,OAAS,IAE1Gq8F,EAAUz8G,IAEd,GAAIsJ,IAAS21D,EAAU,CAIrB,IAAI+4D,EAAUhF,EAAKnxH,OAAS,EAC5B46G,GAAWub,EAAUhF,EAAO,CAAC,KAAKjkH,KAAI,SAAU+D,GAC9C,OAAO9S,EAAE,QAAS,CAChBynE,MAAO,CACL,WAAYuwD,GAEdtwD,MAAO,CACLpzD,KAAM0jH,EAAU,SAAW,OAC3Bz2H,MAAOuR,EACP+jB,SAAUA,EACVvtB,KAAMA,EACNotG,KAAMA,GAERl1G,IAAK,aAAarB,OAAO2S,QAM/B,OAAO9S,EAAE,MAAO,CACdwnE,YAAa,kCACbC,MAAO,CAAC,CACNhF,MAAOu1C,IAAagc,IAAiB/0D,EACrCA,SAAUA,GACT//D,KAAK83G,cAAe93G,KAAKi4G,YAC5BzvC,MAAO,CACL5xD,GAAI5W,KAAKghF,SACTrV,KAAM,QACN+K,SAAU3W,GAAY+0D,EAAe,KAAO,KAC5C,mBAAoB90H,KAAKghF,OAAO,sBAElC5Z,GAAI,CACFqB,MAAOzoE,KAAK62E,QACZ6B,QAAS14E,KAAKs9E,UACd3E,SAAU34E,KAAKy3H,aAEhB,CAACmB,EAASC,EAAU/rD,EAAUywC,OC5zBjCwb,GAA8BvvE,GAAc,CAC9CR,WAAY,CACVusE,UAAWA,GACXyD,MAAOzD,GACPlC,SAAUA,GACV4F,KAAM5F,MCRV,SAAS96G,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAsBpM,IC1BH4gD,GD0BOz7C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUozB,IAAmBgE,IAAgBC,IAAiBwS,IAAgB,GAAI,CAC1NoO,QAASr0D,GAAS9M,IAElBohE,aAAct0D,GAAS9N,IAAmB,GAE1CqiE,SAAUv0D,GAAS9N,IAAmB,GACtCsiE,KAAMx0D,GAAS9M,GAAyB,GAGxCn0B,KAAMihC,GAASxN,GAAkB,WAC9B9I,IAGM+qE,GAA6B7wE,EAAAA,WAAAA,OAAW,CACjDr+C,KAAMmkD,GACNtF,WAAY,CACV,YAAa8oC,IAGfpnB,OAAQ,CAACwK,GAAgB2L,GAASzM,GAAmBojC,GAAkBI,GAAeE,GAAgBqR,GAAeZ,GAAoB+B,IACzIp9F,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLujH,WAAY,OAGhBhtD,SAAU,CACRy1B,cAAe,WACb,IAAIL,EAAS,CAGX63B,QAASx5H,KAAKy5H,cAAgBz5H,KAAKo5H,SAAW,OAAS,MAYzD,OATKp5H,KAAKy5H,eAGR93B,EAAO/hC,OAAS5/D,KAAKu5H,WAGrB53B,EAAOtC,UAAY,UAGdsC,GAET+3B,gBAAiB,WAIf,OAAO5tD,GAAQrP,GAAUz8D,KAAKq5H,KAAM,GAAI,IAE1CM,gBAAiB,WACf,OAAO7tD,GAAQ9rE,KAAK05H,gBAAiBj9D,GAAUz8D,KAAKk5H,QAAS,KAE/DO,aAAc,WAGZ,OAAOz5H,KAAK05H,kBAAoB15H,KAAK25H,gBAAkB35H,KAAK05H,gBAAkB,MAEhFljD,cAAe,WACb,IAAIzW,EAAW//D,KAAK+/D,SAChBpoC,EAAW33B,KAAK23B,SACpB,MAAO,CACL/gB,GAAI5W,KAAKghF,SACT52E,KAAMpK,KAAKoK,MAAQ,KACnBotG,KAAMx3G,KAAKw3G,MAAQ,KACnBz3C,SAAUA,EACV08C,YAAaz8G,KAAKy8G,aAAe,KACjC9kF,SAAUA,EACV0gD,aAAcr4E,KAAKq4E,cAAgB,KACnCuK,SAAU5iF,KAAK4iF,UAAY5iF,KAAKmpH,UAChCkQ,KAAMr5H,KAAKy5H,aACX71F,KAAM5jC,KAAK4jC,MAAQ,KACnB,gBAAiB5jC,KAAK23B,SAAW,OAAS,KAC1C,eAAgB33B,KAAKk4G,sBAGzBvhC,kBAAmB,WACjB,OAAO9hC,GAAcA,GAAc,GAAI70C,KAAK42E,aAAc,GAAI,CAC5DnoD,MAAOzuB,KAAKk/G,QACZhF,OAAQl6G,KAAK6jH,SACbpgD,KAAMzjE,KAAKsqH,WAIjBx/C,MAAO,CACLu+C,WAAY,WACVrpH,KAAK45H,cAGT58C,QAAS,WACPh9E,KAAK45H,aAEP5+G,QAAS,CAIP6+G,gBAAiB,SAAyB5oC,GACpCA,GAGFjxF,KAAKmrE,UAAUnrE,KAAK45H,YAGxBA,UAAW,WACT,IAAIlnF,EAAQ1yC,KAEZA,KAAKmrE,WAAU,WACb5M,IAAU,WACR7rB,EAAM6mF,WAAa7mF,EAAMonF,uBAM/BA,cAAe,WACb,GAAI95H,KAAK+5H,YAAcr0E,GAAO1lD,KAAKy5H,cACjC,OAAO,KAGT,IAAI/qH,EAAK1O,KAAKm3E,IAGd,IAAK7X,GAAU5wD,GACb,OAAO,KAIT,IAAIszF,EAAgBlgC,GAAMpzD,GAEtBsrH,EAAat9D,GAAQslC,EAAcg4B,WAAY,GAE/CC,EAASv9D,GAAQslC,EAAcj/B,eAAgB,GAAKrG,GAAQslC,EAAck4B,kBAAmB,GAC7F1tD,EAAU9P,GAAQslC,EAAcm4B,WAAY,GAAKz9D,GAAQslC,EAAcn1B,cAAe,GAEtF7hE,EAASivH,EAASztD,EAElB4tD,EAAYJ,EAAah6H,KAAK05H,gBAAkB1uH,EAEhDqvH,EAAY56D,GAAS/wD,EAAI,WAAaszF,EAAcpiC,OAExD+B,GAASjzD,EAAI,SAAU,QACvB,IAAI6rF,EAAe7rF,EAAG6rF,aAGtB54B,GAASjzD,EAAI,SAAU2rH,GAEvB,IAAIC,EAAcxuD,IAASyuB,EAAe/tB,GAAWwtD,EAAY,GAE7DX,EAAOxtD,GAAQC,GAAQwuD,EAAat6H,KAAK05H,iBAAkB15H,KAAK25H,iBAEhE/5D,EAASkM,GAAQE,GAASqtD,EAAOW,EAAahvH,GAASovH,GAG3D,OAAIp6H,KAAKm5H,cAAgBz8D,GAAQ29D,EAAW,GAAKz6D,EACxCy6D,EAIF,GAAGp5H,OAAO2+D,EAAQ,QAG7BzgE,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,WAAY,CACnBynE,MAAOvoE,KAAKwpH,cACZ/8F,MAAOzsB,KAAKgiG,cACZ/4C,WAAY,CAAC,CACX7+C,KAAM,YACN/H,MAAOrC,KAAK65H,gBAEZloC,UAAW,CACT,KAAO,KAGXnpB,MAAOxoE,KAAKw2E,cACZ9N,SAAU,CACRrmE,MAAOrC,KAAKqpH,YAEdjiD,GAAIpnE,KAAK22E,kBACToV,IAAK,aE3MPwuC,GAAkC/wE,GAAc,CAClDR,WAAY,CACVswE,cAAeA,GACfkB,UAAWlB,MDHf,SAAS/gH,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAE3M,SAAS4yB,GAAeC,EAAK3wC,GAAK,OAAO4wC,GAAgBD,IAAQE,GAAsBF,EAAK3wC,IAAM+8C,GAA4BpM,EAAK3wC,IAAM8wC,KAEzI,SAASA,KAAqB,MAAM,IAAI15C,UAAU,6IAElD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASC,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAEhL,SAASvM,GAAsBF,EAAK3wC,GAAK,IAAIoxC,EAAY,MAAPT,EAAc,KAAyB,qBAAXj/B,QAA0Bi/B,EAAIj/B,OAAO1N,WAAa2sC,EAAI,cAAe,GAAU,MAANS,EAAJ,CAAwB,IAAkDD,EAAID,EAAlDH,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKG,EAAKA,EAAGj7C,KAAKw6C,KAAQK,GAAMG,EAAKC,EAAGntC,QAAQE,MAAO6sC,GAAK,EAA6B,GAArBD,EAAKjsC,KAAKqsC,EAAGh5C,OAAY6H,GAAK+wC,EAAKt4C,SAAWuH,EAAG,MAAW,MAAOynC,GAAOwJ,GAAK,EAAMC,EAAKzJ,EAApK,QAAqL,IAAWuJ,GAAsB,MAAhBI,EAAG,WAAmBA,EAAG,YAA1C,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOH,GAE1f,SAASH,GAAgBD,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOA,EA2B/D,IE7CI+tB,GF6CAkB,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAMiiD,GACN7P,aAAc,KAEZuiB,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAEnCmmG,GAAU,UAEVC,GAAe,SAAsBr4H,GACvC,MAAO,KAAKpB,OAAOoB,GAAS,IAAIqP,OAAO,IAGrCipH,GAAW,SAAkBt4H,GAC/BA,EAAQgR,GAAShR,GACjB,IAAIu4H,EAAK,KACLC,EAAK,KACLC,EAAK,KAET,GAAIl3E,EAAQtvC,KAAKjS,GAAQ,CAGvB,IAAI04H,EAAmB14H,EAAM2c,MAAM,KAAKnP,KAAI,SAAUmsB,GACpD,OAAOygC,GAAUzgC,EAAG,SAGlBg/F,EAAoBpgF,GAAemgF,EAAkB,GAEzDH,EAAKI,EAAkB,GACvBH,EAAKG,EAAkB,GACvBF,EAAKE,EAAkB,GAGzB,MAAO,CACLC,MAAOt1E,GAAkBi1E,GAAM,KAAOA,EACtCM,QAASv1E,GAAkBk1E,GAAM,KAAOA,EACxCM,QAASx1E,GAAkBm1E,GAAM,KAAOA,EACxCM,KAAMz1E,GAAkBi1E,IAAOA,EAAK,GAAK,EAAI,IAI7CS,GAAY,SAAmBtyE,GACjC,IAAIkyE,EAAQlyE,EAAKkyE,MACbC,EAAUnyE,EAAKmyE,QACfC,EAAUpyE,EAAKoyE,QACfG,EAAiBnwH,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GAEpF,GAAIu6C,GAAOu1E,IAAUv1E,GAAOw1E,IAAYI,GAAkB51E,GAAOy1E,GAC/D,MAAO,GAGT,IAAII,EAAM,CAACN,EAAOC,EAASI,EAAiBH,EAAU,GACtD,OAAOI,EAAI1rH,IAAI6qH,IAAcx5G,KAAK,MAIzBiM,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAaxjB,GAAKg1E,GAAsB,CAAC,iBAAkB,oBAAqB,GAAI,CAE1MhjB,eAAgB3zC,GAASxN,IACzB0I,SAAU8E,GAAS9N,IAAmB,GACtCu3B,UAAWzpB,GAASxN,GAAkB,UACtCmqB,UAAW3c,GAASxN,GAAkB,UACtCoqB,OAAQ5c,GAAS9N,IAAmB,GACpC2qB,WAAY7c,GAAS9N,IAAmB,GAIxC0kE,OAAQ52D,GAAS9N,GAAmB,MACpC2kE,QAAS72D,GAASxN,GAAkB,MACpCskE,UAAW92D,GAASxN,GAAkB,SACtCukE,WAAY/2D,GAASxN,GAAkB,SACvCwkE,aAAch3D,GAASxN,GAAkB,WACzCykE,oBAAqBj3D,GAASxN,GAAkB,oBAChD0kE,QAASl3D,GAASxN,GAAkB,MACpC2kE,aAAcn3D,GAASxN,GAAkB,WACzCkrB,cAAe1d,GAASxN,GAAkB,iBAC1CgoB,OAAQxa,GAASpN,IACjBwkE,YAAap3D,GAAS9M,GAAyB,GAC/C6qB,SAAU/d,GAAS9N,IAAmB,GACtCmlE,YAAar3D,GAAS9M,GAAyB,GAE/CokE,YAAat3D,GAAS9N,IAAmB,MACtClF,IAGMuqE,GAAqB3zE,EAAAA,WAAAA,OAAW,CACzCr+C,KAAMynD,GACN8Y,OAAQ,CAACmW,GAAS/W,GAAYtD,IAC9Bt5C,MAAOA,GACPnX,KAAM,WACJ,IAAI03D,EAASitD,GAAS36H,KAAKiqE,KAAoB,IAC/C,MAAO,CAELoyD,WAAY3uD,EAAOutD,MACnBqB,aAAc5uD,EAAOwtD,QACrBqB,aAAc7uD,EAAOytD,QACrBqB,UAAW9uD,EAAO0tD,KAElBz3C,QAAQ,IAGZpX,SAAU,CACRkwD,YAAa,WACX,IAAIxB,EAAQj7H,KAAKq8H,WACbnB,EAAUl7H,KAAKs8H,aACfnB,EAAUn7H,KAAKu8H,aACnB,OAAOlB,GAAU,CACfJ,MAAOA,EACPC,QAASA,EACTC,QAASA,GACRn7H,KAAKm8H,cAEV/8C,gBAAiB,WAEf,IAAIC,EAASp+E,GAAOjB,KAAKq/E,QAAQvvE,OAAO23C,IACpC9nD,EAAU,CACZimF,KAAM60C,GACN50C,OAAQ40C,GACR9nG,OAAQ8nG,IAGL90E,GAAkB3lD,KAAKy7H,UAE1B97H,EAAQ87H,SAAWz7H,KAAKy7H,QAG1B,IAAIl8C,EAAM,IAAIL,KAAKC,eAAeE,EAAQ1/E,GACtC+8H,EAAWn9C,EAAIH,kBACfq8C,EAASiB,EAASjB,SAAU,EAG5BkB,EAAYD,EAASC,YAAclB,EAAS,MAAQ,OACxD,MAAO,CACLp8C,OAAQq9C,EAASr9C,OACjBo8C,OAAQA,EACRkB,UAAWA,IAGfn4C,eAAgB,WACd,OAAOxkF,KAAKo/E,gBAAgBC,QAE9Bw/B,aAAc,WACZ,OAAQ7+G,KAAKwkF,gBAAkB,IAAIxwE,QAAQ,SAAU,KAEvD88G,YAAa,WACX,OAAOnwC,GAAY3gF,KAAK6+G,eAE1B+d,kBAAmB,WAQjB,OAAO58H,KAAKo/E,gBAAgBu9C,WAE9BE,SAAU,WACR,QAAS78H,KAAKo/E,gBAAgBq8C,QAEhC17H,QAAS,WACP,MAAO,CACLs/E,OAAQr/E,KAAKwkF,eACbU,MAAOllF,KAAK8wH,YACZ6L,UAAW38H,KAAK48H,kBAChBnB,OAAQz7H,KAAK68H,SACb5B,MAAOj7H,KAAKq8H,WACZnB,QAASl7H,KAAKs8H,aACdnB,QAASn7H,KAAKm8H,YAAcn8H,KAAKu8H,aAAe,EAChDl6H,MAAOrC,KAAKy8H,YACZK,UAAW98H,KAAK+8H,sBAGpBn5C,QAAS,WACP,OAAO5jF,KAAKghF,UAAY,MAE1Bg8C,uBAAwB,WACtB,MAAO,CAACh9H,KAAKw4G,eAAgBx4G,KAAK4jF,SAAS9zE,OAAO23C,IAAUvmC,KAAK,MAAQ,MAE3E+7G,cAAe,WAGb,IAAIt9H,EAAU,CACZ87H,OAAQz7H,KAAK68H,SACbF,UAAW38H,KAAK48H,kBAChBh3C,KAAM60C,GACN50C,OAAQ40C,GACRyC,SAAU,OAQZ,OALIl9H,KAAKm8H,cACPx8H,EAAQgzB,OAAS8nG,IAIZn7C,GAAoBt/E,KAAKwkF,eAAgB7kF,IAElDw9H,gBAAiB,WAGf,IAAIj3C,EAAK,IAAIhH,KAAKiH,aAAanmF,KAAKwkF,eAAgB,CAClD/3D,MAAO,UACP25D,qBAAsB,EACtBC,sBAAuB,EACvBC,sBAAuB,EACvBC,SAAU,aAEZ,OAAOL,EAAG1G,QAEZu9C,oBAAqB,WACnB,IAAI9B,EAAQj7H,KAAKq8H,WACbnB,EAAUl7H,KAAKs8H,aACfnB,EAAUn7H,KAAKm8H,aAAcn8H,KAAKu8H,cAAoB,EAE1D,OAAIv8H,KAAKy8H,YACAz8H,KAAKi9H,cAAc/+C,GAAWhoC,KAAKknF,IAAI,EAAG,EAAG,EAAGnC,EAAOC,EAASC,KAGlEn7H,KAAK87H,qBAAuB,KAErCuB,gBAAiB,WACf,IAAIv8H,EAAId,KAAK2/G,eACb,MAAO,CACL2d,UAAW,SAAmB/uD,GAC5B,IAAIuqC,EAAWvqC,EAAMuqC,SACrB,OAAOh4G,EAAEwwE,GAAgB,CACvBnkD,MAAO,CACLmiD,MAAOwpC,EAAW,IAAM,MAE1BtwC,MAAO,CACL,cAAe,WAIrB+0D,UAAW,SAAmB7uD,GAC5B,IAAIoqC,EAAWpqC,EAAMoqC,SACrB,OAAOh4G,EAAEwwE,GAAgB,CACvBnkD,MAAO,CACLgiD,OAAO,EACPG,MAAOwpC,EAAW,IAAM,MAE1BtwC,MAAO,CACL,cAAe,cAO3BsC,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,EAAU+I,GAChF,GAAI/I,IAAa+I,IAAaV,GAAWunD,GAAS5vD,GAAW4vD,GAAS36H,KAAKy8H,cAAe,CACxF,IAAIe,EAAY7C,GAAS5vD,GACrBkwD,EAAQuC,EAAUvC,MAClBC,EAAUsC,EAAUtC,QACpBC,EAAUqC,EAAUrC,QACpBC,EAAOoC,EAAUpC,KAErBp7H,KAAKq8H,WAAapB,EAClBj7H,KAAKs8H,aAAepB,EACpBl7H,KAAKu8H,aAAepB,EACpBn7H,KAAKw8H,UAAYpB,MAEjBtmF,GAAgB8zB,GAAQ,eAAe,SAAqBmC,EAAU+I,GACpE/I,IAAa+I,GACf9zE,KAAKirE,MAAMf,GAAkBa,MAE7Bj2B,GAAgB8zB,GAAQ,WAAW,SAAiBmC,EAAU+I,GAC3DV,GAAWrI,EAAU+I,IACxB9zE,KAAKirE,MAAM3X,GAAoByX,MAE/Bj2B,GAAgB8zB,GAAQ,aAAa,SAAmBmC,EAAU+I,GACpE,IAAIphC,EAAQ1yC,KAEZ,GAAI+qE,IAAa+I,EAAU,CACzB,IAAImnD,EAAQv1E,GAAO1lD,KAAKq8H,YAAc,EAAIr8H,KAAKq8H,WAC/Cr8H,KAAKmrE,WAAU,WACI,IAAbJ,GAAkBkwD,EAAQ,GAE5BvoF,EAAM2pF,WAAapB,EAAQ,GACL,IAAblwD,GAAkBkwD,EAAQ,KAEnCvoF,EAAM2pF,WAAapB,EAAQ,WAI/BnmF,GAAgB8zB,GAAQ,cAAc,SAAoB60D,EAAUC,GAClED,IAAaC,IACf19H,KAAKw8H,UAAYiB,EAAW,GAAK,EAAI,MAErC70D,IACJwC,QAAS,WACP,IAAIyJ,EAAS70E,KAEbA,KAAKmrE,WAAU,WACb0J,EAAO5J,MAAM3X,GAAoBuhB,EAAO90E,aAG5Ci9E,QAAS,WACPh9E,KAAKkoF,SAAQ,IAIfE,UAAW,WACTpoF,KAAKkoF,SAAQ,IAIfG,YAAa,WACXroF,KAAKkoF,SAAQ,IAEf5c,cAAe,WACbtrE,KAAKkoF,SAAQ,IAEfltE,QAAS,CAEPuoD,MAAO,WACAvjE,KAAK+/D,UAERuD,GAAatjE,KAAKsoF,MAAMq1C,SAAS,KAGrCl6D,KAAM,WACJ,IAAKzjE,KAAK+/D,SAAU,CAClB,IAAIZ,EAAgBF,KAEhBM,GAASv/D,KAAKm3E,IAAKhY,IACrBqE,GAAYrE,KAKlBy+D,YAAa,SAAqBhD,GAChC,IAAI+B,EAAY38H,KAAK48H,kBASrB,OAPAhC,EAAK56H,KAAK68H,UAAYjC,EAAK,GAAKA,EAAK,GAAKA,EAE1CA,EAAY,IAAPA,GAA0B,QAAd+B,EAAsB,GAAY,IAAP/B,GAA0B,QAAd+B,EAExD,GAAY,KAAP/B,GAA2B,QAAd+B,EAElB,EAAI/B,EACG56H,KAAKm9H,gBAAgBvC,IAE9BiD,cAAe,SAAuBhD,GACpC,OAAO76H,KAAKm9H,gBAAgBtC,IAE9BiD,cAAe,SAAuBhD,GACpC,OAAO96H,KAAKm9H,gBAAgBrC,IAE9BiD,WAAY,SAAoB3C,GAG9B,OAAgB,IAATA,EAAap7H,KAAK07H,QAAmB,IAATN,EAAap7H,KAAK+7H,QAAU,IAGjEiC,SAAU,SAAkB37H,GAC1BrC,KAAKq8H,WAAah6H,GAEpB47H,WAAY,SAAoB57H,GAC9BrC,KAAKs8H,aAAej6H,GAEtB67H,WAAY,SAAoB77H,GAC9BrC,KAAKu8H,aAAel6H,GAEtB87H,QAAS,SAAiB97H,GACxBrC,KAAKw8H,UAAYn6H,GAEnB+7H,gBAAiB,WACf,IAAI9pG,EAAQnpB,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC5EiK,EAAOkf,EAAMlf,KACbqjE,EAAUnkD,EAAMmkD,QAEpB,IAAKz4E,KAAK+/D,UAAqB,YAAT3qD,IAAuBqjE,IAAY5F,IAAa4F,IAAYzF,IAAa,CAC7F3L,GAAU/yC,GACV,IAAIqpG,EAAW39H,KAAKsoF,MAAMq1C,UAAY,GAClCl7H,EAAQk7H,EAAS9tH,KAAI,SAAUwuH,GACjC,QAASA,EAAIvlB,YACZjqG,SAAQ,GACXpM,GAAiBg2E,IAAY5F,IAAa,EAAI,EAC9CpwE,EAAQA,GAASk7H,EAASh7H,OAAS,EAAIF,EAAQ,EAAIk7H,EAASh7H,OAAS,EAAIF,EACzE6gE,GAAaq6D,EAASl7H,MAG1BylF,QAAS,SAAiB9gB,GACxB,IAAI+gB,EAASnoF,KAETonE,EACFpnE,KAAKmrE,WAAU,WACb5M,IAAU,WACR4pB,EAAOxE,QAAS,QAIpB3jF,KAAK2jF,QAAS,IAIpBxkF,OAAQ,SAAgB2B,GACtB,IAAI0nF,EAASxoF,KAKb,GAAIA,KAAKyhF,OACP,OAAO3gF,IAGT,IAAIi/D,EAAW//D,KAAK+/D,SAChB6iB,EAAW5iF,KAAK4iF,SAChBvD,EAASr/E,KAAKwkF,eACdg0B,EAAiBx4G,KAAKg9H,uBACtBrN,EAAiB3vH,KAAK2vH,eACtBD,EAAiB1vH,KAAK0vH,eACtB9rC,EAAU5jF,KAAK4jF,QACfggC,EAAe5jH,KAAKujE,MACpB+6D,EAAU,GAEVC,EAAiB,SAAwB5pG,EAASryB,EAAK44G,GACzD,IAAIsjB,EAAkBrzH,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GACtFyL,EAAK4xE,EAAOxH,OAAO,eAAe//E,OAAOqB,EAAK,OAAS,KAE3D,OADAg8H,EAAQtvH,KAAK4H,GACN9V,EAAEkvH,GAAiB,CACxBznD,MAAO2yC,EACP/tF,MAAO0nB,GAAc,CACnBj+B,GAAIA,EACJ6lG,YAAa,KACbjgC,UAAU,EACV7kD,UAAU,EACVooC,SAAUA,EACV6iB,SAAUA,EACVvD,OAAQA,EACRswC,eAAgBA,EAChBD,eAAgBA,EAChB9rF,MAAM,EACNs9C,aAAc0C,EACdz3E,IAAK,GACJqyH,GACH93D,YAAa8hB,EAAO60C,gBACpBj2D,GAAI,CAKF8yC,OAAQvlF,GAEVryB,IAAKA,EACLypF,IAAK,WACL0yC,UAAU,KAKVC,EAAY,WACd,OAAO59H,EAAE,MAAO,CACdwnE,YAAa,qBACbC,MAAO,CACL,aAAcxI,GAAY6iB,GAE5Bpa,MAAO,CACL,cAAe,SAEhB,CAAC1nE,EAAEywE,GAAiB,CACrBpkD,MAAO,CACLqiD,OAAQ,EACRF,MAAO,MAEPxuE,EAAEywE,GAAiB,CACrBpkD,MAAO,CACLqiD,QAAS,EACTF,MAAO,SAKTqvD,EAAY,GAEhBA,EAAU3vH,KAAKuvH,EAAev+H,KAAKg+H,SAAU,QAAS,eAAgB,CACpE37H,MAAOrC,KAAKq8H,WACZ/qH,IAAK,GACLrD,KAAM,EACNwhH,YAAazvH,KAAK49H,YAClB11D,UAAWloE,KAAK47H,cAGlB+C,EAAU3vH,KAAK0vH,KAEfC,EAAU3vH,KAAKuvH,EAAev+H,KAAKi+H,WAAY,UAAW,iBAAkB,CAC1E57H,MAAOrC,KAAKs8H,aACZhrH,IAAK,GACLrD,KAAMjO,KAAKi8H,aAAe,EAC1BxM,YAAazvH,KAAK69H,cAClB31D,UAAWloE,KAAK67H,gBAGd77H,KAAKm8H,cAEPwC,EAAU3vH,KAAK0vH,KAEfC,EAAU3vH,KAAKuvH,EAAev+H,KAAKk+H,WAAY,UAAW,iBAAkB,CAC1E77H,MAAOrC,KAAKu8H,aACZjrH,IAAK,GACLrD,KAAMjO,KAAKk8H,aAAe,EAC1BzM,YAAazvH,KAAK89H,cAClB51D,UAAWloE,KAAKg8H,iBAKhBh8H,KAAK68H,UAKP8B,EAAU3vH,KAAKuvH,EAAev+H,KAAKm+H,QAAS,OAAQ,cAAe,CACjE97H,MAAOrC,KAAKw8H,UACZlrH,IAAK,EACLm+G,YAAazvH,KAAK+9H,WAClB71D,UAAWloE,KAAK27H,UAEhBhkG,UAAU,KAKdgnG,EAAY79H,EAAE,MAAO,CACnBwnE,YAAa,2DACbE,MAAO,CACLmD,KAAM,QACN+K,SAAU3W,GAAY6iB,EAAW,KAAO,KACxC,kBAAmB41B,GAErBpxC,GAAI,CACFoR,QAASx4E,KAAKo+H,gBACd31D,MAEA,SAAen0C,GACTA,EAAMhoB,SAAWgoB,EAAM2iD,eACzB2sC,OAIL+a,GAEH,IAAIC,EAAS99H,EAAE,SAAU,CACvBwnE,YAAa,2CACbC,MAAO,CACLxI,SAAUA,GAAY6iB,GAExBpa,MAAO,CACL5xD,GAAIgtE,EACJjY,KAAM,SACNse,IAAKq0C,EAAQxuH,OAAO23C,IAAUvmC,KAAK,MAAQ,KAC3Cw1D,SAAU3W,EAAW,KAAO,KAC5B,YAAa//D,KAAK2jF,OAAS,SAAW,MACtC,cAAe,QAEjBvc,GAAI,CAEFqB,MAAOm7C,EACPrgD,MAAOqgD,IAER,CAAC9iH,EAAE,MAAOd,KAAK+8H,qBAAsB/8H,KAAKy8H,YAAc37H,EAAE,OAAQ,CACnEwnE,YAAa,WACZ,KAAKrnE,OAAOjB,KAAKuiF,cAAe,OAAS,KACxCyH,EAAUlpF,EAAEd,KAAKwhF,UAAW,CAC9BlZ,YAAa,gBACbC,MAAO,CACL,UAAWvoE,KAAK0hF,aAEjB,CAACk9C,IACA9xD,EAAW9sE,KAAKsmE,gBAChBmqB,EAAU3jB,EAAWhsE,EAAEd,KAAKsuF,UAAW,CACzChmB,YAAa,iBACZwE,GAAYhsE,IACf,OAAOA,EAAE,MAAO,CACdwnE,YAAa,+CACbE,MAAO,CACLmD,KAAM,QACNugB,KAAMlsF,KAAK6+G,cAAgB,KAC3B,kBAAmBrG,GAAkB,KACrC,gBAAiBz4C,EAAW,OAAS,KACrC,gBAAiB6iB,IAAa7iB,EAAW,OAAS,OAEnD,CAACiqB,EAAS20C,EAAWluC,OEpnB5B,SAASl4E,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAkB3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAMiiD,GACN7P,aAAc,KAEZuiB,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAGnCuqG,GAAYn4E,GAAKo4E,GAAY,CAAC,SAAU,KAAM,UAC9CphB,GAA2Bh3D,GAAKi3D,GAA4B,CAAC,iBAAkB,KAAM,OAAQ,MAAO,UAC7FxwF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAa60D,IAAYnhB,IAA2B,GAAI,CAC5LI,mBAAoBj5C,GAASxN,GAAkB,qBAC/C2mD,iBAAkBn5C,GAASxN,GAAkB,SAC7C0nE,eAAgBl6D,GAASxN,GAAkB,cAC3C4mD,iBAAkBp5C,GAASxN,GAAkB,SAC7C2nE,cAAen6D,GAAS9N,IAAmB,GAC3CkoE,UAAWp6D,GAAS9N,IAAmB,GACvCmoE,iBAAkBr6D,GAASxN,GAAkB,mBAC7C+mD,YAAav5C,GAAS9N,IAAmB,GACzCsnD,mBAAoBx5C,GAASxN,GAAkB,kBAC/CinD,WAAYz5C,GAAShN,OAClBrJ,IAGM2wE,GAA+B12E,EAAAA,WAAAA,OAAW,CACnDr+C,KAAMokD,GACNmc,OAAQ,CAACmW,GAAS/W,IAClB58C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CAELopH,SAAUp/H,KAAKiqE,KAAoB,GAEnC00C,YAAa,KACbz5B,OAAO,EACPs3B,eAAgB,GAEhBl9C,WAAW,IAGfiN,SAAU,CACRsyC,aAAc,WACZ,OAAQ7+G,KAAK2+G,aAAe,IAAI3qG,QAAQ,UAAW,KAAO,OAG9D82D,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,GACtE/qE,KAAKo/H,SAAWr0D,GAAY,MAC1Bj2B,GAAgB8zB,GAAQ,YAAY,SAAkBmC,GAIpD/qE,KAAKs/D,WACPt/D,KAAKirE,MAAMf,GAAkBa,GAAY,OAEzCnC,IACJ5tD,QAAS,CAEPuoD,MAAO,WACAvjE,KAAK+/D,UACRuD,GAAatjE,KAAKsoF,MAAMy2B,UAG5Bt7C,KAAM,WACCzjE,KAAK+/D,UACRyD,GAAYxjE,KAAKsoF,MAAMy2B,UAI3BC,YAAa,SAAqB38G,GAChC,IAAIqwC,EAAQ1yC,KAEZA,KAAKo/H,SAAW/8H,EAChBrC,KAAKmrE,WAAU,WACbz4B,EAAM41C,MAAMy2B,QAAQlS,MAAK,OAG7BqS,QAAS,SAAiBqc,GACpBv7H,KAAKo/H,WAAa7D,IACpBv7H,KAAKo/H,SAAW7D,IAGpBpc,UAAW,SAAmBtlE,GAC5B,IAAIqrC,EAAQrrC,EAAIqrC,MACZ7F,EAASxlC,EAAIwlC,OACbh9E,EAAQw3C,EAAIx3C,MACZy6H,EAAYjjF,EAAIijF,UACpB98H,KAAKklF,MAAQA,EACbllF,KAAK2+G,YAAct/B,EACnBr/E,KAAKw8G,eAAiBsgB,EACtB98H,KAAKo/H,SAAW/8H,GAAS,GAEzBrC,KAAKirE,MAAM3X,GAAoBzZ,IAEjCwlF,YAAa,WACX,IAAIzqG,EAAM,IAAIshB,KACV+kF,EAAQrmG,EAAI0qG,WACZpE,EAAUtmG,EAAI2qG,aACdpE,EAAUn7H,KAAKm8H,YAAcvnG,EAAI4qG,aAAe,EAChDn9H,EAAQ,CAAC44H,EAAOC,EAASC,GAAStrH,KAAI,SAAUmsB,GAClD,MAAO,KAAK/6B,OAAO+6B,GAAK,IAAItqB,OAAO,MAClCwP,KAAK,KACRlhB,KAAKg/G,YAAY38G,IAEnBg9G,cAAe,WACbr/G,KAAKg/G,YAAYh/G,KAAKs+G,aAExBgB,cAAe,WACbt/G,KAAKsoF,MAAMy2B,QAAQlS,MAAK,IAE1B0S,OAAQ,WACNv/G,KAAKs/D,WAAY,GAEnBkgD,QAAS,WACP,IAAI3qC,EAAS70E,KAEbA,KAAKmrE,WAAU,WACb7H,GAAauR,EAAOyT,MAAMm3C,MAE1B5qD,EAAO5J,MAAMnV,QAGjB2pD,SAAU,WACRz/G,KAAKs/D,WAAY,EACjBt/D,KAAKirE,MAAM5W,KAGbqrD,gBAAiB,SAAyB32D,GACxC,IAAI4zD,EAAY5zD,EAAK4zD,UACjB7D,EAAW/vD,EAAK+vD,SACpB,OAAO94G,KAAK2/G,eAAehD,GAAa7D,EAAWrnC,GAAiBD,GAAY,CAC9EhJ,MAAO,CACL,cAAe,YAKvBrpE,OAAQ,SAAgB2B,GACtB,IAAIs+H,EAAWp/H,KAAKo/H,SAChBr/D,EAAW//D,KAAK+/D,SAChB6iB,EAAW5iF,KAAK4iF,SAChBqQ,EAASjzF,KAAKizF,OACdwpB,EAAc92D,GAAkB3lD,KAAKy8G,aAAez8G,KAAK87H,oBAAsB97H,KAAKy8G,YAEpFhsB,EAAU,GAEd,GAAIzwF,KAAKi/H,UAAW,CAClB,IAAIv3C,EAAQ1nF,KAAK++H,eACjBtuC,EAAQzhF,KAAKlO,EAAEw3E,GAAS,CACtBnrD,MAAO,CACL5X,KAAM,KACNwqD,SAAUA,GAAY6iB,EACtBnY,QAASzqE,KAAKk/H,kBAEhB12D,MAAO,CACL,aAAckf,GAAS,MAEzBtgB,GAAI,CACFqB,MAAOzoE,KAAKq/H,aAEd/8H,IAAK,WACJolF,IAGL,GAAI1nF,KAAKo+G,YAAa,CAChB3tB,EAAQ9tF,OAAS,GAEnB8tF,EAAQzhF,KAAKlO,EAAE,OAAQ,MAGzB,IAAI8+G,EAAS5/G,KAAKi+G,iBAClBxtB,EAAQzhF,KAAKlO,EAAEw3E,GAAS,CACtBnrD,MAAO,CACL5X,KAAM,KACNwqD,SAAUA,GAAY6iB,EACtBnY,QAASzqE,KAAKq+G,oBAEhB71C,MAAO,CACL,aAAco3C,GAAU,MAE1Bx4C,GAAI,CACFqB,MAAOzoE,KAAKq/G,eAEd/8G,IAAK,aACJs9G,IAGL,IAAK5/G,KAAKg/H,cAAe,CAEnBvuC,EAAQ9tF,OAAS,GACnB8tF,EAAQzhF,KAAKlO,EAAE,OAAQ,MAGzB,IAAI++G,EAAU7/G,KAAKg+G,iBACnBvtB,EAAQzhF,KAAKlO,EAAEw3E,GAAS,CACtBnrD,MAAO,CACL5X,KAAM,KACNwqD,SAAUA,EACV0K,QAASzqE,KAAK89G,oBAEhBt1C,MAAO,CACL,aAAcq3C,GAAW,MAE3Bz4C,GAAI,CACFqB,MAAOzoE,KAAKs/G,eAEdh9G,IAAK,aACJu9G,IAGDpvB,EAAQ9tF,OAAS,IACnB8tF,EAAU,CAAC3vF,EAAE,MAAO,CAClBwnE,YAAa,wCACbC,MAAO,CACL,0BAA2BkoB,EAAQ9tF,OAAS,EAC5C,sBAAuB8tF,EAAQ9tF,OAAS,IAEzC8tF,KAGL,IAAIivC,EAAQ5+H,EAAEs7H,GAAO,CACnB9zD,YAAa,sBACbn7C,MAAO0nB,GAAcA,GAAc,GAAIuwB,GAAWy5D,GAAW5rC,IAAU,GAAI,CACzE5wF,MAAO+8H,EACP39C,QAASzhF,KAAKs/D,YAEhB8H,GAAI,CACF34C,MAAOzuB,KAAKk/G,QACZn/G,QAASC,KAAKm/G,WAEhBpzB,IAAK,QACJ0E,GACH,OAAO3vF,EAAE47G,GAAuB,CAC9Bp0C,YAAa,oBACbn7C,MAAO0nB,GAAcA,GAAc,GAAIuwB,GAAWs4C,GAA0BzqB,IAAU,GAAI,CACxFr8E,GAAI5W,KAAKghF,SACT3+E,MAAO+8H,EACP5iB,eAAgB4iB,EAAWp/H,KAAKw8G,eAAiB,GACjDC,YAAaA,EACbj3B,IAAKxlF,KAAKklF,MACVgH,KAAMlsF,KAAK6+G,eAEbz3C,GAAI,CACFgD,KAAMpqE,KAAKu/G,OACXQ,MAAO//G,KAAKw/G,QACZ/9B,OAAQzhF,KAAKy/G,UAEf/4C,YAAa5xB,GAAgB,GAAI0jB,GAA0Bx4D,KAAKomE,aAAa5N,KAA6Bx4D,KAAK0/G,iBAC/G3zB,IAAK,WACJ,CAAC2zC,OChRJC,GAAoCn2E,GAAc,CACpDR,WAAY,CACVm2E,gBAAiBA,GACjBS,YAAaT,MCFbU,GAA2Br2E,GAAc,CAC3CR,WAAY,CACVkmC,KAAMA,GACNoD,SAAUA,MCDHnlE,GAAQs4C,GAAsB,CACvC7xD,IAAKixD,GAASxN,GAAkB,QAC/BnI,IAGQ4wE,GAA+Br3E,EAAAA,WAAAA,OAAW,CACnDr+C,KAAM8kD,GACNrvD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,qBACXmB,MCdGt8C,GAAQs4C,GAAsB,CACvC8P,OAAQ1Q,GAAS9N,IAAmB,GACpCngD,GAAIiuD,GAASxN,IACb0oE,OAAQl7D,GAAS9N,IAAmB,GACpCnjD,IAAKixD,GAASxN,GAAkB,QAC/BtI,IAGQixE,GAAgCv3E,EAAAA,WAAAA,OAAW,CACpDr+C,KAAM2kD,GACNlvD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChB8L,EAASpoD,EAAMooD,OACnB,OAAOz0E,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCuyD,MAAO,CACL,qBAAsBgN,EACtB,uBAAwBA,GAE1B/M,MAAO,CACL5xD,GAAIuW,EAAMvW,MAEVuW,EAAM4yG,OAAS,CAACj/H,EAAEg/H,GAAiBr2D,IAAaA,MC/BxD,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAQpM,IAAImF,GAAQs4C,GAAsB/e,GAAKu5E,GAAuB,CAAC,WAAYjxE,IAGvEkxE,GAAiCz3E,EAAAA,WAAAA,OAAW,CACrDr+C,KAAM4kD,GACNnvD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAEpB,OAAO3oE,EAAEk/H,GAAkBr1E,GAAU30C,EAAM,CACzCmX,MAAO0nB,GAAcA,GAAc,GAAI1nB,GAAQ,GAAI,CACjDooD,QAAQ,MAER9L,MC5BR,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAQpM,IAAImF,GAAQs4C,GAAsB/e,GAAKu5E,GAAuB,CAAC,WAAYhxE,IAGvEkxE,GAAkC13E,EAAAA,WAAAA,OAAW,CACtDr+C,KAAM6kD,GACNpvD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAEpB,OAAO3oE,EAAEk/H,GAAkBr1E,GAAU30C,EAAM,CACzCmX,MAAO0nB,GAAcA,GAAc,GAAI1nB,GAAQ,GAAI,CACjDooD,QAAQ,MAER9L,MC5BR,SAAS30B,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAapM,IAAImF,GAAQs4C,GAAsB,CACvC8P,OAAQ1Q,GAASxN,IACjB+oE,WAAYv7D,GAASxN,IACrBzgD,GAAIiuD,GAASxN,IACbgpE,QAASx7D,GAASxN,IAClBipE,YAAaz7D,GAASxN,IACtB9hD,KAAMsvD,GAASxN,IACfzjD,IAAKixD,GAASxN,GAAkB,QAC/BvI,IAGQyxE,GAA2B93E,EAAAA,WAAAA,OAAW,CAC/Cr+C,KAAM0kD,GACNjvD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZ2wD,EAAQ5d,EAAK4d,MACbD,EAAc3d,EAAK2d,YACnB25D,EAAUlzG,EAAMkzG,QAChBC,EAAcnzG,EAAMmzG,YACpB/qD,EAASpoD,EAAMooD,OACf6qD,EAAajzG,EAAMizG,WACnB7qH,EAAO4X,EAAM5X,KACb6wD,EAAeM,GAAe,GAC9BL,EAASM,IACTypB,EAAY,GACZowC,EAAW1/H,IACX2/H,EAAiBt6D,GAAkB9K,GAAmB+K,EAAcC,IAEpEo6D,GAAkBJ,GAAWC,KAC/BE,EAAW1/H,EAAEq/H,GAAoB,CAACM,EAAiBn6D,GAAcjL,GAAmB+0B,EAAWhqB,EAAcC,GAAUvlE,EAAEg/H,GAAiB,CACxIp3D,SAAU4S,GAAWglD,EAAaD,QAItC,IAAIK,EAAU5/H,IACV6/H,EAAgBx6D,GAAkB/N,GAAkBgO,EAAcC,GAQtE,OANIs6D,GAAiBprD,GAAU6qD,KAC7BM,EAAU5/H,EAAEo/H,GAAmB,CAACS,EAAgBr6D,GAAclO,GAAkBg4B,EAAWhqB,EAAcC,GAAUvlE,EAAEg/H,GAAiB,CACpIp3D,SAAU4S,GAAW8kD,EAAY7qD,QAI9Bz0E,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,cACbC,MAAOzzB,GAAgB,GAAI,eAAe7zC,OAAOsU,GAAOA,GACxDizD,MAAO,CACL5xD,GAAIuW,EAAMvW,IAAM,KAChB+0D,KAAM,WAEN,CAAC60D,EAAUl6D,GAAc3N,GAAmBy3B,EAAWhqB,EAAcC,GAASq6D,OC5DlFE,GAAgCp3E,GAAc,CAChDR,WAAY,CACVu3E,YAAaA,GACbP,iBAAkBA,GAClBG,mBAAoBA,GACpBD,kBAAmBA,GACnBJ,gBAAiBA,MCZrB,SAAShrF,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAOpM,IAAImF,GAAQs4C,GAAsB,CAEvCopB,MAAOhqB,GAASjN,IAA0B,GAC1ChkD,IAAKixD,GAASxN,GAAkB,QAC/B5K,IAGQo0E,GAA0Bp4E,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAMqiD,GACN5sD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBolB,EAAQ1hE,EAAM0hE,MAClB,OAAO/tF,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCuyD,MAAOzzB,GAAgB,CACrBgsF,YAAajyC,GAAmB,KAAVA,GACtB,mBAA6B,IAAVA,GAA4B,KAAVA,GACpC,aAAa5tF,OAAO4tF,GAAQA,IAAmB,IAAVA,KACtCplB,MC5BR,SAAS30B,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAWpM,IAAImF,GAAQs4C,GAAsB,CACvC2mB,UAAWvnB,GAASxN,IACpBg1B,cAAexnB,GAASxN,IACxB0pE,eAAgBl8D,GAASjN,IAA0B,GACnDi3B,MAAOhqB,GAAS9N,IAAmB,GACnCy2B,OAAQ3oB,GAASxN,IACjBq2B,WAAY7oB,GAASxN,IACrB2pE,YAAan8D,GAAS9M,GAAyB,GAC/CypB,UAAW3c,GAASxN,GAAkB,MACtC4pE,KAAMp8D,GAASxN,IACf6pE,SAAUr8D,GAASxN,IACnB8pE,QAASt8D,GAASxN,GAAkB,KACpCzjD,IAAKixD,GAASxN,GAAkB,OAChC8Q,YAAatD,GAASxN,KACrBlI,IAGQiyE,GAA0B34E,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAM+kD,GACNtvD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAIyxB,EAEArtD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZ2wD,EAAQ5d,EAAK4d,MACbD,EAAc3d,EAAK2d,YACnB8mB,EAASrgE,EAAMqgE,OACfE,EAAavgE,EAAMugE,WACnBuzC,EAAO9zG,EAAM8zG,KACbC,EAAW/zG,EAAM+zG,SACjB/4D,EAAch7C,EAAMg7C,YACpBikB,EAAYj/D,EAAMi/D,UAClBC,EAAgBl/D,EAAMk/D,cACtBjmB,EAAeM,GAAe,GAC9BL,EAASM,IACTypB,EAAY,GACZpG,EAAUlpF,IACV0vF,EAAgBrqB,GAAkB7M,GAAkB8M,EAAcC,GAEtE,GAAImqB,GAAiBhD,GAAUE,EAAY,CACzC,IAAIszC,EAAc7zG,EAAM6zG,YACxBh3C,EAAUlpF,EAAEqsB,EAAMq0D,UAAW,CAC3BjZ,MAAOzzB,GAAgB,GAAI,WAAW7zC,OAAO+/H,GAAcA,GAC3Dt4D,SAAU8nB,EAAgB,GAAKlV,GAAWoS,EAAYF,IACrDlnB,GAAchN,GAAkB82B,EAAWhqB,EAAcC,IAG9D,IAAIg7D,EAAQvgI,IACRwgI,EAAcn7D,GAAkBlM,GAAgBmM,EAAcC,IAE9Di7D,GAAeL,GAAQC,KACzBG,EAAQvgI,EAAEqsB,EAAMg0G,QAAS,CACvB74D,YAAa,OACbI,SAAU44D,EAAc,GAAKhmD,GAAW4lD,EAAUD,IACjD36D,GAAcrM,GAAgBm2B,EAAWhqB,EAAcC,KAG5D,IAAIk7D,EAAY,CAACv3C,EAASq3C,EAAO/6D,GAAc3N,GAAmBy3B,EAAWhqB,EAAcC,IAU3F,OARIl5C,EAAM0hE,QACR0yC,EAAY,CAACzgI,EAAE+/H,GAAY,CACzB1zG,MAAO,CACL0hE,MAAO1hE,EAAM4zG,iBAEdQ,KAGEzgI,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,YACbC,OAAQiS,EAAU,CAChB,kBAAmBrtD,EAAM0hE,OACxB/5C,GAAgB0lC,EAAS,QAAQv5E,OAAOknE,GAAcA,GAAcrzB,GAAgB0lC,EAAS,MAAMv5E,OAAOmrF,GAAYA,GAAYt3C,GAAgB0lC,EAAS,UAAUv5E,OAAOorF,GAAgBA,GAAgBv3C,GAAgB0lC,EAAS,SAAU6R,GAAgB7R,KAChQ+mD,MCnFJC,GAA+Bh4E,GAAc,CAC/CR,WAAY,CACVo4E,WAAYA,MCJhB,SAAS7oH,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAa3M,IAAIy5G,GAAmB,CAAC,QAAS,MAAO,UAIpCC,GAAsB/9D,IAAQ,SAAU0hD,EAAYS,GAEtD,OADAA,EAAO3yF,GAAK9f,GAASyyG,IACdA,EAAOtoD,GAAU,CAAC,WAAY6nD,EAAYS,GAAMh2G,OAAO23C,IAAUvmC,KAAK,MAAQ,QAInFygH,GAA2Bh+D,IAAQ,SAAUrd,GAC/C,OAAOkX,GAAUlX,EAAKtyC,QAAQ,OAAQ,QAIpC4tH,GAAkB,GAGXpc,GAAgB,WAEzB,IAAIqc,EAAev9D,KAAyB7d,QAAO,SAAUt5B,EAAOk4F,GAElE,OADAl4F,EAAMw3C,GAAe0gD,EAAY,SAAWxgD,GAAS9M,IAC9C5qC,IACNtrB,GAAO,OAIV,OAFA+/H,GAAkBt3H,GAAKu3H,GAEhBp8D,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIgtF,GAAe,GAAI,CACvFC,aAAcj9D,GAASxN,GAAkB,MAAM,SAAUh1D,GACvD,OAAO85D,GAAcl7D,GAAOwgI,GAAkB,UAAW,SAAU,WAAYp/H,MAEjF0/H,OAAQl9D,GAASxN,GAAkB,MAAM,SAAUh1D,GACjD,OAAO85D,GAAcl7D,GAAOwgI,GAAkB,UAAW,UAAWp/H,MAEtE2/H,OAAQn9D,GAASxN,GAAkB,MAAM,SAAUh1D,GACjD,OAAO85D,GAAcl7D,GAAOwgI,GAAkB,WAAY,WAAYp/H,MAExE4/H,UAAWp9D,GAAS9N,IAAmB,GACvCnjD,IAAKixD,GAASxN,GAAkB,UAC7B1G,KAMIuxE,GAAO,CAChB93H,KAAMumD,GACN9wD,YAAY,EAERstB,YAMF,cAFOntB,KAAKmtB,MACZntB,KAAKmtB,MAAQq4F,KACNxlH,KAAKmtB,OAGdhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAIi9D,EAEA74F,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBu4D,EAAS70G,EAAM60G,OACfD,EAAS50G,EAAM40G,OACfD,EAAe30G,EAAM20G,aAErB5jH,EAAY,GAWhB,OAVA0jH,GAAgB10H,SAAQ,SAAUo5C,GAChC,IAAI9iC,EAAIk+G,GAAoBC,GAAyBr7E,GAAOn5B,EAAMm5B,IAE9D9iC,GACFtF,EAAUlP,KAAKwU,MAGnBtF,EAAUlP,MAAMg3G,EAAkB,CAChC,aAAc74F,EAAM80G,WACnBntF,GAAgBkxE,EAAiB,eAAe/kH,OAAO+gI,GAASA,GAASltF,GAAgBkxE,EAAiB,mBAAmB/kH,OAAO8gI,GAASA,GAASjtF,GAAgBkxE,EAAiB,iBAAiB/kH,OAAO6gI,GAAeA,GAAe9b,IACzOllH,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,MACbC,MAAOrqD,IACLurD,KC9FJ04D,GAA4B34E,GAAc,CAC5CR,WAAY,CACV63E,WAAYA,GACZqB,KAAMA,GACNnc,KAAMA,GACN9O,SAAUA,MCRVmrB,GAA0B54E,GAAc,CAC1CR,WAAY,CACVitB,MAAOA,MCJX,SAASnhC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAQpM,IAAImF,GAAQs4C,GAAsB,CACvCj9C,MAAOq8C,GAAS9N,IAAmB,GACnCsrE,WAAYx9D,GAASjN,IAA0B,GAC/ChkD,IAAKixD,GAASxN,GAAkB,QAC/BhI,IAGQizE,GAA0B75E,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAMilD,GACNxvD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChB44D,EAAkC,KAArBl1G,EAAMk1G,YAA2Bl1G,EAAMk1G,WACxDA,GAAal1G,EAAM3E,OAAgB65G,EACnC,IAAIh6D,EAAgB,CAClBC,YAAa,aACbC,MAAOzzB,GAAgB,CACrB,mBAAoB3nB,EAAM3E,MAC1B,yBAAwC,IAAf65G,GACxB,yBAAyBphI,OAAOohI,GAAax8E,GAASw8E,KAE3D,OAAOvhI,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAMqyD,GAAgBoB,MChCxD,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAY3M,IAAIu6G,GAAa,CAAC,IAAK,cAAe,SAAU,UAE5CnrD,GAAY1wB,GAAK2wB,GAAY,CAAC,QAAS,qBACpCD,GAAUtJ,KAAK9I,eACfoS,GAAU3qE,GAAGu4D,QACb,IAAI73C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIuiC,IAAY,GAAI,CAChGorD,OAAQ39D,GAAS9N,IAAmB,GACpCmhB,OAAQrT,GAAS9N,IAAmB,GACpCnjD,IAAKixD,GAASxN,GAAkB,OAChCoT,QAAS5F,GAASxN,OACf/H,IAGMmzE,GAA8Bh6E,EAAAA,WAAAA,OAAW,CAClDr+C,KAAMklD,GACNzvD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI6mB,EAEAziD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChByO,EAAS/qD,EAAM+qD,OACfzN,EAAUt9C,EAAMs9C,QAChBuL,EAAS7oD,EAAM6oD,OACfjW,EAAW5yC,EAAM4yC,SACjB74B,EAAO2mC,GAAO1gD,GACdvZ,EAAMskE,EAAS,SAAYhxC,EAAmB+uC,GAAZ9oD,EAAMvZ,IACxC4uH,KAAYr1G,EAAMq1G,QAAUt7F,GAAQgxC,GAAU/b,GAAcomE,GAAYp1G,EAAMvZ,MAC9E40D,EAAQ,GACRk6D,EAAY,GAgBhB,OAdItjE,GAAMxrD,EAAK,WACRoC,EAAKwyD,OAAUxyD,EAAKwyD,MAAMpzD,OAE7BozD,EAAMpzD,KAAO,UAGX+X,EAAM4yC,WAERyI,EAAMzI,UAAW,IAGnB2iE,EAAYt9D,GAAWgS,GAAWjqD,GAG7BrsB,EAAE8S,EAAK+2C,GAAU30C,EAAM,CAC5BwyD,MAAOA,EACPr7C,MAAOu1G,EACPp6D,YAAa,kBACbC,OAAQqH,EAAS,GAAI96B,GAAgB86B,EAAQ,mBAAmB3uE,OAAOwpE,GAAUA,GAAU31B,GAAgB86B,EAAQ,yBAA0B4yD,GAAS1tF,GAAgB86B,EAAQ,SAAUoG,GAASlhC,GAAgB86B,EAAQ,WAAY7P,GAAW6P,KAC9OnG,MCjEJk5D,GAA+Bn5E,GAAc,CAC/CR,WAAY,CACVs5E,WAAYA,GACZG,eAAgBA,MCNpB,SAAS3tF,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAOpM,IAAImF,GAAQs4C,GAAsB,CACvCp0D,MAAOwzD,GAAS9N,IAAmB,GACnCnjD,IAAKixD,GAASxN,GAAkB,OAChCurE,cAAe/9D,GAASxN,GAAkB,QACzC7H,IAGQqzE,GAA2Bp6E,EAAAA,WAAAA,OAAW,CAC/Cr+C,KAAMolD,GACN3vD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBm5D,EAAgBz1G,EAAMy1G,cACtBzzC,EAA0B,QAAlByzC,EAA0B,QAA4B,WAAlBA,EAA6B,MAE7EA,EACA,OAAO9hI,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,cACbC,MAAOzzB,GAAgB,CACrB,oBAAqB3nB,EAAM9b,OAC1B,cAAcpQ,OAAOkuF,GAAQA,KAC9B1lB,MC1BGt8C,GAAQs4C,GAAsB,CACvC7xD,IAAKixD,GAASxN,GAAkB,QAC/B5H,IAGQqzE,GAA0Br6E,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAMqlD,GACN5vD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,eACXmB,MCXGt8C,GAAQs4C,GAAsB,CACvCoqB,OAAQhrB,GAAS9N,IAAmB,GACpCgsE,WAAYl+D,GAAS9N,IAAmB,GACxCnjD,IAAKixD,GAASxN,GAAkB,OAChCurE,cAAe/9D,GAASxN,GAAkB,QACzC9H,IAGQyzE,GAAsBv6E,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAMmlD,GACN1vD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZ2wD,EAAQ5d,EAAK4d,MACbD,EAAc3d,EAAK2d,YACnB+C,EAAW1gB,EAAK0gB,SAChBomB,EAAS1iE,EAAM0iE,OACfkzC,EAAa51G,EAAM41G,WACnBH,EAAgBz1G,EAAMy1G,cACtBrB,EAAY1xC,EAASpmB,EAAW,GAEpC,IAAKomB,EAAQ,CACX,IAAIO,EAAY,GACZ/pB,EAASM,IACTP,EAAeM,GAAe,GAClC66D,EAAUvyH,KAAKlO,EAAEgiI,GAAYx8D,GAAc3N,GAAmBy3B,EAAWhqB,EAAcC,KACvF,IAAI48D,EAAS38D,GAAcjO,GAAiB+3B,EAAWhqB,EAAcC,GAEjE48D,GACF1B,EAAUwB,EAAa,OAAS,WAAWjiI,EAAE+hI,GAAa,CACxD11G,MAAO,CACL9b,MAAO0xH,EACPH,cAAeA,IAEhBK,IAIP,OAAOniI,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,UACXi5D,MC/CJ2B,GAA2B15E,GAAc,CAC3CR,WAAY,CACVg6E,OAAQA,GACRH,YAAaA,GACbC,WAAYA,MCDZ1uD,GAAO,sBAGA+uD,GAAwB16E,EAAAA,WAAAA,OAAW,CAC5C2iB,QAAS,WAIPprE,KAAKo0E,IAAQ,IAEf9I,cAAe,WACb,IAAI54B,EAAQ1yC,KAGZsK,GAAKtK,KAAKo0E,KAAS,IAAIlnE,SAAQ,SAAUonB,GACvCoe,EAAM0hC,IAAM9/C,GAAOpnB,SAAQ,SAAUonE,GACnC5hC,EAAM0wF,kBAAkB9uG,EAAOggD,SAGnCt0E,KAAKo0E,IAAQ,MAEfp5D,QAAS,CACPqoH,yBAA0B,SAAkC/uG,EAAOggD,GAC7Dt0E,KAAKo0E,MACPp0E,KAAKo0E,IAAM9/C,GAASt0B,KAAKo0E,IAAM9/C,IAAU,GAEpC6nC,GAAcn8D,KAAKo0E,IAAM9/C,GAAQggD,IACpCt0E,KAAKo0E,IAAM9/C,GAAOtlB,KAAKslE,KAI7BgvD,2BAA4B,SAAoChvG,EAAOggD,GACjEt0E,KAAKo0E,KAASp0E,KAAKo0E,IAAM9/C,KAC3Bt0B,KAAKo0E,IAAM9/C,GAASt0B,KAAKo0E,IAAM9/C,GAAOxkB,QAAO,SAAU+uD,GACrD,OAAOA,IAAOyV,OAIpBivD,eAAgB,SAAwBn8D,EAAI9yC,EAAOggD,GACjDlN,EAAKpnE,KAAKwjI,iBAAiBlvG,EAAOggD,GAAYt0E,KAAKojI,kBAAkB9uG,EAAOggD,IAE9EkvD,iBAAkB,SAA0BlvG,EAAOggD,GAC7CxlD,IACFk4C,GAAQlrD,SAAUwY,EAAOggD,EAAU1d,IACnC52D,KAAKqjI,yBAAyB/uG,EAAOggD,KAGzC8uD,kBAAmB,SAA2B9uG,EAAOggD,GAC/CxlD,GACFo4C,GAASprD,SAAUwY,EAAOggD,EAAU1d,IAGtC52D,KAAKsjI,2BAA2BhvG,EAAOggD,OCpDzCF,GAAO,oBAGAqvD,GAAsBh7E,EAAAA,WAAAA,OAAW,CAC1C2iB,QAAS,WAIPprE,KAAKo0E,IAAQ,IAEf9I,cAAe,WACb,IAAI54B,EAAQ1yC,KAGZsK,GAAKtK,KAAKo0E,KAAS,IAAIlnE,SAAQ,SAAUonB,GACvCoe,EAAM0hC,IAAM9/C,GAAOpnB,SAAQ,SAAUonE,GACnC5hC,EAAMgxF,gBAAgBpvG,EAAOggD,SAGjCt0E,KAAKo0E,IAAQ,MAEfp5D,QAAS,CACP2oH,uBAAwB,SAAgCrvG,EAAOggD,GACzDt0E,KAAKo0E,MACPp0E,KAAKo0E,IAAM9/C,GAASt0B,KAAKo0E,IAAM9/C,IAAU,GAEpC6nC,GAAcn8D,KAAKo0E,IAAM9/C,GAAQggD,IACpCt0E,KAAKo0E,IAAM9/C,GAAOtlB,KAAKslE,KAI7BsvD,yBAA0B,SAAkCtvG,EAAOggD,GAC7Dt0E,KAAKo0E,KAASp0E,KAAKo0E,IAAM9/C,KAC3Bt0B,KAAKo0E,IAAM9/C,GAASt0B,KAAKo0E,IAAM9/C,GAAOxkB,QAAO,SAAU+uD,GACrD,OAAOA,IAAOyV,OAIpBuvD,aAAc,SAAsBz8D,EAAI9yC,EAAOggD,GAC7ClN,EAAKpnE,KAAK8jI,eAAexvG,EAAOggD,GAAYt0E,KAAK0jI,gBAAgBpvG,EAAOggD,IAE1EwvD,eAAgB,SAAwBxvG,EAAOggD,GACzCxlD,IACFk4C,GAAQzoD,OAAQ+V,EAAOggD,EAAU1d,IACjC52D,KAAK2jI,uBAAuBrvG,EAAOggD,KAGvCovD,gBAAiB,SAAyBpvG,EAAOggD,GAC3CxlD,GACFo4C,GAAS3oD,OAAQ+V,EAAOggD,EAAU1d,IAGpC52D,KAAK4jI,yBAAyBtvG,EAAOggD,OCxDhCyvD,GAAa,SAAoBxyB,GAC1C,IAAI/pD,EAAer8C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KACvF,OAAOomG,GAAKA,EAAG7wG,SAASZ,UAA2B0nD,GCLrD,SAAS1S,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAKpM,IAAIg8G,GAAmBv7E,EAAAA,WAAAA,OAAW,CACvC8jB,SAAU,CACR03D,iBAAkB,WAChB,IAAI1kI,EAAUwkI,GAAW/jI,KAAKmyE,SAC9B,OAAO5yE,EAAUu1C,GAAgB,GAAIv1C,EAAS,IAAM,OCgBtD2kI,GAAmCz7E,EAAAA,WAAAA,OAAW,CAIhD07E,UAAU,EACV/5H,KAAM0oD,GACN3lC,MAAO,CAGLi3G,MAAOv/D,GAASvN,KAElBthD,KAAM,SAAcu7F,GAClB,MAAO,CACL8yB,aAAc9yB,EAAG6yB,QAGrBE,UAAW,WACTvlE,GAAW/+D,KAAKm3E,MAElBh4E,OAAQ,SAAgB2B,GACtB,IAAIujI,EAAerkI,KAAKqkI,aACpBE,EAASvgG,GAAWqgG,GAAgBA,EAAa,IAAMA,EAG3D,OAFAE,EAAStjI,GAAOsjI,GAAQz0H,OAAO23C,IAE3B88E,GAAUA,EAAO5hI,OAAS,IAAM4hI,EAAO,GAAG9qD,KACrC8qD,EAAO,GAKTzjI,OAIAqsB,GAAQ,CAIjB2zG,UAAWj8D,GAAS,CAAC/f,GAAauS,IAAmB,QACrD0I,SAAU8E,GAAS9N,IAAmB,GAEtCnjD,IAAKixD,GAASxN,GAAkB,QAIvBmtE,GAA6B/7E,EAAAA,WAAAA,OAAW,CACjDr+C,KAAMyoD,GACN8X,OAAQ,CAAClE,IACTt5C,MAAOA,GACP29C,MAAO,CACL/K,SAAU,CACR0kE,WAAW,EACX9vG,QAAS,SAAiBorC,GACxBA,EAAW//D,KAAK0kI,gBAAkB1kI,KAAKmrE,UAAUnrE,KAAK2kI,gBAI5Dv5D,QAAS,WAEPprE,KAAK4kI,YAAc,KACnB5kI,KAAK6kI,SAAW,MAElBC,YAAa,WACX9kI,KAAK2kI,eAEPzoC,QAAS,WAOPl8F,KAAK+kI,gBAEPz5D,cAAe,WACbtrE,KAAK0kI,gBACL1kI,KAAK4kI,YAAc,MAErB5pH,QAAS,CAEPgqH,aAAc,WAEZ,GAAIl2G,EAAY,CACd,IAAIgyG,EAAY9gI,KAAK8gI,UACrB,OAAOj7E,GAASi7E,GAAargE,GAAOqgE,GAAaA,EAEjD,OAAO,MAIX6D,YAAa,WACX,IAAK3kI,KAAK6kI,SAAU,CAClB,IAAII,EAAajlI,KAAKglI,eAEtB,GAAIC,EAAY,CACd,IAAI9tD,EAAMr7D,SAASE,cAAc,OACjCipH,EAAWt4G,YAAYwqD,GACvBn3E,KAAK6kI,SAAW,IAAIX,GAAoB,CACtCx1H,GAAIyoE,EACJh3E,OAAQH,KACRklI,UAAW,CAETd,MAAOnjI,GAAOjB,KAAKsmE,uBAO7By+D,aAAc,WACZ,GAAIj2G,GAAc9uB,KAAK6kI,SAAU,CAC/B,IAAIM,EAAYnlI,KAAKomE,aAAapB,QAE7BhlE,KAAK+/D,WAEJolE,GAAanlI,KAAK4kI,cAAgBO,EAIpCnlI,KAAK6kI,SAASR,aAAec,EACnBA,IAEVnlI,KAAK6kI,SAASR,aAAerkI,KAAKqmE,OAAOrB,UAK7ChlE,KAAK4kI,YAAcO,IAIvBT,cAAe,WACb1kI,KAAK6kI,UAAY7kI,KAAK6kI,SAASO,WAC/BplI,KAAK6kI,SAAW,OAGpB1lI,OAAQ,SAAgB2B,GAEtB,GAAId,KAAK+/D,SAAU,CACjB,IAAIwkE,EAAStjI,GAAOjB,KAAKsmE,iBAAiBx2D,OAAO23C,IAEjD,GAAI88E,EAAO5hI,OAAS,IAAM4hI,EAAO,GAAG9qD,KAClC,OAAO8qD,EAAO,GAIlB,OAAOzjI,O,QC3KX,SAASyuC,GAAQvnB,GAAkC,OAAOunB,GAAU,mBAAqB3zB,QAAU,iBAAmBA,OAAO1N,SAAW,SAAU8Z,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBpM,QAAUoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,gBAAkB8lB,GAAQunB,GAAQvnB,GAEzU,SAASzP,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAE3M,SAASynB,GAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASyzC,GAAkBzoC,EAAQ6gB,GAAS,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,IAAK,CAAE,IAAI8P,EAAamT,EAAMjjB,GAAI8P,EAAWL,WAAaK,EAAWL,aAAc,EAAOK,EAAW5X,cAAe,EAAU,UAAW4X,IAAYA,EAAWJ,UAAW,GAAMxW,OAAOtB,eAAewK,EAAQ0N,EAAW1X,IAAK0X,IAE7S,SAASg7B,GAAazxC,EAAa0xC,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxxC,EAAYrB,UAAW+yC,GAAiBC,GAAaH,GAAkBxxC,EAAa2xC,GAAc9xC,OAAOtB,eAAeyB,EAAa,YAAa,CAAEqW,UAAU,IAAiBrW,EAE/Q,SAAS8hI,KAAoX,OAAtTA,GAA9B,qBAAZtkH,SAA2BA,QAAQra,IAAcqa,QAAQra,IAAqB,SAAc4F,EAAQpG,EAAU6+B,GAAY,IAAIwU,EAAO+rF,GAAeh5H,EAAQpG,GAAW,GAAKqzC,EAAL,CAAmB,IAAIzN,EAAO1oC,OAAOyV,yBAAyB0gC,EAAMrzC,GAAW,OAAI4lC,EAAKplC,IAAcolC,EAAKplC,IAAIrG,KAAK8K,UAAUxI,OAAS,EAAI2J,EAASy4B,GAAoB+G,EAAKzpC,QAAmBgjI,GAAKj1H,MAAMpQ,KAAMmL,WAErZ,SAASm6H,GAAelyH,EAAQlN,GAAY,OAAQ9C,OAAOlB,UAAU8e,eAAe3gB,KAAK+S,EAAQlN,GAA+C,GAAlCkN,EAAS2iC,GAAgB3iC,GAAwB,OAAXA,EAAiB,MAAS,OAAOA,EAErL,SAASkiC,GAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIl0C,UAAU,sDAAyD8B,OAAOtB,eAAeyzC,EAAU,YAAa,CAAElzC,MAAOe,OAAOvB,OAAO2zC,GAAcA,EAAWtzC,UAAW,CAAEsI,YAAa,CAAEnI,MAAOkzC,EAAU37B,UAAU,EAAMxX,cAAc,KAAWwX,UAAU,IAAc47B,GAAYC,GAAgBF,EAAUC,GAExa,SAASC,GAAgBW,EAAGnM,GAA+G,OAA1GwL,GAAkBryC,OAAOY,gBAAkB,SAAyBoyC,EAAGnM,GAAsB,OAAjBmM,EAAE5nB,UAAYyb,EAAUmM,GAAaX,GAAgBW,EAAGnM,GAErK,SAASqa,GAAaC,GAAW,IAAIC,EAA4BC,KAA6B,OAAO,WAAkC,IAAsCp3C,EAAlCq3C,EAAQ3O,GAAgBwO,GAAkB,GAAIC,EAA2B,CAAE,IAAItgC,EAAY6xB,GAAgB/1C,MAAMwK,YAAa6C,EAAS0T,QAAQK,UAAUsjC,EAAOv5C,UAAW+Y,QAAqB7W,EAASq3C,EAAMt0C,MAAMpQ,KAAMmL,WAAc,OAAOgqC,GAA2Bn1C,KAAMqN,IAE5Z,SAAS8nC,GAA2BxlC,EAAMtP,GAAQ,GAAIA,IAA2B,WAAlBkvC,GAAQlvC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIiB,UAAU,4DAA+D,OAAO8zC,GAAuBzlC,GAExR,SAASylC,GAAuBzlC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI0lC,eAAe,6DAAgE,OAAO1lC,EAE/J,SAAS80C,KAA8B,GAAuB,qBAAZ1jC,UAA4BA,QAAQK,UAAW,OAAO,EAAO,GAAIL,QAAQK,UAAU1B,KAAM,OAAO,EAAO,GAAqB,oBAAVu2B,MAAsB,OAAO,EAAM,IAAsF,OAAhFllC,QAAQ7O,UAAU0sB,QAAQvuB,KAAK0gB,QAAQK,UAAUrQ,QAAS,IAAI,iBAAyB,EAAQ,MAAO4uB,GAAK,OAAO,GAE/T,SAASoW,GAAgBK,GAAwJ,OAAnJL,GAAkB3yC,OAAOY,eAAiBZ,OAAOW,eAAiB,SAAyBqyC,GAAK,OAAOA,EAAE5nB,WAAaprB,OAAOW,eAAeqyC,IAAcL,GAAgBK,GAKxM,IAAImvF,GAA4B,SAAUC,GACxClwF,GAAUiwF,EAAcC,GAExB,IAAI3gF,EAASP,GAAaihF,GAE1B,SAASA,EAAanwH,GACpB,IAAIs9B,EAEAo7D,EAAY3iG,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GASpF,OAPAskC,GAAgBzvC,KAAMulI,GAEtB7yF,EAAQmS,EAAOxkD,KAAKL,KAAMoV,EAAM04F,GAEhC5gF,GAAiBkoB,GAAuB1C,GAAQ,CAC9C+yF,QAAS5+E,OAEJnU,EAYT,OATAsC,GAAauwF,EAAc,KAAM,CAAC,CAChCjjI,IAAK,WACLoE,IAAK,WACH,OAAOmuC,GAAcA,GAAc,GAAIwwF,GAAKtvF,GAAgBwvF,GAAe,WAAYvlI,OAAQ,GAAI,CACjGylI,QAAS,WAKRF,EA7BuB,CA8B9B13B,ICtDE63B,I,OAAiB,MAEjBC,GAAyB,oDACzBC,GAA0B,cAC1BC,GAA0B,kBAG1BC,GAA4Br9E,EAAAA,WAAAA,OAAW,CACzCzyC,KAAM,WACJ,MAAO,CACL+vH,OAAQ,GACRC,WAAY,KACZC,eAAgB,KAChBC,mBAAmB,IAGvB35D,SAAU,CACR45D,WAAY,WACV,OAAOnmI,KAAK+lI,OAAOpjI,QAErByjI,cAAe,WACb,OAAOpmI,KAAKmmI,WAAa,IAG7Br7D,MAAO,CACLq7D,WAAY,SAAoBE,EAAUC,GACpCx3G,IACF9uB,KAAKumI,oBAEDF,EAAW,GAAkB,IAAbC,GAElBtmI,KAAKwmI,iBACLxmI,KAAKymI,eACL1lE,GAASjlD,SAAS0jD,KAAM,eACF,IAAb6mE,GAAkBC,EAAW,IAEtCtmI,KAAK0mI,iBACLzlE,GAAYnlD,SAAS0jD,KAAM,eAG7B2B,GAAQrlD,SAAS0jD,KAAM,wBAAyB79D,OAAO0kI,MAG3DN,OAAQ,SAAgBh7D,GACtB,IAAIr4B,EAAQ1yC,KAEZA,KAAKwmI,iBACLjoE,IAAU,WACR7rB,EAAMi0F,aAAa57D,GAAY,SAIrC/vD,QAAS,CAEP4rH,cAAe,SAAuBC,GAEhCA,IAAyC,IAAhC7mI,KAAK+lI,OAAOl3H,QAAQg4H,IAC/B7mI,KAAK+lI,OAAO/2H,KAAK63H,IAGrBC,gBAAiB,SAAyBD,GACxC,IAAIpkI,EAAQzC,KAAK+lI,OAAOl3H,QAAQg4H,GAE5BpkI,GAAS,IAEXzC,KAAK+lI,OAAOpvH,OAAOlU,EAAO,GAErBokI,EAAME,mBAAsBF,EAAMG,cACrChnI,KAAKinI,WAAWJ,KAItBK,cAAe,WACb,GAAIp4G,GAAc42B,GAAO1lD,KAAKgmI,YAAa,CAEzC,IAAImB,EAAMrrH,SAASE,cAAc,OACjC+kD,GAASomE,EAAK,kBACdpmE,GAASomE,EAAK,UACdxlE,GAASwlE,EAAK,UAAW,QACzBrrH,SAAS0jD,KAAK7yC,YAAYw6G,GAC1BnnI,KAAKgmI,WAAavpE,GAAUqF,GAAMqlE,GAAK5iB,OAAQmhB,IAC/C5pH,SAAS0jD,KAAKtqC,YAAYiyG,GAG5B,OAAOnnI,KAAKgmI,YAAcN,IAE5Ba,kBAAmB,WACjB,GAAIz3G,GAAc42B,GAAO1lD,KAAKimI,gBAAiB,CAE7C,IAAIkB,EAAMrrH,SAASE,cAAc,OACjC+kD,GAASomE,EAAK,2BACdrrH,SAAS0jD,KAAK7yC,YAAYw6G,GAC1BnnI,KAAKimI,eAAiBtmE,GAAOwnE,GAAKtnE,MAAQsnE,EAAI/kC,YAC9CtmF,SAAS0jD,KAAKtqC,YAAYiyG,GAG5B,OAAOnnI,KAAKimI,gBAAkB,GAGhCU,aAAc,SAAsBZ,GAClC,IAAIlxD,EAAS70E,KAETgmI,EAAahmI,KAAKknI,gBAClBjB,EAAiBjmI,KAAKumI,oBAC1BR,EAAO74H,SAAQ,SAAU25H,EAAOpkI,GAE9BokI,EAAMtiB,OAASyhB,EAAavjI,EAC5BokI,EAAMZ,eAAiBA,EACvBY,EAAMO,MAAQ3kI,IAAUoyE,EAAOkxD,OAAOpjI,OAAS,EAC/CkkI,EAAMX,kBAAoBrxD,EAAOqxD,sBAGrCe,WAAY,SAAoBJ,GAC1BA,IACFA,EAAMtiB,OAASvkH,KAAKknI,gBACpBL,EAAMO,OAAQ,EACdP,EAAMX,mBAAoB,IAG9BM,eAAgB,WAEd,IAAIa,EAAU1nE,GAAO7jD,SAAS0jD,MAC1BpuD,EAAOi2H,EAAQj2H,KACfC,EAAQg2H,EAAQh2H,MAEpBrR,KAAKkmI,kBAAoB90H,EAAOC,EAAQkN,OAAO4kF,YAEjDsjC,aAAc,WACZ,IAAIjnE,EAAO1jD,SAAS0jD,KAOpB,GAHAA,EAAK8nE,wBAA0B9nE,EAAK8nE,yBAA2B,GAC/D9nE,EAAK+nE,uBAAyB/nE,EAAK+nE,wBAA0B,GAEzDvnI,KAAKkmI,kBAAmB,CAC1B,IAAID,EAAiBjmI,KAAKimI,eAI1B7lE,GAAUulE,IAAwBz4H,SAAQ,SAAUwB,GAClD,IAAI84H,EAAgB/nE,GAAS/wD,EAAI,iBAAmB,GACpDyyD,GAAQzyD,EAAI,qBAAsB84H,GAClC7lE,GAASjzD,EAAI,eAAgB,GAAGzN,OAAOy7D,GAAQoF,GAAMpzD,GAAIusE,aAAc,GAAKgrD,EAAgB,OAE5FzmE,EAAK8nE,wBAAwBt4H,KAAKN,MAKpC0xD,GAAUwlE,IAAyB14H,SAAQ,SAAUwB,GAGnD,IAAI+4H,EAAehoE,GAAS/wD,EAAI,gBAAkB,GAClDyyD,GAAQzyD,EAAI,oBAAqB+4H,GACjC9lE,GAASjzD,EAAI,cAAe,GAAGzN,OAAOy7D,GAAQoF,GAAMpzD,GAAI0rE,YAAa,GAAK6rD,EAAgB,OAE1FzmE,EAAK+nE,uBAAuBv4H,KAAKN,MAKnC0xD,GAAUylE,IAAyB34H,SAAQ,SAAUwB,GAGnD,IAAI+4H,EAAehoE,GAAS/wD,EAAI,gBAAkB,GAClDyyD,GAAQzyD,EAAI,oBAAqB+4H,GACjC9lE,GAASjzD,EAAI,cAAe,GAAGzN,OAAOy7D,GAAQoF,GAAMpzD,GAAI0rE,YAAa,GAAK6rD,EAAgB,OAE1FzmE,EAAK+nE,uBAAuBv4H,KAAKN,MAGnC,IAAI84H,EAAgB/nE,GAASD,EAAM,iBAAmB,GACtD2B,GAAQ3B,EAAM,qBAAsBgoE,GACpC7lE,GAASnC,EAAM,eAAgB,GAAGv+D,OAAOy7D,GAAQoF,GAAMtC,GAAMyb,aAAc,GAAKgrD,EAAgB,SAGpGS,eAAgB,WACd,IAAIlnE,EAAO1jD,SAAS0jD,KAEhBA,EAAK8nE,yBAEP9nE,EAAK8nE,wBAAwBp6H,SAAQ,SAAUwB,GAEzCsxD,GAAQtxD,EAAI,wBACdizD,GAASjzD,EAAI,eAAgB8yD,GAAQ9yD,EAAI,uBAAyB,IAClE4yD,GAAW5yD,EAAI,0BAKjB8wD,EAAK+nE,wBAEP/nE,EAAK+nE,uBAAuBr6H,SAAQ,SAAUwB,GAExCsxD,GAAQtxD,EAAI,uBACdizD,GAASjzD,EAAI,cAAe8yD,GAAQ9yD,EAAI,sBAAwB,IAChE4yD,GAAW5yD,EAAI,yBAKrB8wD,EAAK8nE,wBAA0B,KAC/B9nE,EAAK+nE,uBAAyB,KAE1BvnE,GAAQR,EAAM,wBAChBmC,GAASnC,EAAM,eAAgBgC,GAAQhC,EAAM,uBAAyB,IACtE8B,GAAW9B,EAAM,2BAMdkoE,GAAe,IAAI5B,GChO9B,SAASvtH,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAkC3M,IAAI8hD,GAAkBlE,GAAe,UAAW,CAC9CxwD,KAAM2hD,GACNvP,cAAc,EACdlzB,MAAO4+B,KAEL6W,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAEnCqzG,GAAmB,WACnBC,GAAc,MACdC,GAAgB,QAChBC,GAAiB,SACjBC,GAAgB,SAEhBC,GAAe,cACfC,GAAY,KACZC,GAAU,CAACH,GAAeC,GAAcC,IAGxCE,GAAkB,CACpBj0C,SAAS,EACTD,WAAW,EACXjqE,eAAe,EACfutE,YAAY,EACZC,gBAAiB,CAAC,QAAS,UAGlBrqE,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAa,GAAI,CACzH9B,UAAWrD,GAASxN,IACpB+wE,gBAAiBvjE,GAASxN,GAAkB,MAE5C,SAAUh1D,GACR,OAAOsjD,GAAkBtjD,IAAU85D,GAAc+rE,GAAS7lI,MAE5D6qF,cAAeroB,GAASxN,IACxB01B,UAAWloB,GAASrN,IACpB41B,gBAAiBvoB,GAASxN,IAC1BgxE,KAAMxjE,GAAS9N,IAAmB,GAClCuxE,WAAYzjE,GAASxN,IACrBkxE,eAAgB1jE,GAAS9N,IAAmB,GAC5CyxE,YAAa3jE,GAASxN,GAAkB,UACxCoxE,gBAAiB5jE,GAASxN,IAC1BqxE,cAAe7jE,GAASxN,GAAkB,aAC1CsxE,SAAU9jE,GAAS9N,IAAmB,GACtC6xE,aAAc/jE,GAASrN,IACvBqxE,YAAahkE,GAASrN,IACtB22B,gBAAiBtpB,GAASxN,IAC1B+2B,oBAAqBvpB,GAASxN,IAC9B22B,YAAanpB,GAASrN,IACtB82B,UAAWzpB,GAASxN,GAAkB,UACtCg3B,kBAAmBxpB,GAASxN,IAC5Bu2B,gBAAiB/oB,GAASxN,IAC1Bw2B,oBAAqBhpB,GAASxN,IAC9Bo2B,YAAa5oB,GAASrN,IACtBsxE,mBAAoBjkE,GAASxN,GAAkB,WAC/C0xE,iBAAkBlkE,GAASxN,GAAkB,SAC7C2xE,mBAAoBnkE,GAASxN,IAC7BmqB,UAAW3c,GAASxN,GAAkB,UACtCy2B,kBAAmBjpB,GAASxN,IAE5B4xE,aAAcpkE,GAAS9N,IAAmB,GAE1CmyE,WAAYrkE,GAAS9N,IAAmB,GAExC2qB,WAAY7c,GAAS9N,IAAmB,GAExCoyE,gBAAiBtkE,GAAS9N,IAAmB,GAC7CqyE,2BAA4BvkE,GAASpN,IACrCw6C,KAAMptC,GAAS9N,IAAmB,GAClCsyE,WAAYxkE,GAASrN,IACrB8xE,kBAAmBzkE,GAAS9N,IAAmB,GAC/CwyE,aAAc1kE,GAAS9N,IAAmB,GAC1CyyE,eAAgB3kE,GAAS9N,IAAmB,GAC5CuS,OAAQzE,GAAS9N,IAAmB,GACpC0yE,WAAY5kE,GAAS9N,IAAmB,GACxC2yE,WAAY7kE,GAAS9N,IAAmB,GACxC4yE,OAAQ9kE,GAAS9N,IAAmB,GACpC6yE,QAAS/kE,GAASxN,GAAkB,MACpCwyE,YAAahlE,GAASxN,IACtByyE,UAAWjlE,GAASxN,GAAkB,WAEtC0yE,YAAallE,GAAS,CAAC/f,GAAaqS,GAAkBE,KACtD2yE,WAAYnlE,GAAS9N,IAAmB,GACxCxhD,KAAMsvD,GAASxN,GAAkB,MACjC4yE,OAAQplE,GAAS9N,IAAmB,GACpC2Y,MAAO7K,GAASxN,IAChB6yE,WAAYrlE,GAASrN,IACrB2yE,UAAWtlE,GAASxN,IACpB+yE,YAAavlE,GAAS9N,IAAmB,GACzCu1B,SAAUznB,GAASxN,GAAkB,SAClC3H,IAGM26E,GAAsB5hF,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAMslD,GACNib,OAAQ,CAACwJ,GAAY2M,GAAS/W,GAAYo5D,GAAuB9uD,GAAmBovD,GAAqBh9D,GAAoBu9D,IAC7H9tD,cAAc,EACd/oD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLs0H,UAAU,EAEVhrE,WAAW,EAEXirE,iBAAiB,EAEjBC,QAAQ,EAERnuC,SAAS,EAETouC,WAAW,EAEXC,WAAW,EAEXC,qBAAqB,EAErBC,oBAAoB,EAEpB3E,eAAgB,EAChB1hB,OAAQmjB,GAAaR,gBACrBE,OAAO,EACPlB,mBAAmB,IAGvB35D,SAAU,CACRs+D,QAAS,WACP,OAAO7qI,KAAKghF,UAEd8pD,aAAc,WACZ,OAAO9qI,KAAKghF,OAAO,sBAErB+pD,cAAe,WACb,OAAO/qI,KAAKghF,OAAO,uBAErBgqD,YAAa,WACX,OAAOhrI,KAAKghF,OAAO,qBAErBiqD,aAAc,WACZ,OAAOjrI,KAAKghF,OAAO,sBAErBkqD,eAAgB,WACd,OAAOlrI,KAAKghF,OAAO,wBAErBmqD,cAAe,WACb,OAAOnrI,KAAKghF,OAAO,uBAErBoqD,gBAAiB,WACf,OAAOprI,KAAKghF,OAAO,yBAErBqqD,aAAc,WACZ,MAAO,CAAC,CACN7gE,MAAOxqE,KAAKspE,OACZc,KAAMpqE,KAAKwqI,QACVxqI,KAAKqpI,aAEViC,YAAa,WACX,IAAIC,EAAU,GAAGtqI,OAAOjB,KAAKimI,eAAgB,MAC7C,MAAO,CACLjrD,aAAch7E,KAAKkmI,mBAAqBlmI,KAAK4qI,mBAAqBW,EAAU,GAC5EtwD,aAAcj7E,KAAKkmI,oBAAsBlmI,KAAK4qI,mBAAqBW,EAAU,GAG7E7+G,QAAS1sB,KAAKq8F,QAAU,QAAU,SAGtCmvC,cAAe,WACb,IAAIziF,EAEJ,MAAO,EAAEA,EAAO,GAAIjU,GAAgBiU,EAAM,SAAS9nD,OAAOjB,KAAKuV,MAAOvV,KAAKuV,MAAOu/B,GAAgBiU,EAAM,wBAAyB/oD,KAAK2oI,UAAW7zF,GAAgBiU,EAAM,0BAA2B/oD,KAAKgqI,YAAajhF,GAAO/oD,KAAK6oI,cAElOl0B,cAAe,WACb,IAAIpmC,EAEJ,MAAO,EAAEA,EAAQ,GAAIz5B,GAAgBy5B,EAAO,MAAMttE,OAAOjB,KAAK4tF,iBAAkB5tF,KAAK4tF,iBAAkB94C,GAAgBy5B,EAAO,QAAQttE,OAAOjB,KAAK8tF,mBAAoB9tF,KAAK8tF,mBAAoBh5C,GAAgBy5B,EAAO,UAAUttE,OAAOjB,KAAK6tF,qBAAsB7tF,KAAK6tF,qBAAsBtf,GAAQvuE,KAAKytF,cAE5Sg+C,aAAc,WACZ,MAAO,CAAC,CACN,UAAWzrI,KAAKoqI,aACfpqI,KAAKkqI,aAEVwB,YAAa,WACX,IAAIh9D,EAEJ,MAAO,EAAEA,EAAQ,GAAI55B,GAAgB45B,EAAO,MAAMztE,OAAOjB,KAAKktF,eAAgBltF,KAAKktF,eAAgBp4C,GAAgB45B,EAAO,QAAQztE,OAAOjB,KAAKotF,iBAAkBptF,KAAKotF,iBAAkB1e,GAAQ1uE,KAAK+sF,YAEtM4+C,cAAe,WACb,IAAIC,EAEJ,MAAO,EAAEA,EAAQ,GAAI92F,GAAgB82F,EAAO,MAAM3qI,OAAOjB,KAAKmuF,iBAAkBnuF,KAAKmuF,iBAAkBr5C,GAAgB82F,EAAO,QAAQ3qI,OAAOjB,KAAKquF,mBAAoBruF,KAAKquF,mBAAoBv5C,GAAgB82F,EAAO,UAAU3qI,OAAOjB,KAAKouF,qBAAsBpuF,KAAKouF,qBAAsBw9C,GAAQ5rI,KAAKguF,cAE5S69C,gBAAiB,WAEf,MAAO,CACL3pH,SAAU,WACVqiG,OAAQvkH,KAAKukH,SAGjBn0B,UAAW,WACT,MAAO,CACL07C,OAAQ9rI,KAAK+rI,SACb7/G,MAAOlsB,KAAKgsI,QACZn/B,KAAM7sG,KAAK6sG,KACXnqE,GAAI1iC,KAAKisI,KACTh7C,QAASjxF,KAAKs/D,YAGlB4sE,kCAAmC,WAEjC,OAAOjrI,GAAOjB,KAAKopI,4BAA4Bt5H,OAAO23C,IAAUvmC,KAAK,KAAKiS,QAE5EqjD,cAAe,WAGb,IAAIytD,EAAoBjkI,KAAKiqI,OAAiC,GAAxBjqI,KAAKikI,iBAC3C,OAAOpvF,GAAcA,GAAcA,GAAc,GAAIovF,GAAmBjkI,KAAKy2E,SAAU,GAAI,CACzF7/D,GAAI5W,KAAK8qI,gBAGbqB,mBAAoB,WAClB,IAAI7sE,EAAYt/D,KAAKs/D,UACjB4I,EAAYloE,KAAKkoE,UACrB,MAAO,CACLtxD,GAAI5W,KAAK6qI,QACTl/D,KAAM,SACN,cAAerM,EAAY,KAAO,OAClC,aAAcA,EAAY,OAAS,KACnC,aAAc4I,EACd,kBAAmBloE,KAAK0hF,YAAcxZ,KACpCloE,KAAKmmE,kBAAkB1L,KAA0Bz6D,KAAKmqI,WAAanqI,KAAK0vE,OAAS,KAAO1vE,KAAKirI,aAC/F,mBAAoBjrI,KAAKgrI,eAI/BlgE,MAAOh2B,GAAgB,GAAIm1B,IAAiB,SAAUc,EAAU+I,GAC1D/I,IAAa+I,GACf9zE,KAAK+qE,EAAW,OAAS,aAG7BK,QAAS,WAEPprE,KAAK+2F,WAAa,KAClB/2F,KAAKosI,cAAgBpsI,KAAK+pI,aAAe,MAE3C/sD,QAAS,WAEPh9E,KAAKukH,OAASmjB,GAAaR,gBAG3BlnI,KAAK00E,aAAa1M,GAAuBtY,GAAYmG,IAAkB71D,KAAKqsI,aAC5ErsI,KAAK00E,aAAa1M,GAAuBtY,GAAY4E,IAAkBt0D,KAAK6xG,aAC5E7xG,KAAK00E,aAAa1M,GAAuBtY,GAAYyG,IAAoBn2D,KAAKssI,eAG9EtsI,KAAK00E,aAAa3M,GAAiBrY,GAAYmG,IAAkB71D,KAAKusI,gBAExC,IAA1BvsI,KAAKiqE,KACPjqE,KAAKmrE,UAAUnrE,KAAKoqE,OAGxBkB,cAAe,WAEbo8D,GAAaZ,gBAAgB9mI,MAC7BA,KAAKi3F,aAAY,GAEbj3F,KAAKs/D,YACPt/D,KAAKs/D,WAAY,EACjBt/D,KAAKwqI,QAAS,EACdxqI,KAAKuqI,iBAAkB,IAG3BvvH,QAAS,CACPi8E,YAAa,WACX,IAAI7vB,EAAKj8D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GACxEnL,KAAK+2F,YAAc/2F,KAAK+2F,WAAWtF,aACnCzxF,KAAK+2F,WAAa,KAEd3vB,IACFpnE,KAAK+2F,WAAatD,GAAWzzF,KAAKsoF,MAAMv8D,QAAS/rB,KAAKwsI,mBAAmBl/H,KAAKtN,MAAOmoI,MAIzFsE,YAAa,SAAqBpqI,GAC5BA,IAAUrC,KAAKiqE,KACjBjqE,KAAKirE,MAAMf,GAAkB7nE,IAIjCqqI,WAAY,SAAoBt3H,GAC9B,IAAIzV,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO,IAAIo6H,GAAanwH,EAAMy/B,GAAcA,GAAc,CAExDk5D,YAAY,EACZzhG,OAAQtM,KAAKsoF,MAAMu+C,OAAS7mI,KAAKm3E,KAAO,KACxCoG,cAAe,KACfkoD,QAAS,MACR9lI,GAAU,GAAI,CAEfsuG,UAAWjuG,KACXkuG,YAAaluG,KAAK6qI,YAItBzgE,KAAM,WACJ,IAAIpqE,KAAKs/D,YAAat/D,KAAKyqI,UAS3B,GAAIzqI,KAAK0qI,UAIP1qI,KAAK+0E,MAAM1gB,GAAmBr0D,KAAKoqE,UAJrC,CAUApqE,KAAKyqI,WAAY,EAEjBzqI,KAAKosI,cAAgBpsI,KAAKosI,eAAiBpsI,KAAKi/D,mBAChD,IAAI0tE,EAAY3sI,KAAK0sI,WAAW72E,GAAiB,CAC/Ck4C,YAAY,IAId,GAFA/tG,KAAKuwG,UAAUo8B,GAEXA,EAAUx+B,kBAAoBnuG,KAAKs/D,UAIrC,OAHAt/D,KAAKyqI,WAAY,OAEjBzqI,KAAKysI,aAAY,GAKnBzsI,KAAK+yF,WAGP8Z,KAAM,WACJ,IAAI44B,EAAUt6H,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAElF,GAAKnL,KAAKs/D,YAAat/D,KAAK0qI,UAA5B,CAKA1qI,KAAK0qI,WAAY,EACjB,IAAIkC,EAAY5sI,KAAK0sI,WAAWp4E,GAAiB,CAC/Cy5C,WAAY03B,IAAYoC,GACxBpC,QAASA,GAAW,OAatB,GAVIA,IAAYwC,GACdjoI,KAAKirE,MAAMpW,GAAe+3E,GACjBnH,IAAYsC,GACrB/nI,KAAKirE,MAAMhY,GAAmB25E,GACrBnH,IAAYuC,IACrBhoI,KAAKirE,MAAM5X,GAAkBu5E,GAG/B5sI,KAAKuwG,UAAUq8B,GAEXA,EAAUz+B,mBAAqBnuG,KAAKs/D,UAItC,OAHAt/D,KAAK0qI,WAAY,OAEjB1qI,KAAKysI,aAAY,GAKnBzsI,KAAKi3F,aAAY,GAEjBj3F,KAAKs/D,WAAY,EAEjBt/D,KAAKysI,aAAY,KAGnB9jH,OAAQ,SAAgBkkH,GAClBA,IACF7sI,KAAKosI,cAAgBS,GAGnB7sI,KAAKs/D,UACPt/D,KAAK6sG,KAAKi7B,IAEV9nI,KAAKoqE,QAITnL,iBAAkB,WAGhB,IAAIE,EAAgB2tE,GAAkBh+G,EAAa,CAAChT,SAAS0jD,MAAQ,IASrE,OAAOL,GAAiBA,EAAcoE,MAAQpE,EAAgB,MAGhE4zB,OAAQ,WACN,IAAIrgD,EAAQ1yC,KAGR0nI,GAAatB,eAAiBpmI,KAAKypI,WAErCzpI,KAAK40E,iBAAiB7M,GAAiBrY,GAAY2E,IAAoBr0D,KAAK+yF,SAI9E20C,GAAad,cAAc5mI,MAE3BA,KAAKsqI,UAAW,EAChBtqI,KAAKmrE,WAAU,WAGbz4B,EAAM4sB,WAAY,EAClB5sB,EAAM+3F,WAAY,EAElB/3F,EAAM+5F,aAAY,GAElB/5F,EAAMy4B,WAAU,WAGdz4B,EAAMukD,aAAY,WAKxB81C,cAAe,WACb/sI,KAAKuqI,iBAAkB,EACvBvqI,KAAKgtI,gBAAe,IAEtB1yC,QAAS,WACP,IAAIzlB,EAAS70E,KAEbA,KAAKq8F,SAAU,EAIf99B,IAAU,WACRA,IAAU,WACRsW,EAAO21D,QAAS,SAItBhwC,aAAc,WACZ,IAAIrS,EAASnoF,KAEbA,KAAKwsI,qBACLxsI,KAAKuqI,iBAAkB,EAKvBhsE,IAAU,WACR4pB,EAAOooB,UAAUpoB,EAAOukD,WAAW52E,KAEnCqyB,EAAO8kD,iBAAgB,GAEvB9kD,EAAOhd,WAAU,WAGfgd,EAAOjL,oBAIbgwD,cAAe,WACbltI,KAAKuqI,iBAAkB,EACvBvqI,KAAKgtI,gBAAe,GACpBhtI,KAAKitI,iBAAgB,IAEvBxyC,QAAS,WAEPz6F,KAAKwqI,QAAS,GAEhB9vC,aAAc,WACZ,IAAIlS,EAASxoF,KAEbA,KAAKq8F,SAAU,EACfr8F,KAAKuqI,iBAAkB,EACvBvqI,KAAK4qI,oBAAqB,EAC1B5qI,KAAKsqI,UAAW,EAChBtqI,KAAKmrE,WAAU,WACbqd,EAAOkiD,WAAY,EACnBhD,GAAaZ,gBAAgBt+C,GAE7BA,EAAO2kD,gBAIP3kD,EAAO+nB,UAAU/nB,EAAOkkD,WAAWr4E,SAGvCk8C,UAAW,SAAmBF,GAC5B,IAAIj7F,EAAOi7F,EAAQj7F,KAGnBpV,KAAKi1E,WAAWlN,GAAiBrY,GAAYt6C,GAAOi7F,EAASA,EAAQnC,aACrEluG,KAAKirE,MAAM71D,EAAMi7F,IAGnB+8B,kBAAmB,WACjB,IAAI1kD,EAAS1oF,KAIT6mI,EAAQ7mI,KAAKsoF,MAAMu+C,MAEnBwG,EAAmB,SAASA,EAAiB/4G,GAC/C4yC,GAAS2/D,EAAO,UAAWwG,EAAkBz2E,IAEzCtiC,EAAMhoB,SAAWu6H,IACnBn+C,EAAOiiD,qBAAsB,IAIjC3jE,GAAQ6/D,EAAO,UAAWwG,EAAkBz2E,KAE9C02E,WAAY,SAAoBh5G,GAC1Bt0B,KAAK2qI,oBAGP3qI,KAAK2qI,qBAAsB,EAMxB3qI,KAAKs/D,YAAat/D,KAAKspI,mBAAsB/pE,GAASzjD,SAAS0jD,KAAMlrC,EAAMhoB,UAK3EizD,GAASv/D,KAAKsoF,MAAMv8D,QAASuI,EAAMhoB,SACtCtM,KAAK6sG,KAAK86B,MAGdsE,KAAM,WACJjsI,KAAK6sG,KAAKo7B,KAEZ8D,SAAU,WACR/rI,KAAK6sG,KAAKk7B,KAEZiE,QAAS,WACPhsI,KAAK6sG,KAAKm7B,KAEZr2B,MAAO,SAAer9E,GAEhBA,EAAMmkD,UAAY9F,IAAY3yE,KAAKs/D,YAAct/D,KAAKupI,cACxDvpI,KAAK6sG,KAAK+6B,KAIdhkB,aAAc,SAAsBtvF,GAElC,IAAIvI,EAAU/rB,KAAKsoF,MAAMv8D,QACrBzf,EAASgoB,EAAMhoB,OAEnB,KAAItM,KAAKwpI,iBAAmBxpI,KAAKonI,QAAUpnI,KAAKs/D,YAAcvzC,GAAWjQ,WAAaxP,GAAUizD,GAASxzC,EAASzf,IAAWtM,KAAKksI,mCAAqCluE,GAAQh+D,KAAKksI,kCAAmC5/H,GAAQ,IAA/N,CAIA,IAAIihI,EAAWpqE,GAAYnjE,KAAKsoF,MAAMv8D,SAClCyhH,EAAaxtI,KAAKsoF,MAAM,eACxBmlD,EAAUztI,KAAKsoF,MAAM,YAEzB,GAAIklD,GAAclhI,IAAWkhI,GAG3B,GAAIlqE,GAAaiqE,EAAS,IAExB,YAEG,GAAIE,GAAWnhI,IAAWmhI,GAG3BnqE,GAAaiqE,EAASA,EAAS5qI,OAAS,IAE1C,OAKJ2gE,GAAav3C,EAAS,CACpB2hH,eAAe,MAInBT,gBAAiB,SAAyB7lE,GACxCpnE,KAAKujI,eAAen8D,EAAI,UAAWpnE,KAAK4jH,eAG1CopB,eAAgB,SAAwB5lE,GACtCpnE,KAAK6jI,aAAaz8D,EAAI,SAAUpnE,KAAKwsI,oBACrCxsI,KAAK6jI,aAAaz8D,EAAI,oBAAqBpnE,KAAKwsI,qBAGlDH,YAAa,SAAqBz1H,EAAIi2H,GAChCj2H,IAAO5W,KAAK6qI,UACd7qI,KAAKosI,cAAgBS,GAAa7sI,KAAKi/D,mBACvCj/D,KAAKoqE,SAGTynC,YAAa,SAAqBj7F,GAC5BA,IAAO5W,KAAK6qI,SACd7qI,KAAK6sG,KAAK,UAGdy/B,cAAe,SAAuB11H,EAAIi2H,GACpCj2H,IAAO5W,KAAK6qI,SACd7qI,KAAK2oB,OAAOkkH,IAGhBN,cAAe,SAAuBl8B,GAEhCrwG,KAAKypI,YAAcp5B,EAAQpC,YAAcjuG,MAC3CA,KAAK6sG,QAIT3vB,WAAY,WACV,IAAI0M,EAAS5pF,KAGT8uB,GACFyvC,IAAU,WACR,IAAIsoE,EAAQj9C,EAAOtB,MAAMu+C,MACrB96G,EAAU69D,EAAOtB,MAAMv8D,QAEvBozC,EAAgByqB,EAAO3qB,mBAG3B,GAAI4nE,GAAS96G,KAAaozC,IAAiBI,GAASxzC,EAASozC,IAAiB,CAC5E,IAAIz8B,EAAKknD,EAAOtB,MAAM,aAClBwjD,EAASliD,EAAOtB,MAAM,iBACtBp8D,EAAQ09D,EAAOtB,MAAM,gBAErBqlD,EAAY/jD,EAAOw+C,gBAGnB15H,EAAKi/H,IAAc1F,IAAavlG,EAAKA,EAAGy0C,KAAOz0C,EAAKirG,IAAc5F,IAAiB+D,EAASA,EAAO30D,KAAO20D,EAAS6B,IAAc3F,IAAgB97G,EAAQA,EAAMirD,KAAOjrD,EAAQH,EAElLu3C,GAAa50D,GAETA,IAAOqd,GAET69D,EAAOze,WAAU,WACf07D,EAAMtlC,UAAY,UAO9B4rC,cAAe,WAGb,IAAIz+H,EAAK1O,KAAK+pI,aAAe/pI,KAAKosI,eAAiB,KACnDpsI,KAAKosI,cAAgB,KACrBpsI,KAAKmrE,WAAU,WAEbz8D,EAAKm3C,GAASn3C,GAAM+xD,GAAO/xD,GAAMA,EAE7BA,IAEFA,EAAKA,EAAGyoE,KAAOzoE,EACf40D,GAAa50D,QAInB89H,mBAAoB,WAClB,GAAIxsI,KAAKs/D,UAAW,CAClB,IAAIunE,EAAQ7mI,KAAKsoF,MAAMu+C,MACvB7mI,KAAK4qI,mBAAqB/D,EAAMtsC,aAAez+E,SAASgmC,gBAAgBugD,eAG5EurC,UAAW,SAAmB9sI,GAE5B,IAAIkpF,EAAUlpF,IAEd,IAAKd,KAAK0hF,WAAY,CAEpB,IAAImsD,EAAe7tI,KAAKsmE,cAAchM,GAAwBt6D,KAAKowF,WAEnE,IAAKy9C,EAAc,CACjB,IAAIC,EAAehtI,IAEdd,KAAKmpI,kBACR2E,EAAehtI,EAAEsnE,GAAc,CAC7Bj7C,MAAO,CACLpB,QAAS/rB,KAAK8oI,mBACd/oE,SAAU//D,KAAKuqI,gBACfriE,UAAWloE,KAAK+oI,iBAChB5gE,YAAanoE,KAAKgpI,oBAAsBhpI,KAAK8tF,mBAE/C1mB,GAAI,CACFqB,MAAOzoE,KAAKgsI,SAEdjgD,IAAK,gBAEP,CAAC/rF,KAAKsmE,cAAc/L,OAGtBszE,EAAe,CAAC/sI,EAAEd,KAAKssF,SAAU,CAC/BhkB,YAAa,cACbC,MAAOvoE,KAAKyrI,aACZjjE,MAAO,CACL5xD,GAAI5W,KAAKirI,cAGXviE,SAAU1oE,KAAKmmE,kBAAkB1L,IAAyB,GAAK6gB,GAAWt7E,KAAKmqI,UAAWnqI,KAAK0vE,QAEjG1vE,KAAKsmE,cAAc7L,GAAuBz6D,KAAKowF,YAAa09C,GAG9D9jD,EAAUlpF,EAAEd,KAAKwhF,UAAW,CAC1BlZ,YAAa,eACbC,MAAOvoE,KAAK20G,cACZnsC,MAAO,CACL5xD,GAAI5W,KAAK+qI,eAEXh/C,IAAK,UACJ,CAAC8hD,IAIN,IAAIE,EAAQjtI,EAAE,MAAO,CACnBwnE,YAAa,aACbC,MAAOvoE,KAAK0rI,YACZljE,MAAO,CACL5xD,GAAI5W,KAAKgrI,aAEXj/C,IAAK,QACJ/rF,KAAKsmE,cAAc3N,GAAmB34D,KAAKowF,YAE1CK,EAAU3vF,IAEd,IAAKd,KAAKkpI,WAAY,CAEpB,IAAI8E,EAAehuI,KAAKsmE,cAAcjM,GAAwBr6D,KAAKowF,WAEnE,IAAK49C,EAAc,CACjB,IAAIC,EAAgBntI,IAEfd,KAAK2pI,SACRsE,EAAgBntI,EAAEw3E,GAAS,CACzBnrD,MAAO,CACLs9C,QAASzqE,KAAK0oI,cACdnzH,KAAMvV,KAAKsoI,WACXvoE,SAAU//D,KAAKuoI,gBAAkBvoI,KAAKqoI,MAAQroI,KAAKuqI,iBAGrD7hE,SAAU1oE,KAAKmmE,kBAAkB/L,IAA0B,GAAKkhB,GAAWt7E,KAAKyoI,gBAAiBzoI,KAAKwoI,aACtGphE,GAAI,CACFqB,MAAOzoE,KAAK+rI,UAEdhgD,IAAK,iBAEP/rF,KAAKsmE,cAAclM,MAGrB,IAAI8zE,EAAYptI,EAAEw3E,GAAS,CACzBnrD,MAAO,CACLs9C,QAASzqE,KAAK8pI,UACdv0H,KAAMvV,KAAKsoI,WACXvoE,SAAU//D,KAAK0pI,YAAc1pI,KAAKqoI,MAAQroI,KAAKuqI,iBAGjD7hE,SAAU1oE,KAAKmmE,kBAAkB3L,IAAsB,GAAK8gB,GAAWt7E,KAAK6pI,YAAa7pI,KAAK4pI,SAC9FxiE,GAAI,CACFqB,MAAOzoE,KAAKisI,MAEdlgD,IAAK,aAEP/rF,KAAKsmE,cAAc9L,KACnBwzE,EAAe,CAACC,EAAeC,GAGjCz9C,EAAU3vF,EAAEd,KAAKsuF,UAAW,CAC1BhmB,YAAa,eACbC,MAAOvoE,KAAK2rI,cACZnjE,MAAO,CACL5xD,GAAI5W,KAAKmrI,eAEXp/C,IAAK,UACJ,CAACiiD,IAIN,IAAIG,EAAgBrtI,EAAE,MAAO,CAC3BwnE,YAAa,gBACbC,MAAOvoE,KAAK4oI,aACZpgE,MAAO,CACL5xD,GAAI5W,KAAKkrI,eACTx0D,SAAU,MAEZqV,IAAK,WACJ,CAAC/B,EAAS+jD,EAAOt9C,IAGhB29C,EAActtI,IACdutI,EAAiBvtI,IAEjBd,KAAKs/D,YAAct/D,KAAKwpI,iBAC1B4E,EAActtI,EAAE,OAAQ,CACtB0nE,MAAO,CACLkO,SAAU,KAEZqV,IAAK,aAEPsiD,EAAiBvtI,EAAE,OAAQ,CACzB0nE,MAAO,CACLkO,SAAU,KAEZqV,IAAK,iBAKT,IAAIuiD,EAAextI,EAAE,MAAO,CAC1BwnE,YAAa,eACbC,MAAOvoE,KAAKwrI,cACZpkE,GAAI,CACFosC,UAAWxzG,KAAKotI,mBAElBrhD,IAAK,UACJ,CAACqiD,EAAaD,EAAeE,IAE5BE,EAASztI,EAAE,MAAO,CACpBwnE,YAAa,QACbC,MAAOvoE,KAAKqrI,aACZ5+G,MAAOzsB,KAAKsrI,YACZ9iE,MAAOxoE,KAAKmsI,mBACZ/kE,GAAI,CACFoR,QAASx4E,KAAK2xG,MACdlpC,MAAOzoE,KAAKstI,YAEdrkF,WAAY,CAAC,CACX7+C,KAAM,OACN/H,MAAOrC,KAAKs/D,YAEdysB,IAAK,SACJ,CAACuiD,IAKJC,EAASztI,EAAE,aAAc,CACvBqsB,MAAO,CACL27C,WAAY,GACZE,aAAc,GACdD,iBAAkB,GAClBE,WAAY,GACZC,iBAAkB,GAClBC,aAAc,IAEhB/B,GAAI,CACFonE,YAAaxuI,KAAK+sI,cAClBpjH,MAAO3pB,KAAKs6F,QACZO,WAAY76F,KAAKw6F,aACjBi0C,YAAazuI,KAAKktI,cAClBpyC,MAAO96F,KAAKy6F,QACZM,WAAY/6F,KAAK06F,eAElB,CAAC6zC,IAEJ,IAAIG,EAAY5tI,IAkBhB,OAhBKd,KAAKipI,cAAgBjpI,KAAKs/D,YAC7BovE,EAAY5tI,EAAE,MAAO,CACnBwnE,YAAa,iBACbE,MAAO,CACL5xD,GAAI5W,KAAKorI,kBAGbprI,KAAKsmE,cAAcnM,MAGrBu0E,EAAY5tI,EAAE0oE,GAAc,CAC1Br8C,MAAO,CACLm8C,OAAQtpE,KAAKspE,SAEd,CAAColE,IAEG5tI,EAAE,MAAO,CACd2rB,MAAOzsB,KAAK6rI,gBACZrjE,MAAOxoE,KAAKw2E,cACZl0E,IAAK,eAAerB,OAAOjB,KAAK6qD,MAC/B,CAAC0jF,EAAQG,MAGhBvvI,OAAQ,SAAgB2B,GACtB,OAAId,KAAKiqI,OACAjqI,KAAKiyG,MAAQjyG,KAAKsqI,SAAWxpI,IAAMd,KAAK4tI,UAAU9sI,GAElDd,KAAKsqI,SAAWxpI,IAAMA,EAAE0jI,GAAe,CAACxkI,KAAK4tI,UAAU9sI,QCv6BhE6tI,GAA8B3mE,GAAuBtY,GAAYmG,IAEjE+4E,GAAW,yBAEXC,GAAY,SAAmB9lF,GACjC,IAAI+lF,EAAiB/lF,EAAK4oC,UACtBA,OAA+B,IAAnBm9C,EAA4B,GAAKA,EAC7C56H,EAAM60C,EAAK70C,IACX7R,EAAQ0mD,EAAK1mD,MAEjB,OAAOwjD,GAASxjD,GAASA,EAAQwjD,GAAS3xC,GAAOA,EAAM5J,GAAKqnF,GAAWhpF,UAAU,IAG/EomI,GAAoB,SAA2BrgI,GAGjD,OAAOA,GAAMkvD,GAAQlvD,EAAI,qCAAsC+xD,GAAO,YAAa/xD,IAAYA,GAG7FsgI,GAAU,SAAiBvJ,GAEzBA,GAA+B,WAApBA,EAAQpsC,UAEhBr5B,GAAQylE,EAAS,SACpBtkE,GAAQskE,EAAS,OAAQ,UAIH,MAApBA,EAAQpsC,SAAoBr5B,GAAQylE,EAAS,aAC/CtkE,GAAQskE,EAAS,WAAY,OAK/Bn4H,GAAO,SAAcoB,EAAIwvF,EAASrN,GACpC,IAAIvkF,EAASuiI,GAAU3wC,GACnBunC,EAAUsJ,GAAkBrgI,GAEhC,GAAIpC,GAAUm5H,EAAS,CACrB,IAAI9wG,EAAU,SAAiBL,GAE7B,IAAI2iD,EAAgB3iD,EAAM2iD,cAE1B,IAAKnX,GAAWmX,GAAgB,CAC9B,IAAI7hE,EAAOkf,EAAMlf,KACb9S,EAAMgyB,EAAMmkD,QAEH,UAATrjE,IAA6B,YAATA,GAAuB9S,IAAQowE,IAAcpwE,IAAQ2wE,KAC3E4d,EAAM9wF,QAAQU,MAAMwqE,MAAM0jE,GAA6BriI,EAAQ2qE,KAKrEvoE,EAAGkgI,IAAY,CACbj6G,QAASA,EACTroB,OAAQA,EACRm5H,QAASA,GAGXuJ,GAAQvJ,GAERz+D,GAAQy+D,EAAS,QAAS9wG,EAASgiC,IAEX,WAApB8uE,EAAQpsC,SAAqD,WAA7B73B,GAAQikE,EAAS,SAGnDz+D,GAAQy+D,EAAS,UAAW9wG,EAASgiC,MAKvCm7B,GAAS,SAAgBpjF,GAC3B,IAAIugI,EAAUvgI,EAAGkgI,KAAa,GAC1BnJ,EAAUwJ,EAAQxJ,QAClB9wG,EAAUs6G,EAAQt6G,QAElB8wG,GAAW9wG,IACbuyC,GAASu+D,EAAS,QAAS9wG,EAASgiC,IACpCuQ,GAASu+D,EAAS,UAAW9wG,EAASgiC,IACtCuQ,GAASx4D,EAAI,QAASimB,EAASgiC,IAC/BuQ,GAASx4D,EAAI,UAAWimB,EAASgiC,YAG5BjoD,EAAGkgI,KAGR/8C,GAAmB,SAA0BnjF,EAAIwvF,EAASrN,GAC5D,IAAIo+C,EAAUvgI,EAAGkgI,KAAa,GAC1BtiI,EAASuiI,GAAU3wC,GACnBunC,EAAUsJ,GAAkBrgI,GAE5BpC,IAAW2iI,EAAQ3iI,QAAUm5H,IAAYwJ,EAAQxJ,UAEnD3zC,GAAOpjF,EAAIwvF,EAASrN,GACpBvjF,GAAKoB,EAAIwvF,EAASrN,IAKpBm+C,GAAQvJ,IAGNvpC,GAAU,aAMHgzC,GAAU,CACnBC,SAAUt9C,GACVqK,QAASA,GACTrK,iBAAkBA,GAClBC,OAAQA,ICxHV,SAASriD,GAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASyzC,GAAkBzoC,EAAQ6gB,GAAS,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,IAAK,CAAE,IAAI8P,EAAamT,EAAMjjB,GAAI8P,EAAWL,WAAaK,EAAWL,aAAc,EAAOK,EAAW5X,cAAe,EAAU,UAAW4X,IAAYA,EAAWJ,UAAW,GAAMxW,OAAOtB,eAAewK,EAAQ0N,EAAW1X,IAAK0X,IAE7S,SAASg7B,GAAazxC,EAAa0xC,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxxC,EAAYrB,UAAW+yC,GAAiBC,GAAaH,GAAkBxxC,EAAa2xC,GAAc9xC,OAAOtB,eAAeyB,EAAa,YAAa,CAAEqW,UAAU,IAAiBrW,EAE/Q,SAASgV,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAE3M,SAAS8+B,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAehL,IAAIjF,GAAY,WACZ+sF,GAAiB,aAKjBC,GAAa,CAAC,MAAMpuI,OAAO6lD,GAAmBx8C,GAAKo8C,GAAK4oF,GAAY,CAAC,OAAQ,OAAQ,aAAc,SAAU,eAE7GC,GAAkB,aAGlBC,GAAe,CACjBC,cAAe,UACf//D,MAAO,cACPk6D,QAAS,WACTpB,YAAa,gBAIXkH,GAAgB,SAAuB/vI,GACzC,OAAO0vI,GAAW5oF,QAAO,SAAUt1C,EAAM7O,GAKvC,OAJKmjD,GAAY9lD,EAAQ2C,MACvB6O,EAAK7O,GAAO3C,EAAQ2C,IAGf6O,IACN,KAIDu4C,GAAS,SAAgBjB,GAI3B,IAAIknF,EAAUlnF,EAAIgB,OAAO,CACvBr/C,KAAMulD,GACNigF,QAASvF,GACT/F,UAAW,WAELtkI,KAAKm3E,KAAOn3E,KAAKm3E,IAAIhZ,YACvBn+D,KAAKm3E,IAAIhZ,WAAWjpC,YAAYl1B,KAAKm3E,MAGzC6F,QAAS,WACP,IAAItqC,EAAQ1yC,KAGR6vI,EAAgB,WAClBn9F,EAAMy4B,WAAU,WAEd5M,IAAU,WACR7rB,EAAM0yF,kBAMZplI,KAAKmyE,QAAQ4C,MAAMxe,GAA2Bs5E,GAE9C7vI,KAAK+0E,MAAM1gB,GAAmBw7E,GAI1B7vI,KAAKouE,SAAWpuE,KAAK8vI,QAIvB9vI,KAAK+0E,MAAMze,GAAgCt2D,KAAK+vI,OAAO,UAAWF,IAIpE7vI,KAAKoqE,UAKL4lE,EAAc,SAAqB79D,EAAShlD,GAC9C,IAAI8iH,EAAW9kI,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKokI,GAEnF,IAAIvnF,GAAc3F,MAAc4F,GAAqB5F,IAArD,CAMA,IAAI6tF,EAAS,IAAIP,EAAQ,CAIvBxvI,OAAQgyE,EAER+yD,UAAWrwF,GAAcA,GAAcA,GAAc,GAAI66F,GAAczrE,GAAmBvU,MAAe,GAAI,CAE3Gy5E,iBAAiB,EACjBznD,aAAcv0D,EAAMuiD,OAASviD,EAAMg9G,YAClCzjF,GAAKv5B,EAAO7iB,GAAKklI,MAAiB,GAAI,CAEvCv9B,MAAM,EACNo2B,MAAM,EACNp3C,SAAS,EACTw4C,YAAY,EACZD,gBAAgB,MAYpB,OARAl/H,GAAKklI,IAActiI,SAAQ,SAAUo5C,GAC9Bb,GAAYt4B,EAAMm5B,MAGrB4pF,EAAO7pE,OAAOmpE,GAAalpF,IAASrlD,GAAOksB,EAAMm5B,QAI9C,IAAIh9B,SAAQ,SAAUM,EAASW,GACpC,IAAImyG,GAAW,EACfwT,EAAOn7D,MAAMxe,IAA2B,WACjCmmE,GAEHnyG,EAAO,IAAIxW,MAAM,oDAGrBm8H,EAAOv7D,IAAIrgB,IAAiB,SAAU67E,GACpC,IAAKA,EAAahiC,iBAAkB,CAClC,IAAI9gG,EAAS4iI,EAASE,GAEjBA,EAAahiC,mBAChBuuB,GAAW,EACX9yG,EAAQvc,QAKd,IAAI85H,EAAMrrH,SAASE,cAAc,OACjCF,SAAS0jD,KAAK7yC,YAAYw6G,GAC1B+I,EAAOE,OAAOjJ,QAMdkJ,EAAa,SAAoBl+D,EAASpmD,GAC5C,IAAIpsB,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC9E8kI,EAAW9kI,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAEnF,GAAK4gB,IAAWk8B,GAAqB5F,MAAc2F,GAAc3F,KAAere,GAAWisG,GAK3F,OAAOD,EAAY79D,EAASt9B,GAAcA,GAAc,GAAI66F,GAAc/vI,IAAW,GAAI,CACvF8vI,cAAe1jH,IACbkkH,IAIFK,EAAuB,WACzB,SAASA,EAAQ/+B,GACf9hE,GAAgBzvC,KAAMswI,GAGtBvlH,GAAO/qB,KAAM,CACXuwI,IAAKh/B,EACLi/B,MAAOj/B,EAAG9wG,QAGZysB,GAAiBltB,KAAM,CACrBuwI,IAAK1pF,KACL2pF,MAAO3pF,OA+EX,OAzEA7R,GAAas7F,EAAS,CAAC,CACrBhuI,IAAK,OACLD,MAAO,SAAcuU,GACnB,GAAIA,GAAM5W,KAAKwwI,MAAO,CAGpB,IAFA,IAAIC,EAEK1+F,EAAO5mC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM8vC,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClG1wB,EAAK0wB,EAAO,GAAK7mC,UAAU6mC,IAG5By+F,EAAczwI,KAAKwwI,OAAOvlE,MAAM76D,MAAMqgI,EAAa,CAACzoE,GAAuBtY,GAAY,QAAS94C,GAAI3V,OAAOqgB,OAI/G,CACDhf,IAAK,OACLD,MAAO,SAAcuU,GACnB,GAAIA,GAAM5W,KAAKwwI,MAAO,CAGpB,IAFA,IAAIE,EAEK98F,EAAQzoC,UAAUxI,OAAQ2e,EAAO,IAAIrf,MAAM2xC,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGvyB,EAAKuyB,EAAQ,GAAK1oC,UAAU0oC,IAG7B68F,EAAe1wI,KAAKwwI,OAAOvlE,MAAM76D,MAAMsgI,EAAc,CAAC1oE,GAAuBtY,GAAY,QAAS94C,GAAI3V,OAAOqgB,OAOjH,CACDhf,IAAK,WACLD,MAAO,SAAkB02B,GACvB,IAAIp5B,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAG9EgiB,EAAQ0nB,GAAcA,GAAc,GAAIl1C,GAAU,GAAI,CAExDgqI,QAAQ,EACRD,YAAY,EACZR,YAAY,EACZuG,cAAe12G,IAGjB,OAAOs3G,EAAWrwI,KAAKuwI,IAAKx3G,EAAS5L,GAAO,WAE1C,OAAO,OAKV,CACD7qB,IAAK,gBACLD,MAAO,SAAuB02B,GAC5B,IAAIp5B,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAG9EgiB,EAAQ0nB,GAAcA,GAAc,GAAIl1C,GAAU,GAAI,CAExDgqI,QAAQ,EACRD,YAAY,EACZnB,gBAAgB,EAChBW,YAAY,IAGd,OAAOmH,EAAWrwI,KAAKuwI,IAAKx3G,EAAS5L,GAAO,SAAUgjH,GACpD,IAAI1K,EAAU0K,EAAa1K,QAC3B,MAAmB,OAAZA,GAAsC,WAAZA,GAA+B,YAK/D6K,EA3FkB,GA+F3B7nF,EAAIwd,MAAM,CACRjlE,aAAc,WAGZhB,KAAKovI,IAAkB,IAAIkB,EAAQtwI,SAKlCghB,GAAeynC,EAAIvmD,UAAWmgD,KACjCvgD,GAAe2mD,EAAIvmD,UAAWmgD,GAAW,CACvC37C,IAAK,WAMH,OAJK1G,MAASA,KAAKovI,KACjB59F,GAAK,IAAKvwC,OAAOohD,GAAW,0DAA8DqN,IAGrF1vD,KAAKovI,QAMTuB,GAA6BnnF,GAAc,CACpDN,QAAS,CACPQ,OAAQA,MCpTRknF,GAA2BpnF,GAAc,CAC3CR,WAAY,CACVqhF,OAAQA,IAEVphF,WAAY,CACVimF,QAASA,IAGXhmF,QAAS,CACPynF,cAAeA,M,gBCbnB,SAAS77F,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAO3M,IAAI6oH,GAAwB,SAA+BxuI,GAEzD,OADAA,EAAkB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,MAAQA,EAC1D,mBAAmBpB,OAAOoB,IAIxB8qB,GAAQs4C,GAAsB,CACvC0pB,MAAOtqB,GAASxN,IAEhBy5E,WAAYjsE,GAAS9N,IAAmB,GACxCruD,KAAMm8D,GAAS9N,IAAmB,GAClCg6E,UAAWlsE,GAAS9N,IAAmB,GACvCi6E,MAAOnsE,GAAS9N,IAAmB,GACnC/tB,MAAO67B,GAAS9N,IAAmB,GACnCk6E,KAAMpsE,GAAS9N,IAAmB,GAClCnjD,IAAKixD,GAASxN,GAAkB,MAChCmlB,SAAU3X,GAAS9N,IAAmB,IACrCnH,IAGQshF,GAAoBzoF,EAAAA,WAAAA,OAAW,CACxCr+C,KAAMwlD,GACN/vD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI6mB,EAEAziD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBwnE,EAAO9jH,EAAM8jH,KACbD,EAAQ7jH,EAAM6jH,MACdx0D,EAAWrvD,EAAMqvD,SACjB2S,EAAQhiE,EAAMgiE,MACd2hD,EAAa3jH,EAAM2jH,WACvB,OAAOhwI,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,MACbC,OAAQqH,EAAS,CACf,WAAYqhE,EACZ,YAAaD,IAAUC,EACvB,oBAAqBz0D,GAAYs0D,GAAcG,EAC/C,qBAAsBz0D,GAAYs0D,GAAcE,IAAUC,EAC1D,cAAez0D,EACf,YAAaA,GAAYrvD,EAAMzkB,KAC/B,iBAAkB8zE,GAAYrvD,EAAM4jH,WACnCj8F,GAAgB86B,EAAQihE,GAAsB1hD,IAAS3S,GAAY2S,GAAQr6C,GAAgB86B,EAAQ,QAASziD,EAAM6b,OAAQ4mC,KAC3HnG,MCrDR,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAS3M,IAAIovD,GAAY1wB,GAAK2wB,GAAY,CAAC,QAAS,cAChClqD,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIuiC,IAAY,GAAI,CAChG+5D,UAAWtsE,GAAS1N,GAAkB,IACtCi6E,YAAavsE,GAASrN,OACnBtH,IAGMmhF,GAAwB5oF,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAM8lD,GACNrwD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZuiE,EAAYxvB,EAAKwvB,UACjB9O,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAE,KAAM6pD,GAAUjE,GAAK1wC,EAAM,CAAC,OAAQ,CAC3CsyD,YAAa,aACX,CAACxnE,EAAEm1E,GAAO,CACZ3N,YAAa,WACbC,MAAOp7C,EAAMikH,YACb5oE,MAAOr7C,EAAMgkH,UACbhkH,MAAOi4C,GAAWgS,GAAWjqD,GAC7Bi6C,GAAImR,GACH9O,QClCIt8C,GAAQ,GAGRmkH,GAAwB7oF,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAMgmD,GACNvwD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI/yC,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SACpB,OAAO3oE,EAAE,KAAM6pD,GAAU30C,EAAM,CAC7BsyD,YAAa,gBACXmB,MCfR,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAS3M,IAAIupH,GAAY7qF,GAAK8qF,GAAY,CAAC,WACvBrkH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI08F,IAAY,GAAI,CAChGj9B,UAAWzvC,GAASrN,OACjBvH,IAGMwhF,GAAwBhpF,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAM6lD,GACNpwD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChB8O,EAAYxvB,EAAKwvB,UACjByqC,EAAQliH,EAAEszG,GAAO,CACnB7rC,MAAOp7C,EAAMmnF,UACbnnF,MAAO0nB,GAAcA,GAAc,GAAIuwB,GAAWmsE,GAAWpkH,IAAS,GAAI,CACxE8mF,QAAQ,IAEVzrC,MAAOxyD,EAAKwyD,MACZpB,GAAImR,GACH9O,GACH,OAAO3oE,EAAE,KAAM6pD,GAAUjE,GAAK1wC,EAAM,CAAC,QAAS,OAAQ,CACpDsyD,YAAa,gBACX,CAAC06C,OCtCT,SAASl8D,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAEhL,SAAS/uC,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAcpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIosC,IAAUz6B,GAAKkrF,GAAgB,GAAGzwI,OAAO6lD,GAAmBx8C,GAAK0nG,KAAiB,CAAC,OAAQ,OAAQ,YAAa,UAAW,OAAQ,OAAQ,mBAAoB7hD,IAGtOwhF,GAAgClpF,EAAAA,WAAAA,OAAW,CACpDr+C,KAAM+lD,GACNwa,OAAQ,CAACmW,GAAS8uB,GAAenpC,IACjCt5C,MAAOA,GACPo/C,SAAU,CACRqlE,SAAU,WACR,OAAO5xI,KAAKghF,OAAO,gBAErB6wD,OAAQ,WACN,OAAO7xI,KAAKghF,OAAO,qBAErB8xB,gBAAiB,WACf,MAAO,CAAC9yG,KAAKkwG,eAAgBlwG,KAAKmwG,cAAe,CAC/C/lC,KAAMpqE,KAAKixF,WAGf8hB,YAAa,WACX,MAAO,CAAC/yG,KAAKkyG,UAAW,CACtB,sBAAuBlyG,KAAKqR,MAC5B+4D,KAAMpqE,KAAKixF,WAGf+hB,cAAe,WACb,MAAO,CAAChzG,KAAK0yG,YAAa,CACxB,2BAA4B1yG,KAAKmyG,YAIvChzG,OAAQ,SAAgB2B,GACtB,IAAI8wI,EAAW5xI,KAAK4xI,SAChBC,EAAS7xI,KAAK6xI,OACd5gD,EAAUjxF,KAAKixF,QACf4b,EAAO7sG,KAAK6sG,KACZ0G,EAAUzyG,EAAEm1E,GAAO,CACrB3N,YAAa,2BACbC,MAAOvoE,KAAKgzG,cACZ7lF,MAAO,CACL2gD,KAAM,IAAI7sE,OAAOjB,KAAK4W,IAAM,IAC5BmpD,SAAU//D,KAAK+/D,UAEjByI,MAAO,CACL5xD,GAAIg7H,EACJjmE,KAAM,SACN,gBAAiB,OACjB,gBAAiBslB,EAAU,OAAS,QACpC,gBAAiB4gD,GAEnBzqE,GAAI,CACFosC,UAAWxzG,KAAK0xG,YAChBjpC,MAAOzoE,KAAK2oB,OACZ6vD,QAASx4E,KAAK2oB,QAGhBojE,IAAK,UACJ,CACH/rF,KAAKsmE,cAAc,CAAC9N,GAA0BqD,MAAoB/6D,EAAE,OAAQ,CAC1E4nE,SAAU4S,GAAWt7E,KAAKwrB,KAAMxrB,KAAKy5E,UAEnCg6B,EAAQ3yG,EAAE,KAAM,CAClBwnE,YAAa,gBACbC,MAAOvoE,KAAK+yG,YACZvqC,MAAO,CACLkO,SAAU,KACV,kBAAmBk7D,EACnBh7H,GAAIi7H,GAENzqE,GAAI,CACFoR,QAASx4E,KAAKw9E,WAGhBuO,IAAK,SACH/rF,KAAKiyG,MAAQhhB,EAAUjxF,KAAKsmE,cAAc3N,GAAmB,CAC/Dk0C,KAAMA,IACH,CAAC/rG,MACN,OAAOA,EAAE,KAAM,CACbwnE,YAAa,mCACbC,MAAOvoE,KAAK8yG,gBACZtqC,MAAO,CACL5xD,GAAI5W,KAAKghF,WAEV,CAACuyB,EAASE,OC1Gbq+B,GAAyBtoF,GAAc,CACzCR,WAAY,CACVkoF,KAAMA,GACNG,SAAUA,GACVC,SAAUA,GACVG,SAAUA,GACVE,iBAAkBA,GAClBI,WAAYJ,GACZK,aAAcL,GACdM,OAAQN,IAEVzoF,QAAS,CACP8rD,eAAgBA,M,QCnBpB,SAASlgE,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAWpM,IAAImF,GAAQs4C,GAAsB,CACvC1+B,MAAO89B,GAASxN,IAChB66E,MAAOrtE,GAAS9N,IAAmB,GACnC1lC,OAAQwzC,GAAS9N,IAAmB,GACpCnjD,IAAKixD,GAASxN,GAAkB,OAChC86E,WAAYttE,GAASjN,IAA0B,GAC/CxiD,KAAMyvD,GAASxN,GAAkB,SACjCoT,QAAS5F,GAASxN,KACjBxH,IAGQuiF,GAAuB3pF,EAAAA,WAAAA,OAAW,CAC3Cr+C,KAAMylD,GACN8a,OAAQ,CAAClE,IACTqU,QAAS,WACP,MAAO,CACLg1B,SAAU9vG,OAGdmtB,MAAOA,GACPo/C,SAAU,CACR8lE,gBAAiB,WACf,IAAIF,EAAanyI,KAAKmyI,WAClBG,EAAKnuE,KAAiB,GACtBkhD,EAAa,KAQjB,OANI8sB,GAActsF,GAASssF,IAAeA,IAAeG,EACvDjtB,EAAa,iBAAiBpkH,OAAOkxI,IACb,IAAfA,IACT9sB,EAAa,iBAGRA,IAGXlmH,OAAQ,SAAgB2B,GACtB,IAAIioD,EAEAn1C,EAAM5T,KAAK4T,IACXwB,EAAOpV,KAAKoV,KACZq1D,EAAUzqE,KAAKyqE,QACf1jC,EAAQ/mC,KAAK+mC,MACjB,OAAOjmC,EAAE8S,EAAK,CACZ00D,YAAa,SACbC,MAAO,EAAExf,EAAO,CACd,UAAW/oD,KAAKkyI,MAChB,aAAclyI,KAAKqxB,QAClByjB,GAAgBiU,EAAM,UAAU9nD,OAAOmU,GAAOA,GAAO0/B,GAAgBiU,EAAM,MAAM9nD,OAAOwpE,GAAUA,GAAU31B,GAAgBiU,EAAM,SAAS9nD,OAAO8lC,GAAQA,GAAQgiB,GAAO/oD,KAAKqyI,iBACjL7pE,MAAO,CACLmD,KAAMvM,GAAMxrD,EAAK,OAAS,KAAO,eAElC,CAAC5T,KAAKsmE,qBC9Db,SAASxxB,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAQ3M,IAAI6oH,GAAwB,SAA+BxuI,GAEzD,OADAA,EAAkB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,MAAQA,EAC1D,mBAAmBpB,OAAOoB,IAIxB8qB,GAAQs4C,GAAsBjf,GAAK+rF,GAAW,CAAC,MAAO,OAAQ,YAAa,QAAS,UAAWxiF,IAG/FyiF,GAA0B/pF,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAM2lD,GACNlwD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI6mB,EAEAziD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChB0lB,EAAQhiE,EAAMgiE,MAClB,OAAOruF,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCsyD,YAAa,aACbC,OAAQqH,EAAS,CACf,WAAYziD,EAAMzkB,KAClB,gBAAiBykB,EAAM4jH,WACtBj8F,GAAgB86B,EAAQihE,GAAsB1hD,GAAQA,GAAQr6C,GAAgB86B,EAAQ,QAASziD,EAAM6b,OAAQ4mC,KAC9GnG,MClCR,SAASlxD,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAS3M,IAAIovD,GAAY1wB,GAAK2wB,GAAY,CAAC,QAAS,cAC3CD,GAAUtJ,KAAK9I,aAAU7iE,EACzBi1E,GAAU3qE,GAAGu4D,aAAU7iE,EAChB,IAAIgrB,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIuiC,IAAY,GAAI,CAChGxjE,IAAKixD,GAASxN,GAAkB,UAC7BvH,IAGM2iF,GAA4BhqF,EAAAA,WAAAA,OAAW,CAChDr+C,KAAM0lD,GACNjwD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI57B,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZyzD,EAAW1gB,EAAK0gB,SAChBoE,EAAS1gD,EAAM1gB,IAAM0gB,EAAM2gD,KAC3Bl6D,EAAMi6D,EAASoI,GAAQ9oD,EAAMvZ,IACjC,OAAO9S,EAAE8S,EAAK+2C,GAAU30C,EAAM,CAC5BsyD,YAAa,eACbn7C,MAAO0gD,EAASzI,GAAWgS,GAAWjqD,GAAS,KAC7Cs8C,MCvBJ2C,GAAa,iBACbgvB,GAAwBrzB,GAAiBvb,GAAe,SACxD6uC,GAA6BtzB,GAAiBvb,GAAe,cAEtDr/B,GAAQs4C,GAAsB,CACvC1F,SAAU8E,GAAS9N,IAAmB,GACtC2wB,MAAO7iB,GAASxN,GAAkB,qBAClC/qD,OAAQu4D,GAASpN,QAAwBt1D,GAAW,IAEnD6tD,IAGQ0iF,GAA6BjqF,EAAAA,WAAAA,OAAW,CACjDr+C,KAAM4lD,GACN/G,WAAY,CACVk1C,SAAUA,IAEZxzB,OAAQ,CAAC0J,GAAmB5N,IAC5Bt5C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL28H,aAAa,IAGjBvnE,QAAS,WACPprE,KAAK00E,aAAa0mB,GAAuBp7F,KAAK4yI,kBAC9C5yI,KAAK00E,aAAa2mB,GAA4Br7F,KAAK4yI,mBAErD53H,QAAS,CACP67D,QAAS,SAAiBviD,GACnBt0B,KAAK+/D,UAER//D,KAAKirE,MAAM7X,GAAkB9+B,IAGjCs+G,iBAAkB,SAA0Bh8H,EAAIjB,GAG1CiB,IAAO5W,KAAKsM,SACdtM,KAAK2yI,YAAch9H,KAIzBxW,OAAQ,SAAgB2B,GACtB,IAAIi/D,EAAW//D,KAAK+/D,SACpB,OAAOj/D,EAAE,SAAU,CACjBwnE,YAAa8D,GACb7D,MAAO,CACLxI,SAAUA,GAEZ9W,WAAY,CAAC,CACX7+C,KAAM,WACN/H,MAAOrC,KAAKsM,SAEdk8D,MAAO,CACLpzD,KAAM,SACN2qD,SAAUA,EACV,aAAc//D,KAAK0nF,OAErBtgB,GAAI,CACFqB,MAAOzoE,KAAK62E,UAEb,CAAC72E,KAAKsmE,cAAc3N,GAAmB,CACxCk6E,SAAU7yI,KAAK2yI,eACX7xI,EAAE,OAAQ,CACdwnE,YAAa,GAAGrnE,OAAOmrE,GAAY,gBCpErC0mE,GAA4BtpF,GAAc,CAC5CR,WAAY,CACVopF,QAASA,GACTI,WAAYA,GACZC,aAAcA,GACdC,cAAeA,GACfK,WAAYL,IAEdxpF,QAAS,CACP4oF,UAAWA,GACXzzC,eAAgBA,GAChB2W,eAAgBA,MCnBpB,SAASlgE,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EASpM,IAAImF,GAAQs4C,GAAsB,CACvCiiB,MAAO7iB,GAASxN,IAChBsU,KAAM9G,GAASxN,GAAkB,UACjCruB,MAAO67B,GAAS9N,IAAmB,GACnCnjD,IAAKixD,GAASxN,GAAkB,QAChCjiD,KAAMyvD,GAASxN,GAAkB,UACjCoT,QAAS5F,GAASxN,KACjBnG,IAGQ8hF,GAAwBvqF,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAM8mD,GACNrxD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI6mB,EAEAziD,EAAQ47B,EAAK57B,MACbnX,EAAO+yC,EAAK/yC,KACZ2wD,EAAQ5d,EAAK4d,MACbD,EAAc3d,EAAK2d,YACnBL,EAASM,IACTP,EAAeM,GAAe,GAC9B2zC,EAAS/zC,GAAcvM,GAAiB,GAAIqM,EAAcC,IAAWl5C,EAAMu6D,MAQ/E,OANI2yB,IACFA,EAASv5G,EAAE,OAAQ,CACjBwnE,YAAa,WACZ+xC,IAGEv5G,EAAEqsB,EAAMvZ,IAAK+2C,GAAU30C,EAAM,CAClCwyD,MAAO,CACLmD,KAAM0uC,EAASltF,EAAMw+C,MAAQ,SAAW,KACxC,cAAe0uC,EAAS,KAAO,QAEjC9xC,OAAQqH,EAAS,GAAI96B,GAAgB86B,EAAQ,WAAW3uE,OAAOksB,EAAM/X,MAAO+X,EAAM/X,MAAO0/B,GAAgB86B,EAAQ,WAAW3uE,OAAOksB,EAAM/X,KAAM,OAAQ+X,EAAM6b,OAAQ8L,GAAgB86B,EAAQ,QAAQ3uE,OAAOksB,EAAMs9C,SAAUt9C,EAAMs9C,SAAUmF,KAC1O,CAACyqC,GAAUv5G,SC9CnB,SAASyX,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAa3M,ICjBI4gD,GDiBAqqE,GAAiB,CACnB9wE,IAAK,EACL/wD,KAAM,EACNkpE,OAAQ,EACRjpE,MAAO,GAGE8b,GAAQs4C,GAAsB,CAGvCytE,QAASruE,GAASxN,IAClBoM,KAAMoB,GAASxN,GAAkB,OACjCtwB,MAAO89B,GAAS9N,IAAmB,GACnCo8E,SAAUtuE,GAAS9N,IAAmB,GACtCuS,OAAQzE,GAAS9N,IAAmB,GAGpCg/B,OAAQlxB,GAAS9N,IAAmB,GACpCq8E,QAASvuE,GAAS9M,GAAyB,KAAM,SAAU11D,GACzD,IAAI4G,EAASyzD,GAAQr6D,EAAO,GAC5B,OAAO4G,GAAU,GAAKA,GAAU,KAElCoqI,WAAYxuE,GAASxN,GAAkB,OACvCkiB,QAAS1U,GAASjN,IAA0B,GAC5CwS,KAAMvF,GAAS9N,IAAmB,GAClCu8E,aAAczuE,GAAS9N,IAAmB,GAC1Cw8E,YAAa1uE,GAASxN,GAAkB,UACxCm8E,eAAgB3uE,GAASxN,IACzBoT,QAAS5F,GAASxN,GAAkB,SACpCo8E,QAAS5uE,GAASxN,GAAkB,OACpCktD,OAAQ1/C,GAAS9M,GAAyB,KACzC1H,IAGQqjF,GAAwBjrF,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAMimD,GACNsa,OAAQ,CAAClE,IACTt5C,MAAOA,GACPo/C,SAAU,CACRyN,gBAAiB,WACf,IAAIT,EAAUv5E,KAAKu5E,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,EAAiB,UAAaA,EAAe,WAAWt4E,OAAOs4E,GAAvB,IAErEQ,gBAAiB,WACf,IAAItP,EAAUzqE,KAAKyqE,QACnB,OAAOA,IAAYzqE,KAAKkzI,QAAU,MAAMjyI,OAAOwpE,GAAW,IAE5D2lB,UAAW,WACT,MAAO,CACLmjD,YAAavzI,KAAKuzI,aAAe,KACjCC,eAAgBxzI,KAAKwzI,gBAAkB,KACvCF,aAActzI,KAAKszI,gBAIzBt4H,QAAS,CACP24H,iBAAkB,SAA0B5qF,GAC1C,IAAIwqF,EAAcxqF,EAAKwqF,YACnBC,EAAiBzqF,EAAKyqF,eACtBF,EAAevqF,EAAKuqF,aACxB,OAAOtzI,KAAK2/G,eAAeqzB,GAAU,CACnC7lH,MAAO,CACL/X,KAAMm+H,EACN9oE,QAAS+oE,EACTxqG,MAAOsqG,OAKfn0I,OAAQ,SAAgB2B,GACtB,IAAI4xC,EAAQ1yC,KAERoqE,EAAOpqE,KAAKoqE,KACZrjC,EAAQ/mC,KAAK+mC,MACbuiC,EAAStpE,KAAKspE,OACdysB,EAAS/1F,KAAK+1F,OACd3F,EAAYpwF,KAAKowF,UACjBwjD,EAAW9yI,IAEf,GAAIspE,EAAM,CACR,IAAIypE,EAAc/yI,EAAE,MAAO,CACzBwnE,YAAa,oBACbC,MAAO,CAACvoE,KAAK+5E,gBAAiB/5E,KAAKg6E,iBACnCvtD,MAAOooB,GAAcA,GAAc,GAAIo+F,IAAiB,GAAI,CAC1DG,QAASpzI,KAAKozI,QACdU,gBAAiB9zI,KAAKkzI,SAAW,KACjCa,eAAgB/zI,KAAKyjE,KAAO,QAAQxiE,OAAOjB,KAAKyjE,KAAM,KAAO,SAG7DqJ,EAAWhsE,EAAE,MAAO,CACtBwnE,YAAa,oBACb77C,MAAOzsB,KAAKmzI,SAEZt+F,GAAc,GAAIo+F,IAAkB,CAClC9wE,IAAK,MACL/wD,KAAM,MACN++D,UAAW,sCAEZ,CAACnwE,KAAKsmE,cAAcpL,GAAmBk1B,IAAcpwF,KAAK2zI,iBAAiBvjD,KAC9EwjD,EAAW9yI,EAAEd,KAAKqzI,WAAY,CAC5B/qE,YAAa,YACbC,MAAO,CACL,qBAAsBwtB,GAAUA,IAAWhvD,EAC3C,iBAAkBgvD,GAAUhvD,GAE9Bta,MAAOooB,GAAcA,GAAc,GAAIo+F,IAAiB,GAAI,CAC1D1uB,OAAQvkH,KAAKukH,QAAU,KAEzBn9C,GAAI,CACFqB,MAAO,SAAen0C,GACpB,OAAOoe,EAAMu4B,MAAM7X,GAAkB9+B,KAGzChyB,IAAK,WACJ,CAACuxI,EAAa/mE,IAmBnB,OAfA8mE,EAAW9yI,EAAE0oE,GAAc,CACzBr8C,MAAO,CACLm8C,OAAQA,EACRD,QAAQ,GAEVjC,GAAI,CACF,cAAe,WACb,OAAO10B,EAAMu4B,MAAMnV,KAErB,cAAe,WACb,OAAOpjB,EAAMu4B,MAAM5W,OAGtB,CAACu/E,IAEA79C,EACK69C,EAGF9yI,EAAEd,KAAKyzI,QAAS,CACrBnrE,YAAa,mCACbE,MAAO,CACL,YAAa4B,EAAO,OAAS,OAE9B2rB,EAAS,CAAC69C,GAAY,CAAC5zI,KAAKsmE,gBAAiBstE,OE7JhDI,GAA6BxqF,GAAc,CAC7CR,WAAY,CACV0qF,SAAUA,MDFd,SAASn7H,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAuB3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAMuiD,GACNnQ,aAAc,KAGdud,UAAW,SAAmB1iE,GAC5B,SAAKqjD,GAAOrjD,IAAUo6D,GAAUp6D,EAAO,GAAK,KAC1CmvC,GAAK,oDAAqD8e,KACnD,MAMTyZ,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAInC2/G,GAAqB,EAErBC,GAAgB,EAGhBC,GAAgB,SAAuBC,EAAaC,GACtD,OAAOj4E,GAAYi4E,GAAe,SAAUnsG,EAAGh+B,GAC7C,MAAO,CACLjB,OAAQmrI,EAAclqI,EACtBgxG,QAAS,UAMXo5B,GAAgB,SAAuBjyI,GACzC,IAAIonC,EAAQgzB,GAAUp6D,IAAU,EAChC,OAAOonC,EAAQ,EAAIyqG,GAAgBzqG,GAIjC8qG,GAAsB,SAA6B5lH,EAAK0lH,GAC1D,IAAIG,EAAO/3E,GAAU9tC,IAAQ,EAC7B,OAAO6lH,EAAOH,EAAgBA,EAAgBG,EAAO,EAAI,EAAIA,GAK3DC,GAAa,SAAoBngH,GACnC,GAAIA,EAAMmkD,UAAYxF,GAOpB,OALA5L,GAAU/yC,EAAO,CACfqzC,sBAAsB,IAGxBrzC,EAAM2iD,cAAcxO,SACb,GAKAt7C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIm1B,IAAa,GAAI,CACjGmlB,MAAOtqB,GAASxN,GAAkB,QAClC6Q,UAAWrD,GAASxN,GAAkB,cACtC0I,SAAU8E,GAAS9N,IAAmB,GACtC29E,cAAe7vE,GAASrN,IACxBm9E,aAAc9vE,GAASxN,GAAkB,KAEzCu9E,WAAY/vE,GAASrN,IACrBq9E,YAAahwE,GAAS9N,IAAmB,GACzC+9E,UAAWjwE,GAASxN,GAAkB,KAEtC09E,aAAclwE,GAAS9N,IAAmB,GAC1Ci+E,mBAAoBnwE,GAAS9N,IAAmB,GAChDk+E,eAAgBpwE,GAASxN,GAAkB,oBAC3C69E,cAAerwE,GAASxN,GAAkB,mBAC1C89E,cAAetwE,GAASxN,GAAkB,mBAC1C+9E,UAAWvwE,GAAS/M,GAA2B,cAC/Cu9E,cAAexwE,GAASxN,GAAkB,uBAC1Ci+E,UAAWzwE,GAASrN,IACpB+9E,WAAY1wE,GAAS9N,IAAmB,GACxCy+E,SAAU3wE,GAASxN,GAAkB,KAErC5tB,MAAOo7B,GAAS9M,GAAyBm8E,IAEzC,SAAU7xI,GACR,QAAIo6D,GAAUp6D,EAAO,GAAK,KACxBmvC,GAAK,iDAAkD8e,KAChD,MAKXmlF,UAAW5wE,GAASrN,IACpBk+E,SAAU7wE,GAASxN,GAAkB,KAErCs+E,UAAW9wE,GAASrN,IACpBw5E,MAAOnsE,GAAS9N,IAAmB,GACnC6+E,UAAW/wE,GAASrN,IACpBq+E,SAAUhxE,GAASxN,GAAkB,KAErC9hD,KAAMsvD,GAASxN,OACZ,cAGMy+E,GAAkBrtF,EAAAA,WAAAA,OAAW,CACtCkiB,OAAQ,CAACZ,GAAYtD,IACrBt5C,MAAOA,GACPnX,KAAM,WAEJ,IAAI+/H,EAAct5E,GAAUz8D,KAAKiqE,IAAkB,GAEnD,OADA8rE,EAAcA,EAAc,EAAIA,GAAe,EACxC,CACLA,YAAaA,EACbC,mBAAoB,EACpBC,WAAY/B,KAGhB3nE,SAAU,CACR2pE,QAAS,WACP,IAAI3gI,EAAOvV,KAAKuV,KAChB,OAAOA,EAAO,cAActU,OAAOsU,GAAQ,IAE7C4gI,UAAW,WACT,IAAIhnD,EAAQnvF,KAAKmvF,MAEjB,MAAc,WAAVA,EACK,yBACY,QAAVA,GAA6B,UAAVA,EACrB,sBACY,SAAVA,EAGF,cAGF,IAETinD,WAAY,WACV,OAAOp2I,KAAKgxI,MAAQ,qBAAuB,IAE7CqF,oBAAqB,WACnB,OAAO9B,GAAoBv0I,KAAK+1I,YAAa/1I,KAAKg2I,qBAEpDM,iBAAkB,WAEhB,IAAI7sG,EAAQzpC,KAAKi2I,WACb5B,EAAgBr0I,KAAKg2I,mBACrBD,EAAc/1I,KAAKq2I,oBACnBtB,EAAe/0I,KAAK+0I,aACpBF,EAAc70I,KAAK60I,YACnBU,EAAav1I,KAAKu1I,WAClBgB,GAAgB,EAChBC,GAAe,EACfC,EAAgBhtG,EAChB2qG,EAAc,EAEdC,GAAiB5qG,EAEnBgtG,EAAgBpC,EACP0B,EAActsG,EAAQ,GAAKA,EAAQwqG,IACvCc,IAAgBQ,IACnBiB,GAAe,EACfC,EAAgBhtG,GAASorG,EAAc,EAAI,IAG7C4B,EAAgB5qE,GAAQ4qE,EAAehtG,IAC9B4qG,EAAgB0B,EAAc,EAAItsG,GAASA,EAAQwqG,IACvDc,IAAgBF,IACnB0B,GAAgB,EAChBE,EAAgBhtG,GAAS8rG,EAAa,EAAI,IAG5CnB,EAAcC,EAAgBoC,EAAgB,IAG1ChtG,EAAQwqG,KACVwC,EAAgBhtG,GAASsrG,EAAe,EAAI,GAC5CwB,IAAoBxB,IAAgBF,GACpC2B,IAAmBzB,IAAgBQ,IAGrCnB,EAAc2B,EAAc9pE,GAAUwqE,EAAgB,IAMpDrC,EAAc,GAChBA,EAAc,EACdmC,GAAgB,GACPnC,EAAcC,EAAgBoC,IACvCrC,EAAcC,EAAgBoC,EAAgB,EAC9CD,GAAe,GAGbD,GAAiB1B,GAAeT,EAAc,IAChDqC,GAAgC,EAChCrC,EAAc,EACdmC,GAAgB,GAGlB,IAAIG,EAAiBtC,EAAcqC,EAAgB,EAkBnD,OAhBID,GAAgBjB,GAAcmB,EAAiBrC,EAAgB,IACjEoC,GAAiCC,IAAmBrC,EAAgB,EAAI,EAAI,EAC5EmC,GAAe,GAIb/sG,GAASwqG,KACPY,GAA+B,IAAhBT,EACjBqC,EAAgB5qE,GAAQ4qE,EAAgB,EAAGpC,EAAe5qG,EAAQ,GACzD8rG,GAAclB,IAAkBD,EAAcqC,EAAgB,IACvErC,EAActoE,GAAQsoE,EAAc,EAAG,GACvCqC,EAAgB5qE,GAAQwoE,EAAgBD,EAAc,EAAGC,EAAe5qG,EAAQ,KAIpFgtG,EAAgB5qE,GAAQ4qE,EAAepC,EAAgBD,EAAc,GAC9D,CACLmC,cAAeA,EACfC,aAAcA,EACdC,cAAeA,EACfrC,YAAaA,IAGjBuC,SAAU,WAER,IAAIC,EAAwB52I,KAAKs2I,iBAC7BG,EAAgBG,EAAsBH,cACtCrC,EAAcwC,EAAsBxC,YACpC2B,EAAc/1I,KAAKq2I,oBAEnBQ,EAAQ1C,GAAcC,EAAaqC,GAKvC,GAAII,EAAMl0I,OAAS,EAAG,CACpB,IAAIq5E,EAAM+5D,EAAc3B,EAEpBl5B,EAAU,oBAEd,GAAY,IAARl/B,EAEF,IAAK,IAAI9xE,EAAI,EAAGA,EAAI2sI,EAAMl0I,OAAQuH,IAChC2sI,EAAM3sI,GAAGgxG,QAAUA,OAEhB,GAAIl/B,IAAQ66D,EAAMl0I,OAAS,EAEhC,IAAK,IAAI24C,EAAK,EAAGA,EAAKu7F,EAAMl0I,OAAS,EAAG24C,IACtCu7F,EAAMv7F,GAAI4/D,QAAUA,MAEjB,CAEL,IAAK,IAAIz6D,EAAM,EAAGA,EAAMu7B,EAAM,EAAGv7B,IAE/Bo2F,EAAMp2F,GAAKy6D,QAAUA,EAGvB,IAAK,IAAI47B,EAAMD,EAAMl0I,OAAS,EAAGm0I,EAAM96D,EAAM,EAAG86D,IAE9CD,EAAMC,GAAK57B,QAAUA,GAK3B,OAAO27B,IAGX/rE,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,EAAU+I,GAC5E/I,IAAa+I,IACf9zE,KAAK+1I,YAAcxB,GAAoBxpE,EAAU/qE,KAAKg2I,wBAEtDlhG,GAAgB8zB,GAAQ,eAAe,SAAqBmC,EAAU+I,GACpE/I,IAAa+I,GAEf9zE,KAAKirE,MAAMf,GAAkBa,EAAW,EAAIA,EAAW,SAEvDj2B,GAAgB8zB,GAAQ,SAAS,SAAemC,EAAU+I,GACxD/I,IAAa+I,IACf9zE,KAAKi2I,WAAa3B,GAAcvpE,OAEhCnC,IACJwC,QAAS,WACP,IAAI14B,EAAQ1yC,KAGZA,KAAKi2I,WAAa3B,GAAct0I,KAAKypC,OACrCzpC,KAAKmrE,WAAU,WAEbz4B,EAAMqjG,YAAcrjG,EAAMqjG,YAAcrjG,EAAMsjG,mBAAqBtjG,EAAMsjG,mBAAqBtjG,EAAMqjG,gBAGxG/6H,QAAS,CACP+7H,aAAc,SAAsBziH,GAClC,IAAImkD,EAAUnkD,EAAMmkD,QAChBgF,EAAWnpD,EAAMmpD,SAGjBz9E,KAAKu7F,QAKL9iB,IAAY5F,IAAa4F,IAAYvF,IACvC7L,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfgW,EAAWz9E,KAAKk9E,aAAel9E,KAAKm9E,aAC3B1E,IAAYzF,IAAcyF,IAAYjG,KAC/CnL,GAAU/yC,EAAO,CACfmzC,aAAa,IAEfgW,EAAWz9E,KAAKq9E,YAAcr9E,KAAKo9E,eAGvC45D,WAAY,WAEV,OAAO52E,GAAU,gCAAiCpgE,KAAKm3E,KAAKrnE,QAAO,SAAUmnI,GAC3E,OAAO33E,GAAU23E,OAGrBC,aAAc,WACZ,IAAIriE,EAAS70E,KAGbA,KAAKmrE,WAAU,WACb,IAAI8rE,EAAMpiE,EAAOmiE,aAAa/mI,MAAK,SAAUvB,GAC3C,OAAO+tD,GAAU+E,GAAQ9yD,EAAI,iBAAkB,KAAOmmE,EAAOwhE,uBAG1D/yE,GAAa2zE,IAEhBpiE,EAAOqI,iBAIbA,WAAY,WACV,IAAIiL,EAASnoF,KAGbA,KAAKmrE,WAAU,WACb,IAAI8rE,EAAM9uD,EAAO6uD,aAAa/mI,MAAK,SAAUvB,GAC3C,OAAQoxD,GAAWpxD,MAGrB40D,GAAa2zE,OAGjB55D,UAAW,WACT,IAAImL,EAASxoF,KAGbA,KAAKmrE,WAAU,WACb,IAAI8rE,EAAMzuD,EAAOwuD,aAAaruI,UAAUsH,MAAK,SAAUvB,GACrD,OAAQoxD,GAAWpxD,MAGrB40D,GAAa2zE,OAGjB95D,UAAW,WACT,IAAIuL,EAAS1oF,KAGbA,KAAKmrE,WAAU,WACb,IAAIguC,EAAUzwB,EAAOsuD,aAEjBv0I,EAAQ02G,EAAQtqG,QAAQowD,MAExBx8D,EAAQ,IAAMq9D,GAAWq5C,EAAQ12G,EAAQ,KAC3C6gE,GAAa61C,EAAQ12G,EAAQ,QAInC26E,UAAW,WACT,IAAIwM,EAAS5pF,KAGbA,KAAKmrE,WAAU,WACb,IAAIguC,EAAUvvB,EAAOotD,aAEjBv0I,EAAQ02G,EAAQtqG,QAAQowD,MAExBx8D,EAAQ02G,EAAQx2G,OAAS,IAAMm9D,GAAWq5C,EAAQ12G,EAAQ,KAC5D6gE,GAAa61C,EAAQ12G,EAAQ,SAKrCtD,OAAQ,SAAgB2B,GACtB,IAAI42H,EAAS13H,KAET+/D,EAAW//D,KAAK+/D,SAChBq1E,EAAYp1I,KAAKo1I,UACjBltE,EAAYloE,KAAKkoE,UACjBqzB,EAAQv7F,KAAKu7F,MACb84C,EAAgBr0I,KAAKg2I,mBACrBD,EAAc/1I,KAAKq2I,oBACnBc,EAAcn3I,KAAK22I,SAAS9mI,KAAI,SAAUo6B,GAC5C,OAAOA,EAAEhhC,UAEPmuI,EAAyBp3I,KAAKs2I,iBAC9BC,EAAgBa,EAAuBb,cACvCC,EAAeY,EAAuBZ,aACtC9tI,EAAsB,SAAf1I,KAAKmvF,MACZkoD,EAAW,GAEXC,EAAe,SAAsBC,GACvC,OAAOA,IAAexB,GAGpByB,EAAgBx3I,KAAK+1I,YAAc,EAEnC0B,EAAa,SAAoBC,EAAQxvE,EAAWyvE,EAASC,EAASC,EAAUC,EAAUx1I,GAC5F,IAAIw9D,EAAaC,GAAYu3E,EAAaQ,IAAaN,GAAiBE,EAAS,GAAKA,EAASrD,EAC3FkD,EAAaG,EAAS,EAAI,EAAIA,EAASrD,EAAgBA,EAAgBqD,EACvElxE,EAAQ,CACVzG,SAAUD,EACV00E,KAAM+C,EACN90I,MAAO80I,EAAa,GAElBQ,EAAcrgB,EAAOpxD,cAAcqxE,EAASnxE,IAAUnzD,GAASukI,IAAY92I,IAC3EovE,EAASpvE,EAAEg/D,EAAa,OAASy7B,EAAQtlB,GAAQ,SAAU,CAC7D3N,YAAa,YACbC,MAAO,CACL,eAAgBgzB,IAAUz7B,GAAcp3D,GAE1CykB,MAAO2yC,IAAey7B,EAAQ,GAAKm8B,EAAOtgD,UAAUsgE,GACpDlvE,MAAO,CACLmD,KAAM4vB,EAAQ,KAAO,WACrBnmF,KAAMmmF,GAASz7B,EAAa,KAAO,SACnC4W,SAAU5W,GAAcy7B,EAAQ,KAAO,KACvC,aAAcrzB,EACd,gBAAiBwvD,EAAOx2C,cAAgB,KACxC,gBAAiBphB,EAAa,OAAS,MAEzCsH,GAAItH,EAAa,GAAK,CACpB,SAAU,SAAexrC,GACvBojG,EAAO7gD,QAAQviD,EAAOojH,IAExBl/D,QAASi8D,KAEV,CAACsD,IACJ,OAAOj3I,EAAE,KAAM,CACbwB,IAAKA,EACLgmE,YAAa,YACbC,MAAO,CAAC,CACNxI,SAAUD,EACV,YAAap3D,EACb,SAAUA,IAAS6yF,IAAUz7B,GAC5B+3E,GACHrvE,MAAO,CACLmD,KAAM4vB,EAAQ,KAAO,eACrB,cAAez7B,EAAa,OAAS,OAEtC,CAACoQ,KAIF8nE,EAAe,SAAsBC,GACvC,OAAOn3I,EAAE,KAAM,CACbwnE,YAAa,YACbC,MAAO,CAAC,WAAY,oBAAqB7/D,EAAO,YAAc,GAAIgvH,EAAOgd,eACzElsE,MAAO,CACLmD,KAAM,aAERrpE,IAAK,YAAYrB,OAAOg3I,EAAS,OAAS,UACzC,CAACn3I,EAAE,OAAQ,CACZwnE,YAAa,aACZ,CAACovD,EAAOpxD,cAAcvN,KAA4B1lD,GAASqkH,EAAOid,eAAiB7zI,SAIpFo3I,EAAiB,SAAwB1D,EAAMx4D,GACjD,IAAIu7D,EAAa/C,EAAKvrI,OAClB+sE,EAASshE,EAAaC,KAAgBC,EAEtCn0E,EAAWtD,EAAW,KAAOiW,GAAUwhE,GAAyB,IAARx7D,EAAY,IAAM,KAC1ExT,EAAQ,CACVmD,KAAM4vB,EAAQ,KAAO,gBACrBnmF,KAAMmmF,GAASx7B,EAAW,KAAO,SACjC,gBAAiBA,EAAW,OAAS,KACrC,gBAAiB23D,EAAOx2C,cAAgB,KACxC,aAAcvb,GAAgByvE,GAE9BA,EAAUmC,GAAc,GAAGt2I,OAAO+iC,GAAWoxG,GAAaA,IAAcA,EAAW,KAAKn0I,OAAOs2I,GAC/F,eAAgBh8C,EAAQ,KAAOvlB,EAAS,OAAS,QACjD,eAAgBulB,GAASvlB,EAAS,OAAS,KAC3C,gBAAiBulB,EAAQ,KAAOg8C,EAChC,eAAgBh8C,EAAQ,KAAO84C,EAE/B39D,SAAU6kB,EAAQ,KAAOl4B,GAEvB80E,EAAa9kI,GAASqkH,EAAO0gB,SAASb,IACtC/wE,EAAQ,CACVguE,KAAM+C,EACN90I,MAAO80I,EAAa,EACpBxrH,QAASosH,EACTniE,OAAQA,EACRjW,SAAUA,GAERmQ,EAASpvE,EAAEi/D,EAAW,OAASw7B,EAAQtlB,GAAQ,SAAU,CAC3D9oD,MAAO4yC,IAAaw7B,EAAQ,GAAKm8B,EAAOtgD,UAAUmgE,GAClDjvE,YAAa,YACbC,MAAO,CACL,eAAgBgzB,IAAUx7B,GAAYr3D,GAExC8/D,MAAOA,EACPpB,GAAIrH,EAAW,GAAK,CAClB,SAAU,SAAezrC,GACvBojG,EAAO7gD,QAAQviD,EAAOijH,IAExB/+D,QAASi8D,KAEV,CAAC/c,EAAOpxD,cAAcnL,GAAgBqL,IAAU2xE,IACnD,OAAOr3I,EAAE,KAAM,CACbwnE,YAAa,YACbC,MAAO,CAAC,CACNxI,SAAUA,EACViW,OAAQA,EACR,YAAattE,EACb,SAAUA,IAAS6yF,IAAUx7B,GAC5By0E,EAAKt5B,QAASwc,EAAOie,WACxBntE,MAAO,CACLmD,KAAM4vB,EAAQ,KAAO,gBAEvBj5F,IAAK,QAAQrB,OAAOs2I,IACnB,CAACrnE,KAKFmoE,EAAgBv3I,IAEfd,KAAK60I,aAAgB70I,KAAKg1I,qBAC7BqD,EAAgBZ,EAAW,EAAGz3I,KAAKi1I,eAAgB77E,GAAsBp5D,KAAK80I,UAAW90I,KAAK40I,WAAY,EAAG,0BAG/GyC,EAASroI,KAAKqpI,GAEdhB,EAASroI,KAAKyoI,EAAW1B,EAAc,EAAG/1I,KAAKq1I,cAAe/5E,GAAqBt7D,KAAK61I,SAAU71I,KAAK41I,UAAW,EAAG,yBAErHyB,EAASroI,KAAKhP,KAAK60I,aAAkC,IAAnBsC,EAAY,GAAWe,EAAe,CACtEjvI,OAAQ,GACP,GAAKnI,KAERu2I,EAASroI,KAAKunI,EAAgByB,GAAa,GAASl3I,KAEpDd,KAAK22I,SAASzpI,SAAQ,SAAUsnI,EAAMx4D,GACpC,IAAIhxE,EAASurI,GAAiB7e,EAAOmd,aAAkC,IAAnBsC,EAAY,GAAW,EAAI,EAC/EE,EAASroI,KAAKkpI,EAAe1D,EAAMx4D,EAAMhxE,OAG3CqsI,EAASroI,KAAKwnI,EAAewB,GAAa,GAAQl3I,KAElDu2I,EAASroI,KAAKhP,KAAKu1I,YAAc4B,EAAYA,EAAYx0I,OAAS,KAAO0xI,EAAgB6D,EAAe,CACtGjvI,OAAQorI,IACN,GAAKvzI,KAETu2I,EAASroI,KAAKyoI,EAAW1B,EAAc,EAAG/1I,KAAKm1I,cAAel6E,GAAqBj7D,KAAK01I,SAAU11I,KAAKy1I,UAAWpB,EAAe,yBAGjI,IAAIiE,EAAex3I,IAEdd,KAAKu1I,YAAev1I,KAAKg1I,qBAC5BsD,EAAeb,EAAWpD,EAAer0I,KAAKk1I,cAAel7E,GAAqBh6D,KAAKw1I,SAAUx1I,KAAKs1I,UAAWjB,EAAe,yBAGlIgD,EAASroI,KAAKspI,GAEd,IAAIC,EAAcz3I,EAAE,KAAM,CACxBwnE,YAAa,aACbC,MAAO,CAAC,eAAgBvoE,KAAKk2I,QAASl2I,KAAKm2I,UAAWn2I,KAAKo2I,YAC3D5tE,MAAO,CACLmD,KAAM4vB,EAAQ,KAAO,UACrB,gBAAiBx7B,EAAW,OAAS,QACrC,aAAcw7B,EAAQ,KAAOrzB,GAAa,MAG5Cd,GAAIm0B,EAAQ,GAAK,CACf/iB,QAASx4E,KAAK+2I,cAEhBhrD,IAAK,MACJsrD,GAEH,OAAI97C,EACKz6F,EAAE,MAAO,CACd0nE,MAAO,CACL,gBAAiBzI,EAAW,OAAS,KACrC,cAAeA,EAAW,OAAS,QACnC,aAAcw7B,GAAQrzB,GAAoB,OAE3C,CAACqwE,IAGCA,KEpnBX,SAAShgI,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAe3M,IAAIwwH,GAAmB,GACnBC,GAAqB,EAGrBC,GAAkB,SAAyBr2I,GAC7C,OAAOypE,GAAQrP,GAAUp6D,IAAUm2I,GAAkB,IAInDG,GAAoB,SAA2Bt2I,GACjD,OAAOypE,GAAQrP,GAAUp6D,IAAUo2I,GAAoB,IAI9CtrH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAI+jG,IAAkB,GAAI,CACtG13D,aAAcrc,GAASxN,IACvBwhF,QAASh0E,GAAS9M,GAAyBygF,IAC3CM,UAAWj0E,GAAS9M,GAAyB0gF,OAC1CnoF,IAGMyoF,GAA2BtwF,EAAAA,WAAAA,OAAW,CAC/Cr+C,KAAMkmD,GAENqa,OAAQ,CAACmrE,IACT3oH,MAAOA,GACPo/C,SAAU,CACR8nE,cAAe,WACb,IAAIhnI,EAAS2+D,GAAS2sE,GAAkB34I,KAAK84I,WAAaJ,GAAgB14I,KAAK64I,UAC/E,OAAOxrI,EAAS,EAAI,EAAIA,GAG1B2rI,sBAAuB,WACrB,MAAO,CACLH,QAASH,GAAgB14I,KAAK64I,SAC9BC,UAAWH,GAAkB34I,KAAK84I,WAClCzE,cAAer0I,KAAKq0I,iBAI1BvpE,MAAO,CACLkuE,sBAAuB,SAA+BjuE,EAAU+I,GACzDnuB,GAAkBmuB,KACjB/I,EAAS8tE,UAAY/kE,EAAS+kE,SAAW9tE,EAAS+tE,YAAchlE,EAASglE,WAGlE/tE,EAASspE,gBAAkBvgE,EAASugE,eAAiBr0I,KAAK+1I,YAAchrE,EAASspE,iBAD1Fr0I,KAAK+1I,YAAc,GAQvB/1I,KAAKg2I,mBAAqBjrE,EAASspE,gBAGvCjpE,QAAS,WACP,IAAI14B,EAAQ1yC,KAGZA,KAAKg2I,mBAAqBh2I,KAAKq0I,cAE/B,IAAI0B,EAAct5E,GAAUz8D,KAAKiqE,IAAkB,GAE/C8rE,EAAc,EAChB/1I,KAAK+1I,YAAcA,EAEnB/1I,KAAKmrE,WAAU,WAGbz4B,EAAMqjG,YAAc,MAI1B/6H,QAAS,CAEP67D,QAAS,SAAiBviD,EAAOijH,GAC/B,IAAI1iE,EAAS70E,KAGb,GAAIu3I,IAAev3I,KAAK+1I,YAAxB,CAIA,IAAIzpI,EAASgoB,EAAMhoB,OAEf2sI,EAAa,IAAIprC,GAAQ94C,GAAuB,CAClDg5C,YAAY,EACZE,UAAWjuG,KACXsM,OAAQA,IAEVtM,KAAKirE,MAAMguE,EAAW7jI,KAAM6jI,EAAY1B,GAEpC0B,EAAW9qC,mBAKfnuG,KAAK+1I,YAAcwB,EAEnBv3I,KAAKirE,MAAM/X,GAAmBlzD,KAAK+1I,aAEnC/1I,KAAKmrE,WAAU,WACT7L,GAAUhzD,IAAWuoE,EAAOsC,IAAI5X,SAASjzD,GAC3Cg3D,GAAah3D,GAEbuoE,EAAOqiE,qBAIbkB,SAAU,SAAkBc,GAC1B,OAAOA,GAIT9hE,UAAW,WAET,MAAO,OCtIT+hE,GAAgC3vF,GAAc,CAChDR,WAAY,CACV+vF,YAAaA,M,QCJjB,SAASxgI,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAsBpM,IAAIoxH,GAAwB,SAA+B/2I,GAChE,OAAOypE,GAAQrP,GAAUp6D,EAAO,GAAI,IAGlCg3I,GAAa3yF,GAAK2wB,GAAY,CAAC,QAAS,cAExClqD,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAI+jG,IAAkBS,IAAa,GAAI,CAC1HC,QAASz0E,GAASxN,GAAkB,KACpCkiF,QAAS10E,GAAS5N,IAElBuiF,aAAc30E,GAAS9N,IAAmB,GAC1Cs9E,cAAexvE,GAAS9M,GAAyB,GAEjD,SAAU11D,GACR,IAAI4G,EAASwzD,GAAUp6D,EAAO,GAE9B,QAAI4G,EAAS,KACXuoC,GAAK,2DAA4D+e,KAC1D,MAKXkpF,QAAS50E,GAAS5N,IAElB4/E,MAAOhyE,GAAS/N,IAChB4iF,UAAW70E,GAAS9N,IAAmB,MACpCxG,IAGMopF,GAA8BlxF,EAAAA,WAAAA,OAAW,CAClDr+C,KAAMmmD,GAENoa,OAAQ,CAACmrE,IACT3oH,MAAOA,GACPo/C,SAAU,CAERgvB,MAAO,WACL,OAAO,GAETq+C,cAAe,WAEb,IAAIv3I,EAAQo6D,GAAUz8D,KAAKqC,MAAO,GAClC,OAAOA,EAAQ,EAAI,KAAOA,IAG9ByoE,MAAO,CACLupE,cAAe,WACb,IAAI3hG,EAAQ1yC,KAEZA,KAAKmrE,WAAU,WACbz4B,EAAMmnG,uBAGVhD,MAAO,WACL,IAAIhiE,EAAS70E,KAEbA,KAAKmrE,WAAU,WACb0J,EAAOglE,wBAIbzuE,QAAS,WACPprE,KAAK65I,oBAEP78D,QAAS,WACP,IAAImL,EAASnoF,KAETA,KAAKouE,SAEPpuE,KAAK+vI,OAAO,UAAU,WACpB5nD,EAAOhd,WAAU,WACf5M,IAAU,WACR4pB,EAAO2xD,6BAMjB9+H,QAAS,CACP6+H,iBAAkB,WAChB,IAAIrxD,EAASxoF,KAETsS,GAAQtS,KAAK62I,QAAU72I,KAAK62I,MAAMl0I,OAAS,EAC7C3C,KAAKg2I,mBAAqBh2I,KAAK62I,MAAMl0I,OAErC3C,KAAKg2I,mBAAqBoD,GAAsBp5I,KAAKq0I,eAGvDr0I,KAAKmrE,WAAU,WACbqd,EAAOsxD,uBAGXjjE,QAAS,SAAiBviD,EAAOijH,GAC/B,IAAI7uD,EAAS1oF,KAGb,GAAIu3I,IAAev3I,KAAK+1I,YAAxB,CAIA,IAAIzpI,EAASgoB,EAAM2iD,eAAiB3iD,EAAMhoB,OAEtC2sI,EAAa,IAAIprC,GAAQ94C,GAAuB,CAClDg5C,YAAY,EACZE,UAAWjuG,KACXsM,OAAQA,IAEVtM,KAAKirE,MAAMguE,EAAW7jI,KAAM6jI,EAAY1B,GAEpC0B,EAAW9qC,mBAOf5vC,IAAU,WACRmqB,EAAOqtD,YAAcwB,EAErB7uD,EAAOzd,MAAM/X,GAAmBqkF,MAKlCv3I,KAAKmrE,WAAU,WACb3H,GAAYl3D,SAGhBytI,YAAa,SAAqBxC,GAChC,IAAKjlI,GAAQtS,KAAK62I,QAAgC,IAAtB72I,KAAK62I,MAAMl0I,QAAgB8iD,GAAYzlD,KAAK62I,MAAMU,EAAa,IAAK,CAC9F,IAAIrwG,EAAO,GAAGjmC,OAAOjB,KAAKs5I,SAASr4I,OAAOs2I,GAC1C,MAAO,CACLrwG,KAAMlnC,KAAK05I,UAAY,CACrBh+H,KAAMwrB,GACJA,EACJuyC,KAAMpmE,GAASkkI,IAInB,IAAI3vD,EAAO5nF,KAAK62I,MAAMU,EAAa,GAEnC,GAAIx0I,GAAS6kF,GAAO,CAClB,IAAIoyD,EAAQpyD,EAAK1gD,KACjB,MAAO,CAELA,KAAMnkC,GAASi3I,GAASA,EAAQh6I,KAAK05I,UAAY,CAC/Ch+H,KAAMs+H,GACJA,EAEJvgE,KAAMpmE,GAASu0E,EAAKnO,MAAQ89D,IAG9B,MAAO,CACLrwG,KAAM7zB,GAASu0E,GACfnO,KAAMpmE,GAASkkI,KAIrBa,SAAU,SAAkBb,GAC1B,IAAIkC,EAAUz5I,KAAKy5I,QACf7xD,EAAO5nF,KAAK+5I,YAAYxC,GAE5B,OAAI5xE,GAAgB8zE,GACXA,EAAQlC,EAAY3vD,GAGtBA,EAAKnO,MAEdwgE,SAAU,SAAkB1C,GAC1B,IAAIgC,EAAUv5I,KAAKu5I,QACf3xD,EAAO5nF,KAAK+5I,YAAYxC,GAE5B,OAAI5xE,GAAgB4zE,GACXA,EAAQhC,EAAY3vD,GAGtBA,EAAK1gD,MAEdkwC,UAAW,SAAmBmgE,GAC5B,IAAIpqH,EAAQi4C,GAAWi0E,GAAYr5I,MAC/BknC,EAAOlnC,KAAKi6I,SAAS1C,GAQzB,OANIv3I,KAAK05I,WAAa32I,GAASmkC,GAC7B/Z,EAAM1gB,GAAKy6B,EAEX/Z,EAAM2gD,KAAO5mC,EAGR/Z,GAET+sH,YAAa,WACX,IAGIhzG,EAHAz6B,EAAKtB,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAK7E,IAEE+7B,EAAOprB,SAASE,cAAc,KAC9BkrB,EAAK4mC,KAAOW,GAAY,CACtBhiE,GAAIA,GACH,IAAK,IAAK,KAGbqP,SAAS0jD,KAAK7yC,YAAYua,GAE1B,IAAIizG,EAASjzG,EACTkzG,EAAWD,EAAOC,SAClBxrE,EAAOurE,EAAOvrE,KACdt4B,EAAS6jG,EAAO7jG,OAIpB,OAFAx6B,SAAS0jD,KAAKtqC,YAAYgS,GAEnB,CACLxrB,KAAM0+H,EACNxrE,KAAMA,EACNrB,MAAOE,GAAWn3B,IAEpB,MAAO3W,GAEP,IACEuH,GAAQA,EAAKi3B,YAAcj3B,EAAKi3B,WAAWjpC,YAAYgS,GACvD,MAAO0a,IAIT,MAAO,KAGXy4F,aAAc,WACZ,IAAI5tI,EAAKtB,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAI7E,IACE,IAAImvI,EAAQt6I,KAAKouE,QAAQxkD,QAAQnd,EAAIzM,KAAK8vI,QAAQwK,MAClD,MAAO,CACL5+H,KAAM4+H,EAAM5+H,KACZkzD,KAAM0rE,EAAM1rE,KACZrB,MAAO+sE,EAAM/sE,OAEf,MAAO5tC,GAEP,MAAO,KAGXm6G,iBAAkB,WAChB,IAAI1rE,EAAUpuE,KAAKouE,QACf0hE,EAAS9vI,KAAK8vI,OACdyK,EAAQv6I,KAAK45I,cAEjB,IAAK55I,KAAKw5I,eAAiBe,IAAUzrH,IAAeA,GAAcs/C,GAkBhE,IAhBA,IAAIosE,EAAepsE,GAAW0hE,EAAS,CACrCp0H,KAAMo0H,EAAOp0H,KACbkzD,KAAMkhE,EAAOlhE,KACbrB,MAAOuiE,EAAOviE,OACZ,GAGAktE,EAAM3rH,EAAavQ,OAAOgV,UAAYzX,SAASyX,SAAW,KAC1DmnH,EAAcD,EAAM,CACtB/+H,KAAM++H,EAAIL,SACVxrE,KAAM6rE,EAAI7rE,KACVrB,MAAOE,GAAWgtE,EAAInkG,SAGxB,GAESihG,EAAa,GAAIgD,GAAShD,GAAcv3I,KAAKg2I,mBAAoBuB,IAAc,CACtF,IAAI9qI,EAAKzM,KAAKi6I,SAAS1C,GAIrBgD,EAFEnsE,IAAYrrE,GAAS0J,IAAOzM,KAAK05I,WAE3BtmE,GAAWpzE,KAAKq6I,aAAa5tI,GAAK+tI,GAAgBjD,EAAa,KAC9DzoH,EAGDskD,GAAWpzE,KAAKk6I,YAAYztI,GAAKiuI,GAAenD,EAAa,MAM5D,EAQfv3I,KAAK+1I,YAAcwE,EAAQ,EAAIA,EAAQ,MC7TzCI,GAAmCnxF,GAAc,CACnDR,WAAY,CACV2wF,eAAgBA,MCahBiB,GAAgB,CAClBC,KAAM,OACNC,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRC,KAAM,OACNC,QAAS,MACTC,SAAU,MACVC,SAAU,QACVC,YAAa,QACbC,WAAY,SACZC,YAAa,SACbC,QAAS,OACTC,WAAY,QAEVC,GAAY,CACdb,KAAM,EACNK,SAAU,EACVJ,IAAK,EACLK,SAAU,EACVC,UAAW,EACXL,MAAO,EACPM,YAAa,EACbC,YAAa,EACbN,OAAQ,EACRO,YAAa,EACbC,SAAU,EACVP,KAAM,EACNQ,WAAY,GAGHtuH,GAAQ,CAGjBwuH,aAAc92E,GAAS9M,GAAyB,GAEhDu3C,SAAUzqC,GAAS,CAAC/f,GAAauS,IAAmB,gBAGpDukF,gBAAiB/2E,GAAS9M,GAAyB,GACnD8jF,kBAAmBh3E,GAASpN,GAAwB,QACpDzsD,OAAQ65D,GAAS9M,GAAyB,GAC1CgsC,UAAWl/B,GAASxN,GAAkB,OAEtC/qD,OAAQu4D,GAAS,CAAC/f,GAAaG,MAItB62F,GAAwBrzF,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAMmoD,GACNplC,MAAOA,GACPnX,KAAM,WACJ,MAAO,CAELszD,QAAQ,EAERuB,WAAW,EACXkxE,WAAY/7I,KAAKg8I,cAAch8I,KAAK+jG,aAGxCx3B,SAAU,CAER0vE,aAAc,WAEZ,MAAO,WAET7qC,aAAc,WACZ,IAAI1+D,EAAQ1yC,KAER+jG,EAAY/jG,KAAK+jG,UACrB,MAAO,CACLA,UAAW/jG,KAAKg8I,cAAcj4C,GAC9BpS,UAAW,CACT3mF,OAAQ,CACNA,OAAQhL,KAAKk8I,UAAUn4C,IAEzB6B,KAAM,CACJ6E,SAAUzqG,KAAK67I,mBAIjB3yC,MAAO,CACLj3F,QAAS,UAEXq6F,gBAAiB,CACf9/B,QAASxsE,KAAK47I,gBACdn4C,kBAAmBzjG,KAAKsvG,WAG5BtJ,SAAU,SAAkBhwF,GAEtBA,EAAK6vF,oBAAsB7vF,EAAK+tF,WAElCrxD,EAAMypG,sBAAsBnmI,IAGhC+vF,SAAU,SAAkB/vF,GAE1B08B,EAAMypG,sBAAsBnmI,OAKpCo1D,QAAS,WACP,IAAIyJ,EAAS70E,KAIbA,KAAK2wG,SAAW,KAEhB3wG,KAAK6qE,WAAY,EAEjB7qE,KAAK20E,IAAI9e,IAAiB,SAAUnnD,GAClCmmE,EAAOunE,aAAa1tI,MAGtB,IAAImhI,EAAgB,WAClBh7D,EAAO1J,WAAU,WAEf5M,IAAU,WACRsW,EAAOuwD,kBAMbplI,KAAKmyE,QAAQ4C,MAAMxe,GAA2Bs5E,GAE9C7vI,KAAK+0E,MAAM1gB,GAAmBw7E,IAEhC/K,YAAa,WAGX9kI,KAAK+7I,WAAa/7I,KAAKg8I,cAAch8I,KAAK+jG,YAE5C7H,QAAS,WAGPl8F,KAAKmxG,gBAEP7lC,cAAe,WACbtrE,KAAK8wG,iBAEPwzB,UAAW,WAET,IAAI51H,EAAK1O,KAAKm3E,IACdzoE,GAAMA,EAAGyvD,YAAczvD,EAAGyvD,WAAWjpC,YAAYxmB,IAEnDsM,QAAS,CAEP6xF,KAAM,WACJ7sG,KAAK6qE,WAAY,GAGnBmxE,cAAe,SAAuBj4C,GACpC,OAAO62C,GAAcj5I,OAAOoiG,GAAWz5C,gBAAkB,QAE3D4xF,UAAW,SAAmBn4C,GAC5B,IAAK/jG,KAAKgL,OAAQ,CAEhB,IAAIk+F,EAAQlpG,KAAKsoF,MAAM4gB,OAASzoC,GAAO,SAAUzgE,KAAKm3E,KAClDklE,EAAc3/E,GAAQoF,GAAMonC,GAAOrpC,MAAO,GAAKnD,GAAQ18D,KAAK27I,aAAc,GAE9E,OAAQD,GAAU/5I,OAAOoiG,GAAWz5C,gBAAkB,GAEpD,KAAK,EAEH,MAAO,WAAWrpD,OAAOo7I,EAAa,MAIxC,KAAM,EAEJ,MAAO,WAAWp7I,OAAOo7I,EAAa,MAExC,QACE,OAAO,GAMb,OAAOr8I,KAAKgL,QAEdoxI,aAAc,SAAsB1tI,GAClC1O,KAAK8wG,gBAGL9wG,KAAK2wG,SAAW,IAAI3D,GAAOhtG,KAAKsM,OAAQoC,EAAI1O,KAAKoxG,eAEnDN,cAAe,WACb9wG,KAAK2wG,UAAY3wG,KAAK2wG,SAASjf,UAC/B1xF,KAAK2wG,SAAW,MAElBQ,aAAc,WACZnxG,KAAK2wG,UAAY3wG,KAAK2wG,SAASxJ,kBAEjCg1C,sBAAuB,SAA+BnmI,GAEpDhW,KAAK+7I,WAAa/7I,KAAKg8I,cAAchmI,EAAK+tF,YAI5Cu4C,eAAgB,SAAwBx7I,GAEtC,OAAOA,EAAE,SAGb3B,OAAQ,SAAgB2B,GACtB,IAAIqnF,EAASnoF,KAETspE,EAAStpE,KAAKspE,OAElB,OAAOxoE,EAAE0oE,GAAc,CAErBr8C,MAAO,CACLk8C,QAAQ,EACRC,OAAQA,GAEVlC,GAAI,CAEFonE,YAAa,SAAqB9/H,GAChC,OAAOy5E,EAAOld,MAAMpV,GAAiBnnD,IAEvCmsF,WAAY,SAAoBnsF,GAC9B,OAAOy5E,EAAOld,MAAMnV,GAAkBpnD,IAExC+/H,YAAa,SAAqB//H,GAChC,OAAOy5E,EAAOld,MAAM3W,GAAiB5lD,IAEvCqsF,WAAY,SAAoBrsF,GAC9B,OAAOy5E,EAAOld,MAAM5W,GAAmB3lD,MAG1C,CAAC1O,KAAK6qE,UAAY7qE,KAAKs8I,eAAex7I,GAAKA,SC3PlD,SAASyX,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAWpM,IAAImF,GAAQ,CAEjB3B,KAAMq5C,GAAS9N,IAAmB,GAElCngD,GAAIiuD,GAASxN,KAIJklF,GAAiC9zF,EAAAA,WAAAA,OAAW,CACrDr+C,KAAMuoD,GACNi9E,QAASkM,GACTnxE,OAAQ,CAACq5D,IACT72G,MAAOA,GACPnX,KAAM,WAGJ,MAAO,CACL05D,MAAO,GACP3jD,QAAS,GACT0+C,QAAS,KACT+xE,YAAa,KACbC,aAAa,IAGjBlwE,SAAU,CACR0vE,aAAc,WACZ,MAAO,WAETS,gBAAiB,WACf,IAAI3zF,EAEA0hB,EAAUzqE,KAAKyqE,QACfsxE,EAAa/7I,KAAK+7I,WAClBE,EAAej8I,KAAKi8I,aACxB,MAAO,EAAElzF,EAAO,CAGd4zF,gBAAiB38I,KAAKy8I,aACrB3nG,GAAgBiU,EAAM,KAAK9nD,OAAOg7I,EAAc,KAAKh7I,OAAOwpE,GAAUA,GAAU31B,GAAgBiU,EAAM,MAAM9nD,OAAOg7I,EAAc,KAAKh7I,OAAO86I,GAAaA,GAAahzF,GAAO/oD,KAAKw8I,cAExLI,mBAAoB,WAClB,IAAIhmI,EAAK5W,KAAK4W,GACd,OAAOi+B,GAAcA,GAAc,GAAI70C,KAAKmyE,QAAQA,QAAQipC,QAAS,GAAI,CACvExkG,GAAIA,EACJ+0D,KAAM,UACN+K,SAAU,MACT12E,KAAKikI,mBAEV4Y,kBAAmB,WACjB,IAAInqG,EAAQ1yC,KAGZ,MAAO,CACLm5F,WAEA,SAAoB7kE,GAClBoe,EAAMu4B,MAAMvW,GAAuBpgC,IAErC8kE,WAEA,SAAoB9kE,GAClBoe,EAAMu4B,MAAMtW,GAAuBrgC,IAErCokD,QAEA,SAAiBpkD,GACfoe,EAAMu4B,MAAM/W,GAAoB5/B,IAElCqkD,SAEA,SAAkBrkD,GAChBoe,EAAMu4B,MAAM9W,GAAqB7/B,OAKzCtZ,QAAS,CACPshI,eAAgB,SAAwBx7I,GACtC,IAAI4uE,EAAQ1vE,KAAK0vE,MAEbU,EAASpsC,GAAW0rC,GAASA,EAAM,IAAMA,EAEzChH,EAAW1oE,KAAKwrB,OAASwY,GAAW0rC,GAAS,CAC/C/G,UAAW+G,GACT,GACJ,OAAO5uE,EAAE,MAAO,CACdwnE,YAAa,oBACbC,MAAOvoE,KAAK08I,gBACZl0E,MAAOxoE,KAAK48I,mBACZx1E,GAAIpnE,KAAK68I,mBACR,CAAC/7I,EAAE,MAAO,CACXwnE,YAAa,QACbyjB,IAAK,UACHjrF,EAAE,MAAO,CACXwnE,YAAa,gBACbI,SAAUA,GACT,CAAC0H,UC/GV,SAAS73D,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EA0B3M,IC9BI80H,GAAuBl0E,GD8BvBm0E,GAAiB,iBAEjBC,GAA+Bj1E,GAAiBrY,GAAY2E,IAE5D4oF,GAAmB,aAEnBC,GAAqB,CAACH,GAAgBE,IAAkB/7H,KAAK,MAE7Di8H,GAAiB,WACjBC,GAAyB,sBAEzBC,GAAkB,sBAGlBC,GAAe,CAEjB5tE,MAAO,GAEP3jD,QAAS,GAET0+C,QAAS,KAET+xE,YAAa,KAEbe,SAAU,GAEVx5C,UAAW,OAEX83C,kBAAmB,OAInBvvI,OAAQ,KAERw0H,UAAW,KAGXx3D,QAAQ,EAERgmC,SAAU,eAGVssC,gBAAiB,EAEjB5wI,OAAQ,EAERulH,MAAO,EAGPorB,aAAc,EAEdc,aAAa,EAEb18E,UAAU,EAEVnpD,GAAI,KAEJ4U,MAAM,GAIGgyH,GAAyB/0F,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMsoD,GACNiY,OAAQ,CAAC0J,IACTr+D,KAAM,WACJ,OAAO6+B,GAAcA,GAAc,GAAIyoG,IAAe,GAAI,CAExDG,cAAe,CAEbC,OAAO,EACPj1E,OAAO,EACPlF,OAAO,GAETsH,WAAW,KAGf0B,SAAU,CACR0vE,aAAc,WAEZ,MAAO,WAET0B,WAAY,WACV,OAAO39I,KAAK4W,IAAM,QAAQ3V,OAAOjB,KAAKi8I,aAAc,KAAKh7I,OAAOjB,KAAK6qD,IAAoB,OAE3FylE,cAAe,WAEb,IAAIC,EAAQ,CACVnmD,KAAM,EACNyiC,KAAM,GAUR,OAPI7mD,GAAchmD,KAAKuwH,QACrBA,EAAMnmD,KAAO0B,GAAQrP,GAAUz8D,KAAKuwH,MAAMnmD,KAAM,GAAI,GACpDmmD,EAAM1jB,KAAO/gC,GAAQrP,GAAUz8D,KAAKuwH,MAAM1jB,KAAM,GAAI,KAC3C/mD,GAAS9lD,KAAKuwH,QAAU1qE,GAAS7lD,KAAKuwH,UAC/CA,EAAMnmD,KAAOmmD,EAAM1jB,KAAO/gC,GAAQrP,GAAUz8D,KAAKuwH,MAAO,GAAI,IAGvDA,GAETqtB,iBAAkB,WAGhB,OAAO38I,GAAOjB,KAAKu9I,UAAUztI,OAAO23C,IAAUvmC,KAAK,KAAKiS,OAAO1M,cAAczH,MAAM,OAAO0c,QAE5FmiH,oBAAqB,WACnB,IAAK,IAAIpY,KAAWzlI,KAAKy9I,cACvB,GAAIz9I,KAAKy9I,cAAchY,GACrB,OAAO,EAIX,OAAO,GAETqY,qBAAsB,WACpB,IAAIpuE,EAAQ1vE,KAAK0vE,MACb3jD,EAAU/rB,KAAK+rB,QACf0+C,EAAUzqE,KAAKyqE,QACf+xE,EAAcx8I,KAAKw8I,YACnBlzE,EAAStpE,KAAKspE,OACdmzE,EAAcz8I,KAAKy8I,YACvB,MAAO,CACL/sE,MAAOA,EACP3jD,QAASA,EACT0+C,QAASA,EACT+xE,YAAaA,EACblzE,OAAQA,EACRmzE,YAAaA,KAInB3xE,MAAO,CACL8yE,iBAAkB,SAA0BG,EAAaC,GACvD,IAAItrG,EAAQ1yC,KAKPozE,GAAW2qE,EAAaC,IAC3Bh+I,KAAKmrE,WAAU,WAEbz4B,EAAMurG,WAGND,EAAY9wI,SAAQ,SAAUu4H,GACvBtpE,GAAc4hF,EAAatY,IAC1B/yF,EAAM+qG,cAAchY,KACtB/yF,EAAM+qG,cAAchY,IAAW,MAKrC/yF,EAAMwrG,aAIZJ,qBAAsB,WAGpB99I,KAAKm+I,wBAEPzuE,MAAO,SAAe3E,EAAU+I,GAE1B/I,IAAa+I,GAAa/I,GAC5B/qE,KAAK6sG,QAGT9sC,SAAU,SAAkBgL,GACtBA,EACF/qE,KAAKo+I,UAELp+I,KAAK+X,WAIXqzD,QAAS,WACP,IAAIyJ,EAAS70E,KAGbA,KAAKq+I,MAAQ,KACbr+I,KAAKs+I,eAAiB,KACtBt+I,KAAKu+I,aAAe,GACpBv+I,KAAKw+I,kBAAoB,KACzBx+I,KAAKy+I,WAAaz+I,KAAK+/D,SACvB//D,KAAK0+I,OAAS54H,GAAKxY,KAAKtN,MAEpBA,KAAKmyE,SACPnyE,KAAKmyE,QAAQ4C,MAAMze,IAAgC,WACjDue,EAAO1J,WAAU,WAEf5M,IAAU,WACRsW,EAAOuwD,oBAMfplI,KAAKmrE,WAAU,WACb,IAAI7+D,EAASuoE,EAAOg6D,YAEhBviI,GAAUizD,GAASzjD,SAAS0jD,KAAMlzD,IAEpCuoE,EAAOt1E,QAAUwkI,GAAWlvD,EAAO1C,SAEnC0C,EAAOqpE,UAGP1sG,GAAKqU,GAASgvB,EAAOvoE,QAAU,yCAA0CrL,OAAO4zE,EAAOvoE,OAAQ,kBAAqB,gDAAiDuoE,EAAOonE,kBAMlL//C,QAAS,WAEPl8F,KAAKmrE,UAAUnrE,KAAKm+I,uBAItB91D,YAAa,WAGXroF,KAAK2+I,aAEPrzE,cAAe,WAEbtrE,KAAKi+I,WACLj+I,KAAK4+I,uBAAsB,GAE3B5+I,KAAK6+I,oBACL7+I,KAAK8+I,0BAEL9+I,KAAK++I,kBAEL/+I,KAAK0+I,OAAS,MAEhB1jI,QAAS,CAEPgkI,YAAa,WAEX,OAAOzC,IAET0C,WAAY,WACV,IAAI92D,EAASnoF,KAETgW,EAAO7K,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAG3E+zI,GAAe,EACnB50I,GAAKgzI,IAAcpwI,SAAQ,SAAUo5C,GAC9Bb,GAAYzvC,EAAKswC,KAAU6hC,EAAO7hC,KAAUtwC,EAAKswC,KACpD6hC,EAAO7hC,GAAQtwC,EAAKswC,GAEP,UAATA,IACF44F,GAAe,OAOjBA,GAAgBl/I,KAAK6qE,WACvB7qE,KAAKm/I,YAGTC,sBAAuB,WAErB,IAAIte,EAAY9gI,KAAKglI,eACjBqa,EAAWr/I,KAAKg/I,cAChBM,EAAOt/I,KAAKq+I,MAAQ,IAAIgB,EAAS,CACnCl/I,OAAQH,KAERklI,UAAW,CAETtuH,GAAI5W,KAAK29I,WACTnyH,KAAMxrB,KAAKwrB,KACXu4E,UAAW/jG,KAAK+jG,UAChB83C,kBAAmB77I,KAAK67I,kBACxBvvI,OAAQtM,KAAKu/I,qBACbjwC,SAAUtvG,KAAKw/I,cAEfx0I,OAAQyxD,GAAUz8D,KAAKgL,OAAQ,GAC/B2wI,aAAcl/E,GAAUz8D,KAAK27I,aAAc,GAC3CC,gBAAiBn/E,GAAUz8D,KAAK47I,gBAAiB,MAIrD57I,KAAKm+I,uBAGLmB,EAAKvqE,MAAMlf,GAAiB71D,KAAKy/I,gBAEjCH,EAAKvqE,MAAMjf,GAAkB91D,KAAK0/I,iBAElCJ,EAAKvqE,MAAMzgB,GAAiBt0D,KAAK2/I,gBAEjCL,EAAKvqE,MAAM1gB,GAAmBr0D,KAAK4/I,kBAEnCN,EAAKvqE,MAAMxe,GAA2Bv2D,KAAK++I,iBAI3CO,EAAK3qE,IAAIzgB,GAAoBl0D,KAAK6/I,aAClCP,EAAK3qE,IAAIxgB,GAAqBn0D,KAAK6/I,aACnCP,EAAK3qE,IAAIjgB,GAAuB10D,KAAK6/I,aACrCP,EAAK3qE,IAAIhgB,GAAuB30D,KAAK6/I,aAErCP,EAAKlP,OAAOtP,EAAUn0G,YAAY7Q,SAASE,cAAc,UAE3D8jI,aAAc,WAKZ9/I,KAAKq+I,OAASr+I,KAAKq+I,MAAMxxC,OAEzB7sG,KAAK+/I,sBAEL//I,KAAKu+I,aAAe,IAGtBQ,gBAAiB,WACf/+I,KAAK4+I,uBAAsB,GAC3B5+I,KAAK6+I,oBACL7+I,KAAKu+I,aAAe,GACpBv+I,KAAK+/I,sBACL//I,KAAKggJ,qBAAuB,KAE5B,IACEhgJ,KAAKq+I,MAAMjZ,WACX,MAAOxjF,IAET5hD,KAAKq+I,MAAQ,KACbr+I,KAAKigJ,wBACLjgJ,KAAKkgJ,eACLlgJ,KAAK6qE,WAAY,GAEnBs1E,mBAAoB,WAClB,OAAOngJ,KAAKq+I,MAAQr+I,KAAKq+I,MAAMlnE,IAAM,MAEvCgnE,qBAAsB,WACpB,IAAI31D,EAASxoF,KAITs/I,EAAOt/I,KAAKq+I,MAEhB,GAAIiB,EAAM,CACR,IAAInyH,EAAQ,CAAC,QAAS,UAAW,UAAW,cAAe,SAAU,eAErEA,EAAMjgB,SAAQ,SAAUo5C,GAClBg5F,EAAKh5F,KAAUkiC,EAAOliC,KACxBg5F,EAAKh5F,GAAQkiC,EAAOliC,SAO5B8jB,KAAM,WACJ,IAAI99D,EAAStM,KAAK6uI,YAElB,GAAKviI,GAAWizD,GAASzjD,SAAS0jD,KAAMlzD,IAAYgzD,GAAUhzD,KAAWtM,KAAKogJ,kBAAmBz6F,GAAkB3lD,KAAK0vE,QAAyB,KAAf1vE,KAAK0vE,QAAkB/pB,GAAkB3lD,KAAK+rB,UAA6B,KAAjB/rB,KAAK+rB,WAQ7L/rB,KAAKq+I,QAASr+I,KAAK6qE,UAAvB,CAMA7qE,KAAK6qE,WAAY,EAEjB,IAAI8hE,EAAY3sI,KAAK0sI,WAAW72E,GAAiB,CAC/Ck4C,YAAY,IAEd/tG,KAAKuwG,UAAUo8B,GAIXA,EAAUx+B,iBAEZnuG,KAAK++I,mBAKP/+I,KAAKm/I,WAELn/I,KAAKqgJ,qBAELrgJ,KAAKo/I,2BAEPvyC,KAAM,WACJ,IAAIqd,EAAQ/+G,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GAEvEm1I,EAAMtgJ,KAAKmgJ,qBAGf,GAAKG,GAAQtgJ,KAAK6qE,UAAlB,CAOA,IAAI+hE,EAAY5sI,KAAK0sI,WAAWp4E,GAAiB,CAC/Cy5C,YAAamc,IAEflqH,KAAKuwG,UAAUq8B,GAGXA,EAAUz+B,kBAMdnuG,KAAK8/I,oBAlBH9/I,KAAKkgJ,gBAoBTvB,UAAW,WAET,IAAI2B,EAAMtgJ,KAAKmgJ,qBAEVG,GAAQtgJ,KAAK6qE,YAOlB7qE,KAAK4+I,uBAAsB,GAE3B5+I,KAAK6+I,oBACL7+I,KAAKu+I,aAAe,GACpBv+I,KAAK+/I,sBAED//I,KAAKq+I,QACPr+I,KAAKq+I,MAAM/0E,QAAS,GAItBtpE,KAAK6sG,MAAK,KAEZ90F,OAAQ,WACN/X,KAAKy+I,WAAY,EAEjBz+I,KAAKuwG,UAAUvwG,KAAK0sI,WAAW54E,MAEjCsqF,QAAS,WACPp+I,KAAKy+I,WAAY,EAEjBz+I,KAAKuwG,UAAUvwG,KAAK0sI,WAAWh5E,MAIjC+rF,eAAgB,WAEdz/I,KAAK4+I,uBAAsB,IAG7Bc,gBAAiB,WACf,IAAIa,EAAiBvgJ,KAAKu+I,aAC1Bv+I,KAAKu+I,aAAe,GAGG,QAAnBgC,GACFvgJ,KAAK86F,MAAM,MAIb96F,KAAKuwG,UAAUvwG,KAAK0sI,WAAW52E,MAGjC6pF,eAAgB,WAEd3/I,KAAK4+I,uBAAsB,IAG7BgB,iBAAkB,WAEhB5/I,KAAK++I,kBAEL/+I,KAAKuwG,UAAUvwG,KAAK0sI,WAAWr4E,MAGjCw6E,UAAW,WACT,IAAIviI,EAAStM,KAAKsM,OAUlB,OARIu5C,GAASv5C,GACXA,EAASu0D,GAAQv0D,EAAO0H,QAAQ,KAAM,KAC7BgwB,GAAW13B,GACpBA,EAASA,IACAA,IACTA,EAASA,EAAO6qE,KAAO7qE,GAGlB0yD,GAAU1yD,GAAUA,EAAS,MAEtCizI,mBAAoB,WAQlB,OAAOv/I,KAAK6uI,aAEd2R,YAAa,WAEX,IAAIl0I,EAAStM,KAAK6uI,YAClB,OAAOviI,GAAUA,EAAOsK,GAAKtK,EAAOsK,GAAK,MAE3CouH,aAAc,WAEZ,IAAIlE,IAAY9gI,KAAK8gI,YAAY9gI,KAAK8gI,UAAU3pD,KAAOn3E,KAAK8gI,WACxDthE,EAAO1jD,SAAS0jD,KAChBlzD,EAAStM,KAAK6uI,YAQlB,OAAqB,IAAd/N,EAAsB9iE,GAAQk/E,GAAoB5wI,IAAWkzD,EAEpE3Z,GAASi7E,IAETjgE,GAAQigE,EAAU9sH,QAAQ,KAAM,MAEhCwrD,GAEFggF,YAAa,WACX,OAAOx/I,KAAKsvG,SAAWtvG,KAAKsvG,SAASn4B,KAAOn3E,KAAKsvG,SAAW,gBAE9DmxC,UAAW,WACT,IAAIn0I,EAAStM,KAAK6uI,YAClB,OAAOviI,GAAU0xD,GAAQ++E,GAAgBzwI,IAE3Co0I,WAAY,WAEV,IAAIp0I,EAAStM,KAAK6uI,YAClB,OAAOviI,GAAU2zD,GAAS3zD,EAAQ6wI,KAEpCiD,aAAc,WAEZ,IAAI9zI,EAAStM,KAAK6uI,YAClB,OAAO7uI,KAAK0gJ,cAAgBp0I,GAAUm0D,GAAO28E,GAAwB9wI,IAEvEuyI,kBAAmB,WACjBrzE,aAAaxrE,KAAKs+I,gBAClBt+I,KAAKs+I,eAAiB,MAExBQ,wBAAyB,WACvB5nD,cAAcl3F,KAAKw+I,mBACnBx+I,KAAKw+I,kBAAoB,MAE3BuB,oBAAqB,WACnB,IAAK,IAAIta,KAAWzlI,KAAKy9I,cACvBz9I,KAAKy9I,cAAchY,IAAW,GAGlC4a,mBAAoB,WAElB,IAAI/zI,EAAStM,KAAK6uI,YACd/iG,EAAO01B,GAAQl1D,EAAQ,qBAAuB,GAClDw/B,EAAOA,EAAK9sB,MAAM,OAAO/d,OAAOjB,KAAK29I,YAAYz8H,KAAK,KAAKiS,OAE3DguC,GAAQ70D,EAAQ,mBAAoBw/B,IAEtCm0G,sBAAuB,WACrB,IAAIv3D,EAAS1oF,KAGTsM,EAAStM,KAAK6uI,YACd/iG,EAAO01B,GAAQl1D,EAAQ,qBAAuB,GAClDw/B,EAAOA,EAAK9sB,MAAM,OAAOlP,QAAO,SAAUg4E,GACxC,OAAOA,IAAMY,EAAOi1D,cACnBz8H,KAAK,KAAKiS,OAET2Y,EAEFq1B,GAAQ70D,EAAQ,mBAAoBw/B,GAEpCw1B,GAAWh1D,EAAQ,qBAGvB6yI,SAAU,WAGR,IAAI7yI,EAAStM,KAAK6uI,YAElB,GAAI7uE,GAAQ1zD,EAAQ,SAAU,CAE5B,IAAIojE,EAAQlO,GAAQl1D,EAAQ,SAC5B60D,GAAQ70D,EAAQ,QAAS,IAErBojE,GACFvO,GAAQ70D,EAAQ+wI,GAAiB3tE,KAIvCwwE,aAAc,WAGZ,IAAI5zI,EAAStM,KAAK6uI,YAElB,GAAI7uE,GAAQ1zD,EAAQ+wI,IAAkB,CAEpC,IAAI3tE,EAAQlO,GAAQl1D,EAAQ+wI,IAC5B/7E,GAAWh1D,EAAQ+wI,IAEf3tE,GACFvO,GAAQ70D,EAAQ,QAASojE,KAK/Bg9D,WAAY,SAAoBt3H,GAC9B,IAAIzV,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAElF,OAAO,IAAI0iG,GAAQz4F,EAAMy/B,GAAc,CACrCk5D,YAAY,EACZzhG,OAAQtM,KAAK6uI,YACbtxD,cAAev9E,KAAKmgJ,sBAAwB,KAC5CjyC,YAAaluG,KAAK29I,WAClB1vC,UAAWjuG,MACVL,KAEL4wG,UAAW,SAAmBF,GAC5B,IAAIj7F,EAAOi7F,EAAQj7F,KACnBpV,KAAKi1E,WAAWlN,GAAiB/nE,KAAKi8I,aAAc7mI,GAAOi7F,GAC3DrwG,KAAKirE,MAAM71D,EAAMi7F,IAGnB6tC,OAAQ,WACN,IAAIt0D,EAAS5pF,KAGT0O,EAAK1O,KAAK6uI,YAETngI,IAML1O,KAAK2gJ,iBAAgB,GAErB3gJ,KAAK49I,iBAAiB1wI,SAAQ,SAAUu4H,GACtB,UAAZA,EACFz+D,GAAQt4D,EAAI,QAASk7E,EAAOi2D,YAAajpF,IACpB,UAAZ6uE,GACTz+D,GAAQt4D,EAAI,UAAWk7E,EAAOi2D,YAAajpF,IAC3CoQ,GAAQt4D,EAAI,WAAYk7E,EAAOi2D,YAAajpF,KACvB,SAAZ6uE,EAITz+D,GAAQt4D,EAAI,WAAYk7E,EAAOi2D,YAAajpF,IACvB,UAAZ6uE,IACTz+D,GAAQt4D,EAAI,aAAck7E,EAAOi2D,YAAajpF,IAC9CoQ,GAAQt4D,EAAI,aAAck7E,EAAOi2D,YAAajpF,OAE/C52D,QAILi+I,SAAU,WACR,IAAIvmB,EAAS13H,KAGTk4F,EAAS,CAAC,QAAS,UAAW,WAAY,aAAc,cACxD5rF,EAAStM,KAAK6uI,YAElB7uI,KAAK2gJ,iBAAgB,GAErBzoD,EAAOhrF,SAAQ,SAAUonB,GACvBhoB,GAAU46D,GAAS56D,EAAQgoB,EAAOojG,EAAOmoB,YAAajpF,MACrD52D,OAEL2gJ,gBAAiB,SAAyBv5E,GAExC,IAAI3mE,EAAQT,KAAKS,MAEjB,GAAIA,EAAO,CACT,IAAIuQ,EAASo2D,EAAK,MAAQ,OACtBhyD,EAAOpV,KAAKi8I,aAChBx7I,EAAMuQ,GAAQg3D,GAAuB5yD,EAAMk/C,IAAkBt0D,KAAK4gJ,QAClEngJ,EAAMuQ,GAAQg3D,GAAuB5yD,EAAMygD,IAAkB71D,KAAK+yF,QAClEtyF,EAAMuQ,GAAQg3D,GAAuB5yD,EAAMq+C,IAAqBzzD,KAAK6gJ,WACrEpgJ,EAAMuQ,GAAQg3D,GAAuB5yD,EAAMy+C,IAAoB7zD,KAAK8gJ,YAGxElC,sBAAuB,SAA+Bx3E,GAGpDpnE,KAAK+gJ,iBAAiB35E,GAEtBpnE,KAAKghJ,oBAAoB55E,GAGzBpnE,KAAKihJ,aAAa75E,GAElBpnE,KAAKkhJ,wBAAwB95E,IAG/B65E,aAAc,SAAsB75E,GAClC,IAAI+5E,EAASnhJ,KAEbA,KAAK8+I,0BACL,IAAIxyI,EAAStM,KAAK6uI,YAEdznE,IACFpnE,KAAKw+I,kBAAoB7mD,aAAY,WACnC,IAAI2oD,EAAMa,EAAOhB,sBAEbG,IAAOa,EAAOt2E,WAAev+D,EAAO6xD,YAAemB,GAAUhzD,IAE/D60I,EAAOxC,cAER,OAGPoC,iBAAkB,SAA0B35E,GAEtCpnE,KAAKygJ,aAEPzgJ,KAAKS,MAAM2mE,EAAK,MAAQ,QAAQ41E,GAA8Bh9I,KAAK2+I,YAKvEuC,wBAAyB,SAAiC95E,GACxD,IAAIg6E,EAASphJ,KAMT,iBAAkB8b,SAASgmC,iBAC7Bye,GAAUzkD,SAAS0jD,KAAKiK,UAAUv8D,SAAQ,SAAUwB,GAClDy4D,GAAWC,EAAI14D,EAAI,YAAa0yI,EAAO1C,YAI7CsC,oBAAqB,SAA6B55E,GAChD,IAAI96D,EAAStM,KAAK6uI,YAEbviI,GAAWtM,KAAKS,OAAUT,KAAK0gJ,YAWhCp0I,EAAO4qE,SACT5qE,EAAO4qE,QAAQ9P,EAAK,MAAQ,QAAQtR,GAAkB91D,KAAK2+I,YAI/DkB,YAAa,SAAqBvrH,GAGhC,IAAIhoB,EAAStM,KAAK6uI,YAElB,GAAKviI,IAAUwzD,GAAWxzD,IAAYtM,KAAKy+I,YAAaz+I,KAAKogJ,eAA7D,CAOA,IAAIhrI,EAAOkf,EAAMlf,KACbmoI,EAAWv9I,KAAK49I,iBAEpB,GAAa,UAATxoI,GAAoB+mD,GAAcohF,EAAU,SAC9Cv9I,KAAKyoE,MAAMn0C,QACN,GAAa,eAATlf,GAAyB+mD,GAAcohF,EAAU,SAE1Dv9I,KAAK2pB,MAAM2K,QACN,GAAa,YAATlf,GAAsB+mD,GAAcohF,EAAU,SAGvDv9I,KAAK2pB,MAAM2K,QACN,GAAa,aAATlf,IAAwB+mD,GAAcohF,EAAU,UAAYphF,GAAcohF,EAAU,UAAqB,eAATnoI,GAAyB+mD,GAAcohF,EAAU,SAAU,CAIpK,IAAI+C,EAAMtgJ,KAAKmgJ,qBAEXkB,EAAc/sH,EAAMhoB,OAEpBixE,EAAgBjpD,EAAMipD,cAG1B,GACA+iE,GAAO/gF,GAAS+gF,EAAKe,IAAgB9hF,GAASjzD,EAAQixE,IACtD+iE,GAAO/gF,GAASjzD,EAAQ+0I,IAAgB9hF,GAAS+gF,EAAK/iE,IACtD+iE,GAAO/gF,GAAS+gF,EAAKe,IAAgB9hF,GAAS+gF,EAAK/iE,IACnDhe,GAASjzD,EAAQ+0I,IAAgB9hF,GAASjzD,EAAQixE,GAEhD,OAIFv9E,KAAK86F,MAAMxmE,MAGfssH,OAAQ,SAAgBhqI,GAEjBA,GAAM5W,KAAKwgJ,gBAAkB5pI,GAAM5W,KAAK29I,aAAe/mI,GAE1D5W,KAAK2+I,aAGT5rD,OAAQ,SAAgBn8E,GAEjBA,GAAM5W,KAAKwgJ,gBAAkB5pI,GAAM5W,KAAK29I,aAAe/mI,GAE1D5W,KAAKoqE,QAKTy2E,UAAW,SAAmBjqI,GAIvBA,GAAM5W,KAAKwgJ,gBAAkB5pI,GAAM5W,KAAK29I,aAAe/mI,GAE1D5W,KAAKo+I,WAKT0C,SAAU,SAAkBlqI,GAIrBA,GAAM5W,KAAKwgJ,gBAAkB5pI,GAAM5W,KAAK29I,aAAe/mI,GAE1D5W,KAAK+X,UAGT0wD,MAAO,SAAen0C,GACft0B,KAAKy+I,YAAaz+I,KAAKogJ,iBAW5B98E,GAAahvC,EAAM2iD,eACnBj3E,KAAKy9I,cAAch1E,OAASzoE,KAAKy9I,cAAch1E,MAE3CzoE,KAAK69I,oBACP79I,KAAK2pB,MAAM,MAGX3pB,KAAK86F,MAAM,QAKfnyE,OAAQ,WAED3oB,KAAKy+I,YAAaz+I,KAAKogJ,iBAOxBpgJ,KAAK6qE,UACP7qE,KAAK86F,MAAM,MAEX96F,KAAK2pB,MAAM,QAGfA,MAAO,WACL,IAAI23H,EAAUthJ,KAEVs0B,EAAQnpB,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAI5EmpB,IACFt0B,KAAKy9I,cAA6B,YAAfnpH,EAAMlf,KAAqB,QAAU,UAAW,GAKjEpV,KAAK6qE,WAAmC,OAAtB7qE,KAAKu+I,aACzBv+I,KAAKu+I,aAAe,MAItBv+I,KAAK6+I,oBACL7+I,KAAKu+I,aAAe,KAEfv+I,KAAKswH,cAAclmD,MAItBpqE,KAAKm/I,WACLn/I,KAAKs+I,eAAiBnpH,YAAW,WAEF,OAAzBmsH,EAAQ/C,aACV+C,EAAQl3E,OACEk3E,EAAQz2E,WAClBy2E,EAAQpB,iBAETlgJ,KAAKswH,cAAclmD,OAXtBpqE,KAAKoqE,SAcT0wB,MAAO,WACL,IAAIymD,EAAUvhJ,KAEVs0B,EAAQnpB,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAI5EmpB,IACFt0B,KAAKy9I,cAA6B,aAAfnpH,EAAMlf,KAAsB,QAAU,UAAW,EAGjD,aAAfkf,EAAMlf,MAAuB+mD,GAAcn8D,KAAK49I,iBAAkB,UAEpE59I,KAAKy9I,cAAch1E,OAAQ,EAC3BzoE,KAAKy9I,cAAcC,OAAQ,IAM3B19I,KAAK69I,sBAIT79I,KAAK6+I,oBACL7+I,KAAKu+I,aAAe,MAEfv+I,KAAKswH,cAAczjB,KAGtB7sG,KAAKs+I,eAAiBnpH,YAAW,WACF,QAAzBosH,EAAQhD,cACVgD,EAAQ10C,SAET7sG,KAAKswH,cAAczjB,MANtB7sG,KAAK6sG,YC39Bb,SAASt0F,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAc3M,IAAIw5H,GAA0B,WAC1BC,GAA2BjrF,GAA0BgrF,GACrDxvD,GAAuB,OACvBC,GAAwBz7B,GAA0Bw7B,GAE3C7kE,GAAQs4C,IAAuBq3E,GAAwB,CAIhExtC,SAAUzqC,GAAS,CAAC/f,GAAaqS,GAAkBE,IAAmB,gBACtEukF,gBAAiB/2E,GAAS9M,GAAyB,IAInD+oE,UAAWj8D,GAAS,CAAC/f,GAAaqS,GAAkBE,KACpDmlF,YAAa33E,GAASxN,IACtBk5D,MAAO1rD,GAAS7M,GAAgC,KAC/CljB,GAAgBgoG,GAAuB0E,GAAyB38E,GAAS9N,IAAmB,IAASjiB,GAAgBgoG,GAAuB,oBAAqBj4E,GAASpN,GAAwB,SAAU3iB,GAAgBgoG,GAAuB,KAAMj4E,GAASxN,KAAoBviB,GAAgBgoG,GAAuB,SAAUj4E,GAAS9N,IAAmB,IAASjiB,GAAgBgoG,GAAuB,iBAAkBj4E,GAAS9N,IAAmB,IAASjiB,GAAgBgoG,GAAuB,SAAUj4E,GAAS9M,GAAyB,IAAKjjB,GAAgBgoG,GAAuB,YAAaj4E,GAASxN,GAAkB,QAASviB,GAAgBgoG,GAAuB9qD,GAAsBntB,GAAS9N,IAAmB,IAASjiB,GAAgBgoG,GAAuB,SAAUj4E,GAAS,CAAC/f,GAAaG,GAAYgS,GAAoBE,GAAkBE,SAAmBl1D,GAAW,IAAQ2yC,GAAgBgoG,GAAuB,QAASj4E,GAASxN,KAAoBviB,GAAgBgoG,GAAuB,WAAYj4E,GAASpN,GAAwB,gBAAiB3iB,GAAgBgoG,GAAuB,UAAWj4E,GAASxN,KAAoBylF,IAAwB9qF,IAG7oC0vF,GAAwBj5F,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAM4nD,GACN2Y,OAAQ,CAAClE,IACTyP,cAAc,EACd/oD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL60D,UAAW7qE,KAAKgyF,IAChB2vD,WAAY,GACZC,aAAc,KAGlBr1E,SAAU,CAER+wE,aAAc,WACZ,OAAOzoG,GAAc,CACnB66B,MAAO1vE,KAAK2hJ,WACZ51H,QAAS/rB,KAAK4hJ,aACdnF,aAAcz8I,KAAK28I,gBAClBn2F,GAAKxmD,KAAKizF,OAAQ,CAAC,WAAY,kBAAmB,YAAa,cAAe,QAAS,oBAAqB,KAAM,SAAU,SAAU,YAAa,SAAU,SAAU,WAAY,UAAWuuD,OAGnMK,qBAAsB,WACpB,IAAInyE,EAAQ1vE,KAAK0vE,MACb3jD,EAAU/rB,KAAK+rB,QACnB,MAAO,CACL2jD,MAAOA,EACP3jD,QAASA,KAIf++C,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQopB,IAAsB,SAAUjnB,EAAU+I,GACjF/I,IAAa+I,GAAY/I,IAAa/qE,KAAK6qE,WAAa7qE,KAAK8hJ,YAC3D/2E,EACF/qE,KAAK8hJ,UAAU13E,OAGfpqE,KAAK8hJ,UAAUnD,gBAGjB7pG,GAAgB8zB,GAAQ44E,IAAyB,SAAUz2E,GACzDA,EACF/qE,KAAK6gJ,YAEL7gJ,KAAK8gJ,cAELhsG,GAAgB8zB,GAAQ,aAAa,SAAmBmC,GAE1D/qE,KAAKirE,MAAMgnB,GAAuBlnB,MAChCj2B,GAAgB8zB,GAAQ,gBAAgB,WAC1C,IAAIl2B,EAAQ1yC,KAEZA,KAAKmrE,WAAU,WACTz4B,EAAMovG,WACRpvG,EAAMovG,UAAU7C,WAAWvsG,EAAM4qG,oBAGnCxoG,GAAgB8zB,GAAQ,wBAAwB,WAClD5oE,KAAKmrE,UAAUnrE,KAAK+hJ,kBAClBn5E,IACJwC,QAAS,WAEPprE,KAAK8hJ,UAAY,MAEnB5lD,QAAS,WAGPl8F,KAAKmrE,UAAUnrE,KAAK+hJ,gBAEtBz2E,cAAe,WAEbtrE,KAAKg1E,KAAKlgB,GAAiB90D,KAAKgiJ,QAChChiJ,KAAKg1E,KAAK3hB,GAAkBrzD,KAAKiiJ,SACjCjiJ,KAAKg1E,KAAKvhB,GAAoBzzD,KAAK6gJ,WACnC7gJ,KAAKg1E,KAAKnhB,GAAmB7zD,KAAK8gJ,UAE9B9gJ,KAAK8hJ,YACP9hJ,KAAK8hJ,UAAU1c,WACfplI,KAAK8hJ,UAAY,OAGrB9kE,QAAS,WACP,IAAInI,EAAS70E,KAKbA,KAAKmrE,WAAU,WAEb,IAAI+2E,EAAYrtE,EAAOstE,eAGvBttE,EAAOktE,gBAGP,IAAIxiJ,EAAUwkI,GAAWlvD,IAAWkvD,GAAWlvD,EAAO1C,SAElDiwE,EAAWvtE,EAAOitE,UAAY,IAAII,EAAU,CAC9C/hJ,OAAQ00E,EAER/0E,SAAUP,QAAW4C,IAGvBigJ,EAASnD,WAAWpqE,EAAOyoE,cAE3B8E,EAASztE,IAAI9e,GAAiBgf,EAAO0qC,QACrC6iC,EAASztE,IAAI7e,GAAkB+e,EAAO2qC,SACtC4iC,EAASztE,IAAIrgB,GAAiBugB,EAAOwtE,QACrCD,EAASztE,IAAItgB,GAAmBwgB,EAAO4qC,UACvC2iC,EAASztE,IAAIjhB,GAAqBmhB,EAAOytE,YACzCF,EAASztE,IAAI7gB,GAAoB+gB,EAAO0tE,WAEpC1tE,EAAO2sE,KAET3sE,EAAOgsE,YAIThsE,EAAOF,IAAI7f,GAAiB+f,EAAOmtE,QAGnCntE,EAAOF,IAAIthB,GAAkBwhB,EAAOotE,SAGpCptE,EAAOF,IAAIlhB,GAAoBohB,EAAOgsE,WAGtChsE,EAAOF,IAAI9gB,GAAmBghB,EAAOisE,UAGjCjsE,EAAOhK,WACTu3E,EAASh4E,WAIfpvD,QAAS,CACPmnI,aAAc,WAEZ,OAAO3E,IAETuE,cAAe,WAMb/hJ,KAAKwiJ,SAASxiJ,KAAKsmE,iBAAmBtmE,KAAK0vE,QAG7C8yE,SAAU,SAAkBngJ,GAC1BA,EAAQsjD,GAAkBtjD,GAAS,GAAKA,EAEpCrC,KAAK2hJ,aAAet/I,IACtBrC,KAAK2hJ,WAAat/I,IAGtBogJ,WAAY,SAAoBpgJ,GAC9BA,EAAQsjD,GAAkBtjD,GAAS,GAAKA,EAEpCrC,KAAK4hJ,eAAiBv/I,IACxBrC,KAAK4hJ,aAAev/I,IAIxBk9G,OAAQ,SAAgBlP,GAEtBrwG,KAAKirE,MAAMpV,GAAiBw6C,GAExBA,IACFrwG,KAAK6qE,WAAawlC,EAAQlC,mBAG9BqR,QAAS,SAAiBnP,GAExBrwG,KAAK6qE,WAAY,EACjB7qE,KAAKirE,MAAMnV,GAAkBu6C,IAE/BgyC,OAAQ,SAAgBhyC,GACtBrwG,KAAKirE,MAAM3W,GAAiB+7C,IAE9BoP,SAAU,SAAkBpP,GAE1BrwG,KAAKirE,MAAM5W,GAAmBg8C,GAC9BrwG,KAAK6qE,WAAY,GAEnBy3E,WAAY,SAAoBjyC,GAG1BA,GAAWA,EAAQj7F,OAASs+C,KAC9B1zD,KAAKirE,MAAMw2E,IAA0B,GACrCzhJ,KAAKirE,MAAMvX,GAAqB28C,KAGpCkyC,UAAW,SAAmBlyC,GAGxBA,GAAWA,EAAQj7F,OAAS0+C,KAC9B9zD,KAAKirE,MAAMw2E,IAA0B,GACrCzhJ,KAAKirE,MAAMnX,GAAoBu8C,KAInC2xC,OAAQ,YACLhiJ,KAAK6qE,WAAa7qE,KAAK8hJ,WAAa9hJ,KAAK8hJ,UAAU13E,QAEtD63E,QAAS,WACPjiJ,KAAK6qE,WAAa7qE,KAAK8hJ,WAAa9hJ,KAAK8hJ,UAAUj1C,QAErDg0C,UAAW,WACT7gJ,KAAK8hJ,WAAa9hJ,KAAK8hJ,UAAU1D,WAEnC0C,SAAU,WACR9gJ,KAAK8hJ,WAAa9hJ,KAAK8hJ,UAAU/pI,WAGrC5Y,OAAQ,SAAgB2B,GAKtB,OAAOA,OC/PA4hJ,GAAiCj6F,EAAAA,WAAAA,OAAW,CACrDr+C,KAAMkoD,GACNs9E,QAAS2M,GACThwE,SAAU,CACR0vE,aAAc,WACZ,MAAO,YAGXjhI,QAAS,CACPshI,eAAgB,SAAwBx7I,GACtC,IAAI4uE,EAAQ1vE,KAAK0vE,MACb3jD,EAAU/rB,KAAK+rB,QAEfqkD,EAASpsC,GAAW0rC,GAASA,EAAM,IAAMA,EACzC5C,EAAW9oC,GAAWjY,GAAWA,EAAQ,IAAMA,EAE/C42H,EAAgB3iJ,KAAKwrB,OAASwY,GAAW0rC,GAAS,CACpD/G,UAAW+G,GACT,GACAkzE,EAAkB5iJ,KAAKwrB,OAASwY,GAAWjY,GAAW,CACxD48C,UAAW58C,GACT,GACJ,OAAOjrB,EAAE,MAAO,CACdwnE,YAAa,oBACbC,MAAOvoE,KAAK08I,gBACZl0E,MAAOxoE,KAAK48I,mBACZx1E,GAAIpnE,KAAK68I,mBACR,CAAC/7I,EAAE,MAAO,CACXwnE,YAAa,QACbyjB,IAAK,UACHpmC,GAAkByqB,IAAsB,KAAXA,EAEjCtvE,IAAMA,EAAE,KAAM,CACZwnE,YAAa,iBACbI,SAAUi6E,GACT,CAACvyE,IAAUzqB,GAAkBmnB,IAA0B,KAAbA,EAE7ChsE,IAAMA,EAAE,MAAO,CACbwnE,YAAa,eACbI,SAAUk6E,GACT,CAAC91E,UCnCC+1E,GAAyBp6F,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMioD,GACNu9E,QAAS4N,GACTjxE,SAAU,CAER0vE,aAAc,WACZ,MAAO,YAGXjhI,QAAS,CACPgkI,YAAa,WAEX,OAAO0D,OCtBb,SAASnqI,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAYpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIiuG,IAAgB,GAAI,CACpG/2H,QAAS84C,GAASxN,IAClB0sC,UAAWl/B,GAASxN,GAAkB,SACtCkmF,SAAU14E,GAASpN,GAAwBrE,OACxC5C,IAGMuyF,GAAwBt6F,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAMomD,GACNo/E,QAAS8R,GACTxrE,cAAc,EACd/oD,MAAOA,GACPnS,QAAS,CACPmnI,aAAc,WAEZ,OAAOU,IAETd,cAAe,WAKb/hJ,KAAKyiJ,WAAWziJ,KAAKsmE,iBAAmBtmE,KAAK+rB,SAC7C/rB,KAAKwiJ,SAASxiJ,KAAKsmE,cAAcvK,KAAoB/7D,KAAK0vE,WCvChE,SAASn3D,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAe3M,IAAIg7H,GAAa,iBAEbC,GAAiB,QAEjBC,GAAgB,CAClB3/E,OAAO,EACPm6E,OAAO,EACPj1E,OAAO,EACPhF,MAAM,EACN0/E,QAAQ,GAGNC,GAAS,UACTC,GAAW,YACXC,GAAc,sFACdC,GAAa,oCACbC,GAAU,UACVC,GAAc,WACdC,GAAc,WACdC,GAAW,YACXC,GAAY,UACZC,GAAW,MAGXC,GAAgB,SAAuBC,EAAUlzD,GAInD,IAAIxoC,EAAS,CACXqnB,WAAOvtE,EACP4pB,aAAS5pB,EACTsjI,QAAS,GAET1hC,UAAW,QACX83C,kBAAmB,OACnB/a,WAAW,EAEX7xD,WAAW,EACXjkE,OAAQ,EACR+0D,UAAU,EACVnpD,GAAI,KACJ4U,MAAM,EACN+kG,MAAOtsD,GAAmBzT,GAAc,QAAS,IACjD8+C,SAAU3tG,OAAOsiE,GAAmBzT,GAAc,WAAY,iBAC9DorF,gBAAiBn/E,GAAUwH,GAAmBzT,GAAc,kBAAmB,GAAI,GACnFia,QAASxG,GAAmBzT,GAAc,WAC1CgsF,YAAav4E,GAAmBzT,GAAc,gBAsBhD,GAnBI3K,GAASk+F,EAAS1hJ,QAAUyjD,GAASi+F,EAAS1hJ,QAGvC2hC,GAAW+/G,EAAS1hJ,OAD7BgmD,EAAOt8B,QAAUg4H,EAAS1hJ,MAIjB2jD,GAAc+9F,EAAS1hJ,SAEhCgmD,EAASxT,GAAcA,GAAc,GAAIwT,GAAS07F,EAAS1hJ,QAIzD0hJ,EAAS7vI,MAGXm0C,EAAOy4E,UAAY,IAAI7/H,OAAO8iJ,EAAS7vI,MAIrCuxC,GAAY4C,EAAOqnB,OAAQ,CAE7B,IAAI15D,EAAO66E,EAAM76E,MAAQ,GACzBqyC,EAAOqnB,MAAQ15D,EAAKwyD,QAAU7iB,GAAkB3vC,EAAKwyD,MAAMkH,OAAS15D,EAAKwyD,MAAMkH,WAAQvtE,EAIpF6jD,GAAcqC,EAAOkoE,SACxBloE,EAAOkoE,MAAQ,CACbnmD,KAAM3N,GAAUpU,EAAOkoE,MAAO,GAC9B1jB,KAAMpwC,GAAUpU,EAAOkoE,MAAO,KAKlCjmH,GAAKy5I,EAASpyD,WAAWzkF,SAAQ,SAAU4gC,GACzC,GAAIs1G,GAAO9uI,KAAKw5B,GAEdua,EAAO78B,MAAO,OACT,GAAI63H,GAAS/uI,KAAKw5B,GAEvBua,EAAO4mB,WAAY,OACd,GAAIq0E,GAAYhvI,KAAKw5B,GAE1Bua,EAAO07C,UAAYj2D,OACd,GAAIy1G,GAAWjvI,KAAKw5B,GAEzBA,EAAc,iBAARA,EAAyB,eAAiBA,EAChDua,EAAOinD,SAAWxhE,OACb,GAAI01G,GAAQlvI,KAAKw5B,GAAM,CAE5B,IAAIyiF,EAAQ9zD,GAAU3uB,EAAIp8B,MAAM,GAAI,GACpC22C,EAAOkoE,MAAMnmD,KAAOmmD,EACpBloE,EAAOkoE,MAAM1jB,KAAO0jB,OACXkzB,GAAYnvI,KAAKw5B,GAE1Bua,EAAOkoE,MAAMnmD,KAAO3N,GAAU3uB,EAAIp8B,MAAM,GAAI,GACnCgyI,GAAYpvI,KAAKw5B,GAE1Bua,EAAOkoE,MAAM1jB,KAAOpwC,GAAU3uB,EAAIp8B,MAAM,GAAI,GACnCiyI,GAASrvI,KAAKw5B,GAEvBua,EAAOr9C,OAASyxD,GAAU3uB,EAAIp8B,MAAM,GAAI,GAC/BkyI,GAAUtvI,KAAKw5B,KAExBua,EAAOoiB,QAAU38B,EAAIp8B,MAAM,IAAM,SAKrC,IAAIsyI,EAAmB,GA6BvB,OA3BA/iJ,GAAOonD,EAAOo9E,SAAW,IAAI31H,OAAO23C,IAAUvmC,KAAK,KAAKiS,OAAO1M,cAAczH,MAAM6kI,IAAU32I,SAAQ,SAAUu4H,GACzGyd,GAAczd,KAChBue,EAAiBve,IAAW,MAIhCn7H,GAAKy5I,EAASpyD,WAAWzkF,SAAQ,SAAU4gC,GACzCA,EAAMA,EAAIrnB,cAENy8H,GAAcp1G,KAEhBk2G,EAAiBl2G,IAAO,MAI5Bua,EAAOo9E,QAAUn7H,GAAK05I,GAAkB9iI,KAAK,KAEtB,SAAnBmnC,EAAOo9E,UAETp9E,EAAOo9E,QAAU,SAGdp9E,EAAOo9E,UAEVp9E,EAAOo9E,QAAUwd,IAGZ56F,GAIL47F,GAAe,SAAsBv1I,EAAIq1I,EAAUlzD,GACrD,GAAK/hE,EAAL,CAKA,IAAIu5B,EAASy7F,GAAcC,EAAUlzD,GAErC,IAAKniF,EAAGs0I,IAAa,CACnB,IAAI7wE,EAAU0e,EAAM9wF,QACpB2O,EAAGs0I,IAAc,IAAIH,GAAU,CAC7B1iJ,OAAQgyE,EAERryE,SAAUikI,GAAW5xD,OAAShwE,KAEhCuM,EAAGs0I,IAAYkB,iBAAmB,GAClCx1I,EAAGs0I,IAAYruE,IAAI9e,IAAiB,WAKlC,IAAI7/C,EAAO,GAEPguB,GAAWqkB,EAAOqnB,SACpB15D,EAAK05D,MAAQrnB,EAAOqnB,MAAMhhE,IAGxBs1B,GAAWqkB,EAAOt8B,WACpB/V,EAAK+V,QAAUs8B,EAAOt8B,QAAQrd,IAG5BpE,GAAK0L,GAAMrT,OAAS,GACtB+L,EAAGs0I,IAAY/D,WAAWjpI,MAKhC,IAAIA,EAAO,CACT05D,MAAOrnB,EAAOqnB,MACd3jD,QAASs8B,EAAOt8B,QAChBwxH,SAAUl1F,EAAOo9E,QACjB1hC,UAAW17C,EAAO07C,UAClB83C,kBAAmBxzF,EAAOwzF,kBAC1BpxE,QAASpiB,EAAOoiB,QAChB+xE,YAAan0F,EAAOm0F,YACpB1b,UAAWz4E,EAAOy4E,UAClBxxB,SAAUjnD,EAAOinD,SACjBihB,MAAOloE,EAAOkoE,MACdvlH,OAAQq9C,EAAOr9C,OACfs+D,QAASjhB,EAAO4mB,UAChBr4D,GAAIyxC,EAAOzxC,GACXmpD,SAAU1X,EAAO0X,SACjBv0C,KAAM68B,EAAO78B,MAEX24H,EAAUz1I,EAAGs0I,IAAYkB,iBAG7B,GAFAx1I,EAAGs0I,IAAYkB,iBAAmBluI,GAE7Bo9D,GAAWp9D,EAAMmuI,GAAU,CAE9B,IAAIC,EAAU,CACZ93I,OAAQoC,GAEVpE,GAAK0L,GAAM9I,SAAQ,SAAUo5C,GAEvBtwC,EAAKswC,KAAU69F,EAAQ79F,KAEzB89F,EAAQ99F,GAAkB,UAATA,GAA6B,YAATA,IAAuBtiB,GAAWhuB,EAAKswC,IAE3DtwC,EAAKswC,GAAtBtwC,EAAKswC,GAAM53C,OAGfA,EAAGs0I,IAAY/D,WAAWmF,MAK1BC,GAAgB,SAAuB31I,GACrCA,EAAGs0I,MACLt0I,EAAGs0I,IAAY5d,WACf12H,EAAGs0I,IAAc,aAGZt0I,EAAGs0I,KAIDsB,GAAY,CACrBh3I,KAAM,SAAcoB,EAAIq1I,EAAUlzD,GAChCozD,GAAav1I,EAAIq1I,EAAUlzD,IAI7BgB,iBAAkB,SAA0BnjF,EAAIq1I,EAAUlzD,GAExDA,EAAM9wF,QAAQorE,WAAU,WACtB84E,GAAav1I,EAAIq1I,EAAUlzD,OAG/BiB,OAAQ,SAAgBpjF,GACtB21I,GAAc31I,KC3Qd61I,GAA+B/6F,GAAc,CAC/CP,WAAY,CACVq7F,UAAWA,MCDXE,GAA6Bh7F,GAAc,CAC7CR,WAAY,CACV+5F,SAAUA,IAEZ75F,QAAS,CACPq7F,gBAAiBA,MCGVp3H,GAAQs4C,GAAsB,CACvCg/E,SAAU5/E,GAAS9N,GAAmB,MACtC2wB,MAAO7iB,GAASxN,IAChBqtF,UAAW7/E,GAASxN,IACpB/lD,IAAKuzD,GAAS9M,GAAyB,MACvC8E,UAAWgI,GAAS9M,GAAyB,MAC7C4sF,aAAc9/E,GAAS9N,GAAmB,MAC1C+1D,UAAWjoD,GAAS9N,GAAmB,MACvC6tF,QAAS//E,GAAS9N,GAAmB,MACrC10D,MAAOwiE,GAAS9M,GAAyB,GACzC0S,QAAS5F,GAASxN,KACjB3G,IAGQm0F,GAA4Bp8F,EAAAA,WAAAA,OAAW,CAChDr+C,KAAMsmD,GACNia,OAAQ,CAAClE,IACTkT,OAAQ,CACNmrE,WAAY,CACV9/E,QAEA,WACE,MAAO,MAIb73C,MAAOA,GACPo/C,SAAU,CACRw4E,mBAAoB,WAClB,IAAIC,EAAmBhlJ,KAAKglJ,iBACxBjrE,EAAkB/5E,KAAK+5E,gBAC3B,MAAO,CAACA,EAAkB,MAAM94E,OAAO84E,GAAmB,GAAI/5E,KAAKilJ,iBAAmBD,EAAmB,uBAAyB,GAAIA,EAAmB,wBAA0B,KAErLE,kBAAmB,WACjB,MAAO,CACLrlF,MAAc7/D,KAAK45I,cAAgB55I,KAAKskF,YAAjC,IAAgD,MAG3Ds1D,cAAe,WACb,OAAOl9E,GAAQ18D,KAAKqC,MAAO,IAE7BiiF,YAAa,WAGX,IAAIhzE,EAAMorD,GAAQ18D,KAAKsR,MAAQorD,GAAQ18D,KAAK8kJ,WAAWxzI,IAAK,GAC5D,OAAOA,EAAM,EAAIA,EAAM,KAEzBq/G,kBAAmB,WAGjB,OAAO7kD,GAAQrP,GAAUz8D,KAAK68D,UAAWJ,GAAUz8D,KAAK8kJ,WAAWjoF,UAAW,IAAK,IAErFsoF,iBAAkB,WAChB,IAAItoF,EAAY78D,KAAK2wH,kBACjB1mF,EAAIiiC,GAAQ,GAAIrP,GACpB,OAAO59B,GAAQ,IAAMgL,EAAIjqC,KAAK45I,cAAgB55I,KAAKskF,YAAcr6C,EAAG4yB,IAEtEkd,gBAAiB,WAEf,OAAO/5E,KAAKyqE,SAAWzqE,KAAK8kJ,WAAWr6E,SAEzCw6E,gBAAiB,WAEf,OAAOr/F,GAAU5lD,KAAK4kJ,SAAW5kJ,KAAK4kJ,QAAU5kJ,KAAK8kJ,WAAWF,UAAW,GAE7EI,iBAAkB,WAEhB,OAAOp/F,GAAU5lD,KAAKykJ,UAAYzkJ,KAAKykJ,SAAWzkJ,KAAK8kJ,WAAWL,WAAY,GAEhFW,qBAAsB,WAEpB,OAAOx/F,GAAU5lD,KAAK2kJ,cAAgB3kJ,KAAK2kJ,aAAe3kJ,KAAK8kJ,WAAWH,eAAgB,GAE5FU,kBAAmB,WAEjB,OAAOz/F,GAAU5lD,KAAK8sH,WAAa9sH,KAAK8sH,UAAY9sH,KAAK8kJ,WAAWh4B,YAAa,IAGrF3tH,OAAQ,SAAgB2B,GACtB,IAIIygI,EAJA75C,EAAQ1nF,KAAK0nF,MACbg9D,EAAY1kJ,KAAK0kJ,UACjB9K,EAAgB55I,KAAK45I,cACrBjpB,EAAoB3wH,KAAK2wH,kBAEzBjoD,EAAW,GAYf,OAVI1oE,KAAKmmE,oBACPo7D,EAAYvhI,KAAKsmE,gBACRohB,GAASg9D,EAClBh8E,EAAW4S,GAAWopE,EAAWh9D,GACxB1nF,KAAKolJ,qBACd7jB,EAAYvhI,KAAKmlJ,iBACRnlJ,KAAKqlJ,oBACd9jB,EAAYtiG,GAAQ26G,EAAejpB,IAG9B7vH,EAAE,MAAO,CACdwnE,YAAa,eACbC,MAAOvoE,KAAK+kJ,mBACZt4H,MAAOzsB,KAAKklJ,kBACZ18E,MAAO,CACLmD,KAAM,cACN,gBAAiB,IACjB,gBAAiBt4D,GAASrT,KAAKskF,aAC/B,gBAAiBrlD,GAAQ26G,EAAejpB,IAE1CjoD,SAAUA,GACT64D,MCtHP,SAAShpH,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAU3M,ICdI4gD,GDcA08E,GAAmB5+F,GAAK6+F,GAAmB,CAAC,QAAS,cAC9Cp4H,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIywG,IAAmB,GAAI,CACvGb,SAAU5/E,GAAS9N,IAAmB,GACtC6I,OAAQiF,GAASxN,IACjB/lD,IAAKuzD,GAAS9M,GAAyB,KACvC8E,UAAWgI,GAAS9M,GAAyB,GAC7C4sF,aAAc9/E,GAAS9N,IAAmB,GAC1C+1D,UAAWjoD,GAAS9N,IAAmB,GACvC6tF,QAAS//E,GAAS9N,IAAmB,MAClCtG,IAGM+0F,GAAyB/8F,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMqmD,GACNka,OAAQ,CAAClE,IACTqU,QAAS,WACP,MAAO,CACLgqE,WAAY9kJ,OAGhBmtB,MAAOA,GACPo/C,SAAU,CACRk5E,eAAgB,WACd,MAAO,CACL7lF,OAAQ5/D,KAAK4/D,QAAU,QAI7BzgE,OAAQ,SAAgB2B,GACtB,IAAI4kJ,EAAc1lJ,KAAKsmE,gBAQvB,OANKo/E,IACHA,EAAc5kJ,EAAE+jJ,GAAc,CAC5B13H,MAAOi4C,GAAWkgF,GAAkBtlJ,KAAKizF,WAItCnyF,EAAE,MAAO,CACdwnE,YAAa,WACb77C,MAAOzsB,KAAKylJ,gBACX,CAACC,OEnDJC,GAA8Bn8F,GAAc,CAC9CR,WAAY,CACVw8F,UAAWA,GACXX,aAAcA,MDJlB,SAAStsI,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAsB3M,IAAIokD,GAAa,YACb8uB,GAAuClzB,GAAuBxb,GAAe,iBAC7EyuC,GAAgCjzB,GAAuBxb,GAAe,UACtE4uC,GAAwBrzB,GAAiBvb,GAAe,SACxD6uC,GAA6BtzB,GAAiBvb,GAAe,cAE7Dsd,GAAkBlE,GAAe,UAAW,CAC9CxwD,KAAM2hD,GACNvP,cAAc,EACdlzB,MAAO4+B,KAEL6W,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAG5BnH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAa,GAAI,CACzH9B,UAAWrD,GAASxN,IACpBmhD,eAAgB3zC,GAASxN,IAEzBuuF,SAAU/gF,GAAS9N,IAAmB,GACtC8uF,gBAAiBhhF,GAASxN,GAAkB,QAC5C+0B,UAAWvnB,GAASxN,GAAkB,SACtC01B,UAAWloB,GAASrN,IAEpBsuF,WAAYjhF,GAASxN,IACrB22B,YAAanpB,GAASrN,IACtB82B,UAAWzpB,GAASxN,GAAkB,UACtCo2B,YAAa5oB,GAASrN,IACtBgqB,UAAW3c,GAASxN,GAAkB,UACtC46C,KAAMptC,GAAS9N,IAAmB,GAClCuyE,kBAAmBzkE,GAAS9N,IAAmB,GAC/CwyE,aAAc1kE,GAAS9N,IAAmB,GAC1CgvF,qBAAsBlhF,GAAS9N,IAAmB,GAClDyyE,eAAgB3kE,GAAS9N,IAAmB,GAC5CivF,SAAUnhF,GAAS9N,IAAmB,GACtCkvF,cAAephF,GAAS9N,IAAmB,GAC3CmvF,QAASrhF,GAAS9N,IAAmB,GACrC1lD,MAAOwzD,GAAS9N,IAAmB,GACnCovF,OAAQthF,GAASjN,IAA0B,GAC3CwuF,aAAcvhF,GAASrN,IACvB5jD,IAAKixD,GAASxN,GAAkB,OAChC8Q,YAAatD,GAASxN,GAAkB,QACxCqY,MAAO7K,GAASxN,IAChBwI,MAAOgF,GAASxN,IAChBktD,OAAQ1/C,GAAS9M,OACdnH,IAEDy1F,GAAoB,SAA2BvlJ,EAAG+4C,GAEpD,IAAI61B,EAAQ71B,EAAIysB,cAAcvK,GAAiBliB,EAAIu2C,YAAcv2C,EAAI61B,MAErE,OAAKA,EAIE5uE,EAAE,SAAU,CACjB0nE,MAAO,CACL5xD,GAAIijC,EAAImnC,OAAO,eAEhB,CAACtR,IAPK5uE,EAAE,SAUTwlJ,GAAoB,SAA2BxlJ,EAAG+4C,GACpD,GAAIA,EAAIosG,cACN,OAAOnlJ,IAGT,IAAIglJ,EAAajsG,EAAIisG,WACjB39E,EAActuB,EAAIsuB,YAClB0kC,EAAOhzD,EAAIgzD,KACf,OAAO/rG,EAAEsnE,GAAc,CACrBj7C,MAAO,CACL+6C,UAAW49E,EACX39E,YAAaA,GAEff,GAAI,CACFqB,MAAOokC,GAET9gB,IAAK,gBACJ,CAAClyC,EAAIysB,cAAc/M,KAA2Bz4D,EAAEkxE,OAGjDu0E,GAAe,SAAsBzlJ,EAAG+4C,GAC1C,GAAIA,EAAImsG,SACN,OAAOllJ,IAGT,IAAIgsE,EAAWjzB,EAAIysB,cAAchN,GAAkBzf,EAAIu2C,WAEvD,IAAKtjB,EAAU,CACb,IAAIsD,EAASi2E,GAAkBvlJ,EAAG+4C,GAC9B2sG,EAASF,GAAkBxlJ,EAAG+4C,GAClCizB,EAAWjzB,EAAIxoC,MAAQ,CAACm1I,EAAQp2E,GAAU,CAACA,EAAQo2E,GAGrD,OAAO1lJ,EAAE+4C,EAAI2nC,UAAW,CACtBlZ,YAAa,GAAGrnE,OAAOmrE,GAAY,WACnC7D,MAAO1uB,EAAI4zC,YACXnrF,IAAK,UACJwqE,IAGD25E,GAAa,SAAoB3lJ,EAAG+4C,GACtC,OAAO/4C,EAAE,MAAO,CACdwnE,YAAa,GAAGrnE,OAAOmrE,GAAY,SACnC7D,MAAO1uB,EAAIkzC,UACXzqF,IAAK,QACJ,CAACu3C,EAAIysB,cAAc3N,GAAmB9e,EAAIu2C,cAG3Cs2D,GAAe,SAAsB5lJ,EAAG+4C,GAC1C,IAAI42C,EAAU52C,EAAIysB,cAAcjN,GAAkBxf,EAAIu2C,WAEtD,OAAKK,EAIE3vF,EAAE+4C,EAAIy0C,UAAW,CACtBhmB,YAAa,GAAGrnE,OAAOmrE,GAAY,WACnC7D,MAAO1uB,EAAIm0C,YACX1rF,IAAK,UACJ,CAACmuF,IAPK3vF,KAUP6lJ,GAAgB,SAAuB7lJ,EAAG+4C,GAG5C,IAAImwC,EAAUu8D,GAAazlJ,EAAG+4C,GAE9B,OAAIA,EAAIo4D,OAASp4D,EAAIw3D,OACZrnB,EAGF,CAACA,EAASy8D,GAAW3lJ,EAAG+4C,GAAM6sG,GAAa5lJ,EAAG+4C,KAGnD+sG,GAAiB,SAAwB9lJ,EAAG+4C,GAC9C,IAAKA,EAAI+rG,SACP,OAAO9kJ,IAGT,IAAI+kJ,EAAkBhsG,EAAIgsG,gBAC1B,OAAO/kJ,EAAE,MAAO,CACdmoD,WAAY,CAAC,CACX7+C,KAAM,OACN/H,MAAOw3C,EAAIgxB,YAEbvC,YAAa,qBACbC,MAAOzzB,GAAgB,GAAI,MAAM7zC,OAAO4kJ,GAAkBA,GAC1Dz+E,GAAI,CACFqB,MAAO5uB,EAAIgtG,oBAONC,GAAwBr+F,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAMwmD,GACN+Z,OAAQ,CAACwJ,GAAY2M,GAAS/W,GAAYsK,GAAmB5N,IAC7DyP,cAAc,EACd/oD,MAAOA,GACPnX,KAAM,WACJ,IAAIi7E,IAAYjxF,KAAKiqE,IACrB,MAAO,CAELY,UAAWomB,EAEXogB,OAAQpgB,IAGZ1kB,SAAU,CACRw6E,gBAAiB,WACf,OAAO/mJ,KAAKkmJ,QAEZ,CACEr8E,KAAK,GACH,CACFA,KAAK,EACLf,WAAY,GACZC,iBAAkB,QAClBC,aAAc,OACdC,WAAY,OACZC,iBAAkB,QAClBC,aAAc,KAGlBinB,UAAW,WACT,IAAIyc,EAAO7sG,KAAK6sG,KACZx7F,EAAQrR,KAAKqR,MACb4/E,EAAUjxF,KAAK6qE,UACnB,MAAO,CACLgiC,KAAMA,EACNx7F,MAAOA,EACP4/E,QAASA,IAGb+1D,SAAU,WACR,IAAI5gF,EAAepmE,KAAKomE,aACpBC,EAASrmE,KAAKqmE,OAClB,OAAQrmE,KAAKgmJ,WAAahmJ,KAAKmmE,kBAAkB7M,QAAwBt5D,KAAKsmE,cAAcvK,GAAiB/7D,KAAKowF,UAAWhqB,EAAcC,KAAWrmE,KAAK0vE,QAE7Ju3E,QAAS,WACP,OAAOjnJ,KAAKgnJ,SAAWhnJ,KAAKghF,OAAO,aAAe,MAEpDxK,cAAe,WACb,OAAO3hC,GAAcA,GAAc,GAAI70C,KAAKy2E,SAAU,GAAI,CACxD7/D,GAAI5W,KAAKghF,SACTtK,SAAU,KACV/K,KAAM,SACN,aAAc3rE,KAAK4lJ,SAAW,OAAS,QACvC,cAAe5lJ,KAAK6qE,UAAY,KAAO,OACvC,aAAc7qE,KAAKkoE,WAAa,KAChC,kBAAmBloE,KAAKw4G,gBAAkBx4G,KAAKinJ,SAAW,SAIhEn8E,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,EAAU+I,GAC5E/I,IAAa+I,IACf9zE,KAAK6qE,UAAYE,MAEjBj2B,GAAgB8zB,GAAQ,aAAa,SAAmBmC,EAAU+I,GAChE/I,IAAa+I,IACf9zE,KAAK47F,UAAU7wB,GACf/qE,KAAKirE,MAAMf,GAAkBa,OAE7Bj2B,GAAgB8zB,GAAQ,UAAU,WACpC,IAAImC,EAAW5/D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC/E2oE,EAAW3oE,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAE9EnL,KAAK+lJ,sBAAwBh7E,EAASm8E,WAAapzE,EAASozE,UAC/DlnJ,KAAK6sG,UAELjkC,IACJwC,QAAS,WAEPprE,KAAKmnJ,gBAAkB,MAEzBnqE,QAAS,WACP,IAAItqC,EAAQ1yC,KAGZA,KAAK00E,aAAaumB,GAA+Bj7F,KAAKonJ,cACtDpnJ,KAAK00E,aAAawmB,GAAsCl7F,KAAKqnJ,YAE7DrnJ,KAAKmrE,WAAU,WACbz4B,EAAMkpD,UAAUlpD,EAAMm4B,eAK1Bud,UAAW,WACTpoF,KAAKi8F,YAEP3wB,cAAe,WACbtrE,KAAK6qE,WAAY,EACjB7qE,KAAKmnJ,gBAAkB,MAEzBnsI,QAAS,CACP6xF,KAAM,WACJ7sG,KAAK6qE,WAAY,GAEnB+wB,UAAW,WACT,IAAIjmF,EAAQxK,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKnL,KAAK6qE,UACrF7qE,KAAKi1E,WAAWmmB,GAAuBp7F,KAAKghF,SAAUrrE,IAExDsmF,SAAU,WACR,IAAItmF,EAAQxK,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAKnL,KAAK6qE,UACrF7qE,KAAKi1E,WAAWomB,GAA4Br7F,KAAKghF,SAAUrrE,IAE7DyxI,aAAc,SAAsBxwI,GAE9BA,GAAMA,IAAO5W,KAAKghF,WACpBhhF,KAAK6qE,WAAa7qE,KAAK6qE,YAG3Bw8E,WAAY,SAAoBzwI,GAC9B,IAAIi+D,EAAS70E,KAGT4W,GAAMA,IAAO5W,KAAKghF,UACpBhhF,KAAKmrE,WAAU,WACb0J,EAAOonB,SAASpnB,EAAOhK,eAI7B2S,UAAW,SAAmBlpD,GAC5B,IAAImkD,EAAUnkD,EAAMmkD,SAEfz4E,KAAKupI,cAAgB9wD,IAAY9F,IAAY3yE,KAAK6qE,WACrD7qE,KAAK6sG,QAGTg6C,gBAAiB,WACX7mJ,KAAK6qE,YAAc7qE,KAAKspI,mBAC1BtpI,KAAK6sG,QAKTy6C,eAAgB,WACd,IAAI/Z,EAAWpqE,GAAYnjE,KAAKsoF,MAAMv8D,SACtC/rB,KAAKunJ,aAAaha,EAAS5kI,UAAU,KAIvC6+I,kBAAmB,WACjB,IAAIja,EAAWpqE,GAAYnjE,KAAKsoF,MAAMv8D,SACtC/rB,KAAKunJ,aAAaha,EAAS,KAE7BR,cAAe,WAGb/sI,KAAKmnJ,gBAAkBloF,GAAiBnwC,EAAa,CAAChT,SAAS0jD,MAAQ,IAEvEx/D,KAAKqxG,QAAS,GAEhB7W,aAAc,SAAsB9rF,GAC7B6wD,GAAS7wD,EAAIuwD,OAChBj/D,KAAKunJ,aAAa74I,GAGpB1O,KAAKirE,MAAMnV,KAEb4kC,aAAc,WACZ16F,KAAKunJ,aAAavnJ,KAAKmnJ,iBACvBnnJ,KAAKmnJ,gBAAkB,KAEvBnnJ,KAAKqxG,QAAS,EACdrxG,KAAKirE,MAAM5W,KAEbkzF,aAAc,SAAsB74I,GAC7B1O,KAAKwpI,gBACRlmE,GAAa50D,KAInBvP,OAAQ,SAAgB2B,GACtB,IAAIioD,EAEAqjC,EAAYpsF,KAAKosF,UACjBvsB,EAAQ7/D,KAAK6/D,MACbsI,EAAcnoE,KAAKmoE,YACnB0C,EAAY7qE,KAAK6qE,UACjBs7E,EAAyB,KAAhBnmJ,KAAKmmJ,QAAuBnmJ,KAAKmmJ,OAC1CsB,EAAW3mJ,EAAEd,KAAK4T,IAAK,CACzB00D,YAAa8D,GACb7D,MAAO,EAAExf,EAAO,CACdo9F,QAAmB,IAAXA,GACPrxG,GAAgBiU,EAAM,UAAU9nD,OAAOklJ,GAASA,IAAqB,IAAXA,GAAkBrxG,GAAgBiU,EAAM,GAAG9nD,OAAOmrE,GAAY,UAAWpsE,KAAKqR,OAAQyjC,GAAgBiU,EAAM,MAAM9nD,OAAOmrF,GAAYA,GAAYt3C,GAAgBiU,EAAM,QAAQ9nD,OAAOknE,GAAcA,GAAcpf,GAAO/oD,KAAKomJ,cAC3R35H,MAAO,CACLozC,MAAOA,GAET2I,MAAOxoE,KAAKw2E,cACZvtB,WAAY,CAAC,CACX7+C,KAAM,OACN/H,MAAOwoE,IAETkhB,IAAK,WACJ,CAAC46D,GAAc7lJ,EAAGd,QACrBynJ,EAAW3mJ,EAAE,aAAc,CACzBqsB,MAAOntB,KAAK+mJ,gBACZ3/E,GAAI,CACFonE,YAAaxuI,KAAK+sI,cAClBlyC,WAAY76F,KAAKw6F,aACjBO,WAAY/6F,KAAK06F,eAElB,CAAC+sD,IACJ,IAAI/Y,EAAY5tI,EAAE0oE,GAAc,CAC9Br8C,MAAO,CACLm8C,OAAQtpE,KAAKkmJ,UAEd,CAACU,GAAe9lJ,EAAGd,QAClBouI,EAActtI,IACdutI,EAAiBvtI,IAqBrB,OAnBId,KAAK4lJ,UAAY/6E,IACnBujE,EAActtI,EAAE,MAAO,CACrB0nE,MAAO,CACLkO,SAAU,KAEZtP,GAAI,CACF7D,MAAOvjE,KAAKsnJ,kBAGhBjZ,EAAiBvtI,EAAE,MAAO,CACxB0nE,MAAO,CACLkO,SAAU,KAEZtP,GAAI,CACF7D,MAAOvjE,KAAKwnJ,sBAKX1mJ,EAAE,MAAO,CACdwnE,YAAa,kBACb77C,MAAO,CACL83F,OAAQvkH,KAAKukH,QAEf/7C,MAAO,CACLkO,SAAU,MAEZtP,GAAI,CACFoR,QAASx4E,KAAKw9E,YAEf,CAAC4wD,EAAaqZ,EAAUpZ,EAAgBK,OEjb3CgZ,GAA6Bl+F,GAAc,CAC7CR,WAAY,CACV89F,SAAUA,IAEZ59F,QAAS,CACPk1C,eAAgBA,MCRpB,SAAStpD,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAOpM,IAAImF,GAAQs4C,GAAsB,CACvCwJ,UAAWpK,GAASxN,GAAkB,QACtCuI,OAAQiF,GAASxN,IACjB9hD,KAAMsvD,GAASxN,IACfjiD,KAAMyvD,GAASxN,GAAkB,QACjCoT,QAAS5F,GAASxN,IAClBwI,MAAOgF,GAASxN,KACfxG,IAGQ82F,GAAyBl/F,EAAAA,WAAAA,OAAW,CAC7Cr+C,KAAMymD,GACNhxD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI6mB,EAEA55D,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACb5X,EAAO4X,EAAM5X,KACb05D,EAAY9hD,EAAM8hD,UAClBxE,EAAUt9C,EAAMs9C,QACpB,OAAO3pE,EAAE,MAAO6pD,GAAU30C,EAAM,CAC9BsyD,YAAa,aACb77C,MAAO,CACLozC,MAAOtqD,GAAQ4X,EAAM0yC,MACrBD,OAAQrqD,GAAQ4X,EAAMyyC,QAExB2I,OAAQqH,EAAS,GAAI96B,GAAgB86B,EAAQ,cAAc3uE,OAAOksB,EAAM/X,OAAO,GAAO0/B,GAAgB86B,EAAQ,sBAAsB3uE,OAAOguE,GAAYA,GAAYn6B,GAAgB86B,EAAQ,MAAM3uE,OAAOwpE,GAAUA,GAAUmF,SCnClO,SAASr3D,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAQpM,IAAImF,GAAQs4C,GAAsB,CACvCwJ,UAAWpK,GAASxN,GAAkB,QACtC+a,KAAMvN,GAASxN,IACfkZ,UAAW1L,GAAS1N,GAAkB,KACrCrG,IAGQ82F,GAA6Bn/F,EAAAA,WAAAA,OAAW,CACjDr+C,KAAM0mD,GACNjxD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI/yC,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACbilD,EAAOjlD,EAAMilD,KACbnD,EAAY9hD,EAAM8hD,UAClB4+C,EAAQ/sH,EAAEuxE,GAAO,CACnB/J,YAAa,kBACbn7C,MAAO0nB,GAAcA,GAAc,GAAI1nB,EAAMojD,WAAY,GAAI,CAC3D6B,KAAMA,MAGV,OAAOtxE,EAAE,MAAO6pD,GAAU30C,EAAM,CAC9BsyD,YAAa,2EACbC,MAAOzzB,GAAgB,GAAI,sBAAsB7zC,OAAOguE,GAAYA,KAClE,CAAC4+C,OCrCT,SAAS/4E,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EASpM,IAAImF,GAAQs4C,GAAsB,CACvCwJ,UAAWpK,GAASxN,IACpBgV,OAAQxH,GAASxN,GAAkB,QACnCwwF,QAAShjF,GAASxN,IAClBuI,OAAQiF,GAASxN,IACjBywF,SAAUjjF,GAAS9N,IAAmB,GACtC0T,QAAS5F,GAASxN,IAClBwI,MAAOgF,GAASxN,KACftG,IAGQg3F,GAA4Bt/F,EAAAA,WAAAA,OAAW,CAChDr+C,KAAM2mD,GACNlxD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI/yC,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACbk/C,EAASl/C,EAAMk/C,OACfxM,EAAQ1yC,EAAM0yC,MACdD,EAASzyC,EAAMyyC,OACfqP,EAAY9hD,EAAM8hD,UAClBxE,EAAUt9C,EAAMs9C,QAChBo9E,EAAU16H,EAAM06H,QAChBt3D,EAAOzvF,EAAE6mJ,GAAWh9F,GAAU30C,EAAM,CACtCmX,MAAO,CACL/X,KAAM,MACNyqD,MAAOA,EACPD,OAAQA,EACRqP,UAAWA,EACXxE,QAASA,GAEXlC,MAAOzzB,GAAgB,GAAI,YAAY7zC,OAAO4mJ,GAAUA,MAE1D,OAAO16H,EAAM26H,SAAWv3D,EAAOzvF,EAAEwrE,GAAS,CACxCn/C,MAAO,CACLk/C,OAAQA,IAET,CAACkkB,OCxCGy3D,GAAmBv/F,EAAAA,WAAAA,OAAW,CACvCztC,QAAS,CACPohG,YAAa,SAAqBhyG,GAEhC,IAAI69I,EAAajoJ,KAAKioJ,YAAc,GAIhCC,EAAUloJ,KAAKmoJ,SAAW,GAG9B,OAAQ1iG,GAAYwiG,EAAW79I,KAAUkI,GAAQ41I,EAAQ99I,KAAU89I,EAAQ99I,GAAMzH,OAAS,MClBhG,SAASmyC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAMpM,IAAImF,GAAQ,CACjBsiD,QAAS5K,GAASjN,IAA0B,IAInCwwF,GAAe3/F,EAAAA,WAAAA,OAAW,CACnCt7B,MAAOA,GACPo/C,SAAU,CACR87E,UAAW,WACT,IAAI54E,EAAUzvE,KAAKyvE,QAEnB,MAAmB,KAAZA,GAAwBA,GAEjC64E,gBAAiB,WACf,OAA0B,IAAnBtoJ,KAAKqoJ,WAEdE,oBAAqB,WACnB,IAAID,EAAkBtoJ,KAAKsoJ,gBAC3B,OAAOxzG,GAAgB,CACrB,kBAAmBwzG,GAClB,mBAAmBrnJ,OAAOjB,KAAKyvE,UAAW64E,GAAmBtoJ,KAAKqoJ,eC1B3E,SAAS9vI,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAYpM,IAAImF,GAAQ,CACjBq7H,SAAU3jF,GAAS9N,IAAmB,GACtC0xF,WAAY5jF,GAAS9N,IAAmB,GACxC2xF,WAAY7jF,GAAS9N,IAAmB,GACxCgnD,KAAMl5C,GAAS9N,IAAmB,GAClChwB,MAAO89B,GAAS9N,IAAmB,GACnC2mF,MAAO74E,GAAS9N,IAAmB,GACnC4xF,iBAAkB9jF,GAAS9N,IAAmB,GAC9C6xF,SAAU/jF,GAAS9N,IAAmB,GACtC8xF,WAAYhkF,GAASjN,IAA0B,GAC/C5uB,MAAO67B,GAAS9N,IAAmB,GAEnC+xF,aAAcjkF,GAASjN,IAA0B,GACjDgtF,QAAS//E,GAAS9N,IAAmB,GACrCgyF,WAAYlkF,GAASrN,IACrBwxF,aAAcnkF,GAASxN,KAId4xF,GAAqBxgG,EAAAA,WAAAA,OAAW,CACzCkiB,OAAQ,CAACwJ,IACT2G,QAAS,WACP,MAAO,CACLouE,QAASlpJ,OAKbk2E,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CAER48E,aAAc,WACZ,IAAIN,EAAa7oJ,KAAK6oJ,WACtB,MAAsB,KAAfA,GAA2BA,GAEpCO,eAAgB,WACd,IAAIN,EAAe9oJ,KAAK8oJ,aAExB,OADAA,EAAgC,KAAjBA,GAA6BA,GACrC9oJ,KAAKqoJ,WAAoBS,GAElCO,eAAgB,WACd,IAAIF,EAAenpJ,KAAKmpJ,aACxB,MAAO,CAACnpJ,KAAKopJ,eAAiB,wBAA0B,IAAqB,IAAjBD,EAAwB,mBAAqBA,EAAe,oBAAoBloJ,OAAOjB,KAAK6oJ,YAAc,IAAI/4I,OAAO23C,KAEnL6hG,cAAe,WACb,IAAIF,EAAiBppJ,KAAKopJ,eAC1B,OAAOA,IAAmBxjG,GAAUwjG,GAAkB,CACpDG,UAAWH,GACT,IAENI,aAAc,WACZ,IAAI9L,EAAQ19I,KAAK09I,MACbsL,EAAehpJ,KAAKgpJ,aAExB,OADAtL,EAAQ19I,KAAKypJ,cAAgB/L,EAAQA,GAAS19I,KAAK0pJ,cAAc/mJ,OAAS,IAAM3C,KAAK2pJ,aAC9E,CACP3pJ,KAAK+oJ,WACL,CACE,gBAAiB/oJ,KAAK4kJ,QACtB,cAAelH,EACf,aAAc19I,KAAK+9G,KACnB,iBAAkB/9G,KAAKwoJ,SACvB,mBAAoBxoJ,KAAKyoJ,WACzB,WAAYzoJ,KAAKgpC,MAEjBixF,OAAQj6H,KAAK4oJ,SACb,gBAAiB5oJ,KAAK+mC,MACtB,sBAAuB/mC,KAAK0oJ,WAC5B,6BAA8B1oJ,KAAK2oJ,kBAClCK,EAAe,GAAG/nJ,OAAOjB,KAAK+9G,KAAO,KAAO,QAAS,KAAK98G,OAAO+nJ,GAAgB,GACpFhpJ,KAAKuoJ,oBACLvoJ,KAAK4pJ,yBAEPC,WAAY,WACV,IAAI1tH,EAAQn8B,KAAK0pJ,cACbI,EAAgB9pJ,KAAK8pJ,cACrBC,EAAS/pJ,KAAKgqJ,eACdC,EAAuBjqJ,KAAKiqJ,qBAC5BC,EAAYlqJ,KAAKypJ,cAAgB,GAAK,CACxC,YAAap2I,GAASrT,KAAK2pJ,cAC3B,gBAAiBt2I,GAAS02I,EAAOpnJ,QAEjC,mBAAoB3C,KAAKy2E,QAAQ,qBAAuBz2E,KAAKsoF,MAAMmR,QAAUz5F,KAAKmqJ,UAAY,MAE5FC,EAAWjuH,GAAS2tH,GAAiBA,EAAcnnJ,OAASw5B,EAAMx5B,OAAS0Q,GAASy2I,EAAcnnJ,QAAU,KAChH,OAAOkyC,GAAcA,GAAcA,GAAc,CAG/C,gBAAiBu1G,GAChBpqJ,KAAKy2E,SAAU,GAAI,CAEpB7/D,GAAI5W,KAAKghF,SACTrV,KAAM3rE,KAAKy2E,QAAQ9K,MAAQ,SAC1Bu+E,GAAYD,KAGnB9qJ,OAAQ,SAAgB2B,GACtB,IAAIuoJ,EAAiBrpJ,KAAKqpJ,eACtBgB,EAAgBrqJ,KAAKqqJ,cACrBC,EAAiBtqJ,KAAKsqJ,eACtBC,EAAcvqJ,KAAKuqJ,YACnBC,EAAcxqJ,KAAKwqJ,YACnBC,EAAczqJ,KAAKyqJ,YACnB39E,EAAW,GAEX9sE,KAAKypJ,cACP38E,EAAS99D,KAAKhP,KAAKsmE,kBAGnBwG,EAAS99D,KAAKq7I,EAAgBA,IAAkB,MAEhDv9E,EAAS99D,KAAKs7I,EAAiBA,IAAmB,MAElDx9E,EAAS99D,KAAKu7I,EAAcA,IAAgB,MAE5Cz9E,EAAS99D,KAAKw7I,EAAcA,IAAgB,MAE5C19E,EAAS99D,KAAKy7I,EAAcA,IAAgB,OAI9C,IAAIC,EAAS5pJ,EAAE,QAAS,CACtBwnE,YAAa,gBACbC,MAAOvoE,KAAKwpJ,aACZhhF,MAAOxoE,KAAK6pJ,WACZvnJ,IAAK,WACJwqE,EAASh9D,OAAO23C,KAEnB,OAAO4hG,EAAe1mJ,OAAS,EAAI7B,EAAE,MAAO,CAC1CynE,MAAO8gF,EACP58H,MAAOzsB,KAAKspJ,cACZhnJ,IAAK,QACJ,CAACooJ,IAAWA,KCpJnB,SAASnyI,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAapM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAc,GAAIosC,IAAU0pE,IAAeC,KAAsBr5F,IAGpIs5F,GAA4BpiG,EAAAA,WAAAA,OAAW,CAChDr+C,KAAMmnD,GAGNoZ,OAAQ,CACRwJ,GAAY6zE,GAAkBlnE,GAASra,GACvCwiF,GAGAb,IACAj7H,MAAOA,GACPo/C,SAAU,CACRk9E,cAAe,WACb,OAAO,MCjCb,SAASlxI,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAU3M,IAAI8iI,GAAmB,SAA0BzoJ,GAC/C,OAAOA,EAAQ,GAIN8qB,GAAQs4C,GAAsB,CACvCwJ,UAAWpK,GAASxN,IACpB3e,QAASmsB,GAAS3N,GAAkB,EAAG4zF,IACvCppE,WAAY7c,GAAS9N,IAAmB,GACxCsiE,KAAMx0D,GAAS3N,GAAkB,EAAG4zF,IACpCC,WAAYlmF,GAAS9N,IAAmB,GACxCi0F,WAAYnmF,GAAS1N,GAAkB,KACtCnG,IAGQi6F,GAA8BxiG,EAAAA,WAAAA,OAAW,CAClDr+C,KAAM4mD,GACNnxD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI/yC,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACb8hD,EAAY9hD,EAAM8hD,UAClBv2B,EAAUvrB,EAAMurB,QAChBwyG,EAAMpqJ,EAAE,KAAM,CAACA,EAAE6mJ,GAAW,CAC9Bx6H,MAAO,CACL8hD,UAAWA,OAGXk8E,EAAQrqJ,EAAE,KAAMs7D,GAAY1jB,EAASwyG,IACrCE,EAAMtqJ,EAAE,KAAM,CAACA,EAAE6mJ,GAAW,CAC9Bx6H,MAAO,CACL0yC,MAAO,MACPoP,UAAWA,OAGXo8E,EAAQvqJ,EAAE,KAAMs7D,GAAY1jB,EAAS0yG,IACrCE,EAASxqJ,EAAE,QAASs7D,GAAYjvC,EAAMksG,KAAMgyB,IAC5CE,EAAUp+H,EAAMu0D,WAAmC5gF,IAAtBA,EAAE,QAAS,CAACqqJ,IACzCK,EAASr+H,EAAM49H,WAAajqJ,EAAE,QAAS,CAACqqJ,IAAUrqJ,IACtD,OAAOA,EAAE+pJ,GAAclgG,GAAU30C,EAAM,CACrCmX,MAAO0nB,GAAc,GAAI1nB,EAAM69H,cAC7B,CAACO,EAAQD,EAAQE,OCjDdr+H,GAAQs4C,GAAsB,CACvCgmF,QAAS5mF,GAAS9N,IAAmB,IACpC9F,IAGQy6F,GAAgCjjG,EAAAA,WAAAA,OAAW,CACpDr+C,KAAM6mD,GACNpxD,YAAY,EACZstB,MAAOA,GACPhuB,OAAQ,SAAgB2B,EAAGioD,GACzB,IAAI/yC,EAAO+yC,EAAK/yC,KACZmX,EAAQ47B,EAAK57B,MACbw5C,EAAQ5d,EAAK4d,MACbD,EAAc3d,EAAK2d,YACnBL,EAASM,IACTP,EAAeM,GAAe,GAC9B0pB,EAAY,GAEhB,OAAIjjE,EAAMs+H,QACD3qJ,EAAE,MAAO6pD,GAAU30C,EAAM,CAC9BwyD,MAAO,CACLmD,KAAM,QACN,YAAa,SACb,aAAa,GAEfrD,YAAa,qBACbhmE,IAAK,YACHgkE,GAAcpM,GAAmBk2B,EAAWhqB,EAAcC,IAGzDC,GAAc3N,GAAmBy3B,EAAWhqB,EAAcC,MC/BjEslF,GAA8BniG,GAAc,CAC9CR,WAAY,CACV2+F,UAAWA,GACXC,cAAeA,GACfG,aAAcA,GACdkD,eAAgBA,GAChBS,iBAAkBA,MCVlBE,GAA6BpiG,GAAc,CAC7CR,WAAY,CACVgqF,SAAUA,MCJd,SAASz6H,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAU3M,IAAI6jI,GAAQ,QACRC,GAAO,OAEA3+H,GAAQs4C,GAAsB,CACvCgF,QAAS5F,GAASxN,KACjBpF,IAMQ85F,GAAmBtjG,EAAAA,WAAAA,OAAW,CACvCr+C,KAAM6nD,GACN0Y,OAAQ,CAACwJ,GAAYgB,GAAgB1O,IACrCqU,QAAS,WACP,MAAO,CACLkxE,UAAWhsJ,OAGf25E,OAAQ,CACNsyE,gBAAiB,CACfjnF,QAEA,WACE,MAAO,MAIbkR,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CAER2/E,QAAS,WACP,OAAOlsJ,KAAKisJ,gBAAgBE,SAG9BC,QAAS,WACP,OAAOpsJ,KAAKisJ,gBAAgBI,SAG9BC,QAAS,WACP,OAAOtsJ,KAAKisJ,gBAAgBM,SAG9BC,OAAQ,WACN,OAAOxsJ,KAAKisJ,gBAAgBO,QAG9BnE,UAAW,WACT,OAAOroJ,KAAKisJ,gBAAgB5D,WAG9Bc,aAAc,WACZ,OAAOnpJ,KAAKisJ,gBAAgB9C,cAI9BC,eAAgB,WACd,OAAOppJ,KAAKisJ,gBAAgB7C,gBAK9BqD,gBAAiB,WACf,OAAQzsJ,KAAKqoJ,WAAaroJ,KAAKisJ,gBAAgBQ,iBAGjDzD,aAAc,WACZ,OAAOhpJ,KAAKisJ,gBAAgBjD,cAG9B0D,YAAa,WACX,OAAO1sJ,KAAKosJ,QAAUpsJ,KAAKisJ,gBAAgBS,YAAc,MAG3DC,YAAa,WACX,OAAO3sJ,KAAKssJ,QAAUtsJ,KAAKisJ,gBAAgBU,YAAc,MAE3DC,UAAW,WACT,OAAO5sJ,KAAK0sJ,cAAgBb,IAAS7rJ,KAAK2sJ,cAAgBd,KAElD7rJ,KAAK0sJ,cAAgBZ,IAAQ9rJ,KAAK2sJ,cAAgBb,IAEnD9rJ,KAAKwsJ,SAEdK,UAAW,WACT,IAAIpiF,EAAUzqE,KAAKyqE,QACnB,MAAO,CAACA,EAAU,GAAGxpE,OAAOjB,KAAK4sJ,UAAY,KAAO,QAAS,KAAK3rJ,OAAOwpE,GAAW,OAEtFqiF,QAAS,WACP,OAAOj4G,GAAc,CACnB82B,KAAM,OACL3rE,KAAKy2E,WAGZt3E,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,KAAM,CACbynE,MAAOvoE,KAAK6sJ,UACZrkF,MAAOxoE,KAAK8sJ,QAEZ1lF,GAAIpnE,KAAK42E,aACR52E,KAAKsmE,oBC9GDn5C,GAAQ,GAGR4/H,GAAiBtkG,EAAAA,WAAAA,OAAW,CACrCt7B,MAAOA,GACPnS,QAAS,CACPgyI,gBAAiB,WACf,IAAIjD,EAAS/pJ,KAAKgqJ,eACdv6E,EAAUzvE,KAAKyvE,QACfw9E,EAAejtJ,KAAKitJ,aACpBC,EAAcltJ,KAAKktJ,YACnBpsJ,EAAId,KAAK2/G,eAGb,OAAK3/G,KAAKmmE,kBAAkB5N,MAAqC,IAAZkX,GAAgC,KAAZA,EAIlE3uE,EAAEirJ,GAAK,CACZzjF,YAAa,qBACbC,MAAO,CAACvkC,GAAWipH,GAEnBA,EAAa,KAAM,cAAgBA,GACnCzkF,MAAOxkC,GAAWkpH,GAElBA,EAAY,KAAM,cAAgBA,EAClC5qJ,IAAK,gBACJtC,KAAKsmE,cAAc/N,GAAsB,CAC1C7f,QAASqxG,EAAOpnJ,OAChBonJ,OAAQA,KAdDjpJ,QCpBf,SAASyX,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAe3M,IAAImlI,GAAY,SAAmB9qJ,GAEjC,OADAA,EAAQo6D,GAAUp6D,EAAO,GAClBA,EAAQ,EAAIA,EAAQ,MAKzB+qJ,GAAgB,SAAuB/qJ,GACzC,OAAOsjD,GAAkBtjD,IAAU8qJ,GAAU9qJ,GAAS,GAI7C8qB,GAAQs4C,GAAsB,CACvC4nF,QAASxoF,GAAS9M,GAAyB,KAAMq1F,IACjDE,QAASzoF,GAAS9M,GAAyB,KAAMq1F,IACjDG,eAAgB1oF,GAASxN,IACzBm2F,aAAc3oF,GAAS9N,IAAmB,GAC1C0T,QAAS5F,GAASxN,KACjBhG,IAMQo8F,GAAmBhlG,EAAAA,WAAAA,OAAW,CACvCr+C,KAAMinD,GAENsZ,OAAQ,CAACwJ,GAAYgB,GAAgB1O,IACrCkT,OAAQ,CACNqyE,UAAW,CACThnF,QAEA,WACE,MAAO,MAIbkR,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CAER34D,IAAK,WACH,MAAO,MAETs4I,QAAS,WACP,OAAOlsJ,KAAKgsJ,UAAUE,SAExBE,QAAS,WACP,OAAOpsJ,KAAKgsJ,UAAUI,SAExBE,QAAS,WACP,OAAOtsJ,KAAKgsJ,UAAUM,SAExBE,OAAQ,WACN,OAAOxsJ,KAAKgsJ,UAAUQ,QAExBnE,UAAW,WACT,OAAOroJ,KAAKgsJ,UAAU3D,WAGxBqF,cAAe,WACb,OAAO1tJ,KAAKksJ,SAAWlsJ,KAAKqoJ,WAE9Bc,aAAc,WACZ,OAAOnpJ,KAAKgsJ,UAAU7C,cAKxBC,eAAgB,WACd,OAAOppJ,KAAKgsJ,UAAU5C,gBAIxBqD,gBAAiB,WACf,OAAOzsJ,KAAKgsJ,UAAUS,iBAOxBkB,eAAgB,WACd,OAAQ3tJ,KAAKqoJ,YAAcroJ,KAAKmpJ,cAAgBnpJ,KAAKysJ,kBAAoBzsJ,KAAKwtJ,cAEhFI,WAAY,WACV,OAAO5tJ,KAAKgsJ,UAAUvhF,SAExBiiF,YAAa,WACX,OAAO1sJ,KAAKgsJ,UAAUU,aAExBC,YAAa,WACX,OAAO3sJ,KAAKgsJ,UAAUW,aAExB3D,aAAc,WACZ,OAAOhpJ,KAAKgsJ,UAAUhD,cAExB6E,gBAAiB,WACf,OAAOV,GAAUntJ,KAAKqtJ,UAExBS,gBAAiB,WACf,OAAOX,GAAUntJ,KAAKstJ,UAIxBS,YAAa,WACX,IAAItjF,EAAUzqE,KAAKyqE,QACfiiF,EAAc1sJ,KAAK0sJ,YACnBiB,EAAiB3tJ,KAAK2tJ,eAQ1B,QANKljF,GAAWzqE,KAAKopJ,iBAAmBsD,IAAgBjiF,GAAWkjF,GAAkB3tJ,KAAKssJ,UAAYtsJ,KAAK2sJ,cAAgBliF,GAAWkjF,GAAkB3tJ,KAAKosJ,UAAYM,IAAgBjiF,GAAWkjF,GAAkB3tJ,KAAKksJ,WAGzNzhF,EAAUzqE,KAAK4tJ,YAAc5tJ,KAAKgpJ,cAAgB,mBAG7C,CAACv+E,EAAU,GAAGxpE,OAAOjB,KAAKwsJ,OAAS,KAAO,QAAS,KAAKvrJ,OAAOwpE,GAAW,KAAMkjF,EAAiB,wBAA0B,OAEpIK,UAAW,WACT,IAAIT,EAAiBvtJ,KAAKutJ,eAGtBU,EAAajuJ,KAAKosJ,SAAWpsJ,KAAKssJ,QAElCe,EAAUrtJ,KAAK6tJ,gBACfP,EAAUttJ,KAAK8tJ,gBAEfniF,EAAO,OACPnF,EAAQ,KAaZ,OAVIynF,GAEFtiF,EAAO,eACPnF,EAAQ6mF,EAAU,EAAI,UAAY,OACzBjuF,GAAMp/D,KAAK4T,IAAK,QAEzB+3D,EAAO,YACPnF,EAAQ8mF,EAAU,EAAI,WAAa,OAG9Bz4G,GAAcA,GAAc,CACjCw4G,QAASA,EACTC,QAASA,EACT3hF,KAAMA,EACNnF,MAAOA,GACNxmE,KAAKy2E,SAAU,GAAI,CAGpB,aAAcz2E,KAAK0tJ,gBAAkB/nG,GAAkB4nG,GAEvDl6I,GAASk6I,GAAkB,SAIjCpuJ,OAAQ,SAAgB2B,GACtB,IAAIgsE,EAAW,CAAC9sE,KAAKsmE,iBACrB,OAAOxlE,EAAEd,KAAK4T,IAAK,CACjB20D,MAAOvoE,KAAK+tJ,YACZvlF,MAAOxoE,KAAKguJ,UAEZ5mF,GAAIpnE,KAAK42E,aACR,CAAC52E,KAAK0tJ,cAAgB5sJ,EAAE,MAAO,CAACgsE,IAAaA,OCrLpD,SAASh4B,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAY3M,IAAIkmI,GAAuB,OACvBC,GAAwB33F,GAA0B03F,GAE3C/gI,GAAQ2nB,GAAgB,GAAIo5G,GAAsBrpF,GAAS9N,IAAmB,IAG9Eq3F,GAAY3lG,EAAAA,WAAAA,OAAW,CAChCt7B,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLq4I,WAAW,IAGf9hF,SAAU,CACRo9E,aAAc,WACZ,OAAO3pJ,KAAKkuJ,KAAyBluJ,KAAKquJ,YAG9CvjF,MAAO,CACLujF,UAAW,SAAmBtjF,EAAU+I,GAClC/I,IAAa+I,GACf9zE,KAAKirE,MAAMkjF,GAAuBpjF,KAIxC/vD,QAAS,CAEPszI,WAAY,SAAoBh6H,GAE9B,QAAIt0B,KAAK2pJ,eACPtiF,GAAU/yC,IACH,IAMXi6H,WAAY,WACV,IAAItB,EAAejtJ,KAAKitJ,aACpBC,EAAcltJ,KAAKktJ,YACnBpsJ,EAAId,KAAK2/G,eAEb,OAAI3/G,KAAK2pJ,cAAgB3pJ,KAAKmmE,kBAAkB3K,IACvC16D,EAAEirJ,GAAK,CACZzjF,YAAa,oBACbC,MAAO,CAACvkC,GAAWipH,GAEnBA,EAAa,KAAMzxF,IAAwByxF,GAC3CzkF,MAAOxkC,GAAWkpH,GAElBA,EAAY,KAAM1xF,IAAwB0xF,EAC1C5qJ,IAAK,mBACJ,CAACxB,EAAE2sJ,GAAK,CACTtgI,MAAO,CACLkgI,QAASrtJ,KAAKgqJ,eAAernJ,QAAU,OAExC,CAAC3C,KAAKsmE,cAAc9K,QAKlB,SCnEFruC,GAAQ,CACjBssE,QAAS50B,GAASxN,IAClBqiC,YAAa70B,GAASxN,KAMbm3F,GAAe/lG,EAAAA,WAAAA,OAAW,CACnCt7B,MAAOA,GACPo/C,SAAU,CACR49E,UAAW,WACT,OAAOnqJ,KAAKqoJ,UAAYroJ,KAAKghF,OAAO,aAAe,OAGvDhmE,QAAS,CACPqvI,cAAe,WACb,IAAI5wD,EAAUz5F,KAAKy5F,QACfC,EAAc15F,KAAK05F,YACnB54F,EAAId,KAAK2/G,eACT8uC,EAAW3tJ,IACX4tJ,EAAiB1uJ,KAAKmmE,kBAAkB1K,IAa5C,OAXIizF,GAAkBj1D,GAAWC,KAC/B+0D,EAAW3tJ,EAAE,UAAW,CACtB0nE,MAAO,CACL5xD,GAAI5W,KAAKmqJ,WAEXzhF,SAAUgmF,EAAiB,GAAKpzE,GAAWoe,EAAaD,GACxDn3F,IAAK,UACLypF,IAAK,WACJ/rF,KAAKsmE,cAAc7K,MAGjBgzF,MCrCFthI,GAAQ,GAGRwhI,GAAgBlmG,EAAAA,WAAAA,OAAW,CACpCztC,QAAS,CACPsvI,eAAgB,WACd,IAAIP,EAAS/pJ,KAAKgqJ,eACdlpJ,EAAId,KAAK2/G,eACTivC,EAAY9tJ,IAWhB,OATId,KAAKmmE,kBAAkBzK,MACzBkzF,EAAY9tJ,EAAE,WAAY,CACxBwB,IAAK,YACJ,CAACtC,KAAKsmE,cAAc5K,GAA0B,CAC/ChjB,QAASqxG,EAAOpnJ,OAChBonJ,OAAQA,OAIL6E,MCbFzhI,GAAQ,CACjB0hI,kBAAmBhqF,GAASxN,IAC5By3F,kBAAmBjqF,GAASxN,GAAkB,8CAC9C03F,UAAWlqF,GAASxN,IACpB23F,UAAWnqF,GAASxN,GAAkB,gCACtC43F,UAAWpqF,GAAS9N,IAAmB,IAI9Bm4F,GAAazmG,EAAAA,WAAAA,OAAW,CACjCt7B,MAAOA,GACPnS,QAAS,CACPm0I,YAAa,WACX,IAAIhzH,EAAQn8B,KAAK0pJ,cACb5oJ,EAAId,KAAK2/G,eACTyvC,EAAStuJ,IAEb,GAAId,KAAKivJ,aAAe9yH,GAA0B,IAAjBA,EAAMx5B,WAAmB3C,KAAK2pJ,eAAgB3pJ,KAAKmmE,kBAAkB3K,KAAwB,CAC5H,IAAIuuF,EAAS/pJ,KAAKgqJ,eACdqF,EAAarvJ,KAAKqvJ,WAClBL,EAAYhvJ,KAAKgvJ,UACjBD,EAAY/uJ,KAAK+uJ,UACjBD,EAAoB9uJ,KAAK8uJ,kBACzBD,EAAoB7uJ,KAAK6uJ,kBACzB5B,EAAejtJ,KAAKitJ,aACpBC,EAAcltJ,KAAKktJ,YACvBkC,EAASpvJ,KAAKsmE,cAAc+oF,EAAap2F,GAA0BD,GAAiB,CAClF61F,kBAAmBA,EACnBC,kBAAmBA,EACnBC,UAAWA,EACXC,UAAWA,EACXjF,OAAQA,EAER5tH,MAAOA,IAGJizH,IACHA,EAAStuJ,EAAE,MAAO,CAChBynE,MAAO,CAAC,cAAe,QACvBG,SAAU2mF,EAAa/zE,GAAWuzE,EAAmBC,GAAqBxzE,GAAWyzE,EAAWC,MAIpGI,EAAStuJ,EAAE2sJ,GAAK,CACdtgI,MAAO,CACLkgI,QAAStD,EAAOpnJ,QAAU,OAE3B,CAAC7B,EAAE,MAAO,CACX0nE,MAAO,CACLmD,KAAM,QACN,YAAa,WAEd,CAACyjF,MACJA,EAAStuJ,EAAEirJ,GAAK,CACdzjF,YAAa,oBACbC,MAAO,CAACvkC,GAAWipH,GAEnBA,EAAa,KAAM,aAAeA,GAClCzkF,MAAOxkC,GAAWkpH,GAElBA,EAAY,KAAM,aAAeA,EACjC5qJ,IAAK+sJ,EAAa,uBAAyB,eAC1C,CAACD,IAGN,OAAOA,MC3DFE,GAAwB,SAASA,EAAsBjtJ,GAChE,OAAIsjD,GAAkBtjD,GACb,GAKLU,GAASV,KAAW05C,GAAO15C,GACtBiI,GAAKjI,GAAOq5B,OAClB7rB,KAAI,SAAU0B,GACb,OAAO+9I,EAAsBjtJ,EAAMkP,OAClCzB,QAAO,SAAUksB,GAClB,QAASA,KAEV9a,KAAK,KAGD7N,GAAShR,IChClB,SAASkW,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAGpM,IAAIunI,GAAyB,gBACzBC,GAAwB,cACxBC,GAAyB,eAGzBC,GAAqB,CAACH,GAAwBC,GAAuBC,IAAwBhpG,QAAO,SAAUp5C,EAAQ/K,GAC/H,OAAOuyC,GAAcA,GAAc,GAAIxnC,GAAS,GAAIynC,GAAgB,GAAIxyC,GAAK,MAC5E,IAGQqtJ,GAAe,CAAC,IAAK,MAChC,SAAU,WACV,uCAAwC,wCAAyC,0CAA2C,gBAAiB,kBAAmB,kBAAmB,oBAAqB,6CAA6CzuI,KAAK,KCd/O0uI,GAAc,SAAqBC,EAAKC,EAAcC,GAC/D,IAAIC,EAAY7kJ,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAIhF8kJ,EAAe3lJ,GAAK0lJ,GAAWvpG,QAAO,SAAUp5C,EAAQ/K,GAC1D,IAAI4tJ,EAAQF,EAAU1tJ,GAClB6tJ,EAAoBD,EAAMC,kBAC1BlnC,EAAYjlF,GAAWmsH,GAE3BA,EAAoBA,EAEpBD,EAAMjnC,UAAY,KAMlB,OAJIjlF,GAAWilF,KACb57G,EAAO/K,GAAO2mH,EAAU4mC,EAAIvtJ,GAAMA,EAAKutJ,IAGlCxiJ,IACNk5C,GAAMspG,IAKLO,EAAc9lJ,GAAK2lJ,GAAcngJ,QAAO,SAAUxN,GACpD,OAAQotJ,GAAmBptJ,MAAUgQ,GAAQw9I,IAAiBA,EAAantJ,OAAS,GAAKw5D,GAAc2zF,EAAcxtJ,OAAWgQ,GAAQy9I,IAAkBA,EAAcptJ,OAAS,IAAMw5D,GAAc4zF,EAAeztJ,OAEtN,OAAOkkD,GAAKypG,EAAcG,IC3BjBC,GAAwB,SAA+BR,EAAKC,EAAcC,EAAeC,GAClG,OAAOjtJ,GAAS8sJ,GAAOP,GAAsBM,GAAYC,EAAKC,EAAcC,EAAeC,IAE3F,ICRF,SAASlpG,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAkBhL,IAAIgpG,GAA0B,8FAEnBnjI,GAAQ,CACjBrd,OAAQ+0D,GAAS,GAAG5jE,OAAO6lD,GAAmB0Q,IAAgC,CAACJ,MAC/Em5F,eAAgB1rF,GAAS9M,GAAyB,GAAG,SAAU11D,GAC7D,OAAOogD,EAAUnuC,KAAK3S,OAAOU,OAE/BmuJ,eAAgB3rF,GAAS5N,IACzBw5F,oBAAqB5rF,GAAS/N,GAAiB,IAC/C45F,qBAAsB7rF,GAAS/N,GAAiB,KAIvC65F,GAAiBloG,EAAAA,WAAAA,OAAW,CACrCt7B,MAAOA,GACPnX,KAAM,WACJ,MAAO,CAELq5I,YAAY,EAGZuB,YAAa5wJ,KAAK6wJ,eAAe7wJ,KAAK8P,UAG1Cy8D,SAAU,CACRukF,sBAAuB,WACrB,OAAO7vJ,GAAOjB,KAAKywJ,qBAAuB,IAAI3gJ,OAAO23C,KAEvDspG,uBAAwB,WACtB,OAAO9vJ,GAAOjB,KAAK0wJ,sBAAwB,IAAI5gJ,OAAO23C,KAExDupG,uBAAwB,WACtB,IAAIC,EAAKx0F,GAAUz8D,KAAKuwJ,eAAgB,GAOxC,OAJIU,EAAK,GACPz/G,GAAK8+G,GAAyBl/F,IAGzB6/F,GAETC,eAAgB,WACd,OAAOlxJ,KAAKmxJ,eAAgBnxJ,KAAKoxJ,qBAGnCC,cAAe,WACb,IAAIvH,EAAgB9pJ,KAAK8pJ,cACrBwH,EAAatxJ,KAAKsxJ,WAClBV,EAAc5wJ,KAAK4wJ,YACvB,MAAO,CACL9G,cAAeA,EACfwH,WAAYA,EACZV,YAAaA,IAIjBW,cAAe,WAEb,IAAIf,EAAiBxwJ,KAAKwwJ,eAC1B,OAAO7qF,GAAgB6qF,GAAkBA,EAAiB,MAI5D1G,cAAe,WAEb,IAAI3tH,EAAQn8B,KAAKsxJ,WACbE,EAAWxxJ,KAAK4wJ,YAIhBa,EAAWzxJ,KAAKkxJ,eAAiBlxJ,KAAK0xJ,gBAAgB1xJ,KAAKuxJ,cAAeC,IAAaxxJ,KAAK2xJ,uBAAuBH,GAAY,KAEnI,OAAOC,GAAYt1H,EAAMx5B,OAAS,EAAIw5B,EAAMrsB,OAAO2hJ,GAAYt1H,IAGnE2uC,MAAO,CAELkmF,uBAAwB,SAAgCjmF,IACjDA,GAAY/qE,KAAKqrE,gBACpBrrE,KAAK4xJ,mBACL5xJ,KAAK4wJ,YAAc5wJ,KAAK6wJ,eAAe7wJ,KAAK8P,UAIhDA,OAAQ,CAGN+hJ,MAAM,EACNl9H,QAAS,SAAiBm9H,GACxB,IAAIp/G,EAAQ1yC,KAER+xJ,EAAU/xJ,KAAKgxJ,uBACnBhxJ,KAAK4xJ,mBAEDG,GAAWA,EAAU,EAEvB/xJ,KAAKqrE,cAAgBl2C,YAAW,WAC9Bud,EAAMk+G,YAAcl+G,EAAMm+G,eAAeiB,KACxCC,GAGH/xJ,KAAK4wJ,YAAc5wJ,KAAK6wJ,eAAeiB,KAM7CT,cAAe,SAAuBtoG,GACpC,IAAI+gG,EAAgB/gG,EAAK+gG,cACrB8G,EAAc7nG,EAAK6nG,YAEnBvB,GAAa,EAEZuB,EAGMx9E,GAAWw9E,EAAa,KAAOx9E,GAAWw9E,EAAa,IAEhEvB,GAAa,EACJuB,IAETvB,GAAa,GANbA,GAAa,EASXA,GACFrvJ,KAAKirE,MAAMlX,GAAqB+1F,EAAeA,EAAcnnJ,QAG/D3C,KAAKqvJ,WAAaA,GAEpBA,WAAY,SAAoBtkF,EAAU+I,GACxC,IAAiB,IAAb/I,IAAmC,IAAb+I,EAAmB,CAG3C,IAAIw9E,EAAatxJ,KAAKsxJ,WACtBtxJ,KAAKirE,MAAMlX,GAAqBu9F,EAAYA,EAAW3uJ,WAI7DyoE,QAAS,WACP,IAAIyJ,EAAS70E,KAGbA,KAAKqrE,cAAgB,KAMrBrrE,KAAKmrE,WAAU,WACb0J,EAAOw6E,WAAat+I,QAAQ8jE,EAAO+7E,iBAGvCtlF,cAAe,WACbtrE,KAAK4xJ,oBAEP52I,QAAS,CACP42I,iBAAkB,WAChBpmF,aAAaxrE,KAAKqrE,eAClBrrE,KAAKqrE,cAAgB,MAEvBwlF,eAAgB,SAAwBW,GAEtC,OAAIxxJ,KAAKkxJ,gBAAmBlxJ,KAAKuxJ,eAAmB1rG,GAAS2rG,IAAa1qI,GAAS0qI,GAS5EjqG,GAAUiqG,GANR,IASXE,gBAAiB,SAAyBD,EAAUD,GAOlD,IAAKC,IAAaztH,GAAWytH,KAAcD,GAAYp+E,GAAWo+E,EAAU,KAAOp+E,GAAWo+E,EAAU,IACtG,OAAO,KAIT,IAAI7+I,EAAK,SAAYqd,GAGnB,OAAOyhI,EAASzhI,EAAMwhI,IAIxB,OAAO7+I,GAETg/I,uBAAwB,SAAgCH,GACtD,IAAIrpE,EAASnoF,KAIb,IAAKwxJ,IAAc3rG,GAAS2rG,KAAa1qI,GAAS0qI,GAEhD,OAAO,KAIT,IAAIQ,EAASR,EAEb,GAAI3rG,GAASmsG,GAAS,CAGpB,IAAIjsH,EAAUs3B,GAAam0F,GAAUx9I,QAAQmvC,EAAW,QAGxD6uG,EAAS,IAAInyI,OAAO,KAAK5e,OAAO8kC,EAAS,MAAO,KAIlD,IAAIpzB,EAAK,SAAYqd,GAenB,OADAgiI,EAAOphI,UAAY,EACZohI,EAAO19I,KAAK+7I,GAAsBrgI,EAAMm4D,EAAO2oE,sBAAuB3oE,EAAO4oE,uBAAwB5oE,EAAO8pE,qBAIrH,OAAOt/I,MCpQTu/I,GAAe,SAAsB5vJ,EAAKD,GAC5C,IAAI6tJ,EAAQ,KA0BZ,OAxBIrqG,GAASxjD,GAEX6tJ,EAAQ,CACN5tJ,IAAKA,EACLolF,MAAOrlF,GAEA2hC,GAAW3hC,GAEpB6tJ,EAAQ,CACN5tJ,IAAKA,EACL2mH,UAAW5mH,GAEJU,GAASV,IAClB6tJ,EAAQ3pG,GAAMlkD,GACd6tJ,EAAM5tJ,IAAM4tJ,EAAM5tJ,KAAOA,IACN,IAAVD,IAIT6tJ,EAAQ,CACN5tJ,IAAKA,IAIF4tJ,GAKEiC,GAAkB,SAAyBC,EAAYj2H,GAChE,IAAI4tH,EAAS,GA0Bb,GAxBIz3I,GAAQ8/I,IAEVA,EAAWtiJ,OAAO23C,IAAUv6C,SAAQ,SAAU0L,GAC5C,GAAIitC,GAASjtC,GACXmxI,EAAO/6I,KAAK,CACV1M,IAAKsW,EACL8uE,MAAO1qB,GAAUpkD,UAEd,GAAI7V,GAAS6V,IAAMA,EAAEtW,KAAOujD,GAASjtC,EAAEtW,KAE5CynJ,EAAO/6I,KAAKu3C,GAAM3tC,SACb,GAAI7V,GAAS6V,IAAyB,IAAnBtO,GAAKsO,GAAGjW,OAAc,CAE9C,IAAIL,EAAMgI,GAAKsO,GAAG,GACds3I,EAAQgC,GAAa5vJ,EAAKsW,EAAEtW,IAE5B4tJ,GACFnG,EAAO/6I,KAAKkhJ,OAOE,IAAlBnG,EAAOpnJ,QAAgB2P,GAAQ6pB,IAAUA,EAAMx5B,OAAS,EAAG,CAC7D,IAAI0vJ,EAASl2H,EAAM,GACnB7xB,GAAK+nJ,GAAQnlJ,SAAQ,SAAUqE,GACxBm+I,GAAmBn+I,IACtBw4I,EAAO/6I,KAAK,CACV1M,IAAKiP,EACLm2E,MAAO1qB,GAAUzrD,QAOzB,IAAIJ,EAAO,GACX,OAAO44I,EAAOj6I,QAAO,SAAU8I,GAC7B,OAAKzH,EAAKyH,EAAEtW,OACV6O,EAAKyH,EAAEtW,MAAO,EACdsW,EAAE8uE,MAAQ7hC,GAASjtC,EAAE8uE,OAAS9uE,EAAE8uE,MAAQ1qB,GAAUpkD,EAAEtW,MAC7C,OCnFb,SAASiW,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAc3M,IAAI8hD,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAM0hD,GACNtP,aAAc,KAEZuiB,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAI5BnH,GAAQy5B,GAAS/R,GAAcA,GAAc,GAAIm1B,IAAa,GAAIl1B,GAAgB,CAC3Fi1G,OAAQllF,GAAS/N,GAAiB,MAElC36B,MAAO0oC,GAAS/N,GAAiB,IAGjCw7F,WAAYztF,GAASxN,KACpB4S,GAAiBpF,GAAS/N,GAAiB,OAGnCy7F,GAAa9pG,EAAAA,WAAAA,OAAW,CACjCkiB,OAAQ,CAACZ,IACT58C,MAAOA,GACPnX,KAAM,WACJ,IAAImmB,EAAQn8B,KAAKm8B,MACjB,MAAO,CAGLm1H,WAAYh/I,GAAQ6pB,GAASA,EAAMzqB,QAAU,KAGjD66D,SAAU,CACRy9E,eAAgB,WAGd,OAAOmI,GAAgBnyJ,KAAK+pJ,OAAQ/pJ,KAAKsxJ,aAE3CW,kBAAmB,WAKjB,IAAI9/E,EAAUnyE,KAAKmyE,QACnB,OAAOnyE,KAAKgqJ,eAAevjG,QAAO,SAAUz+B,EAAKpP,GAI/C,GAFAoP,EAAIpP,EAAEtW,KAAOikD,GAAM3tC,GAEfA,EAAEqwG,UAAW,CAEf,IAAIA,EAAYrwG,EAAEqwG,UAEdpjE,GAASojE,IAAcjlF,GAAWmuC,EAAQ82C,IAC5CA,EAAY92C,EAAQ82C,GACVjlF,GAAWilF,KAErBA,OAAY9mH,GAId6lB,EAAIpP,EAAEtW,KAAK2mH,UAAYA,EAGzB,OAAOjhG,IACN,KAEL0hI,cAAe,WAEb,OAAQ1pJ,KAAKwyJ,gBAAkBxyJ,KAAKyyJ,aAAezyJ,KAAK8pJ,eAAiB9pJ,KAAKsxJ,YAE9E,IAAI5/I,SAEN3R,QAAS,WAEP,MAAO,CACL+P,OAAQ9P,KAAK4wJ,YACb8B,OAAQ1yJ,KAAK2yJ,YACbC,SAAU5yJ,KAAK6yJ,cACfha,QAAS/sE,GAAQrP,GAAUz8D,KAAK64I,QAAS,GAAI,GAC7C9C,YAAajqE,GAAQrP,GAAUz8D,KAAK+1I,YAAa,GAAI,GACrD+c,OAAQ9yJ,KAAK8yJ,UAInBhoF,MAAO,CACL3uC,MAAO,SAAe4uC,GAEpB/qE,KAAKsxJ,WAAah/I,GAAQy4D,GAAYA,EAASr5D,QAAU,IAG3Dg4I,cAAe,SAAuB3+E,EAAU+I,GACzCV,GAAWrI,EAAU+I,IACxB9zE,KAAKirE,MAAMf,GAAkBa,IAIjChrE,QAAS,SAAiBgrE,EAAU+I,GAE7BV,GAAWrI,EAAU+I,IACxB9zE,KAAKirE,MAAM1X,GAA4BwX,KAI7CiS,QAAS,WAEPh9E,KAAKirE,MAAMf,GAAkBlqE,KAAK0pJ,gBAEpC1uI,QAAS,CAEP+3I,kBAAmB,SAA2BzwJ,GAC5C,IAAI4tJ,EAAQlwJ,KAAKiyJ,kBAAkB3vJ,GAGnC,OAAO4tJ,EAAQA,EAAMjnC,eAAY9mH,MC7H5BgrB,GAAQ,CACjB4oH,YAAalxE,GAAS9M,GAAyB,GAC/C8gF,QAASh0E,GAAS9M,GAAyB,IAIlC+9E,GAAkBrtF,EAAAA,WAAAA,OAAW,CACtCt7B,MAAOA,GACPo/C,SAAU,CACRymF,YAAa,WACX,OAAOhzJ,KAAKmxJ,eAAgBnxJ,KAAKizJ,kBAEnCT,eAAgB,WACd,IAAIr2H,EAAQn8B,KAAKyyJ,aAAezyJ,KAAK8pJ,eAAiB9pJ,KAAKsxJ,YAAc,GACrEvb,EAAcjqE,GAAQrP,GAAUz8D,KAAK+1I,YAAa,GAAI,GACtD8C,EAAU/sE,GAAQrP,GAAUz8D,KAAK64I,QAAS,GAAI,GAQlD,OANI74I,KAAKgzJ,aAAena,IAEtB18G,EAAQA,EAAMzqB,OAAOqkI,EAAc,GAAK8C,EAAS9C,EAAc8C,IAI1D18G,MCjBT+2H,GAA4BnrF,GAAiB3W,GAAY+D,IACzDg+F,GAAiCnrF,GAAuB5W,GAAY8D,IAE7D/nC,GAAQ,CAGjB2lI,OAAQjuF,GAASxN,IAEjBl7B,MAAO0oC,GAASvN,GAA0B,IAC1C85F,oBAAqBvsF,GAAS9N,IAAmB,GACjDk8F,iBAAkBpuF,GAAS9N,IAAmB,GAC9Cq8F,kBAAmBvuF,GAAS9N,IAAmB,IAItCs8F,GAAgB5qG,EAAAA,WAAAA,OAAW,CACpCkiB,OAAQ,CAAC0J,IACTlnD,MAAOA,GACPo/C,SAAU,CACR4kF,YAAa,WACX,OAAOntH,GAAWhkC,KAAKm8B,QAEzBm3H,uBAAwB,WAKtB,IAAIz5G,EAAM,CACRi5G,OAAQ9yJ,KAAK8yJ,OACbhjJ,OAAQ,KACR4iJ,OAAQ,KACRE,SAAU,KACV/Z,QAAS,KACT9C,YAAa,MAkBf,OAfK/1I,KAAKoxJ,sBAERv3G,EAAI/pC,OAAS9P,KAAK4wJ,aAGf5wJ,KAAKozJ,oBACRv5G,EAAI64G,OAAS1yJ,KAAK2yJ,YAClB94G,EAAI+4G,SAAW5yJ,KAAK6yJ,eAGjB7yJ,KAAKizJ,mBACRp5G,EAAIg/F,QAAU74I,KAAK64I,QACnBh/F,EAAIk8F,YAAc/1I,KAAK+1I,aAGlBxvF,GAAM1M,KAGjBixB,MAAO,CAEL3uC,MAAO,SAAe4uC,IAEhB/qE,KAAKmxJ,aAAentH,GAAW+mC,KACjC/qE,KAAKmrE,UAAUnrE,KAAKuzJ,kBAGxBD,uBAAwB,SAAgCvoF,EAAU+I,GAE3DV,GAAWrI,EAAU+I,IACxB9zE,KAAKmrE,UAAUnrE,KAAKuzJ,mBAI1Bv2E,QAAS,WACP,IAAItqC,EAAQ1yC,MAGRA,KAAKmxJ,aAAiBnxJ,KAAKsxJ,YAAyC,IAA3BtxJ,KAAKsxJ,WAAW3uJ,QAE3D3C,KAAKuzJ,kBAIPvzJ,KAAK00E,aAAay+E,IAAgC,SAAUv8I,GACtDA,IAAO87B,EAAM97B,IAAMA,IAAO87B,GAC5BA,EAAM8gH,cAIZx4I,QAAS,CACPw4I,QAAS,WACP,IAAIr3H,EAAQn8B,KAAKm8B,MACbq3H,EAAUxzJ,KAAKwzJ,QAEnBxzJ,KAAKg1E,KAAK7f,GAAsBq+F,GAE5BxzJ,KAAK2pJ,aAEH3pJ,KAAKquJ,WAAaruJ,KAAKmxJ,aAEzBnxJ,KAAK20E,IAAIxf,GAAsBq+F,IAGjCxzJ,KAAKyzJ,gBAEDzzJ,KAAKmxJ,YACPnxJ,KAAKmrE,UAAUnrE,KAAKuzJ,iBAGpBvzJ,KAAKsxJ,WAAah/I,GAAQ6pB,GAASA,EAAMzqB,QAAU,KAKzDgiJ,kBAAmB,SAA2Bv3H,GAC5Cn8B,KAAKsxJ,WAAah/I,GAAQ6pB,GAASA,EAAMzqB,QAAU,GACnD1R,KAAKquJ,WAAY,EACjBruJ,KAAKirE,MAAM9V,IAEPn1D,KAAK4W,IACP5W,KAAKi1E,WAAWi+E,GAA2BlzJ,KAAK4W,KAGpD28I,gBAAiB,WACf,IAAI1+E,EAAS70E,KAGRA,KAAKmxJ,cAMNnxJ,KAAK2pJ,aAEP3pJ,KAAKmrE,UAAUnrE,KAAKwzJ,UAKtBxzJ,KAAKquJ,WAAY,EAEjBruJ,KAAKmrE,WAAU,WACb,IAEE,IAAIn1D,EAAO6+D,EAAO14C,MAAM04C,EAAO90E,QAAS80E,EAAO6+E,mBAE3CjjH,GAAUz6B,GAEZA,EAAK8S,MAAK,SAAUqT,GAElB04C,EAAO6+E,kBAAkBv3H,MAElB7pB,GAAQ0D,GAEjB6+D,EAAO6+E,kBAAkB19I,GAGG,IAAxB6+D,EAAO14C,MAAMx5B,SAMf6uC,GAAK,kFAAmF4f,IACxFyjB,EAAOw5E,WAAY,GAGvB,MAAO1uH,GAKP6R,GAAK,4BAA4BvwC,OAAO0+B,EAAEv1B,KAAM,MAAMnJ,OAAO0+B,EAAE5G,QAAS,KAAMq4B,IAC9EyjB,EAAOw5E,WAAY,EAEnBx5E,EAAOG,KAAK7f,GAAsB0f,EAAO2+E,mBCxLnD,SAAS1+G,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAc3M,ICdI2rI,GAAQ/qF,GDcRgrF,GAAe,CAAC,QAAS,QAAS,UAClCC,GAAY,OAEL1mI,GAAQ,CAEjB2mI,gBAAiBjvF,GAAS9N,IAAmB,GAC7Cg9F,WAAYlvF,GAASxN,GAAkB,SAAS,SAAUh1D,GACxD,OAAO85D,GAAcy3F,GAAcvxJ,MAErC2xJ,WAAYnvF,GAAS9N,IAAmB,GACxC+rB,gBAAiBje,GAASxN,GAAkB,WAInC48F,GAAkBxrG,EAAAA,WAAAA,OAAW,CACtCt7B,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLk+I,aAAc,GACdC,iBAAkB,IAGtB5nF,SAAU,CACR6nF,aAAc,WACZ,OAAOp0J,KAAKg0J,YAAch0J,KAAK+zJ,YAEjCM,sBAAuB,WACrB,OAAOr0J,KAAKo0J,eAAiBp0J,KAAK8zJ,iBAEpCQ,uBAAwB,WACtB,OAAO,GAETC,uBAAwB,WACtB,IAAIL,EAAel0J,KAAKk0J,aACxB,OAAOl0J,KAAKo0J,cAAgBF,GAAgBA,EAAavxJ,OAAS,GAAKuxJ,EAAankJ,KAAK03C,KAE3F+sG,wBAAyB,WACvB,OAAOx0J,KAAKo0J,cAAgBj4F,GAAc,CAAC,QAAS,SAAUn8D,KAAK+zJ,aAErEnK,uBAAwB,WACtB,IAAI7gG,EAEAqrG,EAAep0J,KAAKo0J,aACxB,OAAOrrG,EAAO,CACZ,qBAAsBqrG,GACrBt/G,GAAgBiU,EAAM,kBAAkB9nD,OAAOjB,KAAK+zJ,YAAaK,GAAet/G,GAAgBiU,EAAM,oBAAqB/oD,KAAKu0J,wBAAyBz/G,GAAgBiU,EAAM,8BAA+BqrG,IAAiBp0J,KAAKq0J,uBAAwBtrG,GAEjQkhG,qBAAsB,WACpB,IAAKjqJ,KAAKo0J,aACR,MAAO,GAGT,IAAIzoF,EAAO3rE,KAAKy2E,QAAQ9K,MAAQkoF,GAChC,MAAO,CACLloF,KAAMA,EAIN,uBAAwBA,IAASkoF,GAAYxgJ,GAASrT,KAAKw0J,yBAA2B,QAI5F1pF,MAAO,CACL4+E,cAAe,SAAuB3+E,EAAU+I,GAE9C,IAAI5hC,GAAQ,EAEZ,GAAIlyC,KAAKo0J,cAAgBp0J,KAAKk0J,aAAavxJ,OAAS,EAAG,CAErDuvC,EAAQ5/B,GAAQy4D,IAAaz4D,GAAQwhE,IAAa/I,EAASpoE,SAAWmxE,EAASnxE,OAE/E,IAAK,IAAIuH,EAAI,EAAGgoC,GAAShoC,EAAI6gE,EAASpoE,OAAQuH,IAE5CgoC,EAAQkhC,GAAWw8E,GAAY7kF,EAAS7gE,IAAK0lJ,GAAY97E,EAAS5pE,KAIjEgoC,GACHlyC,KAAKyzJ,iBAGTO,WAAY,SAAoBjpF,GAC9B/qE,KAAKyzJ,gBACLzzJ,KAAKy0J,qBAAqB1pF,IAE5BgpF,WAAY,WACV/zJ,KAAKyzJ,iBAEPY,sBAAuB,SAA+BtpF,GACpD/qE,KAAKyzJ,gBACLzzJ,KAAKy0J,sBAAsB1pF,IAE7BmpF,aAAc,SAAsBQ,EAAe5gF,GACjD,IAAIphC,EAAQ1yC,KAEZ,GAAIA,KAAKo0J,eAAiBhhF,GAAWshF,EAAe5gF,GAAW,CAC7D,IAAI33C,EAAQ,GAEZu4H,EAAcxnJ,SAAQ,SAAU8uB,EAAGggD,GAC7BhgD,GACFG,EAAMntB,KAAK0jC,EAAMg3G,cAAc1tE,OAInCh8E,KAAKirE,MAAMvV,GAAyBv5B,MAI1C2oG,YAAa,WAEP9kI,KAAKo0J,cACPp0J,KAAKy0J,sBAAqB,IAG9Bz5I,QAAS,CAEP25I,UAAW,SAAmBlyJ,GAE5B,GAAIzC,KAAKo0J,cAAgBtuG,GAASrjD,IAAUA,GAAS,GAAKA,EAAQzC,KAAK0pJ,cAAc/mJ,SAAW3C,KAAK40J,cAAcnyJ,GAAQ,CACzH,IAAIyxJ,EAAel0J,KAAKw0J,wBAA0Bx0J,KAAKk0J,aAAaxiJ,QAAU,GAC9EwiJ,EAAazxJ,IAAS,EACtBzC,KAAK60J,qBAAuB,EAC5B70J,KAAKk0J,aAAeA,IAGxBY,YAAa,SAAqBryJ,GAEhC,GAAIzC,KAAKo0J,cAAgBtuG,GAASrjD,IAAUzC,KAAK40J,cAAcnyJ,GAAQ,CACrE,IAAIyxJ,EAAel0J,KAAKk0J,aAAaxiJ,QACrCwiJ,EAAazxJ,IAAS,EACtBzC,KAAK60J,qBAAuB,EAC5B70J,KAAKk0J,aAAeA,IAGxBa,cAAe,WACb,IAAIpyJ,EAAS3C,KAAK0pJ,cAAc/mJ,OAE5B3C,KAAKo0J,cAAgBzxJ,EAAS,IAChC3C,KAAK60J,qBAAuB,EAC5B70J,KAAKk0J,aAAel0J,KAAKw0J,wBAA0Bp4F,GAAYz5D,GAAQ,GAAQ,EAAC,KAGpFiyJ,cAAe,SAAuBnyJ,GAEpC,SAAUqjD,GAASrjD,KAAUzC,KAAKk0J,aAAazxJ,KAEjDgxJ,cAAe,WAEbzzJ,KAAK60J,qBAAuB,EAC5B70J,KAAKk0J,aAAe,IAGtBc,qBAAsB,SAA8BvyJ,GAClD,GAAIzC,KAAKo0J,cAAgBp0J,KAAK40J,cAAcnyJ,GAAQ,CAClD,IAAIgoE,EAAUzqE,KAAK8iF,gBACnB,OAAOhuC,GAAgB,CACrB,wBAAwB,GACvB,GAAG7zC,OAAOjB,KAAK+9G,KAAO,KAAO,QAAS,KAAK98G,OAAOwpE,GAAUA,GAGjE,MAAO,IAETwqF,mBAAoB,SAA4BxyJ,GAC9C,MAAO,CACL,gBAAkBzC,KAAKo0J,aAAsBp0J,KAAK40J,cAAcnyJ,GAAS,OAAS,QAA5C,OAG1CgyJ,qBAAsB,SAA8BrtF,GAClD,IAAIp2D,EAASo2D,IAAOpnE,KAAK8zJ,gBAAkB,MAAQ,OAEnD9zJ,KAAKgR,GAAQqkD,GAAwBr1D,KAAKk1J,kBAE1Cl1J,KAAKgR,GAAQ+iD,GAAqB/zD,KAAKyzJ,eACvCzzJ,KAAKgR,GAAQuiD,GAA4BvzD,KAAKyzJ,gBAEhDyB,iBAAkB,SAA0BllI,EAAMvtB,EAAO6xB,GAEvD,GAAKt0B,KAAKo0J,eAAgBp0J,KAAK8zJ,gBAA/B,CAMA,IAAIC,EAAa/zJ,KAAK+zJ,WAClBI,EAAkBn0J,KAAKm0J,gBACvBD,EAAel0J,KAAKk0J,aAAaxiJ,QACjC2xE,GAAY6wE,EAAazxJ,GAE7B,GAAmB,WAAfsxJ,EACFG,EAAe,QACV,GAAmB,UAAfH,EACT,GAAII,GAAmB,GAAK7/H,EAAMmpD,SAAU,CAE1C,IAAK,IAAIzB,EAAMnQ,GAAQsoF,EAAiB1xJ,GAAQu5E,GAAOlQ,GAAQqoF,EAAiB1xJ,GAAQu5E,IACtFk4E,EAAal4E,IAAO,EAGtBqH,GAAW,OAEL/uD,EAAMw0D,SAAWx0D,EAAM29F,UAE3BiiC,EAAe,GACf7wE,GAAW,GAGTA,IAAUrjF,KAAKm0J,gBAAkB1xJ,GAIzCyxJ,EAAazxJ,GAAS4gF,EACtBrjF,KAAKk0J,aAAeA,OA/BlBl0J,KAAKyzJ,oBEhLF0B,GAAa,SAAoBtkJ,EAAOukJ,GAKjD,OAAOvkJ,EAAMhB,KAAI,SAAUiT,EAAGrgB,GAC5B,MAAO,CAACA,EAAOqgB,MACd4Y,KAAK,SAAU5Y,EAAGC,GACnB,OAAO/iB,KAAK8iB,EAAE,GAAIC,EAAE,KAAOD,EAAE,GAAKC,EAAE,IACpCzV,KAAK8nJ,IAAYvlJ,KAAI,SAAU8vB,GAC/B,OAAOA,EAAE,OCtBT01H,GAAiB,SAAwBhzJ,GAC3C,OAAIsjD,GAAkBtjD,GACb,GAGL0jD,GAAU1jD,GACLq6D,GAAQr6D,EAAOA,GAGjBA,GAYEizJ,GAAqB,SAA4BxyI,EAAGC,GAC7D,IAAIgmC,EAAO59C,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAC3EoqJ,EAAcxsG,EAAK2pG,OACnBA,OAAyB,IAAhB6C,EAAyB,KAAOA,EACzCC,EAAiBzsG,EAAKkgE,UACtBA,OAA+B,IAAnBusC,EAA4B,KAAOA,EAC/CC,EAAc1sG,EAAKs2B,OACnBA,OAAyB,IAAhBo2E,OAAyBtzJ,EAAYszJ,EAC9CC,EAAqB3sG,EAAK4sG,cAC1BA,OAAuC,IAAvBD,EAAgC,GAAKA,EACrDE,EAAgB7sG,EAAK8sG,SACrBA,OAA6B,IAAlBD,GAAmCA,EAG9CE,EAAKpvJ,GAAIoc,EAAG4vI,EAAQ,MACpBqD,EAAKrvJ,GAAIqc,EAAG2vI,EAAQ,MAaxB,OAXI1uH,GAAWilF,KACb6sC,EAAK7sC,EAAU6sC,EAAIpD,EAAQ5vI,GAC3BizI,EAAK9sC,EAAU8sC,EAAIrD,EAAQ3vI,IAM7B+yI,EAAKT,GAAeS,GACpBC,EAAKV,GAAeU,GAEhBh6G,GAAO+5G,IAAO/5G,GAAOg6G,IAAOjwG,GAASgwG,IAAOhwG,GAASiwG,GAGhDD,EAAKC,GAAM,EAAID,EAAKC,EAAK,EAAI,EAC3BF,GAAmB,KAAPC,GAAoB,KAAPC,EAE3B,EACEF,GAAmB,KAAPC,GAAoB,KAAPC,GAE1B,EAIHzG,GAAsBwG,GAAIE,cAAc1G,GAAsByG,GAAK12E,EAAQs2E,IFjEpF,SAASp9I,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAY3M,IAAIiuI,GAA0B,SAC1BC,GAA2B1/F,GAA0By/F,GACrDE,GAA4B,WAC5BC,GAA6B5/F,GAA0B2/F,GACvDE,GAAqB,MACrBC,GAAsB,OACtBC,GAAsB,OACtBC,GAAkB,CAACH,GAAoBC,GAAqBC,IAErDppI,IAASwmI,GAAS,CAC3B8C,aAAc5xF,GAASxN,GAAkB,2BACzCq/F,eAAgB7xF,GAASxN,GAAkB,0BAC3Cs/F,cAAe9xF,GAASxN,GAAkB,4BAC1Cu/F,gBAAiB/xF,GAAS9N,IAAmB,GAC7C8/F,eAAgBhyF,GAAS9N,IAAmB,GAK5C+/F,YAAajyF,GAAS9N,IAAmB,IACxCjiB,GAAgB6+G,GAAQsC,GAAyBpxF,GAASxN,KAAoBviB,GAAgB6+G,GAAQ,cAAe9uF,GAAS5N,KAAsBniB,GAAgB6+G,GAAQ,oBAAqB9uF,GAASpN,KAA0B3iB,GAAgB6+G,GAAQ,qBAAsB9uF,GAAS1N,GAAkB,CAC9S4/F,SAAS,KACNjiH,GAAgB6+G,GAAQwC,GAA2BtxF,GAAS9N,IAAmB,IAASjiB,GAAgB6+G,GAAQ,gBAAiB9uF,GAASxN,GAAkBg/F,IAAoB,SAAUh0J,GAC7L,OAAO85D,GAAcq6F,GAAiBn0J,OACnCyyC,GAAgB6+G,GAAQ,eAAgB9uF,GAAS9N,IAAmB,IAASjiB,GAAgB6+G,GAAQ,eAAgB9uF,GAAS9N,IAAmB,IAAS48F,IAGpJqD,GAAevuG,EAAAA,WAAAA,OAAW,CACnCt7B,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL28I,YAAa3yJ,KAAKi2J,KAA4B,GAC9CpD,cAAe7yJ,KAAKm2J,MAA8B,IAGtD5pF,SAAU,CACR0qF,aAAc,WACZ,OAAOj3J,KAAKmxJ,cAAgBnxJ,KAAKozJ,mBAAqBpzJ,KAAK62J,gBAE7DK,WAAY,WACV,OAAOl3J,KAAKgqJ,eAAej6I,MAAK,SAAU6I,GACxC,OAAOA,EAAEu+I,aAKb1E,YAAa,WACX,IAAIC,EAAS1yJ,KAAK2yJ,YACdC,EAAW5yJ,KAAK6yJ,cAChBxzE,EAASr/E,KAAKo3J,kBACdvB,EAAW71J,KAAKq3J,aAChBC,EAAct3J,KAAKs3J,YACnBL,EAAej3J,KAAKi3J,aACpB96H,GAASn8B,KAAK8pJ,eAAiB9pJ,KAAKsxJ,YAAc,IAAI5/I,QAEtDikJ,EAAgB9gH,GAAcA,GAAc,GAAI70C,KAAKu3J,oBAAqB,GAAI,CAChFC,MAAO,SAGT,GAAI9E,GAAUuE,EAAc,CAC1B,IAAI/G,EAAQlwJ,KAAKiyJ,kBAAkBS,IAAW,GAC1C+E,EAAkBvH,EAAMuH,gBACxBxuC,EAAYjlF,GAAWyzH,GAE3BA,EAAkBA,EAAkBz3J,KAAK+yJ,kBAAkBL,QAAUvwJ,EAErE,OAAOgzJ,GAAWh5H,GAAO,SAAUrZ,EAAGC,GACpC,IAAI1V,EAAS,KAsBb,OApBI22B,GAAWszH,KAIbjqJ,EAASiqJ,EAAYx0I,EAAGC,EAAG2vI,EAAQE,EAAU3pC,EAAW0sC,EAAet2E,KAKrE15B,GAAkBt4C,KAAsB,IAAXA,KAC/BA,EAASioJ,GAAmBxyI,EAAGC,EAAG,CAChC2vI,OAAQA,EACRzpC,UAAWA,EACX5pC,OAAQA,EACRs2E,cAAeA,EACfE,SAAUA,MAKNxoJ,GAAU,IAAMulJ,GAAY,EAAI,MAI5C,OAAOz2H,IAGX2uC,OAAQlC,GAAS,CAEfsuF,WAAY,SAAoBnsF,GAC1BA,EACE/qE,KAAKk3J,YACPl3J,KAAK20E,IAAIvgB,GAAyBp0D,KAAK03J,YAGzC13J,KAAKg1E,KAAK5gB,GAAyBp0D,KAAK03J,cAG3C5iH,GAAgB8zB,GAAQutF,IAA2B,SAAUprF,GAE1DA,IAAa/qE,KAAK6yJ,gBAItB7yJ,KAAK6yJ,cAAgB9nF,IAAY,MAC/Bj2B,GAAgB8zB,GAAQqtF,IAAyB,SAAUlrF,GAEzDA,IAAa/qE,KAAK2yJ,cAItB3yJ,KAAK2yJ,YAAc5nF,GAAY,OAC7Bj2B,GAAgB8zB,GAAQ,iBAAiB,SAAuBmC,EAAU+I,GAExE/I,IAAa+I,GACf9zE,KAAKirE,MAAMmrF,GAA4BrrF,MAEvCj2B,GAAgB8zB,GAAQ,eAAe,SAAqBmC,EAAU+I,GACpE/I,IAAa+I,GACf9zE,KAAKirE,MAAMirF,GAA0BnrF,MAErCnC,IACJwC,QAAS,WACHprE,KAAKk3J,YACPl3J,KAAK20E,IAAIvgB,GAAyBp0D,KAAK03J,aAG3C18I,QAAS,CAGP08I,WAAY,SAAoBp1J,EAAK4tJ,EAAO57H,EAAOqjI,GACjD,IAAIjlH,EAAQ1yC,KAEZ,GAAKA,KAAKk3J,cAKNS,IAAU33J,KAAK42J,iBAAnB,CAMA,IAAIgB,GAAc,EAEdC,EAAsB,WACxB,IAAIC,EAAgB5H,EAAM4H,eAAiBplH,EAAMolH,cAE7CA,IAAkBzB,GACpB3jH,EAAMmgH,eAAgB,EACbiF,IAAkBxB,KAC3B5jH,EAAMmgH,eAAgB,IAM1B,GAAI3C,EAAMiH,SAAU,CAClB,IAAIY,GAAW/3J,KAAKi3J,cAAgB/G,EAAM6H,QAAU7H,EAAM6H,QAAUz1J,EAEhEtC,KAAK2yJ,cAAgBoF,EAEvB/3J,KAAK6yJ,eAAiB7yJ,KAAK6yJ,eAG3B7yJ,KAAK2yJ,YAAcoF,EAEnBF,KAGFD,GAAc,OACL53J,KAAK2yJ,cAAgB3yJ,KAAK82J,cACnC92J,KAAK2yJ,YAAc,GACnBkF,IACAD,GAAc,GAGZA,GAEF53J,KAAKirE,MAAMhV,GAAyBj2D,KAAKD,WAI7Ci4J,mBAAoB,SAA4B11J,EAAK4tJ,EAAOyH,GAC1D,MAAO,CAEL,yBAA0BzH,EAAMiH,UAAYn3J,KAAKi4J,gBAAkBN,GAAU33J,KAAK42J,mBAGtFsB,iBAAkB,SAA0B51J,EAAK4tJ,EAAOyH,GACtD,IAAIQ,EAEAjB,EAAal3J,KAAKk3J,WAClBN,EAAkB52J,KAAK42J,gBACvB/D,EAAgB7yJ,KAAK6yJ,cACrBF,EAAc3yJ,KAAK2yJ,YACnBsE,EAAej3J,KAAKi3J,aAExB,IAAKC,GAAcS,GAAUf,EAE3B,MAAO,GAGT,IAAIO,EAAWjH,EAAMiH,SACjBY,EAAWd,EAA+G30J,EAA3D,QAApC61J,EAAiBjI,EAAM6H,eAAwC,IAAnBI,EAA4BA,EAAiB71J,EAEpH81J,EAAWjB,GAAYxE,IAAgBoF,EAAUlF,EAAgB,aAAe,YAAcsE,EAAW,OAAS,KAEtH,MAAO,CACL,YAAaiB,IAIjBC,iBAAkB,SAA0B/1J,EAAK4tJ,EAAOyH,GAEtD,IAAK33J,KAAKk3J,YAAcS,GAAU33J,KAAK42J,gBACrC,OAAO,KAGT,IAAIjE,EAAc3yJ,KAAK2yJ,YACnBE,EAAgB7yJ,KAAK6yJ,cACrB4D,EAAez2J,KAAKy2J,aACpBE,EAAgB32J,KAAK22J,cACrBQ,EAAWjH,EAAMiH,SAEjBmB,EAAe,GAEnB,GAAInB,EACF,GAAIxE,IAAgBrwJ,EAElBg2J,EAAezF,EAAgB4D,EAAeE,MACzC,CAIL2B,EAAezF,EAAgB8D,EAAgBF,EAE/C,IAAIqB,EAAgB93J,KAAK83J,eAAiB5H,EAAM4H,cAE5CA,IAAkBzB,GACpBiC,EAAe7B,EACNqB,IAAkBxB,KAC3BgC,EAAe3B,QAGT32J,KAAK82J,cAEfwB,EAAe3F,EAAc3yJ,KAAK02J,eAAiB,IAIrD,OAAOvjI,GAAKmlI,IAAiB,SGvRnC,SAAS//I,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB,CACvC8yF,wBAAyB1zF,GAAS1N,IAClCqhG,qBAAsB3zF,GAAS1N,KAC9B1F,IAMQgnG,GAAsBhwG,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAMqnD,GACNkZ,OAAQ,CAACwJ,GAAYgB,GAAgB1O,IACrCqU,QAAS,WACP,MAAO,CACLmxE,gBAAiBjsJ,OAGrB25E,OAAQ,CAENuvE,QAAS,CACPlkF,QAEA,WACE,MAAO,MAIbkR,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CAER4/E,QAAS,WACP,OAAO,GAGTK,OAAQ,WACN,OAAOxsJ,KAAKkpJ,QAAQnrC,MAGtBsqC,UAAW,WACT,OAAOroJ,KAAKkpJ,QAAQb,WAGtBc,aAAc,WACZ,OAAOnpJ,KAAKkpJ,QAAQC,cAItBC,eAAgB,WACd,OAAO,GAKTqD,gBAAiB,WACf,OAAQzsJ,KAAKqoJ,WAAaroJ,KAAKkpJ,QAAQJ,cAGzCE,aAAc,WACZ,OAAOhpJ,KAAKkpJ,QAAQF,cAEtB0P,kBAAmB,WACjB,OAAO14J,KAAKw4J,sBAAwBx4J,KAAKu4J,yBAE3CI,WAAY,WACV,OAAO9jH,GAAc,CACnB82B,KAAM,YACL3rE,KAAKy2E,UAEVmiF,WAAY,WACV,IAAIJ,EAAuBx4J,KAAKw4J,qBAChC,OAAOA,EAAuB3jH,GAAcA,GAAc,GAAI2jH,GAAuB,GAAI,CACvF5kJ,IAAK,UACF,KAGTzU,OAAQ,SAAgB2B,GACtB,IAAIkV,EAAO,CACTmX,MAAOntB,KAAK44J,WACZpwF,MAAOxoE,KAAK24J,YAYd,OATI34J,KAAK04J,mBAEP1iJ,EAAKoxD,GAAKpnE,KAAKu4J,yBAA2B,GAC1CviJ,EAAK6iJ,SAAW74J,KAAK42E,aAGrB5gE,EAAKoxD,GAAKpnE,KAAK42E,YAGV91E,EAAEd,KAAK04J,kBAAoB,mBAAqB,QAAS1iJ,EAAMhW,KAAKsmE,oBCvG3EwyF,GAAkB,CAAC,KAAM,KAAM,MAGxBC,GAAc,SAAqBzkI,GAE5C,IAAKA,IAAUA,EAAMhoB,OAEnB,OAAO,EAGT,IAAIoC,EAAK4lB,EAAMhoB,OAEf,GAAIoC,EAAGqxD,WAAqD,IAAzC+4F,GAAgBjqJ,QAAQH,EAAG2qF,SAC5C,OAAO,EAIT,GAAIr7B,GAAQ,iBAAkBtvD,GAC5B,OAAO,EAGT,IAAIg5E,EAAuB,UAAfh5E,EAAG2qF,QAAsB3qF,EAAKsvD,GAAQ,QAAStvD,GAI3D,GAAIg5E,EAAO,CACT,IAAI8+B,EAAWhlD,GAAQkmB,EAAO,OAC1Bj5D,EAAQ+3F,EAAW3lD,GAAQ2lD,GAAY/lD,GAAO,0BAA2BinB,GAE7E,GAAIj5D,IAAUA,EAAMsxC,SAClB,OAAO,EAOX,OAAOnC,GAAQlvD,EAAIihJ,KCjCVqJ,GAAsB,WAC/B,IAAItqJ,EAAKvD,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK2Q,SACzEmiD,EAAM+D,KACV,SAAO/D,GAAiC,KAA1BA,EAAI5qD,WAAW8f,QAAiB8qC,EAAIg7F,cAAgBj6F,GAAUtwD,KAE5EuvD,EAAIg7F,aAAavqJ,GAAI,ICNZye,GAAQs4C,GAAsByzF,GAAUvnG,IAMxCwnG,GAAmB1wG,EAAAA,WAAAA,OAAW,CACvCr+C,KAAMunD,GACNi+E,QAAS6d,GACTtgI,MAAOA,GACPo/C,SAAU,CACR34D,IAAK,WACH,MAAO,SCjBb,SAAS2E,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAE3M,SAAS8+B,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAezK,IAAIn6B,GAAQ,CACjBisI,eAAgBv0F,GAASrN,IACzB01F,YAAaroF,GAAS5M,IACtBg1F,aAAcpoF,GAAS,GAAG5jE,OAAO6lD,GAAmB0Q,IAAgC,CAACP,OAI5EoiG,GAAgB5wG,EAAAA,WAAAA,OAAW,CACpCt7B,MAAOA,GACPnS,QAAS,CAEPs+I,YAAa,SAAqBtpI,EAAM1tB,EAAKi3J,EAAS/xG,GACpD,IAAI2qB,EAAUnyE,KAAKmyE,QAEnB,GAAIonF,EAAS,CACX,IAAIl3J,EAAQqE,GAAIspB,EAAM1tB,EAAK,IAE3B,OAAI0hC,GAAWu1H,GACNA,EAAQl3J,EAAOC,EAAK0tB,GAClB61B,GAAS0zG,IAAYv1H,GAAWmuC,EAAQonF,IAC1CpnF,EAAQonF,GAASl3J,EAAOC,EAAK0tB,GAG/BupI,EAGT,OAAO/xG,GAETgyG,YAAa,SAAqBxpI,EAAM1tB,EAAKm3J,EAASrkJ,EAAMoyC,GAC1D,IAAI2qB,EAAUnyE,KAAKmyE,QAEnB,GAAIsnF,EAAS,CACX,IAAIp3J,EAAQqE,GAAIspB,EAAM1tB,EAAK,IAE3B,OAAI0hC,GAAWy1H,GACNA,EAAQp3J,EAAOC,EAAK0tB,EAAM5a,GACxBywC,GAAS4zG,IAAYz1H,GAAWmuC,EAAQsnF,IAC1CtnF,EAAQsnF,GAASp3J,EAAOC,EAAK0tB,EAAM5a,GAGrCqkJ,EAGT,OAAOjyG,GAGTkyG,kBAAmB,SAA2B1pI,EAAMkgI,GAClD,IAAI5tJ,EAAM4tJ,EAAM5tJ,IACZ2mH,EAAYjpH,KAAK+yJ,kBAAkBzwJ,GACnCD,EAAQqE,GAAIspB,EAAM1tB,EAAK,MAM3B,OAJI0hC,GAAWilF,KACb5mH,EAAQ4mH,EAAU5mH,EAAOC,EAAK0tB,IAGzB21B,GAAkBtjD,GAAS,GAAKA,GAGzCs3J,qBAAsB,SAA8BC,EAAgB5pI,GAClE,IAAI0iB,EAAQ1yC,KAGZ,OAAO,WACD45J,GACFlnH,EAAMjF,KAAKzd,EAAMy/H,IAAyBz/H,EAAKy/H,OAKrDoK,WAAY,SAAoBvlI,GAGzBt0B,KAAK85J,qBAAqBxlI,IAE7Bt0B,KAAK+5J,kBAAkBvkG,GAAwBlhC,IAGnD0lI,aAAc,SAAsB1lI,GAG7Bt0B,KAAK85J,qBAAqBxlI,IAE7Bt0B,KAAK+5J,kBAAkBpkG,GAA0BrhC,IAIrD2lI,mBAAoB,SAA4B/J,EAAOgK,EAAUlqI,EAAMmqI,GACrE,IAAItlF,EAAS70E,KAETqoJ,EAAYroJ,KAAKqoJ,UACjB/lJ,EAAM4tJ,EAAM5tJ,IACZolF,EAAQwoE,EAAMxoE,MACd0yE,EAAclK,EAAMkK,YACpBt5J,EAAId,KAAK2/G,eACTi6C,EAAiB55J,KAAKmmE,kBAAkB5K,IACxCuhE,EAAY98H,KAAK05J,kBAAkB1pI,EAAMkgI,GACzC1C,GAAgBnF,IAAcroJ,KAAKmpJ,cAAgBnpJ,KAAK8oJ,eAAiBoH,EAAM1C,aAI/E6M,EAAU7M,EAAe4M,EAAcjB,GAAM1L,GAAM2M,EAAc,KAAO,KACxEE,EAActqI,EAAKu/H,KAA2Bv/H,EAAKu/H,IAAwBjtJ,GAAO0tB,EAAKu/H,IAAwBjtJ,GAAO4tJ,EAAMzlF,SAAW,KACvIz0D,EAAO,CAKTuyD,MAAO,CAAC2nF,EAAM3nF,MAAQ2nF,EAAM3nF,MAAQ,GAAIvoE,KAAKs5J,YAAYtpI,EAAM1tB,EAAK4tJ,EAAMqK,QAAS,KACnFptI,MAAO,GACPq7C,MAAO3zB,GAAc,CACnB,gBAAiBlzC,OAAOu4J,EAAW,IAClCE,EAAcp6J,KAAKw5J,YAAYxpI,EAAM1tB,EAAK4tJ,EAAMsK,OAAQ,MAAO,IAAMx6J,KAAKs5J,YAAYtpI,EAAM1tB,EAAK4tJ,EAAMuK,OAAQ,KAClHn4J,IAAK,OAAOrB,OAAOk5J,EAAU,UAAUl5J,OAAOi5J,EAAU,KAAKj5J,OAAOqB,IAGlEkrJ,EAEFx3I,EAAKmX,MAAQ,CACXogI,eAAgBlF,EAAY3gE,EAAQ,KACpC8lE,cAAc,EACd/iF,QAAS6vF,IAKXtkJ,EAAKwyD,MAAM,cAAgB6/E,IAAc1iG,GAAkB+hC,GAASr0E,GAASq0E,GAAS,KACtF1xE,EAAKwyD,MAAMmD,KAAOyuF,EAAc,YAAc,OAC9CpkJ,EAAKwyD,MAAMhC,MAAQ4zF,EAAc,MAAQ,KAErCE,GACFtkJ,EAAKuyD,MAAMv5D,KAAK,GAAG/N,OAAOjB,KAAK+9G,KAAO,KAAO,QAAS,KAAK98G,OAAOq5J,KAItE,IAAIlqE,EAAY,CACdpgE,KAAMA,EACNvtB,MAAO03J,EACPjK,MAAOA,EACPwK,YAAah0J,GAAIspB,EAAM1tB,EAAK,IAC5BD,MAAOy6H,EACP69B,cAAe36J,KAAK25J,qBAAqBC,EAAgB5pI,GACzD4qI,eAAgB7pJ,QAAQif,EAAKy/H,MAI3BzvJ,KAAKs0J,yBACPlkE,EAAUyqE,YAAc76J,KAAK40J,cAAcuF,GAE3C/pE,EAAUukE,UAAY,WACpB,OAAO9/E,EAAO8/E,UAAUwF,IAG1B/pE,EAAU0kE,YAAc,WACtB,OAAOjgF,EAAOigF,YAAYqF,KAY9B,IAAIxnC,EAAW3yH,KAAK86J,yBAAyBx4J,GACzCojJ,EAAc/yB,EAAW3yH,KAAKsmE,cAAcqsD,EAAUviC,GAAa/8E,GAASypH,GAQhF,OANI98H,KAAKqoJ,YAEP3C,EAAc,CAAC5kJ,EAAE,MAAO,CAAC4kJ,MAIpB5kJ,EAAEu5J,EAASrkJ,EAAM,CAAC0vI,KAG3BqV,eAAgB,SAAwB/qI,EAAMmqI,GAC5C,IAAIhyE,EAASnoF,KAET+pJ,EAAS/pJ,KAAKgqJ,eACdpF,EAAU5kJ,KAAK4kJ,QACf0N,EAAatyJ,KAAKsyJ,WAClBvc,EAAc/1I,KAAK+1I,YACnB8C,EAAU74I,KAAK64I,QACfoU,EAAejtJ,KAAKitJ,aACpBC,EAAcltJ,KAAKktJ,YACnBpsJ,EAAId,KAAK2/G,eACTi6C,EAAiB55J,KAAKmmE,kBAAkB5K,IACxCy/F,EAAiBhrI,EAAKy/H,KAA2BmK,EACjDqB,EAAqBj7J,KAAKioJ,WAAW5yF,KAA2Br1D,KAAKq0J,sBAErE6G,EAAQ,GAIRC,EAAYH,EAAiBh7J,KAAKghF,OAAO,YAAY//E,OAAOk5J,EAAU,MAAQ,KAE9EiB,EAAOrR,EAAOl6I,KAAI,SAAUqgJ,EAAOgK,GACrC,OAAO/xE,EAAO8xE,mBAAmB/J,EAAOgK,EAAUlqI,EAAMmqI,MAGtDkB,EAAe,KAEftlB,GAAe8C,GAAWA,EAAU,IACtCwiB,EAAe15J,QAAQo0I,EAAc,GAAK8C,EAAUshB,EAAW,IAOjE,IAAImB,EAAkBjoJ,GAAS3M,GAAIspB,EAAMsiI,KAAgB,KACrDiJ,EAASD,GAAmBjoJ,GAAS8mJ,GAGrCqB,EAAQF,EAAkBt7J,KAAKghF,OAAO,QAAQ//E,OAAOq6J,IAAoB,KAEzEG,EAAoBz7J,KAAKg1J,qBAAuBh1J,KAAKg1J,qBAAqBmF,GAAY,GACtFuB,EAAkB17J,KAAKi1J,mBAAqBj1J,KAAKi1J,mBAAmBkF,GAAY,GAEhFwB,EAAgB33H,GAAWipH,GAAgBA,EAAaj9H,EAAM,OAASi9H,EACvE2O,EAAc53H,GAAWkpH,GAE7BA,EAAYl9H,EAAM,OAASk9H,EA2B3B,GAzBAgO,EAAMlsJ,KAAKlO,EAAEirJ,GAAK,CAChBxjF,MAAO,CAACozF,EAAeF,EAAmBT,EAAiB,sBAAwB,IACnF7tI,MAAO,CACLs9C,QAASz6C,EAAKw/H,KAA0B,MAE1ChnF,MAAO3zB,GAAcA,GAAc,CACjCj+B,GAAI4kJ,GACHI,GAAc,GAAI,CAEnBllF,SAAUukF,EAAqB,IAAM,KACrC,UAAWK,GAAmB,KAC9B,eAAgBH,EAChB,YAAaA,EACb,gBAAiBE,GAChBK,GACHt0F,GAAI,CAEF+xB,WAAYn5F,KAAK65J,WACjBzgE,WAAYp5F,KAAKg6J,cAEnB13J,IAAK,iBAAiBrB,OAAOs6J,EAAQ,MACrCxvE,IAAK,YACL0yC,UAAU,GACT28B,IAECJ,EAAgB,CAClB,IAAIa,EAAe,CACjB7rI,KAAMA,EACNvtB,MAAO03J,EACPpQ,OAAQA,EACR4Q,cAAe36J,KAAK25J,qBAAqBC,EAAgB5pI,IAIvDhwB,KAAKs0J,yBACPuH,EAAahB,YAAc76J,KAAK40J,cAAcuF,GAE9C0B,EAAalH,UAAY,WACvB,OAAOxsE,EAAOwsE,UAAUwF,IAG1B0B,EAAa/G,YAAc,WACzB,OAAO3sE,EAAO2sE,YAAYqF,KAK9B,IAAI2B,EAAWh7J,EAAE2sJ,GAAK,CACpBtgI,MAAO,CACLkgI,QAAStD,EAAOpnJ,QAElB4lE,MAAOvoE,KAAKo5J,gBACX,CAACp5J,KAAKsmE,cAAc/K,GAAuBsgG,KAG1CjX,GACFsW,EAAMlsJ,KACNlO,EAAE,KAAM,CACNwnE,YAAa,SACbE,MAAO,CACL,cAAe,OACfmD,KAAM,gBAERrpE,IAAK,6BAA6BrB,OAAOs6J,MAK7C,IAAIQ,EAAuB/3H,GAAWhkC,KAAKitJ,cAE3CjtJ,KAAKitJ,aAAaj9H,EAAMurC,IAAyBv7D,KAAKitJ,aAClD+O,EAAqBh4H,GAAWhkC,KAAKktJ,aAEzCltJ,KAAKktJ,YAAYl9H,EAAMurC,IAAyBv7D,KAAKktJ,YACrDgO,EAAMlsJ,KAAKlO,EAAEirJ,GAAK,CAChBzjF,YAAa,kBACbC,MAAO,CAACwzF,GACR5uI,MAAO,CACLs9C,QAASz6C,EAAKw/H,KAA0B,MAE1ChnF,MAAO3zB,GAAcA,GAAc,GAAImnH,GAAqB,GAAI,CAE9DplJ,GAAIukJ,EACJzkF,SAAU,OAEZp0E,IAAK,sBAAsBrB,OAAOs6J,IACjC,CAACO,UACKlC,IAETsB,EAAMlsJ,KAAKlO,KAEP8jJ,GAEFsW,EAAMlsJ,KAAKlO,MAKf,OAAOo6J,MCnWb,SAAS3iJ,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAgB3M,IAAIi0I,GAAkB,SAAyB55J,GAC7C,MAAO,QAAQpB,OAAOoB,GAAS,GAAI,MAI1B8qB,GAAQy5B,GAAS/R,GAAcA,GAAcA,GAAc,GAAIqnH,IAAcC,IAAgB,GAAI,CAC1GC,WAAYv3F,GAASrN,OAIZ6kG,GAAa5zG,EAAAA,WAAAA,OAAW,CACjCkiB,OAAQ,CAAC0uF,IACTlsI,MAAOA,GACPm+C,cAAe,WACbtrE,KAAK86J,yBAA2B,MAElC9/I,QAAS,CAKPshJ,YAAa,WACX,IAAIh0E,EAAQtoF,KAAKsoF,MACbi0E,EAAQj0E,EAAMi0E,MAAQj0E,EAAMi0E,MAAMplF,KAAOmR,EAAMi0E,MAAQ,KACvDC,GAAOl0E,EAAM,cAAgB,IAAIz4E,KAAI,SAAU4sJ,GACjD,OAAOA,EAAGtlF,KAAOslF,KAEnB,OAAOF,GAASA,EAAM9yF,UAAY8yF,EAAM9yF,SAAS9mE,OAAS,GAAK65J,GAAOA,EAAI75J,OAAS,EAAI49D,GAAUg8F,EAAM9yF,UAAU35D,QAAO,SAAU2sJ,GAChI,OAAOtgG,GAAcqgG,EAAKC,MAG5B,IAIFC,gBAAiB,SAAyBhuJ,GAExC,IAAKswD,GAAUtwD,GACb,OAAQ,EAGV,IAAI+tJ,EAAoB,OAAf/tJ,EAAG2qF,QAAmB3qF,EAAKsvD,GAAQ,KAAMtvD,GAAI,GACtD,OAAO+tJ,EAAKz8J,KAAKs8J,cAAcztJ,QAAQ4tJ,IAAO,GAGhD1C,kBAAmB,SAA2B3kJ,EAAMkf,GAClD,GAAIlf,GAAQpV,KAAKo8G,YAAYhnG,IAASkf,GAASA,EAAMhoB,OAAQ,CAC3D,IAAI6tJ,EAAWn6J,KAAK08J,gBAAgBpoI,EAAMhoB,QAE1C,GAAI6tJ,GAAY,EAAG,CAEjB,IAAInqI,EAAOhwB,KAAK0pJ,cAAcyQ,GAC9Bn6J,KAAKirE,MAAM71D,EAAM4a,EAAMmqI,EAAU7lI,MAIvCwlI,qBAAsB,SAA8BxlI,GAClD,OAAOt0B,KAAKsuJ,YAActuJ,KAAKsuJ,WAAWh6H,IAG5CqoI,kBAAmB,SAA2BroI,GAE5C,IAAIhoB,EAASgoB,EAAMhoB,OACfmsE,EAAUnkD,EAAMmkD,QAEpB,IAAIz4E,KAAK85J,qBAAqBxlI,IAA6B,OAAnBhoB,EAAO+sF,SAAqBh6B,GAAgB/yD,IAA+B,IAApBA,EAAO+2D,SAKtG,GAAIlH,GAAc,CAACuW,GAAYO,IAAawF,GAE1CpR,GAAU/yC,GACVt0B,KAAK48J,kBAAkBtoI,QAClB,GAAI6nC,GAAc,CAAC+W,GAASV,GAAWI,GAAWH,IAAWgG,GAAU,CAE5E,IAAI0hF,EAAWn6J,KAAK08J,gBAAgBpwJ,GAEpC,GAAI6tJ,GAAY,EAAG,CACjB9yF,GAAU/yC,GACV,IAAIkoI,EAAMx8J,KAAKs8J,cACX3nH,EAAQrgB,EAAMmpD,SAEdhF,IAAY7F,IAAaj+B,GAAS8jC,IAAYvF,GAEhD5P,GAAak5F,EAAI,IACR/jF,IAAYhG,IAAY99B,GAAS8jC,IAAYjG,GAEtDlP,GAAak5F,EAAIA,EAAI75J,OAAS,IACrB81E,IAAYvF,IAAWinF,EAAW,EAE3C72F,GAAak5F,EAAIrC,EAAW,IACnB1hF,IAAYjG,IAAa2nF,EAAWqC,EAAI75J,OAAS,GAE1D2gE,GAAak5F,EAAIrC,EAAW,OAKpCyC,kBAAmB,SAA2BtoI,GAC5C,IAAIg0D,EAAQtoF,KAAKsoF,MACbi0E,EAAQj0E,EAAMi0E,MAAQj0E,EAAMi0E,MAAMplF,KAAOmR,EAAMi0E,MAAQ,KAGvDv8J,KAAK85J,qBAAqBxlI,IAAUykI,GAAYzkI,IAAU0kI,GAAoBuD,GAASv8J,KAAKm3E,MAIhGn3E,KAAK+5J,kBAAkB1kG,GAAwB/gC,IAEjDuoI,gCAAiC,SAAyCvoI,GACnEt0B,KAAK85J,qBAAqBxlI,IAA0B,IAAhBA,EAAMwoI,OAC7C98J,KAAK+5J,kBAAkBtkG,GAA+BnhC,IAG1DyoI,sBAAuB,SAA+BzoI,GAC/Ct0B,KAAK85J,qBAAqBxlI,IAC7Bt0B,KAAK+5J,kBAAkBzkG,GAA4BhhC,IAGvD0oI,qBAAsB,SAA8B1oI,GAC7Ct0B,KAAK85J,qBAAqBxlI,IAAWykI,GAAYzkI,IACpDt0B,KAAK+5J,kBAAkBxkG,GAA2BjhC,IAOtDk2H,YAAa,WACX,IAAI93G,EAAQ1yC,KAERm8B,EAAQn8B,KAAK0pJ,cACb6E,EAAavuJ,KAAKuuJ,WAClB0O,EAAej9J,KAAKi9J,aACpB9N,EAAcnvJ,KAAKmvJ,YACnBnC,EAAkBhtJ,KAAKgtJ,gBACvBlsJ,EAAId,KAAK2/G,eACTs7C,EAAqBj7J,KAAKo8G,YAAY/mD,KAA2Br1D,KAAKq0J,sBAEtE6G,EAAQ,GAERgC,EAAQ3O,EAAaA,IAAe,KAExC,GAAI2O,EAEFhC,EAAMlsJ,KAAKkuJ,OACN,CAML,IAAIt5F,EAAQ,GACRu5F,EAAkBlB,KACtBkB,EAAkBn9J,KAAKmmE,kBAAkBg3F,GAAmBA,EAAkB,KAC9En9J,KAAKgqJ,eAAe98I,SAAQ,SAAUgjJ,GACpC,IAAI5tJ,EAAM4tJ,EAAM5tJ,IACZqwH,EAAWspC,GAAgB35J,GAC3B86J,EAAoBnB,GAAgB35J,EAAImkB,eAC5Cm9C,EAAMthE,GAAOowC,EAAMyzB,kBAAkBwsD,GAAYA,EAAWjgF,EAAMyzB,kBAAkBi3F,GAEpFA,EAAoBD,KAItBn9J,KAAK86J,yBAA2Bl3F,EAGhCs3F,EAAMlsJ,KAAKiuJ,EAAeA,IAAiBn8J,KAE3Cq7B,EAAMjvB,SAAQ,SAAU8iB,EAAMmqI,GAE5Be,EAAMlsJ,KAAK0jC,EAAMqoH,eAAe/qI,EAAMmqI,OAGxCe,EAAMlsJ,KAAKmgJ,EAAcA,IAAgBruJ,KAGzCo6J,EAAMlsJ,KAAKg+I,EAAkBA,IAAoBlsJ,KAInD,IAAIu8J,EAAW,CACbC,SAAUt9J,KAAK68J,gCAKfU,YAAav9J,KAAK+8J,sBAElBS,SAAUx9J,KAAKg9J,sBAIb/B,IACFoC,EAAS50F,MAAQzoE,KAAK48J,kBACtBS,EAAS7kF,QAAUx4E,KAAK28J,mBAI1B,IAAIrR,EAASxqJ,EAAE23J,GAAQ,CACrBlwF,MAAOvoE,KAAKo8J,YAAc,KAC1BjvI,MAAOi4C,GAAW82F,GAAal8J,KAAKizF,QAGpC7rB,GAAIi2F,EACJtxE,IAAK,SACJmvE,GAEH,OAAO5P,MCtOb,SAAS/yI,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB,CAEvCknF,YAAa9nF,GAASxN,KACrB3F,IAMQ+rG,GAAsBh1G,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAMsnD,GACNiZ,OAAQ,CAACwJ,GAAYgB,GAAgB1O,IACrCqU,QAAS,WACP,MAAO,CACLmxE,gBAAiBjsJ,OAGrB25E,OAAQ,CAENuvE,QAAS,CACPlkF,QAEA,WACE,MAAO,MAIbkR,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CAERggF,QAAS,WACP,OAAO,GAGTC,OAAQ,WACN,OAAOxsJ,KAAKkpJ,QAAQnrC,MAGtBsqC,UAAW,WACT,OAAOroJ,KAAKkpJ,QAAQb,WAGtBc,aAAc,WACZ,OAAOnpJ,KAAKkpJ,QAAQC,cAItBC,eAAgB,WACd,OAAO,GAKTqD,gBAAiB,WACf,OAAQzsJ,KAAKqoJ,WAAaroJ,KAAKkpJ,QAAQJ,cAGzCE,aAAc,WACZ,OAAOhpJ,KAAKkpJ,QAAQF,cAEtB0U,aAAc,WACZ,MAAO,CAAC19J,KAAK2sJ,YAAc,SAAS1rJ,OAAOjB,KAAK2sJ,aAAe,OAEjEgR,WAAY,WACV,OAAO9oH,GAAcA,GAAc,GAAI70C,KAAKy2E,SAAU,GAAI,CACxD9K,KAAM,eAIZxsE,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,QAAS,CAChBynE,MAAOvoE,KAAK09J,aACZl1F,MAAOxoE,KAAK29J,WAEZv2F,GAAIpnE,KAAK42E,aACR52E,KAAKsmE,oBCpFDn5C,GAAQ,CACjBywI,UAAW/4F,GAAS9N,IAAmB,GAGvC8mG,eAAgBh5F,GAASxN,IAEzBs1F,YAAa9nF,GAASxN,IACtBymG,WAAYj5F,GAASrN,IACrBumG,aAAcl5F,GAASrN,KAIdwmG,GAAav1G,EAAAA,WAAAA,OAAW,CACjCt7B,MAAOA,GACPnS,QAAS,CACPijJ,kBAAmB,WACjB,IAAIn9J,EAAId,KAAK2/G,eAEb,OAAI3/G,KAAKmmE,kBAAkB1N,IAClB33D,EAAE28J,GAAQ,CACfl1F,MAAOvoE,KAAK89J,YAAc,KAC1B3wI,MAAO,CACLw/H,YAAa3sJ,KAAK2sJ,aAAe3sJ,KAAK0sJ,aAAe,MAEvDpqJ,IAAK,mBACJtC,KAAKsmE,cAAc7N,GAAuB,CAC3Ct8B,MAAOn8B,KAAK0pJ,cAAch4I,QAC1Bq4I,OAAQ/pJ,KAAKgqJ,eAAet4I,QAC5BgnC,QAAS14C,KAAKgqJ,eAAernJ,UAI1B7B,KAET2pJ,YAAa,WAEX,OAAOzqJ,KAAK49J,UAAY59J,KAAKuqJ,aAAY,GAAQvqJ,KAAKi+J,wBC1C5D,SAAS1lJ,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAUpM,IAAImF,GAAQs4C,GAAsB,CAGvCinF,YAAa7nF,GAASxN,KACrBzF,IAMQssG,GAAsBz1G,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAMwnD,GACN+Y,OAAQ,CAACwJ,GAAYgB,GAAgB1O,IACrCqU,QAAS,WACP,MAAO,CACLmxE,gBAAiBjsJ,OAGrB25E,OAAQ,CAENuvE,QAAS,CACPlkF,QAEA,WACE,MAAO,MAIbkR,cAAc,EACd/oD,MAAOA,GACPo/C,SAAU,CAER8/E,QAAS,WACP,OAAO,GAGTG,OAAQ,WACN,OAAOxsJ,KAAKkpJ,QAAQnrC,MAGtBsqC,UAAW,WACT,OAAOroJ,KAAKkpJ,QAAQb,WAGtBc,aAAc,WACZ,OAAOnpJ,KAAKkpJ,QAAQC,cAMtBC,eAAgB,WACd,OAAQppJ,KAAKqoJ,WAAaroJ,KAAKkpJ,QAAQJ,cAKzC2D,gBAAiB,WACf,OAAQzsJ,KAAKqoJ,WAAaroJ,KAAKkpJ,QAAQJ,cAGzCE,aAAc,WACZ,OAAOhpJ,KAAKkpJ,QAAQF,cAEtBmV,aAAc,WACZ,MAAO,CAACn+J,KAAK0sJ,YAAc,SAASzrJ,OAAOjB,KAAK0sJ,aAAe,OAEjE0R,WAAY,WACV,OAAOvpH,GAAc,CACnB82B,KAAM,YACL3rE,KAAKy2E,WAGZt3E,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,QAAS,CAChBynE,MAAOvoE,KAAKm+J,aACZ31F,MAAOxoE,KAAKo+J,WAEZh3F,GAAIpnE,KAAK42E,aACR52E,KAAKsmE,oBC7FZ,SAASxf,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAEhL,SAAS/uC,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAqB3M,IAAIq2I,GAAkB,SAAyBh8J,GAC7C,MAAO,QAAQpB,OAAOoB,GAAS,GAAI,MAGjCi8J,GAAkB,SAAyBj8J,GAC7C,MAAO,QAAQpB,OAAOoB,GAAS,GAAI,MAI1B8qB,GAAQ,CAEjBoxI,eAAgB15F,GAASxN,IAEzBq1F,YAAa7nF,GAASxN,IACtBmnG,WAAY35F,GAASrN,IACrBinG,aAAc55F,GAASrN,KAIdknG,GAAaj2G,EAAAA,WAAAA,OAAW,CACjCt7B,MAAOA,GACPnS,QAAS,CACP2jJ,aAAc,SAAsBzO,GAElC,MAAO,CAACA,EAAM3nF,MAAQ2nF,EAAM3nF,MAAQ,GAAI2nF,EAAM0O,QAAU1O,EAAM0O,QAAU,KAE1EC,YAAa,SAAqBvqI,EAAO47H,EAAOyH,GAC1C33J,KAAKsuJ,YAActuJ,KAAKsuJ,WAAWh6H,IAG5BykI,GAAYzkI,IAGZ0kI,GAAoBh5J,KAAKm3E,OAOpC9P,GAAU/yC,GACVt0B,KAAKirE,MAAM7W,GAAyB87F,EAAM5tJ,IAAK4tJ,EAAO57H,EAAOqjI,KAE/DpN,YAAa,WACX,IAAI73G,EAAQ1yC,KAER23J,EAASxsJ,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,IAAmBA,UAAU,GACxE4+I,EAAS/pJ,KAAKgqJ,eACdkN,EAAal3J,KAAKk3J,WAClB9C,EAAep0J,KAAKo0J,aACpB1H,EAAc1sJ,KAAK0sJ,YACnBC,EAAc3sJ,KAAK2sJ,YACnB4R,EAAiBv+J,KAAKu+J,eACtBV,EAAiB79J,KAAK69J,eACtB/8J,EAAId,KAAK2/G,eAGb,GAAI3/G,KAAKsoJ,iBAAqC,IAAlByB,EAAOpnJ,OACjC,OAAO7B,IAGT,IAAIg+J,EAAuB5H,GAAcl3J,KAAKo8G,YAAYhoD,IAEtD2gG,EAAgBX,EAAep0J,KAAK+0J,cAAgBjvI,GACpD2tI,EAAgBW,EAAep0J,KAAKyzJ,cAAgB3tI,GAEpDi5I,EAAW,SAAkB7O,EAAOgK,GACtC,IAAIxyE,EAAQwoE,EAAMxoE,MACdg9D,EAAYwL,EAAMxL,UAClBj6E,EAAUylF,EAAMzlF,QAChB+iF,EAAe0C,EAAM1C,aACrBlrJ,EAAM4tJ,EAAM5tJ,IACZ4lE,EAAY,KAEXgoF,EAAMxoE,MAAMv0D,QAAW+8H,EAAM8O,cAKhC92F,EAAYlL,GAAUkzF,EAAM5tJ,MAG9B,IAAI8kE,EAAK,GAEL03F,IACF13F,EAAGqB,MAAQ,SAAUn0C,GACnBoe,EAAMmsH,YAAYvqI,EAAO47H,EAAOyH,IAGlCvwF,EAAGoR,QAAU,SAAUlkD,GACrB,IAAImkD,EAAUnkD,EAAMmkD,QAEhBA,IAAY/F,IAAc+F,IAAYxF,IACxCvgC,EAAMmsH,YAAYvqI,EAAO47H,EAAOyH,KAKtC,IAAIsH,EAAY/H,EAAaxkH,EAAMwlH,iBAAiB51J,EAAK4tJ,EAAOyH,GAAU,GACtEuH,EAAYhI,EAAaxkH,EAAMslH,mBAAmB11J,EAAK4tJ,EAAOyH,GAAU,KACxEwH,EAAYjI,EAAaxkH,EAAM2lH,iBAAiB/1J,EAAK4tJ,EAAOyH,GAAU,KACtE3hJ,EAAO,CACTuyD,MAAO,CAAC,CAGN,oBAAqB42F,GACpBzsH,EAAMisH,aAAazO,GAAQgP,GAC9B/xI,MAAO,CACLs9C,QAASA,EACT+iF,aAAcA,GAEhB/gI,MAAOyjI,EAAMkP,SAAW,GACxB52F,MAAO3zB,GAAcA,GAAc,CAGjC6hC,SAAUooF,GAAwB5O,EAAMiH,SAAW,IAAM,KACzDkI,KAAMnP,EAAMoP,YAAc,KAC1B5vF,MAAOwgF,EAAM8O,aAAe,KAC5B,gBAAiB9E,EAAW,EAC5B,aAAchyF,GACbx1B,EAAM8mH,YAAY,KAAMl3J,EAAK4tJ,EAAMsK,OAAQ7C,EAAS,OAAS,OAAQ,KAAMsH,GAC9E73F,GAAIA,EACJ9kE,IAAKA,GAOHi9J,EAAY,CAAClB,GAAgB/7J,GAAM+7J,GAAgB/7J,EAAImkB,eAAgB43I,MAEvE1G,IACF4H,EAAY,CAACjB,GAAgBh8J,GAAMg8J,GAAgBh8J,EAAImkB,eAAgB63I,MAAmBr9J,OAAO6lD,GAAmBy4G,KAGtH,IAAI/4F,EAAQ,CACVkhB,MAAOA,EACP83E,OAAQl9J,EACR4tJ,MAAOA,EACPyH,OAAQA,EAER5C,cAAeA,EACftB,cAAeA,GAEb3mF,EAAWp6B,EAAM4zB,cAAci5F,EAAW/4F,IAAU1lE,EAAE,MAAO,CAC/D4nE,SAAU4S,GAAWopE,EAAWh9D,KAE9B+3E,EAAWN,EAAYr+J,EAAE,OAAQ,CACnCwnE,YAAa,WACZ,KAAKrnE,OAAOk+J,EAAW,MAAQ,KAElC,OAAOr+J,EAAEq4J,GAAKnjJ,EAAM,CAAC82D,EAAU2yF,GAAU3vJ,OAAO23C,MAI9C4jC,EAAS0+D,EAAOl6I,IAAIkvJ,GAAUjvJ,OAAO23C,IAErCi4G,EAAO,GAEX,GAAI/H,EACF+H,EAAK1wJ,KAAKlO,EAAEirJ,GAAK,CACfxjF,MAAOvoE,KAAK+9J,aACZ5wI,MAAO,CACLs9C,QAAS9kB,GAAkBk4G,GAAkBU,EAE7CV,IAEDxyE,QACE,CACL,IAAI7kB,EAAQ,CACV9tB,QAASqxG,EAAOpnJ,OAChBonJ,OAAQA,EAERgL,cAAeA,EACftB,cAAeA,GAEjBiM,EAAK1wJ,KAAKhP,KAAKsmE,cAAcxK,GAAqB0K,IAAU1lE,KAC5D4+J,EAAK1wJ,KAAKlO,EAAEirJ,GAAK,CACfxjF,MAAOvoE,KAAKy+J,aACZtxI,MAAO,CACLs9C,QAAS8zF,IAEVlzE,IAGL,OAAOvqF,EAAE62J,EAAS8F,GAASS,GAAQ,CACjC31F,OAAQovF,EAAS33J,KAAK89J,WAAa99J,KAAKw+J,aAAe,KACvDrxI,MAAOwqI,EAAS,CACdhL,YAAaA,GAAeD,GAAe,MACzC,CACFA,YAAaA,GAAe,MAE9BpqJ,IAAKq1J,EAAS,WAAa,YAC1B+H,OCjOEvyI,GAAQ,GAGRwyI,GAAcl3G,EAAAA,WAAAA,OAAW,CAClCztC,QAAS,CACPiiJ,aAAc,WACZ,IAAIlT,EAAS/pJ,KAAKgqJ,eACdv6E,EAAUzvE,KAAKyvE,QACfw9E,EAAejtJ,KAAKitJ,aACpBC,EAAcltJ,KAAKktJ,YACnBpsJ,EAAId,KAAK2/G,eAGb,OAAK3/G,KAAKmmE,kBAAkBlK,MAAkC,IAAZwT,GAAgC,KAAZA,EAI/D3uE,EAAEirJ,GAAK,CACZzjF,YAAa,kBACbC,MAAO,CAACvkC,GAAWipH,GAAgBA,EAAa,KAAM,WAAaA,GACnEzkF,MAAOxkC,GAAWkpH,GAAeA,EAAY,KAAM,WAAaA,EAChE5qJ,IAAK,aACJ,CAACtC,KAAKsmE,cAAcrK,GAAmB,CACxCvjB,QAASqxG,EAAOpnJ,OAChBonJ,OAAQA,MAVDjpJ,QCnBf,SAASyX,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EA4BpM,IAAImF,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAU2+E,IAAiBC,IAAYC,IAAeC,IAAgBC,IAAaC,IAAiBC,IAAatnB,IAAkBunB,IAAgBC,IAAkBC,IAAe1V,IAAeC,IAAqBgO,IAAa0H,IAAaC,IAAaC,KAAepvG,IAGrjBqvG,GAAsBh4G,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAMgnD,GAGNuZ,OAAQ,CACRwJ,GAAY6zE,GAAkBlnE,GAASra,GACvC8rF,GAAYtJ,GAAoBb,GAAcsW,GAAYV,GAAY3B,GACtEjU,GAAcuI,GAAgBqG,GAAclhB,GAAiB0Y,GAAcG,GAAesF,GAAiB/E,GAAYyQ,GAAa5S,GAAgBqB,GAAWiF,IAC/JlmI,MAAOA,KC3CT,SAAS5U,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAmBpM,ICvBH4gD,GDuBOz7C,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAU6+E,IAAeC,IAAgBG,IAAavV,IAAeC,IAAqBgO,IAAa0H,IAAaC,KAAcjvG,IAG3SovG,GAA0Bj4G,EAAAA,WAAAA,OAAW,CAC9Cr+C,KAAMknD,GAGNqZ,OAAQ,CACRwJ,GAAY6zE,GAAkBlnE,GAASra,GACvC8rF,GAAYtJ,GAAoBb,GAAcsW,GAAYV,GAAY3B,GAEtE7N,GAAcG,IACdxhI,MAAOA,KEzBLwzI,GAA+Bn3G,GAAc,CAC/CR,WAAY,CACV03G,WAAYA,MAGZE,GAAiCp3G,GAAc,CACjDR,WAAY,CACV6hG,aAAcA,GACd4N,OAAQA,GACRyF,OAAQA,GACRT,OAAQA,GACR1R,IAAKA,GACL0B,IAAKA,GACL0L,IAAKA,MAGL0H,GAA2Br3G,GAAc,CAC3CR,WAAY,CACVy3G,OAAQA,IAEVv3G,QAAS,CACPy3G,gBAAiBA,GACjBC,kBAAmBA,MD9BvB,SAASroJ,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EA4B3M,IElCIowF,GAAgBxvC,GFkChBkB,GAAkBlE,GAAe,QAAS,CAC5CxwD,KAAM8hD,KAEJ6S,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAInCwsI,GAAc,SAAqBC,GACrC,OAAQA,EAAIhhG,UAKVihG,GAA2Bv4G,EAAAA,WAAAA,OAAW,CACxCr+C,KAAMooD,GACNmnB,OAAQ,CACNsnF,OAAQ,CACNj8F,QAEA,WACE,MAAO,MAIb73C,MAAO,CACLgoE,SAAUtwB,GAASxN,IACnBzgD,GAAIiuD,GAASxN,IACbsrB,SAAU9d,GAAS9N,IAAmB,GACtCmqG,SAAUr8F,GAAS3N,IACnBiqG,QAASt8F,GAAS3N,IAElB6pG,IAAKl8F,KACLxB,SAAUwB,GAAS3N,KAErBl8C,QAAS,CACPuoD,MAAO,WACLD,GAAatjE,KAAKsoF,MAAMphD,OAE1B24G,YAAa,SAAqBvrH,GAEhC,IAAIt0B,KAAK+gK,IAAIhhG,SAAb,CAIA,IAAI3qD,EAAOkf,EAAMlf,KACbqjE,EAAUnkD,EAAMmkD,QAChBgF,EAAWnpD,EAAMmpD,SAER,UAATroE,GAGgB,YAATA,GAAsBqjE,IAAYxF,IAF3C5L,GAAU/yC,GACVt0B,KAAKirE,MAAM7X,GAAkB9+B,IAOX,YAATlf,GAAuBpV,KAAK2iF,YAEqB,IAAtD,CAACzP,GAASL,GAAWD,IAAW/jE,QAAQ4pE,IAC1CpR,GAAU/yC,GAENmpD,GAAYhF,IAAY7F,GAC1B5yE,KAAKirE,MAAMjX,GAAkB1/B,GAE7Bt0B,KAAKirE,MAAMhW,GAAiB3gC,KAEmC,IAAxD,CAACk+C,GAAWQ,GAAYP,IAAU5jE,QAAQ4pE,KACnDpR,GAAU/yC,GAENmpD,GAAYhF,IAAYhG,GAC1BzyE,KAAKirE,MAAMxW,GAAiBngC,GAE5Bt0B,KAAKirE,MAAMrW,GAAiBtgC,QAMtCn1B,OAAQ,SAAgB2B,GACtB,IAAI8V,EAAK5W,KAAK4W,GACVysD,EAAWrjE,KAAKqjE,SAChB89F,EAAUnhK,KAAKmhK,QACfD,EAAWlhK,KAAKkhK,SAChB/rE,EAAWn1F,KAAKm1F,SAChB0qD,EAAc7/I,KAAK6/I,YACnBuhB,EAAYphK,KAAK+gK,IACjBrxF,EAAQ0xF,EAAU1xF,MAClB2xF,EAAcD,EAAUC,YACxBthG,EAAWqhG,EAAUrhG,SACrBuhG,EAAiBF,EAAUE,eAC3BC,EAAiBH,EAAUG,eAC3BC,EAAsBJ,EAAUI,oBAChCC,EAAQ3gK,EAAEm1E,GAAO,CACnB3N,YAAa,WACbC,MAAO,CAAC,CACNyN,OAAQqrF,IAAgBthG,EACxBA,SAAUA,GACTwhG,EACHF,EAAcrhK,KAAKihK,OAAOS,mBAAqB,MAC/Cv0I,MAAO,CACL4yC,SAAUA,GAEZyI,MAAO3zB,GAAcA,GAAc,GAAI2sH,GAAsB,GAAI,CAC/D5qJ,GAAIA,EACJ+0D,KAAM,MAEN+K,SAAUrT,EACV,gBAAiBg+F,IAAgBthG,EAAW,OAAS,QACrD,eAAgBohG,EAChB,gBAAiBD,EACjB,gBAAiB/rE,IAEnB/tB,GAAI,CACFqB,MAAOo3E,EACPrnE,QAASqnE,GAEX9zD,IAAK,QACJ,CAAC/rF,KAAK+gK,IAAIz6F,cAAcvK,KAAoB2T,IAC/C,OAAO5uE,EAAE,KAAM,CACbwnE,YAAa,WACbC,MAAO,CAAC+4F,GACR94F,MAAO,CACLmD,KAAM,iBAEP,CAAC81F,OAIJr3E,GAAW1jC,GAAK6rF,GAAW,CAAC,OAAQ,WAAY,eACzCplH,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAaogB,IAAW,GAAI,CAElJs3E,mBAAoB78F,GAASrN,IAG7BmqG,eAAgB98F,GAASrN,IACzBoqG,KAAM/8F,GAAS9N,IAAmB,GAClC6xE,aAAc/jE,GAASrN,IAEvB7qD,IAAKk4D,GAAS9N,IAAmB,GAEjCk7C,KAAMptC,GAAS9N,IAAmB,GAClC8qG,SAAUh9F,GAASrN,IACnBsqG,gBAAiBj9F,GAASrN,IAC1B8R,OAAQzE,GAAS9N,IAAmB,GACpC4rB,SAAU9d,GAAS9N,IAAmB,GACtCgrG,WAAYl9F,GAAS9N,IAAmB,GACxCnjD,IAAKixD,GAASxN,GAAkB,UAC7B7F,IAGMwwG,GAAqBv5G,EAAAA,WAAAA,OAAW,CACzCr+C,KAAMonD,GACNmZ,OAAQ,CAACmW,GAAS/W,GAAYtD,IAC9BqU,QAAS,WACP,MAAO,CACLmmF,OAAQjhK,OAGZmtB,MAAOA,GACPnX,KAAM,WACJ,MAAO,CAELisJ,WAAYxlG,GAAUz8D,KAAKiqE,KAAmB,GAE9CgnE,KAAM,GAENixB,eAAgB,KAGpB31F,SAAU,CACR/B,KAAM,WAEJ,OAAQxqE,KAAKspE,QAEf64F,cAAe,WACb,IAAIjnD,EAAU,GAMd,OAJIl7G,KAAK4hK,MAAQ5hK,KAAKw8E,UACpB0+B,EAAQlsG,KAAK,cAAe,QAAS,kBAAmB,aAGnD,GAAG/N,OAAOi6G,EAAS,CAACl7G,KAAK6hK,aAGpC/2F,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,EAAU+I,GAChF,GAAI/I,IAAa+I,EAAU,CACzB/I,EAAWtO,GAAUsO,GAAW,GAChC+I,EAAWrX,GAAUqX,EAAU,GAC/B,IAAIsuF,EAAOpiK,KAAKixI,KAAKlmE,GAEjBq3F,IAASA,EAAKriG,SAChB//D,KAAKqiK,YAAYD,GAGbr3F,EAAW+I,EACb9zE,KAAKsiK,cAELtiK,KAAKuiK,cAITztH,GAAgB8zB,GAAQ,cAAc,SAAoBmC,GAC5D,IAAItoE,GAAS,EAEbzC,KAAKixI,KAAK/jI,SAAQ,SAAUk1J,EAAMl4J,GAC5BA,IAAM6gE,GAAaq3F,EAAKriG,SAI1BqiG,EAAKf,aAAc,GAHnBe,EAAKf,aAAc,EACnB5+J,EAAQyH,MAMZlK,KAAKirE,MAAMf,GAAkBznE,MAC3BqyC,GAAgB8zB,GAAQ,QAAQ,SAAcmC,EAAU+I,GAC1D,IAAIphC,EAAQ1yC,KAIPozE,GAAWrI,EAASl7D,KAAI,SAAUuyJ,GACrC,OAAOA,EAAKv3G,OACVipB,EAASjkE,KAAI,SAAUuyJ,GACzB,OAAOA,EAAKv3G,SAGZ7qD,KAAKmrE,WAAU,WAGbz4B,EAAMu4B,MAAM9X,GAAoB4X,EAASr5D,QAASoiE,EAASpiE,eAG7DojC,GAAgB8zB,GAAQ,kBAAkB,WAC5C5oE,KAAKwiK,gBACH55F,IACJwC,QAAS,WAEPprE,KAAK+2F,WAAa,MAEpB/Z,QAAS,WACPh9E,KAAKi3F,aAAY,IAEnB3rB,cAAe,WACbtrE,KAAKi3F,aAAY,GAEjBj3F,KAAKixI,KAAO,IAEdj2H,QAAS,CACPynJ,YAAa,SAAqBL,GAC3BjmG,GAAcn8D,KAAKkiK,eAAgBE,IACtCpiK,KAAKkiK,eAAelzJ,KAAKozJ,IAG7BM,cAAe,SAAuBN,GACpCpiK,KAAKkiK,eAAiBliK,KAAKkiK,eAAexwJ,QAAQ5B,QAAO,SAAU6yJ,GACjE,OAAOA,IAAOP,MAIlBnrE,YAAa,WACX,IAAIpiB,EAAS70E,KAETonE,IAAKj8D,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,KAAmBA,UAAU,GAIxE,GAHAnL,KAAK+2F,YAAc/2F,KAAK+2F,WAAWtF,aACnCzxF,KAAK+2F,WAAa,KAEd3vB,EAAI,CAEN,IAAIzyC,EAAU,WACZkgD,EAAO1J,WAAU,WACf5M,IAAU,WACRsW,EAAO2tF,oBAMbxiK,KAAK+2F,WAAatD,GAAWzzF,KAAKsoF,MAAMv8D,QAAS4I,EAAS,CACxDs/D,WAAW,EACXC,SAAS,EACTqD,YAAY,EACZC,gBAAiB,CAAC,UAIxBorE,QAAS,WACP,IAAIC,EAAQ7iK,KAAKkiK,eAAepyJ,QAAO,SAAUsyJ,GAC/C,OAEc,IAFPA,EAAK7gC,UAAUzxH,QAAO,SAAU6yJ,GACrC,OAAOA,EAAGG,UACTngK,UAGD49F,EAAQ,GAGZ,GAAIzxE,GAAc+zI,EAAMlgK,OAAS,EAAG,CAIlC,IAAI09D,EAAWwiG,EAAMhzJ,KAAI,SAAUuyJ,GACjC,MAAO,IAAInhK,OAAOmhK,EAAKphF,aACtB9/D,KAAK,MACRq/E,EAAQngC,GAAUC,EAAUrgE,KAAKm3E,KAAKtnE,KAAI,SAAUsnE,GAClD,OAAOA,EAAIvgE,MACV9G,OAAO23C,IAKZ,OAAO0tG,GAAW0N,GAAO,SAAU//I,EAAGC,GACpC,OAAOw9E,EAAM1xF,QAAQiU,EAAEk+D,UAAYuf,EAAM1xF,QAAQkU,EAAEi+D,cAGvDwhF,WAAY,WACV,IAAIK,EAAQ7iK,KAAK4iK,UAGbv/F,EAAWw/F,EAAMh0J,QAAQg0J,EAAMnxJ,QAAQ/I,UAAUsH,MAAK,SAAUmyJ,GAClE,OAAOA,EAAKf,cAAgBe,EAAKriG,aAGnC,GAAIsD,EAAW,EAAG,CAChB,IAAI4+F,EAAajiK,KAAKiiK,WAElBA,GAAcY,EAAMlgK,OAEtB0gE,EAAWw/F,EAAMh0J,QAAQg0J,EAAMnxJ,QAAQ/I,UAAUsH,KAAK6wJ,KAC7C+B,EAAMZ,KAAgBY,EAAMZ,GAAYliG,WAEjDsD,EAAW4+F,GAKX5+F,EAAW,IACbA,EAAWw/F,EAAMh0J,QAAQg0J,EAAM5yJ,KAAK6wJ,MAItC+B,EAAM31J,SAAQ,SAAUk1J,EAAM3/J,GAC5B2/J,EAAKf,YAAc5+J,IAAU4gE,KAE/BrjE,KAAKixI,KAAO4xB,EACZ7iK,KAAKiiK,WAAa5+F,GAIpB0/F,gBAAiB,SAAyBX,GACxC,OAAQpiK,KAAKsoF,MAAM6wB,SAAW,IAAIlpG,MAAK,SAAU07E,GAC/C,OAAOA,EAAKo1E,MAAQqB,MAKxBY,aAAc,SAAsBZ,GAClC,IAAIhoD,EAAUp6G,KAAK+iK,gBAAgBX,GAE/BhoD,GAAWA,EAAQ6oD,cACrB7oD,EAAQ6oD,gBAKZZ,YAAa,SAAqBD,GAChC,IAAIH,EAAajiK,KAAKiiK,WAClBY,EAAQ7iK,KAAKixI,KACb5jI,GAAS,EAEb,GAAI+0J,EAAM,CACR,IAAI3/J,EAAQogK,EAAMh0J,QAAQuzJ,GAE1B,GAAI3/J,IAAUw/J,GAAcx/J,GAAS,IAAM2/J,EAAKriG,SAAU,CACxD,IAAImjG,EAAW,IAAIr1D,GAAQ96C,GAAyB,CAClDg7C,YAAY,EACZE,UAAWjuG,KACXkuG,YAAaluG,KAAKghF,WAEpBhhF,KAAKirE,MAAMi4F,EAAS9tJ,KAAM3S,EAAOw/J,EAAYiB,GAExCA,EAAS/0D,mBACZnuG,KAAKiiK,WAAax/J,EAClB4K,GAAS,IAYf,OAJKA,GAAUrN,KAAKiqE,MAAqBg4F,GACvCjiK,KAAKirE,MAAMf,GAAkB+3F,GAGxB50J,GAIT81J,cAAe,SAAuBf,GACpC,QAAIA,GAGKpiK,KAAKqiK,YAAYriK,KAAKixI,KAAKnhI,QAAO,SAAU6yJ,GACjD,OAAOA,IAAOP,KACbnyJ,KAAK6wJ,MAQZsC,YAAa,SAAqBhB,GAChC,IAAIj6E,EAASnoF,KAGbA,KAAKmrE,WAAU,WACb7H,GAAa6kB,EAAO46E,gBAAgBX,QAIxCiB,aAAc,SAAsBtC,EAAKzsI,GACnC2xB,GAAQ3xB,IAAUysI,GAAOA,EAAI91F,QAAU81F,EAAIhhG,UAC7CghG,EAAI91F,MAAM7X,GAAkB9+B,IAIhCgvI,SAAU,SAAkBlB,EAAM9tI,GAChCt0B,KAAKqiK,YAAYD,GACjBpiK,KAAKqjK,aAAajB,EAAM9tI,IAG1BivI,SAAU,SAAkBhgG,GAC1B,IAAI6+F,EAAOpiK,KAAKixI,KAAKhhI,KAAK6wJ,IAEtB9gK,KAAKqiK,YAAYD,IAAS7+F,IAC5BvjE,KAAKojK,YAAYhB,GACjBpiK,KAAKqjK,aAAajB,EAAM7+F,KAI5B++F,YAAa,SAAqB/+F,GAChC,IAAIigG,EAAe13F,GAAQ9rE,KAAKiiK,WAAY,GACxCG,EAAOpiK,KAAKixI,KAAKv/H,MAAM,EAAG8xJ,GAAc76J,UAAUsH,KAAK6wJ,IAEvD9gK,KAAKqiK,YAAYD,IAAS7+F,IAC5BvjE,KAAKojK,YAAYhB,GACjBpiK,KAAKqjK,aAAajB,EAAM7+F,KAI5Bg/F,QAAS,SAAiBh/F,GACxB,IAAIigG,EAAe13F,GAAQ9rE,KAAKiiK,YAAa,GACzCG,EAAOpiK,KAAKixI,KAAKv/H,MAAM8xJ,EAAe,GAAGvzJ,KAAK6wJ,IAE9C9gK,KAAKqiK,YAAYD,IAAS7+F,IAC5BvjE,KAAKojK,YAAYhB,GACjBpiK,KAAKqjK,aAAajB,EAAM7+F,KAI5BkgG,QAAS,SAAiBlgG,GACxB,IAAI6+F,EAAOpiK,KAAKixI,KAAKv/H,QAAQ/I,UAAUsH,KAAK6wJ,IAExC9gK,KAAKqiK,YAAYD,IAAS7+F,IAC5BvjE,KAAKojK,YAAYhB,GACjBpiK,KAAKqjK,aAAajB,EAAM7+F,MAI9BpkE,OAAQ,SAAgB2B,GACtB,IAAI0nF,EAASxoF,KAETmvF,EAAQnvF,KAAKmvF,MACbyyE,EAAO5hK,KAAK4hK,KACZj1J,EAAM3M,KAAK2M,IACXjE,EAAO1I,KAAK0I,KACZ66J,EAAWvjK,KAAKujK,SAChBxyB,EAAY/wI,KAAK+wI,UACjB0yB,EAAUzjK,KAAKyjK,QACflB,EAAUviK,KAAKuiK,QACf5/E,EAAW3iF,KAAK2iF,SAChBo/E,EAAa/hK,KAAK+hK,WAClB/wB,EAAQhxI,KAAKgxI,MACbsxB,EAActiK,KAAKsiK,YACnBt5H,EAAQhpC,KAAKgpC,MACb65H,EAAQ7iK,KAAKixI,KACbz0D,EAAWx8E,KAAKw8E,SAEhBknF,EAAab,EAAM5yJ,MAAK,SAAUmyJ,GACpC,OAAOA,EAAKf,cAAgBe,EAAKriG,YAG/B4jG,EAAed,EAAM5yJ,MAAK,SAAUmyJ,GACtC,OAAQA,EAAKriG,YAGXs3E,EAAWwrB,EAAMhzJ,KAAI,SAAUuyJ,EAAM3/J,GACvC,IAAImhK,EAEA5iF,EAASohF,EAAKphF,OAEd3d,EAAW,KAYf,OAVKsf,IAEHtf,GAAY,GAER++F,IAASsB,IAAeA,GAActB,IAASuB,KAEjDtgG,EAAW,OAIRviE,EAAEkgK,GAAa,CACpB7zI,MAAO,CACLgoE,SAAUnU,EAASA,IAAW,KAC9BpqE,GAAIwrJ,EAAKyB,eAAiB7iF,EAASA,EAAO,mBAAqB,MAC/D2B,SAAUA,EACVu+E,SAAUz+J,EAAQ,EAClB0+J,QAAS0B,EAAMlgK,OACfo+J,IAAKqB,EACL/+F,SAAUA,GAEZ+D,IAAKw8F,EAAM,GAAI9uH,GAAgB8uH,EAAKxwG,IAAkB,SAAU9+B,GAC9Dk0D,EAAO86E,SAASlB,EAAM9tI,MACpBwgB,GAAgB8uH,EAAK5vG,GAAkBuvG,GAAWzuH,GAAgB8uH,EAAK3uG,GAAiBqtG,GAAcxtH,GAAgB8uH,EAAKhvG,GAAiB2tG,GAAUztH,GAAgB8uH,EAAKnvG,GAAiBgvG,GAAUG,GAC1MthK,IAAK8/J,EAAKv3G,KAAsBpoD,EAChCspF,IAAK,UAEL0yC,UAAU,OAGVxzC,EAAOnqF,EAAEowI,GAAM,CACjB3oE,MAAOvoE,KAAKmiK,cACZ35F,MAAO,CACLmD,KAAM,UACN/0D,GAAI5W,KAAKghF,OAAO,sBAElB7zD,MAAO,CACLzkB,KAAMA,EACNqoI,UAAWA,EACX5hD,MAAOA,EACP8hD,MAAO8wB,IAAe/wB,EACtBA,OAAQ+wB,GAAc/wB,EACtBx0D,SAAUA,EACVxzC,MAAOA,EACP8nG,WAAY8wB,IAASplF,GAEvBuP,IAAK,OACJ,CAAC/rF,KAAKsmE,cAAc1K,KAAyB96D,IAAKu2I,EAAUr3I,KAAKsmE,cAAc3K,KAAuB76D,MACzGmqF,EAAOnqF,EAAE,MAAO,CACdynE,MAAO,CAAC,CACN,cAAeq5F,IAASplF,IAAa7vE,EACrC,cAAei1J,IAASplF,GAAY7vE,EACpC,WAAY6vE,GACXx8E,KAAK8hK,iBACRx/J,IAAK,eACJ,CAAC2oF,IACJ,IAAIs2C,EAAYvhI,KAAKsmE,iBAAmB,GACpC8oF,EAAStuJ,IAEY,IAArBygI,EAAU5+H,SACZysJ,EAAStuJ,EAAE,MAAO,CAChBynE,MAAO,CAAC,WAAY,SAAU,CAC5B,YAAaq5F,IAEft/J,IAAK,gBACJtC,KAAKsmE,cAActN,MAGxB,IAAI8T,EAAWhsE,EAAE,MAAO,CACtBwnE,YAAa,cACbC,MAAO,CAAC,CACNq9C,IAAKppC,GACJx8E,KAAK4oI,cACRpgE,MAAO,CACL5xD,GAAI5W,KAAKghF,OAAO,uBAElB1+E,IAAK,aACLypF,IAAK,WACJ,CAACw1C,EAAW6tB,IAEf,OAAOtuJ,EAAEd,KAAK4T,IAAK,CACjB00D,YAAa,OACbC,MAAO,CACLsnF,IAAKrzE,EACL,aAAcA,GAAYolF,GAE5Bp5F,MAAO,CACL5xD,GAAI5W,KAAKghF,WAEV,CAACr0E,EAAMmgE,EAAWhsE,IAAKmqF,EAAMt+E,EAAM7L,IAAMgsE,OElnBhD,SAASv0D,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAa3M,ICnBI4gD,GDmBAk7F,GAAyB,SACzBC,GAA0BvtG,GAA0BstG,GAE7C32I,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAc,GAAIosC,IAAU,IAAKm3B,GAAiB,GAAItjE,GAAgBsjE,GAAgB0rD,GAAwBj/F,GAAS9N,IAAmB,IAASjiB,GAAgBsjE,GAAgB,WAAYvzC,GAASxN,KAAoBviB,GAAgBsjE,GAAgB,WAAYvzC,GAAS9N,IAAmB,IAASjiB,GAAgBsjE,GAAgB,OAAQvzC,GAAS9N,IAAmB,IAASjiB,GAAgBsjE,GAAgB,SAAUvzC,GAAS9N,IAAmB,IAASjiB,GAAgBsjE,GAAgB,MAAOvzC,GAASxN,GAAkB,QAASviB,GAAgBsjE,GAAgB,QAASvzC,GAASxN,KAAoBviB,GAAgBsjE,GAAgB,iBAAkBvzC,GAASrN,KAAiC1iB,GAAgBsjE,GAAgB,sBAAuBvzC,GAAS1N,KAAoBriB,GAAgBsjE,GAAgB,iBAAkBvzC,GAASrN,KAAiC4gD,MAAmBjnD,IAG96B6yG,GAAoBv7G,EAAAA,WAAAA,OAAW,CACxCr+C,KAAM+mD,GACNwZ,OAAQ,CAACmW,GAASra,IAClBkT,OAAQ,CACNsnF,OAAQ,CACNj8F,QAAS,WACP,MAAO,MAIb73C,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACLqrJ,YAAarhK,KAAK8jK,MAA4B9jK,KAAK+/D,WAGvDwM,SAAU,CAERu2F,OAAQ,WACN,OAAO,GAETmB,WAAY,WACV,IAAIjuF,EAASh2E,KAAKqhK,YACdthG,EAAW//D,KAAK+/D,SACpB,MAAO,CAAC,CACNiW,OAAQA,EACRjW,SAAUA,EACV,YAAa//D,KAAKihK,OAAOW,OAAS5hK,KAAK6vF,QAEzC7Z,EAASh2E,KAAKihK,OAAOU,eAAiB,OAExCkC,aAAc,WACZ,OAAO7jK,KAAKkkK,UAAYlkK,KAAKghF,OAAO,sBAEtCmjF,eAAgB,WACd,OAASnkK,KAAKihK,OAAOz2F,MAEvB45F,aAAc,WACZ,OAAOpkK,KAAKihK,OAAOhvD,MAAQjyG,KAAKiyG,OAGpCnnC,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQk7F,IAAwB,SAAU/4F,EAAU+I,GACnF/I,IAAa+I,IACX/I,EAEF/qE,KAAKqkK,WAGArkK,KAAKskK,cAGRtkK,KAAKirE,MAAM84F,GAAyB/jK,KAAKqhK,iBAI7CvsH,GAAgB8zB,GAAQ,YAAY,SAAkBmC,EAAU+I,GAClE,GAAI/I,IAAa+I,EAAU,CACzB,IAAIyvF,EAAWvjK,KAAKihK,OAAOsC,SAEvBx4F,GAAY/qE,KAAKqhK,aAAekC,IAClCvjK,KAAKqhK,aAAc,EACnBkC,SAGFzuH,GAAgB8zB,GAAQ,eAAe,SAAqBmC,GAE9D/qE,KAAKirE,MAAM84F,GAAyBh5F,MAClCnC,IACJoU,QAAS,WAEPh9E,KAAKyiK,eAEPvmE,QAAS,WAGP,IAAI8mE,EAAehjK,KAAKihK,OAAO+B,aAE3BA,GAAgBhjK,KAAKmmE,kBAAkBpK,KACzCinG,EAAahjK,OAGjBsrE,cAAe,WAEbtrE,KAAK0iK,iBAEP1nJ,QAAS,CAEPynJ,YAAa,WAEX,IAAIA,EAAcziK,KAAKihK,OAAOwB,YAE1BA,GACFA,EAAYziK,OAGhB0iK,cAAe,WAEb,IAAIA,EAAgB1iK,KAAKihK,OAAOyB,cAE5BA,GACFA,EAAc1iK,OAIlBqkK,SAAU,WAER,IAAIhC,EAAcriK,KAAKihK,OAAOoB,YAC9B,SAAOA,GAAgBriK,KAAK+/D,WAAWsiG,EAAYriK,OAErDskK,WAAY,WAEV,IAAInB,EAAgBnjK,KAAKihK,OAAOkC,cAChC,SAAOA,IAAiBnjK,KAAKqhK,cAAc8B,EAAcnjK,QAG7Db,OAAQ,SAAgB2B,GACtB,IAAIugK,EAAcrhK,KAAKqhK,YACnBv0F,EAAWhsE,EAAEd,KAAK4T,IAAK,CACzB00D,YAAa,WACbC,MAAOvoE,KAAKikK,WACZh7G,WAAY,CAAC,CACX7+C,KAAM,OACN/H,MAAOg/J,IAET74F,MAAO,CACLmD,KAAM,WACN/0D,GAAI5W,KAAKghF,SACT,cAAeqgF,EAAc,QAAU,OACvC,kBAAmBrhK,KAAK6jK,cAAgB,MAE1C93E,IAAK,SAEP,CAACs1E,IAAgBrhK,KAAKokK,aAAepkK,KAAKsmE,gBAAkBxlE,MAC5D,OAAOA,EAAE0oE,GAAc,CACrBr8C,MAAO,CACLgF,KAAM,SACNm3C,OAAQtpE,KAAKmkK,iBAEd,CAACr3F,OEhKJy3F,GAA0B/6G,GAAc,CAC1CR,WAAY,CACVg5G,MAAOA,GACPgC,KAAMA,MCJNQ,GAA0Bh7G,GAAc,CAC1CR,WAAY,CACVozE,MAAOA,M,WCSAqoC,GAAiCh8G,EAAAA,WAAAA,OAAW,CACrDkiB,OAAQ,CAAClE,IACTzwD,KAAM,WACJ,MAAO,CAEL5L,KAAM,cAGV4Q,QAAS,CACPw/E,aAAc,SAAsB9rF,GAClC,IAAIgkC,EAAQ1yC,KAOZu+D,IAAU,WACR0C,GAAYvyD,EAAI,GAAGzN,OAAOyxC,EAAMtoC,KAAM,mBAI5CjL,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,mBAAoB,CAC3BqsB,MAAO,CACLvZ,IAAK,MACLxJ,KAAMpK,KAAKoK,MAEbg9D,GAAI,CACFyzB,WAAY76F,KAAKw6F,eAElBx6F,KAAKsmE,oBAIDn5C,GAAQs4C,GAAsB,CAEvCi/F,WAAY7/F,GAASxN,IACrBu/C,SAAU/xC,GAASxN,IACnBjtD,KAAMy6D,GAASxN,QAAkBl1D,GAAW,GAG5CwpE,KAAM9G,GAASxN,KACdtF,IAGQ4yG,GAAwBl8G,EAAAA,WAAAA,OAAW,CAC5Cr+C,KAAM2nD,GACN4Y,OAAQ,CAAC0J,IACTlnD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CAEL4uJ,UAAU,EACVC,MAAM,EAENC,WAAY9kK,KAAKoK,OAGrB06H,YAAa,WACX,IAAI16H,EAAOpK,KAAKoK,KAChBpK,KAAK8kK,WAAa16J,EAGd26J,GAAAA,GAAAA,UAAmB36J,IACrBonC,GAAK,kCAAqCvwC,OAAOmJ,EAAM,qCAAuC2nD,IAC9F/xD,KAAK6kK,MAAO,GAEZ7kK,KAAK4kK,UAAW,GAGpBt5F,cAAe,WAGTtrE,KAAK4kK,UACP5kK,KAAKi1E,WAAWlN,GAAiBhW,GAAcyB,IAAuBxzD,KAAKoK,OAG/Ek6H,UAAW,WAET,IAAIntD,EAAMn3E,KAAKm3E,IAGXA,GAAOA,EAAIhZ,YACbgZ,EAAIhZ,WAAWjpC,YAAYiiD,IAG/Bh4E,OAAQ,SAAgB2B,GACtB,IAAIkkK,EAAWlkK,EAAE,MAAO,CACtBynE,MAAO,CAAC,SAAU,CAChB,iBAAkBvoE,KAAK6kK,SAI3B,GAAI7kK,KAAK4kK,SAAU,CACjB,IAAIK,EAAUnkK,EAAEokK,GAAAA,GAAc,CAC5B58F,YAAa,iBACbn7C,MAAO,CACL/iB,KAAMpK,KAAK8kK,WACXtjD,UAAU,EACV5tG,IAAK,MACLuxJ,MAAM,EAENnwE,WAAYyvE,MAGhBO,EAAWlkK,EAAE,MAAO,CAClBwnE,YAAa,YACbC,MAAO,CAACvoE,KAAK8kK,YACbt8F,MAAO,CACL5xD,GAAI5W,KAAK8kK,WAETn5F,KAAM3rE,KAAK2rE,MAAQ,KACnB,YAAa3rE,KAAK42G,SAClB,cAAe52G,KAAK0kK,aAErB,CAACO,IAGN,OAAOD,KHlIX,SAASzsJ,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EA2B3M,IAAI8hD,GAAkBlE,GAAe,UAAW,CAC9CxwD,KAAM2hD,GACNvP,cAAc,EACdlzB,MAAO4+B,KAEL6W,GAAaD,GAAgB7D,MAC7B+D,GAAaF,GAAgB38C,MAC7B88C,GAAkBH,GAAgBxjB,KAClC4jB,GAAmBJ,GAAgBx1C,MAEnC8wI,GAAe,IAEfhuF,GAAY5wB,GAAK6wB,GAAY,CAAC,OAAQ,OAC/BlqD,GAAQs4C,GAAsB7e,GAAS/R,GAAcA,GAAcA,GAAcA,GAAc,GAAIosC,IAAUjX,IAAaoN,IAAY,GAAI,CACnJiuF,YAAaxgG,GAAS9N,IAAmB,GACzCuuG,cAAezgG,GAAS9M,GAAyB,KACjDg1B,UAAWloB,GAASrN,IACpBi2B,YAAa5oB,GAASrN,IACtBgqB,UAAW3c,GAASxN,GAAkB,UAEtCkuG,SAAU1gG,GAAS9N,IAAmB,GACtCyuG,WAAY3gG,GAAS9N,IAAmB,GACxCioE,cAAen6D,GAAS9N,IAAmB,GAC3CuS,OAAQzE,GAAS9N,IAAmB,GACpC8+B,aAAchxB,GAAS9N,IAAmB,GAC1C0uG,MAAO5gG,GAAS9N,IAAmB,GAEnCkzE,OAAQplE,GAAS9N,IAAmB,GACpC2Y,MAAO7K,GAASxN,IAChBquG,WAAY7gG,GAASrN,IACrBmuG,QAAS9gG,GAASxN,GAAkB,uBACpCoT,QAAS5F,GAASxN,OACfvF,IAGM8zG,GAAsBn9G,EAAAA,WAAAA,OAAW,CAC1Cr+C,KAAM0nD,GACN6Y,OAAQ,CAACwJ,GAAY2M,GAAS/W,GAAYsK,GAAmB5N,GAAoBu9D,IACjF9tD,cAAc,EACd/oD,MAAOA,GACPnX,KAAM,WACJ,MAAO,CACL6vJ,WAAW,EACXjB,UAAU,EACV/5F,WAAW,EACX0/D,iBAAiB,EACjBu7B,UAAU,EACVvlE,MAAO,EACPwlE,eAAgB,EAChBC,cAAe,IAGnBz5F,SAAU,CACR05F,aAAc,WACZ,IAAIZ,EAAcrlK,KAAKqlK,YACnB56F,EAAUzqE,KAAKyqE,QACnB,OAAO31B,GAAgB,CACrB,gBAAiB90C,KAAKylK,MACtB,iBAAkBJ,EAClB,mBAAoBA,GACnB,WAAWpkK,OAAOwpE,GAAUA,IAEjC2lB,UAAW,WACT,IAAIyc,EAAO7sG,KAAK6sG,KAChB,MAAO,CACLA,KAAMA,IAGVq5D,iBAAkB,WAEhB,OAAOp6F,GAAQrP,GAAUz8D,KAAKslK,cAAe,GAAIF,KAEnDe,gBAAiB,WACf,OAAOxkK,OAAO3B,KAAK2lK,UAErBS,mBAAoB,WAClB,MAAO,CACL53B,YAAaxuI,KAAK+sI,cAClBlyC,WAAY76F,KAAKw6F,aACjBi0C,YAAazuI,KAAKktI,cAClBnyC,WAAY/6F,KAAK06F,eAGrBlkB,cAAe,WACb,OAAO3hC,GAAcA,GAAc,GAAI70C,KAAKy2E,SAAU,GAAI,CACxD7/D,GAAI5W,KAAKghF,SACTtK,SAAU,QAIhB5L,OAAQlC,GAAS,GAAI9zB,GAAgB8zB,GAAQqB,IAAiB,SAAUc,GACtE/qE,KAAK+qE,EAAW,OAAS,aACvBj2B,GAAgB8zB,GAAQ,aAAa,SAAmBmC,GACtDA,IAAa/qE,KAAKiqE,KACpBjqE,KAAKirE,MAAMf,GAAkBa,MAE7Bj2B,GAAgB8zB,GAAQ,WAAW,WAErC5oE,KAAKmrE,UAAUnrE,KAAKqmK,kBAClBvxH,GAAgB8zB,GAAQ,UAAU,SAAiBmC,GAGjDA,GAAY/qE,KAAK6qE,WACnB7qE,KAAKqmK,mBAELz9F,IACJwC,QAAS,WAEPprE,KAAKsmK,eAAiB,MAExBtpF,QAAS,WACP,IAAItqC,EAAQ1yC,KAEZA,KAAK6lK,WAAY,EACjB7lK,KAAKmrE,WAAU,WACTz4B,EAAMu3B,KACR1L,IAAU,WACR7rB,EAAM03B,aAKZpqE,KAAK00E,aAAa1M,GAAuBlW,GAAY+D,KAAkB,SAAUj/C,GAC3EA,IAAO87B,EAAMsuC,UACftuC,EAAM03B,UAIVpqE,KAAK00E,aAAa1M,GAAuBlW,GAAYwC,KAAkB,SAAU19C,GAC1EA,GAAMA,IAAO87B,EAAMsuC,UACtBtuC,EAAMm6D,UAMV7sG,KAAK00E,aAAa3M,GAAiBhW,GAAcyB,KAAuB,SAAUmyG,GAE5EA,IAAYjzH,EAAMyzH,iBACpBzzH,EAAMm6D,WAIZvhC,cAAe,WACbtrE,KAAKumK,qBAEPvrJ,QAAS,CACPovD,KAAM,WACJ,IAAIyK,EAAS70E,KAEb,IAAKA,KAAK6qE,UAAW,CACnB7qE,KAAKqmK,gBACL,IAAI15B,EAAY3sI,KAAK0sI,WAAW72E,IAChC71D,KAAKuwG,UAAUo8B,GACf3sI,KAAK+lK,eAAiB/lK,KAAKgmK,cAAgB,EAC3ChmK,KAAKugG,MAAQrqD,KAAKthB,OAAS50B,KAAKqlK,YAAc,GAAK,GACnDrlK,KAAK8lK,UAAW,EAChB9lK,KAAK4kK,UAAW,EAChB5kK,KAAKmrE,WAAU,WAGb5M,IAAU,WACRsW,EAAOhK,WAAY,UAK3BgiC,KAAM,WACJ,IAAI1kB,EAASnoF,KAEb,GAAIA,KAAK6qE,UAAW,CAClB,IAAI+hE,EAAY5sI,KAAK0sI,WAAWp4E,IAChCt0D,KAAKuwG,UAAUq8B,GACf5sI,KAAKwmK,iBAAgB,GACrBxmK,KAAK+lK,eAAiB/lK,KAAKgmK,cAAgB,EAC3ChmK,KAAKumK,oBACLvmK,KAAK8lK,UAAW,EAChBvnG,IAAU,WACR4pB,EAAOtd,WAAY,OAIzB6hE,WAAY,SAAoBt3H,GAC9B,IAAIzV,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO,IAAI0iG,GAAQz4F,EAAMy/B,GAAcA,GAAc,CACnDk5D,YAAY,EACZzhG,OAAQtM,KAAKm3E,KAAO,KACpBoG,cAAe,MACd59E,GAAU,GAAI,CACfsuG,UAAWjuG,KACXkuG,YAAaluG,KAAKghF,aAGtBuvB,UAAW,SAAmBF,GAC5B,IAAIj7F,EAAOi7F,EAAQj7F,KACnBpV,KAAKi1E,WAAWlN,GAAiBjW,GAAY18C,GAAOi7F,GACpDrwG,KAAKirE,MAAM71D,EAAMi7F,IAEnBg2D,cAAe,WACb,IAAIrmK,KAAKiqI,OAAT,CAIA,IAAIk8B,EAAkBnmK,KAAKmmK,gBAE3B,IAAKpB,GAAAA,GAAAA,UAAmBoB,GAAkB,CACxC,IAAIh/B,EAAMrrH,SAASE,cAAc,OACjCF,SAAS0jD,KAAK7yC,YAAYw6G,GAC1B,IAAIw+B,EAAU,IAAIhB,GAAS,CACzBxkK,OAAQH,KAAKS,MACbykI,UAAW,CACT96H,KAAM+7J,KAGVR,EAAQv1B,OAAOjJ,MAGnBs/B,kBAAmB,WACjBzmK,KAAKumK,oBAEAvmK,KAAKwlK,aACRxlK,KAAKsmK,eAAiBnxI,WAAWn1B,KAAK6sG,KAAM7sG,KAAKgmK,eAAiBhmK,KAAKkmK,kBACvElmK,KAAK+lK,eAAiB7vH,KAAKthB,MAC3B50B,KAAKgmK,cAAgB,IAGzBO,kBAAmB,WACjB/6F,aAAaxrE,KAAKsmK,gBAClBtmK,KAAKsmK,eAAiB,MAExBE,gBAAiB,SAAyBp/F,GACxC,IAAI14D,EAAK1O,KAAKsoF,MAAM,WACpBnhB,GAAWC,EAAI14D,EAAI,aAAc1O,KAAK0mK,QAAS9vG,IAC/CuQ,GAAWC,EAAI14D,EAAI,aAAc1O,KAAK2mK,UAAW/vG,KAEnD8vG,QAAS,WAEP,IAAI1mK,KAAKwlK,aAAcxlK,KAAK61F,cAAiB71F,KAAKsmK,iBAAkBtmK,KAAKgmK,cAAzE,CAIA,IAAItuI,EAASwe,KAAKthB,MAAQ50B,KAAK+lK,eAE3BruI,EAAS,IACX13B,KAAKumK,oBACLvmK,KAAKgmK,cAAgBl6F,GAAQ9rE,KAAKkmK,iBAAmBxuI,EAAQ0tI,OAGjEuB,UAAW,WAEL3mK,KAAKwlK,YAAcxlK,KAAK61F,eAAiB71F,KAAKgmK,cAChDhmK,KAAKgmK,cAAgBhmK,KAAK+lK,eAAiB,EAI7C/lK,KAAKymK,qBAEPG,YAAa,WACX,IAAIp+E,EAASxoF,KAIbA,KAAKmrE,WAAU,WACb5M,IAAU,WACRiqB,EAAOqkB,cAIbkgC,cAAe,WACb/sI,KAAKuqI,iBAAkB,GAEzB/vC,aAAc,WACZx6F,KAAKuqI,iBAAkB,EACvB,IAAIs8B,EAAc7mK,KAAK0sI,WAAW52E,IAClC91D,KAAKuwG,UAAUs2D,GACf7mK,KAAKymK,oBACLzmK,KAAKwmK,iBAAgB,IAEvBt5B,cAAe,WACbltI,KAAKuqI,iBAAkB,GAEzB7vC,aAAc,WACZ16F,KAAKuqI,iBAAkB,EACvBvqI,KAAKugG,MAAQ,EACbvgG,KAAKgmK,cAAgBhmK,KAAK+lK,eAAiB,EAC3C,IAAIc,EAAc7mK,KAAK0sI,WAAWr4E,IAClCr0D,KAAKuwG,UAAUs2D,GACf7mK,KAAK4kK,UAAW,GAGlBkC,UAAW,SAAmBhmK,GAC5B,IAAI4nF,EAAS1oF,KAET0vE,EAAQ1vE,KAAK0vE,MACb0gB,EAAYpwF,KAAKowF,UACjBlpD,EAAO2mC,GAAO7tE,MACd+mK,EAAiB,GACjB32F,EAASpwE,KAAKsmE,cAActK,GAAuBo0B,GAEnDhgB,EACF22F,EAAe/3J,KAAKohE,GACXV,GACTq3F,EAAe/3J,KAAKlO,EAAE,SAAU,CAC9BwnE,YAAa,QACZoH,IAGA1vE,KAAKg/H,eACR+nC,EAAe/3J,KAAKlO,EAAEsnE,GAAc,CAClCE,YAAa,eACblB,GAAI,CACFqB,MAAO,WACLigB,EAAOmkB,YAMf,IAAI7iB,EAAUlpF,IAEVimK,EAAepkK,OAAS,IAC1BqnF,EAAUlpF,EAAEd,KAAKwhF,UAAW,CAC1BlZ,YAAa,eACbC,MAAOvoE,KAAKytF,aACXs5E,IAGL,IAAIh5B,EAAQjtI,EAAEomC,EAAO+uC,GAAQ,MAAO,CAClC3N,YAAa,aACbC,MAAOvoE,KAAK+sF,UACZ5/D,MAAO+Z,EAAOk+B,GAAWgS,GAAWp3E,MAAQ,GAC5ConE,GAAIlgC,EAAO,CACTuhC,MAAOzoE,KAAK4mK,aACV,IACH5mK,KAAKsmE,cAAc3N,GAAmBy3B,IACzC,OAAOtvF,EAAE,MAAO,CACdwnE,YAAa,QACbC,MAAOvoE,KAAK0lK,WACZl9F,MAAOxoE,KAAKw2E,cACZl0E,IAAK,SAASrB,OAAOjB,KAAK6qD,KAC1BkhC,IAAK,SACJ,CAAC/B,EAAS+jD,MAGjB5uI,OAAQ,SAAgB2B,GACtB,IAAKd,KAAK4kK,WAAa5kK,KAAK6lK,UAC1B,OAAO/kK,IAGT,IAAIy/F,EAAQvgG,KAAKugG,MACbymE,EAAWhnK,KAAKiqI,OAChB67B,EAAW9lK,KAAK8lK,SAChBP,EAAWvlK,KAAKulK,SAChBn7J,EAAO,WAAWnJ,OAAOjB,KAAK6qD,KAC9Bo8G,EAASnmK,EAAE,MAAO,CACpBwnE,YAAa,UACbC,MAAOvoE,KAAKimK,aACZz9F,MAAO3zB,GAAcA,GAAc,GAAImyH,EAAW,GAAKhnK,KAAKikI,kBAAmB,GAAI,CACjFrtH,GAAI5W,KAAKghF,OAAO,gBAChBrV,KAAMm6F,EAAW,KAAOP,EAAW,SAAW,QAC9C,YAAaO,EAAW,KAAOP,EAAW,SAAW,YACrD,cAAeO,EAAW,KAAO,SAEnCxjK,IAAK8H,EACL2hF,IAAK,WACJ,CAACjrF,EAAE0oE,GAAc,CAClBr8C,MAAO,CACLm8C,OAAQtpE,KAAKspE,QAEflC,GAAIpnE,KAAKomK,oBACR,CAACpmK,KAAK6qE,UAAY7qE,KAAK8mK,UAAUhmK,GAAKA,QACzC,OAAOA,EAAEomK,GAAAA,GAAQ,CACf/5I,MAAO,CACL/iB,KAAMA,EACNqC,GAAIzM,KAAKmmK,gBACT5lE,MAAOA,EACP4kE,MAAM,EACNplG,SAAUinG,IAEX,CAACC,OI5ZR,SAASx3H,GAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASyzC,GAAkBzoC,EAAQ6gB,GAAS,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,IAAK,CAAE,IAAI8P,EAAamT,EAAMjjB,GAAI8P,EAAWL,WAAaK,EAAWL,aAAc,EAAOK,EAAW5X,cAAe,EAAU,UAAW4X,IAAYA,EAAWJ,UAAW,GAAMxW,OAAOtB,eAAewK,EAAQ0N,EAAW1X,IAAK0X,IAE7S,SAASg7B,GAAazxC,EAAa0xC,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxxC,EAAYrB,UAAW+yC,GAAiBC,GAAaH,GAAkBxxC,EAAa2xC,GAAc9xC,OAAOtB,eAAeyB,EAAa,YAAa,CAAEqW,UAAU,IAAiBrW,EAE/Q,SAASgV,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAE3M,SAAS8+B,GAAmBjM,GAAO,OAAOkM,GAAmBlM,IAAQmM,GAAiBnM,IAAQoM,GAA4BpM,IAAQqM,KAElI,SAASA,KAAuB,MAAM,IAAI5lD,UAAU,wIAEpD,SAAS2lD,GAA4B7Q,EAAG+Q,GAAU,GAAK/Q,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOgR,GAAkBhR,EAAG+Q,GAAS,IAAI11C,EAAIrO,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAAG1kC,MAAM,GAAI,GAAiE,MAAnD,WAAND,GAAkB2kC,EAAE5rC,cAAaiH,EAAI2kC,EAAE5rC,YAAYJ,MAAgB,QAANqH,GAAqB,QAANA,EAAoBxP,MAAMyK,KAAK0pC,GAAc,cAAN3kC,GAAqB,2CAA2C6C,KAAK7C,GAAW21C,GAAkBhR,EAAG+Q,QAAzG,GAE7S,SAASH,GAAiBK,GAAQ,GAAsB,qBAAXzrC,QAAmD,MAAzByrC,EAAKzrC,OAAO1N,WAA2C,MAAtBm5C,EAAK,cAAuB,OAAOplD,MAAMyK,KAAK26C,GAEtJ,SAASN,GAAmBlM,GAAO,GAAI54C,MAAMqQ,QAAQuoC,GAAM,OAAOuM,GAAkBvM,GAEpF,SAASuM,GAAkBvM,EAAKruC,IAAkB,MAAPA,GAAeA,EAAMquC,EAAIl4C,UAAQ6J,EAAMquC,EAAIl4C,QAAQ,IAAK,IAAIuH,EAAI,EAAGo9C,EAAO,IAAIrlD,MAAMuK,GAAMtC,EAAIsC,EAAKtC,IAAOo9C,EAAKp9C,GAAK2wC,EAAI3wC,GAAM,OAAOo9C,EAiBhL,IAAIjF,GAAY,WACZ+sF,GAAiB,aAKjBC,GAAa,CAAC,MAAMpuI,OAAO6lD,GAAmBx8C,GAAKo8C,GAAKygH,GAAY,CAAC,SAAU,eAE/E33B,GAAe,CACjB43B,aAAc,UACd13F,MAAO,eAILggE,GAAgB,SAAuB/vI,GACzC,OAAO0vI,GAAW5oF,QAAO,SAAUt1C,EAAM7O,GAKvC,OAJKmjD,GAAY9lD,EAAQ2C,MACvB6O,EAAK7O,GAAO3C,EAAQ2C,IAGf6O,IACN,KAIDu4C,GAAS,SAAgBjB,GAI3B,IAAI4+G,EAAa5+G,EAAIgB,OAAO,CAC1Br/C,KAAMqoD,GACNm9E,QAASg2B,GACTthC,UAAW,WAET,IAAIntD,EAAMn3E,KAAKm3E,IAEXA,GAAOA,EAAIhZ,YACbgZ,EAAIhZ,WAAWjpC,YAAYiiD,IAG/B6F,QAAS,WACP,IAAItqC,EAAQ1yC,KAGR6vI,EAAgB,WAElBn9F,EAAMm4B,WAAY,EAClBn4B,EAAMkyH,UAAW,EAEjBlyH,EAAMy4B,WAAU,WACdz4B,EAAMy4B,WAAU,WAGd5M,IAAU,WACR7rB,EAAM0yF,qBAOdplI,KAAKmyE,QAAQ4C,MAAMxe,GAA2Bs5E,GAE9C7vI,KAAK+0E,MAAM1gB,GAAmBw7E,GAE9B7vI,KAAK00E,aAAa3M,GAAiBhW,GAAcyB,KAAuB,SAAUmyG,GAE5EA,IAAYjzH,EAAMizH,SACpB91B,UAMJi3B,EAAY,SAAmB35I,EAAOglD,GACxC,IAAInqB,GAAc3F,IAAlB,CAMA,IAAIilH,EAAQ,IAAID,EAAW,CAGzBlnK,OAAQgyE,EACR+yD,UAAWrwF,GAAcA,GAAcA,GAAc,GAAI66F,GAAczrE,GAAmBnS,MAAepL,GAAKv5B,EAAO7iB,GAAKklI,MAAiB,GAAI,CAE7IvF,QAAQ,EACRh5C,SAAS,MAIb3mF,GAAKklI,IAActiI,SAAQ,SAAUo5C,GACnC,IAAIjkD,EAAQ8qB,EAAMm5B,GAEbb,GAAYpjD,KAEF,UAATikD,GAAoBT,GAASxjD,KAE/BA,EAAQ,CAAC8vE,EAAQwtC,eAAe,SAAU,CACxCp3C,MAAO,QACNlmE,KAGLilK,EAAMjhG,OAAOmpE,GAAalpF,IAASrlD,GAAOoB,OAI9C,IAAI8kI,EAAMrrH,SAASE,cAAc,OACjCF,SAAS0jD,KAAK7yC,YAAYw6G,GAC1BmgC,EAAMl3B,OAAOjJ,KAIXogC,EAAuB,WACzB,SAASA,EAAQh2D,GACf9hE,GAAgBzvC,KAAMunK,GAGtBx8I,GAAO/qB,KAAM,CACXuwI,IAAKh/B,EACLi/B,MAAOj/B,EAAG9wG,QAGZysB,GAAiBltB,KAAM,CACrBuwI,IAAK1pF,KACL2pF,MAAO3pF,OAsCX,OAhCA7R,GAAauyH,EAAS,CAAC,CACrBjlK,IAAK,QACLD,MAAO,SAAe0pB,GACpB,IAAIpsB,EAAUwL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,GAE7E4gB,IAAWi8B,GAAc3F,KAK9BykH,EAAUjyH,GAAcA,GAAc,GAAI66F,GAAc/vI,IAAW,GAAI,CACrEynK,aAAcr7I,IACZ/rB,KAAKuwI,OAGV,CACDjuI,IAAK,OACLD,MAAO,SAAcuU,GACfA,GACF5W,KAAKwwI,MAAMvlE,MAAMjD,GAAuBlW,GAAY+D,IAAkBj/C,KAIzE,CACDtU,IAAK,OACLD,MAAO,WACL,IAAIuU,EAAKzL,UAAUxI,OAAS,QAAsBR,IAAjBgJ,UAAU,GAAmBA,UAAU,GAAK,KAE7EnL,KAAKwwI,MAAMvlE,MAAMjD,GAAuBlW,GAAYwC,IAAkB19C,OAInE2wJ,EAlDkB,GAsD3B9+G,EAAIwd,MAAM,CACRjlE,aAAc,WAGZhB,KAAKovI,IAAkB,IAAIm4B,EAAQvnK,SAKlCghB,GAAeynC,EAAIvmD,UAAWmgD,KACjCvgD,GAAe2mD,EAAIvmD,UAAWmgD,GAAW,CACvC37C,IAAK,WAMH,OAJK1G,MAASA,KAAKovI,KACjB59F,GAAK,IAAKvwC,OAAOohD,GAAW,0DAA8DyP,IAGrF9xD,KAAKovI,QAMTo4B,GAA6Bh+G,GAAc,CACpDN,QAAS,CACPQ,OAAQA,MCpOR+9G,GAA2Bj+G,GAAc,CAC3CR,WAAY,CACV48G,OAAQA,GACRjB,SAAUA,IAGZz7G,QAAS,CACPs+G,cAAeA,MCXnB,SAASjvJ,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAe3M,IAAI0/I,GAAa,iBAEbzkB,GAAiB,cAEjBC,GAAgB,CAClB3/E,OAAO,EACPm6E,OAAO,EACPj1E,OAAO,EACPhF,MAAM,EACN0/E,QAAQ,GAGNC,GAAS,UACTukB,GAAmB,oBACnBtkB,GAAW,YACXC,GAAc,sFACdC,GAAa,oCACbC,GAAU,UACVC,GAAc,WACdC,GAAc,WACdC,GAAW,YACXC,GAAY,UACZC,GAAW,MAGXC,GAAgB,SAAuBC,EAAUlzD,GAInD,IAAIxoC,EAAS,CACXqnB,WAAOvtE,EACPsjI,QAAS,GAET1hC,UAAW,MACX83C,kBAAmB,OACnB/a,WAAW,EAEX7xD,WAAW,EACXjkE,OAAQ,EACR4L,GAAI,KACJ4U,MAAM,EACNixH,aAAa,EACb18E,UAAU,EACVwwD,MAAOtsD,GAAmBjS,GAAc,QAAS,IACjDs9C,SAAU3tG,OAAOsiE,GAAmBjS,GAAc,WAAY,iBAC9D4pF,gBAAiBn/E,GAAUwH,GAAmBjS,GAAc,kBAAmB,GAAI,GACnFyY,QAASxG,GAAmBjS,GAAc,WAC1CwqF,YAAav4E,GAAmBjS,GAAc,gBAehD,GAZInM,GAASk+F,EAAS1hJ,QAAUyjD,GAASi+F,EAAS1hJ,QAGvC2hC,GAAW+/G,EAAS1hJ,OAD7BgmD,EAAOqnB,MAAQq0E,EAAS1hJ,MAIf2jD,GAAc+9F,EAAS1hJ,SAEhCgmD,EAASxT,GAAcA,GAAc,GAAIwT,GAAS07F,EAAS1hJ,QAIzDojD,GAAY4C,EAAOqnB,OAAQ,CAE7B,IAAI15D,EAAO66E,EAAM76E,MAAQ,GACzBqyC,EAAOqnB,MAAQ15D,EAAKwyD,QAAU7iB,GAAkB3vC,EAAKwyD,MAAMkH,OAAS15D,EAAKwyD,MAAMkH,WAAQvtE,EAIpF6jD,GAAcqC,EAAOkoE,SACxBloE,EAAOkoE,MAAQ,CACbnmD,KAAM3N,GAAUpU,EAAOkoE,MAAO,GAC9B1jB,KAAMpwC,GAAUpU,EAAOkoE,MAAO,KAK9BwzB,EAAS7vI,MAGXm0C,EAAOy4E,UAAY,IAAI7/H,OAAO8iJ,EAAS7vI,MAIzC5J,GAAKy5I,EAASpyD,WAAWzkF,SAAQ,SAAU4gC,GACzC,GAAIs1G,GAAO9uI,KAAKw5B,GAEdua,EAAO78B,MAAO,OACT,GAAIm8I,GAAiBrzJ,KAAKw5B,GAE/Bua,EAAOo0F,aAAc,OAChB,GAAI4G,GAAS/uI,KAAKw5B,GAEvBua,EAAO4mB,WAAY,OACd,GAAIq0E,GAAYhvI,KAAKw5B,GAE1Bua,EAAO07C,UAAYj2D,OACd,GAAIy1G,GAAWjvI,KAAKw5B,GAEzBA,EAAc,iBAARA,EAAyB,eAAiBA,EAChDua,EAAOinD,SAAWxhE,OACb,GAAI01G,GAAQlvI,KAAKw5B,GAAM,CAE5B,IAAIyiF,EAAQ9zD,GAAU3uB,EAAIp8B,MAAM,GAAI,GACpC22C,EAAOkoE,MAAMnmD,KAAOmmD,EACpBloE,EAAOkoE,MAAM1jB,KAAO0jB,OACXkzB,GAAYnvI,KAAKw5B,GAE1Bua,EAAOkoE,MAAMnmD,KAAO3N,GAAU3uB,EAAIp8B,MAAM,GAAI,GACnCgyI,GAAYpvI,KAAKw5B,GAE1Bua,EAAOkoE,MAAM1jB,KAAOpwC,GAAU3uB,EAAIp8B,MAAM,GAAI,GACnCiyI,GAASrvI,KAAKw5B,GAEvBua,EAAOr9C,OAASyxD,GAAU3uB,EAAIp8B,MAAM,GAAI,GAC/BkyI,GAAUtvI,KAAKw5B,KAExBua,EAAOoiB,QAAU38B,EAAIp8B,MAAM,IAAM,SAKrC,IAAIsyI,EAAmB,GA8BvB,OA5BA/iJ,GAAOonD,EAAOo9E,SAAW,IAAI31H,OAAO23C,IAAUvmC,KAAK,KAAKiS,OAAO1M,cAAczH,MAAM6kI,IAAU32I,SAAQ,SAAUu4H,GACzGyd,GAAczd,KAChBue,EAAiBve,IAAW,MAIhCn7H,GAAKy5I,EAASpyD,WAAWzkF,SAAQ,SAAU4gC,GACzCA,EAAMA,EAAIrnB,cAENy8H,GAAcp1G,KAEhBk2G,EAAiBl2G,IAAO,MAI5Bua,EAAOo9E,QAAUn7H,GAAK05I,GAAkB9iI,KAAK,KAEtB,SAAnBmnC,EAAOo9E,UAETp9E,EAAOo9E,QAAU,SAGdp9E,EAAOo9E,UAEVp9E,EAAOo9E,QAAUwd,IAIZ56F,GAILu/G,GAAe,SAAsBl5J,EAAIq1I,EAAUlzD,GACrD,GAAK/hE,EAAL,CAKA,IAAIu5B,EAASy7F,GAAcC,EAAUlzD,GAErC,IAAKniF,EAAGg5J,IAAa,CACnB,IAAIv1F,EAAU0e,EAAM9wF,QACpB2O,EAAGg5J,IAAc,IAAIlqB,GAAU,CAC7Br9I,OAAQgyE,EAERryE,SAAUikI,GAAW5xD,OAAShwE,KAEhCuM,EAAGg5J,IAAYxjB,iBAAmB,GAClCx1I,EAAGg5J,IAAY/yF,IAAI9e,IAAiB,WAI9B7xB,GAAWqkB,EAAOqnB,QACpBhhE,EAAGg5J,IAAYzoB,WAAW,CACxBvvE,MAAOrnB,EAAOqnB,MAAMhhE,QAM5B,IAAIsH,EAAO,CACT05D,MAAOrnB,EAAOqnB,MACd6tE,SAAUl1F,EAAOo9E,QACjB1hC,UAAW17C,EAAO07C,UAClB83C,kBAAmBxzF,EAAOwzF,kBAC1BpxE,QAASpiB,EAAOoiB,QAChB+xE,YAAan0F,EAAOm0F,YACpB1b,UAAWz4E,EAAOy4E,UAClBxxB,SAAUjnD,EAAOinD,SACjBihB,MAAOloE,EAAOkoE,MACdvlH,OAAQq9C,EAAOr9C,OACfs+D,QAASjhB,EAAO4mB,UAChBr4D,GAAIyxC,EAAOzxC,GACX6lI,YAAap0F,EAAOo0F,YACpB18E,SAAU1X,EAAO0X,SACjBv0C,KAAM68B,EAAO78B,MAEX24H,EAAUz1I,EAAGg5J,IAAYxjB,iBAG7B,GAFAx1I,EAAGg5J,IAAYxjB,iBAAmBluI,GAE7Bo9D,GAAWp9D,EAAMmuI,GAAU,CAE9B,IAAIC,EAAU,CACZ93I,OAAQoC,GAEVpE,GAAK0L,GAAM9I,SAAQ,SAAUo5C,GAEvBtwC,EAAKswC,KAAU69F,EAAQ79F,KAEzB89F,EAAQ99F,GAAiB,UAATA,GAAoBtiB,GAAWhuB,EAAKswC,IAAStwC,EAAKswC,GAAM53C,GAAMsH,EAAKswC,OAGvF53C,EAAGg5J,IAAYzoB,WAAWmF,MAK1ByjB,GAAgB,SAAuBn5J,GACrCA,EAAGg5J,MACLh5J,EAAGg5J,IAAYtiC,WACf12H,EAAGg5J,IAAc,aAGZh5J,EAAGg5J,KAIDI,GAAY,CACrBx6J,KAAM,SAAcoB,EAAIq1I,EAAUlzD,GAChC+2E,GAAal5J,EAAIq1I,EAAUlzD,IAI7BgB,iBAAkB,SAA0BnjF,EAAIq1I,EAAUlzD,GAExDA,EAAM9wF,QAAQorE,WAAU,WACtBy8F,GAAal5J,EAAIq1I,EAAUlzD,OAG/BiB,OAAQ,SAAgBpjF,GACtBm5J,GAAcn5J,KCrQdq5J,GAA+Bv+G,GAAc,CAC/CP,WAAY,CACV6+G,UAAWA,MCDXE,GAA6Bx+G,GAAc,CAC7CR,WAAY,CACV04F,SAAUA,IAEZx4F,QAAS,CACP6+G,gBAAiBA,MC8CVE,GAAgCz+G,GAAc,CACvDN,QAAS,CACP0iB,YAAaA,GACbmB,aAAcA,GACdmO,aAAcA,GACdE,YAAaA,GACbc,iBAAkBA,GAClBC,aAAcA,GACdO,kBAAmBA,GACnBgB,oBAAqBA,GACrByO,eAAgBA,GAChBqH,WAAYA,GACZ4G,eAAgBA,GAChBiE,eAAgBA,GAChB2W,eAAgBA,GAChBa,YAAaA,GACbqB,WAAYA,GACZwE,mBAAoBA,GACpBsE,qBAAsBA,GACtB4E,eAAgBA,GAChB0D,gBAAiBA,GACjBgD,gBAAiBA,GACjBI,gBAAiBA,GACjBsC,iBAAkBA,GAClBa,iBAAkBA,GAClBoE,qBAAsBA,GACtB8F,eAAgBA,GAChBwB,mBAAoBA,GACpBoF,qBAAsBA,GACtBE,YAAaA,GACbe,iBAAkBA,GAClBY,gBAAiBA,GACjBW,aAAcA,GACdC,WAAYA,GACZO,gBAAiBA,GACjBO,YAAaA,GACb0N,YAAaA,GACbkB,UAAWA,GACXgB,aAAcA,GACdkB,cAAeA,GACfmF,iBAAkBA,GAClBwB,oBAAqBA,GACrB6J,cAAeA,GACfmB,eAAgBA,GAChB+B,cAAeA,GACfiE,eAAgBA,GAChBC,cAAeA,GACfiV,YAAaA,GACb0D,WAAYA,GACZC,WAAYA,GACZiD,YAAaA,GACbO,cAAeA,MCvGfE,GAA6B1+G,GAAc,CAC7CP,WAAY,CACVqzD,QAASA,MCFT6rD,GAA6B3+G,GAAc,CAC7CP,WAAY,CACVimF,QAASA,MCJb,SAAS32H,GAAQnF,EAAQgzC,GAAkB,IAAI97C,EAAOlH,OAAOkH,KAAK8I,GAAS,GAAIhQ,OAAOgnB,sBAAuB,CAAE,IAAI5H,EAAUpf,OAAOgnB,sBAAsBhX,GAASgzC,IAAmB5jC,EAAUA,EAAQ1S,QAAO,SAAUo8B,GAAO,OAAO9oC,OAAOyV,yBAAyBzF,EAAQ84B,GAAKvyB,eAAiBrP,EAAK0E,KAAKoB,MAAM9F,EAAMkY,GAAY,OAAOlY,EAE9U,SAASuqC,GAAcvoC,GAAU,IAAK,IAAIpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CAAE,IAAIwO,EAAS,MAAQvN,UAAUjB,GAAKiB,UAAUjB,GAAK,GAAIA,EAAI,EAAIqO,GAAQnV,OAAOsV,IAAS,GAAIxL,SAAQ,SAAU5K,GAAOwyC,GAAgBxoC,EAAQhK,EAAKoW,EAAOpW,OAAYc,OAAO48B,0BAA4B58B,OAAO8pB,iBAAiB5gB,EAAQlJ,OAAO48B,0BAA0BtnB,IAAWH,GAAQnV,OAAOsV,IAASxL,SAAQ,SAAU5K,GAAOc,OAAOtB,eAAewK,EAAQhK,EAAKc,OAAOyV,yBAAyBH,EAAQpW,OAAa,OAAOgK,EAEjf,SAASwoC,GAAgB9sB,EAAK1lB,EAAKD,GAAiK,OAApJC,KAAO0lB,EAAO5kB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAAED,MAAOA,EAAOsX,YAAY,EAAMvX,cAAc,EAAMwX,UAAU,IAAkBoO,EAAI1lB,GAAOD,EAAgB2lB,EAE3M,SAASynB,GAAgBz3B,EAAUzU,GAAe,KAAMyU,aAAoBzU,GAAgB,MAAM,IAAIjC,UAAU,qCAEhH,SAASyzC,GAAkBzoC,EAAQ6gB,GAAS,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,IAAK,CAAE,IAAI8P,EAAamT,EAAMjjB,GAAI8P,EAAWL,WAAaK,EAAWL,aAAc,EAAOK,EAAW5X,cAAe,EAAU,UAAW4X,IAAYA,EAAWJ,UAAW,GAAMxW,OAAOtB,eAAewK,EAAQ0N,EAAW1X,IAAK0X,IAE7S,SAASg7B,GAAazxC,EAAa0xC,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxxC,EAAYrB,UAAW+yC,GAAiBC,GAAaH,GAAkBxxC,EAAa2xC,GAAc9xC,OAAOtB,eAAeyB,EAAa,YAAa,CAAEqW,UAAU,IAAiBrW,EAoB/Q,IAAID,GAAO,gBACP8kK,GAA2B,gBAC3BC,GAAoB,SACpBC,GAA0B,oBAC1BC,GAAqB,YACrBC,GAAqB,YACrBC,GAAsB,mBACtBC,GAAoB,qBACpBC,GAA0B,iBAC1BC,GAA2B,mBAC3BC,GAA2B9gG,GAAiB,cAAe,YAC3D+gG,GAAgB,SAChBC,GAAkB,WAClBC,GAAU,CACZ/2J,QAAS,OACTjH,OAAQ,GACRgG,OAAQ,OACRi4J,SAAU,IAERC,GAAc,CAChBj3J,QAAS,6BACTjH,OAAQ,SACRgG,OAAQ,SACRi4J,SAAU,UAGRr0E,GAAsB,CAAC,sBAAuB,gBAAiB,iBAAkB,kBAMjFrvC,GAAS,SAAgBv9B,GAG3B,OAAO4zB,GAAe5zB,GAAK1J,MAAM,iBAAiB,GAAGmI,eAMnD0iJ,GAAkB,SAAyBC,EAAe/gH,EAAQghH,GAGpE,IAAK,IAAInjK,KAAYmjK,EACnB,GAAIroJ,GAAeqoJ,EAAanjK,GAAW,CACzC,IAAIojK,EAAgBD,EAAYnjK,GAC5B7D,EAAQgmD,EAAOniD,GACfqjK,EAAYlnK,GAAS28D,GAAU38D,GAAS,UAAYkjD,GAAOljD,GAE/DknK,EAAYlnK,GAASA,EAAMmnK,OAAS,YAAcD,EAE7C,IAAI1pJ,OAAOypJ,GAAeh1J,KAAKi1J,IAElC/3H,GAAK,GAAGvwC,OAAOmoK,EAAe,cAAenoK,OAAOiF,EAAU,qBAAuBjF,OAAOsoK,EAAW,yBAA2BtoK,OAAOqoK,EAAe,QAcrJG,GAEI,WACb,SAASA,EAAYx3J,EAASo2C,EAAQ5nD,GACpCgvC,GAAgBzvC,KAAMypK,GAGtBzpK,KAAKm3E,IAAMllE,EACXjS,KAAK0pK,UAAY,KACjB1pK,KAAK2pK,UAAY,CAACpB,GAAoBE,GAAqBE,IAAyBznJ,KAAK,KACzFlhB,KAAK4pK,SAAW,GAChB5pK,KAAK6pK,SAAW,GAChB7pK,KAAK8pK,cAAgB,KACrB9pK,KAAK+pK,cAAgB,EACrB/pK,KAAKgqK,eAAiB,KACtBhqK,KAAKiqK,kBAAoB,KACzBjqK,KAAKkqK,iBAAmB,KACxBlqK,KAAKS,MAAQA,GAAS,KACtBT,KAAKmqK,QAAU,KACfnqK,KAAKoqK,aAAa/hH,GAqYpB,OAlYArT,GAAay0H,EAAa,CAAC,CACzBnnK,IAAK,eACLD,MAAO,SAAsBgmD,EAAQ5nD,GAC/BT,KAAK0pK,YAEP1pK,KAAKqqK,WACLrqK,KAAK0pK,UAAY,MAGnB,IAAIY,EAAMz1H,GAAcA,GAAc,GAAI70C,KAAKwK,YAAYw+J,SAAU3gH,GASrE,GAPI5nD,IACFT,KAAKS,MAAQA,GAGf0oK,GAAgBnpK,KAAKwK,YAAY+/J,KAAMD,EAAKtqK,KAAKwK,YAAY0+J,aAC7DlpK,KAAKmqK,QAAUG,EAEXtqK,KAAKS,MAAO,CACd,IAAIkP,EAAO3P,KACXA,KAAKS,MAAM0qE,WAAU,WACnBx7D,EAAKuuI,iBAGPl+I,KAAKk+I,WAGR,CACD57I,IAAK,UACLD,MAAO,WACLrC,KAAKqqK,WACL7+F,aAAaxrE,KAAKgqK,gBAClBhqK,KAAKgqK,eAAiB,KACtBhqK,KAAKm3E,IAAM,KACXn3E,KAAKmqK,QAAU,KACfnqK,KAAK0pK,UAAY,KACjB1pK,KAAK2pK,UAAY,KACjB3pK,KAAK4pK,SAAW,KAChB5pK,KAAK6pK,SAAW,KAChB7pK,KAAK8pK,cAAgB,KACrB9pK,KAAK+pK,cAAgB,OAEtB,CACDznK,IAAK,SACLD,MAAO,WACL,IAAIqwC,EAAQ1yC,KAERwqK,EAAWxqK,KAAKyqK,cAEhBD,GAAiC,SAArBA,EAASnxE,SACvBryB,GAAQwjG,EAAU,SAAUxqK,KAAM42D,IAGpCoQ,GAAQzoD,OAAQ,SAAUve,KAAM42D,IAChCoQ,GAAQzoD,OAAQ,SAAUve,KAAM42D,IAChCoQ,GAAQzoD,OAAQ,oBAAqBve,KAAM42D,IAC3Cg+B,GAAoB1nF,SAAQ,SAAU+5D,GACpCD,GAAQzoD,OAAQ0oD,EAAWv0B,EAAOkkB,OAEpC52D,KAAK0qK,cAAa,GAElB1qK,KAAK6/I,YAAY,aAElB,CACDv9I,IAAK,WACLD,MAAO,WACL,IAAIwyE,EAAS70E,KAETwqK,EAAWxqK,KAAKyqK,cACpBzqK,KAAK0qK,cAAa,GAEdF,GAAiC,SAArBA,EAASnxE,SACvBnyB,GAASsjG,EAAU,SAAUxqK,KAAM42D,IAGrCsQ,GAAS3oD,OAAQ,SAAUve,KAAM42D,IACjCsQ,GAAS3oD,OAAQ,SAAUve,KAAM42D,IACjCsQ,GAAS3oD,OAAQ,oBAAqBve,KAAM42D,IAC5Cg+B,GAAoB1nF,SAAQ,SAAU+5D,GACpCC,GAAS3oD,OAAQ0oD,EAAW4N,EAAQje,SAGvC,CACDt0D,IAAK,eACLD,MAAO,SAAsB+kE,GAC3B,IAAI+gB,EAASnoF,KAGbA,KAAKiqK,mBAAqBjqK,KAAKiqK,kBAAkBx4E,aACjDzxF,KAAKkqK,kBAAoBlqK,KAAKkqK,iBAAiBz4E,aAC/CzxF,KAAKiqK,kBAAoB,KACzBjqK,KAAKkqK,iBAAmB,KAEpB9iG,IACFpnE,KAAKkqK,iBAAmBz2E,GAAWzzF,KAAKm3E,KAAK,WAC3CgR,EAAO03D,YAAY,cAClB,CACD3rD,SAAS,EACTD,WAAW,EACXsD,YAAY,EACZC,gBAAiB,CAAC,UAEpBx3F,KAAKiqK,kBAAoBx2E,GAAWzzF,KAAKyqK,eAAe,WACtDtiF,EAAO03D,YAAY,cAClB,CACD3rD,SAAS,EACTD,WAAW,EACXjqE,eAAe,EACfutE,YAAY,EACZC,gBAAiB,CAAC,KAAM,QAAS,cAKtC,CACDl1F,IAAK,cACLD,MAAO,SAAqBiyB,GAC1B,IAAIlf,EAAOywC,GAASvxB,GAASA,EAAQA,EAAMlf,KACvCzF,EAAO3P,KAEP2qK,EAAiB,WACdh7J,EAAKq6J,iBACRr6J,EAAKq6J,eAAiB70I,YAAW,WAC/BxlB,EAAK6jJ,UACL7jJ,EAAKgP,UACLhP,EAAKq6J,eAAiB,OACrBr6J,EAAKw6J,QAAQlB,YAIP,WAAT7zJ,GACGpV,KAAKiqK,mBAGRjqK,KAAKk+I,SAGPl+I,KAAK2e,WACI,8CAA8CrK,KAAKc,IAE5Du1J,MAIH,CACDroK,IAAK,UACLD,MAAO,WACL,IAAImmF,EAASxoF,KAETwqK,EAAWxqK,KAAKyqK,cAEpB,GAAKD,EAAL,CAIA,IAAII,EAAaJ,IAAaA,EAASjsJ,OAASwqJ,GAAkBD,GAC9D93J,EAAiC,SAAxBhR,KAAKmqK,QAAQn5J,OAAoB45J,EAAa5qK,KAAKmqK,QAAQn5J,OACpE65J,EAAW75J,IAAW+3J,GAAkB7mJ,GAAWlX,GACnD8/J,EAAa95J,IAAW+3J,GAAkB/oK,KAAK+qK,eAAiB,EA+CpE,OA9CA/qK,KAAK4pK,SAAW,GAChB5pK,KAAK6pK,SAAW,GAChB7pK,KAAK+pK,cAAgB/pK,KAAKgrK,kBAE1B5qG,GAAUpgE,KAAK2pK,UAAW3pK,KAAKm3E,KAC9BtnE,KAAI,SAAUq3B,GACb,OAAOs6B,GAAQt6B,EAAM,WAEtBp3B,QAAO,SAAUg+D,GAChB,OAAOA,GAAQjqB,EAAQvvC,KAAKw5D,GAAQ,OAErCj+D,KAAI,SAAUi+D,GAEb,IAAIl3D,EAAKk3D,EAAK95D,QAAQ6vC,EAAS,MAAM1wB,OAErC,IAAKvc,EACH,OAAO,KAIT,IAAIlI,EAAK+xD,GAAO7pD,EAAI4zJ,GAEpB,OAAI97J,GAAM4wD,GAAU5wD,GACX,CACL1D,OAAQyxD,GAAUouG,EAASn8J,GAAIyzD,IAAK,GAAK2oG,EACzCx+J,OAAQsK,GAIL,QACN9G,OAAO23C,IACT/rB,MAAK,SAAU5Y,EAAGC,GACjB,OAAOD,EAAE9X,OAAS+X,EAAE/X,UAErBy7C,QAAO,SAAUt1C,EAAM6e,GAStB,OARK7e,EAAK6e,EAAK1jB,UACbk8E,EAAOohF,SAAS56J,KAAKghB,EAAKhlB,QAE1Bw9E,EAAOqhF,SAAS76J,KAAKghB,EAAK1jB,QAE1B6E,EAAK6e,EAAK1jB,SAAU,GAGf6E,IACN,IAEInR,QAGR,CACDsC,IAAK,UACLD,MAAO,WACL,IAAIk/F,EAAYvhG,KAAK+qK,eAAiB/qK,KAAKmqK,QAAQn/J,OAC/CuvF,EAAev6F,KAAKgrK,kBACpBC,EAAYjrK,KAAKmqK,QAAQn/J,OAASuvF,EAAev6F,KAAKkrK,kBAM1D,GAJIlrK,KAAK+pK,gBAAkBxvE,GACzBv6F,KAAKwzJ,UAGHjyD,GAAa0pE,EAAjB,CACE,IAAI3+J,EAAStM,KAAK6pK,SAAS7pK,KAAK6pK,SAASlnK,OAAS,GAE9C3C,KAAK8pK,gBAAkBx9J,GACzBtM,KAAKqkK,SAAS/3J,OAJlB,CAUA,GAAItM,KAAK8pK,eAAiBvoE,EAAYvhG,KAAK4pK,SAAS,IAAM5pK,KAAK4pK,SAAS,GAAK,EAG3E,OAFA5pK,KAAK8pK,cAAgB,UACrB9pK,KAAK+V,QAIP,IAAK,IAAI7L,EAAIlK,KAAK4pK,SAASjnK,OAAQuH,KAAM,CACvC,IAAIihK,EAAiBnrK,KAAK8pK,gBAAkB9pK,KAAK6pK,SAAS3/J,IAAMq3F,GAAavhG,KAAK4pK,SAAS1/J,KAAOu7C,GAAYzlD,KAAK4pK,SAAS1/J,EAAI,KAAOq3F,EAAYvhG,KAAK4pK,SAAS1/J,EAAI,IAEjKihK,GACFnrK,KAAKqkK,SAASrkK,KAAK6pK,SAAS3/J,QAIjC,CACD5H,IAAK,cACLD,MAAO,WACL,GAAIrC,KAAK0pK,UACP,OAAO1pK,KAAK0pK,UAGd,IAAIc,EAAWxqK,KAAKmqK,QAAQl4J,QAE5B,OAAKu4J,GAEMxrG,GAAUwrG,EAASrzF,KAC5BqzF,EAAWA,EAASrzF,IACXtxB,GAAS2kH,KAClBA,EAAW/pG,GAAO+pG,IAGfA,GAILxqK,KAAK0pK,UAAiC,SAArBc,EAASnxE,QAAqB96E,OAASisJ,EACjDxqK,KAAK0pK,WAJH,MARA,OAcV,CACDpnK,IAAK,eACLD,MAAO,WACL,IAAImoK,EAAWxqK,KAAKyqK,cACpB,OAAOD,IAAajsJ,OAASisJ,EAAShoG,YAAcgoG,EAASjpE,YAE9D,CACDj/F,IAAK,kBACLD,MAAO,WACL,OAAOrC,KAAKyqK,cAAclwE,cAAgBzuB,GAAQhwD,SAAS0jD,KAAK+6B,aAAcz+E,SAASgmC,gBAAgBy4C,gBAExG,CACDj4F,IAAK,kBACLD,MAAO,WACL,IAAImoK,EAAWxqK,KAAKyqK,cACpB,OAAOD,IAAajsJ,OAASA,OAAO6kF,YAAczjC,GAAO6qG,GAAU5qG,SAEpE,CACDt9D,IAAK,WACLD,MAAO,SAAkBiK,GACvB,IAAIo8E,EAAS1oF,KAEbA,KAAK8pK,cAAgBx9J,EACrBtM,KAAK+V,QAEL,IAAIq1J,EAAQhrG,GAAUpgE,KAAK2pK,UAC1B3qJ,MAAM,KACNnP,KAAI,SAAUwwD,GACb,MAAO,GAAGp/D,OAAOo/D,EAAU,YAAap/D,OAAOqL,EAAQ,SAExD4U,KAAK,KAAMlhB,KAAKm3E,KACjBi0F,EAAMl+J,SAAQ,SAAUg6B,GACtB,GAAI+4B,GAAS/4B,EAAMkhI,IAA2B,CAE5C,IAAIiD,EAAWrtG,GAAQ0qG,GAAmBxhI,GAEtCmkI,GACF3iF,EAAO4iF,eAAe7qG,GAAOmoG,GAA0ByC,IAAW,GAIpE3iF,EAAO4iF,eAAepkI,GAAM,OACvB,CAELwhD,EAAO4iF,eAAepkI,GAAM,GAExB02B,GAAQ12B,EAAKg3B,cAAesqG,KAE9B9/E,EAAO4iF,eAAepkI,EAAKg3B,eAAe,GAK5C,IAAIxvD,EAAKw4B,EAET,MAAOx4B,EAAI,CACTA,EAAKsvD,GAAQsqG,GAAyB55J,GACtC,IAAI68J,EAAU78J,EAAKA,EAAG88J,uBAAyB,KAE3CD,GAAW3tG,GAAQ2tG,EAAS,GAAGtqK,OAAOsnK,GAAoB,MAAMtnK,OAAOwnK,MACzE//E,EAAO4iF,eAAeC,GAAS,GAI7BA,GAAW3tG,GAAQ2tG,EAAS/C,MAC9B9/E,EAAO4iF,eAAe7qG,GAAO8nG,GAAoBgD,IAAU,GAG3D7iF,EAAO4iF,eAAeC,GAAS,SAMnCH,GAASA,EAAMzoK,OAAS,GAAK3C,KAAKS,OACpCT,KAAKS,MAAMwqE,MAAM49F,GAA0Bv8J,EAAQ8+J,KAGtD,CACD9oK,IAAK,QACLD,MAAO,WACL,IAAIunF,EAAS5pF,KAEbogE,GAAU,GAAGn/D,OAAOjB,KAAK2pK,UAAW,MAAM1oK,OAAOunK,IAAqBxoK,KAAKm3E,KAAKrnE,QAAO,SAAUpB,GAC/F,OAAOuxD,GAASvxD,EAAI25J,OACnBn7J,SAAQ,SAAUwB,GACnB,OAAOk7E,EAAO0hF,eAAe58J,GAAI,QAGpC,CACDpM,IAAK,iBACLD,MAAO,SAAwBqM,EAAIsnE,GAC5BtnE,IAIDsnE,EACFjV,GAASryD,EAAI25J,IAEbpnG,GAAYvyD,EAAI25J,QAGlB,CAAC,CACH/lK,IAAK,OACLoE,IAAK,WACH,OAAOpD,KAER,CACDhB,IAAK,UACLoE,IAAK,WACH,OAAOsiK,KAER,CACD1mK,IAAK,cACLoE,IAAK,WACH,OAAOwiK,OAIJO,EAtZM,GC7FXgC,GAAe,mBAEfC,GAAe,QACf/nB,GAAW,2BAKXG,GAAgB,SAAuBC,GAGzC,IAAI17F,EAAS,GAmCb,OAjCI07F,EAAS7vI,MAGXm0C,EAAOp2C,QAAU,IAAIhR,OAAO8iJ,EAAS7vI,MAIvC5J,GAAKy5I,EAASpyD,WAAWzkF,SAAQ,SAAU4gC,GACrC49H,GAAap3J,KAAKw5B,GAEpBua,EAAOr9C,OAASyxD,GAAU3uB,EAAK,GACtB61G,GAASrvI,KAAKw5B,KAEvBua,EAAOr3C,OAAS88B,MAIhB+X,GAASk+F,EAAS1hJ,OAEpBgmD,EAAOp2C,QAAU8xI,EAAS1hJ,MACjByjD,GAASi+F,EAAS1hJ,OAE3BgmD,EAAOr9C,OAASmhE,GAAU43E,EAAS1hJ,OAC1BU,GAASghJ,EAAS1hJ,QAG3BiI,GAAKy5I,EAAS1hJ,OAAOyN,QAAO,SAAUyB,GACpC,QAASk4J,GAAYP,YAAY33J,MAChCrE,SAAQ,SAAUqE,GACnB82C,EAAO92C,GAAKwyI,EAAS1hJ,MAAMkP,MAIxB82C,GAILsjH,GAAiB,SAAwBj9J,EAAIq1I,EAAUlzD,GAGzD,GAAK/hE,EAAL,CAKA,IAAIu5B,EAASy7F,GAAcC,GAEvBr1I,EAAG+8J,IACL/8J,EAAG+8J,IAAcrB,aAAa/hH,EAAQwoC,EAAM9wF,QAAQU,OAEpDiO,EAAG+8J,IAAgB,IAAIhC,GAAY/6J,EAAI25C,EAAQwoC,EAAM9wF,QAAQU,SAO7DmrK,GAAkB,SAAyBl9J,GAGzCA,EAAG+8J,MACL/8J,EAAG+8J,IAAcI,UACjBn9J,EAAG+8J,IAAgB,YACZ/8J,EAAG+8J,MAQHK,GAAc,CAEvBx+J,KAAM,SAAcoB,EAAIq1I,EAAUlzD,GAChC86E,GAAej9J,EAAIq1I,EAAUlzD,IAI/Bs+C,SAAU,SAAkBzgI,EAAIq1I,EAAUlzD,GACxC86E,GAAej9J,EAAIq1I,EAAUlzD,IAI/B4U,OAAQ,SAAgB/2F,EAAIq1I,EAAUlzD,GAChCkzD,EAAS1hJ,QAAU0hJ,EAASjwE,UAC9B63F,GAAej9J,EAAIq1I,EAAUlzD,IAKjCgB,iBAAkB,SAA0BnjF,EAAIq1I,EAAUlzD,GACpDkzD,EAAS1hJ,QAAU0hJ,EAASjwE,UAC9B63F,GAAej9J,EAAIq1I,EAAUlzD,IAKjCiB,OAAQ,SAAgBpjF,GACtBk9J,GAAgBl9J,KCpHhBq9J,GAAiCviH,GAAc,CACjDP,WAAY,CACV6iH,YAAaA,MCFbE,GAA+BxiH,GAAc,CAC/CP,WAAY,CACV8oC,UAAWA,MCKJk6E,GAAgCziH,GAAc,CACvDN,QAAS,CACPg/G,cAAeA,GACfC,cAAeA,GACf5jB,gBAAiBA,GACjBwnB,kBAAmBA,GACnB3tE,eAAgBA,GAChB2pE,gBAAiBA,GACjBiE,gBAAiBA,MCJjB1oK,GAAO,eAEP6lD,GAAuBL,GAAe,CACxCI,QAAS,CACP++G,iBAAkBA,GAClBgE,iBAAkBA,MAIlBC,GAA4B,CAC9B/iH,QAASA,GACT7lD,KAAMA,K,kCCtBR,IAAI6oK,EAAet8H,EAAQ,MAEvBu8H,EAAWv8H,EAAQ,MAEnB/C,EAAWs/H,EAASD,EAAa,6BAErC5qK,EAAOL,QAAU,SAA4BkJ,EAAMiiK,GAClD,IAAIC,EAAYH,EAAa/hK,IAAQiiK,GACrC,MAAyB,oBAAdC,GAA4Bx/H,EAAS1iC,EAAM,gBAAkB,EAChEgiK,EAASE,GAEVA,I,kCCXR,IAAIh/J,EAAOuiC,EAAQ,MACfs8H,EAAet8H,EAAQ,MAEvB08H,EAASJ,EAAa,8BACtBK,EAAQL,EAAa,6BACrBM,EAAgBN,EAAa,mBAAmB,IAAS7+J,EAAKjN,KAAKmsK,EAAOD,GAE1EG,EAAQP,EAAa,qCAAqC,GAC1D9+I,EAAkB8+I,EAAa,2BAA2B,GAC1DQ,EAAOR,EAAa,cAExB,GAAI9+I,EACH,IACCA,EAAgB,GAAI,IAAK,CAAEhrB,MAAO,IACjC,MAAOs9B,GAERtS,EAAkB,KAIpB9rB,EAAOL,QAAU,SAAkB0rK,GAClC,IAAI9qJ,EAAO2qJ,EAAcn/J,EAAMk/J,EAAOrhK,WACtC,GAAIuhK,GAASr/I,EAAiB,CAC7B,IAAIye,EAAO4gI,EAAM5qJ,EAAM,UACnBgqB,EAAK1pC,cAERirB,EACCvL,EACA,SACA,CAAEzf,MAAO,EAAIsqK,EAAK,EAAGC,EAAiBjqK,QAAUwI,UAAUxI,OAAS,MAItE,OAAOmf,GAGR,IAAI+qJ,EAAY,WACf,OAAOJ,EAAcn/J,EAAMi/J,EAAQphK,YAGhCkiB,EACHA,EAAgB9rB,EAAOL,QAAS,QAAS,CAAEmB,MAAOwqK,IAElDtrK,EAAOL,QAAQkP,MAAQy8J,G,4CC5CxB,IAAI/yH,EAAOjK,EAAQ,MACfmB,EAASnB,EAAQ,MACrB,SAASjb,IAAQ,OAAO,IAAIshB,MAAOmI,UAEnC,IACIr7B,EADAtR,EAAQzP,MAAMC,UAAUwP,MAExBo7J,EAAQ,GAGR9pJ,EADkB,qBAAXtf,EAAAA,GAA0BA,EAAAA,EAAOsf,QAC9Btf,EAAAA,EAAOsf,QACQ,qBAAXzE,QAA0BA,OAAOyE,QACrCzE,OAAOyE,QAEP,GAed,IAZA,IAAI+pJ,EAAY,CACZ,CAAC5pJ,EAAK,OACN,CAACykE,EAAM,QACP,CAACp2C,EAAM,QACP,CAAClrC,EAAO,SACR,CAACm5H,EAAM,QACP,CAACutC,EAAS,WACV,CAACC,EAAO,SACR,CAAC9nF,EAAK,OACN,CAAC+nF,EAAe,WAGXhjK,EAAI,EAAGA,EAAI6iK,EAAUpqK,OAAQuH,IAAK,CACvC,IAAIijK,EAAQJ,EAAU7iK,GAClB0O,EAAIu0J,EAAM,GACV/iK,EAAO+iK,EAAM,GAEZnqJ,EAAQ5Y,KACT4Y,EAAQ5Y,GAAQwO,GAMxB,SAASuK,KAET,SAASykE,IACL5kE,EAAQG,IAAI/S,MAAM4S,EAAS7X,WAG/B,SAASqmC,IACLxuB,EAAQG,IAAI/S,MAAM4S,EAAS7X,WAG/B,SAAS7E,IACL0c,EAAQwuB,KAAKphC,MAAM4S,EAAS7X,WAGhC,SAASs0H,EAAK/3C,GACVolF,EAAMplF,GAAS9yD,IAGnB,SAASo4I,EAAQtlF,GACb,IAAI+3C,EAAOqtC,EAAMplF,GACjB,IAAK+3C,EACD,MAAM,IAAI1rH,MAAM,kBAAoB2zE,UAGjColF,EAAMplF,GACb,IAAI0lF,EAAWx4I,IAAQ6qG,EACvBz8G,EAAQG,IAAIukE,EAAQ,KAAO0lF,EAAW,MAG1C,SAASH,IACL,IAAIt7H,EAAM,IAAI59B,MACd49B,EAAIvnC,KAAO,QACXunC,EAAI5Y,QAAU+gB,EAAK0lC,OAAOpvE,MAAM,KAAMjF,WACtC6X,EAAQ1c,MAAMqrC,EAAIx9B,OAGtB,SAASgxE,EAAI/xE,GACT4P,EAAQG,IAAI22B,EAAKvJ,QAAQn9B,GAAU,MAGvC,SAAS85J,EAAcG,GACnB,IAAKA,EAAY,CACb,IAAIxyH,EAAMnpC,EAAMrR,KAAK8K,UAAW,GAChC6lC,EAAOtO,IAAG,EAAOoX,EAAK0lC,OAAOpvE,MAAM,KAAMyqC,KA7CjDt5C,EAAOL,QAAU8hB,G,2FCrCjB,IAAI1Y,EAAOulC,EAAQ,MACfy9H,EAA+B,oBAAX1xJ,QAAkD,WAAzB,EAAOA,OAAO,QAE3D2xJ,EAAQnqK,OAAOlB,UAAUmR,SACzBpS,EAASgB,MAAMC,UAAUjB,OACzBusK,EAAqBpqK,OAAOtB,eAE5BkiC,EAAa,SAAUrxB,GAC1B,MAAqB,oBAAPA,GAAwC,sBAAnB46J,EAAMltK,KAAKsS,IAG3C86J,EAAyB59H,EAAQ,KAARA,GAEzB69H,EAAsBF,GAAsBC,EAE5C3rK,EAAiB,SAAUsR,EAAQhJ,EAAM/H,EAAOuqC,MAC/CxiC,KAAQgJ,IAAY4wB,EAAW4I,IAAeA,OAG9C8gI,EACHF,EAAmBp6J,EAAQhJ,EAAM,CAChChI,cAAc,EACduX,YAAY,EACZtX,MAAOA,EACPuX,UAAU,IAGXxG,EAAOhJ,GAAQ/H,IAIb6qB,EAAmB,SAAU9Z,EAAQvD,GACxC,IAAI89J,EAAaxiK,UAAUxI,OAAS,EAAIwI,UAAU,GAAK,GACnDgiB,EAAQ7iB,EAAKuF,GACby9J,IACHngJ,EAAQlsB,EAAOZ,KAAK8sB,EAAO/pB,OAAOgnB,sBAAsBva,KAEzD,IAAK,IAAI3F,EAAI,EAAGA,EAAIijB,EAAMxqB,OAAQuH,GAAK,EACtCpI,EAAesR,EAAQ+Z,EAAMjjB,GAAI2F,EAAIsd,EAAMjjB,IAAKyjK,EAAWxgJ,EAAMjjB,MAInEgjB,EAAiBwgJ,sBAAwBA,EAEzCnsK,EAAOL,QAAUgsB,G,kCCvCjB,SAASnC,EAAOze,EAAQshK,GACtB,QAAezrK,IAAXmK,GAAmC,OAAXA,EAC1B,MAAM,IAAIhL,UAAU,2CAItB,IADA,IAAImL,EAAKrJ,OAAOkJ,GACPpC,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAAK,CACzC,IAAI2jK,EAAa1iK,UAAUjB,GAC3B,QAAmB/H,IAAf0rK,GAA2C,OAAfA,EAKhC,IADA,IAAIC,EAAY1qK,OAAOkH,KAAKlH,OAAOyqK,IAC1Bz1E,EAAY,EAAG5rF,EAAMshK,EAAUnrK,OAAQy1F,EAAY5rF,EAAK4rF,IAAa,CAC5E,IAAI21E,EAAUD,EAAU11E,GACpBtsD,EAAO1oC,OAAOyV,yBAAyBg1J,EAAYE,QAC1C5rK,IAAT2pC,GAAsBA,EAAKnyB,aAC7BlN,EAAGshK,GAAWF,EAAWE,KAI/B,OAAOthK,EAGT,SAASuhK,IACF5qK,OAAO2nB,QACV3nB,OAAOtB,eAAesB,OAAQ,SAAU,CACtCuW,YAAY,EACZvX,cAAc,EACdwX,UAAU,EACVvX,MAAO0oB,I,wBAKbxpB,EAAOL,QAAU,CACf6pB,OAAQA,EACRijJ,SAAUA,I,kDC1CZ,IAAI7sK,EAAa0uC,EAAQ,MAErB09H,EAAQnqK,OAAOlB,UAAUmR,SACzB2N,EAAiB5d,OAAOlB,UAAU8e,eAElCitJ,EAAe,SAAsBp9J,EAAO3C,EAAU62B,GACtD,IAAK,IAAI76B,EAAI,EAAGsC,EAAMqE,EAAMlO,OAAQuH,EAAIsC,EAAKtC,IACrC8W,EAAe3gB,KAAKwQ,EAAO3G,KACX,MAAZ66B,EACA72B,EAAS2C,EAAM3G,GAAIA,EAAG2G,GAEtB3C,EAAS7N,KAAK0kC,EAAUl0B,EAAM3G,GAAIA,EAAG2G,KAMjDq9J,EAAgB,SAAuBj1J,EAAQ/K,EAAU62B,GACzD,IAAK,IAAI76B,EAAI,EAAGsC,EAAMyM,EAAOtW,OAAQuH,EAAIsC,EAAKtC,IAE1B,MAAZ66B,EACA72B,EAAS+K,EAAO1W,OAAO2H,GAAIA,EAAG+O,GAE9B/K,EAAS7N,KAAK0kC,EAAU9rB,EAAO1W,OAAO2H,GAAIA,EAAG+O,IAKrDk1J,EAAgB,SAAuB/6J,EAAQlF,EAAU62B,GACzD,IAAK,IAAIxzB,KAAK6B,EACN4N,EAAe3gB,KAAK+S,EAAQ7B,KACZ,MAAZwzB,EACA72B,EAASkF,EAAO7B,GAAIA,EAAG6B,GAEvBlF,EAAS7N,KAAK0kC,EAAU3xB,EAAO7B,GAAIA,EAAG6B,KAMlDlG,EAAU,SAAiBE,EAAMc,EAAUkgK,GAC3C,IAAKjtK,EAAW+M,GACZ,MAAM,IAAI5M,UAAU,+BAGxB,IAAIyjC,EACA55B,UAAUxI,QAAU,IACpBoiC,EAAWqpI,GAGU,mBAArBb,EAAMltK,KAAK+M,GACX6gK,EAAa7gK,EAAMc,EAAU62B,GACN,kBAAT33B,EACd8gK,EAAc9gK,EAAMc,EAAU62B,GAE9BopI,EAAc/gK,EAAMc,EAAU62B,IAItCxjC,EAAOL,QAAUgM,G,0ECzDjB,IAAImhK,EAAgB,kDAChB38J,EAAQzP,MAAMC,UAAUwP,MACxB67J,EAAQnqK,OAAOlB,UAAUmR,SACzBi7J,EAAW,oBAEf/sK,EAAOL,QAAU,SAAcuO,GAC3B,IAAInD,EAAStM,KACb,GAAsB,oBAAXsM,GAAyBihK,EAAMltK,KAAKiM,KAAYgiK,EACvD,MAAM,IAAIhtK,UAAU+sK,EAAgB/hK,GAyBxC,IAvBA,IAEIwgG,EAFAxrF,EAAO5P,EAAMrR,KAAK8K,UAAW,GAG7BojK,EAAS,WACT,GAAIvuK,gBAAgB8sG,EAAO,CACvB,IAAIz/F,EAASf,EAAO8D,MAChBpQ,KACAshB,EAAKrgB,OAAOyQ,EAAMrR,KAAK8K,aAE3B,OAAI/H,OAAOiK,KAAYA,EACZA,EAEJrN,KAEP,OAAOsM,EAAO8D,MACVX,EACA6R,EAAKrgB,OAAOyQ,EAAMrR,KAAK8K,cAK/BqjK,EAAcpiK,KAAKkF,IAAI,EAAGhF,EAAO3J,OAAS2e,EAAK3e,QAC/C8rK,EAAY,GACPvkK,EAAI,EAAGA,EAAIskK,EAAatkK,IAC7BukK,EAAUz/J,KAAK,IAAM9E,GAKzB,GAFA4iG,EAAQrmG,SAAS,SAAU,oBAAsBgoK,EAAUvtJ,KAAK,KAAO,4CAA/Dza,CAA4G8nK,GAEhHjiK,EAAOpK,UAAW,CAClB,IAAIwsK,EAAQ,aACZA,EAAMxsK,UAAYoK,EAAOpK,UACzB4qG,EAAM5qG,UAAY,IAAIwsK,EACtBA,EAAMxsK,UAAY,KAGtB,OAAO4qG,I,kCChDX,IAAI6hE,EAAiB9+H,EAAQ,MAE7BtuC,EAAOL,QAAUuF,SAASvE,UAAUoL,MAAQqhK,G,sCCFxCxsK,E,ifAEJ,IAAIysK,EAAe1pI,YACfjkB,EAAYxa,SACZpF,EAAaC,UAGbutK,EAAwB,SAAUC,GACrC,IACC,OAAO7tJ,EAAU,yBAA2B6tJ,EAAmB,iBAAxD7tJ,GACN,MAAO0e,MAGN+sI,EAAQtpK,OAAOyV,yBACnB,GAAI6zJ,EACH,IACCA,EAAM,GAAI,IACT,MAAO/sI,GACR+sI,EAAQ,KAIV,IAAIqC,EAAiB,WACpB,MAAM,IAAI1tK,GAEP2tK,EAAiBtC,EACjB,WACF,IAGC,OAAOqC,EACN,MAAOE,GACR,IAEC,OAAOvC,EAAMvhK,UAAW,UAAUzE,IACjC,MAAOwoK,GACR,OAAOH,IAVP,GAcDA,EAECzB,EAAaz9H,EAAQ,KAARA,GAEbs/H,EAAW/rK,OAAOW,gBAAkB,SAAUwkB,GAAK,OAAOA,EAAEiG,WAE5D4gJ,EAAY,GAEZ9qK,EAAmC,qBAAfU,WAA6B7C,EAAYgtK,EAASnqK,YAEtEqqK,EAAa,CAChB,mBAA8C,qBAAnBj2I,eAAiCj3B,EAAYi3B,eACxE,UAAWn3B,MACX,gBAAwC,qBAAhBe,YAA8Bb,EAAYa,YAClE,2BAA4BsqK,EAAa6B,EAAS,GAAGvzJ,OAAO1N,aAAe/L,EAC3E,mCAAoCA,EACpC,kBAAmBitK,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,qBAAZE,QAA0BntK,EAAYmtK,QAC1D,WAA8B,qBAAX/5I,OAAyBpzB,EAAYozB,OACxD,YAAaxkB,QACb,aAAkC,qBAAb9N,SAA2Bd,EAAYc,SAC5D,SAAUizC,KACV,cAAeq5H,UACf,uBAAwBliG,mBACxB,cAAemiG,UACf,uBAAwBriG,mBACxB,UAAWp5D,MACX,SAAU07J,KACV,cAAeC,UACf,iBAA0C,qBAAjBrqK,aAA+BlD,EAAYkD,aACpE,iBAA0C,qBAAjBC,aAA+BnD,EAAYmD,aACpE,yBAA0D,qBAAzBqqK,qBAAuCxtK,EAAYwtK,qBACpF,aAAc1uJ,EACd,sBAAuBmuJ,EACvB,cAAoC,qBAAdlrK,UAA4B/B,EAAY+B,UAC9D,eAAsC,qBAAfe,WAA6B9C,EAAY8C,WAChE,eAAsC,qBAAfE,WAA6BhD,EAAYgD,WAChE,aAAcyhB,SACd,UAAWiY,MACX,sBAAuByuI,EAAa6B,EAASA,EAAS,GAAGvzJ,OAAO1N,cAAgB/L,EAChF,SAA0B,YAAhB,qBAAO07B,KAAP,cAAOA,OAAoBA,KAAO17B,EAC5C,QAAwB,qBAARyuC,IAAsBzuC,EAAYyuC,IAClD,yBAAyC,qBAARA,KAAwB08H,EAAyB6B,GAAS,IAAIv+H,KAAMh1B,OAAO1N,aAAtC/L,EACtE,SAAUiK,KACV,WAAYsa,OACZ,WAAYtjB,OACZ,eAAgBw5D,WAChB,aAAcj+B,SACd,YAAgC,qBAAZrV,QAA0BnnB,EAAYmnB,QAC1D,UAA4B,qBAAV2sB,MAAwB9zC,EAAY8zC,MACtD,eAAgBxtC,WAChB,mBAAoB4sC,eACpB,YAAgC,qBAAZt0B,QAA0B5e,EAAY4e,QAC1D,WAAYlB,OACZ,QAAwB,qBAARggC,IAAsB19C,EAAY09C,IAClD,yBAAyC,qBAARA,KAAwBytH,EAAyB6B,GAAS,IAAItvH,KAAMjkC,OAAO1N,aAAtC/L,EACtE,sBAAoD,qBAAtBytK,kBAAoCztK,EAAYytK,kBAC9E,WAAYjuK,OACZ,4BAA6B2rK,EAAa6B,EAAS,GAAGvzJ,OAAO1N,aAAe/L,EAC5E,WAAYmrK,EAAa1xJ,OAASzZ,EAClC,gBAAiBysK,EACjB,mBAAoBI,EACpB,eAAgB1qK,EAChB,cAAejD,EACf,eAAsC,qBAAf2D,WAA6B7C,EAAY6C,WAChE,sBAAoD,qBAAtBZ,kBAAoCjC,EAAYiC,kBAC9E,gBAAwC,qBAAhBc,YAA8B/C,EAAY+C,YAClE,gBAAwC,qBAAhBE,YAA8BjD,EAAYiD,YAClE,aAAcyqK,SACd,YAAgC,qBAAZvqJ,QAA0BnjB,EAAYmjB,QAC1D,YAAgC,qBAAZwqJ,QAA0B3tK,EAAY2tK,QAC1D,YAAgC,qBAAZC,QAA0B5tK,EAAY4tK,SAGvDC,EAAS,SAASA,EAAO5lK,GAC5B,IAAI/H,EACJ,GAAa,oBAAT+H,EACH/H,EAAQwsK,EAAsB,6BACxB,GAAa,wBAATzkK,EACV/H,EAAQwsK,EAAsB,wBACxB,GAAa,6BAATzkK,EACV/H,EAAQwsK,EAAsB,8BACxB,GAAa,qBAATzkK,EAA6B,CACvC,IAAIuI,EAAKq9J,EAAO,4BACZr9J,IACHtQ,EAAQsQ,EAAGzQ,gBAEN,GAAa,6BAATkI,EAAqC,CAC/C,IAAI6lK,EAAMD,EAAO,oBACbC,IACH5tK,EAAQ8sK,EAASc,EAAI/tK,YAMvB,OAFAmtK,EAAWjlK,GAAQ/H,EAEZA,GAGJ6tK,EAAiB,CACpB,yBAA0B,CAAC,cAAe,aAC1C,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,QAAS,YAAa,WAC/C,uBAAwB,CAAC,QAAS,YAAa,WAC/C,oBAAqB,CAAC,QAAS,YAAa,QAC5C,sBAAuB,CAAC,QAAS,YAAa,UAC9C,2BAA4B,CAAC,gBAAiB,aAC9C,mBAAoB,CAAC,yBAA0B,aAC/C,4BAA6B,CAAC,yBAA0B,YAAa,aACrE,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,WAAY,aACpC,kBAAmB,CAAC,OAAQ,aAC5B,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,YAAa,aACtC,0BAA2B,CAAC,eAAgB,aAC5C,0BAA2B,CAAC,eAAgB,aAC5C,sBAAuB,CAAC,WAAY,aACpC,cAAe,CAAC,oBAAqB,aACrC,uBAAwB,CAAC,oBAAqB,YAAa,aAC3D,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,wBAAyB,CAAC,aAAc,aACxC,cAAe,CAAC,OAAQ,SACxB,kBAAmB,CAAC,OAAQ,aAC5B,iBAAkB,CAAC,MAAO,aAC1B,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,sBAAuB,CAAC,SAAU,YAAa,YAC/C,qBAAsB,CAAC,SAAU,YAAa,WAC9C,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,UAAW,YAAa,QAChD,gBAAiB,CAAC,UAAW,OAC7B,mBAAoB,CAAC,UAAW,UAChC,oBAAqB,CAAC,UAAW,WACjC,wBAAyB,CAAC,aAAc,aACxC,4BAA6B,CAAC,iBAAkB,aAChD,oBAAqB,CAAC,SAAU,aAChC,iBAAkB,CAAC,MAAO,aAC1B,+BAAgC,CAAC,oBAAqB,aACtD,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,yBAA0B,CAAC,cAAe,aAC1C,wBAAyB,CAAC,aAAc,aACxC,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,+BAAgC,CAAC,oBAAqB,aACtD,yBAA0B,CAAC,cAAe,aAC1C,yBAA0B,CAAC,cAAe,aAC1C,sBAAuB,CAAC,WAAY,aACpC,qBAAsB,CAAC,UAAW,aAClC,qBAAsB,CAAC,UAAW,cAG/B5iK,EAAOuiC,EAAQ,MACflsC,EAASksC,EAAQ,MACjBsgI,EAAU7iK,EAAKjN,KAAKoG,SAASpG,KAAM4B,MAAMC,UAAUjB,QACnDmvK,EAAe9iK,EAAKjN,KAAKoG,SAAS2J,MAAOnO,MAAMC,UAAUyU,QACzD05J,EAAW/iK,EAAKjN,KAAKoG,SAASpG,KAAMsB,OAAOO,UAAU8R,SACrDs8J,EAAYhjK,EAAKjN,KAAKoG,SAASpG,KAAMsB,OAAOO,UAAUwP,OAGtD6+J,EAAa,qGACbC,EAAe,WACfC,EAAe,SAAsBx3J,GACxC,IAAI5D,EAAQi7J,EAAUr3J,EAAQ,EAAG,GAC7B3D,EAAOg7J,EAAUr3J,GAAS,GAC9B,GAAc,MAAV5D,GAA0B,MAATC,EACpB,MAAM,IAAIs5J,EAAa,kDACjB,GAAa,MAATt5J,GAA0B,MAAVD,EAC1B,MAAM,IAAIu5J,EAAa,kDAExB,IAAIvhK,EAAS,GAIb,OAHAgjK,EAASp3J,EAAQs3J,GAAY,SAAUjyJ,EAAOrV,EAAQynK,EAAOC,GAC5DtjK,EAAOA,EAAO1K,QAAU+tK,EAAQL,EAASM,EAAWH,EAAc,MAAQvnK,GAAUqV,KAE9EjR,GAIJujK,EAAmB,SAA0BxmK,EAAMiiK,GACtD,IACIwE,EADAC,EAAgB1mK,EAOpB,GALIzG,EAAOusK,EAAgBY,KAC1BD,EAAQX,EAAeY,GACvBA,EAAgB,IAAMD,EAAM,GAAK,KAG9BltK,EAAO0rK,EAAYyB,GAAgB,CACtC,IAAIzuK,EAAQgtK,EAAWyB,GAIvB,GAHIzuK,IAAU+sK,IACb/sK,EAAQ2tK,EAAOc,IAEK,qBAAVzuK,IAA0BgqK,EACpC,MAAM,IAAIhrK,EAAW,aAAe+I,EAAO,wDAG5C,MAAO,CACNymK,MAAOA,EACPzmK,KAAM0mK,EACNzuK,MAAOA,GAIT,MAAM,IAAIusK,EAAa,aAAexkK,EAAO,qBAG9C7I,EAAOL,QAAU,SAAsBkJ,EAAMiiK,GAC5C,GAAoB,kBAATjiK,GAAqC,IAAhBA,EAAKzH,OACpC,MAAM,IAAItB,EAAW,6CAEtB,GAAI8J,UAAUxI,OAAS,GAA6B,mBAAjB0pK,EAClC,MAAM,IAAIhrK,EAAW,6CAGtB,IAAIusE,EAAQ6iG,EAAarmK,GACrB2mK,EAAoBnjG,EAAMjrE,OAAS,EAAIirE,EAAM,GAAK,GAElD0+F,EAAYsE,EAAiB,IAAMG,EAAoB,IAAK1E,GAC5D2E,EAAoB1E,EAAUliK,KAC9B/H,EAAQiqK,EAAUjqK,MAClB4uK,GAAqB,EAErBJ,EAAQvE,EAAUuE,MAClBA,IACHE,EAAoBF,EAAM,GAC1BT,EAAaxiG,EAAOuiG,EAAQ,CAAC,EAAG,GAAIU,KAGrC,IAAK,IAAI3mK,EAAI,EAAGgnK,GAAQ,EAAMhnK,EAAI0jE,EAAMjrE,OAAQuH,GAAK,EAAG,CACvD,IAAIinK,EAAOvjG,EAAM1jE,GACbmL,EAAQi7J,EAAUa,EAAM,EAAG,GAC3B77J,EAAOg7J,EAAUa,GAAO,GAC5B,IAEa,MAAV97J,GAA2B,MAAVA,GAA2B,MAAVA,GACtB,MAATC,GAAyB,MAATA,GAAyB,MAATA,IAElCD,IAAUC,EAEb,MAAM,IAAIs5J,EAAa,wDASxB,GAPa,gBAATuC,GAA2BD,IAC9BD,GAAqB,GAGtBF,GAAqB,IAAMI,EAC3BH,EAAoB,IAAMD,EAAoB,IAE1CptK,EAAO0rK,EAAY2B,GACtB3uK,EAAQgtK,EAAW2B,QACb,GAAa,MAAT3uK,EAAe,CACzB,KAAM8uK,KAAQ9uK,GAAQ,CACrB,IAAKgqK,EACJ,MAAM,IAAIhrK,EAAW,sBAAwB+I,EAAO,+CAErD,OAED,GAAIsiK,GAAUxiK,EAAI,GAAM0jE,EAAMjrE,OAAQ,CACrC,IAAImpC,EAAO4gI,EAAMrqK,EAAO8uK,GACxBD,IAAUplI,EAUTzpC,EADG6uK,GAAS,QAASplI,KAAU,kBAAmBA,EAAKplC,KAC/ColC,EAAKplC,IAELrE,EAAM8uK,QAGfD,EAAQvtK,EAAOtB,EAAO8uK,GACtB9uK,EAAQA,EAAM8uK,GAGXD,IAAUD,IACb5B,EAAW2B,GAAqB3uK,IAInC,OAAOA,I,kCCtUR,IAAI8pK,EAAet8H,EAAQ,MAEvBxiB,EAAkB8+I,EAAa,2BAA2B,GAE1DsB,EAAyB,WAC5B,GAAIpgJ,EACH,IAEC,OADAA,EAAgB,GAAI,IAAK,CAAEhrB,MAAO,KAC3B,EACN,MAAOs9B,GAER,OAAO,EAGT,OAAO,GAGR8tI,EAAuB2D,wBAA0B,WAEhD,IAAK3D,IACJ,OAAO,KAER,IACC,OAA8D,IAAvDpgJ,EAAgB,GAAI,SAAU,CAAEhrB,MAAO,IAAKM,OAClD,MAAOg9B,GAER,OAAO,IAITp+B,EAAOL,QAAUusK,G,mFC9BjB,IAAI4D,EAA+B,qBAAXz1J,QAA0BA,OAC9C01J,EAAgBzhI,EAAQ,MAE5BtuC,EAAOL,QAAU,WAChB,MAA0B,oBAAfmwK,IACW,oBAAXz1J,SACsB,WAA7B,EAAOy1J,EAAW,UACO,WAAzB,EAAOz1J,OAAO,SAEX01J,S,mICRR/vK,EAAOL,QAAU,WAChB,GAAsB,oBAAX0a,QAAiE,oBAAjCxY,OAAOgnB,sBAAwC,OAAO,EACjG,GAA+B,WAA3B,EAAOxO,OAAO1N,UAAyB,OAAO,EAElD,IAAI8Z,EAAM,GACNkkB,EAAMtwB,OAAO,QACb21J,EAASnuK,OAAO8oC,GACpB,GAAmB,kBAARA,EAAoB,OAAO,EAEtC,GAA4C,oBAAxC9oC,OAAOlB,UAAUmR,SAAShT,KAAK6rC,GAA8B,OAAO,EACxE,GAA+C,oBAA3C9oC,OAAOlB,UAAUmR,SAAShT,KAAKkxK,GAAiC,OAAO,EAU3E,IAAIC,EAAS,GAEb,IAAKtlI,KADLlkB,EAAIkkB,GAAOslI,EACCxpJ,EAAO,OAAO,EAC1B,GAA2B,oBAAhB5kB,OAAOkH,MAAmD,IAA5BlH,OAAOkH,KAAK0d,GAAKrlB,OAAgB,OAAO,EAEjF,GAA0C,oBAA/BS,OAAO+D,qBAAiF,IAA3C/D,OAAO+D,oBAAoB6gB,GAAKrlB,OAAgB,OAAO,EAE/G,IAAI8uK,EAAOruK,OAAOgnB,sBAAsBpC,GACxC,GAAoB,IAAhBypJ,EAAK9uK,QAAgB8uK,EAAK,KAAOvlI,EAAO,OAAO,EAEnD,IAAK9oC,OAAOlB,UAAU8hB,qBAAqB3jB,KAAK2nB,EAAKkkB,GAAQ,OAAO,EAEpE,GAA+C,oBAApC9oC,OAAOyV,yBAAyC,CAC1D,IAAImB,EAAa5W,OAAOyV,yBAAyBmP,EAAKkkB,GACtD,GAAIlyB,EAAW3X,QAAUmvK,IAAoC,IAA1Bx3J,EAAWL,WAAuB,OAAO,EAG7E,OAAO,I,iFCtCR,IAAI2zJ,EAAaz9H,EAAQ,MAEzBtuC,EAAOL,QAAU,WAChB,OAAOosK,OAAkB1xJ,OAAO81J,c,kCCHjC,IAAIpkK,EAAOuiC,EAAQ,MAEnBtuC,EAAOL,QAAUoM,EAAKjN,KAAKoG,SAASpG,KAAM+C,OAAOlB,UAAU8e,iB,iBCJ9B,oBAAlB5d,OAAOvB,OAEhBN,EAAOL,QAAU,SAAkBywK,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAKzvK,UAAYkB,OAAOvB,OAAO+vK,EAAU1vK,UAAW,CAClDsI,YAAa,CACXnI,MAAOsvK,EACPh4J,YAAY,EACZC,UAAU,EACVxX,cAAc,OAOtBb,EAAOL,QAAU,SAAkBywK,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIE,EAAW,aACfA,EAAS5vK,UAAY0vK,EAAU1vK,UAC/ByvK,EAAKzvK,UAAY,IAAI4vK,EACrBH,EAAKzvK,UAAUsI,YAAcmnK,K,2GCrBnC,IAAII,EAAiBliI,EAAQ,IAARA,GACjBmiI,EAAYniI,EAAQ,MAEpBrJ,EAAYwrI,EAAU,6BAEtBC,EAAsB,SAAqB5vK,GAC9C,QAAI0vK,GAAkB1vK,GAA0B,WAAjB,EAAOA,IAAsBuZ,OAAO81J,eAAervK,IAGtD,uBAArBmkC,EAAUnkC,IAGd6vK,EAAoB,SAAqB7vK,GAC5C,QAAI4vK,EAAoB5vK,IAGP,OAAVA,GACW,WAAjB,EAAOA,IACiB,kBAAjBA,EAAMM,QACbN,EAAMM,QAAU,GACK,mBAArB6jC,EAAUnkC,IACkB,sBAA5BmkC,EAAUnkC,EAAMwR,SAGds+J,EAA6B,WAChC,OAAOF,EAAoB9mK,WADK,GAIjC8mK,EAAoBC,kBAAoBA,EAExC3wK,EAAOL,QAAUixK,EAA4BF,EAAsBC,G,2IC9BnE,IAEIE,EACAC,EAHAC,EAAU7rK,SAASvE,UAAUmR,SAC7Bk/J,EAAkC,YAAnB,qBAAOxxJ,QAAP,cAAOA,WAAoC,OAAZA,SAAoBA,QAAQ3Q,MAG9E,GAA4B,oBAAjBmiK,GAAgE,oBAA1BnvK,OAAOtB,eACvD,IACCswK,EAAehvK,OAAOtB,eAAe,GAAI,SAAU,CAClD4E,IAAK,WACJ,MAAM2rK,KAGRA,EAAmB,GAEnBE,GAAa,WAAc,MAAM,KAAO,KAAMH,GAC7C,MAAOlqI,GACJA,IAAMmqI,IACTE,EAAe,WAIjBA,EAAe,KAGhB,IAAIC,EAAmB,cACnBC,EAAe,SAA4BpwK,GAC9C,IACC,IAAIqwK,EAAQJ,EAAQjyK,KAAKgC,GACzB,OAAOmwK,EAAiBl+J,KAAKo+J,GAC5B,MAAO/yI,GACR,OAAO,IAILgzI,EAAoB,SAA0BtwK,GACjD,IACC,OAAIowK,EAAapwK,KACjBiwK,EAAQjyK,KAAKgC,IACN,GACN,MAAOs9B,GACR,OAAO,IAGL4tI,EAAQnqK,OAAOlB,UAAUmR,SACzBu/J,EAAU,oBACVC,EAAW,6BACXd,EAAmC,oBAAXn2J,UAA2BA,OAAO81J,YAE1DoB,EAAqC,YAApB,qBAAOh3J,SAAP,cAAOA,YAAiD,qBAAjBA,SAAS6T,UAAwCxtB,IAAjB2Z,SAAS6T,IAAoB7T,SAAS6T,IAAM,GAExIpuB,EAAOL,QAAUqxK,EACd,SAAoBlwK,GACrB,GAAIA,IAAUywK,EAAkB,OAAO,EACvC,IAAKzwK,EAAS,OAAO,EACrB,GAAqB,oBAAVA,GAAyC,WAAjB,EAAOA,GAAsB,OAAO,EACvE,GAAqB,oBAAVA,IAAyBA,EAAMH,UAAa,OAAO,EAC9D,IACCqwK,EAAalwK,EAAO,KAAM+vK,GACzB,MAAOzyI,GACR,GAAIA,IAAM0yI,EAAoB,OAAO,EAEtC,OAAQI,EAAapwK,IAEpB,SAAoBA,GACrB,GAAIA,IAAUywK,EAAkB,OAAO,EACvC,IAAKzwK,EAAS,OAAO,EACrB,GAAqB,oBAAVA,GAAyC,WAAjB,EAAOA,GAAsB,OAAO,EACvE,GAAqB,oBAAVA,IAAyBA,EAAMH,UAAa,OAAO,EAC9D,GAAI6vK,EAAkB,OAAOY,EAAkBtwK,GAC/C,GAAIowK,EAAapwK,GAAU,OAAO,EAClC,IAAI0wK,EAAWxF,EAAMltK,KAAKgC,GAC1B,OAAO0wK,IAAaH,GAAWG,IAAaF,I,iECtE9C,IAcIG,EAdAzF,EAAQnqK,OAAOlB,UAAUmR,SACzBi/J,EAAU7rK,SAASvE,UAAUmR,SAC7B4/J,EAAY,sBACZlB,EAAiBliI,EAAQ,IAARA,GACjBs/H,EAAW/rK,OAAOW,eAClBmvK,EAAmB,WACtB,IAAKnB,EACJ,OAAO,EAER,IACC,OAAOtrK,SAAS,wBAATA,GACN,MAAOk5B,MAKVp+B,EAAOL,QAAU,SAA6ByR,GAC7C,GAAkB,oBAAPA,EACV,OAAO,EAER,GAAIsgK,EAAU3+J,KAAKg+J,EAAQjyK,KAAKsS,IAC/B,OAAO,EAER,IAAKo/J,EAAgB,CACpB,IAAIvxJ,EAAM+sJ,EAAMltK,KAAKsS,GACrB,MAAe,+BAAR6N,EAER,IAAK2uJ,EACJ,OAAO,EAER,GAAiC,qBAAtB6D,EAAmC,CAC7C,IAAIG,EAAgBD,IACpBF,IAAoBG,GAAgBhE,EAASgE,GAE9C,OAAOhE,EAASx8J,KAAQqgK,I,8BChCzBzxK,EAAOL,QAAU,SAAemB,GAC/B,OAAOA,IAAUA,I,wCCHlB,IAAI+pK,EAAWv8H,EAAQ,MACnBp6B,EAASo6B,EAAQ,MAEjB8+H,EAAiB9+H,EAAQ,MACzBujI,EAAcvjI,EAAQ,MACtBwjI,EAAOxjI,EAAQ,MAEfm+H,EAAW5B,EAASgH,IAAe1sJ,QAIvCjR,EAAOu4J,EAAU,CAChBoF,YAAaA,EACbzE,eAAgBA,EAChB0E,KAAMA,IAGP9xK,EAAOL,QAAU8sK,G,kDCjBjB,IAAIW,EAAiB9+H,EAAQ,MAE7BtuC,EAAOL,QAAU,WAChB,OAAIwlB,OAAOmY,OAASnY,OAAOmY,MAAMx0B,OAASqc,OAAOmY,MAAM,KAC/CnY,OAAOmY,MAER8vI,I,kDCNR,IAAIl5J,EAASo6B,EAAQ,MACjBujI,EAAcvjI,EAAQ,MAI1BtuC,EAAOL,QAAU,WAChB,IAAI8sK,EAAWoF,IAMf,OALA39J,EAAOiR,OAAQ,CAAEmY,MAAOmvI,GAAY,CACnCnvI,MAAO,WACN,OAAOnY,OAAOmY,QAAUmvI,KAGnBA,I,0HCZR,IAAI9gK,EAAU2iC,EAAQ,MAClByjI,EAAuBzjI,EAAQ,KAC/BmiI,EAAYniI,EAAQ,MAEpBrJ,EAAYwrI,EAAU,6BACtBD,EAAiBliI,EAAQ,IAARA,GAEjBhtB,EAA0B,qBAAfD,WAA6Blf,EAAAA,EAASkf,WACjD2wJ,EAAcD,IAEdxmI,EAAWklI,EAAU,2BAA2B,IAAS,SAAiBnhK,EAAOxO,GACpF,IAAK,IAAI6H,EAAI,EAAGA,EAAI2G,EAAMlO,OAAQuH,GAAK,EACtC,GAAI2G,EAAM3G,KAAO7H,EAChB,OAAO6H,EAGT,OAAQ,GAELspK,EAASxB,EAAU,0BACnByB,EAAY,GACZC,EAAO7jI,EAAQ,MACf9rC,EAAiBX,OAAOW,eACxBguK,GAAkB2B,GAAQ3vK,GAC7BmJ,EAAQqmK,GAAa,SAAUI,GAC9B,IAAI94H,EAAM,IAAIh4B,EAAE8wJ,GAChB,GAAI/3J,OAAO81J,eAAe72H,EAAK,CAC9B,IAAIp/B,EAAQ1X,EAAe82C,GACvB7gC,EAAa05J,EAAKj4J,EAAOG,OAAO81J,aACpC,IAAK13J,EAAY,CAChB,IAAI45J,EAAa7vK,EAAe0X,GAChCzB,EAAa05J,EAAKE,EAAYh4J,OAAO81J,aAEtC+B,EAAUE,GAAc35J,EAAWtT,QAKtC,IAAImtK,EAAiB,SAA2BxxK,GAC/C,IAAIyxK,GAAU,EAQd,OAPA5mK,EAAQumK,GAAW,SAAUx5J,EAAQ05J,GACpC,IAAKG,EACJ,IACCA,EAAU75J,EAAO5Z,KAAKgC,KAAWsxK,EAChC,MAAOh0I,QAGJm0I,GAGRvyK,EAAOL,QAAU,SAAsBmB,GACtC,IAAKA,GAA0B,WAAjB,EAAOA,GAAsB,OAAO,EAClD,IAAK0vK,KAAoBn2J,OAAO81J,eAAervK,GAAQ,CACtD,IAAIuR,EAAM4/J,EAAOhtI,EAAUnkC,GAAQ,GAAI,GACvC,OAAOyqC,EAASymI,EAAa3/J,IAAQ,EAEtC,QAAK8/J,GACEG,EAAexxK,K,8BCxDvB,IAAIs5C,EAAc,SAAUt5C,GAC3B,OAAOA,IAAUA,GAGlBd,EAAOL,QAAU,SAAY4hB,EAAGC,GAC/B,OAAU,IAAND,GAAiB,IAANC,EACP,EAAID,IAAM,EAAIC,EAElBD,IAAMC,MAGN44B,EAAY74B,KAAM64B,EAAY54B,M,iCCXnC,IAAItN,EAASo6B,EAAQ,MACjBu8H,EAAWv8H,EAAQ,MAEnB8+H,EAAiB9+H,EAAQ,MACzBujI,EAAcvjI,EAAQ,MACtBwjI,EAAOxjI,EAAQ,MAEfm+H,EAAW5B,EAASgH,IAAehwK,QAEvCqS,EAAOu4J,EAAU,CAChBoF,YAAaA,EACbzE,eAAgBA,EAChB0E,KAAMA,IAGP9xK,EAAOL,QAAU8sK,G,0CCfjB,IAAIW,EAAiB9+H,EAAQ,MAE7BtuC,EAAOL,QAAU,WAChB,MAA4B,oBAAdkC,OAAO2uB,GAAoB3uB,OAAO2uB,GAAK48I,I,0CCHtD,IAAIyE,EAAcvjI,EAAQ,MACtBp6B,EAASo6B,EAAQ,MAErBtuC,EAAOL,QAAU,WAChB,IAAI8sK,EAAWoF,IAMf,OALA39J,EAAOrS,OAAQ,CAAE2uB,GAAIi8I,GAAY,CAChCj8I,GAAI,WACH,OAAO3uB,OAAO2uB,KAAOi8I,KAGhBA,I,sCCVJ+F,E,qBACJ,G,yBAAK3wK,OAAOkH,KAAM,CAEjB,IAAI4L,EAAM9S,OAAOlB,UAAU8e,eACvBusJ,EAAQnqK,OAAOlB,UAAUmR,SACzB2gK,EAASnkI,EAAQ,MACjBokI,EAAe7wK,OAAOlB,UAAU8hB,qBAChCkwJ,GAAkBD,EAAa5zK,KAAK,CAAEgT,SAAU,MAAQ,YACxD8gK,EAAkBF,EAAa5zK,MAAK,cAAgB,aACpD+zK,EAAY,CACf,WACA,iBACA,UACA,iBACA,gBACA,uBACA,eAEGC,EAA6B,SAAUj+H,GAC1C,IAAIu7H,EAAOv7H,EAAE5rC,YACb,OAAOmnK,GAAQA,EAAKzvK,YAAck0C,GAE/Bk+H,EAAe,CAClBC,mBAAmB,EACnBC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACRC,eAAe,EACfC,SAAS,EACTC,cAAc,EACdC,aAAa,EACbC,wBAAwB,EACxBC,uBAAuB,EACvBC,cAAc,EACdC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdjjG,SAAS,EACTkjG,aAAa,EACbC,YAAY,EACZC,UAAU,EACVC,UAAU,EACVC,OAAO,EACPC,kBAAkB,EAClBC,oBAAoB,EACpBC,SAAS,GAENC,EAA4B,WAE/B,GAAsB,qBAAXt3J,OAA0B,OAAO,EAC5C,IAAK,IAAIhN,KAAKgN,OACb,IACC,IAAK+1J,EAAa,IAAM/iK,IAAM2E,EAAI7V,KAAKke,OAAQhN,IAAoB,OAAdgN,OAAOhN,IAAoC,WAArB,EAAOgN,OAAOhN,IACxF,IACC8iK,EAA2B91J,OAAOhN,IACjC,MAAOouB,GACR,OAAO,GAGR,MAAOA,GACR,OAAO,EAGT,OAAO,EAhBwB,GAkB5Bm2I,EAAuC,SAAU1/H,GAEpD,GAAsB,qBAAX73B,SAA2Bs3J,EACrC,OAAOxB,EAA2Bj+H,GAEnC,IACC,OAAOi+H,EAA2Bj+H,GACjC,MAAOzW,GACR,OAAO,IAITo0I,EAAW,SAAc3gK,GACxB,IAAIrQ,EAAsB,OAAXqQ,GAAqC,WAAlB,EAAOA,GACrC4wB,EAAoC,sBAAvBupI,EAAMltK,KAAK+S,GACxB2iK,EAAc/B,EAAO5gK,GACrByyC,EAAW9iD,GAAmC,oBAAvBwqK,EAAMltK,KAAK+S,GAClC4iK,EAAU,GAEd,IAAKjzK,IAAaihC,IAAe+xI,EAChC,MAAM,IAAIz0K,UAAU,sCAGrB,IAAI20K,EAAY9B,GAAmBnwI,EACnC,GAAI6hB,GAAYzyC,EAAOzQ,OAAS,IAAMuT,EAAI7V,KAAK+S,EAAQ,GACtD,IAAK,IAAIlJ,EAAI,EAAGA,EAAIkJ,EAAOzQ,SAAUuH,EACpC8rK,EAAQhnK,KAAKrN,OAAOuI,IAItB,GAAI6rK,GAAe3iK,EAAOzQ,OAAS,EAClC,IAAK,IAAI4H,EAAI,EAAGA,EAAI6I,EAAOzQ,SAAU4H,EACpCyrK,EAAQhnK,KAAKrN,OAAO4I,SAGrB,IAAK,IAAIH,KAAQgJ,EACV6iK,GAAsB,cAAT7rK,IAAyB8L,EAAI7V,KAAK+S,EAAQhJ,IAC5D4rK,EAAQhnK,KAAKrN,OAAOyI,IAKvB,GAAI8pK,EAGH,IAFA,IAAIgC,EAAkBJ,EAAqC1iK,GAElD7B,EAAI,EAAGA,EAAI6iK,EAAUzxK,SAAU4O,EACjC2kK,GAAoC,gBAAjB9B,EAAU7iK,KAAyB2E,EAAI7V,KAAK+S,EAAQghK,EAAU7iK,KACtFykK,EAAQhnK,KAAKolK,EAAU7iK,IAI1B,OAAOykK,GAGTz0K,EAAOL,QAAU6yK,G,kDCvHjB,IAAIriK,EAAQzP,MAAMC,UAAUwP,MACxBsiK,EAASnkI,EAAQ,MAEjBsmI,EAAW/yK,OAAOkH,KAClBypK,EAAWoC,EAAW,SAAc//H,GAAK,OAAO+/H,EAAS//H,IAAQvG,EAAQ,MAEzEumI,EAAehzK,OAAOkH,KAE1BypK,EAASV,KAAO,WACf,GAAIjwK,OAAOkH,KAAM,CAChB,IAAI+rK,EAA0B,WAE7B,IAAI/0J,EAAOle,OAAOkH,KAAKa,WACvB,OAAOmW,GAAQA,EAAK3e,SAAWwI,UAAUxI,OAHZ,CAI5B,EAAG,GACA0zK,IACJjzK,OAAOkH,KAAO,SAAc8I,GAC3B,OAAI4gK,EAAO5gK,GACHgjK,EAAa1kK,EAAMrR,KAAK+S,IAEzBgjK,EAAahjK,UAItBhQ,OAAOkH,KAAOypK,EAEf,OAAO3wK,OAAOkH,MAAQypK,GAGvBxyK,EAAOL,QAAU6yK,G,mEC7BjB,IAAIxG,EAAQnqK,OAAOlB,UAAUmR,SAE7B9R,EAAOL,QAAU,SAAqBmB,GACrC,IAAIme,EAAM+sJ,EAAMltK,KAAKgC,GACjB2xK,EAAiB,uBAARxzJ,EASb,OARKwzJ,IACJA,EAAiB,mBAARxzJ,GACE,OAAVne,GACiB,WAAjB,EAAOA,IACiB,kBAAjBA,EAAMM,QACbN,EAAMM,QAAU,GACa,sBAA7B4qK,EAAMltK,KAAKgC,EAAMwR,SAEZmgK,I,61BCZD,IAAMsC,EAA8B,qBAAX/3J,OAEhC,SAAgBwhB,EAAU/P,G,OACpB/tB,MAAMqQ,QAAQ0d,IAAyB,WAAhBuf,EAAOvf,GACzB5sB,OAAO28B,OAAO/P,GAEhBA,EAGT,SAAgBumJ,EACdC,G,IACAC,EAAY,UAAZA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAY,G,OAELD,EAAW/vH,QAChB,SAACiwH,EAAYC,G,IACLxqJ,EAAOwqJ,EAAUD,WAAW,GAC5BE,EACY,oBAATzqJ,EACFA,EAAKsqJ,GACLE,EAAUD,W,OACVA,EAAWz1K,OAAO21K,KAE3B,IAIJ,SAAgBzhB,EAActkJ,EAAYukJ,G,OACjCvkJ,EACJhB,KAAI,SAACmsB,EAAMggD,G,MACH,CAACA,EAAKhgD,MAEdN,MAAK,SAAS5Y,EAAGC,G,OACTqyI,EAAUtyI,EAAE,GAAIC,EAAE,KAAOD,EAAE,GAAKC,EAAE,MAE1ClT,KAAI,SAAA2T,G,OAAKA,EAAE,MAGhB,SAAgBgjC,EACdx+B,EACA1d,G,OAEOA,EAAKm8C,QACV,SAACvnB,EAAK58B,G,OACA0lB,EAAIhH,eAAe1e,KACrB48B,EAAI58B,GAAO0lB,EAAI1lB,IAEV48B,IAET,ICzCJ,IAAMs3I,EAAyB,GACzB94E,EAAsB,GACtBm5E,EAAsB,GAEf9R,EAAWt8G,EAAIgB,OAAO,CACjCzzC,KAAM,W,MAAO,CACXwgK,WAAAA,EACA94E,QAAAA,EACAm5E,QAAAA,EACAC,eAAgBR,IAElBt7J,QAAS,CACP6R,KADO,SACF8pJ,G,GACEL,E,KACG7pK,EAA2CkqK,EAA3ClqK,GAAIC,EAAuCiqK,EAAvCjqK,KAAMgqK,EAAiCC,EAAjCD,W,EAAiCC,EAArBp2E,MAAAA,OAAAA,IAAQ,EAAAz8E,IAAAA,E,GACjCrX,GAAOC,GAASgqK,E,KAEfK,EAAe,CACnBtqK,GAAAA,EACAC,KAAAA,EACAgqK,WAAY32I,EAAe22I,GAC3Bn2E,MAAAA,GAEIj2F,EAAOlH,OAAOkH,KAAKtK,KAAKw2K,aAEJ,IAAtBlsK,EAAKuE,QAAQpC,IACfg8C,EAAI3gD,IAAI9H,KAAKw2K,WAAY/pK,EAAI,I,IAGzB+2J,EAAexjK,KAAKg3K,oBAAoBD,GAExCE,EAAgBj3K,KAAKw2K,WAAW/pK,GAAIiF,MAAM,IAC1B,IAAlB8xJ,EACFyT,EAAcjoK,KAAK+nK,GAEnBE,EAAczT,GAAgBuT,E,KAG3BP,WAAW/pK,GAAM0oJ,EACpB8hB,GACA,SAACn0J,EAAcC,G,OAAiBD,EAAEy9E,MAAQx9E,EAAEw9E,YAIhDr0E,MAjCO,SAiCDyqJ,G,IAA4BzsD,EAAQ,UAARA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GACxBz9G,EAAakqK,EAAblqK,GAAIC,EAASiqK,EAATjqK,K,GACPD,IAAQC,IAAkB,IAAVw9G,IAChBlqH,KAAKw2K,WAAW/pK,G,GAIjBy9G,E,KACGssD,WAAW/pK,GAAM,OACjB,C,IACChK,EAAQzC,KAAKg3K,oBAAoBL,G,GACnCl0K,GAAS,EAAG,C,IAERw0K,EAAgBj3K,KAAKw2K,WAAW/pK,GAAIiF,MAAM,GAChDulK,EAActgK,OAAOlU,EAAO,G,KACvB+zK,WAAW/pK,GAAMwqK,KAI5BC,eApDO,SAoDQ5qK,EAAgBilG,EAAS2Y,GACjCosD,IACDt2K,KAAK82K,iBAAmB5sD,GAASlqH,KAAK09F,QAAQpxF,IAChD0W,EAAQwuB,KAARxuB,wBAAAA,OAAqC1W,EAArC,oB,KAEGmhC,KAAKztC,KAAK09F,QAASpxF,EAAQlJ,OAAO28B,OAAO,CAACwxE,OAEjD4lE,iBA3DO,SA2DU7qK,G,KACVynE,QAAQ/zE,KAAK09F,QAASpxF,IAE7B8qK,eA9DO,SA8DQ1+J,EAAgB64F,EAAS2Y,GACjCosD,IACDt2K,KAAK82K,iBAAmB5sD,GAASlqH,KAAK62K,QAAQn+J,IAChDsK,EAAQwuB,KAARxuB,wBAAAA,OAAqCtK,EAArC,oB,KAEG+0B,KAAKztC,KAAK62K,QAASn+J,EAAQtV,OAAO28B,OAAO,CAACwxE,OAEjD8lE,iBArEO,SAqEU3+J,G,KACVq7D,QAAQ/zE,KAAK62K,QAASn+J,IAE7B4+J,UAxEO,SAwEG7qK,G,SACEzM,KAAK09F,QAAQjxF,KAAOzM,KAAK09F,QAAQjxF,GAAI,KAEjD8qK,UA3EO,SA2EG9qK,G,SACEzM,KAAK62K,QAAQpqK,KAAOzM,KAAK62K,QAAQpqK,GAAI,KAEjD+qK,cA9EO,SA8EO/qK,G,QACHzM,KAAKw2K,WAAW/pK,MAASzM,KAAKw2K,WAAW/pK,GAAI9J,QAGxDq0K,oBAlFO,Y,IAkFevqK,EAAAA,EAAAA,GAAIC,EAAAA,EAAAA,K,IACnB,IAAMxC,KAAKlK,KAAKw2K,WAAW/pK,G,GAC1BzM,KAAKw2K,WAAW/pK,GAAIvC,GAAGwC,OAASA,E,OAC1BxC,E,OAGJ,MAKRutK,EAAW,IAAI1S,EAASyR,GC7G1BkB,EAAM,EAEV,EAAejvH,EAAIgB,OAAO,CACxBr/C,KAAM,SACN+iB,MAAO,CACL4yC,SAAU,CAAE3qD,KAAMrE,SAClB3G,KAAM,CAAEgL,KAAMzT,OAAQqjE,QAAS,W,OAAMrjE,OAAO+1K,OAC5Cn3E,MAAO,CAAEnrF,KAAMsR,OAAQs+C,QAAS,GAChCmgG,KAAM,CAAE/vJ,KAAMrE,SACd0lK,UAAW,CAAErhK,KAAMhS,OAAQ4hE,QAAS,W,MAAO,KAC3CpxD,IAAK,CAAEwB,KAAMzT,OAAQqjE,QAAS,OAC9Bv4D,GAAI,CACF2I,KAAMzT,OACNqjE,QAAS,W,OAAMrjE,OAAOyK,KAAKiqB,MAAsB,IAAhBjqB,KAAKqrB,cAG1C2zC,QAdwB,W,gBAejBD,WAAU,WACbssG,EAASL,eAAe1kI,EAAKtoC,KAAMsoC,OAGvCsqC,QAnBwB,WAoBjBh9E,KAAK+/D,U,KACH43G,cAITz7E,QAzBwB,WA0BlBl8F,KAAK+/D,S,KACFhqD,Q,KAEA4hK,cAITrsG,cAjCwB,WAkCtBmsG,EAASJ,iBAAiBr3K,KAAKoK,M,KAC1B2L,SAEP+0D,MAAO,CACLr+D,GADK,SACFs+D,EAAkB+I,GACnBA,GAAYA,IAAa/I,GAAY/qE,KAAK+V,MAAM+9D,G,KAC3C6jG,eAIT38J,QAAS,CACPjF,MADO,SACDzJ,G,IACEsrK,EAA0B,CAC9BlrK,KAAM1M,KAAKoK,KACXqC,GAAIH,GAAUtM,KAAKyM,IAErBgrK,EAASvrJ,MAAM0rJ,IAEjBC,eARO,W,OASE73K,KAAKomE,aAAapB,QACrB,CAAChlE,KAAKomE,aAAapB,SACnBhlE,KAAKqmE,OAAOrB,SAElB8yG,qBAbO,SAacruG,G,MACQ,oBAAbA,EACVA,EAASzpE,KAAKy2K,WACdhtG,GAENkuG,WAlBO,W,IAmBCI,EAAc/3K,KAAK63K,iB,GACrBE,EAAa,C,IACTpB,EAA4B,CAChCjqK,KAAM1M,KAAKoK,KACXqC,GAAIzM,KAAKyM,GACTiqK,WAAY,EAAIqB,GAChBx3E,MAAOvgG,KAAKugG,OAEdk3E,EAAS5qJ,KAAK8pJ,Q,KAET5gK,UAKX5W,OA9EwB,SA8EjB2B,G,IACC2oE,EACJzpE,KAAKqmE,OAAOrB,SAAWhlE,KAAKomE,aAAapB,SAAW,GAChDgzG,EAAMh4K,KAAK4T,I,OACb61D,GAAYzpE,KAAK+/D,SACZ0J,EAAS9mE,QAAU,GAAK3C,KAAKmlK,KAClCnlK,KAAK83K,qBAAqBruG,GAAU,GAEpC3oE,EAACk3K,EAAD,CAAMh4K,KAAK83K,qBAAqBruG,KAG3BzpE,KAAKmlK,KACRrkK,IACAA,EAAEk3K,EAAK,CACLzvG,MAAO,C,YAAc,GACrB97C,MAAO,CAAEC,QAAS,QAClBpqB,IAAK,4BC9FjB,EAAemmD,EAAIgB,OAAO,CACxBr/C,KAAM,eACN+iB,MAAO,CACLq0F,SAAU,CAAEpsG,KAAMrE,QAASi0D,SAAS,GACpC56D,KAAM,CAAEgL,KAAMzT,OAAQg2B,UAAU,GAChCwtI,KAAM,CAAE/vJ,KAAMrE,QAASi0D,SAAS,GAChCyxG,UAAW,CAAErhK,KAAMhS,OAAQ4hE,QAAS,W,MAAO,KAC3CpxD,IAAK,CAAEwB,KAAMzT,OAAQqjE,QAAS,OAC9BgwB,WAAY,CAAE5/E,KAAM,CAACzT,OAAQyB,OAAQqD,YAIvCuP,KAZwB,W,MAaf,CACLwgK,WAAYiB,EAASjB,WACrByB,aAAa,IAGjB7sG,QAlBwB,W,gBAmBjBD,WAAU,WACbssG,EAASP,eAAexkI,EAAKtoC,KAAMsoC,OAGvCo4B,MAAO,CACLotG,cADK,W,KAEEjtG,MAAM,SAAUjrE,KAAKypE,WAAW9mE,OAAS,IAEhDyH,KAJK,SAIA+tK,EAAQC,GAKXX,EAASN,iBAAiBiB,GAC1BX,EAASP,eAAeiB,EAAQn4K,QAGpCg9E,QApCwB,W,WAqClBh9E,KAAKg1F,Y,KACF7pB,WAAU,WAEb0J,EAAKojG,aAAc,MAIzB3sG,cA5CwB,WA6CtBmsG,EAASN,iBAAiBn3K,KAAKoK,OAGjCmiE,SAAU,CACR2rG,cADQ,W,IAEA1B,EAA0Bx2K,KAAKw2K,WAAWx2K,KAAKoK,OAAS,G,OAC1DpK,KAAKwhH,SACAg1D,EAEoB,IAAtBA,EAAW7zK,OAAe,GAAK,CAAC6zK,EAAWA,EAAW7zK,OAAS,KAExE+zK,WARQ,W,OASCH,EAAkBv2K,KAAKk4K,cAAel4K,KAAKy2K,aAItDz7J,QAAS,CAEPyuD,SAFO,W,OAG6B,IAA3BzpE,KAAK02K,WAAW/zK,OACnB3C,KAAK02K,WACL12K,KAAKomE,aAAapB,QACjBhlE,KAAKomE,aAAapB,QAAQhlE,KAAKy2K,WAChCz2K,KAAKqmE,OAAOrB,SAAW,IAG7BqzG,UAVO,W,IAWCA,EAAYr4K,KAAKmlK,OAASnlK,KAAKg1F,W,OACjCqjF,GAAar4K,KAAKypE,WAAW9mE,OAAS,GACxCqgB,EAAQwuB,KACN,uFAGG6mI,IAGXl5K,OAjFwB,SAiFjB2B,G,IACCu3K,EAAYr4K,KAAKq4K,YACjB5uG,EAAWzpE,KAAKypE,WAChBuuG,EAAMh4K,KAAKg1F,YAAch1F,KAAK4T,I,OAE7BykK,EACH5uG,EAAS,GACTzpE,KAAKmlK,OAAS6S,EACdl3K,IACAA,EACEk3K,EACA,CACE7qJ,MAAO,CAELvZ,IAAK5T,KAAKg1F,YAAch1F,KAAK4T,IAAM5T,KAAK4T,SAAMzR,GAEhDomE,MAAO,C,qBAAuB,IAGhCkB,MClGNiuG,EAAM,EAQJY,EAAc,CAClB,WACA,OACA,QACA,OACA,YACA,MACA,MAGIC,EAAc,CAAC,WAAY,cAEjC,EAAgB9vH,EAAyBgB,OAAO,CAC9Cr/C,KAAM,iBACN8rE,cAAc,EACd/oD,MAAO,CACLooD,OAAQ,CAAEngE,KAAM,CAACrE,QAASpP,SAC1B62K,KAAM,CACJpjK,KAAMrE,SAER0nK,QAAS,CAAErjK,KAAMzT,OAAQg2B,UAAU,GAGnCooC,SAAU,CAAE3qD,KAAMrE,SAElB3G,KAAM,CACJgL,KAAMzT,OACNqjE,QAAS,W,MAAM,WAAarjE,OAAO+1K,OAErCn3E,MAAO,CAAEnrF,KAAMsR,OAAQs+C,QAAS,GAChCmgG,KAAM,CAAE/vJ,KAAMrE,SACd0lK,UAAW,CAAErhK,KAAMhS,OAAQ4hE,QAAS,W,MAAO,KAC3CpxD,IAAK,CAAEwB,KAAMzT,OAAQqjE,QAAS,OAE9Bv4D,GAAI,CACF2I,KAAMzT,OACNqjE,QAAS,W,OAAMrjE,OAAOyK,KAAKiqB,MAAsB,IAAhBjqB,KAAKqrB,aAIxC+pF,SAAU,CAAEpsG,KAAMrE,QAASi0D,SAAS,GACpC0zG,WAAY,CAAEtjK,KAAMrE,SACpB4nK,gBAAiB,CAAEvjK,KAAMhS,OAAQ4hE,QAAS,W,MAAO,KACjD4zG,UAAW,CAAExjK,KAAMzT,OAAQqjE,QAAS,OACpCgwB,WAAY,CAAE5/E,KAAM,CAACzT,OAAQyB,OAAQqD,YAIvC2kE,QApC8C,W,GAqCpB,qBAAbtvD,S,KACPpN,EAAyBoN,SAAS4kD,cAAc1gE,KAAKy4K,S,GAEpD/pK,E,KAOCye,EAAQntB,KAAKizF,O,GAGfwkF,EAAS/5E,QAAQvwE,EAAM/iB,MACrB+iB,EAAMqrJ,KACRx1J,EAAQwuB,KAARxuB,wBAAAA,OAAqCmK,EAAM/iB,KAA3C,uE,KAGKyuK,aAAepB,EAAS/5E,QAAQvwE,EAAM/iB,U,KAKvCmrE,EAAWpoD,EAAXooD,O,GACJA,EAAQ,C,IACJngE,EAAyB,kBAAXmgE,EAAsBA,EAAS,MAC7CujG,EAAUh9J,SAASE,cAAc5G,GACvC1G,EAAGie,YAAYmsJ,GACfpqK,EAAKoqK,E,IAKDnlB,EAASntG,EAAKxmD,KAAKizF,OAAQslF,GACjC5kB,EAAOwR,KAAOnlK,KAAK04K,WACnB/kB,EAAO//I,IAAM5T,KAAK44K,UAClBjlB,EAAO8iB,UAAYz2K,KAAK24K,gBACxBhlB,EAAOvpJ,KAAOpK,KAAKyM,G,KAEdosK,aAAe,IAAI3T,EAAa,CACnCx2J,GAAAA,EACAvO,OAAQH,KAAKmyE,SAAWnyE,KACxBklI,UAAWyuB,UAtCX3wI,EAAQ1c,MAAR0c,8BAAAA,OACgChjB,KAAKy4K,QADrC,8BA0CJntG,cAnF8C,W,IAoFtCh/D,EAAStM,KAAK64K,a,GAChB74K,KAAKu1E,OAAQ,C,IACT7mE,EAAKpC,EAAO6qE,IAClBzoE,EAAGyvD,WAAWjpC,YAAYxmB,GAE5BpC,EAAO84H,YAGTjmI,OA5F8C,SA4FvC2B,G,IACAd,KAAK64K,a,OACR71J,EAAQwuB,KAAK,sCACN1wC,I,IAIJd,KAAKomE,aAAa+8E,OAAQ,C,IACvBh2H,EAAQq5B,EAAKxmD,KAAKizF,OAAQqlF,G,OACzBx3K,EACLomK,EACA,CACE/5I,MAAOA,EACPq7C,MAAOxoE,KAAKo7G,OACZh0C,GAAIpnE,KAAKioJ,WACTvhF,YAAa1mE,KAAKomE,cAEpBpmE,KAAKqmE,OAAOrB,S,IAKZj5C,EAAkB/rB,KAAKomE,aAAa+8E,OAAO,CAC7C12I,GAAIzM,KAAKyM,K,OAKPxK,MAAMqQ,QAAQyZ,KAChBA,EAAUA,EAAQ,IAGfA,GAAgBjrB,O3XtIzB,SAASqoD,EAAQV,G,IAA0B9oD,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAyB,GAClE8oD,EAAIqB,UAAUnqD,EAAQo5K,YAAc,SAAU7R,GAC9Cz+G,EAAIqB,UAAUnqD,EAAQq5K,kBAAoB,eAAgB9T,GAC1Dz8G,EAAIqB,UAAUnqD,EAAQs5K,oBAAsB,iBAAkBC,GAYhE,MAAe,CACb/vH,QAAAA,G,2D4XlCF,IAOIgwH,EACAC,EARAz6J,EAAUpd,EAAOL,QAAU,GAU/B,SAASm4K,IACL,MAAM,IAAItlK,MAAM,mCAEpB,SAASulK,IACL,MAAM,IAAIvlK,MAAM,qCAsBpB,SAASwlK,EAAWC,GAChB,GAAIL,IAAqBhkJ,WAErB,OAAOA,WAAWqkJ,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqBhkJ,WAEhE,OADAgkJ,EAAmBhkJ,WACZA,WAAWqkJ,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,GAC/B,MAAM75I,GACJ,IAEI,OAAOw5I,EAAiB94K,KAAK,KAAMm5K,EAAK,GAC1C,MAAM75I,GAEJ,OAAOw5I,EAAiB94K,KAAKL,KAAMw5K,EAAK,KAMpD,SAASC,EAAgBC,GACrB,GAAIN,IAAuB5tG,aAEvB,OAAOA,aAAakuG,GAGxB,IAAKN,IAAuBE,IAAwBF,IAAuB5tG,aAEvE,OADA4tG,EAAqB5tG,aACdA,aAAakuG,GAExB,IAEI,OAAON,EAAmBM,GAC5B,MAAO/5I,GACL,IAEI,OAAOy5I,EAAmB/4K,KAAK,KAAMq5K,GACvC,MAAO/5I,GAGL,OAAOy5I,EAAmB/4K,KAAKL,KAAM05K,MAjEhD,WACG,IAEQP,EADsB,oBAAfhkJ,WACYA,WAEAkkJ,EAEzB,MAAO15I,GACLw5I,EAAmBE,EAEvB,IAEQD,EADwB,oBAAjB5tG,aACcA,aAEA8tG,EAE3B,MAAO35I,GACLy5I,EAAqBE,IAjB5B,GAwED,IAEIK,EAFA1lJ,EAAQ,GACR2lJ,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAah3K,OACbsxB,EAAQ0lJ,EAAa14K,OAAOgzB,GAE5B4lJ,GAAc,EAEd5lJ,EAAMtxB,QACNo3K,KAIR,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAI7nB,EAAUwnB,EAAWO,GACzBF,GAAW,EAEX,IAAIptK,EAAMynB,EAAMtxB,OAChB,MAAM6J,EAAK,CACPmtK,EAAe1lJ,EACfA,EAAQ,GACR,QAAS4lJ,EAAartK,EACdmtK,GACAA,EAAaE,GAAY1lJ,MAGjC0lJ,GAAc,EACdrtK,EAAMynB,EAAMtxB,OAEhBg3K,EAAe,KACfC,GAAW,EACXH,EAAgB1nB,IAiBpB,SAASioB,EAAKR,EAAK3oK,GACf7Q,KAAKw5K,IAAMA,EACXx5K,KAAK6Q,MAAQA,EAYjB,SAASiV,KA5BTnH,EAAQkL,SAAW,SAAU2vJ,GACzB,IAAIl4J,EAAO,IAAIrf,MAAMkJ,UAAUxI,OAAS,GACxC,GAAIwI,UAAUxI,OAAS,EACnB,IAAK,IAAIuH,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IAClCoX,EAAKpX,EAAI,GAAKiB,UAAUjB,GAGhC+pB,EAAMjlB,KAAK,IAAIgrK,EAAKR,EAAKl4J,IACJ,IAAjB2S,EAAMtxB,QAAiBi3K,GACvBL,EAAWQ,IASnBC,EAAK93K,UAAUiyB,IAAM,WACjBn0B,KAAKw5K,IAAIppK,MAAM,KAAMpQ,KAAK6Q,QAE9B8N,EAAQ+wD,MAAQ,UAChB/wD,EAAQs7J,SAAU,EAClBt7J,EAAQmpC,IAAM,GACdnpC,EAAQu7J,KAAO,GACfv7J,EAAQE,QAAU,GAClBF,EAAQG,SAAW,GAInBH,EAAQyoD,GAAKthD,EACbnH,EAAQw7J,YAAcr0J,EACtBnH,EAAQoyE,KAAOjrE,EACfnH,EAAQy7J,IAAMt0J,EACdnH,EAAQ07J,eAAiBv0J,EACzBnH,EAAQ27J,mBAAqBx0J,EAC7BnH,EAAQ2kB,KAAOxd,EACfnH,EAAQ47J,gBAAkBz0J,EAC1BnH,EAAQ67J,oBAAsB10J,EAE9BnH,EAAQ45D,UAAY,SAAUnuE,GAAQ,MAAO,IAE7CuU,EAAQu/E,QAAU,SAAU9zF,GACxB,MAAM,IAAI2J,MAAM,qCAGpB4K,EAAQ87J,IAAM,WAAc,MAAO,KACnC97J,EAAQ+7J,MAAQ,SAAUv1F,GACtB,MAAM,IAAIpxE,MAAM,mCAEpB4K,EAAQg8J,MAAQ,WAAa,OAAO,I,sDCvLpCp5K,EAAOL,QAAU,SAAkBgT,GACjC,OAAOA,GAAsB,WAAf,EAAOA,IACI,oBAAbA,EAAI0mK,MACS,oBAAb1mK,EAAIxL,MACc,oBAAlBwL,EAAI2mK,Y,gWCClB,IAAIC,EAAoBjrI,EAAQ,MAC5BkrI,EAAsBlrI,EAAQ,MAC9BmrI,EAAkBnrI,EAAQ,MAC1BjqC,EAAeiqC,EAAQ,MAE3B,SAASlpC,EAAYiS,GACnB,OAAOA,EAAEvY,KAAKiN,KAAKsL,GAGrB,IAAIqiK,EAAoC,qBAAX1lJ,OACzB2lJ,EAAoC,qBAAXt/J,OAEzBu/J,EAAiBx0K,EAAYvD,OAAOlB,UAAUmR,UAE9C+nK,EAAcz0K,EAAY+f,OAAOxkB,UAAU0sB,SAC3CysJ,EAAc10K,EAAYhF,OAAOO,UAAU0sB,SAC3C0sJ,EAAe30K,EAAYoK,QAAQ7O,UAAU0sB,SAEjD,GAAIqsJ,EACF,IAAIM,EAAc50K,EAAY4uB,OAAOrzB,UAAU0sB,SAGjD,GAAIssJ,EACF,IAAIM,EAAc70K,EAAYiV,OAAO1Z,UAAU0sB,SAGjD,SAAS6sJ,EAAoBp5K,EAAOq5K,GAClC,GAAqB,WAAjB,EAAOr5K,GACT,OAAO,EAET,IAEE,OADAq5K,EAAiBr5K,IACV,EACP,MAAMs9B,GACN,OAAO,GAUX,SAAS8Q,EAAUhiB,GAClB,MAEqB,qBAAZnF,SACPmF,aAAiBnF,SAGP,OAAVmF,GACiB,WAAjB,EAAOA,IACe,oBAAfA,EAAM3F,MACU,oBAAhB2F,EAAMukB,MAMhB,SAAS8I,EAAkBz5C,GACzB,MAA2B,qBAAhBW,aAA+BA,YAAY0C,OAC7C1C,YAAY0C,OAAOrD,GAI1BuD,EAAavD,IACbs5K,EAAWt5K,GAMf,SAASu5K,EAAav5K,GACpB,MAAkC,eAA3B24K,EAAgB34K,GAIzB,SAASw5K,EAAoBx5K,GAC3B,MAAkC,sBAA3B24K,EAAgB34K,GAIzB,SAASy5K,EAAcz5K,GACrB,MAAkC,gBAA3B24K,EAAgB34K,GAIzB,SAAS05K,EAAc15K,GACrB,MAAkC,gBAA3B24K,EAAgB34K,GAIzB,SAAS25K,EAAY35K,GACnB,MAAkC,cAA3B24K,EAAgB34K,GAIzB,SAAS45K,EAAa55K,GACpB,MAAkC,eAA3B24K,EAAgB34K,GAIzB,SAAS65K,EAAa75K,GACpB,MAAkC,eAA3B24K,EAAgB34K,GAIzB,SAASo6C,EAAep6C,GACtB,MAAkC,iBAA3B24K,EAAgB34K,GAIzB,SAASq6C,EAAer6C,GACtB,MAAkC,iBAA3B24K,EAAgB34K,GAIzB,SAAS85K,EAAgB95K,GACvB,MAAkC,kBAA3B24K,EAAgB34K,GAIzB,SAAS+5K,EAAiB/5K,GACxB,MAAkC,mBAA3B24K,EAAgB34K,GAIzB,SAASg6K,EAAch6K,GACrB,MAAiC,iBAA1B84K,EAAe94K,GAOxB,SAAS25C,EAAM35C,GACb,MAAmB,qBAARuuC,MAIJyrI,EAAcC,QACjBD,EAAch6K,GACdA,aAAiBuuC,KAIvB,SAAS2rI,EAAcl6K,GACrB,MAAiC,iBAA1B84K,EAAe94K,GAMxB,SAAS45C,EAAM55C,GACb,MAAmB,qBAARw9C,MAIJ08H,EAAcD,QACjBC,EAAcl6K,GACdA,aAAiBw9C,KAIvB,SAAS28H,EAAkBn6K,GACzB,MAAiC,qBAA1B84K,EAAe94K,GAMxB,SAASo6K,EAAUp6K,GACjB,MAAuB,qBAAZijB,UAIJk3J,EAAkBF,QACrBE,EAAkBn6K,GAClBA,aAAiBijB,SAIvB,SAASo3J,EAAkBr6K,GACzB,MAAiC,qBAA1B84K,EAAe94K,GAMxB,SAASs6K,EAAUt6K,GACjB,OAAOq6K,EAAkBr6K,GAI3B,SAASu6K,EAAsBv6K,GAC7B,MAAiC,yBAA1B84K,EAAe94K,GAMxB,SAASm0B,EAAcn0B,GACrB,MAA2B,qBAAhBW,cAIJ45K,EAAsBN,QACzBM,EAAsBv6K,GACtBA,aAAiBW,aAIvB,SAAS65K,EAAmBx6K,GAC1B,MAAiC,sBAA1B84K,EAAe94K,GAOxB,SAASs5K,EAAWt5K,GAClB,MAAwB,qBAAbY,WAIJ45K,EAAmBP,QACtBO,EAAmBx6K,GACnBA,aAAiBY,UA9LvB/B,EAAQ45K,kBAAoBA,EAC5B55K,EAAQ65K,oBAAsBA,EAC9B75K,EAAQ0E,aAAeA,EAkBvB1E,EAAQuvC,UAAYA,EAYpBvvC,EAAQ46C,kBAAoBA,EAM5B56C,EAAQ06K,aAAeA,EAKvB16K,EAAQ26K,oBAAsBA,EAK9B36K,EAAQ46K,cAAgBA,EAKxB56K,EAAQ66K,cAAgBA,EAKxB76K,EAAQ86K,YAAcA,EAKtB96K,EAAQ+6K,aAAeA,EAKvB/6K,EAAQg7K,aAAeA,EAKvBh7K,EAAQu7C,eAAiBA,EAKzBv7C,EAAQw7C,eAAiBA,EAKzBx7C,EAAQi7K,gBAAkBA,EAK1Bj7K,EAAQk7K,iBAAmBA,EAK3BC,EAAcC,QACG,qBAAR1rI,KACPyrI,EAAc,IAAIzrI,KAYpB1vC,EAAQ86C,MAAQA,EAKhBugI,EAAcD,QACG,qBAARz8H,KACP08H,EAAc,IAAI18H,KAWpB3+C,EAAQ+6C,MAAQA,EAKhBugI,EAAkBF,QACG,qBAAZh3J,SACPk3J,EAAkB,IAAIl3J,SAWxBpkB,EAAQu7K,UAAYA,EAKpBC,EAAkBJ,QACG,qBAAZvM,SACP2M,EAAkB,IAAI3M,SAKxB7uK,EAAQy7K,UAAYA,EAKpBC,EAAsBN,QACG,qBAAhBt5K,aACP45K,EAAsB,IAAI55K,aAW5B9B,EAAQs1B,cAAgBA,EAKxBqmJ,EAAmBP,QACM,qBAAhBt5K,aACa,qBAAbC,UACP45K,EAAmB,IAAI55K,SAAS,IAAID,YAAY,GAAI,EAAG,IAWzD9B,EAAQy6K,WAAaA,EAGrB,IAAImB,EAAqD,qBAAtBlN,kBAAoCA,uBAAoBztK,EAC3F,SAAS46K,EAA4B16K,GACnC,MAAiC,+BAA1B84K,EAAe94K,GAExB,SAAS26K,EAAoB36K,GAC3B,MAAqC,qBAA1By6K,IAIwC,qBAAxCC,EAA4BT,UACrCS,EAA4BT,QAAUS,EAA4B,IAAID,IAGjEC,EAA4BT,QAC/BS,EAA4B16K,GAC5BA,aAAiBy6K,GAIvB,SAASG,EAAgB56K,GACvB,MAAiC,2BAA1B84K,EAAe94K,GAIxB,SAAS66K,EAAc76K,GACrB,MAAiC,0BAA1B84K,EAAe94K,GAIxB,SAAS86K,EAAc96K,GACrB,MAAiC,0BAA1B84K,EAAe94K,GAIxB,SAAS+6K,EAAkB/6K,GACzB,MAAiC,uBAA1B84K,EAAe94K,GAIxB,SAASg7K,EAA4Bh7K,GACnC,MAAiC,gCAA1B84K,EAAe94K,GAIxB,SAAS+5C,EAAe/5C,GACtB,OAAOo5K,EAAoBp5K,EAAO+4K,GAIpC,SAAS/+H,EAAeh6C,GACtB,OAAOo5K,EAAoBp5K,EAAOg5K,GAIpC,SAAS/+H,EAAgBj6C,GACvB,OAAOo5K,EAAoBp5K,EAAOi5K,GAIpC,SAAS/+H,GAAel6C,GACtB,OAAO44K,GAAmBQ,EAAoBp5K,EAAOk5K,GAIvD,SAAS/+H,GAAen6C,GACtB,OAAO64K,GAAmBO,EAAoBp5K,EAAOm5K,GAIvD,SAASr/H,GAAiB95C,GACxB,OACE+5C,EAAe/5C,IACfg6C,EAAeh6C,IACfi6C,EAAgBj6C,IAChBk6C,GAAel6C,IACfm6C,GAAen6C,GAKnB,SAASw5C,GAAiBx5C,GACxB,MAA6B,qBAAf2C,aACZwxB,EAAcn0B,IACd26K,EAAoB36K,IAlExBnB,EAAQ87K,oBAAsBA,EAK9B97K,EAAQ+7K,gBAAkBA,EAK1B/7K,EAAQg8K,cAAgBA,EAKxBh8K,EAAQi8K,cAAgBA,EAKxBj8K,EAAQk8K,kBAAoBA,EAK5Bl8K,EAAQm8K,4BAA8BA,EAKtCn8K,EAAQk7C,eAAiBA,EAKzBl7C,EAAQm7C,eAAiBA,EAKzBn7C,EAAQo7C,gBAAkBA,EAK1Bp7C,EAAQq7C,eAAiBA,GAKzBr7C,EAAQs7C,eAAiBA,GAWzBt7C,EAAQi7C,iBAAmBA,GAQ3Bj7C,EAAQ26C,iBAAmBA,GAE3B,CAAC,UAAW,aAAc,2BAA2B3uC,SAAQ,SAAS8D,GACpE5N,OAAOtB,eAAeZ,EAAS8P,EAAQ,CACrC2I,YAAY,EACZtX,MAAO,WACL,MAAM,IAAI0R,MAAM/C,EAAS,wC,gQCrT/B,IAAIgvB,EAA4B58B,OAAO48B,2BACrC,SAAmChY,GAGjC,IAFA,IAAI1d,EAAOlH,OAAOkH,KAAK0d,GACnBs1J,EAAc,GACTpzK,EAAI,EAAGA,EAAII,EAAK3H,OAAQuH,IAC/BozK,EAAYhzK,EAAKJ,IAAM9G,OAAOyV,yBAAyBmP,EAAK1d,EAAKJ,IAEnE,OAAOozK,GAGPC,EAAe,WACnBr8K,EAAQs+E,OAAS,SAAS5mE,GACxB,IAAKitC,EAASjtC,GAAI,CAEhB,IADA,IAAI4kK,EAAU,GACLtzK,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IACpCszK,EAAQxuK,KAAKuhC,EAAQplC,UAAUjB,KAEjC,OAAOszK,EAAQt8J,KAAK,KAGlBhX,EAAI,EAmBR,IAnBA,IACIoX,EAAOnW,UACPqB,EAAM8U,EAAK3e,OACX6d,EAAM7e,OAAOiX,GAAG5E,QAAQupK,GAAc,SAASh1J,GACjD,GAAU,OAANA,EAAY,MAAO,IACvB,GAAIre,GAAKsC,EAAK,OAAO+b,EACrB,OAAQA,GACN,IAAK,KAAM,OAAO5mB,OAAO2f,EAAKpX,MAC9B,IAAK,KAAM,OAAOwc,OAAOpF,EAAKpX,MAC9B,IAAK,KACH,IACE,OAAO2zB,KAAKF,UAAUrc,EAAKpX,MAC3B,MAAOg+B,GACP,MAAO,aAEX,QACE,OAAO3f,MAGJA,EAAIjH,EAAKpX,GAAIA,EAAIsC,EAAK+b,EAAIjH,IAAOpX,GACpCw7C,EAAOn9B,KAAOxlB,EAASwlB,GACzB/H,GAAO,IAAM+H,EAEb/H,GAAO,IAAM+vB,EAAQhoB,GAGzB,OAAO/H,GAOTtf,EAAQu8K,UAAY,SAAS9qK,EAAIkgC,GAC/B,GAAuB,qBAAZl0B,IAAqD,IAA1BA,EAAQ++J,cAC5C,OAAO/qK,EAIT,GAAuB,qBAAZgM,EACT,OAAO,WACL,OAAOzd,EAAQu8K,UAAU9qK,EAAIkgC,GAAKziC,MAAMpQ,KAAMmL,YAIlD,IAAI4lC,GAAS,EACb,SAAS4sI,IACP,IAAK5sI,EAAQ,CACX,GAAIpyB,EAAQi/J,iBACV,MAAM,IAAI7pK,MAAM8+B,GACPl0B,EAAQk/J,iBACjB76J,EAAQiqJ,MAAMp6H,GAEd7vB,EAAQ1c,MAAMusC,GAEhB9B,GAAS,EAEX,OAAOp+B,EAAGvC,MAAMpQ,KAAMmL,WAGxB,OAAOwyK,GAIT,IAAIG,EAAS,GACTC,EAAgB,KAEpB,GAAIp/J,CAAAA,SAAAA,aAAAA,SAAAA,KAAYq/J,WAAY,CAC1B,IAAIC,EAAWt/J,CAAAA,SAAAA,aAAAA,SAAAA,KAAYq/J,WAC3BC,EAAWA,EAASjqK,QAAQ,qBAAsB,QAC/CA,QAAQ,MAAO,MACfA,QAAQ,KAAM,OACds2C,cACHyzH,EAAgB,IAAIl+J,OAAO,IAAMo+J,EAAW,IAAK,KA2BnD,SAAS1tI,EAAQvoB,EAAKk2J,GAEpB,IAAIrkI,EAAM,CACRskI,KAAM,GACNC,QAASC,GAkBX,OAfIlzK,UAAUxI,QAAU,IAAGk3C,EAAItC,MAAQpsC,UAAU,IAC7CA,UAAUxI,QAAU,IAAGk3C,EAAIykI,OAASnzK,UAAU,IAC9Cy6C,EAAUs4H,GAEZrkI,EAAIpC,WAAaymI,EACRA,GAETh9K,EAAQq9K,QAAQ1kI,EAAKqkI,GAGnBz4H,EAAY5L,EAAIpC,cAAaoC,EAAIpC,YAAa,GAC9CgO,EAAY5L,EAAItC,SAAQsC,EAAItC,MAAQ,GACpCkO,EAAY5L,EAAIykI,UAASzkI,EAAIykI,QAAS,GACtC74H,EAAY5L,EAAIvC,iBAAgBuC,EAAIvC,eAAgB,GACpDuC,EAAIykI,SAAQzkI,EAAIukI,QAAUI,GACvBv0D,EAAYpwE,EAAK7xB,EAAK6xB,EAAItC,OAoCnC,SAASinI,EAAiBh+J,EAAKi+J,GAC7B,IAAIhyJ,EAAQ8jB,EAAQoxD,OAAO88E,GAE3B,OAAIhyJ,EACK,KAAY8jB,EAAQ+tI,OAAO7xJ,GAAO,GAAK,IAAMjM,EAC7C,KAAY+vB,EAAQ+tI,OAAO7xJ,GAAO,GAAK,IAEvCjM,EAKX,SAAS69J,EAAe79J,EAAKi+J,GAC3B,OAAOj+J,EAIT,SAASk+J,EAAY7tK,GACnB,IAAI+9D,EAAO,GAMX,OAJA/9D,EAAM3D,SAAQ,SAASyhB,EAAKqtD,GAC1BpN,EAAKjgD,IAAO,KAGPigD,EAIT,SAASq7C,EAAYpwE,EAAKx3C,EAAOu3C,GAG/B,GAAIC,EAAIvC,eACJj1C,GACA2hC,EAAW3hC,EAAMkuC,UAEjBluC,EAAMkuC,UAAYrvC,EAAQqvC,WAExBluC,EAAMmI,aAAenI,EAAMmI,YAAYtI,YAAcG,GAAQ,CACjE,IAAIs8K,EAAMt8K,EAAMkuC,QAAQqJ,EAAcC,GAItC,OAHKgM,EAAS84H,KACZA,EAAM10D,EAAYpwE,EAAK8kI,EAAK/kI,IAEvB+kI,EAIT,IAAIC,EAAYC,EAAgBhlI,EAAKx3C,GACrC,GAAIu8K,EACF,OAAOA,EAIT,IAAIt0K,EAAOlH,OAAOkH,KAAKjI,GACnBy8K,EAAcJ,EAAYp0K,GAQ9B,GANIuvC,EAAIpC,aACNntC,EAAOlH,OAAO+D,oBAAoB9E,IAKhC08K,EAAQ18K,KACJiI,EAAKuE,QAAQ,YAAc,GAAKvE,EAAKuE,QAAQ,gBAAkB,GACrE,OAAOmwK,EAAY38K,GAIrB,GAAoB,IAAhBiI,EAAK3H,OAAc,CACrB,GAAIqhC,EAAW3hC,GAAQ,CACrB,IAAI+H,EAAO/H,EAAM+H,KAAO,KAAO/H,EAAM+H,KAAO,GAC5C,OAAOyvC,EAAIukI,QAAQ,YAAch0K,EAAO,IAAK,WAE/C,GAAI0c,EAASzkB,GACX,OAAOw3C,EAAIukI,QAAQv+J,OAAO3d,UAAUmR,SAAShT,KAAKgC,GAAQ,UAE5D,GAAI05C,EAAO15C,GACT,OAAOw3C,EAAIukI,QAAQloI,KAAKh0C,UAAUmR,SAAShT,KAAKgC,GAAQ,QAE1D,GAAI08K,EAAQ18K,GACV,OAAO28K,EAAY38K,GAIvB,IA2CIunC,EA3CA2P,EAAO,GAAI1oC,GAAQ,EAAOouK,EAAS,CAAC,IAAK,KAS7C,GANI3sK,EAAQjQ,KACVwO,GAAQ,EACRouK,EAAS,CAAC,IAAK,MAIbj7I,EAAW3hC,GAAQ,CACrB,IAAIoP,EAAIpP,EAAM+H,KAAO,KAAO/H,EAAM+H,KAAO,GACzCmvC,EAAO,aAAe9nC,EAAI,IAkB5B,OAdIqV,EAASzkB,KACXk3C,EAAO,IAAM15B,OAAO3d,UAAUmR,SAAShT,KAAKgC,IAI1C05C,EAAO15C,KACTk3C,EAAO,IAAMrD,KAAKh0C,UAAUg9K,YAAY7+K,KAAKgC,IAI3C08K,EAAQ18K,KACVk3C,EAAO,IAAMylI,EAAY38K,IAGP,IAAhBiI,EAAK3H,QAAkBkO,GAAyB,GAAhBxO,EAAMM,OAItCi3C,EAAe,EACb9yB,EAASzkB,GACJw3C,EAAIukI,QAAQv+J,OAAO3d,UAAUmR,SAAShT,KAAKgC,GAAQ,UAEnDw3C,EAAIukI,QAAQ,WAAY,YAInCvkI,EAAIskI,KAAKnvK,KAAK3M,GAIZunC,EADE/4B,EACOsuK,EAAYtlI,EAAKx3C,EAAOu3C,EAAcklI,EAAax0K,GAEnDA,EAAKuF,KAAI,SAASvN,GACzB,OAAO88K,EAAevlI,EAAKx3C,EAAOu3C,EAAcklI,EAAax8K,EAAKuO,MAItEgpC,EAAIskI,KAAKxlI,MAEF0mI,EAAqBz1I,EAAQ2P,EAAM0lI,IAxBjCA,EAAO,GAAK1lI,EAAO0lI,EAAO,GA4BrC,SAASJ,EAAgBhlI,EAAKx3C,GAC5B,GAAIojD,EAAYpjD,GACd,OAAOw3C,EAAIukI,QAAQ,YAAa,aAClC,GAAIv4H,EAASxjD,GAAQ,CACnB,IAAI+X,EAAS,IAAOyjB,KAAKF,UAAUt7B,GAAO2R,QAAQ,SAAU,IAClBA,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAAO,IACjE,OAAO6lC,EAAIukI,QAAQhkK,EAAQ,UAE7B,OAAI0rC,EAASzjD,GACJw3C,EAAIukI,QAAQ,GAAK/7K,EAAO,UAC7BujD,EAAUvjD,GACLw3C,EAAIukI,QAAQ,GAAK/7K,EAAO,WAE7BqjD,EAAOrjD,GACFw3C,EAAIukI,QAAQ,OAAQ,aAD7B,EAKF,SAASY,EAAY38K,GACnB,MAAO,IAAM0R,MAAM7R,UAAUmR,SAAShT,KAAKgC,GAAS,IAItD,SAAS88K,EAAYtlI,EAAKx3C,EAAOu3C,EAAcklI,EAAax0K,GAE1D,IADA,IAAIs/B,EAAS,GACJ1/B,EAAI,EAAGo1K,EAAIj9K,EAAMM,OAAQuH,EAAIo1K,IAAKp1K,EACrC8W,EAAe3e,EAAOV,OAAOuI,IAC/B0/B,EAAO56B,KAAKowK,EAAevlI,EAAKx3C,EAAOu3C,EAAcklI,EACjDn9K,OAAOuI,IAAI,IAEf0/B,EAAO56B,KAAK,IAShB,OANA1E,EAAK4C,SAAQ,SAAS5K,GACfA,EAAIgc,MAAM,UACbsrB,EAAO56B,KAAKowK,EAAevlI,EAAKx3C,EAAOu3C,EAAcklI,EACjDx8K,GAAK,OAGNsnC,EAIT,SAASw1I,EAAevlI,EAAKx3C,EAAOu3C,EAAcklI,EAAax8K,EAAKuO,GAClE,IAAIzG,EAAMoW,EAAKsrB,EAsCf,GArCAA,EAAO1oC,OAAOyV,yBAAyBxW,EAAOC,IAAQ,CAAED,MAAOA,EAAMC,IACjEwpC,EAAKplC,IAEL8Z,EADEsrB,EAAKhkC,IACD+xC,EAAIukI,QAAQ,kBAAmB,WAE/BvkI,EAAIukI,QAAQ,WAAY,WAG5BtyI,EAAKhkC,MACP0Y,EAAMq5B,EAAIukI,QAAQ,WAAY,YAG7Bp9J,EAAe89J,EAAax8K,KAC/B8H,EAAO,IAAM9H,EAAM,KAEhBke,IACCq5B,EAAIskI,KAAKtvK,QAAQi9B,EAAKzpC,OAAS,GAE/Bme,EADEklC,EAAO9L,GACHqwE,EAAYpwE,EAAK/N,EAAKzpC,MAAO,MAE7B4nH,EAAYpwE,EAAK/N,EAAKzpC,MAAOu3C,EAAe,GAEhDp5B,EAAI3R,QAAQ,OAAS,IAErB2R,EADE3P,EACI2P,EAAIxB,MAAM,MAAMnP,KAAI,SAAS0vK,GACjC,MAAO,KAAOA,KACbr+J,KAAK,MAAMu5B,OAAO,GAEf,KAAOj6B,EAAIxB,MAAM,MAAMnP,KAAI,SAAS0vK,GACxC,MAAO,MAAQA,KACdr+J,KAAK,QAIZV,EAAMq5B,EAAIukI,QAAQ,aAAc,YAGhC34H,EAAYr7C,GAAO,CACrB,GAAIyG,GAASvO,EAAIgc,MAAM,SACrB,OAAOkC,EAETpW,EAAOyzB,KAAKF,UAAU,GAAKr7B,GACvB8H,EAAKkU,MAAM,iCACblU,EAAOA,EAAKqwC,OAAO,EAAGrwC,EAAKzH,OAAS,GACpCyH,EAAOyvC,EAAIukI,QAAQh0K,EAAM,UAEzBA,EAAOA,EAAK4J,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,KAChC5J,EAAOyvC,EAAIukI,QAAQh0K,EAAM,WAI7B,OAAOA,EAAO,KAAOoW,EAIvB,SAAS6+J,EAAqBz1I,EAAQ2P,EAAM0lI,GAC1C,IACIt8K,EAASinC,EAAO6c,QAAO,SAASxwC,EAAM+iC,GAGxC,OADIA,EAAInqC,QAAQ,OAAS,GAAG2wK,EACrBvpK,EAAO+iC,EAAIhlC,QAAQ,kBAAmB,IAAIrR,OAAS,IACzD,GAEH,OAAIA,EAAS,GACJs8K,EAAO,IACG,KAAT1lI,EAAc,GAAKA,EAAO,OAC3B,IACA3P,EAAO1oB,KAAK,SACZ,IACA+9J,EAAO,GAGTA,EAAO,GAAK1lI,EAAO,IAAM3P,EAAO1oB,KAAK,MAAQ,IAAM+9J,EAAO,GAQnE,SAAS3sK,EAAQmtK,GACf,OAAOx9K,MAAMqQ,QAAQmtK,GAIvB,SAAS75H,EAAU1xC,GACjB,MAAsB,mBAARA,EAIhB,SAASwxC,EAAOxxC,GACd,OAAe,OAARA,EAIT,SAASwrK,EAAkBxrK,GACzB,OAAc,MAAPA,EAIT,SAAS4xC,EAAS5xC,GAChB,MAAsB,kBAARA,EAIhB,SAAS2xC,EAAS3xC,GAChB,MAAsB,kBAARA,EAIhB,SAASwhB,EAASxhB,GAChB,MAAsB,WAAf,EAAOA,GAIhB,SAASuxC,EAAYvxC,GACnB,YAAe,IAARA,EAIT,SAAS4S,EAAS3G,GAChB,OAAOpd,EAASod,IAA8B,oBAAvBy7B,EAAez7B,GAKxC,SAASpd,EAASmR,GAChB,MAAsB,WAAf,EAAOA,IAA4B,OAARA,EAIpC,SAAS6nC,EAAO+rC,GACd,OAAO/kF,EAAS+kF,IAA4B,kBAAtBlsC,EAAeksC,GAKvC,SAASi3F,EAAQp/I,GACf,OAAO58B,EAAS48B,KACW,mBAAtBic,EAAejc,IAA2BA,aAAa5rB,OAK9D,SAASiwB,EAAW9vB,GAClB,MAAsB,oBAARA,EAIhB,SAASyrK,EAAYzrK,GACnB,OAAe,OAARA,GACe,mBAARA,GACQ,kBAARA,GACQ,kBAARA,GACQ,WAAf,EAAOA,IACQ,qBAARA,EAMhB,SAAS0nC,EAAexF,GACtB,OAAOhzC,OAAOlB,UAAUmR,SAAShT,KAAK+1C,GAIxC,SAASwpI,EAAInuK,GACX,OAAOA,EAAI,GAAK,IAAMA,EAAE4B,SAAS,IAAM5B,EAAE4B,SAAS,IAvbpDnS,EAAQ2+K,SAAW,SAAS/3K,GAE1B,GADAA,EAAMA,EAAIwiD,eACLwzH,EAAOh2K,GACV,GAAIi2K,EAAczpK,KAAKxM,GAAM,CAC3B,IAAIg4K,EAAMnhK,EAAQmhK,IAClBhC,EAAOh2K,GAAO,WACZ,IAAI+qC,EAAM3xC,EAAQs+E,OAAOpvE,MAAMlP,EAASiK,WACxC6X,EAAQ1c,MAAM,YAAawB,EAAKg4K,EAAKjtI,SAGvCirI,EAAOh2K,GAAO,aAGlB,OAAOg2K,EAAOh2K,IAoChB5G,EAAQqvC,QAAUA,EAIlBA,EAAQ+tI,OAAS,CACf,KAAS,CAAC,EAAG,IACb,OAAW,CAAC,EAAG,IACf,UAAc,CAAC,EAAG,IAClB,QAAY,CAAC,EAAG,IAChB,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,QAAY,CAAC,GAAI,IACjB,IAAQ,CAAC,GAAI,IACb,OAAW,CAAC,GAAI,KAIlB/tI,EAAQoxD,OAAS,CACf,QAAW,OACX,OAAU,SACV,QAAW,SACX,UAAa,OACb,KAAQ,OACR,OAAU,QACV,KAAQ,UAER,OAAU,OA+QZzgG,EAAQ6+K,MAAQ,EAAhB7+K,KAKAA,EAAQoR,QAAUA,EAKlBpR,EAAQ0kD,UAAYA,EAKpB1kD,EAAQwkD,OAASA,EAKjBxkD,EAAQw+K,kBAAoBA,EAK5Bx+K,EAAQ4kD,SAAWA,EAKnB5kD,EAAQ2kD,SAAWA,EAKnB3kD,EAAQw0B,SAAWA,EAKnBx0B,EAAQukD,YAAcA,EAKtBvkD,EAAQ4lB,SAAWA,EACnB5lB,EAAQ6+K,MAAMj5J,SAAWA,EAKzB5lB,EAAQ6B,SAAWA,EAKnB7B,EAAQ66C,OAASA,EACjB76C,EAAQ6+K,MAAMhkI,OAASA,EAMvB76C,EAAQ69K,QAAUA,EAClB79K,EAAQ6+K,MAAM7jI,cAAgB6iI,EAK9B79K,EAAQ8iC,WAAaA,EAUrB9iC,EAAQy+K,YAAcA,EAEtBz+K,EAAQ8+K,SAAW,EAAnB9+K,MAYA,IAAI++K,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,MAAO,MAAO,OAG5B,SAASC,IACP,IAAIp4F,EAAI,IAAI5xC,KACRupF,EAAO,CAACmgD,EAAI93F,EAAEw3C,YACNsgD,EAAI93F,EAAEy3C,cACNqgD,EAAI93F,EAAE03C,eAAet+G,KAAK,KACtC,MAAO,CAAC4mE,EAAElJ,UAAWqhG,EAAOn4F,EAAEnJ,YAAa8gD,GAAMv+G,KAAK,KAqCxD,SAASF,EAAegH,EAAKs+B,GAC3B,OAAOljD,OAAOlB,UAAU8e,eAAe3gB,KAAK2nB,EAAKs+B,GAjCnDplD,EAAQiiB,IAAM,WACZH,EAAQG,IAAI,UAAW+8J,IAAah/K,EAAQs+E,OAAOpvE,MAAMlP,EAASiK,aAiBpEjK,EAAQi/K,SAAW,EAAnBj/K,MAEAA,EAAQq9K,QAAU,SAAS6B,EAAQ7/K,GAEjC,IAAKA,IAAQwC,EAASxC,GAAM,OAAO6/K,EAEnC,IAAI91K,EAAOlH,OAAOkH,KAAK/J,GACnB2J,EAAII,EAAK3H,OACb,MAAOuH,IACLk2K,EAAO91K,EAAKJ,IAAM3J,EAAI+J,EAAKJ,IAE7B,OAAOk2K,GAOT,IAAIC,EAA6C,qBAAXzkK,OAAyBA,OAAO,8BAA2BzZ,EA0DjG,SAASm+K,EAAsBp9I,EAAQ27B,GAKrC,IAAK37B,EAAQ,CACX,IAAIq9I,EAAY,IAAIxsK,MAAM,2CAC1BwsK,EAAUr9I,OAASA,EACnBA,EAASq9I,EAEX,OAAO1hH,EAAG37B,GAGZ,SAASs9I,EAAYC,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAIn/K,UAAU,oDAMtB,SAASo/K,IAEP,IADA,IAAIp/J,EAAO,GACFpX,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IACpCoX,EAAKtS,KAAK7D,UAAUjB,IAGtB,IAAIy2K,EAAUr/J,EAAKq3B,MACnB,GAAuB,oBAAZgoI,EACT,MAAM,IAAIr/K,UAAU,8CAEtB,IAAIqO,EAAO3P,KACP6+D,EAAK,WACP,OAAO8hH,EAAQvwK,MAAMT,EAAMxE,YAI7Bs1K,EAASrwK,MAAMpQ,KAAMshB,GAClBwH,MAAK,SAAS61J,GAAOhgK,EAAQkL,SAASg1C,EAAGvxD,KAAK,KAAM,KAAMqxK,OACrD,SAASiC,GAAOjiK,EAAQkL,SAASy2J,EAAsBhzK,KAAK,KAAMszK,EAAK/hH,OAMjF,OAHAz7D,OAAOY,eAAe08K,EAAet9K,OAAOW,eAAe08K,IAC3Dr9K,OAAO8pB,iBAAiBwzJ,EACA1gJ,EAA0BygJ,IAC3CC,EArGTx/K,EAAQ2/K,UAAY,SAAmBJ,GACrC,GAAwB,oBAAbA,EACT,MAAM,IAAIn/K,UAAU,oDAEtB,GAAI++K,GAA4BI,EAASJ,GAA2B,CAClE,IAAI1tK,EAAK8tK,EAASJ,GAClB,GAAkB,oBAAP1tK,EACT,MAAM,IAAIrR,UAAU,iEAKtB,OAHA8B,OAAOtB,eAAe6Q,EAAI0tK,EAA0B,CAClDh+K,MAAOsQ,EAAIgH,YAAY,EAAOC,UAAU,EAAOxX,cAAc,IAExDuQ,EAGT,SAASA,IAQP,IAPA,IAAIkxB,EAAgBi9I,EAChBj4J,EAAU,IAAIS,SAAQ,SAAUM,EAASW,GAC3CsZ,EAAiBja,EACjBk3J,EAAgBv2J,KAGdjJ,EAAO,GACFpX,EAAI,EAAGA,EAAIiB,UAAUxI,OAAQuH,IACpCoX,EAAKtS,KAAK7D,UAAUjB,IAEtBoX,EAAKtS,MAAK,SAAU2iC,EAAKtvC,GACnBsvC,EACFmvI,EAAcnvI,GAEd9N,EAAexhC,MAInB,IACEo+K,EAASrwK,MAAMpQ,KAAMshB,GACrB,MAAOqwB,GACPmvI,EAAcnvI,GAGhB,OAAO9oB,EAQT,OALAzlB,OAAOY,eAAe2O,EAAIvP,OAAOW,eAAe08K,IAE5CJ,GAA0Bj9K,OAAOtB,eAAe6Q,EAAI0tK,EAA0B,CAChFh+K,MAAOsQ,EAAIgH,YAAY,EAAOC,UAAU,EAAOxX,cAAc,IAExDgB,OAAO8pB,iBACZva,EACAqtB,EAA0BygJ,KAI9Bv/K,EAAQ2/K,UAAUlnI,OAAS0mI,EAiD3Bn/K,EAAQs/K,YAAcA,G,kUCvrBtB,SAAS/2H,EAAQ3mC,EAAGC,GAClB,IAAK,IAAIzgB,KAAOygB,EACdD,EAAExgB,GAAOygB,EAAEzgB,GAEb,OAAOwgB,EAKT,IAAIi+J,EAAkB,WAClB9zG,EAAwB,SAAUzpD,GAAK,MAAO,IAAMA,EAAEgP,WAAW,GAAGnf,SAAS,KAC7E2tK,EAAU,OAKV9zG,EAAS,SAAU1sD,GAAO,OAAO2sD,mBAAmB3sD,GACnDxM,QAAQ+sK,EAAiB9zG,GACzBj5D,QAAQgtK,EAAS,MAEtB,SAAS5zG,EAAQ5sD,GACf,IACE,OAAO6sD,mBAAmB7sD,GAC1B,MAAOmxB,GACHhzB,EAIN,OAAO6B,EAGT,SAASygK,EACP1zG,EACA2zG,EACAC,QAEoB,IAAfD,IAAwBA,EAAa,IAE1C,IACIE,EADAC,EAAQF,GAAe1zG,EAE3B,IACE2zG,EAAcC,EAAM9zG,GAAS,IAC7B,MAAO5tC,GAEPyhJ,EAAc,GAEhB,IAAK,IAAI9+K,KAAO4+K,EAAY,CAC1B,IAAI7+K,EAAQ6+K,EAAW5+K,GACvB8+K,EAAY9+K,GAAOL,MAAMqQ,QAAQjQ,GAC7BA,EAAMwN,IAAIyxK,GACVA,EAAoBj/K,GAE1B,OAAO++K,EAGT,IAAIE,EAAsB,SAAUj/K,GAAS,OAAiB,MAATA,GAAkC,YAAjB,OAAOA,GAAqBA,EAAQV,OAAOU,IAEjH,SAASorE,EAAYF,GACnB,IAAI7lC,EAAM,GAIV,OAFA6lC,EAAQA,EAAMp6C,OAAOnf,QAAQ,YAAa,IAErCu5D,GAILA,EAAMvuD,MAAM,KAAK9R,SAAQ,SAAUygE,GACjC,IAAIC,EAAQD,EAAM35D,QAAQ,MAAO,KAAKgL,MAAM,KACxC1c,EAAM8qE,EAAOQ,EAAMj5B,SACnBhmB,EAAMi/C,EAAMjrE,OAAS,EAAIyqE,EAAOQ,EAAM1sD,KAAK,MAAQ,UAEtC/e,IAAbulC,EAAIplC,GACNolC,EAAIplC,GAAOqsB,EACF1sB,MAAMqQ,QAAQo1B,EAAIplC,IAC3BolC,EAAIplC,GAAK0M,KAAK2f,GAEd+Y,EAAIplC,GAAO,CAAColC,EAAIplC,GAAMqsB,MAInB+Y,GAjBEA,EAoBX,SAAS65I,EAAgBv5J,GACvB,IAAI0f,EAAM1f,EACN5kB,OAAOkH,KAAK0d,GACXnY,KAAI,SAAUvN,GACb,IAAIqsB,EAAM3G,EAAI1lB,GAEd,QAAYH,IAARwsB,EACF,MAAO,GAGT,GAAY,OAARA,EACF,OAAOu+C,EAAO5qE,GAGhB,GAAIL,MAAMqQ,QAAQqc,GAAM,CACtB,IAAIthB,EAAS,GAWb,OAVAshB,EAAIzhB,SAAQ,SAAU2wC,QACP17C,IAAT07C,IAGS,OAATA,EACFxwC,EAAO2B,KAAKk+D,EAAO5qE,IAEnB+K,EAAO2B,KAAKk+D,EAAO5qE,GAAO,IAAM4qE,EAAOrvB,QAGpCxwC,EAAO6T,KAAK,KAGrB,OAAOgsD,EAAO5qE,GAAO,IAAM4qE,EAAOv+C,MAEnC7e,QAAO,SAAUyY,GAAK,OAAOA,EAAE5lB,OAAS,KACxCue,KAAK,KACN,KACJ,OAAOwmB,EAAO,IAAMA,EAAO,GAK7B,IAAI85I,EAAkB,OAEtB,SAASC,EACPC,EACAnuJ,EACAouJ,EACAC,GAEA,IAAIL,EAAiBK,GAAUA,EAAOjiL,QAAQ4hL,eAE1Ch0G,EAAQh6C,EAASg6C,OAAS,GAC9B,IACEA,EAAQhnB,EAAMgnB,GACd,MAAO5tC,IAET,IAAI26G,EAAQ,CACVlwI,KAAMmpB,EAASnpB,MAASs3K,GAAUA,EAAOt3K,KACzC6a,KAAOy8J,GAAUA,EAAOz8J,MAAS,GACjCvJ,KAAM6X,EAAS7X,MAAQ,IACvBkzD,KAAMr7C,EAASq7C,MAAQ,GACvBrB,MAAOA,EACPs0G,OAAQtuJ,EAASsuJ,QAAU,GAC3B36B,SAAU46B,EAAYvuJ,EAAUguJ,GAChCt/J,QAASy/J,EAASK,EAAYL,GAAU,IAK1C,OAHIC,IACFrnC,EAAMqnC,eAAiBG,EAAYH,EAAgBJ,IAE9Cn+K,OAAO28B,OAAOu6G,GAGvB,SAAS/zF,EAAOlkD,GACd,GAAIJ,MAAMqQ,QAAQjQ,GAChB,OAAOA,EAAMwN,IAAI02C,GACZ,GAAIlkD,GAA0B,YAAjB,OAAOA,GAAoB,CAC7C,IAAIqlC,EAAM,GACV,IAAK,IAAIplC,KAAOD,EACdqlC,EAAIplC,GAAOikD,EAAMlkD,EAAMC,IAEzB,OAAOolC,EAEP,OAAOrlC,EAKX,IAAI2/K,EAAQP,EAAY,KAAM,CAC5B/lK,KAAM,MAGR,SAASqmK,EAAaL,GACpB,IAAIh6I,EAAM,GACV,MAAOg6I,EACLh6I,EAAIu6I,QAAQP,GACZA,EAASA,EAAOvhL,OAElB,OAAOunC,EAGT,SAASo6I,EACP/1F,EACAm2F,GAEA,IAAIxmK,EAAOqwE,EAAIrwE,KACX6xD,EAAQwe,EAAIxe,WAAsB,IAAVA,IAAmBA,EAAQ,IACvD,IAAIqB,EAAOmd,EAAInd,UAAoB,IAATA,IAAkBA,EAAO,IAEnD,IAAIjxC,EAAYukJ,GAAmBX,EACnC,OAAQ7lK,GAAQ,KAAOiiB,EAAU4vC,GAASqB,EAG5C,SAASuzG,EAAar/J,EAAGC,EAAGq/J,GAC1B,OAAIr/J,IAAMi/J,EACDl/J,IAAMC,IACHA,IAEDD,EAAEpH,MAAQqH,EAAErH,KACdoH,EAAEpH,KAAK1H,QAAQwtK,EAAiB,MAAQz+J,EAAErH,KAAK1H,QAAQwtK,EAAiB,MAAQY,GACrFt/J,EAAE8rD,OAAS7rD,EAAE6rD,MACbyzG,EAAcv/J,EAAEyqD,MAAOxqD,EAAEwqD,WAClBzqD,EAAE1Y,OAAQ2Y,EAAE3Y,QAEnB0Y,EAAE1Y,OAAS2Y,EAAE3Y,OACZg4K,GACCt/J,EAAE8rD,OAAS7rD,EAAE6rD,MACfyzG,EAAcv/J,EAAEyqD,MAAOxqD,EAAEwqD,QACzB80G,EAAcv/J,EAAE++J,OAAQ9+J,EAAE8+J,WAQhC,SAASQ,EAAev/J,EAAGC,GAKzB,QAJW,IAAND,IAAeA,EAAI,SACb,IAANC,IAAeA,EAAI,KAGnBD,IAAMC,EAAK,OAAOD,IAAMC,EAC7B,IAAI27B,EAAQt7C,OAAOkH,KAAKwY,GAAG4Y,OACvBijB,EAAQv7C,OAAOkH,KAAKyY,GAAG2Y,OAC3B,OAAIgjB,EAAM/7C,SAAWg8C,EAAMh8C,QAGpB+7C,EAAM1uC,OAAM,SAAU1N,EAAK4H,GAChC,IAAIo4K,EAAOx/J,EAAExgB,GACTigL,EAAO5jI,EAAMz0C,GACjB,GAAIq4K,IAASjgL,EAAO,OAAO,EAC3B,IAAIkgL,EAAOz/J,EAAEzgB,GAEb,OAAY,MAARggL,GAAwB,MAARE,EAAuBF,IAASE,EAEhC,YAAhB,OAAOF,IAAqC,YAAhB,OAAOE,GAC9BH,EAAcC,EAAME,GAEtB7gL,OAAO2gL,KAAU3gL,OAAO6gL,MAInC,SAASC,EAAiB/0J,EAASphB,GACjC,OAGQ,IAFNohB,EAAQhS,KAAK1H,QAAQwtK,EAAiB,KAAK3yK,QACzCvC,EAAOoP,KAAK1H,QAAQwtK,EAAiB,SAErCl1K,EAAOsiE,MAAQlhD,EAAQkhD,OAAStiE,EAAOsiE,OACzC8zG,EAAch1J,EAAQ6/C,MAAOjhE,EAAOihE,OAIxC,SAASm1G,EAAeh1J,EAASphB,GAC/B,IAAK,IAAIhK,KAAOgK,EACd,KAAMhK,KAAOorB,GACX,OAAO,EAGX,OAAO,EAGT,SAASi1J,EAAoBroC,GAC3B,IAAK,IAAIpwI,EAAI,EAAGA,EAAIowI,EAAMr4H,QAAQtf,OAAQuH,IAAK,CAC7C,IAAIw3K,EAASpnC,EAAMr4H,QAAQ/X,GAC3B,IAAK,IAAIE,KAAQs3K,EAAOkB,UAAW,CACjC,IAAI5qK,EAAW0pK,EAAOkB,UAAUx4K,GAC5By4K,EAAMnB,EAAOoB,WAAW14K,GAC5B,GAAK4N,GAAa6qK,EAAlB,QACOnB,EAAOoB,WAAW14K,GACzB,IAAK,IAAI24K,EAAM,EAAGA,EAAMF,EAAIlgL,OAAQogL,IAC7B/qK,EAAS+uH,mBAAqB87C,EAAIE,GAAK/qK,MAMpD,IAAIgrK,EAAO,CACT54K,KAAM,aACNvK,YAAY,EACZstB,MAAO,CACL/iB,KAAM,CACJgL,KAAMzT,OACNqjE,QAAS,YAGb7lE,OAAQ,SAAiB+oC,EAAG6jD,GAC1B,IAAI5+D,EAAQ4+D,EAAI5+D,MACZs8C,EAAWsiB,EAAItiB,SACftpE,EAAS4rF,EAAI5rF,OACb6V,EAAO+1E,EAAI/1E,KAGfA,EAAKitK,YAAa,EAIlB,IAAIniL,EAAIX,EAAOw/G,eACXv1G,EAAO+iB,EAAM/iB,KACbkwI,EAAQn6I,EAAO2vI,OACflsE,EAAQzjE,EAAO+iL,mBAAqB/iL,EAAO+iL,iBAAmB,IAI9D3rI,EAAQ,EACR4rI,GAAW,EACf,MAAOhjL,GAAUA,EAAOijL,cAAgBjjL,EAAQ,CAC9C,IAAIkjL,EAAYljL,EAAOF,OAASE,EAAOF,OAAO+V,KAAO,GACjDqtK,EAAUJ,YACZ1rI,IAEE8rI,EAAUC,WAAanjL,EAAOojL,iBAAmBpjL,EAAOqjL,YAC1DL,GAAW,GAEbhjL,EAASA,EAAOgyE,QAKlB,GAHAn8D,EAAKytK,gBAAkBlsI,EAGnB4rI,EAAU,CACZ,IAAIO,EAAa9/G,EAAMx5D,GACnBu5K,EAAkBD,GAAcA,EAAW55H,UAC/C,OAAI65H,GAGED,EAAWE,aACbC,EAAgBF,EAAiB3tK,EAAM0tK,EAAWppC,MAAOopC,EAAWE,aAE/D9iL,EAAE6iL,EAAiB3tK,EAAMyzD,IAGzB3oE,IAIX,IAAImhB,EAAUq4H,EAAMr4H,QAAQs1B,GACxBuS,EAAY7nC,GAAWA,EAAQ+mC,WAAW5+C,GAG9C,IAAK6X,IAAY6nC,EAEf,OADA8Z,EAAMx5D,GAAQ,KACPtJ,IAIT8iE,EAAMx5D,GAAQ,CAAE0/C,UAAWA,GAI3B9zC,EAAK8tK,sBAAwB,SAAUvyE,EAAI5iF,GAEzC,IAAIjB,EAAUzL,EAAQ2gK,UAAUx4K,IAE7BukB,GAAOjB,IAAY6jF,IAClB5iF,GAAOjB,IAAY6jF,KAErBtvF,EAAQ2gK,UAAUx4K,GAAQukB,KAM5B3Y,EAAKtW,OAASsW,EAAKtW,KAAO,KAAKqkL,SAAW,SAAU77I,EAAG2oD,GACvD5uE,EAAQ2gK,UAAUx4K,GAAQymF,EAAMmzF,mBAKlChuK,EAAKtW,KAAK25B,KAAO,SAAUw3D,GACrBA,EAAM76E,KAAKstK,WACbzyF,EAAMmzF,mBACNnzF,EAAMmzF,oBAAsB/hK,EAAQ2gK,UAAUx4K,KAE9C6X,EAAQ2gK,UAAUx4K,GAAQymF,EAAMmzF,mBAMlCrB,EAAmBroC,IAGrB,IAAIspC,EAAc3hK,EAAQkL,OAASlL,EAAQkL,MAAM/iB,GAUjD,OARIw5K,IACFn6H,EAAOma,EAAMx5D,GAAO,CAClBkwI,MAAOA,EACPspC,YAAaA,IAEfC,EAAgB/5H,EAAW9zC,EAAMskI,EAAOspC,IAGnC9iL,EAAEgpD,EAAW9zC,EAAMyzD,KAI9B,SAASo6G,EAAiB/5H,EAAW9zC,EAAMskI,EAAOspC,GAEhD,IAAIK,EAAcjuK,EAAKmX,MAAQ+2J,EAAa5pC,EAAOspC,GACnD,GAAIK,EAAa,CAEfA,EAAcjuK,EAAKmX,MAAQs8B,EAAO,GAAIw6H,GAEtC,IAAIz7G,EAAQxyD,EAAKwyD,MAAQxyD,EAAKwyD,OAAS,GACvC,IAAK,IAAIlmE,KAAO2hL,EACTn6H,EAAU38B,OAAW7qB,KAAOwnD,EAAU38B,QACzCq7C,EAAMlmE,GAAO2hL,EAAY3hL,UAClB2hL,EAAY3hL,KAM3B,SAAS4hL,EAAc5pC,EAAOjyF,GAC5B,QAAQ,OAAOA,IACb,IAAK,YACH,OACF,IAAK,SACH,OAAOA,EACT,IAAK,WACH,OAAOA,EAAOiyF,GAChB,IAAK,UACH,OAAOjyF,EAASiyF,EAAMunC,YAAS1/K,EACjC,QACMwc,GAYV,SAASwlK,EACPC,EACA7qI,EACAg8B,GAEA,IAAI8uG,EAAYD,EAAS7hL,OAAO,GAChC,GAAkB,MAAd8hL,EACF,OAAOD,EAGT,GAAkB,MAAdC,GAAmC,MAAdA,EACvB,OAAO9qI,EAAO6qI,EAGhB,IAAIjwK,EAAQolC,EAAKv6B,MAAM,KAKlBu2D,GAAWphE,EAAMA,EAAMxR,OAAS,IACnCwR,EAAMwkC,MAKR,IADA,IAAI2rI,EAAWF,EAASpwK,QAAQ,MAAO,IAAIgL,MAAM,KACxC9U,EAAI,EAAGA,EAAIo6K,EAAS3hL,OAAQuH,IAAK,CACxC,IAAIq6K,EAAUD,EAASp6K,GACP,OAAZq6K,EACFpwK,EAAMwkC,MACe,MAAZ4rI,GACTpwK,EAAMnF,KAAKu1K,GASf,MAJiB,KAAbpwK,EAAM,IACRA,EAAM8tK,QAAQ,IAGT9tK,EAAM+M,KAAK,KAGpB,SAASsjK,EAAW9oK,GAClB,IAAIkzD,EAAO,GACPrB,EAAQ,GAERk3G,EAAY/oK,EAAK7M,QAAQ,KACzB41K,GAAa,IACf71G,EAAOlzD,EAAKhK,MAAM+yK,GAClB/oK,EAAOA,EAAKhK,MAAM,EAAG+yK,IAGvB,IAAIC,EAAahpK,EAAK7M,QAAQ,KAM9B,OALI61K,GAAc,IAChBn3G,EAAQ7xD,EAAKhK,MAAMgzK,EAAa,GAChChpK,EAAOA,EAAKhK,MAAM,EAAGgzK,IAGhB,CACLhpK,KAAMA,EACN6xD,MAAOA,EACPqB,KAAMA,GAIV,SAAS+1G,EAAWjpK,GAClB,OAAOA,EAAK1H,QAAQ,gBAAiB,KAGvC,IAAI4wK,EAAU3iL,MAAMqQ,SAAW,SAAUuoC,GACvC,MAA8C,kBAAvCz3C,OAAOlB,UAAUmR,SAAShT,KAAKw6C,IAMpCgqI,EAAiBC,EACjBC,EAAU1D,EACV2D,EAAYC,EACZC,EAAqBC,EACrBC,EAAmBC,EAOnBC,EAAc,IAAIzlK,OAAO,CAG3B,UAOA,0GACAqB,KAAK,KAAM,KASb,SAASmgK,EAAO7gK,EAAK7gB,GACnB,IAKI+nC,EALA69I,EAAS,GACTjjL,EAAM,EACNG,EAAQ,EACRiZ,EAAO,GACP8pK,EAAmB7lL,GAAWA,EAAQ8lL,WAAa,IAGvD,MAAwC,OAAhC/9I,EAAM49I,EAAYryK,KAAKuN,IAAe,CAC5C,IAAI+B,EAAImlB,EAAI,GACRg+I,EAAUh+I,EAAI,GACd18B,EAAS08B,EAAIjlC,MAKjB,GAJAiZ,GAAQ8E,EAAI9O,MAAMjP,EAAOuI,GACzBvI,EAAQuI,EAASuX,EAAE5f,OAGf+iL,EACFhqK,GAAQgqK,EAAQ,OADlB,CAKA,IAAIv3K,EAAOqS,EAAI/d,GACXgiE,EAAS/8B,EAAI,GACbt9B,EAAOs9B,EAAI,GACXhlB,EAAUglB,EAAI,GACdxW,EAAQwW,EAAI,GACZ+5D,EAAW/5D,EAAI,GACfi+I,EAAWj+I,EAAI,GAGfhsB,IACF6pK,EAAOv2K,KAAK0M,GACZA,EAAO,IAGT,IAAIkqK,EAAoB,MAAVnhH,GAA0B,MAARt2D,GAAgBA,IAASs2D,EACrD1lC,EAAsB,MAAb0iE,GAAiC,MAAbA,EAC7BokF,EAAwB,MAAbpkF,GAAiC,MAAbA,EAC/BgkF,EAAY/9I,EAAI,IAAM89I,EACtBz/I,EAAUrjB,GAAWwO,EAEzBq0J,EAAOv2K,KAAK,CACV5E,KAAMA,GAAQ9H,IACdmiE,OAAQA,GAAU,GAClBghH,UAAWA,EACXI,SAAUA,EACV9mJ,OAAQA,EACR6mJ,QAASA,EACTD,WAAYA,EACZ5/I,QAASA,EAAU+/I,EAAY//I,GAAY4/I,EAAW,KAAO,KAAOI,EAAaN,GAAa,SAclG,OATIhjL,EAAQ+d,EAAI7d,SACd+Y,GAAQ8E,EAAIi6B,OAAOh4C,IAIjBiZ,GACF6pK,EAAOv2K,KAAK0M,GAGP6pK,EAUT,SAASN,EAASzkK,EAAK7gB,GACrB,OAAOwlL,EAAiB9D,EAAM7gK,EAAK7gB,GAAUA,GAS/C,SAASqmL,EAA0BxlK,GACjC,OAAOgvJ,UAAUhvJ,GAAKxM,QAAQ,WAAW,SAAUwP,GACjD,MAAO,IAAMA,EAAEgP,WAAW,GAAGnf,SAAS,IAAIi3C,iBAU9C,SAAS27H,EAAgBzlK,GACvB,OAAOgvJ,UAAUhvJ,GAAKxM,QAAQ,SAAS,SAAUwP,GAC/C,MAAO,IAAMA,EAAEgP,WAAW,GAAGnf,SAAS,IAAIi3C,iBAO9C,SAAS66H,EAAkBI,EAAQ5lL,GAKjC,IAHA,IAAIi+D,EAAU,IAAI37D,MAAMsjL,EAAO5iL,QAGtBuH,EAAI,EAAGA,EAAIq7K,EAAO5iL,OAAQuH,IACR,YAArB,OAAOq7K,EAAOr7K,MAChB0zD,EAAQ1zD,GAAK,IAAI2V,OAAO,OAAS0lK,EAAOr7K,GAAG67B,QAAU,KAAM3lB,EAAMzgB,KAIrE,OAAO,SAAUqoB,EAAKk2J,GAMpB,IALA,IAAIxiK,EAAO,GACP1F,EAAOgS,GAAO,GACdroB,EAAUu+K,GAAQ,GAClBhxG,EAASvtE,EAAQumL,OAASF,EAA2B74G,mBAEhDjjE,EAAI,EAAGA,EAAIq7K,EAAO5iL,OAAQuH,IAAK,CACtC,IAAIi8K,EAAQZ,EAAOr7K,GAEnB,GAAqB,kBAAVi8K,EAAX,CAMA,IACI5B,EADAliL,EAAQ2T,EAAKmwK,EAAM/7K,MAGvB,GAAa,MAAT/H,EAAe,CACjB,GAAI8jL,EAAMN,SAAU,CAEdM,EAAMP,UACRlqK,GAAQyqK,EAAM1hH,QAGhB,SAEA,MAAM,IAAInjE,UAAU,aAAe6kL,EAAM/7K,KAAO,mBAIpD,GAAIw6K,EAAQviL,GAAZ,CACE,IAAK8jL,EAAMpnJ,OACT,MAAM,IAAIz9B,UAAU,aAAe6kL,EAAM/7K,KAAO,kCAAoCyzB,KAAKF,UAAUt7B,GAAS,KAG9G,GAAqB,IAAjBA,EAAMM,OAAc,CACtB,GAAIwjL,EAAMN,SACR,SAEA,MAAM,IAAIvkL,UAAU,aAAe6kL,EAAM/7K,KAAO,qBAIpD,IAAK,IAAIG,EAAI,EAAGA,EAAIlI,EAAMM,OAAQ4H,IAAK,CAGrC,GAFAg6K,EAAUr3G,EAAO7qE,EAAMkI,KAElBqzD,EAAQ1zD,GAAGoK,KAAKiwK,GACnB,MAAM,IAAIjjL,UAAU,iBAAmB6kL,EAAM/7K,KAAO,eAAiB+7K,EAAMpgJ,QAAU,oBAAsBlI,KAAKF,UAAU4mJ,GAAW,KAGvI7oK,IAAe,IAANnR,EAAU47K,EAAM1hH,OAAS0hH,EAAMV,WAAalB,OApBzD,CA4BA,GAFAA,EAAU4B,EAAMR,SAAWM,EAAe5jL,GAAS6qE,EAAO7qE,IAErDu7D,EAAQ1zD,GAAGoK,KAAKiwK,GACnB,MAAM,IAAIjjL,UAAU,aAAe6kL,EAAM/7K,KAAO,eAAiB+7K,EAAMpgJ,QAAU,oBAAsBw+I,EAAU,KAGnH7oK,GAAQyqK,EAAM1hH,OAAS8/G,QArDrB7oK,GAAQyqK,EAwDZ,OAAOzqK,GAUX,SAASqqK,EAAcvlK,GACrB,OAAOA,EAAIxM,QAAQ,6BAA8B,QASnD,SAAS8xK,EAAa50J,GACpB,OAAOA,EAAMld,QAAQ,gBAAiB,QAUxC,SAASoyK,EAAYjmK,EAAI7V,GAEvB,OADA6V,EAAG7V,KAAOA,EACH6V,EAST,SAASC,EAAOzgB,GACd,OAAOA,GAAWA,EAAQ0mL,UAAY,GAAK,IAU7C,SAASC,EAAgB5qK,EAAMpR,GAE7B,IAAI8mB,EAAS1V,EAAKhD,OAAO4F,MAAM,aAE/B,GAAI8S,EACF,IAAK,IAAIlnB,EAAI,EAAGA,EAAIknB,EAAOzuB,OAAQuH,IACjCI,EAAK0E,KAAK,CACR5E,KAAMF,EACNu6D,OAAQ,KACRghH,UAAW,KACXI,UAAU,EACV9mJ,QAAQ,EACR6mJ,SAAS,EACTD,UAAU,EACV5/I,QAAS,OAKf,OAAOqgJ,EAAW1qK,EAAMpR,GAW1B,SAASi8K,EAAe7qK,EAAMpR,EAAM3K,GAGlC,IAFA,IAAIiuE,EAAQ,GAEH1jE,EAAI,EAAGA,EAAIwR,EAAK/Y,OAAQuH,IAC/B0jE,EAAM5+D,KAAK81K,EAAappK,EAAKxR,GAAII,EAAM3K,GAAS+Y,QAGlD,IAAI6H,EAAS,IAAIV,OAAO,MAAQ+tD,EAAM1sD,KAAK,KAAO,IAAKd,EAAMzgB,IAE7D,OAAOymL,EAAW7lK,EAAQjW,GAW5B,SAASk8K,EAAgB9qK,EAAMpR,EAAM3K,GACnC,OAAO0lL,EAAehE,EAAM3lK,EAAM/b,GAAU2K,EAAM3K,GAWpD,SAAS0lL,EAAgBE,EAAQj7K,EAAM3K,GAChCilL,EAAQt6K,KACX3K,EAAkC2K,GAAQ3K,EAC1C2K,EAAO,IAGT3K,EAAUA,GAAW,GAOrB,IALA,IAAI6zC,EAAS7zC,EAAQ6zC,OACjB7mC,GAAsB,IAAhBhN,EAAQgN,IACd2tI,EAAQ,GAGHpwI,EAAI,EAAGA,EAAIq7K,EAAO5iL,OAAQuH,IAAK,CACtC,IAAIi8K,EAAQZ,EAAOr7K,GAEnB,GAAqB,kBAAVi8K,EACT7rC,GAASyrC,EAAaI,OACjB,CACL,IAAI1hH,EAASshH,EAAaI,EAAM1hH,QAC5B/hD,EAAU,MAAQyjK,EAAMpgJ,QAAU,IAEtCz7B,EAAK0E,KAAKm3K,GAENA,EAAMpnJ,SACRrc,GAAW,MAAQ+hD,EAAS/hD,EAAU,MAOpCA,EAJAyjK,EAAMN,SACHM,EAAMP,QAGCnhH,EAAS,IAAM/hD,EAAU,KAFzB,MAAQ+hD,EAAS,IAAM/hD,EAAU,MAKnC+hD,EAAS,IAAM/hD,EAAU,IAGrC43H,GAAS53H,GAIb,IAAI+iK,EAAYM,EAAapmL,EAAQ8lL,WAAa,KAC9CgB,EAAoBnsC,EAAM5oI,OAAO+zK,EAAU9iL,UAAY8iL,EAkB3D,OAZKjyI,IACH8mG,GAASmsC,EAAoBnsC,EAAM5oI,MAAM,GAAI+zK,EAAU9iL,QAAU23I,GAAS,MAAQmrC,EAAY,WAI9FnrC,GADE3tI,EACO,IAIA6mC,GAAUizI,EAAoB,GAAK,MAAQhB,EAAY,MAG3DW,EAAW,IAAIvmK,OAAO,IAAMy6H,EAAOl6H,EAAMzgB,IAAW2K,GAe7D,SAASw6K,EAAcppK,EAAMpR,EAAM3K,GAQjC,OAPKilL,EAAQt6K,KACX3K,EAAkC2K,GAAQ3K,EAC1C2K,EAAO,IAGT3K,EAAUA,GAAW,GAEjB+b,aAAgBmE,OACXymK,EAAe5qK,EAA6BpR,GAGjDs6K,EAAQlpK,GACH6qK,EAAqC7qK,EAA8BpR,EAAO3K,GAG5E6mL,EAAsC9qK,EAA8BpR,EAAO3K,GAEpFklL,EAAexD,MAAQ0D,EACvBF,EAAeI,QAAUD,EACzBH,EAAeM,iBAAmBD,EAClCL,EAAeQ,eAAiBD,EAKhC,IAAIsB,EAAqBtjL,OAAOvB,OAAO,MAEvC,SAAS8kL,GACPjrK,EACAmmK,EACA+E,GAEA/E,EAASA,GAAU,GACnB,IACE,IAAIgF,EACFH,EAAmBhrK,KAClBgrK,EAAmBhrK,GAAQmpK,EAAeI,QAAQvpK,IAMrD,MAFgC,kBAArBmmK,EAAOiF,YAA0BjF,EAAO,GAAKA,EAAOiF,WAExDD,EAAOhF,EAAQ,CAAEqE,QAAQ,IAChC,MAAOvmJ,GAKP,MAAO,GAfT,eAkBSkiJ,EAAO,IAMlB,SAASkF,GACP51J,EACAzD,EACA6nD,EACAqsG,GAEA,IAAIzzK,EAAsB,kBAARgjB,EAAmB,CAAEzV,KAAMyV,GAAQA,EAErD,GAAIhjB,EAAK64K,YACP,OAAO74K,EACF,GAAIA,EAAK/D,KAAM,CACpB+D,EAAOs7C,EAAO,GAAIt4B,GAClB,IAAI0wJ,EAAS1zK,EAAK0zK,OAIlB,OAHIA,GAA4B,YAAlB,OAAOA,KACnB1zK,EAAK0zK,OAASp4H,EAAO,GAAIo4H,IAEpB1zK,EAIT,IAAKA,EAAKuN,MAAQvN,EAAK0zK,QAAUn0J,EAAS,CACxCvf,EAAOs7C,EAAO,GAAIt7C,GAClBA,EAAK64K,aAAc,EACnB,IAAIC,EAAWx9H,EAAOA,EAAO,GAAI/7B,EAAQm0J,QAAS1zK,EAAK0zK,QACvD,GAAIn0J,EAAQtjB,KACV+D,EAAK/D,KAAOsjB,EAAQtjB,KACpB+D,EAAK0zK,OAASoF,OACT,GAAIv5J,EAAQzL,QAAQtf,OAAQ,CACjC,IAAIukL,EAAUx5J,EAAQzL,QAAQyL,EAAQzL,QAAQtf,OAAS,GAAG+Y,KAC1DvN,EAAKuN,KAAOirK,GAAWO,EAASD,EAAW,QAAWv5J,EAAQhS,WACrDiD,EAGX,OAAOxQ,EAGT,IAAIg5K,EAAa3C,EAAUr2K,EAAKuN,MAAQ,IACpC0rK,EAAY15J,GAAWA,EAAQhS,MAAS,IACxCA,EAAOyrK,EAAWzrK,KAClByoK,EAAYgD,EAAWzrK,KAAM0rK,EAAU7xG,GAAUpnE,EAAKonE,QACtD6xG,EAEA75G,EAAQ0zG,EACVkG,EAAW55G,MACXp/D,EAAKo/D,MACLq0G,GAAUA,EAAOjiL,QAAQ8tE,YAGvBmB,EAAOzgE,EAAKygE,MAAQu4G,EAAWv4G,KAKnC,OAJIA,GAA2B,MAAnBA,EAAKrsE,OAAO,KACtBqsE,EAAO,IAAMA,GAGR,CACLo4G,aAAa,EACbtrK,KAAMA,EACN6xD,MAAOA,EACPqB,KAAMA,GAOV,IA4NIy4G,GA5NAC,GAAU,CAAC3lL,OAAQyB,QACnBmkL,GAAa,CAAC5lL,OAAQM,OAEtB6jB,GAAO,aAMP0hK,GAAO,CACTp9K,KAAM,aACN+iB,MAAO,CACL1gB,GAAI,CACF2I,KAAMkyK,GACN3vJ,UAAU,GAEZ/jB,IAAK,CACHwB,KAAMzT,OACNqjE,QAAS,KAEXrrB,OAAQ5oC,QACRykE,MAAOzkE,QACP2kE,UAAW3kE,QACXwkE,OAAQxkE,QACRiD,QAASjD,QACTukE,YAAa3zE,OACb8zE,iBAAkB9zE,OAClB8lL,iBAAkB,CAChBryK,KAAMzT,OACNqjE,QAAS,QAEX1wC,MAAO,CACLlf,KAAMmyK,GACNviH,QAAS,UAGb7lE,OAAQ,SAAiB2B,GACvB,IAAI4mL,EAAS1nL,KAET4hL,EAAS5hL,KAAKouE,QACd1gD,EAAU1tB,KAAK8vI,OACf/jD,EAAM61F,EAAOh4J,QACf5pB,KAAKyM,GACLihB,EACA1tB,KAAKu1E,QAEHhiD,EAAWw4D,EAAIx4D,SACf+mH,EAAQvuD,EAAIuuD,MACZxsE,EAAOie,EAAIje,KAEXotC,EAAU,GACVysE,EAAoB/F,EAAOjiL,QAAQioL,gBACnCC,EAAyBjG,EAAOjiL,QAAQmoL,qBAExCC,EACmB,MAArBJ,EAA4B,qBAAuBA,EACjDK,EACwB,MAA1BH,EACI,2BACAA,EACFvyG,EACkB,MAApBt1E,KAAKs1E,YAAsByyG,EAAsB/nL,KAAKs1E,YACpDG,EACuB,MAAzBz1E,KAAKy1E,iBACDuyG,EACAhoL,KAAKy1E,iBAEPwyG,EAAgB3tC,EAAMqnC,eACtBF,EAAY,KAAMsF,GAAkBzsC,EAAMqnC,gBAAiB,KAAMC,GACjEtnC,EAEJp/B,EAAQzlC,GAAoB0sG,EAAYz0J,EAASu6J,EAAejoL,KAAK01E,WACrEwlC,EAAQ5lC,GAAet1E,KAAKw1E,OAASx1E,KAAK01E,UACtCwlC,EAAQzlC,GACRgtG,EAAgB/0J,EAASu6J,GAE7B,IAAIR,EAAmBvsE,EAAQzlC,GAAoBz1E,KAAKynL,iBAAmB,KAEvE9yJ,EAAU,SAAUgL,GAClBuoJ,GAAWvoJ,KACT+nJ,EAAO1zK,QACT4tK,EAAO5tK,QAAQuf,EAAUzN,IAEzB87J,EAAO5yK,KAAKukB,EAAUzN,MAKxBshD,EAAK,CAAEqB,MAAOy/G,IACdjmL,MAAMqQ,QAAQtS,KAAKs0B,OACrBt0B,KAAKs0B,MAAMpnB,SAAQ,SAAUyyB,GAC3BynC,EAAGznC,GAAKhL,KAGVyyC,EAAGpnE,KAAKs0B,OAASK,EAGnB,IAAI3e,EAAO,CAAEuyD,MAAO2yC,GAEhBitE,GACDnoL,KAAKomE,aAAagiH,YACnBpoL,KAAKomE,aAAapB,SAClBhlE,KAAKomE,aAAapB,QAAQ,CACxB8I,KAAMA,EACNwsE,MAAOA,EACP+tC,SAAU1zJ,EACV62D,SAAU0vB,EAAQ5lC,GAClBgzG,cAAeptE,EAAQzlC,KAG3B,GAAI0yG,EAAY,CAKd,GAA0B,IAAtBA,EAAWxlL,OACb,OAAOwlL,EAAW,GACb,GAAIA,EAAWxlL,OAAS,IAAMwlL,EAAWxlL,OAO9C,OAA6B,IAAtBwlL,EAAWxlL,OAAe7B,IAAMA,EAAE,OAAQ,GAAIqnL,GAqBzD,GAAiB,MAAbnoL,KAAK4T,IACPoC,EAAKoxD,GAAKA,EACVpxD,EAAKwyD,MAAQ,CAAEsF,KAAMA,EAAM,eAAgB25G,OACtC,CAEL,IAAI3kK,EAAIylK,GAAWvoL,KAAKqmE,OAAOrB,SAC/B,GAAIliD,EAAG,CAELA,EAAEkkJ,UAAW,EACb,IAAIwhB,EAAS1lK,EAAE9M,KAAOyzC,EAAO,GAAI3mC,EAAE9M,MAGnC,IAAK,IAAIse,KAFTk0J,EAAMphH,GAAKohH,EAAMphH,IAAM,GAELohH,EAAMphH,GAAI,CAC1B,IAAIqhH,EAAYD,EAAMphH,GAAG9yC,GACrBA,KAAS8yC,IACXohH,EAAMphH,GAAG9yC,GAASryB,MAAMqQ,QAAQm2K,GAAaA,EAAY,CAACA,IAI9D,IAAK,IAAIC,KAAWthH,EACdshH,KAAWF,EAAMphH,GAEnBohH,EAAMphH,GAAGshH,GAAS15K,KAAKo4D,EAAGshH,IAE1BF,EAAMphH,GAAGshH,GAAW/zJ,EAIxB,IAAIg0J,EAAU7lK,EAAE9M,KAAKwyD,MAAQ/e,EAAO,GAAI3mC,EAAE9M,KAAKwyD,OAC/CmgH,EAAO76G,KAAOA,EACd66G,EAAO,gBAAkBlB,OAGzBzxK,EAAKoxD,GAAKA,EAId,OAAOtmE,EAAEd,KAAK4T,IAAKoC,EAAMhW,KAAKqmE,OAAOrB,WAIzC,SAASkjH,GAAYvoJ,GAEnB,KAAIA,EAAEsyF,SAAWtyF,EAAEkpD,QAAUlpD,EAAEmpD,SAAWnpD,EAAE89C,YAExC99C,EAAEwuE,wBAEWhsG,IAAbw9B,EAAEu4C,QAAqC,IAAbv4C,EAAEu4C,QAAhC,CAEA,GAAIv4C,EAAEs3C,eAAiBt3C,EAAEs3C,cAAcxV,aAAc,CACnD,IAAIn1D,EAASqzB,EAAEs3C,cAAcxV,aAAa,UAC1C,GAAI,cAAcntD,KAAKhI,GAAW,OAMpC,OAHIqzB,EAAE4nC,gBACJ5nC,EAAE4nC,kBAEG,GAGT,SAASghH,GAAY9+G,GACnB,GAAIA,EAEF,IADA,IAAI7I,EACK12D,EAAI,EAAGA,EAAIu/D,EAAS9mE,OAAQuH,IAAK,CAExC,GADA02D,EAAQ6I,EAASv/D,GACC,MAAd02D,EAAMhtD,IACR,OAAOgtD,EAET,GAAIA,EAAM6I,WAAa7I,EAAQ2nH,GAAW3nH,EAAM6I,WAC9C,OAAO7I,GAQf,SAASzX,GAASV,GAChB,IAAIU,GAAQC,WAAai+H,KAAS5+H,EAAlC,CACAU,GAAQC,WAAY,EAEpBi+H,GAAO5+H,EAEP,IAAImgI,EAAQ,SAAU5sJ,GAAK,YAAa75B,IAAN65B,GAE9B6sJ,EAAmB,SAAUt3E,EAAIu3E,GACnC,IAAI5+K,EAAIqnG,EAAG7wG,SAASqoL,aAChBH,EAAM1+K,IAAM0+K,EAAM1+K,EAAIA,EAAE8L,OAAS4yK,EAAM1+K,EAAIA,EAAE45K,wBAC/C55K,EAAEqnG,EAAIu3E,IAIVrgI,EAAIwd,MAAM,CACRjlE,aAAc,WACR4nL,EAAM5oL,KAAKU,SAASkhL,SACtB5hL,KAAKojL,YAAcpjL,KACnBA,KAAKgpL,QAAUhpL,KAAKU,SAASkhL,OAC7B5hL,KAAKgpL,QAAQ3vJ,KAAKr5B,MAClByoD,EAAI3O,KAAKmvI,eAAejpL,KAAM,SAAUA,KAAKgpL,QAAQE,QAAQx7J,UAE7D1tB,KAAKojL,YAAepjL,KAAKmyE,SAAWnyE,KAAKmyE,QAAQixG,aAAgBpjL,KAEnE6oL,EAAiB7oL,KAAMA,OAEzBskI,UAAW,WACTukD,EAAiB7oL,SAIrBoD,OAAOtB,eAAe2mD,EAAIvmD,UAAW,UAAW,CAC9CwE,IAAK,WAAkB,OAAO1G,KAAKojL,YAAY4F,WAGjD5lL,OAAOtB,eAAe2mD,EAAIvmD,UAAW,SAAU,CAC7CwE,IAAK,WAAkB,OAAO1G,KAAKojL,YAAY+F,UAGjD1gI,EAAIqB,UAAU,aAAck5H,GAC5Bv6H,EAAIqB,UAAU,aAAc09H,IAE5B,IAAI4B,EAAS3gI,EAAIJ,OAAOghI,sBAExBD,EAAOE,iBAAmBF,EAAOG,iBAAmBH,EAAOI,kBAAoBJ,EAAOh+G,SAKxF,IAAIkrG,GAA8B,qBAAX/3J,OAIvB,SAASkrK,GACPC,EACAC,EACAC,EACAC,EACAC,GAGA,IAAIC,EAAWJ,GAAe,GAE1BK,EAAUJ,GAAcxmL,OAAOvB,OAAO,MAEtCooL,EAAUJ,GAAczmL,OAAOvB,OAAO,MAE1C6nL,EAAOx8K,SAAQ,SAAUotI,GACvB4vC,GAAeH,EAAUC,EAASC,EAAS3vC,EAAOwvC,MAIpD,IAAK,IAAI5/K,EAAI,EAAGo1K,EAAIyK,EAASpnL,OAAQuH,EAAIo1K,EAAGp1K,IACtB,MAAhB6/K,EAAS7/K,KACX6/K,EAAS/6K,KAAK+6K,EAASpzK,OAAOzM,EAAG,GAAG,IACpCo1K,IACAp1K,KAgBJ,MAAO,CACL6/K,SAAUA,EACVC,QAASA,EACTC,QAASA,GAIb,SAASC,GACPH,EACAC,EACAC,EACA3vC,EACAn6I,EACAgqL,GAEA,IAAIzuK,EAAO4+H,EAAM5+H,KACbtR,EAAOkwI,EAAMlwI,KAmBjB,IAAIggL,EACF9vC,EAAM8vC,qBAAuB,GAC3BC,EAAiBC,GAAc5uK,EAAMvb,EAAQiqL,EAAoB52I,QAElC,mBAAxB8mG,EAAMiwC,gBACfH,EAAoB/D,UAAY/rC,EAAMiwC,eAGxC,IAAI7I,EAAS,CACXhmK,KAAM2uK,EACNG,MAAOC,GAAkBJ,EAAgBD,GACzCphI,WAAYsxF,EAAMtxF,YAAc,CAAEgc,QAASs1E,EAAMxwF,WACjD+mH,MAAOv2B,EAAMu2B,MACc,kBAAhBv2B,EAAMu2B,MACX,CAACv2B,EAAMu2B,OACPv2B,EAAMu2B,MACR,GACJ+R,UAAW,GACXE,WAAY,GACZ14K,KAAMA,EACNjK,OAAQA,EACRgqL,QAASA,EACTO,SAAUpwC,EAAMowC,SAChBl8C,YAAa8L,EAAM9L,YACnBvpH,KAAMq1H,EAAMr1H,MAAQ,GACpBkI,MACiB,MAAfmtH,EAAMntH,MACF,GACAmtH,EAAMtxF,WACJsxF,EAAMntH,MACN,CAAE63C,QAASs1E,EAAMntH,QAoC3B,GAjCImtH,EAAM7wE,UAoBR6wE,EAAM7wE,SAASv8D,SAAQ,SAAU0zD,GAC/B,IAAI+pH,EAAeR,EACfxF,EAAWwF,EAAU,IAAOvpH,EAAMllD,WAClCvZ,EACJ+nL,GAAeH,EAAUC,EAASC,EAASrpH,EAAO8gH,EAAQiJ,MAIzDX,EAAQtI,EAAOhmK,QAClBquK,EAAS/6K,KAAK0yK,EAAOhmK,MACrBsuK,EAAQtI,EAAOhmK,MAAQgmK,QAGLv/K,IAAhBm4I,EAAMu2B,MAER,IADA,IAAI+Z,EAAU3oL,MAAMqQ,QAAQgoI,EAAMu2B,OAASv2B,EAAMu2B,MAAQ,CAACv2B,EAAMu2B,OACvD3mK,EAAI,EAAGA,EAAI0gL,EAAQjoL,SAAUuH,EAAG,CACvC,IAAI2mK,EAAQ+Z,EAAQ1gL,GAChByU,EASJ,IAAIksK,EAAa,CACfnvK,KAAMm1J,EACNpnG,SAAU6wE,EAAM7wE,UAElBygH,GACEH,EACAC,EACAC,EACAY,EACA1qL,EACAuhL,EAAOhmK,MAAQ,KAKjBtR,IACG6/K,EAAQ7/K,KACX6/K,EAAQ7/K,GAAQs3K,IAWtB,SAAS+I,GACP/uK,EACA0uK,GAEA,IAAII,EAAQ3F,EAAenpK,EAAM,GAAI0uK,GAWrC,OAAOI,EAGT,SAASF,GACP5uK,EACAvb,EACAqzC,GAGA,OADKA,IAAU93B,EAAOA,EAAK1H,QAAQ,MAAO,KAC1B,MAAZ0H,EAAK,IACK,MAAVvb,EAD0Bub,EAEvBipK,EAAYxkL,EAAOub,KAAQ,IAAMA,GAO1C,SAASovK,GACPpB,EACA9H,GAEA,IAAI71F,EAAM09F,GAAeC,GACrBK,EAAWh+F,EAAIg+F,SACfC,EAAUj+F,EAAIi+F,QACdC,EAAUl+F,EAAIk+F,QAElB,SAASc,EAAWrB,GAClBD,GAAeC,EAAQK,EAAUC,EAASC,GAG5C,SAASe,EAAUC,EAAe3wC,GAChC,IAAIn6I,EAAmC,YAAzB,OAAO8qL,GAA8BhB,EAAQgB,QAAiB9oL,EAE5EsnL,GAAe,CAACnvC,GAAS2wC,GAAgBlB,EAAUC,EAASC,EAAS9pL,GAGjEA,GAAUA,EAAO0wK,MAAMluK,QACzB8mL,GAEEtpL,EAAO0wK,MAAMhhK,KAAI,SAAUghK,GAAS,MAAQ,CAAEn1J,KAAMm1J,EAAOpnG,SAAU,CAAC6wE,OACtEyvC,EACAC,EACAC,EACA9pL,GAKN,SAAS+qL,IACP,OAAOnB,EAASl6K,KAAI,SAAU6L,GAAQ,OAAOsuK,EAAQtuK,MAGvD,SAAS4C,EACP6S,EACAqpH,EACAmnC,GAEA,IAAIpuJ,EAAWwzJ,GAAkB51J,EAAKqpH,GAAc,EAAOonC,GACvDx3K,EAAOmpB,EAASnpB,KAEpB,GAAIA,EAAM,CACR,IAAIs3K,EAASuI,EAAQ7/K,GAIrB,IAAKs3K,EAAU,OAAOyJ,EAAa,KAAM53J,GACzC,IAAI63J,EAAa1J,EAAO8I,MAAMlgL,KAC3BwF,QAAO,SAAUxN,GAAO,OAAQA,EAAIujL,YACpCh2K,KAAI,SAAUvN,GAAO,OAAOA,EAAI8H,QAMnC,GAJ+B,YAA3B,OAAOmpB,EAASsuJ,UAClBtuJ,EAASsuJ,OAAS,IAGhBrnC,GAA+C,YAA/B,OAAOA,EAAaqnC,QACtC,IAAK,IAAIv/K,KAAOk4I,EAAaqnC,SACrBv/K,KAAOixB,EAASsuJ,SAAWuJ,EAAWv8K,QAAQvM,IAAQ,IAC1DixB,EAASsuJ,OAAOv/K,GAAOk4I,EAAaqnC,OAAOv/K,IAMjD,OADAixB,EAAS7X,KAAOirK,GAAWjF,EAAOhmK,KAAM6X,EAASsuJ,OAAS,gBAAmBz3K,EAAO,KAC7E+gL,EAAazJ,EAAQnuJ,EAAUouJ,GACjC,GAAIpuJ,EAAS7X,KAAM,CACxB6X,EAASsuJ,OAAS,GAClB,IAAK,IAAI33K,EAAI,EAAGA,EAAI6/K,EAASpnL,OAAQuH,IAAK,CACxC,IAAIwR,EAAOquK,EAAS7/K,GAChBmhL,EAAWrB,EAAQtuK,GACvB,GAAI4vK,GAAWD,EAASb,MAAOj3J,EAAS7X,KAAM6X,EAASsuJ,QACrD,OAAOsJ,EAAaE,EAAU93J,EAAUouJ,IAK9C,OAAOwJ,EAAa,KAAM53J,GAG5B,SAASm3J,EACPhJ,EACAnuJ,GAEA,IAAIg4J,EAAmB7J,EAAOgJ,SAC1BA,EAAuC,oBAArBa,EAClBA,EAAiB9J,EAAYC,EAAQnuJ,EAAU,KAAMquJ,IACrD2J,EAMJ,GAJwB,kBAAbb,IACTA,EAAW,CAAEhvK,KAAMgvK,KAGhBA,GAAgC,YAApB,OAAOA,GAMtB,OAAOS,EAAa,KAAM53J,GAG5B,IAAIpT,EAAKuqK,EACLtgL,EAAO+V,EAAG/V,KACVsR,EAAOyE,EAAGzE,KACV6xD,EAAQh6C,EAASg6C,MACjBqB,EAAOr7C,EAASq7C,KAChBizG,EAAStuJ,EAASsuJ,OAKtB,GAJAt0G,EAAQptD,EAAGa,eAAe,SAAWb,EAAGotD,MAAQA,EAChDqB,EAAOzuD,EAAGa,eAAe,QAAUb,EAAGyuD,KAAOA,EAC7CizG,EAAS1hK,EAAGa,eAAe,UAAYb,EAAG0hK,OAASA,EAE/Cz3K,EAAM,CAEW6/K,EAAQ7/K,GAI3B,OAAOkU,EAAM,CACX0oK,aAAa,EACb58K,KAAMA,EACNmjE,MAAOA,EACPqB,KAAMA,EACNizG,OAAQA,QACP1/K,EAAWoxB,GACT,GAAI7X,EAAM,CAEf,IAAIwrK,EAAUsE,GAAkB9vK,EAAMgmK,GAElC+J,EAAe9E,GAAWO,EAASrF,EAAS,6BAAgCqF,EAAU,KAE1F,OAAO5oK,EAAM,CACX0oK,aAAa,EACbtrK,KAAM+vK,EACNl+G,MAAOA,EACPqB,KAAMA,QACLzsE,EAAWoxB,GAKd,OAAO43J,EAAa,KAAM53J,GAI9B,SAASs9I,EACP6Q,EACAnuJ,EACA42J,GAEA,IAAIuB,EAAc/E,GAAWwD,EAAS52J,EAASsuJ,OAAS,4BAA+BsI,EAAU,KAC7FwB,EAAertK,EAAM,CACvB0oK,aAAa,EACbtrK,KAAMgwK,IAER,GAAIC,EAAc,CAChB,IAAI1pK,EAAU0pK,EAAa1pK,QACvB2pK,EAAgB3pK,EAAQA,EAAQtf,OAAS,GAE7C,OADA4wB,EAASsuJ,OAAS8J,EAAa9J,OACxBsJ,EAAaS,EAAer4J,GAErC,OAAO43J,EAAa,KAAM53J,GAG5B,SAAS43J,EACPzJ,EACAnuJ,EACAouJ,GAEA,OAAID,GAAUA,EAAOgJ,SACZA,EAAShJ,EAAQC,GAAkBpuJ,GAExCmuJ,GAAUA,EAAOyI,QACZtZ,EAAM6Q,EAAQnuJ,EAAUmuJ,EAAOyI,SAEjC1I,EAAYC,EAAQnuJ,EAAUouJ,EAAgBC,GAGvD,MAAO,CACLtjK,MAAOA,EACP0sK,SAAUA,EACVE,UAAWA,EACXH,UAAWA,GAIf,SAASO,GACPd,EACA9uK,EACAmmK,GAEA,IAAIt/J,EAAI7G,EAAK4C,MAAMksK,GAEnB,IAAKjoK,EACH,OAAO,EACF,IAAKs/J,EACV,OAAO,EAGT,IAAK,IAAI33K,EAAI,EAAGsC,EAAM+V,EAAE5f,OAAQuH,EAAIsC,IAAOtC,EAAG,CAC5C,IAAI5H,EAAMkoL,EAAMlgL,KAAKJ,EAAI,GACrB5H,IAEFu/K,EAAOv/K,EAAI8H,MAAQ,aAA+B,kBAATmY,EAAErY,GAAkBkjE,EAAO7qD,EAAErY,IAAMqY,EAAErY,IAIlF,OAAO,EAGT,SAASshL,GAAmB9vK,EAAMgmK,GAChC,OAAOyC,EAAYzoK,EAAMgmK,EAAOvhL,OAASuhL,EAAOvhL,OAAOub,KAAO,KAAK,GAMrE,IAAImwK,GACFvV,IAAa/3J,OAAOutK,aAAevtK,OAAOutK,YAAYl3J,IAClDrW,OAAOutK,YACP51I,KAEN,SAAS61I,KACP,OAAOF,GAAKj3J,MAAMqK,QAAQ,GAG5B,IAAI+S,GAAO+5I,KAEX,SAASC,KACP,OAAOh6I,GAGT,SAASi6I,GAAa3pL,GACpB,OAAQ0vC,GAAO1vC,EAKjB,IAAI4pL,GAAgB9oL,OAAOvB,OAAO,MAElC,SAASsqL,KAEH,sBAAuB5tK,OAAO2qK,UAChC3qK,OAAO2qK,QAAQkD,kBAAoB,UAOrC,IAAIC,EAAkB9tK,OAAOgV,SAASkB,SAAW,KAAOlW,OAAOgV,SAASmB,KACpE43J,EAAe/tK,OAAOgV,SAASu6C,KAAK95D,QAAQq4K,EAAiB,IAE7DE,EAAY9iI,EAAO,GAAIlrC,OAAO2qK,QAAQvzK,OAI1C,OAHA42K,EAAUjqL,IAAM0pL,KAChBztK,OAAO2qK,QAAQsD,aAAaD,EAAW,GAAID,GAC3C/tK,OAAOyW,iBAAiB,WAAYy3J,IAC7B,WACLluK,OAAOojC,oBAAoB,WAAY8qI,KAI3C,SAASC,GACP9K,EACAn1K,EACAC,EACAigL,GAEA,GAAK/K,EAAOgL,IAAZ,CAIA,IAAIniF,EAAWm3E,EAAOjiL,QAAQktL,eACzBpiF,GASLm3E,EAAOgL,IAAIzhH,WAAU,WACnB,IAAIjpD,EAAW4qK,KACXC,EAAetiF,EAASpqG,KAC1BuhL,EACAn1K,EACAC,EACAigL,EAAQzqK,EAAW,MAGhB6qK,IAI4B,oBAAtBA,EAAajkK,KACtBikK,EACGjkK,MAAK,SAAUikK,GACdC,GAAkBD,EAAe7qK,MAElC8wB,OAAM,SAAUrB,GACXhzB,KAKRquK,GAAiBD,EAAc7qK,QAKrC,SAAS+qK,KACP,IAAI3qL,EAAM0pL,KACN1pL,IACF4pL,GAAc5pL,GAAO,CACnBimB,EAAGhK,OAAOkkD,YACVzwC,EAAGzT,OAAOikD,cAKhB,SAASiqH,GAAgB9sJ,GACvBstJ,KACIttJ,EAAEhqB,OAASgqB,EAAEhqB,MAAMrT,KACrB2pL,GAAYtsJ,EAAEhqB,MAAMrT,KAIxB,SAASwqL,KACP,IAAIxqL,EAAM0pL,KACV,GAAI1pL,EACF,OAAO4pL,GAAc5pL,GAIzB,SAAS4qL,GAAoBx+K,EAAI1D,GAC/B,IAAImiL,EAAQrxK,SAASgmC,gBACjBsrI,EAAUD,EAAMtrH,wBAChBwrH,EAAS3+K,EAAGmzD,wBAChB,MAAO,CACLt5C,EAAG8kK,EAAOj8K,KAAOg8K,EAAQh8K,KAAOpG,EAAOud,EACvCyJ,EAAGq7J,EAAOlrH,IAAMirH,EAAQjrH,IAAMn3D,EAAOgnB,GAIzC,SAASs7J,GAAiBtlK,GACxB,OAAO89B,GAAS99B,EAAIO,IAAMu9B,GAAS99B,EAAIgK,GAGzC,SAASu7J,GAAmBvlK,GAC1B,MAAO,CACLO,EAAGu9B,GAAS99B,EAAIO,GAAKP,EAAIO,EAAIhK,OAAOkkD,YACpCzwC,EAAG8zB,GAAS99B,EAAIgK,GAAKhK,EAAIgK,EAAIzT,OAAOikD,aAIxC,SAASgrH,GAAiBxlK,GACxB,MAAO,CACLO,EAAGu9B,GAAS99B,EAAIO,GAAKP,EAAIO,EAAI,EAC7ByJ,EAAG8zB,GAAS99B,EAAIgK,GAAKhK,EAAIgK,EAAI,GAIjC,SAAS8zB,GAAU9pB,GACjB,MAAoB,kBAANA,EAGhB,IAAIyxJ,GAAyB,OAE7B,SAAST,GAAkBD,EAAc7qK,GACvC,IAAInf,EAAmC,YAAxB,OAAOgqL,GACtB,GAAIhqL,GAA6C,kBAA1BgqL,EAAa1sH,SAAuB,CAGzD,IAAI3xD,EAAK++K,GAAuBn5K,KAAKy4K,EAAa1sH,UAC9CvkD,SAASglD,eAAeisH,EAAa1sH,SAAS3uD,MAAM,IACpDoK,SAAS4kD,cAAcqsH,EAAa1sH,UAExC,GAAI3xD,EAAI,CACN,IAAI1D,EACF+hL,EAAa/hL,QAAyC,YAA/B,OAAO+hL,EAAa/hL,QACvC+hL,EAAa/hL,OACb,GACNA,EAASwiL,GAAgBxiL,GACzBkX,EAAWgrK,GAAmBx+K,EAAI1D,QACzBsiL,GAAgBP,KACzB7qK,EAAWqrK,GAAkBR,SAEtBhqL,GAAYuqL,GAAgBP,KACrC7qK,EAAWqrK,GAAkBR,IAG3B7qK,IAEE,mBAAoBpG,SAASgmC,gBAAgBr1B,MAC/ClO,OAAOmvK,SAAS,CACdt8K,KAAM8Q,EAASqG,EACf45C,IAAKjgD,EAAS8P,EAEdy4E,SAAUsiF,EAAatiF,WAGzBlsF,OAAOmvK,SAASxrK,EAASqG,EAAGrG,EAAS8P,IAO3C,IAAI27J,GACFrX,IACC,WACC,IAAIsX,EAAKrvK,OAAOwiC,UAAU3iC,UAE1B,QACiC,IAA9BwvK,EAAG/+K,QAAQ,gBAAuD,IAA/B++K,EAAG/+K,QAAQ,iBACd,IAAjC++K,EAAG/+K,QAAQ,mBACe,IAA1B++K,EAAG/+K,QAAQ,YACsB,IAAjC++K,EAAG/+K,QAAQ,oBAKN0P,OAAO2qK,SAA+C,oBAA7B3qK,OAAO2qK,QAAQ2E,WAZhD,GAeH,SAASA,GAAW1mJ,EAAKnzB,GACvBi5K,KAGA,IAAI/D,EAAU3qK,OAAO2qK,QACrB,IACE,GAAIl1K,EAAS,CAEX,IAAIu4K,EAAY9iI,EAAO,GAAIy/H,EAAQvzK,OACnC42K,EAAUjqL,IAAM0pL,KAChB9C,EAAQsD,aAAaD,EAAW,GAAIplJ,QAEpC+hJ,EAAQ2E,UAAU,CAAEvrL,IAAK2pL,GAAYF,OAAkB,GAAI5kJ,GAE7D,MAAOxH,GACPphB,OAAOgV,SAASvf,EAAU,UAAY,UAAUmzB,IAIpD,SAASqlJ,GAAcrlJ,GACrB0mJ,GAAU1mJ,GAAK,GAKjB,SAAS2mJ,GAAU75J,EAAOthB,EAAIksD,GAC5B,IAAI5wD,EAAO,SAAPA,EAAiBxL,GACfA,GAASwxB,EAAMtxB,OACjBk8D,IAEI5qC,EAAMxxB,GACRkQ,EAAGshB,EAAMxxB,IAAQ,WACfwL,EAAKxL,EAAQ,MAGfwL,EAAKxL,EAAQ,IAInBwL,EAAK,GAIP,IAAI8/K,GAAwB,CAC1BC,WAAY,EACZC,QAAS,EACTC,UAAW,EACXC,WAAY,IAGd,SAASC,GAAiC1hL,EAAMD,GAC9C,OAAO4hL,GACL3hL,EACAD,EACAshL,GAAsBC,WACrB,+BAAmCthL,EAAKw6I,SAAY,SAAconC,GACjE7hL,GACG,6BAIT,SAAS8hL,GAAiC7hL,EAAMD,GAC9C,IAAInG,EAAQ+nL,GACV3hL,EACAD,EACAshL,GAAsBI,WACrB,sDAA0DzhL,EAAKw6I,SAAY,MAI9E,OADA5gJ,EAAM8D,KAAO,uBACN9D,EAGT,SAASkoL,GAAgC9hL,EAAMD,GAC7C,OAAO4hL,GACL3hL,EACAD,EACAshL,GAAsBG,UACrB,8BAAkCxhL,EAAKw6I,SAAY,SAAcz6I,EAAGy6I,SAAY,4BAIrF,SAASunC,GAA8B/hL,EAAMD,GAC3C,OAAO4hL,GACL3hL,EACAD,EACAshL,GAAsBE,QACrB,4BAAgCvhL,EAAKw6I,SAAY,SAAcz6I,EAAGy6I,SAAY,6BAInF,SAASmnC,GAAmB3hL,EAAMD,EAAI2I,EAAM2jB,GAC1C,IAAIzyB,EAAQ,IAAIyN,MAAMglB,GAMtB,OALAzyB,EAAMooL,WAAY,EAClBpoL,EAAMoG,KAAOA,EACbpG,EAAMmG,GAAKA,EACXnG,EAAM8O,KAAOA,EAEN9O,EAGT,IAAIqoL,GAAkB,CAAC,SAAU,QAAS,QAE1C,SAASL,GAAgB7hL,GACvB,GAAkB,kBAAPA,EAAmB,OAAOA,EACrC,GAAI,SAAUA,EAAM,OAAOA,EAAGiP,KAC9B,IAAI6X,EAAW,GAIf,OAHAo7J,GAAgBzhL,SAAQ,SAAU5K,GAC5BA,KAAOmK,IAAM8mB,EAASjxB,GAAOmK,EAAGnK,OAE/Bu7B,KAAKF,UAAUpK,EAAU,KAAM,GAGxC,SAASwrJ,GAASptI,GAChB,OAAOvuC,OAAOlB,UAAUmR,SAAShT,KAAKsxC,GAAK9iC,QAAQ,UAAY,EAGjE,SAAS+/K,GAAqBj9I,EAAKk9I,GACjC,OACE9P,GAAQptI,IACRA,EAAI+8I,YACU,MAAbG,GAAqBl9I,EAAIv8B,OAASy5K,GAMvC,SAASC,GAAwB7sK,GAC/B,OAAO,SAAUxV,EAAIC,EAAMyB,GACzB,IAAI4gL,GAAW,EACXC,EAAU,EACV1oL,EAAQ,KAEZ2oL,GAAkBhtK,GAAS,SAAU4nC,EAAK3hB,EAAG5pB,EAAOhc,GAMlD,GAAmB,oBAARunD,QAAkC1nD,IAAZ0nD,EAAIqlI,IAAmB,CACtDH,GAAW,EACXC,IAEA,IA0BItnJ,EA1BA9d,EAAUmnE,IAAK,SAAUo+F,GACvBC,GAAWD,KACbA,EAAcA,EAAYnqH,SAG5Bnb,EAAI6yE,SAAkC,oBAAhByyD,EAClBA,EACA9H,GAAK59H,OAAO0lI,GAChB7wK,EAAM0qC,WAAW1mD,GAAO6sL,EACxBH,IACIA,GAAW,GACb7gL,OAIAoc,EAASwmE,IAAK,SAAU7tD,GAC1B,IAAI2P,EAAM,qCAAuCvwC,EAAM,KAAO4gC,EAEzD58B,IACHA,EAAQy4K,GAAQ77I,GACZA,EACA,IAAInvB,MAAM8+B,GACd1kC,EAAK7H,OAKT,IACEohC,EAAMmiB,EAAIjgC,EAASW,GACnB,MAAOoV,GACPpV,EAAOoV,GAET,GAAI+H,EACF,GAAwB,oBAAbA,EAAI5e,KACb4e,EAAI5e,KAAKc,EAASW,OACb,CAEL,IAAI8kK,EAAO3nJ,EAAIoiB,UACXulI,GAA6B,oBAAdA,EAAKvmK,MACtBumK,EAAKvmK,KAAKc,EAASW,QAOxBwkK,GAAY5gL,KAIrB,SAAS8gL,GACPhtK,EACAtP,GAEA,OAAO4pD,GAAQt6C,EAAQpS,KAAI,SAAU0S,GACnC,OAAOnf,OAAOkH,KAAKiY,EAAEymC,YAAYn5C,KAAI,SAAUvN,GAAO,OAAOqQ,EAC3D4P,EAAEymC,WAAW1mD,GACbigB,EAAEqgK,UAAUtgL,GACZigB,EAAGjgB,UAKT,SAASi6D,GAAS1hB,GAChB,OAAO54C,MAAMC,UAAUjB,OAAOmP,MAAM,GAAIyqC,GAG1C,IAAIy0I,GACgB,oBAAX1zK,QACuB,YAA9B,OAAOA,OAAO81J,aAEhB,SAAS0d,GAAYpnK,GACnB,OAAOA,EAAIwnB,YAAe8/I,IAAyC,WAA5BtnK,EAAIpM,OAAO81J,aAOpD,SAAS3gF,GAAMp+E,GACb,IAAII,GAAS,EACb,OAAO,WACL,IAAIuO,EAAO,GAAI9U,EAAMrB,UAAUxI,OAC/B,MAAQ6J,IAAQ8U,EAAM9U,GAAQrB,UAAWqB,GAEzC,IAAIuG,EAEJ,OADAA,GAAS,EACFJ,EAAGvC,MAAMpQ,KAAMshB,IAM1B,IAAIiuK,GAAU,SAAkB3N,EAAQroI,GACtCv5C,KAAK4hL,OAASA,EACd5hL,KAAKu5C,KAAOi2I,GAAcj2I,GAE1Bv5C,KAAK0tB,QAAUs0J,EACfhiL,KAAKgvL,QAAU,KACfhvL,KAAKyvL,OAAQ,EACbzvL,KAAK0vL,SAAW,GAChB1vL,KAAK2vL,cAAgB,GACrB3vL,KAAK4vL,SAAW,GAChB5vL,KAAKu4E,UAAY,IAwNnB,SAASi3G,GAAej2I,GACtB,IAAKA,EACH,GAAI+8H,GAAW,CAEb,IAAIuZ,EAAS/zK,SAAS4kD,cAAc,QACpCnnB,EAAQs2I,GAAUA,EAAOpuH,aAAa,SAAY,IAElDloB,EAAOA,EAAKvlC,QAAQ,qBAAsB,SAE1CulC,EAAO,IAQX,MAJuB,MAAnBA,EAAKh3C,OAAO,KACdg3C,EAAO,IAAMA,GAGRA,EAAKvlC,QAAQ,MAAO,IAG7B,SAAS87K,GACPpiK,EACAvf,GAEA,IAAIjE,EACAoH,EAAMlF,KAAKkF,IAAIoc,EAAQ/qB,OAAQwL,EAAKxL,QACxC,IAAKuH,EAAI,EAAGA,EAAIoH,EAAKpH,IACnB,GAAIwjB,EAAQxjB,KAAOiE,EAAKjE,GACtB,MAGJ,MAAO,CACLgyF,QAAS/tF,EAAKuD,MAAM,EAAGxH,GACvBk+E,UAAWj6E,EAAKuD,MAAMxH,GACtBm+E,YAAa36D,EAAQhc,MAAMxH,IAI/B,SAAS6lL,GACPC,EACA5lL,EACAkD,EACA3E,GAEA,IAAIsnL,EAAShB,GAAkBe,GAAS,SAAUnmI,EAAK7xC,EAAUsG,EAAOhc,GACtE,IAAI4tL,EAAQC,GAAatmI,EAAKz/C,GAC9B,GAAI8lL,EACF,OAAOjuL,MAAMqQ,QAAQ49K,GACjBA,EAAMrgL,KAAI,SAAUqgL,GAAS,OAAO5iL,EAAK4iL,EAAOl4K,EAAUsG,EAAOhc,MACjEgL,EAAK4iL,EAAOl4K,EAAUsG,EAAOhc,MAGrC,OAAOi6D,GAAQ5zD,EAAUsnL,EAAOtnL,UAAYsnL,GAG9C,SAASE,GACPtmI,EACAvnD,GAMA,MAJmB,oBAARunD,IAETA,EAAMw9H,GAAK59H,OAAOI,IAEbA,EAAIlqD,QAAQ2C,GAGrB,SAAS8tL,GAAoB/nG,GAC3B,OAAO0nG,GAAc1nG,EAAa,mBAAoBgoG,IAAW,GAGnE,SAASC,GAAoBp0F,GAC3B,OAAO6zF,GAAc7zF,EAAS,oBAAqBm0F,IAGrD,SAASA,GAAWH,EAAOl4K,GACzB,GAAIA,EACF,OAAO,WACL,OAAOk4K,EAAM9/K,MAAM4H,EAAU7M,YAKnC,SAASolL,GACPnoG,GAEA,OAAO2nG,GACL3nG,EACA,oBACA,SAAU8nG,EAAOhoJ,EAAG5pB,EAAOhc,GACzB,OAAOkuL,GAAeN,EAAO5xK,EAAOhc,MAK1C,SAASkuL,GACPN,EACA5xK,EACAhc,GAEA,OAAO,SAA0BmK,EAAIC,EAAMyB,GACzC,OAAO+hL,EAAMzjL,EAAIC,GAAM,SAAUmyD,GACb,oBAAPA,IACJvgD,EAAMwkK,WAAWxgL,KACpBgc,EAAMwkK,WAAWxgL,GAAO,IAE1Bgc,EAAMwkK,WAAWxgL,GAAK0M,KAAK6vD,IAE7B1wD,EAAK0wD,OAhUX0wH,GAAQrtL,UAAUg8I,OAAS,SAAiBr/E,GAC1C7+D,KAAK6+D,GAAKA,GAGZ0wH,GAAQrtL,UAAUuuL,QAAU,SAAkB5xH,EAAI6xH,GAC5C1wL,KAAKyvL,MACP5wH,KAEA7+D,KAAK0vL,SAAS1gL,KAAK6vD,GACf6xH,GACF1wL,KAAK2vL,cAAc3gL,KAAK0hL,KAK9BnB,GAAQrtL,UAAUyuL,QAAU,SAAkBD,GAC5C1wL,KAAK4vL,SAAS5gL,KAAK0hL,IAGrBnB,GAAQrtL,UAAU0uL,aAAe,SAC/Br9J,EACAs9J,EACAC,GAEE,IAEEx2C,EAFEotC,EAAS1nL,KAIf,IACEs6I,EAAQt6I,KAAK4hL,OAAOtjK,MAAMiV,EAAUvzB,KAAK0tB,SACzC,MAAOiS,GAKP,MAJA3/B,KAAK4vL,SAAS1iL,SAAQ,SAAU2xD,GAC9BA,EAAGl/B,MAGCA,EAER,IAAI1pB,EAAOjW,KAAK0tB,QAChB1tB,KAAK+wL,kBACHz2C,GACA,WACEotC,EAAOsJ,YAAY12C,GACnBu2C,GAAcA,EAAWv2C,GACzBotC,EAAOuJ,YACPvJ,EAAO9F,OAAOsP,WAAWhkL,SAAQ,SAAUxN,GACzCA,GAAQA,EAAK46I,EAAOrkI,MAIjByxK,EAAO+H,QACV/H,EAAO+H,OAAQ,EACf/H,EAAOgI,SAASxiL,SAAQ,SAAU2xD,GAChCA,EAAGy7E,UAIT,SAAU3oG,GACJm/I,GACFA,EAAQn/I,GAENA,IAAQ+1I,EAAO+H,QAKZb,GAAoBj9I,EAAKo8I,GAAsBC,aAAe/3K,IAAS+rK,IAC1E0F,EAAO+H,OAAQ,EACf/H,EAAOiI,cAAcziL,SAAQ,SAAU2xD,GACrCA,EAAGltB,YAQf49I,GAAQrtL,UAAU6uL,kBAAoB,SAA4Bz2C,EAAOu2C,EAAYC,GACjF,IAAIpJ,EAAS1nL,KAEX0tB,EAAU1tB,KAAK0tB,QACnB1tB,KAAKgvL,QAAU10C,EACf,IAAI62C,EAAQ,SAAUx/I,IAIfi9I,GAAoBj9I,IAAQotI,GAAQptI,KACnC+1I,EAAOkI,SAASjtL,OAClB+kL,EAAOkI,SAAS1iL,SAAQ,SAAU2xD,GAChCA,EAAGltB,MAML3uB,EAAQ1c,MAAMqrC,IAGlBm/I,GAAWA,EAAQn/I,IAEjBy/I,EAAiB92C,EAAMr4H,QAAQtf,OAAS,EACxC0uL,EAAmB3jK,EAAQzL,QAAQtf,OAAS,EAChD,GACEw/K,EAAY7nC,EAAO5sH,IAEnB0jK,IAAmBC,GACnB/2C,EAAMr4H,QAAQmvK,KAAoB1jK,EAAQzL,QAAQovK,GAMlD,OAJArxL,KAAKixL,YACD32C,EAAM1rE,MACR89G,GAAa1sL,KAAK4hL,OAAQl0J,EAAS4sH,GAAO,GAErC62C,EAAM5C,GAAgC7gK,EAAS4sH,IAGxD,IAAIvuD,EAAM+jG,GACR9vL,KAAK0tB,QAAQzL,QACbq4H,EAAMr4H,SAEFi6E,EAAUnQ,EAAImQ,QACd7T,EAAc0D,EAAI1D,YAClBD,EAAY2D,EAAI3D,UAElBn0D,EAAQ,GAAGhzB,OAEbmvL,GAAmB/nG,GAEnBroF,KAAK4hL,OAAO0P,YAEZhB,GAAmBp0F,GAEnB9T,EAAUv4E,KAAI,SAAU0S,GAAK,OAAOA,EAAEisH,eAEtCsgD,GAAuB1mG,IAGrBl6E,EAAW,SAAUxO,EAAMyO,GAC7B,GAAIu5K,EAAOsH,UAAY10C,EACrB,OAAO62C,EAAM3C,GAA+B9gK,EAAS4sH,IAEvD,IACE56I,EAAK46I,EAAO5sH,GAAS,SAAUjhB,IAClB,IAAPA,GAEFi7K,EAAOuJ,WAAU,GACjBE,EAAM1C,GAA6B/gK,EAAS4sH,KACnCykC,GAAQtyK,IACjBi7K,EAAOuJ,WAAU,GACjBE,EAAM1kL,IAEQ,kBAAPA,GACQ,YAAd,OAAOA,KACc,kBAAZA,EAAGiP,MAAwC,kBAAZjP,EAAGrC,OAG5C+mL,EAAM/C,GAAgC1gK,EAAS4sH,IAC7B,YAAd,OAAO7tI,IAAmBA,EAAGuH,QAC/B0zK,EAAO1zK,QAAQvH,GAEfi7K,EAAO14K,KAAKvC,IAId0B,EAAK1B,MAGT,MAAOkzB,GACPwxJ,EAAMxxJ,KAIVmuJ,GAAS75J,EAAO/lB,GAAU,WAGxB,IAAIqjL,EAAchB,GAAmBnoG,GACjCn0D,EAAQs9J,EAAYtwL,OAAOymL,EAAO9F,OAAO4P,cAC7C1D,GAAS75J,EAAO/lB,GAAU,WACxB,GAAIw5K,EAAOsH,UAAY10C,EACrB,OAAO62C,EAAM3C,GAA+B9gK,EAAS4sH,IAEvDotC,EAAOsH,QAAU,KACjB6B,EAAWv2C,GACPotC,EAAO9F,OAAOgL,KAChBlF,EAAO9F,OAAOgL,IAAIzhH,WAAU,WAC1Bw3G,EAAmBroC,aAO7Bi1C,GAAQrtL,UAAU8uL,YAAc,SAAsB12C,GACpDt6I,KAAK0tB,QAAU4sH,EACft6I,KAAK6+D,IAAM7+D,KAAK6+D,GAAGy7E,IAGrBi1C,GAAQrtL,UAAUuvL,eAAiB,aAInClC,GAAQrtL,UAAUwvL,SAAW,WAG3B1xL,KAAKu4E,UAAUrrE,SAAQ,SAAUykL,GAC/BA,OAEF3xL,KAAKu4E,UAAY,GAIjBv4E,KAAK0tB,QAAUs0J,EACfhiL,KAAKgvL,QAAU,MAqHjB,IAAI4C,GAA6B,SAAUrC,GACzC,SAASqC,EAAchQ,EAAQroI,GAC7Bg2I,EAAQlvL,KAAKL,KAAM4hL,EAAQroI,GAE3Bv5C,KAAK6xL,eAAiBC,GAAY9xL,KAAKu5C,MAmFzC,OAhFKg2I,IAAUqC,EAAapjK,UAAY+gK,GACxCqC,EAAa1vL,UAAYkB,OAAOvB,OAAQ0tL,GAAWA,EAAQrtL,WAC3D0vL,EAAa1vL,UAAUsI,YAAconL,EAErCA,EAAa1vL,UAAUuvL,eAAiB,WACtC,IAAI/J,EAAS1nL,KAEb,KAAIA,KAAKu4E,UAAU51E,OAAS,GAA5B,CAIA,IAAIi/K,EAAS5hL,KAAK4hL,OACdmQ,EAAenQ,EAAOjiL,QAAQktL,eAC9BmF,EAAiBrE,IAAqBoE,EAEtCC,GACFhyL,KAAKu4E,UAAUvpE,KAAKm9K,MAGtB,IAAI8F,EAAqB,WACvB,IAAIvkK,EAAUg6J,EAAOh6J,QAIjB6F,EAAWu+J,GAAYpK,EAAOnuI,MAC9BmuI,EAAOh6J,UAAYs0J,GAASzuJ,IAAam0J,EAAOmK,gBAIpDnK,EAAOkJ,aAAar9J,GAAU,SAAU+mH,GAClC03C,GACFtF,GAAa9K,EAAQtnC,EAAO5sH,GAAS,OAI3CnP,OAAOyW,iBAAiB,WAAYi9J,GACpCjyL,KAAKu4E,UAAUvpE,MAAK,WAClBuP,OAAOojC,oBAAoB,WAAYswI,QAI3CL,EAAa1vL,UAAUgwL,GAAK,SAAazgL,GACvC8M,OAAO2qK,QAAQgJ,GAAGzgL,IAGpBmgL,EAAa1vL,UAAU8M,KAAO,SAAeukB,EAAUs9J,EAAYC,GACjE,IAAIpJ,EAAS1nL,KAET+rF,EAAM/rF,KACNmyL,EAAYpmG,EAAIr+D,QACpB1tB,KAAK4wL,aAAar9J,GAAU,SAAU+mH,GACpCuzC,GAAUlJ,EAAU+C,EAAOnuI,KAAO+gG,EAAM4M,WACxCwlC,GAAahF,EAAO9F,OAAQtnC,EAAO63C,GAAW,GAC9CtB,GAAcA,EAAWv2C,KACxBw2C,IAGLc,EAAa1vL,UAAU8R,QAAU,SAAkBuf,EAAUs9J,EAAYC,GACvE,IAAIpJ,EAAS1nL,KAET+rF,EAAM/rF,KACNmyL,EAAYpmG,EAAIr+D,QACpB1tB,KAAK4wL,aAAar9J,GAAU,SAAU+mH,GACpCkyC,GAAa7H,EAAU+C,EAAOnuI,KAAO+gG,EAAM4M,WAC3CwlC,GAAahF,EAAO9F,OAAQtnC,EAAO63C,GAAW,GAC9CtB,GAAcA,EAAWv2C,KACxBw2C,IAGLc,EAAa1vL,UAAU+uL,UAAY,SAAoBjiL,GACrD,GAAI8iL,GAAY9xL,KAAKu5C,QAAUv5C,KAAK0tB,QAAQw5H,SAAU,CACpD,IAAIx5H,EAAUi3J,EAAU3kL,KAAKu5C,KAAOv5C,KAAK0tB,QAAQw5H,UACjDl4I,EAAO6+K,GAAUngK,GAAW8+J,GAAa9+J,KAI7CkkK,EAAa1vL,UAAUkwL,mBAAqB,WAC1C,OAAON,GAAY9xL,KAAKu5C,OAGnBq4I,EAvFwB,CAwF/BrC,IAEF,SAASuC,GAAav4I,GACpB,IAAI79B,EAAO6C,OAAOgV,SAAS6mH,SACvBi4C,EAAgB32K,EAAK+K,cACrB6rK,EAAgB/4I,EAAK9yB,cAQzB,OAJI8yB,GAAU84I,IAAkBC,GAC6B,IAA1DD,EAAcxjL,QAAQ81K,EAAU2N,EAAgB,QACjD52K,EAAOA,EAAKhK,MAAM6nC,EAAK52C,UAEjB+Y,GAAQ,KAAO6C,OAAOgV,SAAS+iB,OAAS/3B,OAAOgV,SAASq7C,KAKlE,IAAI2jH,GAA4B,SAAUhD,GACxC,SAASgD,EAAa3Q,EAAQroI,EAAMsO,GAClC0nI,EAAQlvL,KAAKL,KAAM4hL,EAAQroI,GAEvBsO,GAAY2qI,GAAcxyL,KAAKu5C,OAGnCk5I,KA+FF,OA5FKlD,IAAUgD,EAAY/jK,UAAY+gK,GACvCgD,EAAYrwL,UAAYkB,OAAOvB,OAAQ0tL,GAAWA,EAAQrtL,WAC1DqwL,EAAYrwL,UAAUsI,YAAc+nL,EAIpCA,EAAYrwL,UAAUuvL,eAAiB,WACrC,IAAI/J,EAAS1nL,KAEb,KAAIA,KAAKu4E,UAAU51E,OAAS,GAA5B,CAIA,IAAIi/K,EAAS5hL,KAAK4hL,OACdmQ,EAAenQ,EAAOjiL,QAAQktL,eAC9BmF,EAAiBrE,IAAqBoE,EAEtCC,GACFhyL,KAAKu4E,UAAUvpE,KAAKm9K,MAGtB,IAAI8F,EAAqB,WACvB,IAAIvkK,EAAUg6J,EAAOh6J,QAChB+kK,MAGL/K,EAAOkJ,aAAa8B,MAAW,SAAUp4C,GACnC03C,GACFtF,GAAahF,EAAO9F,OAAQtnC,EAAO5sH,GAAS,GAEzCigK,IACHgF,GAAYr4C,EAAM4M,cAIpB0rC,EAAYjF,GAAoB,WAAa,aACjDpvK,OAAOyW,iBACL49J,EACAX,GAEFjyL,KAAKu4E,UAAUvpE,MAAK,WAClBuP,OAAOojC,oBAAoBixI,EAAWX,QAI1CM,EAAYrwL,UAAU8M,KAAO,SAAeukB,EAAUs9J,EAAYC,GAChE,IAAIpJ,EAAS1nL,KAET+rF,EAAM/rF,KACNmyL,EAAYpmG,EAAIr+D,QACpB1tB,KAAK4wL,aACHr9J,GACA,SAAU+mH,GACRu4C,GAASv4C,EAAM4M,UACfwlC,GAAahF,EAAO9F,OAAQtnC,EAAO63C,GAAW,GAC9CtB,GAAcA,EAAWv2C,KAE3Bw2C,IAIJyB,EAAYrwL,UAAU8R,QAAU,SAAkBuf,EAAUs9J,EAAYC,GACtE,IAAIpJ,EAAS1nL,KAET+rF,EAAM/rF,KACNmyL,EAAYpmG,EAAIr+D,QACpB1tB,KAAK4wL,aACHr9J,GACA,SAAU+mH,GACRq4C,GAAYr4C,EAAM4M,UAClBwlC,GAAahF,EAAO9F,OAAQtnC,EAAO63C,GAAW,GAC9CtB,GAAcA,EAAWv2C,KAE3Bw2C,IAIJyB,EAAYrwL,UAAUgwL,GAAK,SAAazgL,GACtC8M,OAAO2qK,QAAQgJ,GAAGzgL,IAGpB8gL,EAAYrwL,UAAU+uL,UAAY,SAAoBjiL,GACpD,IAAI0e,EAAU1tB,KAAK0tB,QAAQw5H,SACvBwrC,OAAchlK,IAChB1e,EAAO6jL,GAASnlK,GAAWilK,GAAYjlK,KAI3C6kK,EAAYrwL,UAAUkwL,mBAAqB,WACzC,OAAOM,MAGFH,EAtGuB,CAuG9BhD,IAEF,SAASiD,GAAej5I,GACtB,IAAIhmB,EAAWu+J,GAAYv4I,GAC3B,IAAK,OAAOjlC,KAAKif,GAEf,OADAhV,OAAOgV,SAASvf,QAAQ2wK,EAAUprI,EAAO,KAAOhmB,KACzC,EAIX,SAASk/J,KACP,IAAI/2K,EAAOg3K,KACX,MAAuB,MAAnBh3K,EAAKnZ,OAAO,KAGhBowL,GAAY,IAAMj3K,IACX,GAGT,SAASg3K,KAGP,IAAI5kH,EAAOvvD,OAAOgV,SAASu6C,KACvBrrE,EAAQqrE,EAAKj/D,QAAQ,KAEzB,OAAIpM,EAAQ,EAAY,IAExBqrE,EAAOA,EAAKp8D,MAAMjP,EAAQ,GAEnBqrE,GAGT,SAASglH,GAAQp3K,GACf,IAAIoyD,EAAOvvD,OAAOgV,SAASu6C,KACvB5jE,EAAI4jE,EAAKj/D,QAAQ,KACjB0qC,EAAOrvC,GAAK,EAAI4jE,EAAKp8D,MAAM,EAAGxH,GAAK4jE,EACvC,OAAQv0B,EAAO,IAAM79B,EAGvB,SAASm3K,GAAUn3K,GACbiyK,GACFE,GAAUiF,GAAOp3K,IAEjB6C,OAAOgV,SAASq7C,KAAOlzD,EAI3B,SAASi3K,GAAaj3K,GAChBiyK,GACFnB,GAAasG,GAAOp3K,IAEpB6C,OAAOgV,SAASvf,QAAQ8+K,GAAOp3K,IAMnC,IAAIq3K,GAAgC,SAAUxD,GAC5C,SAASwD,EAAiBnR,EAAQroI,GAChCg2I,EAAQlvL,KAAKL,KAAM4hL,EAAQroI,GAC3Bv5C,KAAKmU,MAAQ,GACbnU,KAAKyC,OAAS,EAqEhB,OAlEK8sL,IAAUwD,EAAgBvkK,UAAY+gK,GAC3CwD,EAAgB7wL,UAAYkB,OAAOvB,OAAQ0tL,GAAWA,EAAQrtL,WAC9D6wL,EAAgB7wL,UAAUsI,YAAcuoL,EAExCA,EAAgB7wL,UAAU8M,KAAO,SAAeukB,EAAUs9J,EAAYC,GACpE,IAAIpJ,EAAS1nL,KAEbA,KAAK4wL,aACHr9J,GACA,SAAU+mH,GACRotC,EAAOvzK,MAAQuzK,EAAOvzK,MAAMzC,MAAM,EAAGg2K,EAAOjlL,MAAQ,GAAGxB,OAAOq5I,GAC9DotC,EAAOjlL,QACPouL,GAAcA,EAAWv2C,KAE3Bw2C,IAIJiC,EAAgB7wL,UAAU8R,QAAU,SAAkBuf,EAAUs9J,EAAYC,GAC1E,IAAIpJ,EAAS1nL,KAEbA,KAAK4wL,aACHr9J,GACA,SAAU+mH,GACRotC,EAAOvzK,MAAQuzK,EAAOvzK,MAAMzC,MAAM,EAAGg2K,EAAOjlL,OAAOxB,OAAOq5I,GAC1Du2C,GAAcA,EAAWv2C,KAE3Bw2C,IAIJiC,EAAgB7wL,UAAUgwL,GAAK,SAAazgL,GAC1C,IAAIi2K,EAAS1nL,KAETgzL,EAAchzL,KAAKyC,MAAQgP,EAC/B,KAAIuhL,EAAc,GAAKA,GAAehzL,KAAKmU,MAAMxR,QAAjD,CAGA,IAAI23I,EAAQt6I,KAAKmU,MAAM6+K,GACvBhzL,KAAK+wL,kBACHz2C,GACA,WACE,IAAIrkI,EAAOyxK,EAAOh6J,QAClBg6J,EAAOjlL,MAAQuwL,EACftL,EAAOsJ,YAAY12C,GACnBotC,EAAO9F,OAAOsP,WAAWhkL,SAAQ,SAAUxN,GACzCA,GAAQA,EAAK46I,EAAOrkI,SAGxB,SAAU07B,GACJi9I,GAAoBj9I,EAAKo8I,GAAsBI,cACjDzG,EAAOjlL,MAAQuwL,QAMvBD,EAAgB7wL,UAAUkwL,mBAAqB,WAC7C,IAAI1kK,EAAU1tB,KAAKmU,MAAMnU,KAAKmU,MAAMxR,OAAS,GAC7C,OAAO+qB,EAAUA,EAAQw5H,SAAW,KAGtC6rC,EAAgB7wL,UAAU+uL,UAAY,aAI/B8B,EAzE2B,CA0ElCxD,IAIE0D,GAAY,SAAoBtzL,QACjB,IAAZA,IAAqBA,EAAU,IAKpCK,KAAK4sL,IAAM,KACX5sL,KAAKkzL,KAAO,GACZlzL,KAAKL,QAAUA,EACfK,KAAKsxL,YAAc,GACnBtxL,KAAKwxL,aAAe,GACpBxxL,KAAKkxL,WAAa,GAClBlxL,KAAKwnC,QAAUsjJ,GAAcnrL,EAAQ+pL,QAAU,GAAI1pL,MAEnD,IAAImyB,EAAOxyB,EAAQwyB,MAAQ,OAW3B,OAVAnyB,KAAK6nD,SACM,YAAT11B,IAAuBw7J,KAA0C,IAArBhuL,EAAQkoD,SAClD7nD,KAAK6nD,WACP11B,EAAO,QAEJmkJ,KACHnkJ,EAAO,YAETnyB,KAAKmyB,KAAOA,EAEJA,GACN,IAAK,UACHnyB,KAAKkpL,QAAU,IAAI0I,GAAa5xL,KAAML,EAAQ45C,MAC9C,MACF,IAAK,OACHv5C,KAAKkpL,QAAU,IAAIqJ,GAAYvyL,KAAML,EAAQ45C,KAAMv5C,KAAK6nD,UACxD,MACF,IAAK,WACH7nD,KAAKkpL,QAAU,IAAI6J,GAAgB/yL,KAAML,EAAQ45C,MACjD,MACF,QACM56B,IAMNw0K,GAAqB,CAAE34C,aAAc,CAAEp4I,cAAc,IAkMzD,SAASgxL,GAAchmL,EAAMuF,GAE3B,OADAvF,EAAK4B,KAAK2D,GACH,WACL,IAAIzI,EAAIkD,EAAKyB,QAAQ8D,GACjBzI,GAAK,GAAKkD,EAAKuJ,OAAOzM,EAAG,IAIjC,SAASmpL,GAAY95I,EAAM2tG,EAAU/0H,GACnC,IAAIzW,EAAgB,SAATyW,EAAkB,IAAM+0H,EAAWA,EAC9C,OAAO3tG,EAAOorI,EAAUprI,EAAO,IAAM79B,GAAQA,EA1M/Cu3K,GAAU/wL,UAAUoc,MAAQ,SAAgB6S,EAAKzD,EAASi0J,GACxD,OAAO3hL,KAAKwnC,QAAQlpB,MAAM6S,EAAKzD,EAASi0J,IAG1CwR,GAAmB34C,aAAa9zI,IAAM,WACpC,OAAO1G,KAAKkpL,SAAWlpL,KAAKkpL,QAAQx7J,SAGtCulK,GAAU/wL,UAAUm3B,KAAO,SAAeuzJ,GACtC,IAAIlF,EAAS1nL,KA0Bf,GAjBAA,KAAKkzL,KAAKlkL,KAAK49K,GAIfA,EAAI73G,MAAM,kBAAkB,WAE1B,IAAItyE,EAAQilL,EAAOwL,KAAKrkL,QAAQ+9K,GAC5BnqL,GAAS,GAAKilL,EAAOwL,KAAKv8K,OAAOlU,EAAO,GAGxCilL,EAAOkF,MAAQA,IAAOlF,EAAOkF,IAAMlF,EAAOwL,KAAK,IAAM,MAEpDxL,EAAOkF,KAAOlF,EAAOwB,QAAQwI,eAKhC1xL,KAAK4sL,IAAT,CAIA5sL,KAAK4sL,IAAMA,EAEX,IAAI1D,EAAUlpL,KAAKkpL,QAEnB,GAAIA,aAAmB0I,IAAgB1I,aAAmBqJ,GAAa,CACrE,IAAIe,EAAsB,SAAUC,GAClC,IAAI7mL,EAAOw8K,EAAQx7J,QACfqkK,EAAerK,EAAO/nL,QAAQktL,eAC9BmF,EAAiBrE,IAAqBoE,EAEtCC,GAAkB,aAAcuB,GAClC7G,GAAahF,EAAQ6L,EAAc7mL,GAAM,IAGzC+kL,EAAiB,SAAU8B,GAC7BrK,EAAQuI,iBACR6B,EAAoBC,IAEtBrK,EAAQ0H,aACN1H,EAAQkJ,qBACRX,EACAA,GAIJvI,EAAQhrC,QAAO,SAAU5D,GACvBotC,EAAOwL,KAAKhmL,SAAQ,SAAU0/K,GAC5BA,EAAIzD,OAAS7uC,UAKnB24C,GAAU/wL,UAAUsxL,WAAa,SAAqB7gL,GACpD,OAAOygL,GAAapzL,KAAKsxL,YAAa3+K,IAGxCsgL,GAAU/wL,UAAUuxL,cAAgB,SAAwB9gL,GAC1D,OAAOygL,GAAapzL,KAAKwxL,aAAc7+K,IAGzCsgL,GAAU/wL,UAAUwxL,UAAY,SAAoB/gL,GAClD,OAAOygL,GAAapzL,KAAKkxL,WAAYv+K,IAGvCsgL,GAAU/wL,UAAUuuL,QAAU,SAAkB5xH,EAAI6xH,GAClD1wL,KAAKkpL,QAAQuH,QAAQ5xH,EAAI6xH,IAG3BuC,GAAU/wL,UAAUyuL,QAAU,SAAkBD,GAC9C1wL,KAAKkpL,QAAQyH,QAAQD,IAGvBuC,GAAU/wL,UAAU8M,KAAO,SAAeukB,EAAUs9J,EAAYC,GAC5D,IAAIpJ,EAAS1nL,KAGf,IAAK6wL,IAAeC,GAA8B,qBAAZxnK,QACpC,OAAO,IAAIA,SAAQ,SAAUM,EAASW,GACpCm9J,EAAOwB,QAAQl6K,KAAKukB,EAAU3J,EAASW,MAGzCvqB,KAAKkpL,QAAQl6K,KAAKukB,EAAUs9J,EAAYC,IAI5CmC,GAAU/wL,UAAU8R,QAAU,SAAkBuf,EAAUs9J,EAAYC,GAClE,IAAIpJ,EAAS1nL,KAGf,IAAK6wL,IAAeC,GAA8B,qBAAZxnK,QACpC,OAAO,IAAIA,SAAQ,SAAUM,EAASW,GACpCm9J,EAAOwB,QAAQl1K,QAAQuf,EAAU3J,EAASW,MAG5CvqB,KAAKkpL,QAAQl1K,QAAQuf,EAAUs9J,EAAYC,IAI/CmC,GAAU/wL,UAAUgwL,GAAK,SAAazgL,GACpCzR,KAAKkpL,QAAQgJ,GAAGzgL,IAGlBwhL,GAAU/wL,UAAUyxL,KAAO,WACzB3zL,KAAKkyL,IAAI,IAGXe,GAAU/wL,UAAU0xL,QAAU,WAC5B5zL,KAAKkyL,GAAG,IAGVe,GAAU/wL,UAAU2xL,qBAAuB,SAA+BpnL,GACxE,IAAI6tI,EAAQ7tI,EACRA,EAAGwV,QACDxV,EACAzM,KAAK4pB,QAAQnd,GAAI6tI,MACnBt6I,KAAKw6I,aACT,OAAKF,EAGE,GAAGr5I,OAAOmP,MACf,GACAkqI,EAAMr4H,QAAQpS,KAAI,SAAU0S,GAC1B,OAAOnf,OAAOkH,KAAKiY,EAAEymC,YAAYn5C,KAAI,SAAUvN,GAC7C,OAAOigB,EAAEymC,WAAW1mD,UANjB,IAYX2wL,GAAU/wL,UAAU0nB,QAAU,SAC5Bnd,EACAihB,EACA6nD,GAEA7nD,EAAUA,GAAW1tB,KAAKkpL,QAAQx7J,QAClC,IAAI6F,EAAWwzJ,GAAkBt6K,EAAIihB,EAAS6nD,EAAQv1E,MAClDs6I,EAAQt6I,KAAKse,MAAMiV,EAAU7F,GAC7Bw5H,EAAW5M,EAAMqnC,gBAAkBrnC,EAAM4M,SACzC3tG,EAAOv5C,KAAKkpL,QAAQ3vI,KACpBu0B,EAAOulH,GAAW95I,EAAM2tG,EAAUlnJ,KAAKmyB,MAC3C,MAAO,CACLoB,SAAUA,EACV+mH,MAAOA,EACPxsE,KAAMA,EAENgmH,aAAcvgK,EACdmpG,SAAU4d,IAId24C,GAAU/wL,UAAUgpL,UAAY,WAC9B,OAAOlrL,KAAKwnC,QAAQ0jJ,aAGtB+H,GAAU/wL,UAAU8oL,SAAW,SAAmBC,EAAe3wC,GAC/Dt6I,KAAKwnC,QAAQwjJ,SAASC,EAAe3wC,GACjCt6I,KAAKkpL,QAAQx7J,UAAYs0J,GAC3BhiL,KAAKkpL,QAAQ0H,aAAa5wL,KAAKkpL,QAAQkJ,uBAI3Ca,GAAU/wL,UAAU6oL,UAAY,SAAoBrB,GAIlD1pL,KAAKwnC,QAAQujJ,UAAUrB,GACnB1pL,KAAKkpL,QAAQx7J,UAAYs0J,GAC3BhiL,KAAKkpL,QAAQ0H,aAAa5wL,KAAKkpL,QAAQkJ,uBAI3ChvL,OAAO8pB,iBAAkB+lK,GAAU/wL,UAAWixL,IAe9CF,GAAU9pI,QAAUA,GACpB8pI,GAAUp0K,QAAU,QACpBo0K,GAAUrE,oBAAsBA,GAChCqE,GAAUlF,sBAAwBA,GAClCkF,GAAUc,eAAiB/R,EAEvB1L,IAAa/3J,OAAOkqC,KACtBlqC,OAAOkqC,IAAIkB,IAAIspI,IAGjB,W,gYCxkGIe,EAAc5wL,OAAO28B,OAAO,IAIhC,SAASk0J,EAASj4J,GAChB,YAAa75B,IAAN65B,GAAyB,OAANA,EAG5B,SAAS4sJ,EAAO5sJ,GACd,YAAa75B,IAAN65B,GAAyB,OAANA,EAG5B,SAASk4J,EAAQl4J,GACf,OAAa,IAANA,EAGT,SAASm4J,EAASn4J,GAChB,OAAa,IAANA,EAMT,SAAS2jJ,EAAat9K,GACpB,MACmB,kBAAVA,GACU,kBAAVA,GAEU,YAAjB,OAAOA,IACU,mBAAVA,EASX,SAASU,EAAUilB,GACjB,OAAe,OAARA,GAA+B,YAAf,OAAOA,GAMhC,IAAIosK,EAAYhxL,OAAOlB,UAAUmR,SAUjC,SAAS2yC,EAAeh+B,GACtB,MAA+B,oBAAxBosK,EAAU/zL,KAAK2nB,GAGxB,SAASlB,EAAUkV,GACjB,MAA6B,oBAAtBo4J,EAAU/zL,KAAK27B,GAMxB,SAASq4J,EAAmB1lK,GAC1B,IAAIld,EAAImrD,WAAWj7D,OAAOgtB,IAC1B,OAAOld,GAAK,GAAKrF,KAAKuF,MAAMF,KAAOA,GAAKmV,SAAS+H,GAGnD,SAAS8hB,EAAW9hB,GAClB,OACEi6J,EAAMj6J,IACc,oBAAbA,EAAI7F,MACU,oBAAd6F,EAAIqkB,MAOf,SAAS3/B,EAAUsb,GACjB,OAAc,MAAPA,EACH,GACA1sB,MAAMqQ,QAAQqc,IAASq3B,EAAcr3B,IAAQA,EAAItb,WAAa+gL,EAC5Dv2J,KAAKF,UAAUhP,EAAK,KAAM,GAC1BhtB,OAAOgtB,GAOf,SAAS2P,EAAU3P,GACjB,IAAIld,EAAImrD,WAAWjuC,GACnB,OAAOkQ,MAAMptB,GAAKkd,EAAMld,EAO1B,SAAS6iL,EACP9zK,EACA+zK,GAIA,IAFA,IAAI1kL,EAAMzM,OAAOvB,OAAO,MACpBuL,EAAOoT,EAAIxB,MAAM,KACZ9U,EAAI,EAAGA,EAAIkD,EAAKzK,OAAQuH,IAC/B2F,EAAIzC,EAAKlD,KAAM,EAEjB,OAAOqqL,EACH,SAAU5lK,GAAO,OAAO9e,EAAI8e,EAAIlI,gBAChC,SAAUkI,GAAO,OAAO9e,EAAI8e,IAMf2lK,EAAQ,kBAAkB,GAA7C,IAKIE,EAAsBF,EAAQ,8BAKlC,SAASpzH,EAAQrmB,EAAK7qB,GACpB,GAAI6qB,EAAIl4C,OAAQ,CACd,IAAIF,EAAQo4C,EAAIhsC,QAAQmhB,GACxB,GAAIvtB,GAAS,EACX,OAAOo4C,EAAIlkC,OAAOlU,EAAO,IAQ/B,IAAIue,EAAiB5d,OAAOlB,UAAU8e,eACtC,SAASrd,EAAQqkB,EAAK1lB,GACpB,OAAO0e,EAAe3gB,KAAK2nB,EAAK1lB,GAMlC,SAASmyL,EAAQ9hL,GACf,IAAIixD,EAAQxgE,OAAOvB,OAAO,MAC1B,OAAQ,SAAmB2e,GACzB,IAAIk0K,EAAM9wH,EAAMpjD,GAChB,OAAOk0K,IAAQ9wH,EAAMpjD,GAAO7N,EAAG6N,KAOnC,IAAIm0K,EAAa,SACbC,EAAWH,GAAO,SAAUj0K,GAC9B,OAAOA,EAAIxM,QAAQ2gL,GAAY,SAAUzsJ,EAAG1kB,GAAK,OAAOA,EAAIA,EAAE8mC,cAAgB,SAM5EuqI,EAAaJ,GAAO,SAAUj0K,GAChC,OAAOA,EAAIje,OAAO,GAAG+nD,cAAgB9pC,EAAI9O,MAAM,MAM7CojL,EAAc,aACdC,EAAYN,GAAO,SAAUj0K,GAC/B,OAAOA,EAAIxM,QAAQ8gL,EAAa,OAAOruK,iBAYzC,SAASuuK,EAAcriL,EAAIknC,GACzB,SAASo7I,EAASnyK,GAChB,IAAIw8J,EAAIn0K,UAAUxI,OAClB,OAAO28K,EACHA,EAAI,EACF3sK,EAAGvC,MAAMypC,EAAK1uC,WACdwH,EAAGtS,KAAKw5C,EAAK/2B,GACfnQ,EAAGtS,KAAKw5C,GAId,OADAo7I,EAAQC,QAAUviL,EAAGhQ,OACdsyL,EAGT,SAASE,EAAYxiL,EAAIknC,GACvB,OAAOlnC,EAAGrF,KAAKusC,GAGjB,IAAIvsC,EAAO7G,SAASvE,UAAUoL,KAC1B6nL,EACAH,EAKJ,SAASI,EAAShoL,EAAMrD,GACtBA,EAAQA,GAAS,EACjB,IAAIG,EAAIkD,EAAKzK,OAASoH,EAClB40K,EAAM,IAAI18K,MAAMiI,GACpB,MAAOA,IACLy0K,EAAIz0K,GAAKkD,EAAKlD,EAAIH,GAEpB,OAAO40K,EAMT,SAASl1H,EAAQh9C,EAAI4oL,GACnB,IAAK,IAAI/yL,KAAO+yL,EACd5oL,EAAGnK,GAAO+yL,EAAM/yL,GAElB,OAAOmK,EAMT,SAASV,EAAU8uC,GAEjB,IADA,IAAInT,EAAM,GACDx9B,EAAI,EAAGA,EAAI2wC,EAAIl4C,OAAQuH,IAC1B2wC,EAAI3wC,IACNu/C,EAAO/hB,EAAKmT,EAAI3wC,IAGpB,OAAOw9B,EAUT,SAAS5hB,EAAMhD,EAAGC,EAAGS,IAKrB,IAAI8xK,EAAK,SAAUxyK,EAAGC,EAAGS,GAAK,OAAO,GAOjCikC,EAAW,SAAUvf,GAAK,OAAOA,GAMrC,SAASkrC,EAAYtwD,EAAGC,GACtB,GAAID,IAAMC,EAAK,OAAO,EACtB,IAAIwyK,EAAYxyL,EAAS+f,GACrB0yK,EAAYzyL,EAASggB,GACzB,IAAIwyK,IAAaC,EAwBV,OAAKD,IAAcC,GACjB7zL,OAAOmhB,KAAOnhB,OAAOohB,GAxB5B,IACE,IAAI0yK,EAAWxzL,MAAMqQ,QAAQwQ,GACzB4yK,EAAWzzL,MAAMqQ,QAAQyQ,GAC7B,GAAI0yK,GAAYC,EACd,OAAO5yK,EAAEngB,SAAWogB,EAAEpgB,QAAUmgB,EAAE9S,OAAM,SAAU2vB,EAAGz1B,GACnD,OAAOkpE,EAAWzzC,EAAG5c,EAAE7Y,OAEpB,GAAI4Y,aAAaozB,MAAQnzB,aAAamzB,KAC3C,OAAOpzB,EAAEu7B,YAAct7B,EAAEs7B,UACpB,GAAKo3I,GAAaC,EAQvB,OAAO,EAPP,IAAI/0I,EAAQv9C,OAAOkH,KAAKwY,GACpB6yK,EAAQvyL,OAAOkH,KAAKyY,GACxB,OAAO49B,EAAMh+C,SAAWgzL,EAAMhzL,QAAUg+C,EAAM3wC,OAAM,SAAU1N,GAC5D,OAAO8wE,EAAWtwD,EAAExgB,GAAMygB,EAAEzgB,OAMhC,MAAOq9B,GAEP,OAAO,GAcb,SAAS03E,EAAcx8D,EAAKlsB,GAC1B,IAAK,IAAIzkB,EAAI,EAAGA,EAAI2wC,EAAIl4C,OAAQuH,IAC9B,GAAIkpE,EAAWv4B,EAAI3wC,GAAIykB,GAAQ,OAAOzkB,EAExC,OAAQ,EAMV,SAAS6mF,EAAMp+E,GACb,IAAII,GAAS,EACb,OAAO,WACAA,IACHA,GAAS,EACTJ,EAAGvC,MAAMpQ,KAAMmL,aAKrB,IAAIyqL,EAAW,uBAEXC,EAAc,CAChB,YACA,YACA,UAGEC,EAAkB,CACpB,eACA,UACA,cACA,UACA,eACA,UACA,gBACA,YACA,YACA,cACA,gBACA,kBAOEztI,EAAU,CAKZghI,sBAAuBjmL,OAAOvB,OAAO,MAKrCk0L,QAAQ,EAKRC,eAAer3K,EAKfs3K,UAAUt3K,EAKVmtK,aAAa,EAKboK,aAAc,KAKdC,YAAa,KAKbC,gBAAiB,GAMjBC,SAAUjzL,OAAOvB,OAAO,MAMxBy0L,cAAehB,EAMfiB,eAAgBjB,EAMhBkB,iBAAkBlB,EAKlBmB,gBAAiB3wK,EAKjB4wK,qBAAsBjvI,EAMtBkvI,YAAarB,EAMbsB,OAAO,EAKPC,gBAAiBf,GAUfgB,EAAgB,8JAKpB,SAASC,EAAYv2K,GACnB,IAAIgD,GAAKhD,EAAM,IAAIgS,WAAW,GAC9B,OAAa,KAANhP,GAAoB,KAANA,EAMvB,SAASqmC,EAAK7hC,EAAK1lB,EAAKqsB,EAAKhV,GAC3BvW,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAC9BD,MAAOssB,EACPhV,aAAcA,EACdC,UAAU,EACVxX,cAAc,IAOlB,IAAI40L,EAAS,IAAIn3K,OAAQ,KAAQi3K,EAAcp+K,OAAU,WACzD,SAAS8rK,EAAW9oK,GAClB,IAAIs7K,EAAO1iL,KAAKoH,GAAhB,CAGA,IAAI4oK,EAAW5oK,EAAKsD,MAAM,KAC1B,OAAO,SAAUgJ,GACf,IAAK,IAAI9d,EAAI,EAAGA,EAAIo6K,EAAS3hL,OAAQuH,IAAK,CACxC,IAAK8d,EAAO,OACZA,EAAMA,EAAIs8J,EAASp6K,IAErB,OAAO8d,IAOX,IAmCIivK,EAnCAC,EAAW,aAAe,GAG1B5gB,EAA8B,qBAAX/3J,OACnB44K,GAAkC,qBAAlBC,iBAAmCA,cAAcC,SACjEC,GAAeH,IAAUC,cAAcC,SAAS5wK,cAChDhI,GAAK63J,GAAa/3J,OAAOwiC,UAAU3iC,UAAUqI,cAC7Co5E,GAAOphF,IAAM,eAAenK,KAAKmK,IACjC84K,GAAQ94K,IAAMA,GAAG5P,QAAQ,YAAc,EACvC2oL,GAAS/4K,IAAMA,GAAG5P,QAAQ,SAAW,EAErC4oL,IADah5K,IAAMA,GAAG5P,QAAQ,WACrB4P,IAAM,uBAAuBnK,KAAKmK,KAA0B,QAAjB64K,IAGpDI,IAFWj5K,IAAM,cAAcnK,KAAKmK,IACtBA,IAAM,YAAYnK,KAAKmK,IAC9BA,IAAMA,GAAGH,MAAM,mBAGtBq5K,GAAe,GAAI7sH,MAEnB8sH,IAAkB,EACtB,GAAIthB,EACF,IACE,IAAI4H,GAAO,GACX96K,OAAOtB,eAAeo8K,GAAM,UAAY,CACtCx3K,IAAK,WAEHkxL,IAAkB,KAGtBr5K,OAAOyW,iBAAiB,eAAgB,KAAMkpJ,IAC9C,MAAOv+I,KAMX,IAAIk4J,GAAoB,WAWtB,YAVkB11L,IAAd80L,IAOAA,GALG3gB,IAAc6gB,IAA4B,qBAAXzzL,EAAAA,IAGtBA,EAAAA,EAAO,YAAgD,WAAlCA,EAAAA,EAAO,WAAWokD,IAAIgwI,UAKpDb,GAILhB,GAAW3f,GAAa/3J,OAAOw5K,6BAGnC,SAASC,GAAUC,GACjB,MAAuB,oBAATA,GAAuB,cAAc3jL,KAAK2jL,EAAK5kL,YAG/D,IAII6kL,GAJA5I,GACgB,qBAAX1zK,QAA0Bo8K,GAASp8K,SACvB,qBAAZmF,SAA2Bi3K,GAASj3K,QAAQxI,SAMnD2/K,GAFiB,qBAARr4I,KAAuBm4I,GAASn4I,KAElCA,IAGc,WACnB,SAASA,IACP7/C,KAAK8H,IAAM1E,OAAOvB,OAAO,MAY3B,OAVAg+C,EAAI39C,UAAUgU,IAAM,SAAc5T,GAChC,OAAyB,IAAlBtC,KAAK8H,IAAIxF,IAElBu9C,EAAI39C,UAAU3B,IAAM,SAAc+B,GAChCtC,KAAK8H,IAAIxF,IAAO,GAElBu9C,EAAI39C,UAAU6T,MAAQ,WACpB/V,KAAK8H,IAAM1E,OAAOvB,OAAO,OAGpBg+C,EAdY,GAoBvB,IAAIrO,GAAO1rB,EA8FP7hB,GAAM,EAMNk0L,GAAM,WACRn4L,KAAK4W,GAAK3S,KACVjE,KAAKo4L,KAAO,IAGdD,GAAIj2L,UAAUm2L,OAAS,SAAiBC,GACtCt4L,KAAKo4L,KAAKppL,KAAKspL,IAGjBH,GAAIj2L,UAAUq2L,UAAY,SAAoBD,GAC5Cp3H,EAAOlhE,KAAKo4L,KAAME,IAGpBH,GAAIj2L,UAAUs2L,OAAS,WACjBL,GAAI7rL,QACN6rL,GAAI7rL,OAAOmsL,OAAOz4L,OAItBm4L,GAAIj2L,UAAUwmB,OAAS,WAErB,IAAI0vK,EAAOp4L,KAAKo4L,KAAK1mL,QAOrB,IAAK,IAAIxH,EAAI,EAAGo1K,EAAI8Y,EAAKz1L,OAAQuH,EAAIo1K,EAAGp1K,IACtCkuL,EAAKluL,GAAGu7F,UAOZ0yF,GAAI7rL,OAAS,KACb,IAAIosL,GAAc,GAElB,SAASC,GAAYrsL,GACnBosL,GAAY1pL,KAAK1C,GACjB6rL,GAAI7rL,OAASA,EAGf,SAASssL,KACPF,GAAY//I,MACZw/I,GAAI7rL,OAASosL,GAAYA,GAAY/1L,OAAS,GAKhD,IAAIk2L,GAAQ,SACVjlL,EACAoC,EACAyzD,EACAgQ,EACAq/G,EACA/4L,EACAg5L,EACAC,GAEAh5L,KAAK4T,IAAMA,EACX5T,KAAKgW,KAAOA,EACZhW,KAAKypE,SAAWA,EAChBzpE,KAAKy5E,KAAOA,EACZz5E,KAAK84L,IAAMA,EACX94L,KAAKi5L,QAAK92L,EACVnC,KAAKD,QAAUA,EACfC,KAAKk5L,eAAY/2L,EACjBnC,KAAKm5L,eAAYh3L,EACjBnC,KAAKo5L,eAAYj3L,EACjBnC,KAAKsC,IAAM0T,GAAQA,EAAK1T,IACxBtC,KAAK+4L,iBAAmBA,EACxB/4L,KAAKgkL,uBAAoB7hL,EACzBnC,KAAKG,YAASgC,EACdnC,KAAKmxB,KAAM,EACXnxB,KAAKgnK,UAAW,EAChBhnK,KAAKq5L,cAAe,EACpBr5L,KAAKs5L,WAAY,EACjBt5L,KAAKu5L,UAAW,EAChBv5L,KAAKw5L,QAAS,EACdx5L,KAAKg5L,aAAeA,EACpBh5L,KAAKy5L,eAAYt3L,EACjBnC,KAAK05L,oBAAqB,GAGxBvG,GAAqB,CAAEvyH,MAAO,CAAEx+D,cAAc,IAIlD+wL,GAAmBvyH,MAAMl6D,IAAM,WAC7B,OAAO1G,KAAKgkL,mBAGd5gL,OAAO8pB,iBAAkB2rK,GAAM32L,UAAWixL,IAE1C,IAAIwG,GAAmB,SAAUlgH,QACjB,IAATA,IAAkBA,EAAO,IAE9B,IAAI7wD,EAAO,IAAIiwK,GAGf,OAFAjwK,EAAK6wD,KAAOA,EACZ7wD,EAAK0wK,WAAY,EACV1wK,GAGT,SAASgxK,GAAiBjrK,GACxB,OAAO,IAAIkqK,QAAM12L,OAAWA,OAAWA,EAAWR,OAAOgtB,IAO3D,SAASkrK,GAAYhpG,GACnB,IAAIipG,EAAS,IAAIjB,GACfhoG,EAAMj9E,IACNi9E,EAAM76E,KAIN66E,EAAMpnB,UAAYonB,EAAMpnB,SAAS/3D,QACjCm/E,EAAMpX,KACNoX,EAAMioG,IACNjoG,EAAM9wF,QACN8wF,EAAMkoG,iBACNloG,EAAMmoG,cAWR,OATAc,EAAOb,GAAKpoG,EAAMooG,GAClBa,EAAO9yB,SAAWn2E,EAAMm2E,SACxB8yB,EAAOx3L,IAAMuuF,EAAMvuF,IACnBw3L,EAAOR,UAAYzoG,EAAMyoG,UACzBQ,EAAOZ,UAAYroG,EAAMqoG,UACzBY,EAAOX,UAAYtoG,EAAMsoG,UACzBW,EAAOV,UAAYvoG,EAAMuoG,UACzBU,EAAOL,UAAY5oG,EAAM4oG,UACzBK,EAAOP,UAAW,EACXO,EAQT,IAAIC,GAAa93L,MAAMC,UACnB83L,GAAe52L,OAAOvB,OAAOk4L,IAE7BE,GAAiB,CACnB,OACA,MACA,QACA,UACA,SACA,OACA,WAMFA,GAAe/sL,SAAQ,SAAU8D,GAE/B,IAAIyvK,EAAWsZ,GAAW/oL,GAC1B64C,EAAImwI,GAAchpL,GAAQ,WACxB,IAAIsQ,EAAO,GAAI9U,EAAMrB,UAAUxI,OAC/B,MAAQ6J,IAAQ8U,EAAM9U,GAAQrB,UAAWqB,GAEzC,IAEI2iI,EAFA9hI,EAASozK,EAASrwK,MAAMpQ,KAAMshB,GAC9B44K,EAAKl6L,KAAKm6L,OAEd,OAAQnpL,GACN,IAAK,OACL,IAAK,UACHm+H,EAAW7tH,EACX,MACF,IAAK,SACH6tH,EAAW7tH,EAAK5P,MAAM,GACtB,MAKJ,OAHIy9H,GAAY+qD,EAAGE,aAAajrD,GAEhC+qD,EAAGG,IAAI3xK,SACArb,QAMX,IAAI4/B,GAAY7pC,OAAO+D,oBAAoB6yL,IAMvCM,IAAgB,EAEpB,SAASC,GAAiBl4L,GACxBi4L,GAAgBj4L,EASlB,IAAIm4L,GAAW,SAAmBn4L,GAChCrC,KAAKqC,MAAQA,EACbrC,KAAKq6L,IAAM,IAAIlC,GACfn4L,KAAKy6L,QAAU,EACf5wI,EAAIxnD,EAAO,SAAUrC,MACjBiC,MAAMqQ,QAAQjQ,IACZ60L,EACFwD,GAAar4L,EAAO23L,IAEpBW,GAAYt4L,EAAO23L,GAAc/sJ,IAEnCjtC,KAAKo6L,aAAa/3L,IAElBrC,KAAK46L,KAAKv4L,IA+Bd,SAASq4L,GAAcpuL,EAAQ+N,GAE7B/N,EAAOkiB,UAAYnU,EASrB,SAASsgL,GAAaruL,EAAQ+N,EAAK/P,GACjC,IAAK,IAAIJ,EAAI,EAAGo1K,EAAIh1K,EAAK3H,OAAQuH,EAAIo1K,EAAGp1K,IAAK,CAC3C,IAAI5H,EAAMgI,EAAKJ,GACf2/C,EAAIv9C,EAAQhK,EAAK+X,EAAI/X,KASzB,SAASynB,GAAS1nB,EAAOw4L,GAIvB,IAAIX,EAHJ,GAAKn3L,EAASV,MAAUA,aAAiBw2L,IAkBzC,OAdIl1L,EAAOtB,EAAO,WAAaA,EAAM83L,kBAAkBK,GACrDN,EAAK73L,EAAM83L,OAEXG,KACCzC,OACA51L,MAAMqQ,QAAQjQ,IAAU2jD,EAAc3jD,KACvCe,OAAOC,aAAahB,KACnBA,EAAMmnK,SAEP0wB,EAAK,IAAIM,GAASn4L,IAEhBw4L,GAAcX,GAChBA,EAAGO,UAEEP,EAMT,SAASY,GACP9yK,EACA1lB,EACAqsB,EACAosK,EACAC,GAEA,IAAIX,EAAM,IAAIlC,GAEVjyL,EAAW9C,OAAOyV,yBAAyBmP,EAAK1lB,GACpD,IAAI4D,IAAsC,IAA1BA,EAAS9D,aAAzB,CAKA,IAAI6X,EAAS/T,GAAYA,EAASQ,IAC9BwT,EAAShU,GAAYA,EAAS4B,IAC5BmS,IAAUC,GAAgC,IAArB/O,UAAUxI,SACnCgsB,EAAM3G,EAAI1lB,IAGZ,IAAI24L,GAAWD,GAAWjxK,GAAQ4E,GAClCvrB,OAAOtB,eAAekmB,EAAK1lB,EAAK,CAC9BqX,YAAY,EACZvX,cAAc,EACdsE,IAAK,WACH,IAAIrE,EAAQ4X,EAASA,EAAO5Z,KAAK2nB,GAAO2G,EAUxC,OATIwpK,GAAI7rL,SACN+tL,EAAI7B,SACAyC,IACFA,EAAQZ,IAAI7B,SACRv2L,MAAMqQ,QAAQjQ,IAChB64L,GAAY74L,KAIXA,GAETyF,IAAK,SAAyBqwK,GAC5B,IAAI91K,EAAQ4X,EAASA,EAAO5Z,KAAK2nB,GAAO2G,EAEpCwpJ,IAAW91K,GAAU81K,IAAWA,GAAU91K,IAAUA,GAQpD4X,IAAWC,IACXA,EACFA,EAAO7Z,KAAK2nB,EAAKmwJ,GAEjBxpJ,EAAMwpJ,EAER8iB,GAAWD,GAAWjxK,GAAQouJ,GAC9BkiB,EAAI3xK,cAUV,SAAS5gB,GAAKwE,EAAQhK,EAAKqsB,GAMzB,GAAI1sB,MAAMqQ,QAAQhG,IAAW+nL,EAAkB/xL,GAG7C,OAFAgK,EAAO3J,OAASyJ,KAAKkF,IAAIhF,EAAO3J,OAAQL,GACxCgK,EAAOqK,OAAOrU,EAAK,EAAGqsB,GACfA,EAET,GAAIrsB,KAAOgK,KAAYhK,KAAOc,OAAOlB,WAEnC,OADAoK,EAAOhK,GAAOqsB,EACPA,EAET,IAAIurK,EAAM5tL,EAAQ6tL,OAClB,OAAI7tL,EAAOk9J,QAAW0wB,GAAMA,EAAGO,QAKtB9rK,EAEJurK,GAILY,GAAkBZ,EAAG73L,MAAOC,EAAKqsB,GACjCurK,EAAGG,IAAI3xK,SACAiG,IALLriB,EAAOhK,GAAOqsB,EACPA,GAUX,SAASwsK,GAAK7uL,EAAQhK,GAMpB,GAAIL,MAAMqQ,QAAQhG,IAAW+nL,EAAkB/xL,GAC7CgK,EAAOqK,OAAOrU,EAAK,OADrB,CAIA,IAAI43L,EAAM5tL,EAAQ6tL,OACd7tL,EAAOk9J,QAAW0wB,GAAMA,EAAGO,SAO1B92L,EAAO2I,EAAQhK,YAGbgK,EAAOhK,GACT43L,GAGLA,EAAGG,IAAI3xK,WAOT,SAASwyK,GAAa74L,GACpB,IAAK,IAAIs9B,OAAK,EAASz1B,EAAI,EAAGo1K,EAAIj9K,EAAMM,OAAQuH,EAAIo1K,EAAGp1K,IACrDy1B,EAAIt9B,EAAM6H,GACVy1B,GAAKA,EAAEw6J,QAAUx6J,EAAEw6J,OAAOE,IAAI7B,SAC1Bv2L,MAAMqQ,QAAQqtB,IAChBu7J,GAAYv7J,GAhNlB66J,GAASt4L,UAAU04L,KAAO,SAAe5yK,GAEvC,IADA,IAAI1d,EAAOlH,OAAOkH,KAAK0d,GACd9d,EAAI,EAAGA,EAAII,EAAK3H,OAAQuH,IAC/B4wL,GAAkB9yK,EAAK1d,EAAKJ,KAOhCswL,GAASt4L,UAAUk4L,aAAe,SAAuBj+J,GACvD,IAAK,IAAIjyB,EAAI,EAAGo1K,EAAInjJ,EAAMx5B,OAAQuH,EAAIo1K,EAAGp1K,IACvC6f,GAAQoS,EAAMjyB,KAgNlB,IAAIk/K,GAAS/gI,EAAOghI,sBAoBpB,SAAS1+H,GAAWl+C,EAAIC,GACtB,IAAKA,EAAQ,OAAOD,EAOpB,IANA,IAAInK,EAAK84L,EAAOC,EAEZ/wL,EAAOglL,GACPvuK,QAAQxI,QAAQ7L,GAChBtJ,OAAOkH,KAAKoC,GAEPxC,EAAI,EAAGA,EAAII,EAAK3H,OAAQuH,IAC/B5H,EAAMgI,EAAKJ,GAEC,WAAR5H,IACJ84L,EAAQ3uL,EAAGnK,GACX+4L,EAAU3uL,EAAKpK,GACVqB,EAAO8I,EAAInK,GAGd84L,IAAUC,GACVr1I,EAAco1I,IACdp1I,EAAcq1I,IAEd1wI,GAAUywI,EAAOC,GANjBvzL,GAAI2E,EAAInK,EAAK+4L,IASjB,OAAO5uL,EAMT,SAAS6uL,GACPC,EACAC,EACAjqF,GAEA,OAAKA,EAoBI,WAEL,IAAIkqF,EAAmC,oBAAbD,EACtBA,EAASn7L,KAAKkxG,EAAIA,GAClBiqF,EACAE,EAAmC,oBAAdH,EACrBA,EAAUl7L,KAAKkxG,EAAIA,GACnBgqF,EACJ,OAAIE,EACK9wI,GAAU8wI,EAAcC,GAExBA,GA7BNF,EAGAD,EAQE,WACL,OAAO5wI,GACe,oBAAb6wI,EAA0BA,EAASn7L,KAAKL,KAAMA,MAAQw7L,EACxC,oBAAdD,EAA2BA,EAAUl7L,KAAKL,KAAMA,MAAQu7L,IAV1DC,EAHAD,EA2Db,SAASI,GACPJ,EACAC,GAEA,IAAI9zJ,EAAM8zJ,EACND,EACEA,EAAUt6L,OAAOu6L,GACjBv5L,MAAMqQ,QAAQkpL,GACZA,EACA,CAACA,GACLD,EACJ,OAAO7zJ,EACHk0J,GAAYl0J,GACZA,EAGN,SAASk0J,GAAaC,GAEpB,IADA,IAAIn0J,EAAM,GACDx9B,EAAI,EAAGA,EAAI2xL,EAAMl5L,OAAQuH,KACD,IAA3Bw9B,EAAI74B,QAAQgtL,EAAM3xL,KACpBw9B,EAAI14B,KAAK6sL,EAAM3xL,IAGnB,OAAOw9B,EAcT,SAASo0J,GACPP,EACAC,EACAjqF,EACAjvG,GAEA,IAAIolC,EAAMtkC,OAAOvB,OAAO05L,GAAa,MACrC,OAAIC,EAEK/xI,EAAO/hB,EAAK8zJ,GAEZ9zJ,EAzEX0hJ,GAAOpzK,KAAO,SACZulL,EACAC,EACAjqF,GAEA,OAAKA,EAcE+pF,GAAcC,EAAWC,EAAUjqF,GAbpCiqF,GAAgC,oBAAbA,EAQdD,EAEFD,GAAcC,EAAWC,IAmCpC1F,EAAgB5oL,SAAQ,SAAUxN,GAChC0pL,GAAO1pL,GAAQi8L,MAyBjB9F,EAAY3oL,SAAQ,SAAUkI,GAC5Bg0K,GAAOh0K,EAAO,KAAO0mL,MASvB1S,GAAOt+G,MAAQ,SACbywH,EACAC,EACAjqF,EACAjvG,GAMA,GAHIi5L,IAAc5D,KAAe4D,OAAYp5L,GACzCq5L,IAAa7D,KAAe6D,OAAWr5L,IAEtCq5L,EAAY,OAAOp4L,OAAOvB,OAAO05L,GAAa,MAInD,IAAKA,EAAa,OAAOC,EACzB,IAAI7c,EAAM,GAEV,IAAK,IAAIod,KADTtyI,EAAOk1H,EAAK4c,GACMC,EAAU,CAC1B,IAAIr7L,EAASw+K,EAAIod,GACbn7H,EAAQ46H,EAASO,GACjB57L,IAAW8B,MAAMqQ,QAAQnS,KAC3BA,EAAS,CAACA,IAEZw+K,EAAIod,GAAS57L,EACTA,EAAOc,OAAO2/D,GACd3+D,MAAMqQ,QAAQsuD,GAASA,EAAQ,CAACA,GAEtC,OAAO+9G,GAMTyK,GAAOj8J,MACPi8J,GAAOpuK,QACPouK,GAAOzvG,OACPyvG,GAAO78G,SAAW,SAChBgvH,EACAC,EACAjqF,EACAjvG,GAKA,IAAKi5L,EAAa,OAAOC,EACzB,IAAI7c,EAAMv7K,OAAOvB,OAAO,MAGxB,OAFA4nD,EAAOk1H,EAAK4c,GACRC,GAAY/xI,EAAOk1H,EAAK6c,GACrB7c,GAETyK,GAAOtuG,QAAUwgH,GAKjB,IAAIU,GAAe,SAAUT,EAAWC,GACtC,YAAoBr5L,IAAbq5L,EACHD,EACAC,GA+BN,SAASS,GAAgBt8L,EAAS4xG,GAChC,IAAIpkF,EAAQxtB,EAAQwtB,MACpB,GAAKA,EAAL,CACA,IACIjjB,EAAGykB,EAAKvkB,EADRs9B,EAAM,GAEV,GAAIzlC,MAAMqQ,QAAQ6a,GAAQ,CACxBjjB,EAAIijB,EAAMxqB,OACV,MAAOuH,IACLykB,EAAMxB,EAAMjjB,GACO,kBAARykB,IACTvkB,EAAOwqL,EAASjmK,GAChB+Y,EAAIt9B,GAAQ,CAAEgL,KAAM,YAKnB,GAAI4wC,EAAc74B,GACvB,IAAK,IAAI7qB,KAAO6qB,EACdwB,EAAMxB,EAAM7qB,GACZ8H,EAAOwqL,EAAStyL,GAChBolC,EAAIt9B,GAAQ47C,EAAcr3B,GACtBA,EACA,CAAEvZ,KAAMuZ,QAELhQ,EAOXhf,EAAQwtB,MAAQua,GAMlB,SAASw0J,GAAiBv8L,EAAS4xG,GACjC,IAAI53B,EAASh6E,EAAQg6E,OACrB,GAAKA,EAAL,CACA,IAAIwiH,EAAax8L,EAAQg6E,OAAS,GAClC,GAAI13E,MAAMqQ,QAAQqnE,GAChB,IAAK,IAAIzvE,EAAI,EAAGA,EAAIyvE,EAAOh3E,OAAQuH,IACjCiyL,EAAWxiH,EAAOzvE,IAAM,CAAEwC,KAAMitE,EAAOzvE,SAEpC,GAAI87C,EAAc2zB,GACvB,IAAK,IAAIr3E,KAAOq3E,EAAQ,CACtB,IAAIhrD,EAAMgrD,EAAOr3E,GACjB65L,EAAW75L,GAAO0jD,EAAcr3B,GAC5B86B,EAAO,CAAE/8C,KAAMpK,GAAOqsB,GACtB,CAAEjiB,KAAMiiB,QAELhQ,GAYb,SAASy9K,GAAqBz8L,GAC5B,IAAI08L,EAAO18L,EAAQspD,WACnB,GAAIozI,EACF,IAAK,IAAI/5L,KAAO+5L,EAAM,CACpB,IAAIC,EAASD,EAAK/5L,GACI,oBAAXg6L,IACTD,EAAK/5L,GAAO,CAAEgL,KAAMgvL,EAAQ72F,OAAQ62F,KAoB5C,SAASC,GACPp8L,EACAygE,EACA2wC,GAkBA,GAZqB,oBAAV3wC,IACTA,EAAQA,EAAMjhE,SAGhBs8L,GAAer7H,EAAO2wC,GACtB2qF,GAAgBt7H,EAAO2wC,GACvB6qF,GAAoBx7H,IAMfA,EAAM47H,QACL57H,EAAMgvE,UACRzvI,EAASo8L,GAAap8L,EAAQygE,EAAMgvE,QAASr+B,IAE3C3wC,EAAM+J,QACR,IAAK,IAAIzgE,EAAI,EAAGo1K,EAAI1+G,EAAM+J,OAAOhoE,OAAQuH,EAAIo1K,EAAGp1K,IAC9C/J,EAASo8L,GAAap8L,EAAQygE,EAAM+J,OAAOzgE,GAAIqnG,GAKrD,IACIjvG,EADA3C,EAAU,GAEd,IAAK2C,KAAOnC,EACVs8L,EAAWn6L,GAEb,IAAKA,KAAOs+D,EACLj9D,EAAOxD,EAAQmC,IAClBm6L,EAAWn6L,GAGf,SAASm6L,EAAYn6L,GACnB,IAAIo6L,EAAQtT,GAAO9mL,IAAQ05L,GAC3Br8L,EAAQ2C,GAAOo6L,EAAMv8L,EAAOmC,GAAMs+D,EAAMt+D,GAAMivG,EAAIjvG,GAEpD,OAAO3C,EAQT,SAASg9L,GACPh9L,EACAyV,EACAwB,EACAgmL,GAGA,GAAkB,kBAAPhmL,EAAX,CAGA,IAAIimL,EAASl9L,EAAQyV,GAErB,GAAIzR,EAAOk5L,EAAQjmL,GAAO,OAAOimL,EAAOjmL,GACxC,IAAIkmL,EAAclI,EAASh+K,GAC3B,GAAIjT,EAAOk5L,EAAQC,GAAgB,OAAOD,EAAOC,GACjD,IAAIC,EAAelI,EAAWiI,GAC9B,GAAIn5L,EAAOk5L,EAAQE,GAAiB,OAAOF,EAAOE,GAElD,IAAIr1J,EAAMm1J,EAAOjmL,IAAOimL,EAAOC,IAAgBD,EAAOE,GAOtD,OAAOr1J,GAOT,SAASs1J,GACP16L,EACA26L,EACA/3D,EACA3zB,GAEA,IAAIjrD,EAAO22I,EAAY36L,GACnB46L,GAAUv5L,EAAOuhI,EAAW5iI,GAC5BD,EAAQ6iI,EAAU5iI,GAElB66L,EAAeC,GAAarsL,QAASu1C,EAAKlxC,MAC9C,GAAI+nL,GAAgB,EAClB,GAAID,IAAWv5L,EAAO2iD,EAAM,WAC1BjkD,GAAQ,OACH,GAAc,KAAVA,GAAgBA,IAAU0yL,EAAUzyL,GAAM,CAGnD,IAAI+6L,EAAcD,GAAaz7L,OAAQ2kD,EAAKlxC,OACxCioL,EAAc,GAAKF,EAAeE,KACpCh7L,GAAQ,GAKd,QAAcF,IAAVE,EAAqB,CACvBA,EAAQi7L,GAAoB/rF,EAAIjrD,EAAMhkD,GAGtC,IAAIi7L,EAAoBjD,GACxBC,IAAgB,GAChBxwK,GAAQ1nB,GACRk4L,GAAgBgD,GASlB,OAAOl7L,EAMT,SAASi7L,GAAqB/rF,EAAIjrD,EAAMhkD,GAEtC,GAAKqB,EAAO2iD,EAAM,WAAlB,CAGA,IAAIuD,EAAMvD,EAAK0e,QAYf,OAAIusC,GAAMA,EAAG7wG,SAASwkI,gBACW/iI,IAA/BovG,EAAG7wG,SAASwkI,UAAU5iI,SACHH,IAAnBovG,EAAGoiD,OAAOrxJ,GAEHivG,EAAGoiD,OAAOrxJ,GAIG,oBAARunD,GAA6C,aAAvBi1C,GAAQx4C,EAAKlxC,MAC7Cy0C,EAAIxpD,KAAKkxG,GACT1nD,GAsFN,IAAI2zI,GAAsB,qBAO1B,SAAS1+F,GAASnsF,GAChB,IAAI2L,EAAQ3L,GAAMA,EAAGU,WAAWiL,MAAMk/K,IACtC,OAAOl/K,EAAQA,EAAM,GAAK,GAG5B,SAASm/K,GAAY36K,EAAGC,GACtB,OAAO+7E,GAAQh8E,KAAOg8E,GAAQ/7E,GAGhC,SAASq6K,GAAchoL,EAAMk0J,GAC3B,IAAKrnK,MAAMqQ,QAAQg3J,GACjB,OAAOm0B,GAAWn0B,EAAel0J,GAAQ,GAAK,EAEhD,IAAK,IAAIlL,EAAI,EAAGsC,EAAM88J,EAAc3mK,OAAQuH,EAAIsC,EAAKtC,IACnD,GAAIuzL,GAAWn0B,EAAcp/J,GAAIkL,GAC/B,OAAOlL,EAGX,OAAQ,EAiDV,SAASwzL,GAAa/rJ,EAAK4/D,EAAI3pB,GAG7B+wG,KACA,IACE,GAAIpnF,EAAI,CACN,IAAIv4D,EAAMu4D,EACV,MAAQv4D,EAAMA,EAAIm5B,QAAU,CAC1B,IAAI0pH,EAAQ7iJ,EAAIt4C,SAASi9L,cACzB,GAAI9B,EACF,IAAK,IAAI3xL,EAAI,EAAGA,EAAI2xL,EAAMl5L,OAAQuH,IAChC,IACE,IAAIwY,GAAgD,IAAtCm5K,EAAM3xL,GAAG7J,KAAK24C,EAAKrH,EAAK4/D,EAAI3pB,GAC1C,GAAIllE,EAAW,OACf,MAAOid,IACPi+J,GAAkBj+J,GAAGqZ,EAAK,wBAMpC4kJ,GAAkBjsJ,EAAK4/D,EAAI3pB,GAjB7B,QAmBEgxG,MAIJ,SAASiF,GACPlpK,EACA50B,EACAuhB,EACAiwF,EACA3pB,GAEA,IAAIlgD,EACJ,IACEA,EAAMpmB,EAAOqT,EAAQvkB,MAAMrQ,EAASuhB,GAAQqT,EAAQt0B,KAAKN,GACrD2nC,IAAQA,EAAI8hI,QAAU/4H,EAAU/I,KAASA,EAAIo2J,WAC/Cp2J,EAAIsL,OAAM,SAAUrT,GAAK,OAAO+9J,GAAY/9J,EAAG4xE,EAAI3pB,EAAO,uBAG1DlgD,EAAIo2J,UAAW,GAEjB,MAAOn+J,IACP+9J,GAAY/9J,GAAG4xE,EAAI3pB,GAErB,OAAOlgD,EAGT,SAASk2J,GAAmBjsJ,EAAK4/D,EAAI3pB,GACnC,GAAIv/B,EAAO6tI,aACT,IACE,OAAO7tI,EAAO6tI,aAAa71L,KAAK,KAAMsxC,EAAK4/D,EAAI3pB,GAC/C,MAAOjoD,IAGHA,KAAMgS,GACRosJ,GAASp+J,GAAG,KAAM,uBAIxBo+J,GAASpsJ,EAAK4/D,EAAI3pB,GAGpB,SAASm2G,GAAUpsJ,EAAK4/D,EAAI3pB,GAK1B,IAAK0uF,IAAa6gB,IAA8B,qBAAZn0K,EAGlC,MAAM2uB,EAFN3uB,EAAQ1c,MAAMqrC,GAQlB,IAyBIqsJ,GAzBAC,IAAmB,EAEnBC,GAAY,GACZlP,IAAU,EAEd,SAASmP,KACPnP,IAAU,EACV,IAAIoP,EAASF,GAAUxsL,MAAM,GAC7BwsL,GAAUv7L,OAAS,EACnB,IAAK,IAAIuH,EAAI,EAAGA,EAAIk0L,EAAOz7L,OAAQuH,IACjCk0L,EAAOl0L,KAwBX,GAAuB,qBAAZof,SAA2B0uK,GAAS1uK,SAAU,CACvD,IAAI2gB,GAAI3gB,QAAQM,UAChBo0K,GAAY,WACV/zJ,GAAEnhB,KAAKq1K,IAMH1G,IAAStiK,WAAWrP,IAE1Bm4K,IAAmB,OACd,GAAKp+F,IAAoC,qBAArBz2E,mBACzB4uK,GAAS5uK,mBAEuB,yCAAhCA,iBAAiB/V,WAoBjB2qL,GAJiC,qBAAjBpqK,cAAgCokK,GAASpkK,cAI7C,WACVA,aAAauqK,KAIH,WACVhpK,WAAWgpK,GAAgB,QAzB5B,CAID,IAAInqK,GAAU,EACVg9D,GAAW,IAAI5nE,iBAAiB+0K,IAChCE,GAAWviL,SAASgO,eAAenoB,OAAOqyB,KAC9Cg9D,GAASjnE,QAAQs0K,GAAU,CACzBr0K,eAAe,IAEjBg0K,GAAY,WACVhqK,IAAWA,GAAU,GAAK,EAC1BqqK,GAASroL,KAAOrU,OAAOqyB,KAEzBiqK,IAAmB,EAerB,SAASp0K,GAAUg1C,EAAIhlB,GACrB,IAAIykJ,EAiBJ,GAhBAJ,GAAUlvL,MAAK,WACb,GAAI6vD,EACF,IACEA,EAAGx+D,KAAKw5C,GACR,MAAOla,IACP+9J,GAAY/9J,GAAGka,EAAK,iBAEbykJ,GACTA,EAASzkJ,MAGRm1I,KACHA,IAAU,EACVgP,OAGGn/H,GAAyB,qBAAZv1C,QAChB,OAAO,IAAIA,SAAQ,SAAUM,GAC3B00K,EAAW10K,KAiGjB,IAAI20K,GAAc,IAAIrG,GAOtB,SAASsG,GAAU7vK,GACjB8vK,GAAU9vK,EAAK4vK,IACfA,GAAYxoL,QAGd,SAAS0oL,GAAW9vK,EAAKwvJ,GACvB,IAAIj0K,EAAGI,EACHo0L,EAAMz8L,MAAMqQ,QAAQqc,GACxB,MAAM+vK,IAAQ37L,EAAS4rB,IAASvrB,OAAOg9B,SAASzR,IAAQA,aAAekqK,IAAvE,CAGA,GAAIlqK,EAAIwrK,OAAQ,CACd,IAAIwE,EAAQhwK,EAAIwrK,OAAOE,IAAIzjL,GAC3B,GAAIunK,EAAKjoK,IAAIyoL,GACX,OAEFxgB,EAAK59K,IAAIo+L,GAEX,GAAID,EAAK,CACPx0L,EAAIykB,EAAIhsB,OACR,MAAOuH,IAAOu0L,GAAU9vK,EAAIzkB,GAAIi0K,OAC3B,CACL7zK,EAAOlH,OAAOkH,KAAKqkB,GACnBzkB,EAAII,EAAK3H,OACT,MAAOuH,IAAOu0L,GAAU9vK,EAAIrkB,EAAKJ,IAAKi0K,KA6B1C,IAAIygB,GAAiBnK,GAAO,SAAUrqL,GACpC,IAAIs3C,EAA6B,MAAnBt3C,EAAK7H,OAAO,GAC1B6H,EAAOs3C,EAAUt3C,EAAKsH,MAAM,GAAKtH,EACjC,IAAIy0L,EAA6B,MAAnBz0L,EAAK7H,OAAO,GAC1B6H,EAAOy0L,EAAUz0L,EAAKsH,MAAM,GAAKtH,EACjC,IAAIsY,EAA6B,MAAnBtY,EAAK7H,OAAO,GAE1B,OADA6H,EAAOsY,EAAUtY,EAAKsH,MAAM,GAAKtH,EAC1B,CACLA,KAAMA,EACN2mF,KAAM8tG,EACNn8K,QAASA,EACTg/B,QAASA,MAIb,SAASo9I,GAAiBC,EAAKxtF,GAC7B,SAASytF,IACP,IAAIC,EAAc9zL,UAEd4zL,EAAMC,EAAQD,IAClB,IAAI98L,MAAMqQ,QAAQysL,GAOhB,OAAOlB,GAAwBkB,EAAK,KAAM5zL,UAAWomG,EAAI,gBALzD,IADA,IAAIuoF,EAASiF,EAAIrtL,QACRxH,EAAI,EAAGA,EAAI4vL,EAAOn3L,OAAQuH,IACjC2zL,GAAwB/D,EAAO5vL,GAAI,KAAM+0L,EAAa1tF,EAAI,gBAQhE,OADAytF,EAAQD,IAAMA,EACPC,EAGT,SAAS9iF,GACP90C,EACA83H,EACA3+L,EACA4+L,EACAC,EACA7tF,GAEA,IAAInnG,EAAc4uC,EAAK+uC,EAAKzzD,EAC5B,IAAKlqB,KAAQg9D,EACFpuB,EAAMouB,EAAGh9D,GAClB29E,EAAMm3G,EAAM90L,GACZkqB,EAAQsqK,GAAex0L,GACnB6pL,EAAQj7I,KAKDi7I,EAAQlsG,IACbksG,EAAQj7I,EAAI+lJ,OACd/lJ,EAAMouB,EAAGh9D,GAAQ00L,GAAgB9lJ,EAAKu4D,IAEpC2iF,EAAO5/J,EAAMy8D,QACf/3C,EAAMouB,EAAGh9D,GAAQg1L,EAAkB9qK,EAAMlqB,KAAM4uC,EAAK1kB,EAAM5R,UAE5DniB,EAAI+zB,EAAMlqB,KAAM4uC,EAAK1kB,EAAM5R,QAAS4R,EAAMotB,QAASptB,EAAMutJ,SAChD7oI,IAAQ+uC,IACjBA,EAAIg3G,IAAM/lJ,EACVouB,EAAGh9D,GAAQ29E,IAGf,IAAK39E,KAAQ80L,EACPjL,EAAQ7sH,EAAGh9D,MACbkqB,EAAQsqK,GAAex0L,GACvB+0L,EAAU7qK,EAAMlqB,KAAM80L,EAAM90L,GAAOkqB,EAAM5R,UAO/C,SAAS28K,GAAgBx1I,EAAKy1I,EAAS5/L,GAIrC,IAAIs/L,EAHAn1I,aAAegvI,KACjBhvI,EAAMA,EAAI7zC,KAAKtW,OAASmqD,EAAI7zC,KAAKtW,KAAO,KAG1C,IAAI6/L,EAAU11I,EAAIy1I,GAElB,SAASE,IACP9/L,EAAK0Q,MAAMpQ,KAAMmL,WAGjB+1D,EAAO89H,EAAQD,IAAKS,GAGlBvL,EAAQsL,GAEVP,EAAUF,GAAgB,CAACU,IAGvB5W,EAAM2W,EAAQR,MAAQ7K,EAAOqL,EAAQE,SAEvCT,EAAUO,EACVP,EAAQD,IAAI/vL,KAAKwwL,IAGjBR,EAAUF,GAAgB,CAACS,EAASC,IAIxCR,EAAQS,QAAS,EACjB51I,EAAIy1I,GAAWN,EAKjB,SAASU,GACP1pL,EACAiiL,EACArkL,GAKA,IAAIqpL,EAAchF,EAAKt4L,QAAQwtB,MAC/B,IAAI8mK,EAAQgJ,GAAZ,CAGA,IAAIv1J,EAAM,GACN8gC,EAAQxyD,EAAKwyD,MACbr7C,EAAQnX,EAAKmX,MACjB,GAAIy7J,EAAMpgH,IAAUogH,EAAMz7J,GACxB,IAAK,IAAI7qB,KAAO26L,EAAa,CAC3B,IAAIp0G,EAASksG,EAAUzyL,GAiBvBq9L,GAAUj4J,EAAKva,EAAO7qB,EAAKumF,GAAQ,IACnC82G,GAAUj4J,EAAK8gC,EAAOlmE,EAAKumF,GAAQ,GAGvC,OAAOnhD,GAGT,SAASi4J,GACPj4J,EACAknC,EACAtsE,EACAumF,EACA+2G,GAEA,GAAIhX,EAAMh6G,GAAO,CACf,GAAIjrE,EAAOirE,EAAMtsE,GAKf,OAJAolC,EAAIplC,GAAOssE,EAAKtsE,GACXs9L,UACIhxH,EAAKtsE,IAEP,EACF,GAAIqB,EAAOirE,EAAMia,GAKtB,OAJAnhD,EAAIplC,GAAOssE,EAAKia,GACX+2G,UACIhxH,EAAKia,IAEP,EAGX,OAAO,EAiBT,SAASg3G,GAAyBp2H,GAChC,IAAK,IAAIv/D,EAAI,EAAGA,EAAIu/D,EAAS9mE,OAAQuH,IACnC,GAAIjI,MAAMqQ,QAAQm3D,EAASv/D,IACzB,OAAOjI,MAAMC,UAAUjB,OAAOmP,MAAM,GAAIq5D,GAG5C,OAAOA,EAOT,SAASq2H,GAAmBr2H,GAC1B,OAAOk2G,EAAYl2G,GACf,CAACmwH,GAAgBnwH,IACjBxnE,MAAMqQ,QAAQm3D,GACZs2H,GAAuBt2H,QACvBtnE,EAGR,SAAS69L,GAAYp3K,GACnB,OAAOggK,EAAMhgK,IAASggK,EAAMhgK,EAAK6wD,OAAS06G,EAAQvrK,EAAK0wK,WAGzD,SAASyG,GAAwBt2H,EAAUw2H,GACzC,IACI/1L,EAAGsZ,EAAGoN,EAAWtb,EADjBoyB,EAAM,GAEV,IAAKx9B,EAAI,EAAGA,EAAIu/D,EAAS9mE,OAAQuH,IAC/BsZ,EAAIimD,EAASv/D,GACT+pL,EAAQzwK,IAAmB,mBAANA,IACzBoN,EAAY8W,EAAI/kC,OAAS,EACzB2S,EAAOoyB,EAAI9W,GAEP3uB,MAAMqQ,QAAQkR,GACZA,EAAE7gB,OAAS,IACb6gB,EAAIu8K,GAAuBv8K,GAAKy8K,GAAe,IAAM,IAAM/1L,GAEvD81L,GAAWx8K,EAAE,KAAOw8K,GAAW1qL,KACjCoyB,EAAI9W,GAAagpK,GAAgBtkL,EAAKmkE,KAAQj2D,EAAE,GAAIi2D,MACpDj2D,EAAEmxB,SAEJjN,EAAI14B,KAAKoB,MAAMs3B,EAAKlkB,IAEbm8J,EAAYn8J,GACjBw8K,GAAW1qL,GAIboyB,EAAI9W,GAAagpK,GAAgBtkL,EAAKmkE,KAAOj2D,GAC9B,KAANA,GAETkkB,EAAI14B,KAAK4qL,GAAgBp2K,IAGvBw8K,GAAWx8K,IAAMw8K,GAAW1qL,GAE9BoyB,EAAI9W,GAAagpK,GAAgBtkL,EAAKmkE,KAAOj2D,EAAEi2D,OAG3Cy6G,EAAOzqH,EAASy2H,WAClBtX,EAAMplK,EAAE5P,MACRqgL,EAAQzwK,EAAElhB,MACVsmL,EAAMqX,KACNz8K,EAAElhB,IAAM,UAAY29L,EAAc,IAAM/1L,EAAI,MAE9Cw9B,EAAI14B,KAAKwU,KAIf,OAAOkkB,EAKT,SAASy4J,GAAa5uF,GACpB,IAAIz2B,EAAUy2B,EAAG7wG,SAASo6E,QACtBA,IACFy2B,EAAG6uF,UAA+B,oBAAZtlH,EAClBA,EAAQz6E,KAAKkxG,GACbz2B,GAIR,SAASulH,GAAgB9uF,GACvB,IAAIlkG,EAASizL,GAAc/uF,EAAG7wG,SAASi5E,OAAQ43B,GAC3ClkG,IACFktL,IAAgB,GAChBn3L,OAAOkH,KAAK+C,GAAQH,SAAQ,SAAU5K,GAYlCw4L,GAAkBvpF,EAAIjvG,EAAK+K,EAAO/K,OAGtCi4L,IAAgB,IAIpB,SAAS+F,GAAe3mH,EAAQ43B,GAC9B,GAAI53B,EAAQ,CAOV,IALA,IAAItsE,EAASjK,OAAOvB,OAAO,MACvByI,EAAOglL,GACPvuK,QAAQxI,QAAQohE,GAChBv2E,OAAOkH,KAAKqvE,GAEPzvE,EAAI,EAAGA,EAAII,EAAK3H,OAAQuH,IAAK,CACpC,IAAI5H,EAAMgI,EAAKJ,GAEf,GAAY,WAAR5H,EAAJ,CACA,IAAIi+L,EAAa5mH,EAAOr3E,GAAKoK,KACzBgM,EAAS64F,EACb,MAAO74F,EAAQ,CACb,GAAIA,EAAO0nL,WAAaz8L,EAAO+U,EAAO0nL,UAAWG,GAAa,CAC5DlzL,EAAO/K,GAAOoW,EAAO0nL,UAAUG,GAC/B,MAEF7nL,EAASA,EAAOy5D,QAElB,IAAKz5D,EACH,GAAI,YAAaihE,EAAOr3E,GAAM,CAC5B,IAAIk+L,EAAiB7mH,EAAOr3E,GAAK0iE,QACjC33D,EAAO/K,GAAiC,oBAAnBk+L,EACjBA,EAAengM,KAAKkxG,GACpBivF,OACK7hL,GAKf,OAAOtR,GAWX,SAASozL,GACPh3H,EACA1pE,GAEA,IAAK0pE,IAAaA,EAAS9mE,OACzB,MAAO,GAGT,IADA,IAAIgkE,EAAQ,GACHz8D,EAAI,EAAGo1K,EAAI71G,EAAS9mE,OAAQuH,EAAIo1K,EAAGp1K,IAAK,CAC/C,IAAI02D,EAAQ6I,EAASv/D,GACjB8L,EAAO4qD,EAAM5qD,KAOjB,GALIA,GAAQA,EAAKwyD,OAASxyD,EAAKwyD,MAAMjC,aAC5BvwD,EAAKwyD,MAAMjC,KAIf3F,EAAM7gE,UAAYA,GAAW6gE,EAAMs4H,YAAcn5L,IACpDiW,GAAqB,MAAbA,EAAKuwD,MAUZI,EAAM3B,UAAY2B,EAAM3B,QAAU,KAAKh2D,KAAK4xD,OAT7C,CACA,IAAIx2D,EAAO4L,EAAKuwD,KACZA,EAAQI,EAAMv8D,KAAUu8D,EAAMv8D,GAAQ,IACxB,aAAdw2D,EAAMhtD,IACR2yD,EAAKv3D,KAAKoB,MAAMm2D,EAAM3F,EAAM6I,UAAY,IAExClD,EAAKv3D,KAAK4xD,IAOhB,IAAK,IAAI8/H,KAAU/5H,EACbA,EAAM+5H,GAAQ1wL,MAAM2wL,YACfh6H,EAAM+5H,GAGjB,OAAO/5H,EAGT,SAASg6H,GAAc/3K,GACrB,OAAQA,EAAK0wK,YAAc1wK,EAAKowK,cAA+B,MAAdpwK,EAAK6wD,KAKxD,SAASigH,GAAoB9wK,GAC3B,OAAOA,EAAK0wK,WAAa1wK,EAAKowK,aAKhC,SAAS4H,GACPj6H,EACAk6H,EACAC,GAEA,IAAIp5J,EACAq5J,EAAiB39L,OAAOkH,KAAKu2L,GAAal+L,OAAS,EACnDq+L,EAAWr6H,IAAUA,EAAMs6H,SAAWF,EACtCz+L,EAAMqkE,GAASA,EAAMu6H,KACzB,GAAKv6H,EAEE,IAAIA,EAAMqgH,YAEf,OAAOrgH,EAAMqgH,YACR,GACLga,GACAF,GACAA,IAAc9M,GACd1xL,IAAQw+L,EAAUI,OACjBH,IACAD,EAAU1Y,WAIX,OAAO0Y,EAGP,IAAK,IAAI/E,KADTr0J,EAAM,GACYi/B,EACZA,EAAMo1H,IAAuB,MAAbA,EAAM,KACxBr0J,EAAIq0J,GAASoF,GAAoBN,EAAa9E,EAAOp1H,EAAMo1H,UAnB/Dr0J,EAAM,GAwBR,IAAK,IAAI05J,KAASP,EACVO,KAAS15J,IACbA,EAAI05J,GAASC,GAAgBR,EAAaO,IAW9C,OANIz6H,GAASvjE,OAAOC,aAAasjE,KAC9BA,EAAOqgH,YAAct/I,GAExBmiB,EAAIniB,EAAK,UAAWs5J,GACpBn3I,EAAIniB,EAAK,OAAQplC,GACjBunD,EAAIniB,EAAK,aAAcq5J,GAChBr5J,EAGT,SAASy5J,GAAoBN,EAAav+L,EAAKqQ,GAC7C,IAAIwpL,EAAa,WACf,IAAIz0J,EAAMv8B,UAAUxI,OAASgQ,EAAGvC,MAAM,KAAMjF,WAAawH,EAAG,IAC5D+0B,EAAMA,GAAsB,YAAf,OAAOA,KAAqBzlC,MAAMqQ,QAAQo1B,GACnD,CAACA,GACDo4J,GAAkBp4J,GACtB,IAAImpD,EAAQnpD,GAAOA,EAAI,GACvB,OAAOA,KACJmpD,GACe,IAAfnpD,EAAI/kC,QAAgBkuF,EAAMyoG,YAAcI,GAAmB7oG,SAC1D1uF,EACAulC,GAYN,OAPI/0B,EAAG2uL,OACLl+L,OAAOtB,eAAe++L,EAAav+L,EAAK,CACtCoE,IAAKy1L,EACLxiL,YAAY,EACZvX,cAAc,IAGX+5L,EAGT,SAASkF,GAAgB16H,EAAOrkE,GAC9B,OAAO,WAAc,OAAOqkE,EAAMrkE,IAQpC,SAASi/L,GACP5yK,EACAxvB,GAEA,IAAIw/K,EAAKz0K,EAAGo1K,EAAGh1K,EAAMhI,EACrB,GAAIL,MAAMqQ,QAAQqc,IAAuB,kBAARA,EAE/B,IADAgwJ,EAAM,IAAI18K,MAAM0sB,EAAIhsB,QACfuH,EAAI,EAAGo1K,EAAI3wJ,EAAIhsB,OAAQuH,EAAIo1K,EAAGp1K,IACjCy0K,EAAIz0K,GAAK/K,EAAOwvB,EAAIzkB,GAAIA,QAErB,GAAmB,kBAARykB,EAEhB,IADAgwJ,EAAM,IAAI18K,MAAM0sB,GACXzkB,EAAI,EAAGA,EAAIykB,EAAKzkB,IACnBy0K,EAAIz0K,GAAK/K,EAAO+K,EAAI,EAAGA,QAEpB,GAAInH,EAAS4rB,GAClB,GAAI2gK,IAAa3gK,EAAI/S,OAAO1N,UAAW,CACrCywK,EAAM,GACN,IAAIzwK,EAAWygB,EAAI/S,OAAO1N,YACtBb,EAASa,EAASC,OACtB,OAAQd,EAAOgB,KACbswK,EAAI3vK,KAAK7P,EAAOkO,EAAOhL,MAAOs8K,EAAIh8K,SAClC0K,EAASa,EAASC,YAKpB,IAFA7D,EAAOlH,OAAOkH,KAAKqkB,GACnBgwJ,EAAM,IAAI18K,MAAMqI,EAAK3H,QAChBuH,EAAI,EAAGo1K,EAAIh1K,EAAK3H,OAAQuH,EAAIo1K,EAAGp1K,IAClC5H,EAAMgI,EAAKJ,GACXy0K,EAAIz0K,GAAK/K,EAAOwvB,EAAIrsB,GAAMA,EAAK4H,GAQrC,OAJK0+K,EAAMjK,KACTA,EAAM,IAEPA,EAAKuhB,UAAW,EACVvhB,EAQT,SAAS6iB,GACPp3L,EACAq3L,EACAt0K,EACAu0K,GAEA,IACIt9D,EADAu9D,EAAe3hM,KAAKomE,aAAah8D,GAEjCu3L,GAEFx0K,EAAQA,GAAS,GACbu0K,IAIFv0K,EAAQs8B,EAAOA,EAAO,GAAIi4I,GAAav0K,IAEzCi3G,EACEu9D,EAAax0K,KACc,oBAAnBs0K,EAAgCA,IAAmBA,IAE7Dr9D,EACEpkI,KAAKqmE,OAAOj8D,KACe,oBAAnBq3L,EAAgCA,IAAmBA,GAG/D,IAAIn1L,EAAS6gB,GAASA,EAAMo5C,KAC5B,OAAIj6D,EACKtM,KAAK2/G,eAAe,WAAY,CAAEp5C,KAAMj6D,GAAU83H,GAElDA,EASX,SAASw9D,GAAehrL,GACtB,OAAO+lL,GAAa38L,KAAKU,SAAU,UAAWkW,GAAI,IAAS6wC,EAK7D,SAASo6I,GAAeC,EAAQ3wJ,GAC9B,OAAIlvC,MAAMqQ,QAAQwvL,IACmB,IAA5BA,EAAOjzL,QAAQsiC,GAEf2wJ,IAAW3wJ,EAStB,SAAS4wJ,GACPC,EACA1/L,EACA2/L,EACAC,EACAC,GAEA,IAAIC,EAAgB/5I,EAAOguI,SAAS/zL,IAAQ2/L,EAC5C,OAAIE,GAAkBD,IAAiB75I,EAAOguI,SAAS/zL,GAC9Cu/L,GAAcM,EAAgBD,GAC5BE,EACFP,GAAcO,EAAeJ,GAC3BE,EACFnN,EAAUmN,KAAkB5/L,OAEbH,IAAjB6/L,EAQT,SAASK,GACPrsL,EACApC,EACAvR,EACAigM,EACAC,GAEA,GAAIlgM,EACF,GAAKU,EAASV,GAKP,CAIL,IAAIusE,EAHA3sE,MAAMqQ,QAAQjQ,KAChBA,EAAQ0J,EAAS1J,IAGnB,IAAImgM,EAAO,SAAWlgM,GACpB,GACU,UAARA,GACQ,UAARA,GACAkyL,EAAoBlyL,GAEpBssE,EAAO54D,MACF,CACL,IAAIZ,EAAOY,EAAKwyD,OAASxyD,EAAKwyD,MAAMpzD,KACpCw5D,EAAO0zH,GAAUj6I,EAAOsuI,YAAY/iL,EAAKwB,EAAM9S,GAC3C0T,EAAK0yD,WAAa1yD,EAAK0yD,SAAW,IAClC1yD,EAAKwyD,QAAUxyD,EAAKwyD,MAAQ,IAElC,IAAIi6H,EAAe7N,EAAStyL,GACxBogM,EAAgB3N,EAAUzyL,GAC9B,KAAMmgM,KAAgB7zH,MAAW8zH,KAAiB9zH,KAChDA,EAAKtsE,GAAOD,EAAMC,GAEdigM,GAAQ,CACV,IAAIn7H,EAAKpxD,EAAKoxD,KAAOpxD,EAAKoxD,GAAK,IAC/BA,EAAI,UAAY9kE,GAAQ,SAAUqgM,GAChCtgM,EAAMC,GAAOqgM,KAMrB,IAAK,IAAIrgM,KAAOD,EAAOmgM,EAAMlgM,QAGjC,OAAO0T,EAQT,SAAS4sL,GACPngM,EACAogM,GAEA,IAAIpO,EAASz0L,KAAK8iM,eAAiB9iM,KAAK8iM,aAAe,IACnDC,EAAOtO,EAAOhyL,GAGlB,OAAIsgM,IAASF,IAIbE,EAAOtO,EAAOhyL,GAASzC,KAAKU,SAAStB,gBAAgBqD,GAAOpC,KAC1DL,KAAKgjM,aACL,KACAhjM,MAEFijM,GAAWF,EAAO,aAAetgM,GAAQ,IARhCsgM,EAgBX,SAASG,GACPH,EACAtgM,EACAH,GAGA,OADA2gM,GAAWF,EAAO,WAAatgM,GAASH,EAAO,IAAMA,EAAO,KAAM,GAC3DygM,EAGT,SAASE,GACPF,EACAzgM,EACAk3L,GAEA,GAAIv3L,MAAMqQ,QAAQywL,GAChB,IAAK,IAAI74L,EAAI,EAAGA,EAAI64L,EAAKpgM,OAAQuH,IAC3B64L,EAAK74L,IAAyB,kBAAZ64L,EAAK74L,IACzBi5L,GAAeJ,EAAK74L,GAAK5H,EAAM,IAAM4H,EAAIsvL,QAI7C2J,GAAeJ,EAAMzgM,EAAKk3L,GAI9B,SAAS2J,GAAgBv6K,EAAMtmB,EAAKk3L,GAClC5wK,EAAKo+I,UAAW,EAChBp+I,EAAKtmB,IAAMA,EACXsmB,EAAK4wK,OAASA,EAKhB,SAAS4J,GAAqBptL,EAAM3T,GAClC,GAAIA,EACF,GAAK2jD,EAAc3jD,GAKZ,CACL,IAAI+kE,EAAKpxD,EAAKoxD,GAAKpxD,EAAKoxD,GAAK3d,EAAO,GAAIzzC,EAAKoxD,IAAM,GACnD,IAAK,IAAI9kE,KAAOD,EAAO,CACrB,IAAItB,EAAWqmE,EAAG9kE,GACd+gM,EAAOhhM,EAAMC,GACjB8kE,EAAG9kE,GAAOvB,EAAW,GAAGE,OAAOF,EAAUsiM,GAAQA,QAIvD,OAAOrtL,EAKT,SAASstL,GACPvE,EACAr3J,EAEA67J,EACAC,GAEA97J,EAAMA,GAAO,CAAEu5J,SAAUsC,GACzB,IAAK,IAAIr5L,EAAI,EAAGA,EAAI60L,EAAIp8L,OAAQuH,IAAK,CACnC,IAAIq8D,EAAOw4H,EAAI70L,GACXjI,MAAMqQ,QAAQi0D,GAChB+8H,GAAmB/8H,EAAM7+B,EAAK67J,GACrBh9H,IAELA,EAAK+6H,QACP/6H,EAAK5zD,GAAG2uL,OAAQ,GAElB55J,EAAI6+B,EAAKjkE,KAAOikE,EAAK5zD,IAMzB,OAHI6wL,IACD97J,EAAKw5J,KAAOsC,GAER97J,EAKT,SAAS+7J,GAAiBC,EAASloL,GACjC,IAAK,IAAItR,EAAI,EAAGA,EAAIsR,EAAO7Y,OAAQuH,GAAK,EAAG,CACzC,IAAI5H,EAAMkZ,EAAOtR,GACE,kBAAR5H,GAAoBA,IAC7BohM,EAAQloL,EAAOtR,IAAMsR,EAAOtR,EAAI,IASpC,OAAOw5L,EAMT,SAASC,GAAiBthM,EAAOgoB,GAC/B,MAAwB,kBAAVhoB,EAAqBgoB,EAAShoB,EAAQA,EAKtD,SAASuhM,GAAsBt3L,GAC7BA,EAAOu3L,GAAKX,GACZ52L,EAAO4uC,GAAK5c,EACZhyB,EAAO+uC,GAAKhoC,EACZ/G,EAAOw3L,GAAKvC,GACZj1L,EAAOy3L,GAAKvC,GACZl1L,EAAO03L,GAAK5wH,EACZ9mE,EAAOgvC,GAAK+7D,EACZ/qG,EAAO23L,GAAKrB,GACZt2L,EAAO43L,GAAKtC,GACZt1L,EAAO63L,GAAKpC,GACZz1L,EAAOo+C,GAAK23I,GACZ/1L,EAAO83L,GAAKxK,GACZttL,EAAO8uC,GAAKu+I,GACZrtL,EAAO+3L,GAAKf,GACZh3L,EAAOg4L,GAAKlB,GACZ92L,EAAO6uC,GAAKsoJ,GACZn3L,EAAOi4L,GAAKZ,GAKd,SAASa,GACPxuL,EACAmX,EACAs8C,EACAtpE,EACA83L,GAEA,IAKIwM,EALA/c,EAAS1nL,KAETL,EAAUs4L,EAAKt4L,QAIfgE,EAAOxD,EAAQ,SACjBskM,EAAYrhM,OAAOvB,OAAO1B,GAE1BskM,EAAUC,UAAYvkM,IAKtBskM,EAAYtkM,EAEZA,EAASA,EAAOukM,WAElB,IAAIC,EAAazQ,EAAOv0L,EAAQC,WAC5BglM,GAAqBD,EAEzB3kM,KAAKgW,KAAOA,EACZhW,KAAKmtB,MAAQA,EACbntB,KAAKypE,SAAWA,EAChBzpE,KAAKG,OAASA,EACdH,KAAKu4E,UAAYviE,EAAKoxD,IAAM4sH,EAC5Bh0L,KAAK6kM,WAAavE,GAAc3gM,EAAQg6E,OAAQx5E,GAChDH,KAAK2mE,MAAQ,WAOX,OANK+gH,EAAOrhH,QACVu6H,GACE5qL,EAAK0wD,YACLghH,EAAOrhH,OAASo6H,GAAah3H,EAAUtpE,IAGpCunL,EAAOrhH,QAGhBjjE,OAAOtB,eAAe9B,KAAM,cAAgB,CAC1C2Z,YAAY,EACZjT,IAAK,WACH,OAAOk6L,GAAqB5qL,EAAK0wD,YAAa1mE,KAAK2mE,YAKnDg+H,IAEF3kM,KAAKU,SAAWf,EAEhBK,KAAKqmE,OAASrmE,KAAK2mE,QACnB3mE,KAAKomE,aAAew6H,GAAqB5qL,EAAK0wD,YAAa1mE,KAAKqmE,SAG9D1mE,EAAQG,SACVE,KAAK8kM,GAAK,SAAUhiL,EAAGC,EAAGS,EAAGskE,GAC3B,IAAI+I,EAAQ70E,GAAcyoL,EAAW3hL,EAAGC,EAAGS,EAAGskE,EAAG88G,GAKjD,OAJI/zG,IAAU5uF,MAAMqQ,QAAQu+E,KAC1BA,EAAMuoG,UAAYz5L,EAAQG,SAC1B+wF,EAAMqoG,UAAY/4L,GAEb0wF,GAGT7wF,KAAK8kM,GAAK,SAAUhiL,EAAGC,EAAGS,EAAGskE,GAAK,OAAO9rE,GAAcyoL,EAAW3hL,EAAGC,EAAGS,EAAGskE,EAAG88G,IAMlF,SAASG,GACP9M,EACA/yD,EACAlvH,EACAyuL,EACAh7H,GAEA,IAAI9pE,EAAUs4L,EAAKt4L,QACfwtB,EAAQ,GACR8vK,EAAct9L,EAAQwtB,MAC1B,GAAIy7J,EAAMqU,GACR,IAAK,IAAI36L,KAAO26L,EACd9vK,EAAM7qB,GAAO06L,GAAa16L,EAAK26L,EAAa/3D,GAAa8uD,QAGvDpL,EAAM5yK,EAAKwyD,QAAUw8H,GAAW73K,EAAOnX,EAAKwyD,OAC5CogH,EAAM5yK,EAAKmX,QAAU63K,GAAW73K,EAAOnX,EAAKmX,OAGlD,IAAI83K,EAAgB,IAAIT,GACtBxuL,EACAmX,EACAs8C,EACAg7H,EACAxM,GAGEpnG,EAAQlxF,EAAQR,OAAOkB,KAAK,KAAM4kM,EAAcH,GAAIG,GAExD,GAAIp0G,aAAiBgoG,GACnB,OAAOqM,GAA6Br0G,EAAO76E,EAAMivL,EAAc9kM,OAAQR,EAASslM,GAC3E,GAAIhjM,MAAMqQ,QAAQu+E,GAAQ,CAG/B,IAFA,IAAIs0G,EAASrF,GAAkBjvG,IAAU,GACrCnpD,EAAM,IAAIzlC,MAAMkjM,EAAOxiM,QAClBuH,EAAI,EAAGA,EAAIi7L,EAAOxiM,OAAQuH,IACjCw9B,EAAIx9B,GAAKg7L,GAA6BC,EAAOj7L,GAAI8L,EAAMivL,EAAc9kM,OAAQR,EAASslM,GAExF,OAAOv9J,GAIX,SAASw9J,GAA8Br0G,EAAO76E,EAAMyuL,EAAW9kM,EAASslM,GAItE,IAAI1+I,EAAQszI,GAAWhpG,GASvB,OARAtqC,EAAM2yI,UAAYuL,EAClBl+I,EAAM4yI,UAAYx5L,EAIdqW,EAAKuwD,QACNhgB,EAAMvwC,OAASuwC,EAAMvwC,KAAO,KAAKuwD,KAAOvwD,EAAKuwD,MAEzChgB,EAGT,SAASy+I,GAAYv4L,EAAIC,GACvB,IAAK,IAAIpK,KAAOoK,EACdD,EAAGmoL,EAAStyL,IAAQoK,EAAKpK,GA7D7BshM,GAAqBY,GAAwBtiM,WA0E7C,IAAIkjM,GAAsB,CACxB/rK,KAAM,SAAew3D,EAAOw0G,GAC1B,GACEx0G,EAAMmzF,oBACLnzF,EAAMmzF,kBAAkBh9C,cACzBn2C,EAAM76E,KAAKstK,UACX,CAEA,IAAIgiB,EAAcz0G,EAClBu0G,GAAoBrhB,SAASuhB,EAAaA,OACrC,CACL,IAAI1kI,EAAQiwB,EAAMmzF,kBAAoBuhB,GACpC10G,EACA20G,IAEF5kI,EAAMwvE,OAAOi1D,EAAYx0G,EAAMioG,SAAM32L,EAAWkjM,KAIpDthB,SAAU,SAAmB0hB,EAAU50G,GACrC,IAAIlxF,EAAUkxF,EAAMkoG,iBAChBn4H,EAAQiwB,EAAMmzF,kBAAoByhB,EAASzhB,kBAC/C0hB,GACE9kI,EACAjhE,EAAQulI,UACRvlI,EAAQ44E,UACRsY,EACAlxF,EAAQ8pE,WAIZk8H,OAAQ,SAAiB90G,GACvB,IAAI9wF,EAAU8wF,EAAM9wF,QAChBikL,EAAoBnzF,EAAMmzF,kBACzBA,EAAkB4hB,aACrB5hB,EAAkB4hB,YAAa,EAC/BC,GAAS7hB,EAAmB,YAE1BnzF,EAAM76E,KAAKstK,YACTvjL,EAAQ6lM,WAMVE,GAAwB9hB,GAExB+hB,GAAuB/hB,GAAmB,KAKhDtyF,QAAS,SAAkBb,GACzB,IAAImzF,EAAoBnzF,EAAMmzF,kBACzBA,EAAkBh9C,eAChBn2C,EAAM76E,KAAKstK,UAGd0iB,GAAyBhiB,GAAmB,GAF5CA,EAAkB5+C,cAQtB6gE,GAAe7iM,OAAOkH,KAAK86L,IAE/B,SAASc,GACPjO,EACAjiL,EACAjW,EACA0pE,EACA71D,GAEA,IAAIqgL,EAAQgE,GAAZ,CAIA,IAAIkO,EAAWpmM,EAAQW,SAAS87L,MAShC,GANIz5L,EAASk1L,KACXA,EAAOkO,EAAS18I,OAAOwuI,IAKL,oBAATA,EAAX,CAQA,IAAIe,EACJ,GAAI/E,EAAQgE,EAAK/I,OACf8J,EAAef,EACfA,EAAOmO,GAAsBpN,EAAcmN,QAC9BhkM,IAAT81L,GAIF,OAAOoO,GACLrN,EACAhjL,EACAjW,EACA0pE,EACA71D,GAKNoC,EAAOA,GAAQ,GAIfswL,GAA0BrO,GAGtBrP,EAAM5yK,EAAKkwD,QACbqgI,GAAetO,EAAKt4L,QAASqW,GAI/B,IAAIkvH,EAAYw6D,GAA0B1pL,EAAMiiL,EAAMrkL,GAGtD,GAAIsgL,EAAO+D,EAAKt4L,QAAQE,YACtB,OAAOklM,GAA0B9M,EAAM/yD,EAAWlvH,EAAMjW,EAAS0pE,GAKnE,IAAI8O,EAAYviE,EAAKoxD,GAKrB,GAFApxD,EAAKoxD,GAAKpxD,EAAK6iJ,SAEXq7B,EAAO+D,EAAKt4L,QAAQwkI,UAAW,CAKjC,IAAI59D,EAAOvwD,EAAKuwD,KAChBvwD,EAAO,GACHuwD,IACFvwD,EAAKuwD,KAAOA,GAKhBigI,GAAsBxwL,GAGtB,IAAI5L,EAAO6tL,EAAKt4L,QAAQyK,MAAQwJ,EAC5Bi9E,EAAQ,IAAIgoG,GACb,iBAAoBZ,EAAK/I,KAAQ9kL,EAAQ,IAAMA,EAAQ,IACxD4L,OAAM7T,OAAWA,OAAWA,EAAWpC,EACvC,CAAEk4L,KAAMA,EAAM/yD,UAAWA,EAAW3sD,UAAWA,EAAW3kE,IAAKA,EAAK61D,SAAUA,GAC9EuvH,GAGF,OAAOnoG,IAGT,SAAS00G,GAEP10G,EAEA1wF,GAEA,IAAIR,EAAU,CACZ8mM,cAAc,EACd1d,aAAcl4F,EACd1wF,OAAQA,GAGNumM,EAAiB71G,EAAM76E,KAAK0wL,eAKhC,OAJI9d,EAAM8d,KACR/mM,EAAQR,OAASunM,EAAevnM,OAChCQ,EAAQP,gBAAkBsnM,EAAetnM,iBAEpC,IAAIyxF,EAAMkoG,iBAAiBd,KAAKt4L,GAGzC,SAAS6mM,GAAuBxwL,GAE9B,IADA,IAAI6lL,EAAQ7lL,EAAKtW,OAASsW,EAAKtW,KAAO,IAC7BwK,EAAI,EAAGA,EAAI+7L,GAAatjM,OAAQuH,IAAK,CAC5C,IAAI5H,EAAM2jM,GAAa/7L,GACnBnJ,EAAW86L,EAAMv5L,GACjBqkM,EAAUvB,GAAoB9iM,GAC9BvB,IAAa4lM,GAAa5lM,GAAYA,EAAS6lM,UACjD/K,EAAMv5L,GAAOvB,EAAW8lM,GAAYF,EAAS5lM,GAAY4lM,IAK/D,SAASE,GAAaC,EAAIC,GACxB,IAAItH,EAAS,SAAU38K,EAAGC,GAExB+jL,EAAGhkL,EAAGC,GACNgkL,EAAGjkL,EAAGC,IAGR,OADA08K,EAAOmH,SAAU,EACVnH,EAKT,SAAS8G,GAAgB5mM,EAASqW,GAChC,IAAIswC,EAAQ3mD,EAAQumE,OAASvmE,EAAQumE,MAAM5f,MAAS,QAChDhyB,EAAS30B,EAAQumE,OAASvmE,EAAQumE,MAAM5xC,OAAU,SACpDte,EAAKwyD,QAAUxyD,EAAKwyD,MAAQ,KAAKliB,GAAQtwC,EAAKkwD,MAAM7jE,MACtD,IAAI+kE,EAAKpxD,EAAKoxD,KAAOpxD,EAAKoxD,GAAK,IAC3BrmE,EAAWqmE,EAAG9yC,GACdggD,EAAWt+D,EAAKkwD,MAAMoO,SACtBs0G,EAAM7nL,IAENkB,MAAMqQ,QAAQvR,IACsB,IAAhCA,EAAS8N,QAAQylE,GACjBvzE,IAAauzE,KAEjBlN,EAAG9yC,GAAS,CAACggD,GAAUrzE,OAAOF,IAGhCqmE,EAAG9yC,GAASggD,EAMhB,IAAI0yH,GAAmB,EACnBC,GAAmB,EAIvB,SAASjrL,GACPjc,EACA6T,EACAoC,EACAyzD,EACAy9H,EACAC,GAUA,OARIllM,MAAMqQ,QAAQ0D,IAAS2pK,EAAY3pK,MACrCkxL,EAAoBz9H,EACpBA,EAAWzzD,EACXA,OAAO7T,GAEL+xL,EAAOiT,KACTD,EAAoBD,IAEfG,GAAernM,EAAS6T,EAAKoC,EAAMyzD,EAAUy9H,GAGtD,SAASE,GACPrnM,EACA6T,EACAoC,EACAyzD,EACAy9H,GAEA,GAAIte,EAAM5yK,IAAS4yK,EAAO5yK,EAAMmkL,QAM9B,OAAOR,KAMT,GAHI/Q,EAAM5yK,IAAS4yK,EAAM5yK,EAAK+b,MAC5Bne,EAAMoC,EAAK+b,KAERne,EAEH,OAAO+lL,KA2BT,IAAI9oG,EAAOooG,EAELhB,GAdFh2L,MAAMqQ,QAAQm3D,IACO,oBAAhBA,EAAS,KAEhBzzD,EAAOA,GAAQ,GACfA,EAAK0wD,YAAc,CAAE1B,QAASyE,EAAS,IACvCA,EAAS9mE,OAAS,GAEhBukM,IAAsBD,GACxBx9H,EAAWq2H,GAAkBr2H,GACpBy9H,IAAsBF,KAC/Bv9H,EAAWo2H,GAAwBp2H,IAGlB,kBAAR71D,IAETqlL,EAAMl5L,EAAQE,QAAUF,EAAQE,OAAOg5L,IAAO5wI,EAAOouI,gBAAgB7iL,GASnEi9E,EARExoC,EAAOiuI,cAAc1iL,GAQf,IAAIilL,GACVxwI,EAAOquI,qBAAqB9iL,GAAMoC,EAAMyzD,OACxCtnE,OAAWA,EAAWpC,GAEbiW,GAASA,EAAKqxL,MAAQze,EAAMqP,EAAO0E,GAAa58L,EAAQW,SAAU,aAAckT,IAOnF,IAAIilL,GACVjlL,EAAKoC,EAAMyzD,OACXtnE,OAAWA,EAAWpC,GAPhBmmM,GAAgBjO,EAAMjiL,EAAMjW,EAAS0pE,EAAU71D,IAYzDi9E,EAAQq1G,GAAgBtyL,EAAKoC,EAAMjW,EAAS0pE,GAE9C,OAAIxnE,MAAMqQ,QAAQu+E,GACTA,EACE+3F,EAAM/3F,IACX+3F,EAAMqQ,IAAOqO,GAAQz2G,EAAOooG,GAC5BrQ,EAAM5yK,IAASuxL,GAAqBvxL,GACjC66E,GAEA8oG,KAIX,SAAS2N,GAASz2G,EAAOooG,EAAI/uE,GAO3B,GANAr5B,EAAMooG,GAAKA,EACO,kBAAdpoG,EAAMj9E,MAERqlL,OAAK92L,EACL+nH,GAAQ,GAEN0+D,EAAM/3F,EAAMpnB,UACd,IAAK,IAAIv/D,EAAI,EAAGo1K,EAAIzuF,EAAMpnB,SAAS9mE,OAAQuH,EAAIo1K,EAAGp1K,IAAK,CACrD,IAAI02D,EAAQiwB,EAAMpnB,SAASv/D,GACvB0+K,EAAMhoH,EAAMhtD,OACdqgL,EAAQrzH,EAAMq4H,KAAQ/E,EAAOhqE,IAAwB,QAAdtpD,EAAMhtD,MAC7C0zL,GAAQ1mI,EAAOq4H,EAAI/uE,IAS3B,SAASq9E,GAAsBvxL,GACzBjT,EAASiT,EAAKyW,QAChB+xK,GAASxoL,EAAKyW,OAEZ1pB,EAASiT,EAAKuyD,QAChBi2H,GAASxoL,EAAKuyD,OAMlB,SAASi/H,GAAYj2F,GACnBA,EAAGk2F,OAAS,KACZl2F,EAAGuxF,aAAe,KAClB,IAAInjM,EAAU4xG,EAAG7wG,SACbgnM,EAAcn2F,EAAGtxG,OAASN,EAAQopL,aAClCkc,EAAgByC,GAAeA,EAAY3nM,QAC/CwxG,EAAGlrC,OAASo6H,GAAa9gM,EAAQgoM,gBAAiB1C,GAClD1zF,EAAGnrC,aAAe4tH,EAKlBziF,EAAGuzF,GAAK,SAAUhiL,EAAGC,EAAGS,EAAGskE,GAAK,OAAO9rE,GAAcu1F,EAAIzuF,EAAGC,EAAGS,EAAGskE,GAAG,IAGrEypB,EAAGoO,eAAiB,SAAU78F,EAAGC,EAAGS,EAAGskE,GAAK,OAAO9rE,GAAcu1F,EAAIzuF,EAAGC,EAAGS,EAAGskE,GAAG,IAIjF,IAAI8/G,EAAaF,GAAeA,EAAY1xL,KAW1C8kL,GAAkBvpF,EAAI,SAAUq2F,GAAcA,EAAWp/H,OAASwrH,EAAa,MAAM,GACrF8G,GAAkBvpF,EAAI,aAAc5xG,EAAQkoM,kBAAoB7T,EAAa,MAAM,GAIvF,IA4PI1nL,GA5PAw7L,GAA2B,KAE/B,SAASC,GAAat/I,GAEpBm7I,GAAqBn7I,EAAIvmD,WAEzBumD,EAAIvmD,UAAUipE,UAAY,SAAUx4D,GAClC,OAAOkX,GAASlX,EAAI3S,OAGtByoD,EAAIvmD,UAAU8lM,QAAU,WACtB,IAiBIn3G,EAjBA0gB,EAAKvxG,KACL+rF,EAAMwlB,EAAG7wG,SACTvB,EAAS4sF,EAAI5sF,OACb4pL,EAAeh9F,EAAIg9F,aAEnBA,IACFx3E,EAAGnrC,aAAew6H,GAChB7X,EAAa/yK,KAAK0wD,YAClB6qC,EAAGlrC,OACHkrC,EAAGnrC,eAMPmrC,EAAGtxG,OAAS8oL,EAGZ,IAIE+e,GAA2Bv2F,EAC3B1gB,EAAQ1xF,EAAOkB,KAAKkxG,EAAGyxF,aAAczxF,EAAGoO,gBACxC,MAAOhgF,IACP+9J,GAAY/9J,GAAG4xE,EAAI,UAYjB1gB,EAAQ0gB,EAAGk2F,OAnBf,QAsBEK,GAA2B,KAmB7B,OAhBI7lM,MAAMqQ,QAAQu+E,IAA2B,IAAjBA,EAAMluF,SAChCkuF,EAAQA,EAAM,IAGVA,aAAiBgoG,KAQrBhoG,EAAQ8oG,MAGV9oG,EAAM1wF,OAAS4oL,EACRl4F,GAMX,SAASo3G,GAAY5Y,EAAM91I,GAOzB,OALE81I,EAAK7/I,YACJ8/I,IAA0C,WAA7BD,EAAKzzK,OAAO81J,gBAE1B2d,EAAOA,EAAKrqH,SAEPjiE,EAASssL,GACZ91I,EAAKkQ,OAAO4lI,GACZA,EAGN,SAASgX,GACP6B,EACAlyL,EACAjW,EACA0pE,EACA71D,GAEA,IAAIgV,EAAO+wK,KAGX,OAFA/wK,EAAKowK,aAAekP,EACpBt/K,EAAK6wK,UAAY,CAAEzjL,KAAMA,EAAMjW,QAASA,EAAS0pE,SAAUA,EAAU71D,IAAKA,GACnEgV,EAGT,SAASw9K,GACP8B,EACA/B,GAEA,GAAIjS,EAAOgU,EAAQ5hM,QAAUsiL,EAAMsf,EAAQC,WACzC,OAAOD,EAAQC,UAGjB,GAAIvf,EAAMsf,EAAQxrE,UAChB,OAAOwrE,EAAQxrE,SAGjB,IAAI0rE,EAAQN,GAMZ,GALIM,GAASxf,EAAMsf,EAAQG,UAA8C,IAAnCH,EAAQG,OAAOx5L,QAAQu5L,IAE3DF,EAAQG,OAAOr5L,KAAKo5L,GAGlBlU,EAAOgU,EAAQz8C,UAAYm9B,EAAMsf,EAAQI,aAC3C,OAAOJ,EAAQI,YAGjB,GAAIF,IAAUxf,EAAMsf,EAAQG,QAAS,CACnC,IAAIA,EAASH,EAAQG,OAAS,CAACD,GAC3BG,GAAO,EACPC,EAAe,KACfC,EAAe,KAEjBL,EAAOzzH,IAAI,kBAAkB,WAAc,OAAOzT,EAAOmnI,EAAQD,MAEnE,IAAIM,EAAc,SAAUC,GAC1B,IAAK,IAAIz+L,EAAI,EAAGo1K,EAAI+oB,EAAO1lM,OAAQuH,EAAIo1K,EAAGp1K,IACvCm+L,EAAOn+L,GAAI+4J,eAGV0lC,IACFN,EAAO1lM,OAAS,EACK,OAAjB6lM,IACFh9H,aAAag9H,GACbA,EAAe,MAEI,OAAjBC,IACFj9H,aAAai9H,GACbA,EAAe,QAKjB7+K,EAAUmnE,GAAK,SAAUrpD,GAE3BwgK,EAAQxrE,SAAWurE,GAAWvgK,EAAKy+J,GAG9BoC,EAGHF,EAAO1lM,OAAS,EAFhB+lM,GAAY,MAMZn+K,EAASwmE,GAAK,SAAU7tD,GAKtB0lJ,EAAMsf,EAAQC,aAChBD,EAAQ5hM,OAAQ,EAChBoiM,GAAY,OAIZhhK,EAAMwgK,EAAQt+K,EAASW,GA+C3B,OA7CIxnB,EAAS2kC,KACP+I,EAAU/I,GAERusJ,EAAQiU,EAAQxrE,WAClBh1F,EAAI5e,KAAKc,EAASW,GAEXkmB,EAAU/I,EAAIoiB,aACvBpiB,EAAIoiB,UAAUhhC,KAAKc,EAASW,GAExBq+J,EAAMlhJ,EAAIphC,SACZ4hM,EAAQC,UAAYF,GAAWvgK,EAAIphC,MAAO6/L,IAGxCvd,EAAMlhJ,EAAI+jH,WACZy8C,EAAQI,YAAcL,GAAWvgK,EAAI+jH,QAAS06C,GAC5B,IAAdz+J,EAAI6oF,MACN23E,EAAQz8C,SAAU,EAElB+8C,EAAerzK,YAAW,WACxBqzK,EAAe,KACXvU,EAAQiU,EAAQxrE,WAAau3D,EAAQiU,EAAQ5hM,SAC/C4hM,EAAQz8C,SAAU,EAClBi9C,GAAY,MAEbhhK,EAAI6oF,OAAS,MAIhBq4D,EAAMlhJ,EAAIqqH,WACZ02C,EAAetzK,YAAW,WACxBszK,EAAe,KACXxU,EAAQiU,EAAQxrE,WAClBnyG,EAGM,QAGPmd,EAAIqqH,YAKbw2C,GAAO,EAEAL,EAAQz8C,QACXy8C,EAAQI,YACRJ,EAAQxrE,UAMhB,SAASksE,GAAwBn/H,GAC/B,GAAIxnE,MAAMqQ,QAAQm3D,GAChB,IAAK,IAAIv/D,EAAI,EAAGA,EAAIu/D,EAAS9mE,OAAQuH,IAAK,CACxC,IAAIsZ,EAAIimD,EAASv/D,GACjB,GAAI0+K,EAAMplK,KAAOolK,EAAMplK,EAAEu1K,mBAAqBW,GAAmBl2K,IAC/D,OAAOA,GAUf,SAASqlL,GAAYt3F,GACnBA,EAAG42C,QAAU/kJ,OAAOvB,OAAO,MAC3B0vG,EAAGu3F,eAAgB,EAEnB,IAAIvwH,EAAYg5B,EAAG7wG,SAASmnM,iBACxBtvH,GACFwwH,GAAyBx3F,EAAIh5B,GAMjC,SAASh4E,GAAK+zB,EAAO3hB,GACnBrG,GAAOqoE,IAAIrgD,EAAO3hB,GAGpB,SAASq2L,GAAU10K,EAAO3hB,GACxBrG,GAAO0oE,KAAK1gD,EAAO3hB,GAGrB,SAASysL,GAAmB9qK,EAAO3hB,GACjC,IAAIs2L,EAAU38L,GACd,OAAO,SAAS48L,IACd,IAAIxhK,EAAM/0B,EAAGvC,MAAM,KAAMjF,WACb,OAARu8B,GACFuhK,EAAQj0H,KAAK1gD,EAAO40K,IAK1B,SAASH,GACPx3F,EACAh5B,EACA4wH,GAEA78L,GAASilG,EACT2K,GAAgB3jC,EAAW4wH,GAAgB,GAAI5oM,GAAKyoM,GAAU5J,GAAmB7tF,GACjFjlG,QAASnK,EAGX,SAASinM,GAAa3gJ,GACpB,IAAI4gJ,EAAS,SACb5gJ,EAAIvmD,UAAUyyE,IAAM,SAAUrgD,EAAO3hB,GACnC,IAAI4+F,EAAKvxG,KACT,GAAIiC,MAAMqQ,QAAQgiB,GAChB,IAAK,IAAIpqB,EAAI,EAAGo1K,EAAIhrJ,EAAM3xB,OAAQuH,EAAIo1K,EAAGp1K,IACvCqnG,EAAG58B,IAAIrgD,EAAMpqB,GAAIyI,QAGlB4+F,EAAG42C,QAAQ7zH,KAAWi9E,EAAG42C,QAAQ7zH,GAAS,KAAKtlB,KAAK2D,GAGjD02L,EAAO/0L,KAAKggB,KACdi9E,EAAGu3F,eAAgB,GAGvB,OAAOv3F,GAGT9oD,EAAIvmD,UAAU6yE,MAAQ,SAAUzgD,EAAO3hB,GACrC,IAAI4+F,EAAKvxG,KACT,SAASonE,IACPmqC,EAAGv8B,KAAK1gD,EAAO8yC,GACfz0D,EAAGvC,MAAMmhG,EAAIpmG,WAIf,OAFAi8D,EAAGz0D,GAAKA,EACR4+F,EAAG58B,IAAIrgD,EAAO8yC,GACPmqC,GAGT9oD,EAAIvmD,UAAU8yE,KAAO,SAAU1gD,EAAO3hB,GACpC,IAAI4+F,EAAKvxG,KAET,IAAKmL,UAAUxI,OAEb,OADA4uG,EAAG42C,QAAU/kJ,OAAOvB,OAAO,MACpB0vG,EAGT,GAAItvG,MAAMqQ,QAAQgiB,GAAQ,CACxB,IAAK,IAAIyuJ,EAAM,EAAGzD,EAAIhrJ,EAAM3xB,OAAQogL,EAAMzD,EAAGyD,IAC3CxxE,EAAGv8B,KAAK1gD,EAAMyuJ,GAAMpwK,GAEtB,OAAO4+F,EAGT,IASI1yC,EATAgkH,EAAMtxE,EAAG42C,QAAQ7zH,GACrB,IAAKuuJ,EACH,OAAOtxE,EAET,IAAK5+F,EAEH,OADA4+F,EAAG42C,QAAQ7zH,GAAS,KACbi9E,EAIT,IAAIrnG,EAAI24K,EAAIlgL,OACZ,MAAOuH,IAEL,GADA20D,EAAKgkH,EAAI34K,GACL20D,IAAOlsD,GAAMksD,EAAGlsD,KAAOA,EAAI,CAC7BkwK,EAAIlsK,OAAOzM,EAAG,GACd,MAGJ,OAAOqnG,GAGT9oD,EAAIvmD,UAAU+oE,MAAQ,SAAU32C,GAC9B,IAAIi9E,EAAKvxG,KAaL6iL,EAAMtxE,EAAG42C,QAAQ7zH,GACrB,GAAIuuJ,EAAK,CACPA,EAAMA,EAAIlgL,OAAS,EAAIyyL,EAAQvS,GAAOA,EAGtC,IAFA,IAAIvhK,EAAO8zK,EAAQjqL,UAAW,GAC1By8E,EAAO,sBAAyBtzD,EAAQ,IACnCpqB,EAAI,EAAGo1K,EAAIuD,EAAIlgL,OAAQuH,EAAIo1K,EAAGp1K,IACrC2zL,GAAwBhb,EAAI34K,GAAIqnG,EAAIjwF,EAAMiwF,EAAI3pB,GAGlD,OAAO2pB,GAMX,IAAIi0F,GAAiB,KAGrB,SAAS8D,GAAkB/3F,GACzB,IAAIg4F,EAAqB/D,GAEzB,OADAA,GAAiBj0F,EACV,WACLi0F,GAAiB+D,GAIrB,SAASC,GAAej4F,GACtB,IAAI5xG,EAAU4xG,EAAG7wG,SAGbP,EAASR,EAAQQ,OACrB,GAAIA,IAAWR,EAAQwkI,SAAU,CAC/B,MAAOhkI,EAAOO,SAASyjI,UAAYhkI,EAAOgyE,QACxChyE,EAASA,EAAOgyE,QAElBhyE,EAAOohI,UAAUvyH,KAAKuiG,GAGxBA,EAAGp/B,QAAUhyE,EACboxG,EAAG9wG,MAAQN,EAASA,EAAOM,MAAQ8wG,EAEnCA,EAAGgwB,UAAY,GACfhwB,EAAGjpB,MAAQ,GAEXipB,EAAGk4F,SAAW,KACdl4F,EAAGiyE,UAAY,KACfjyE,EAAGgyE,iBAAkB,EACrBhyE,EAAGq0F,YAAa,EAChBr0F,EAAGy1B,cAAe,EAClBz1B,EAAGw1B,mBAAoB,EAGzB,SAAS2iE,GAAgBjhJ,GACvBA,EAAIvmD,UAAUynM,QAAU,SAAU94G,EAAOw0G,GACvC,IAAI9zF,EAAKvxG,KACL4pM,EAASr4F,EAAGp6B,IACZ0yH,EAAYt4F,EAAGk2F,OACfqC,EAAwBR,GAAkB/3F,GAC9CA,EAAGk2F,OAAS52G,EAQV0gB,EAAGp6B,IALA0yH,EAKMt4F,EAAGw4F,UAAUF,EAAWh5G,GAHxB0gB,EAAGw4F,UAAUx4F,EAAGp6B,IAAK0Z,EAAOw0G,GAAW,GAKlDyE,IAEIF,IACFA,EAAO1yH,QAAU,MAEfq6B,EAAGp6B,MACLo6B,EAAGp6B,IAAID,QAAUq6B,GAGfA,EAAGtxG,QAAUsxG,EAAGp/B,SAAWo/B,EAAGtxG,SAAWsxG,EAAGp/B,QAAQs1H,SACtDl2F,EAAGp/B,QAAQgF,IAAMo6B,EAAGp6B,MAMxB1uB,EAAIvmD,UAAU+gK,aAAe,WAC3B,IAAI1xD,EAAKvxG,KACLuxG,EAAGk4F,UACLl4F,EAAGk4F,SAAShkG,UAIhBh9C,EAAIvmD,UAAUkjI,SAAW,WACvB,IAAI7zB,EAAKvxG,KACT,IAAIuxG,EAAGw1B,kBAAP,CAGA8+D,GAASt0F,EAAI,iBACbA,EAAGw1B,mBAAoB,EAEvB,IAAI5mI,EAASoxG,EAAGp/B,SACZhyE,GAAWA,EAAO4mI,mBAAsBx1B,EAAG7wG,SAASyjI,UACtDjjE,EAAO/gE,EAAOohI,UAAWhwB,GAGvBA,EAAGk4F,UACLl4F,EAAGk4F,SAAS/X,WAEd,IAAIxnL,EAAIqnG,EAAGy4F,UAAUrnM,OACrB,MAAOuH,IACLqnG,EAAGy4F,UAAU9/L,GAAGwnL,WAIdngF,EAAG04F,MAAM9P,QACX5oF,EAAG04F,MAAM9P,OAAOM,UAGlBlpF,EAAGy1B,cAAe,EAElBz1B,EAAGw4F,UAAUx4F,EAAGk2F,OAAQ,MAExB5B,GAASt0F,EAAI,aAEbA,EAAGv8B,OAECu8B,EAAGp6B,MACLo6B,EAAGp6B,IAAID,QAAU,MAGfq6B,EAAGtxG,SACLsxG,EAAGtxG,OAAOE,OAAS,QAKzB,SAAS+pM,GACP34F,EACA7iG,EACA22L,GAyBA,IAAI8E,EA2CJ,OAlEA54F,EAAGp6B,IAAMzoE,EACJ6iG,EAAG7wG,SAASvB,SACfoyG,EAAG7wG,SAASvB,OAASw6L,IAmBvBkM,GAASt0F,EAAI,eAsBX44F,EAAkB,WAChB54F,EAAGo4F,QAAQp4F,EAAGy2F,UAAW3C,IAO7B,IAAI+E,GAAQ74F,EAAI44F,EAAiBrkL,EAAM,CACrCukL,OAAQ,WACF94F,EAAGq0F,aAAer0F,EAAGy1B,cACvB6+D,GAASt0F,EAAI,mBAGhB,GACH8zF,GAAY,EAIK,MAAb9zF,EAAGtxG,SACLsxG,EAAGq0F,YAAa,EAChBC,GAASt0F,EAAI,YAERA,EAGT,SAASm0F,GACPn0F,EACA2zB,EACA3sD,EACAmvH,EACA4C,GAYA,IAAIC,EAAiB7C,EAAY1xL,KAAK0wD,YAClC8jI,EAAiBj5F,EAAGnrC,aACpBqkI,KACDF,IAAmBA,EAAetJ,SAClCuJ,IAAmBxW,IAAgBwW,EAAevJ,SAClDsJ,GAAkBh5F,EAAGnrC,aAAa86H,OAASqJ,EAAerJ,OACzDqJ,GAAkBh5F,EAAGnrC,aAAa86H,MAMlCwJ,KACFJ,GACA/4F,EAAG7wG,SAASinM,iBACZ8C,GAkBF,GAfAl5F,EAAG7wG,SAASqoL,aAAe2e,EAC3Bn2F,EAAGtxG,OAASynM,EAERn2F,EAAGk2F,SACLl2F,EAAGk2F,OAAOtnM,OAASunM,GAErBn2F,EAAG7wG,SAASinM,gBAAkB2C,EAK9B/4F,EAAG6J,OAASssF,EAAY1xL,KAAKwyD,OAASwrH,EACtCziF,EAAG02C,WAAa1vE,GAAay7G,EAGzB9uD,GAAa3zB,EAAG7wG,SAASysB,MAAO,CAClCotK,IAAgB,GAGhB,IAFA,IAAIptK,EAAQokF,EAAGoiD,OACXg3C,EAAWp5F,EAAG7wG,SAASkqM,WAAa,GAC/B1gM,EAAI,EAAGA,EAAIygM,EAAShoM,OAAQuH,IAAK,CACxC,IAAI5H,EAAMqoM,EAASzgM,GACf+yL,EAAc1rF,EAAG7wG,SAASysB,MAC9BA,EAAM7qB,GAAO06L,GAAa16L,EAAK26L,EAAa/3D,EAAW3zB,GAEzDgpF,IAAgB,GAEhBhpF,EAAG7wG,SAASwkI,UAAYA,EAI1B3sD,EAAYA,GAAay7G,EACzB,IAAImV,EAAe53F,EAAG7wG,SAASmnM,iBAC/Bt2F,EAAG7wG,SAASmnM,iBAAmBtvH,EAC/BwwH,GAAyBx3F,EAAIh5B,EAAW4wH,GAGpCuB,IACFn5F,EAAGlrC,OAASo6H,GAAa6J,EAAgB5C,EAAY3nM,SACrDwxG,EAAG0xD,gBAQP,SAAS4nC,GAAkBt5F,GACzB,MAAOA,IAAOA,EAAKA,EAAGp/B,SACpB,GAAIo/B,EAAGiyE,UAAa,OAAO,EAE7B,OAAO,EAGT,SAASuiB,GAAwBx0F,EAAIu5F,GACnC,GAAIA,GAEF,GADAv5F,EAAGgyE,iBAAkB,EACjBsnB,GAAiBt5F,GACnB,YAEG,GAAIA,EAAGgyE,gBACZ,OAEF,GAAIhyE,EAAGiyE,WAA8B,OAAjBjyE,EAAGiyE,UAAoB,CACzCjyE,EAAGiyE,WAAY,EACf,IAAK,IAAIt5K,EAAI,EAAGA,EAAIqnG,EAAGgwB,UAAU5+H,OAAQuH,IACvC67L,GAAuBx0F,EAAGgwB,UAAUr3H,IAEtC27L,GAASt0F,EAAI,cAIjB,SAASy0F,GAA0Bz0F,EAAIu5F,GACrC,KAAIA,IACFv5F,EAAGgyE,iBAAkB,GACjBsnB,GAAiBt5F,OAIlBA,EAAGiyE,UAAW,CACjBjyE,EAAGiyE,WAAY,EACf,IAAK,IAAIt5K,EAAI,EAAGA,EAAIqnG,EAAGgwB,UAAU5+H,OAAQuH,IACvC87L,GAAyBz0F,EAAGgwB,UAAUr3H,IAExC27L,GAASt0F,EAAI,gBAIjB,SAASs0F,GAAUt0F,EAAI7xG,GAErBi5L,KACA,IAAIt7B,EAAW9rD,EAAG7wG,SAAShB,GACvBkoF,EAAOloF,EAAO,QAClB,GAAI29J,EACF,IAAK,IAAInzJ,EAAI,EAAGK,EAAI8yJ,EAAS16J,OAAQuH,EAAIK,EAAGL,IAC1C2zL,GAAwBxgC,EAASnzJ,GAAIqnG,EAAI,KAAMA,EAAI3pB,GAGnD2pB,EAAGu3F,eACLv3F,EAAGtmC,MAAM,QAAUvrE,GAErBk5L,KAKF,IAEI3kK,GAAQ,GACR82K,GAAoB,GACpB70L,GAAM,GAEN80L,IAAU,EACVC,IAAW,EACXxoM,GAAQ,EAKZ,SAASyoM,KACPzoM,GAAQwxB,GAAMtxB,OAASooM,GAAkBpoM,OAAS,EAClDuT,GAAM,GAIN80L,GAAUC,IAAW,EAQvB,IAAIE,GAAwB,EAGxBC,GAASl1J,KAAKthB,IAQlB,GAAI0hJ,IAAcz2E,GAAM,CACtB,IAAIisF,GAAcvtK,OAAOutK,YAEvBA,IAC2B,oBAApBA,GAAYl3J,KACnBw2K,KAAWtvL,SAAS+lB,YAAY,SAASwpK,YAMzCD,GAAS,WAAc,OAAOtf,GAAYl3J,QAO9C,SAAS02K,KAGP,IAAIC,EAAS30L,EAcb,IAhBAu0L,GAAwBC,KACxBH,IAAW,EAWXh3K,GAAMyH,MAAK,SAAU5Y,EAAGC,GAAK,OAAOD,EAAElM,GAAKmM,EAAEnM,MAIxCnU,GAAQ,EAAGA,GAAQwxB,GAAMtxB,OAAQF,KACpC8oM,EAAUt3K,GAAMxxB,IACZ8oM,EAAQlB,QACVkB,EAAQlB,SAEVzzL,EAAK20L,EAAQ30L,GACbV,GAAIU,GAAM,KACV20L,EAAQp3K,MAmBV,IAAIq3K,EAAiBT,GAAkBr5L,QACnC+5L,EAAex3K,GAAMviB,QAEzBw5L,KAGAQ,GAAmBF,GACnBG,GAAiBF,GAIbxV,IAAY5tI,EAAO4tI,UACrBA,GAAS3yJ,KAAK,SAIlB,SAASqoK,GAAkB13K,GACzB,IAAI/pB,EAAI+pB,EAAMtxB,OACd,MAAOuH,IAAK,CACV,IAAIqhM,EAAUt3K,EAAM/pB,GAChBqnG,EAAKg6F,EAAQh6F,GACbA,EAAGk4F,WAAa8B,GAAWh6F,EAAGq0F,aAAer0F,EAAGy1B,cAClD6+D,GAASt0F,EAAI,YASnB,SAASu0F,GAAyBv0F,GAGhCA,EAAGiyE,WAAY,EACfunB,GAAkB/7L,KAAKuiG,GAGzB,SAASm6F,GAAoBz3K,GAC3B,IAAK,IAAI/pB,EAAI,EAAGA,EAAI+pB,EAAMtxB,OAAQuH,IAChC+pB,EAAM/pB,GAAGs5K,WAAY,EACrBuiB,GAAuB9xK,EAAM/pB,IAAI,GASrC,SAAS0hM,GAAcL,GACrB,IAAI30L,EAAK20L,EAAQ30L,GACjB,GAAe,MAAXV,GAAIU,GAAa,CAEnB,GADAV,GAAIU,IAAM,EACLq0L,GAEE,CAGL,IAAI/gM,EAAI+pB,GAAMtxB,OAAS,EACvB,MAAOuH,EAAIzH,IAASwxB,GAAM/pB,GAAG0M,GAAK20L,EAAQ30L,GACxC1M,IAEF+pB,GAAMtd,OAAOzM,EAAI,EAAG,EAAGqhM,QARvBt3K,GAAMjlB,KAAKu8L,GAWRP,KACHA,IAAU,EAMVnhL,GAASyhL,MASf,IAAIO,GAAQ,EAORzB,GAAU,SACZ74F,EACAu6F,EACAjtI,EACAl/D,EACAosM,GAEA/rM,KAAKuxG,GAAKA,EACNw6F,IACFx6F,EAAGk4F,SAAWzpM,MAEhBuxG,EAAGy4F,UAAUh7L,KAAKhP,MAEdL,GACFK,KAAK6xJ,OAASlyJ,EAAQkyJ,KACtB7xJ,KAAKgsM,OAASrsM,EAAQqsM,KACtBhsM,KAAKiyG,OAAStyG,EAAQsyG,KACtBjyG,KAAKuoM,OAAS5oM,EAAQ4oM,KACtBvoM,KAAKqqM,OAAS1qM,EAAQ0qM,QAEtBrqM,KAAK6xJ,KAAO7xJ,KAAKgsM,KAAOhsM,KAAKiyG,KAAOjyG,KAAKuoM,MAAO,EAElDvoM,KAAK6+D,GAAKA,EACV7+D,KAAK4W,KAAOi1L,GACZ7rM,KAAKg2E,QAAS,EACdh2E,KAAKisM,MAAQjsM,KAAKiyG,KAClBjyG,KAAKksM,KAAO,GACZlsM,KAAKmsM,QAAU,GACfnsM,KAAKosM,OAAS,IAAIlU,GAClBl4L,KAAKqsM,UAAY,IAAInU,GACrBl4L,KAAKqtK,WAED,GAEmB,oBAAZy+B,EACT9rM,KAAKia,OAAS6xL,GAEd9rM,KAAKia,OAASuqK,EAAUsnB,GACnB9rM,KAAKia,SACRja,KAAKia,OAAS6L,IASlB9lB,KAAKqC,MAAQrC,KAAKiyG,UACd9vG,EACAnC,KAAK0G,OAMX0jM,GAAQloM,UAAUwE,IAAM,WAEtB,IAAIrE,EADJs2L,GAAW34L,MAEX,IAAIuxG,EAAKvxG,KAAKuxG,GACd,IACElvG,EAAQrC,KAAKia,OAAO5Z,KAAKkxG,EAAIA,GAC7B,MAAO5xE,IACP,IAAI3/B,KAAKgsM,KAGP,MAAMrsK,GAFN+9J,GAAY/9J,GAAG4xE,EAAK,uBAA2BvxG,KAAKqtK,WAAc,KAJtE,QAWMrtK,KAAK6xJ,MACP2sC,GAASn8L,GAEXu2L,KACA54L,KAAKssM,cAEP,OAAOjqM,GAMT+nM,GAAQloM,UAAUu2L,OAAS,SAAiB4B,GAC1C,IAAIzjL,EAAKyjL,EAAIzjL,GACR5W,KAAKqsM,UAAUn2L,IAAIU,KACtB5W,KAAKqsM,UAAU9rM,IAAIqW,GACnB5W,KAAKmsM,QAAQn9L,KAAKqrL,GACbr6L,KAAKosM,OAAOl2L,IAAIU,IACnByjL,EAAIhC,OAAOr4L,QAQjBoqM,GAAQloM,UAAUoqM,YAAc,WAC9B,IAAIpiM,EAAIlK,KAAKksM,KAAKvpM,OAClB,MAAOuH,IAAK,CACV,IAAImwL,EAAMr6L,KAAKksM,KAAKhiM,GACflK,KAAKqsM,UAAUn2L,IAAImkL,EAAIzjL,KAC1ByjL,EAAI9B,UAAUv4L,MAGlB,IAAIusM,EAAMvsM,KAAKosM,OACfpsM,KAAKosM,OAASpsM,KAAKqsM,UACnBrsM,KAAKqsM,UAAYE,EACjBvsM,KAAKqsM,UAAUt2L,QACfw2L,EAAMvsM,KAAKksM,KACXlsM,KAAKksM,KAAOlsM,KAAKmsM,QACjBnsM,KAAKmsM,QAAUI,EACfvsM,KAAKmsM,QAAQxpM,OAAS,GAOxBynM,GAAQloM,UAAUujG,OAAS,WAErBzlG,KAAKiyG,KACPjyG,KAAKisM,OAAQ,EACJjsM,KAAKuoM,KACdvoM,KAAKm0B,MAELy3K,GAAa5rM,OAQjBoqM,GAAQloM,UAAUiyB,IAAM,WACtB,GAAIn0B,KAAKg2E,OAAQ,CACf,IAAI3zE,EAAQrC,KAAK0G,MACjB,GACErE,IAAUrC,KAAKqC,OAIfU,EAASV,IACTrC,KAAK6xJ,KACL,CAEA,IAAI/9E,EAAW9zE,KAAKqC,MAEpB,GADArC,KAAKqC,MAAQA,EACTrC,KAAKgsM,KAAM,CACb,IAAIpkH,EAAO,yBAA6B5nF,KAAKqtK,WAAc,IAC3DwwB,GAAwB79L,KAAK6+D,GAAI7+D,KAAKuxG,GAAI,CAAClvG,EAAOyxE,GAAW9zE,KAAKuxG,GAAI3pB,QAEtE5nF,KAAK6+D,GAAGx+D,KAAKL,KAAKuxG,GAAIlvG,EAAOyxE,MAUrCs2H,GAAQloM,UAAUsqM,SAAW,WAC3BxsM,KAAKqC,MAAQrC,KAAK0G,MAClB1G,KAAKisM,OAAQ,GAMf7B,GAAQloM,UAAUs2L,OAAS,WACzB,IAAItuL,EAAIlK,KAAKksM,KAAKvpM,OAClB,MAAOuH,IACLlK,KAAKksM,KAAKhiM,GAAGsuL,UAOjB4R,GAAQloM,UAAUwvL,SAAW,WAC3B,GAAI1xL,KAAKg2E,OAAQ,CAIVh2E,KAAKuxG,GAAGw1B,mBACX7lE,EAAOlhE,KAAKuxG,GAAGy4F,UAAWhqM,MAE5B,IAAIkK,EAAIlK,KAAKksM,KAAKvpM,OAClB,MAAOuH,IACLlK,KAAKksM,KAAKhiM,GAAGquL,UAAUv4L,MAEzBA,KAAKg2E,QAAS,IAMlB,IAAIy2H,GAA2B,CAC7B9yL,YAAY,EACZvX,cAAc,EACdsE,IAAKof,EACLhe,IAAKge,GAGP,SAASw7K,GAAOh1L,EAAQogM,EAAWpqM,GACjCmqM,GAAyB/lM,IAAM,WAC7B,OAAO1G,KAAK0sM,GAAWpqM,IAEzBmqM,GAAyB3kM,IAAM,SAAsB6mB,GACnD3uB,KAAK0sM,GAAWpqM,GAAOqsB,GAEzBvrB,OAAOtB,eAAewK,EAAQhK,EAAKmqM,IAGrC,SAASE,GAAWp7F,GAClBA,EAAGy4F,UAAY,GACf,IAAI9rB,EAAO3sE,EAAG7wG,SACVw9K,EAAK/wJ,OAASy/K,GAAUr7F,EAAI2sE,EAAK/wJ,OACjC+wJ,EAAKljK,SAAW6xL,GAAYt7F,EAAI2sE,EAAKljK,SACrCkjK,EAAKloK,KACP82L,GAASv7F,GAETxnF,GAAQwnF,EAAG04F,MAAQ,IAAI,GAErB/rB,EAAK3xG,UAAYwgI,GAAax7F,EAAI2sE,EAAK3xG,UACvC2xG,EAAKpzG,OAASozG,EAAKpzG,QAAU6sH,IAC/BqV,GAAUz7F,EAAI2sE,EAAKpzG,OAIvB,SAAS8hI,GAAWr7F,EAAI07F,GACtB,IAAI/nE,EAAY3zB,EAAG7wG,SAASwkI,WAAa,GACrC/3G,EAAQokF,EAAGoiD,OAAS,GAGpBrpJ,EAAOinG,EAAG7wG,SAASkqM,UAAY,GAC/BsC,GAAU37F,EAAGp/B,QAEZ+6H,GACH3S,IAAgB,GAElB,IAAIiI,EAAO,SAAWlgM,GACpBgI,EAAK0E,KAAK1M,GACV,IAAID,EAAQ26L,GAAa16L,EAAK2qM,EAAc/nE,EAAW3zB,GAuBrDupF,GAAkB3tK,EAAO7qB,EAAKD,GAK1BC,KAAOivG,GACX+vF,GAAM/vF,EAAI,SAAUjvG,IAIxB,IAAK,IAAIA,KAAO2qM,EAAczK,EAAMlgM,GACpCi4L,IAAgB,GAGlB,SAASuS,GAAUv7F,GACjB,IAAIv7F,EAAOu7F,EAAG7wG,SAASsV,KACvBA,EAAOu7F,EAAG04F,MAAwB,oBAATj0L,EACrBm3L,GAAQn3L,EAAMu7F,GACdv7F,GAAQ,GACPgwC,EAAchwC,KACjBA,EAAO,IAQT,IAAI1L,EAAOlH,OAAOkH,KAAK0L,GACnBmX,EAAQokF,EAAG7wG,SAASysB,MAEpBjjB,GADUqnG,EAAG7wG,SAASsa,QAClB1Q,EAAK3H,QACb,MAAOuH,IAAK,CACV,IAAI5H,EAAMgI,EAAKJ,GACXyU,EAQAwO,GAASxpB,EAAOwpB,EAAO7qB,IAMfy0L,EAAWz0L,IACrBg/L,GAAM/vF,EAAI,QAASjvG,GAIvBynB,GAAQ/T,GAAM,GAGhB,SAASm3L,GAASn3L,EAAMu7F,GAEtBonF,KACA,IACE,OAAO3iL,EAAK3V,KAAKkxG,EAAIA,GACrB,MAAO5xE,IAEP,OADA+9J,GAAY/9J,GAAG4xE,EAAI,UACZ,GAJT,QAMEqnF,MAIJ,IAAIwU,GAAyB,CAAEn7F,MAAM,GAErC,SAAS86F,GAAcx7F,EAAIhlC,GAEzB,IAAI8gI,EAAW97F,EAAG+7F,kBAAoBlqM,OAAOvB,OAAO,MAEhD0rM,EAAQ1V,KAEZ,IAAK,IAAIv1L,KAAOiqE,EAAU,CACxB,IAAIihI,EAAUjhI,EAASjqE,GACnB2X,EAA4B,oBAAZuzL,EAAyBA,EAAUA,EAAQ9mM,IAC3DiY,EAOC4uL,IAEHF,EAAS/qM,GAAO,IAAI8nM,GAClB74F,EACAt3F,GAAU6L,EACVA,EACAsnL,KAOE9qM,KAAOivG,GACXk8F,GAAel8F,EAAIjvG,EAAKkrM,IAa9B,SAASC,GACPnhM,EACAhK,EACAkrM,GAEA,IAAIE,GAAe7V,KACI,oBAAZ2V,GACTf,GAAyB/lM,IAAMgnM,EAC3BC,GAAqBrrM,GACrBsrM,GAAoBJ,GACxBf,GAAyB3kM,IAAMge,IAE/B2mL,GAAyB/lM,IAAM8mM,EAAQ9mM,IACnCgnM,IAAiC,IAAlBF,EAAQ5pI,MACrB+pI,GAAqBrrM,GACrBsrM,GAAoBJ,EAAQ9mM,KAC9Bof,EACJ2mL,GAAyB3kM,IAAM0lM,EAAQ1lM,KAAOge,GAWhD1iB,OAAOtB,eAAewK,EAAQhK,EAAKmqM,IAGrC,SAASkB,GAAsBrrM,GAC7B,OAAO,WACL,IAAIipM,EAAUvrM,KAAKstM,mBAAqBttM,KAAKstM,kBAAkBhrM,GAC/D,GAAIipM,EAOF,OANIA,EAAQU,OACVV,EAAQiB,WAENrU,GAAI7rL,QACNi/L,EAAQ/S,SAEH+S,EAAQlpM,OAKrB,SAASurM,GAAoBj7L,GAC3B,OAAO,WACL,OAAOA,EAAGtS,KAAKL,KAAMA,OAIzB,SAAS6sM,GAAat7F,EAAIv2F,GACZu2F,EAAG7wG,SAASysB,MACxB,IAAK,IAAI7qB,KAAO0Y,EAsBdu2F,EAAGjvG,GAA+B,oBAAjB0Y,EAAQ1Y,GAAsBwjB,EAAOxY,EAAK0N,EAAQ1Y,GAAMivG,GAI7E,SAASy7F,GAAWz7F,EAAIzmC,GACtB,IAAK,IAAIxoE,KAAOwoE,EAAO,CACrB,IAAIn2C,EAAUm2C,EAAMxoE,GACpB,GAAIL,MAAMqQ,QAAQqiB,GAChB,IAAK,IAAIzqB,EAAI,EAAGA,EAAIyqB,EAAQhyB,OAAQuH,IAClC2jM,GAAct8F,EAAIjvG,EAAKqyB,EAAQzqB,SAGjC2jM,GAAct8F,EAAIjvG,EAAKqyB,IAK7B,SAASk5K,GACPt8F,EACAu6F,EACAn3K,EACAh1B,GASA,OAPIqmD,EAAcrxB,KAChBh1B,EAAUg1B,EACVA,EAAUA,EAAQA,SAEG,kBAAZA,IACTA,EAAU48E,EAAG58E,IAER48E,EAAGw+B,OAAO+7D,EAASn3K,EAASh1B,GAGrC,SAASmuM,GAAYrlJ,GAInB,IAAIslJ,EAAU,CACdA,IAAc,WAAc,OAAO/tM,KAAKiqM,QACpC+D,EAAW,CACfA,IAAe,WAAc,OAAOhuM,KAAK2zJ,SAazCvwJ,OAAOtB,eAAe2mD,EAAIvmD,UAAW,QAAS6rM,GAC9C3qM,OAAOtB,eAAe2mD,EAAIvmD,UAAW,SAAU8rM,GAE/CvlJ,EAAIvmD,UAAUurC,KAAO3lC,GACrB2gD,EAAIvmD,UAAU6xE,QAAUonH,GAExB1yI,EAAIvmD,UAAU6tI,OAAS,SACrB+7D,EACAjtI,EACAl/D,GAEA,IAAI4xG,EAAKvxG,KACT,GAAIgmD,EAAc6Y,GAChB,OAAOgvI,GAAct8F,EAAIu6F,EAASjtI,EAAIl/D,GAExCA,EAAUA,GAAW,GACrBA,EAAQqsM,MAAO,EACf,IAAIT,EAAU,IAAInB,GAAQ74F,EAAIu6F,EAASjtI,EAAIl/D,GAC3C,GAAIA,EAAQ8kI,UAAW,CACrB,IAAI78C,EAAO,mCAAuC2jH,EAAQl+B,WAAc,IACxEsrB,KACAkF,GAAwBh/H,EAAI0yC,EAAI,CAACg6F,EAAQlpM,OAAQkvG,EAAI3pB,GACrDgxG,KAEF,OAAO,WACL2S,EAAQ7Z,aAOd,IAAIuc,GAAQ,EAEZ,SAASC,GAAWzlJ,GAClBA,EAAIvmD,UAAUisM,MAAQ,SAAUxuM,GAC9B,IAAI4xG,EAAKvxG,KAETuxG,EAAG68F,KAAOH,KAWV18F,EAAGi4D,QAAS,EAER7pK,GAAWA,EAAQ8mM,aAIrB4H,GAAsB98F,EAAI5xG,GAE1B4xG,EAAG7wG,SAAW67L,GACZ+J,GAA0B/0F,EAAG/mG,aAC7B7K,GAAW,GACX4xG,GAOFA,EAAGyxF,aAAezxF,EAGpBA,EAAG+8F,MAAQ/8F,EACXi4F,GAAcj4F,GACds3F,GAAWt3F,GACXi2F,GAAWj2F,GACXs0F,GAASt0F,EAAI,gBACb8uF,GAAe9uF,GACfo7F,GAAUp7F,GACV4uF,GAAY5uF,GACZs0F,GAASt0F,EAAI,WASTA,EAAG7wG,SAASgO,IACd6iG,EAAG6+B,OAAO7+B,EAAG7wG,SAASgO,KAK5B,SAAS2/L,GAAuB98F,EAAI5xG,GAClC,IAAIu+K,EAAO3sE,EAAG7wG,SAAW0C,OAAOvB,OAAO0vG,EAAG/mG,YAAY7K,SAElD+nM,EAAc/nM,EAAQopL,aAC1B7K,EAAK/9K,OAASR,EAAQQ,OACtB+9K,EAAK6K,aAAe2e,EAEpB,IAAI6G,EAAwB7G,EAAY3O,iBACxC7a,EAAKh5C,UAAYqpE,EAAsBrpE,UACvCg5C,EAAK2pB,iBAAmB0G,EAAsBh2H,UAC9C2lG,EAAKypB,gBAAkB4G,EAAsB9kI,SAC7Cy0G,EAAKswB,cAAgBD,EAAsB36L,IAEvCjU,EAAQR,SACV++K,EAAK/+K,OAASQ,EAAQR,OACtB++K,EAAK9+K,gBAAkBO,EAAQP,iBAInC,SAASknM,GAA2BrO,GAClC,IAAIt4L,EAAUs4L,EAAKt4L,QACnB,GAAIs4L,EAAKwW,MAAO,CACd,IAAIC,EAAepI,GAA0BrO,EAAKwW,OAC9CE,EAAqB1W,EAAKyW,aAC9B,GAAIA,IAAiBC,EAAoB,CAGvC1W,EAAKyW,aAAeA,EAEpB,IAAIE,EAAkBC,GAAuB5W,GAEzC2W,GACFnlJ,EAAOwuI,EAAK6W,cAAeF,GAE7BjvM,EAAUs4L,EAAKt4L,QAAU48L,GAAamS,EAAczW,EAAK6W,eACrDnvM,EAAQyK,OACVzK,EAAQqpD,WAAWrpD,EAAQyK,MAAQ6tL,IAIzC,OAAOt4L,EAGT,SAASkvM,GAAwB5W,GAC/B,IAAI8W,EACAC,EAAS/W,EAAKt4L,QACdsvM,EAAShX,EAAKiX,cAClB,IAAK,IAAI5sM,KAAO0sM,EACVA,EAAO1sM,KAAS2sM,EAAO3sM,KACpBysM,IAAYA,EAAW,IAC5BA,EAASzsM,GAAO0sM,EAAO1sM,IAG3B,OAAOysM,EAGT,SAAStmJ,GAAK9oD,GAMZK,KAAKmuM,MAAMxuM,GAWb,SAASwvM,GAAS1mJ,GAChBA,EAAIkB,IAAM,SAAUD,GAClB,IAAI0lJ,EAAoBpvM,KAAKqvM,oBAAsBrvM,KAAKqvM,kBAAoB,IAC5E,GAAID,EAAiBvgM,QAAQ66C,IAAW,EACtC,OAAO1pD,KAIT,IAAIshB,EAAO8zK,EAAQjqL,UAAW,GAQ9B,OAPAmW,EAAK2gK,QAAQjiL,MACiB,oBAAnB0pD,EAAOP,QAChBO,EAAOP,QAAQ/4C,MAAMs5C,EAAQpoC,GACF,oBAAXooC,GAChBA,EAAOt5C,MAAM,KAAMkR,GAErB8tL,EAAiBpgM,KAAK06C,GACf1pD,MAMX,SAASsvM,GAAa7mJ,GACpBA,EAAIwd,MAAQ,SAAUA,GAEpB,OADAjmE,KAAKL,QAAU48L,GAAav8L,KAAKL,QAASsmE,GACnCjmE,MAMX,SAASuvM,GAAY9mJ,GAMnBA,EAAIymI,IAAM,EACV,IAAIA,EAAM,EAKVzmI,EAAIgB,OAAS,SAAUqlJ,GACrBA,EAAgBA,GAAiB,GACjC,IAAIpqJ,EAAQ1kD,KACRwvM,EAAU9qJ,EAAMwqI,IAChBugB,EAAcX,EAAcY,QAAUZ,EAAcY,MAAQ,IAChE,GAAID,EAAYD,GACd,OAAOC,EAAYD,GAGrB,IAAIplM,EAAO0kM,EAAc1kM,MAAQs6C,EAAM/kD,QAAQyK,KAK/C,IAAIulM,EAAM,SAAuBhwM,GAC/BK,KAAKmuM,MAAMxuM,IA6Cb,OA3CAgwM,EAAIztM,UAAYkB,OAAOvB,OAAO6iD,EAAMxiD,WACpCytM,EAAIztM,UAAUsI,YAAcmlM,EAC5BA,EAAIzgB,IAAMA,IACVygB,EAAIhwM,QAAU48L,GACZ73I,EAAM/kD,QACNmvM,GAEFa,EAAI,SAAWjrJ,EAKXirJ,EAAIhwM,QAAQwtB,OACdyiL,GAAYD,GAEVA,EAAIhwM,QAAQ4sE,UACdsjI,GAAeF,GAIjBA,EAAIlmJ,OAAS/E,EAAM+E,OACnBkmJ,EAAI1pI,MAAQvhB,EAAMuhB,MAClB0pI,EAAIhmJ,IAAMjF,EAAMiF,IAIhBksI,EAAY3oL,SAAQ,SAAUkI,GAC5Bu6L,EAAIv6L,GAAQsvC,EAAMtvC,MAGhBhL,IACFulM,EAAIhwM,QAAQqpD,WAAW5+C,GAAQulM,GAMjCA,EAAIjB,aAAehqJ,EAAM/kD,QACzBgwM,EAAIb,cAAgBA,EACpBa,EAAIT,cAAgBzlJ,EAAO,GAAIkmJ,EAAIhwM,SAGnC8vM,EAAYD,GAAWG,EAChBA,GAIX,SAASC,GAAaE,GACpB,IAAI3iL,EAAQ2iL,EAAKnwM,QAAQwtB,MACzB,IAAK,IAAI7qB,KAAO6qB,EACdm0K,GAAMwO,EAAK5tM,UAAW,SAAUI,GAIpC,SAASutM,GAAgBC,GACvB,IAAIvjI,EAAWujI,EAAKnwM,QAAQ4sE,SAC5B,IAAK,IAAIjqE,KAAOiqE,EACdkhI,GAAeqC,EAAK5tM,UAAWI,EAAKiqE,EAASjqE,IAMjD,SAASytM,GAAoBtnJ,GAI3BotI,EAAY3oL,SAAQ,SAAUkI,GAC5BqzC,EAAIrzC,GAAQ,SACVwB,EACAo5L,GAEA,OAAKA,GAOU,cAAT56L,GAAwB4wC,EAAcgqJ,KACxCA,EAAW5lM,KAAO4lM,EAAW5lM,MAAQwM,EACrCo5L,EAAahwM,KAAKL,QAAQ68L,MAAM/yI,OAAOumJ,IAE5B,cAAT56L,GAA8C,oBAAf46L,IACjCA,EAAa,CAAE1iM,KAAM0iM,EAAYvqG,OAAQuqG,IAE3ChwM,KAAKL,QAAQyV,EAAO,KAAKwB,GAAMo5L,EACxBA,GAdAhwM,KAAKL,QAAQyV,EAAO,KAAKwB,OA0BxC,SAASq5L,GAAkB/xB,GACzB,OAAOA,IAASA,EAAK+Z,KAAKt4L,QAAQyK,MAAQ8zK,EAAKtqK,KAGjD,SAASgqD,GAAS73B,EAAS37B,GACzB,OAAInI,MAAMqQ,QAAQyzB,GACTA,EAAQl3B,QAAQzE,IAAS,EACJ,kBAAZ27B,EACTA,EAAQ/mB,MAAM,KAAKnQ,QAAQzE,IAAS,IAClC0c,EAASif,IACXA,EAAQzxB,KAAKlK,GAMxB,SAAS8lM,GAAYC,EAAmBrgM,GACtC,IAAI8zD,EAAQusI,EAAkBvsI,MAC1Bt5D,EAAO6lM,EAAkB7lM,KACzBm9L,EAAS0I,EAAkB1I,OAC/B,IAAK,IAAInlM,KAAOshE,EAAO,CACrB,IAAIhuD,EAAQguD,EAAMthE,GAClB,GAAIsT,EAAO,CACT,IAAIxL,EAAOwL,EAAMxL,KACbA,IAAS0F,EAAO1F,IAClBgmM,GAAgBxsI,EAAOthE,EAAKgI,EAAMm9L,KAM1C,SAAS2I,GACPxsI,EACAthE,EACAgI,EACAojB,GAEA,IAAI9X,EAAQguD,EAAMthE,IACdsT,GAAW8X,GAAW9X,EAAMhC,MAAQ8Z,EAAQ9Z,KAC9CgC,EAAMouK,kBAAkB5+C,WAE1BxhE,EAAMthE,GAAO,KACb4+D,EAAO52D,EAAMhI,GAjNf4rM,GAAUzlJ,IACVqlJ,GAAWrlJ,IACX2gJ,GAAY3gJ,IACZihJ,GAAejhJ,IACfs/I,GAAYt/I,IAgNZ,IAAI4nJ,GAAe,CAAC1uM,OAAQke,OAAQ5d,OAEhCquM,GAAY,CACdlmM,KAAM,aACN+5H,UAAU,EAEVh3G,MAAO,CACLojL,QAASF,GACTG,QAASH,GACT/+L,IAAK,CAAC3P,OAAQ+kB,SAGhB1L,QAAS,CACPy1L,WAAY,WACV,IAAI1kH,EAAM/rF,KACN4jE,EAAQmoB,EAAInoB,MACZt5D,EAAOyhF,EAAIzhF,KACXomM,EAAe3kH,EAAI2kH,aACnBC,EAAa5kH,EAAI4kH,WACrB,GAAID,EAAc,CAChB,IAAI98L,EAAM88L,EAAa98L,IACnBowK,EAAoB0sB,EAAa1sB,kBACjC+U,EAAmB2X,EAAa3X,iBACpCn1H,EAAM+sI,GAAc,CAClBvmM,KAAM6lM,GAAiBlX,GACvBnlL,IAAKA,EACLowK,kBAAmBA,GAErB15K,EAAK0E,KAAK2hM,GAEN3wM,KAAKsR,KAAOhH,EAAK3H,OAASg8B,SAAS3+B,KAAKsR,MAC1C8+L,GAAgBxsI,EAAOt5D,EAAK,GAAIA,EAAMtK,KAAKynM,QAE7CznM,KAAK0wM,aAAe,QAK1BtlI,QAAS,WACPprE,KAAK4jE,MAAQxgE,OAAOvB,OAAO,MAC3B7B,KAAKsK,KAAO,IAGdg6H,UAAW,WACT,IAAK,IAAIhiI,KAAOtC,KAAK4jE,MACnBwsI,GAAgBpwM,KAAK4jE,MAAOthE,EAAKtC,KAAKsK,OAI1C0yE,QAAS,WACP,IAAI0qG,EAAS1nL,KAEbA,KAAKywM,aACLzwM,KAAK+vI,OAAO,WAAW,SAAUphH,GAC/BuhL,GAAWxoB,GAAQ,SAAUt9K,GAAQ,OAAOwzD,GAAQjvC,EAAKvkB,SAE3DpK,KAAK+vI,OAAO,WAAW,SAAUphH,GAC/BuhL,GAAWxoB,GAAQ,SAAUt9K,GAAQ,OAAQwzD,GAAQjvC,EAAKvkB,UAI9D8xF,QAAS,WACPl8F,KAAKywM,cAGPtxM,OAAQ,WACN,IAAIonE,EAAOvmE,KAAKqmE,OAAOrB,QACnB6rB,EAAQ+3G,GAAuBriI,GAC/BwyH,EAAmBloG,GAASA,EAAMkoG,iBACtC,GAAIA,EAAkB,CAEpB,IAAI3uL,EAAO6lM,GAAiBlX,GACxBhtG,EAAM/rF,KACNuwM,EAAUxkH,EAAIwkH,QACdC,EAAUzkH,EAAIykH,QAClB,GAEGD,KAAanmM,IAASwzD,GAAQ2yI,EAASnmM,KAEvComM,GAAWpmM,GAAQwzD,GAAQ4yI,EAASpmM,GAErC,OAAOymF,EAGT,IAAI+/G,EAAQ5wM,KACR4jE,EAAQgtI,EAAMhtI,MACdt5D,EAAOsmM,EAAMtmM,KACbhI,EAAmB,MAAbuuF,EAAMvuF,IAGZy2L,EAAiBd,KAAK/I,KAAO6J,EAAiBnlL,IAAO,KAAQmlL,EAAiBnlL,IAAQ,IACtFi9E,EAAMvuF,IACNshE,EAAMthE,IACRuuF,EAAMmzF,kBAAoBpgH,EAAMthE,GAAK0hL,kBAErC9iH,EAAO52D,EAAMhI,GACbgI,EAAK0E,KAAK1M,KAGVtC,KAAK0wM,aAAe7/G,EACpB7wF,KAAK2wM,WAAaruM,GAGpBuuF,EAAM76E,KAAKstK,WAAY,EAEzB,OAAOzyF,GAAUtqB,GAAQA,EAAK,KAI9BsqI,GAAoB,CACtBP,UAAWA,IAKb,SAASQ,GAAeroJ,GAEtB,IAAIsoJ,EAAY,CAChBA,IAAgB,WAAc,OAAO1oJ,IAQrCjlD,OAAOtB,eAAe2mD,EAAK,SAAUsoJ,GAKrCtoJ,EAAI3O,KAAO,CACTtI,KAAMA,GACNiY,OAAQA,EACR8yI,aAAcA,GACdtT,eAAgB6R,IAGlBryI,EAAI3gD,IAAMA,GACV2gD,EAAItJ,OAASg8I,GACb1yI,EAAI5+B,SAAWA,GAGf4+B,EAAIuoJ,WAAa,SAAUhpL,GAEzB,OADA+B,GAAQ/B,GACDA,GAGTygC,EAAI9oD,QAAUyD,OAAOvB,OAAO,MAC5Bg0L,EAAY3oL,SAAQ,SAAUkI,GAC5BqzC,EAAI9oD,QAAQyV,EAAO,KAAOhS,OAAOvB,OAAO,SAK1C4mD,EAAI9oD,QAAQ68L,MAAQ/zI,EAEpBgB,EAAOhB,EAAI9oD,QAAQqpD,WAAY6nJ,IAE/B1B,GAAQ1mJ,GACR6mJ,GAAY7mJ,GACZ8mJ,GAAW9mJ,GACXsnJ,GAAmBtnJ,GAGrBqoJ,GAAcroJ,IAEdrlD,OAAOtB,eAAe2mD,GAAIvmD,UAAW,YAAa,CAChDwE,IAAKmxL,KAGPz0L,OAAOtB,eAAe2mD,GAAIvmD,UAAW,cAAe,CAClDwE,IAAK,WAEH,OAAO1G,KAAKC,QAAUD,KAAKC,OAAOC,cAKtCkD,OAAOtB,eAAe2mD,GAAK,0BAA2B,CACpDpmD,MAAOmiM,KAGT/7I,GAAI5pC,QAAU,SAMd,IAAI03K,GAAiBjC,EAAQ,eAGzB2c,GAAc3c,EAAQ,yCACtBqC,GAAc,SAAU/iL,EAAKwB,EAAMgsD,GACrC,MACY,UAATA,GAAoB6vI,GAAYr9L,IAAkB,WAATwB,GAChC,aAATgsD,GAA+B,WAARxtD,GACd,YAATwtD,GAA8B,UAARxtD,GACb,UAATwtD,GAA4B,UAARxtD,GAIrBs9L,GAAmB5c,EAAQ,wCAE3B6c,GAA8B7c,EAAQ,sCAEtC8c,GAAyB,SAAU9uM,EAAKD,GAC1C,OAAOgvM,GAAiBhvM,IAAoB,UAAVA,EAC9B,QAEQ,oBAARC,GAA6B6uM,GAA4B9uM,GACvDA,EACA,QAGJivM,GAAgBhd,EAClB,8XAQEid,GAAU,+BAEVC,GAAU,SAAUpnM,GACtB,MAA0B,MAAnBA,EAAK7H,OAAO,IAAmC,UAArB6H,EAAKsH,MAAM,EAAG,IAG7C+/L,GAAe,SAAUrnM,GAC3B,OAAOonM,GAAQpnM,GAAQA,EAAKsH,MAAM,EAAGtH,EAAKzH,QAAU,IAGlD0uM,GAAmB,SAAU1iL,GAC/B,OAAc,MAAPA,IAAuB,IAARA,GAKxB,SAAS+iL,GAAkB7gH,GACzB,IAAI76E,EAAO66E,EAAM76E,KACbmoD,EAAa0yB,EACb8gH,EAAY9gH,EAChB,MAAO+3F,EAAM+oB,EAAU3tB,mBACrB2tB,EAAYA,EAAU3tB,kBAAkByjB,OACpCkK,GAAaA,EAAU37L,OACzBA,EAAO47L,GAAeD,EAAU37L,KAAMA,IAG1C,MAAO4yK,EAAMzqH,EAAaA,EAAWh+D,QAC/Bg+D,GAAcA,EAAWnoD,OAC3BA,EAAO47L,GAAe57L,EAAMmoD,EAAWnoD,OAG3C,OAAO67L,GAAY77L,EAAKsyD,YAAatyD,EAAKuyD,OAG5C,SAASqpI,GAAgBhxI,EAAOzgE,GAC9B,MAAO,CACLmoE,YAAarnE,GAAO2/D,EAAM0H,YAAanoE,EAAOmoE,aAC9CC,MAAOqgH,EAAMhoH,EAAM2H,OACf,CAAC3H,EAAM2H,MAAOpoE,EAAOooE,OACrBpoE,EAAOooE,OAIf,SAASspI,GACPvpI,EACAwpI,GAEA,OAAIlpB,EAAMtgH,IAAgBsgH,EAAMkpB,GACvB7wM,GAAOqnE,EAAaypI,GAAeD,IAGrC,GAGT,SAAS7wM,GAAQ6hB,EAAGC,GAClB,OAAOD,EAAIC,EAAKD,EAAI,IAAMC,EAAKD,EAAKC,GAAK,GAG3C,SAASgvL,GAAgB1vM,GACvB,OAAIJ,MAAMqQ,QAAQjQ,GACT2vM,GAAe3vM,GAEpBU,EAASV,GACJ4vM,GAAgB5vM,GAEJ,kBAAVA,EACFA,EAGF,GAGT,SAAS2vM,GAAgB3vM,GAGvB,IAFA,IACI6vM,EADAxqK,EAAM,GAEDx9B,EAAI,EAAGo1K,EAAIj9K,EAAMM,OAAQuH,EAAIo1K,EAAGp1K,IACnC0+K,EAAMspB,EAAcH,GAAe1vM,EAAM6H,MAAwB,KAAhBgoM,IAC/CxqK,IAAOA,GAAO,KAClBA,GAAOwqK,GAGX,OAAOxqK,EAGT,SAASuqK,GAAiB5vM,GACxB,IAAIqlC,EAAM,GACV,IAAK,IAAIplC,KAAOD,EACVA,EAAMC,KACJolC,IAAOA,GAAO,KAClBA,GAAOplC,GAGX,OAAOolC,EAKT,IAAIyqK,GAAe,CACjBC,IAAK,6BACLC,KAAM,sCAGJC,GAAYhe,EACd,snBAeEie,GAAQje,EACV,kNAGA,GAGEgC,GAAgB,SAAU1iL,GAC5B,OAAO0+L,GAAU1+L,IAAQ2+L,GAAM3+L,IAGjC,SAAS6iL,GAAiB7iL,GACxB,OAAI2+L,GAAM3+L,GACD,MAIG,SAARA,EACK,YADT,EAKF,IAAI4+L,GAAsBpvM,OAAOvB,OAAO,MACxC,SAAS20L,GAAkB5iL,GAEzB,IAAK0iK,EACH,OAAO,EAET,GAAIggB,GAAc1iL,GAChB,OAAO,EAIT,GAFAA,EAAMA,EAAI6S,cAEsB,MAA5B+rL,GAAoB5+L,GACtB,OAAO4+L,GAAoB5+L,GAE7B,IAAIlF,EAAKoN,SAASE,cAAcpI,GAChC,OAAIA,EAAI/E,QAAQ,MAAQ,EAEd2jM,GAAoB5+L,GAC1BlF,EAAGlE,cAAgB+T,OAAOk0L,oBAC1B/jM,EAAGlE,cAAgB+T,OAAOumC,YAGpB0tJ,GAAoB5+L,GAAO,qBAAqBU,KAAK5F,EAAG2E,YAIpE,IAAIq/L,GAAkBpe,EAAQ,6CAO9B,SAAS/mH,GAAO7+D,GACd,GAAkB,kBAAPA,EAAiB,CAC1B,IAAI20E,EAAWvnE,SAAS4kD,cAAchyD,GACtC,OAAK20E,GAIIvnE,SAASE,cAAc,OAIhC,OAAOtN,EAMX,SAASikM,GAAiBt5G,EAASxI,GACjC,IAAIioG,EAAMh9K,SAASE,cAAcq9E,GACjC,MAAgB,WAAZA,GAIAxI,EAAM76E,MAAQ66E,EAAM76E,KAAKwyD,YAAuCrmE,IAA9B0uF,EAAM76E,KAAKwyD,MAAMg5C,UACrDs3E,EAAIz3H,aAAa,WAAY,YAJtBy3H,EASX,SAAS8Z,GAAiBlxL,EAAW23E,GACnC,OAAOv9E,SAAS82L,gBAAgBT,GAAazwL,GAAY23E,GAG3D,SAASvvE,GAAgB2vD,GACvB,OAAO39D,SAASgO,eAAe2vD,GAGjC,SAASo5H,GAAep5H,GACtB,OAAO39D,SAAS+2L,cAAcp5H,GAGhC,SAASq5H,GAAc30I,EAAY40I,EAASvzG,GAC1CrhC,EAAW20I,aAAaC,EAASvzG,GAGnC,SAAStqE,GAAatM,EAAMg4C,GAC1Bh4C,EAAKsM,YAAY0rC,GAGnB,SAASj0C,GAAa/D,EAAMg4C,GAC1Bh4C,EAAK+D,YAAYi0C,GAGnB,SAASzC,GAAYv1C,GACnB,OAAOA,EAAKu1C,WAGd,SAAS60I,GAAapqL,GACpB,OAAOA,EAAKoqL,YAGd,SAAS35G,GAASzwE,GAChB,OAAOA,EAAKywE,QAGd,SAAS45G,GAAgBrqL,EAAM6wD,GAC7B7wD,EAAK2yD,YAAc9B,EAGrB,SAASy5H,GAAetqL,EAAMrpB,GAC5BqpB,EAAKy4C,aAAa9hE,EAAS,IAG7B,IAAI4zM,GAAuB/vM,OAAO28B,OAAO,CACvC/jB,cAAe22L,GACfC,gBAAiBA,GACjB9oL,eAAgBA,GAChB+oL,cAAeA,GACfC,aAAcA,GACd59K,YAAaA,GACbvI,YAAaA,GACbwxC,WAAYA,GACZ60I,YAAaA,GACb35G,QAASA,GACT45G,eAAgBA,GAChBC,cAAeA,KAKbnnH,GAAM,CACRlqF,OAAQ,SAAiBqmC,EAAG2oD,GAC1BuiH,GAAYviH,IAEd4U,OAAQ,SAAiBggG,EAAU50G,GAC7B40G,EAASzvL,KAAK+1E,MAAQ8E,EAAM76E,KAAK+1E,MACnCqnH,GAAY3N,GAAU,GACtB2N,GAAYviH,KAGhBa,QAAS,SAAkBb,GACzBuiH,GAAYviH,GAAO,KAIvB,SAASuiH,GAAaviH,EAAOwiH,GAC3B,IAAI/wM,EAAMuuF,EAAM76E,KAAK+1E,IACrB,GAAK68F,EAAMtmL,GAAX,CAEA,IAAIivG,EAAK1gB,EAAM9wF,QACXgsF,EAAM8E,EAAMmzF,mBAAqBnzF,EAAMioG,IACvCwa,EAAO/hG,EAAGjpB,MACV+qH,EACEpxM,MAAMqQ,QAAQghM,EAAKhxM,IACrB4+D,EAAOoyI,EAAKhxM,GAAMypF,GACTunH,EAAKhxM,KAASypF,IACvBunH,EAAKhxM,QAAOH,GAGV0uF,EAAM76E,KAAKyoH,SACRx8H,MAAMqQ,QAAQghM,EAAKhxM,IAEbgxM,EAAKhxM,GAAKuM,QAAQk9E,GAAO,GAElCunH,EAAKhxM,GAAK0M,KAAK+8E,GAHfunH,EAAKhxM,GAAO,CAACypF,GAMfunH,EAAKhxM,GAAOypF,GAiBlB,IAAIwnH,GAAY,IAAI1a,GAAM,GAAI,GAAI,IAE9BgD,GAAQ,CAAC,SAAU,WAAY,SAAU,SAAU,WAEvD,SAAS2X,GAAW1wL,EAAGC,GACrB,OACED,EAAExgB,MAAQygB,EAAEzgB,KACZwgB,EAAEk2K,eAAiBj2K,EAAEi2K,eAEjBl2K,EAAElP,MAAQmP,EAAEnP,KACZkP,EAAEw2K,YAAcv2K,EAAEu2K,WAClB1Q,EAAM9lK,EAAE9M,QAAU4yK,EAAM7lK,EAAE/M,OAC1By9L,GAAc3wL,EAAGC,IAEjBmxK,EAAOpxK,EAAE42K,qBACTzF,EAAQlxK,EAAEi2K,aAAa1yL,QAM/B,SAASmtM,GAAe3wL,EAAGC,GACzB,GAAc,UAAVD,EAAElP,IAAmB,OAAO,EAChC,IAAI1J,EACAwpM,EAAQ9qB,EAAM1+K,EAAI4Y,EAAE9M,OAAS4yK,EAAM1+K,EAAIA,EAAEs+D,QAAUt+D,EAAEkL,KACrDu+L,EAAQ/qB,EAAM1+K,EAAI6Y,EAAE/M,OAAS4yK,EAAM1+K,EAAIA,EAAEs+D,QAAUt+D,EAAEkL,KACzD,OAAOs+L,IAAUC,GAASjB,GAAgBgB,IAAUhB,GAAgBiB,GAGtE,SAASC,GAAmBnqI,EAAUoqI,EAAUC,GAC9C,IAAI5pM,EAAG5H,EACHuN,EAAM,GACV,IAAK3F,EAAI2pM,EAAU3pM,GAAK4pM,IAAU5pM,EAChC5H,EAAMmnE,EAASv/D,GAAG5H,IACdsmL,EAAMtmL,KAAQuN,EAAIvN,GAAO4H,GAE/B,OAAO2F,EAGT,SAASkkM,GAAqBC,GAC5B,IAAI9pM,EAAGK,EACHs4K,EAAM,GAENoxB,EAAUD,EAAQC,QAClBd,EAAUa,EAAQb,QAEtB,IAAKjpM,EAAI,EAAGA,EAAI2xL,GAAMl5L,SAAUuH,EAE9B,IADA24K,EAAIgZ,GAAM3xL,IAAM,GACXK,EAAI,EAAGA,EAAI0pM,EAAQtxM,SAAU4H,EAC5Bq+K,EAAMqrB,EAAQ1pM,GAAGsxL,GAAM3xL,MACzB24K,EAAIgZ,GAAM3xL,IAAI8E,KAAKilM,EAAQ1pM,GAAGsxL,GAAM3xL,KAK1C,SAASgqM,EAAapb,GACpB,OAAO,IAAID,GAAMsa,EAAQ95G,QAAQy/F,GAAKryK,cAAe,GAAI,QAAItkB,EAAW22L,GAG1E,SAASqb,EAAYC,EAAU77H,GAC7B,SAAS4mH,IACuB,MAAxBA,EAAU5mH,WACdxZ,EAAWq1I,GAIf,OADAjV,EAAU5mH,UAAYA,EACf4mH,EAGT,SAASpgI,EAAYrwD,GACnB,IAAIvO,EAASgzM,EAAQh1I,WAAWzvD,GAE5Bk6K,EAAMzoL,IACRgzM,EAAQj+K,YAAY/0B,EAAQuO,GAsBhC,SAAS2lM,EACPxjH,EACAyjH,EACAC,EACAC,EACAC,EACAC,EACAjyM,GAYA,GAVImmL,EAAM/3F,EAAMioG,MAAQlQ,EAAM8rB,KAM5B7jH,EAAQ6jH,EAAWjyM,GAASo3L,GAAWhpG,IAGzCA,EAAMwoG,cAAgBob,GAClBvO,EAAgBr1G,EAAOyjH,EAAoBC,EAAWC,GAA1D,CAIA,IAAIx+L,EAAO66E,EAAM76E,KACbyzD,EAAWonB,EAAMpnB,SACjB71D,EAAMi9E,EAAMj9E,IACZg1K,EAAMh1K,IAeRi9E,EAAMioG,IAAMjoG,EAAMooG,GACdka,EAAQP,gBAAgB/hH,EAAMooG,GAAIrlL,GAClCu/L,EAAQn3L,cAAcpI,EAAKi9E,GAC/B8jH,EAAS9jH,GAIP+jH,EAAe/jH,EAAOpnB,EAAU6qI,GAC5B1rB,EAAM5yK,IACR6+L,EAAkBhkH,EAAOyjH,GAE3B3O,EAAO4O,EAAW1jH,EAAMioG,IAAK0b,IAMtBtgB,EAAOrjG,EAAMyoG,YACtBzoG,EAAMioG,IAAMqa,EAAQN,cAAchiH,EAAMpX,MACxCksH,EAAO4O,EAAW1jH,EAAMioG,IAAK0b,KAE7B3jH,EAAMioG,IAAMqa,EAAQrpL,eAAe+mE,EAAMpX,MACzCksH,EAAO4O,EAAW1jH,EAAMioG,IAAK0b,KAIjC,SAAStO,EAAiBr1G,EAAOyjH,EAAoBC,EAAWC,GAC9D,IAAItqM,EAAI2mF,EAAM76E,KACd,GAAI4yK,EAAM1+K,GAAI,CACZ,IAAI4qM,EAAgBlsB,EAAM/3F,EAAMmzF,oBAAsB95K,EAAEo5K,UAQxD,GAPIsF,EAAM1+K,EAAIA,EAAExK,OAASkpL,EAAM1+K,EAAIA,EAAEmvB,OACnCnvB,EAAE2mF,GAAO,GAMP+3F,EAAM/3F,EAAMmzF,mBAMd,OALA+wB,EAAclkH,EAAOyjH,GACrB3O,EAAO4O,EAAW1jH,EAAMioG,IAAK0b,GACzBtgB,EAAO4gB,IACTE,EAAoBnkH,EAAOyjH,EAAoBC,EAAWC,IAErD,GAKb,SAASO,EAAelkH,EAAOyjH,GACzB1rB,EAAM/3F,EAAM76E,KAAKi/L,iBACnBX,EAAmBtlM,KAAKoB,MAAMkkM,EAAoBzjH,EAAM76E,KAAKi/L,eAC7DpkH,EAAM76E,KAAKi/L,cAAgB,MAE7BpkH,EAAMioG,IAAMjoG,EAAMmzF,kBAAkB7sG,IAChC+9H,EAAYrkH,IACdgkH,EAAkBhkH,EAAOyjH,GACzBK,EAAS9jH,KAITuiH,GAAYviH,GAEZyjH,EAAmBtlM,KAAK6hF,IAI5B,SAASmkH,EAAqBnkH,EAAOyjH,EAAoBC,EAAWC,GAClE,IAAItqM,EAKAirM,EAAYtkH,EAChB,MAAOskH,EAAUnxB,kBAEf,GADAmxB,EAAYA,EAAUnxB,kBAAkByjB,OACpC7e,EAAM1+K,EAAIirM,EAAUn/L,OAAS4yK,EAAM1+K,EAAIA,EAAE8qF,YAAa,CACxD,IAAK9qF,EAAI,EAAGA,EAAI24K,EAAIxe,SAAS1hK,SAAUuH,EACrC24K,EAAIxe,SAASn6J,GAAGqpM,GAAW4B,GAE7Bb,EAAmBtlM,KAAKmmM,GACxB,MAKJxP,EAAO4O,EAAW1jH,EAAMioG,IAAK0b,GAG/B,SAAS7O,EAAQxlM,EAAQ24L,EAAKsc,GACxBxsB,EAAMzoL,KACJyoL,EAAMwsB,GACJjC,EAAQh1I,WAAWi3I,KAAYj1M,GACjCgzM,EAAQL,aAAa3yM,EAAQ24L,EAAKsc,GAGpCjC,EAAQxmL,YAAYxsB,EAAQ24L,IAKlC,SAAS8b,EAAgB/jH,EAAOpnB,EAAU6qI,GACxC,GAAIryM,MAAMqQ,QAAQm3D,GAAW,CACvB9qD,EAGJ,IAAK,IAAIzU,EAAI,EAAGA,EAAIu/D,EAAS9mE,SAAUuH,EACrCmqM,EAAU5qI,EAASv/D,GAAIoqM,EAAoBzjH,EAAMioG,IAAK,MAAM,EAAMrvH,EAAUv/D,QAErEy1K,EAAY9uF,EAAMpX,OAC3B05H,EAAQxmL,YAAYkkE,EAAMioG,IAAKqa,EAAQrpL,eAAenoB,OAAOkvF,EAAMpX,QAIvE,SAASy7H,EAAarkH,GACpB,MAAOA,EAAMmzF,kBACXnzF,EAAQA,EAAMmzF,kBAAkByjB,OAElC,OAAO7e,EAAM/3F,EAAMj9E,KAGrB,SAASihM,EAAmBhkH,EAAOyjH,GACjC,IAAK,IAAIvxB,EAAM,EAAGA,EAAMF,EAAIhhL,OAAOc,SAAUogL,EAC3CF,EAAIhhL,OAAOkhL,GAAKwwB,GAAW1iH,GAE7B3mF,EAAI2mF,EAAM76E,KAAKtW,KACXkpL,EAAM1+K,KACJ0+K,EAAM1+K,EAAErI,SAAWqI,EAAErI,OAAO0xM,GAAW1iH,GACvC+3F,EAAM1+K,EAAEy7L,SAAW2O,EAAmBtlM,KAAK6hF,IAOnD,SAAS8jH,EAAU9jH,GACjB,IAAI3mF,EACJ,GAAI0+K,EAAM1+K,EAAI2mF,EAAMuoG,WAClB+Z,EAAQD,cAAcriH,EAAMioG,IAAK5uL,OAC5B,CACL,IAAImrM,EAAWxkH,EACf,MAAOwkH,EACDzsB,EAAM1+K,EAAImrM,EAASt1M,UAAY6oL,EAAM1+K,EAAIA,EAAExJ,SAASZ,WACtDqzM,EAAQD,cAAcriH,EAAMioG,IAAK5uL,GAEnCmrM,EAAWA,EAASl1M,OAIpByoL,EAAM1+K,EAAIs7L,KACZt7L,IAAM2mF,EAAM9wF,SACZmK,IAAM2mF,EAAMqoG,WACZtQ,EAAM1+K,EAAIA,EAAExJ,SAASZ,WAErBqzM,EAAQD,cAAcriH,EAAMioG,IAAK5uL,GAIrC,SAASorM,EAAWf,EAAWC,EAAQrP,EAAQoQ,EAAUzB,EAAQQ,GAC/D,KAAOiB,GAAYzB,IAAUyB,EAC3BlB,EAAUlP,EAAOoQ,GAAWjB,EAAoBC,EAAWC,GAAQ,EAAOrP,EAAQoQ,GAItF,SAASC,EAAmB3kH,GAC1B,IAAI3mF,EAAGK,EACHyL,EAAO66E,EAAM76E,KACjB,GAAI4yK,EAAM5yK,GAER,IADI4yK,EAAM1+K,EAAI8L,EAAKtW,OAASkpL,EAAM1+K,EAAIA,EAAEwnF,UAAYxnF,EAAE2mF,GACjD3mF,EAAI,EAAGA,EAAI24K,EAAInxF,QAAQ/uF,SAAUuH,EAAK24K,EAAInxF,QAAQxnF,GAAG2mF,GAE5D,GAAI+3F,EAAM1+K,EAAI2mF,EAAMpnB,UAClB,IAAKl/D,EAAI,EAAGA,EAAIsmF,EAAMpnB,SAAS9mE,SAAU4H,EACvCirM,EAAkB3kH,EAAMpnB,SAASl/D,IAKvC,SAASkrM,EAActQ,EAAQoQ,EAAUzB,GACvC,KAAOyB,GAAYzB,IAAUyB,EAAU,CACrC,IAAI9yL,EAAK0iL,EAAOoQ,GACZ3sB,EAAMnmK,KACJmmK,EAAMnmK,EAAG7O,MACX8hM,EAA0BjzL,GAC1B+yL,EAAkB/yL,IAElBs8C,EAAWt8C,EAAGq2K,OAMtB,SAAS4c,EAA2B7kH,EAAO8kH,GACzC,GAAI/sB,EAAM+sB,IAAO/sB,EAAM/3F,EAAM76E,MAAO,CAClC,IAAI9L,EACAquE,EAAYsqG,EAAI3hH,OAAOv+D,OAAS,EAapC,IAZIimL,EAAM+sB,GAGRA,EAAGp9H,WAAaA,EAGhBo9H,EAAKxB,EAAWtjH,EAAMioG,IAAKvgH,GAGzBqwG,EAAM1+K,EAAI2mF,EAAMmzF,oBAAsB4E,EAAM1+K,EAAIA,EAAEu9L,SAAW7e,EAAM1+K,EAAE8L,OACvE0/L,EAA0BxrM,EAAGyrM,GAE1BzrM,EAAI,EAAGA,EAAI24K,EAAI3hH,OAAOv+D,SAAUuH,EACnC24K,EAAI3hH,OAAOh3D,GAAG2mF,EAAO8kH,GAEnB/sB,EAAM1+K,EAAI2mF,EAAM76E,KAAKtW,OAASkpL,EAAM1+K,EAAIA,EAAEg3D,QAC5Ch3D,EAAE2mF,EAAO8kH,GAETA,SAGF52I,EAAW8xB,EAAMioG,KAIrB,SAAS8c,EAAgBrB,EAAWsB,EAAOC,EAAOxB,EAAoByB,GACpE,IAQIC,EAAaC,EAAUC,EAAa1B,EARpC2B,EAAc,EACdC,EAAc,EACdC,EAAYR,EAAMlzM,OAAS,EAC3B2zM,EAAgBT,EAAM,GACtBU,EAAcV,EAAMQ,GACpBG,EAAYV,EAAMnzM,OAAS,EAC3B8zM,EAAgBX,EAAM,GACtBY,EAAcZ,EAAMU,GAMpBG,GAAWZ,EAMf,MAAOI,GAAeE,GAAaD,GAAeI,EAC5CviB,EAAQqiB,GACVA,EAAgBT,IAAQM,GACfliB,EAAQsiB,GACjBA,EAAcV,IAAQQ,GACb7C,GAAU8C,EAAeG,IAClCG,EAAWN,EAAeG,EAAenC,EAAoBwB,EAAOM,GACpEE,EAAgBT,IAAQM,GACxBM,EAAgBX,IAAQM,IACf5C,GAAU+C,EAAaG,IAChCE,EAAWL,EAAaG,EAAapC,EAAoBwB,EAAOU,GAChED,EAAcV,IAAQQ,GACtBK,EAAcZ,IAAQU,IACbhD,GAAU8C,EAAeI,IAClCE,EAAWN,EAAeI,EAAapC,EAAoBwB,EAAOU,GAClEG,GAAWxD,EAAQL,aAAayB,EAAW+B,EAAcxd,IAAKqa,EAAQH,YAAYuD,EAAYzd,MAC9Fwd,EAAgBT,IAAQM,GACxBO,EAAcZ,IAAQU,IACbhD,GAAU+C,EAAaE,IAChCG,EAAWL,EAAaE,EAAenC,EAAoBwB,EAAOM,GAClEO,GAAWxD,EAAQL,aAAayB,EAAWgC,EAAYzd,IAAKwd,EAAcxd,KAC1Eyd,EAAcV,IAAQQ,GACtBI,EAAgBX,IAAQM,KAEpBniB,EAAQ+hB,KAAgBA,EAAcpC,GAAkBiC,EAAOM,EAAaE,IAChFJ,EAAWrtB,EAAM6tB,EAAcn0M,KAC3B0zM,EAAYS,EAAcn0M,KAC1Bu0M,EAAaJ,EAAeZ,EAAOM,EAAaE,GAChDpiB,EAAQgiB,GACV5B,EAAUoC,EAAenC,EAAoBC,EAAW+B,EAAcxd,KAAK,EAAOgd,EAAOM,IAEzFF,EAAcL,EAAMI,GAChBzC,GAAU0C,EAAaO,IACzBG,EAAWV,EAAaO,EAAenC,EAAoBwB,EAAOM,GAClEP,EAAMI,QAAY9zM,EAClBw0M,GAAWxD,EAAQL,aAAayB,EAAW2B,EAAYpd,IAAKwd,EAAcxd,MAG1Eub,EAAUoC,EAAenC,EAAoBC,EAAW+B,EAAcxd,KAAK,EAAOgd,EAAOM,IAG7FK,EAAgBX,IAAQM,IAGxBD,EAAcE,GAChB7B,EAASvgB,EAAQ6hB,EAAMU,EAAY,IAAM,KAAOV,EAAMU,EAAY,GAAG1d,IACrEwc,EAAUf,EAAWC,EAAQsB,EAAOM,EAAaI,EAAWlC,IACnD8B,EAAcI,GACvBf,EAAaI,EAAOM,EAAaE,GAsBrC,SAASQ,EAAcjuL,EAAMitL,EAAO9rM,EAAO4C,GACzC,IAAK,IAAIzC,EAAIH,EAAOG,EAAIyC,EAAKzC,IAAK,CAChC,IAAIsZ,EAAIqyL,EAAM3rM,GACd,GAAI0+K,EAAMplK,IAAMgwL,GAAU5qL,EAAMpF,GAAM,OAAOtZ,GAIjD,SAAS0sM,EACPnR,EACA50G,EACAyjH,EACAI,EACAjyM,EACAszM,GAEA,GAAItQ,IAAa50G,EAAjB,CAII+3F,EAAM/3F,EAAMioG,MAAQlQ,EAAM8rB,KAE5B7jH,EAAQ6jH,EAAWjyM,GAASo3L,GAAWhpG,IAGzC,IAAIioG,EAAMjoG,EAAMioG,IAAM2M,EAAS3M,IAE/B,GAAI5E,EAAOuR,EAAS/L,oBACd9Q,EAAM/3F,EAAMmoG,aAAat8D,UAC3Bo6E,EAAQrR,EAAS3M,IAAKjoG,EAAOyjH,GAE7BzjH,EAAM6oG,oBAAqB,OAS/B,GAAIxF,EAAOrjG,EAAMm2E,WACfktB,EAAOuR,EAASz+B,WAChBn2E,EAAMvuF,MAAQmjM,EAASnjM,MACtB4xL,EAAOrjG,EAAM0oG,WAAarF,EAAOrjG,EAAM2oG,SAExC3oG,EAAMmzF,kBAAoByhB,EAASzhB,sBALrC,CASA,IAAI95K,EACA8L,EAAO66E,EAAM76E,KACb4yK,EAAM5yK,IAAS4yK,EAAM1+K,EAAI8L,EAAKtW,OAASkpL,EAAM1+K,EAAIA,EAAE65K,WACrD75K,EAAEu7L,EAAU50G,GAGd,IAAIglH,EAAQpQ,EAASh8H,SACjBhnD,EAAKouE,EAAMpnB,SACf,GAAIm/G,EAAM5yK,IAASk/L,EAAYrkH,GAAQ,CACrC,IAAK3mF,EAAI,EAAGA,EAAI24K,EAAIp9E,OAAO9iG,SAAUuH,EAAK24K,EAAIp9E,OAAOv7F,GAAGu7L,EAAU50G,GAC9D+3F,EAAM1+K,EAAI8L,EAAKtW,OAASkpL,EAAM1+K,EAAIA,EAAEu7F,SAAWv7F,EAAEu7L,EAAU50G,GAE7DojG,EAAQpjG,EAAMpX,MACZmvG,EAAMitB,IAAUjtB,EAAMnmK,GACpBozL,IAAUpzL,GAAMmzL,EAAe9c,EAAK+c,EAAOpzL,EAAI6xL,EAAoByB,GAC9DntB,EAAMnmK,IAIXmmK,EAAM6c,EAAShsH,OAAS05H,EAAQF,eAAena,EAAK,IACxDwc,EAAUxc,EAAK,KAAMr2K,EAAI,EAAGA,EAAG9f,OAAS,EAAG2xM,IAClC1rB,EAAMitB,GACfJ,EAAaI,EAAO,EAAGA,EAAMlzM,OAAS,GAC7BimL,EAAM6c,EAAShsH,OACxB05H,EAAQF,eAAena,EAAK,IAErB2M,EAAShsH,OAASoX,EAAMpX,MACjC05H,EAAQF,eAAena,EAAKjoG,EAAMpX,MAEhCmvG,EAAM5yK,IACJ4yK,EAAM1+K,EAAI8L,EAAKtW,OAASkpL,EAAM1+K,EAAIA,EAAE6sM,YAAc7sM,EAAEu7L,EAAU50G,KAItE,SAASmmH,EAAkBnmH,EAAO58D,EAAOgjL,GAGvC,GAAI/iB,EAAO+iB,IAAYruB,EAAM/3F,EAAM1wF,QACjC0wF,EAAM1wF,OAAO6V,KAAKi/L,cAAgBhhL,OAElC,IAAK,IAAI/pB,EAAI,EAAGA,EAAI+pB,EAAMtxB,SAAUuH,EAClC+pB,EAAM/pB,GAAG8L,KAAKtW,KAAKimM,OAAO1xK,EAAM/pB,IAKtC,IAKIgtM,EAAmB5iB,EAAQ,2CAG/B,SAASwiB,EAAShe,EAAKjoG,EAAOyjH,EAAoB6C,GAChD,IAAIjtM,EACA0J,EAAMi9E,EAAMj9E,IACZoC,EAAO66E,EAAM76E,KACbyzD,EAAWonB,EAAMpnB,SAIrB,GAHA0tI,EAASA,GAAWnhM,GAAQA,EAAKqxL,IACjCx2G,EAAMioG,IAAMA,EAER5E,EAAOrjG,EAAMyoG,YAAc1Q,EAAM/3F,EAAMmoG,cAEzC,OADAnoG,EAAM6oG,oBAAqB,GACpB,EAQT,GAAI9Q,EAAM5yK,KACJ4yK,EAAM1+K,EAAI8L,EAAKtW,OAASkpL,EAAM1+K,EAAIA,EAAEmvB,OAASnvB,EAAE2mF,GAAO,GACtD+3F,EAAM1+K,EAAI2mF,EAAMmzF,oBAGlB,OADA+wB,EAAclkH,EAAOyjH,IACd,EAGX,GAAI1rB,EAAMh1K,GAAM,CACd,GAAIg1K,EAAMn/G,GAER,GAAKqvH,EAAIse,gBAIP,GAAIxuB,EAAM1+K,EAAI8L,IAAS4yK,EAAM1+K,EAAIA,EAAEw+D,WAAakgH,EAAM1+K,EAAIA,EAAEy+D,YAC1D,GAAIz+D,IAAM4uL,EAAInwH,UAWZ,OAAO,MAEJ,CAIL,IAFA,IAAI0uI,GAAgB,EAChB1F,EAAY7Y,EAAIwe,WACXv0B,EAAM,EAAGA,EAAMt5G,EAAS9mE,OAAQogL,IAAO,CAC9C,IAAK4uB,IAAcmF,EAAQnF,EAAWloI,EAASs5G,GAAMuxB,EAAoB6C,GAAS,CAChFE,GAAgB,EAChB,MAEF1F,EAAYA,EAAUqB,YAIxB,IAAKqE,GAAiB1F,EAUpB,OAAO,OAxCXiD,EAAe/jH,EAAOpnB,EAAU6qI,GA6CpC,GAAI1rB,EAAM5yK,GAAO,CACf,IAAIuhM,GAAa,EACjB,IAAK,IAAIj1M,KAAO0T,EACd,IAAKkhM,EAAiB50M,GAAM,CAC1Bi1M,GAAa,EACb1C,EAAkBhkH,EAAOyjH,GACzB,OAGCiD,GAAcvhM,EAAK,UAEtBwoL,GAASxoL,EAAK,gBAGT8iL,EAAI9iL,OAAS66E,EAAMpX,OAC5Bq/G,EAAI9iL,KAAO66E,EAAMpX,MAEnB,OAAO,EAcT,OAAO,SAAgBgsH,EAAU50G,EAAOw0G,EAAW0Q,GACjD,IAAI9hB,EAAQpjG,GAAZ,CAKA,IAAI2mH,GAAiB,EACjBlD,EAAqB,GAEzB,GAAIrgB,EAAQwR,GAEV+R,GAAiB,EACjBnD,EAAUxjH,EAAOyjH,OACZ,CACL,IAAImD,EAAgB7uB,EAAM6c,EAASrnI,UACnC,IAAKq5I,GAAiBjE,GAAU/N,EAAU50G,GAExC+lH,EAAWnR,EAAU50G,EAAOyjH,EAAoB,KAAM,KAAMyB,OACvD,CACL,GAAI0B,EAAe,CAQjB,GAJ0B,IAAtBhS,EAASrnI,UAAkBqnI,EAAS/jI,aAAak0H,KACnD6P,EAASlkI,gBAAgBq0H,GACzByP,GAAY,GAEVnR,EAAOmR,IACLyR,EAAQrR,EAAU50G,EAAOyjH,GAE3B,OADA0C,EAAiBnmH,EAAOyjH,GAAoB,GACrC7O,EAaXA,EAAWyO,EAAYzO,GAIzB,IAAIiS,EAASjS,EAAS3M,IAClByb,EAAYpB,EAAQh1I,WAAWu5I,GAcnC,GAXArD,EACExjH,EACAyjH,EAIAoD,EAAOC,SAAW,KAAOpD,EACzBpB,EAAQH,YAAY0E,IAIlB9uB,EAAM/3F,EAAM1wF,QAAS,CACvB,IAAIk1M,EAAWxkH,EAAM1wF,OACjBy3M,EAAY1C,EAAYrkH,GAC5B,MAAOwkH,EAAU,CACf,IAAK,IAAInrM,EAAI,EAAGA,EAAI24K,EAAInxF,QAAQ/uF,SAAUuH,EACxC24K,EAAInxF,QAAQxnF,GAAGmrM,GAGjB,GADAA,EAASvc,IAAMjoG,EAAMioG,IACjB8e,EAAW,CACb,IAAK,IAAI70B,EAAM,EAAGA,EAAMF,EAAIhhL,OAAOc,SAAUogL,EAC3CF,EAAIhhL,OAAOkhL,GAAKwwB,GAAW8B,GAK7B,IAAI1P,EAAS0P,EAASr/L,KAAKtW,KAAKimM,OAChC,GAAIA,EAAOlG,OAET,IAAK,IAAIoY,EAAM,EAAGA,EAAMlS,EAAO5G,IAAIp8L,OAAQk1M,IACzClS,EAAO5G,IAAI8Y,UAIfzE,GAAYiC,GAEdA,EAAWA,EAASl1M,QAKpByoL,EAAM2rB,GACRkB,EAAa,CAAChQ,GAAW,EAAG,GACnB7c,EAAM6c,EAAS7xL,MACxB4hM,EAAkB/P,IAMxB,OADAuR,EAAiBnmH,EAAOyjH,EAAoBkD,GACrC3mH,EAAMioG,IAnGPlQ,EAAM6c,IAAa+P,EAAkB/P,IAyG/C,IAAIx8I,GAAa,CACfpnD,OAAQi2M,GACRryG,OAAQqyG,GACRpmH,QAAS,SAA2Bb,GAClCinH,GAAiBjnH,EAAO0iH,MAI5B,SAASuE,GAAkBrS,EAAU50G,IAC/B40G,EAASzvL,KAAKizC,YAAc4nC,EAAM76E,KAAKizC,aACzC0gJ,GAAQlE,EAAU50G,GAItB,SAAS84G,GAASlE,EAAU50G,GAC1B,IAQIvuF,EAAKy1M,EAAQ5yH,EARb6yH,EAAWvS,IAAa8N,GACxB0E,EAAYpnH,IAAU0iH,GACtB2E,EAAUC,GAAsB1S,EAASzvL,KAAKizC,WAAYw8I,EAAS1lM,SACnEq4M,EAAUD,GAAsBtnH,EAAM76E,KAAKizC,WAAY4nC,EAAM9wF,SAE7Ds4M,EAAiB,GACjBC,EAAoB,GAGxB,IAAKh2M,KAAO81M,EACVL,EAASG,EAAQ51M,GACjB6iF,EAAMizH,EAAQ91M,GACTy1M,GAQH5yH,EAAIrR,SAAWikI,EAAO11M,MACtB8iF,EAAIozH,OAASR,EAAO7jM,IACpBskM,GAAWrzH,EAAK,SAAU0L,EAAO40G,GAC7BtgH,EAAIt7B,KAAOs7B,EAAIt7B,IAAIgoC,kBACrBymH,EAAkBtpM,KAAKm2E,KAVzBqzH,GAAWrzH,EAAK,OAAQ0L,EAAO40G,GAC3BtgH,EAAIt7B,KAAOs7B,EAAIt7B,IAAIslF,UACrBkpE,EAAerpM,KAAKm2E,IAa1B,GAAIkzH,EAAe11M,OAAQ,CACzB,IAAI81M,EAAa,WACf,IAAK,IAAIvuM,EAAI,EAAGA,EAAImuM,EAAe11M,OAAQuH,IACzCsuM,GAAWH,EAAenuM,GAAI,WAAY2mF,EAAO40G,IAGjDuS,EACF3Y,GAAexuG,EAAO,SAAU4nH,GAEhCA,IAYJ,GARIH,EAAkB31M,QACpB08L,GAAexuG,EAAO,aAAa,WACjC,IAAK,IAAI3mF,EAAI,EAAGA,EAAIouM,EAAkB31M,OAAQuH,IAC5CsuM,GAAWF,EAAkBpuM,GAAI,mBAAoB2mF,EAAO40G,OAK7DuS,EACH,IAAK11M,KAAO41M,EACLE,EAAQ91M,IAEXk2M,GAAWN,EAAQ51M,GAAM,SAAUmjM,EAAUA,EAAUwS,GAM/D,IAAIS,GAAiBt1M,OAAOvB,OAAO,MAEnC,SAASs2M,GACP9b,EACA9qF,GAEA,IAKIrnG,EAAGi7E,EALHz9C,EAAMtkC,OAAOvB,OAAO,MACxB,IAAKw6L,EAEH,OAAO30J,EAGT,IAAKx9B,EAAI,EAAGA,EAAImyL,EAAK15L,OAAQuH,IAC3Bi7E,EAAMk3G,EAAKnyL,GACNi7E,EAAIwM,YAEPxM,EAAIwM,UAAY+mH,IAElBhxK,EAAIixK,GAAcxzH,IAAQA,EAC1BA,EAAIt7B,IAAM8yI,GAAaprF,EAAG7wG,SAAU,aAAcykF,EAAI/6E,MAAM,GAG9D,OAAOs9B,EAGT,SAASixK,GAAexzH,GACtB,OAAOA,EAAIyzH,SAAazzH,EAAI/6E,KAAQ,IAAOhH,OAAOkH,KAAK66E,EAAIwM,WAAa,IAAIzwE,KAAK,KAGnF,SAASs3L,GAAYrzH,EAAKzlF,EAAMmxF,EAAO40G,EAAUwS,GAC/C,IAAItlM,EAAKwyE,EAAIt7B,KAAOs7B,EAAIt7B,IAAInqD,GAC5B,GAAIiT,EACF,IACEA,EAAGk+E,EAAMioG,IAAK3zG,EAAK0L,EAAO40G,EAAUwS,GACpC,MAAOt4K,IACP+9J,GAAY/9J,GAAGkxD,EAAM9wF,QAAU,aAAgBolF,EAAI/6E,KAAQ,IAAM1K,EAAO,UAK9E,IAAIm5M,GAAc,CAChB9sH,GACA9iC,IAKF,SAAS6vJ,GAAarT,EAAU50G,GAC9B,IAAIqtF,EAAOrtF,EAAMkoG,iBACjB,KAAInQ,EAAM1K,KAA4C,IAAnCA,EAAK+Z,KAAKt4L,QAAQu2E,iBAGjC+9G,EAAQwR,EAASzvL,KAAKwyD,SAAUyrH,EAAQpjG,EAAM76E,KAAKwyD,QAAvD,CAGA,IAAIlmE,EAAK02C,EAAK+uC,EACV+wG,EAAMjoG,EAAMioG,IACZigB,EAAWtT,EAASzvL,KAAKwyD,OAAS,GAClCA,EAAQqoB,EAAM76E,KAAKwyD,OAAS,GAMhC,IAAKlmE,KAJDsmL,EAAMpgH,EAAM2xH,UACd3xH,EAAQqoB,EAAM76E,KAAKwyD,MAAQ/e,EAAO,GAAI+e,IAG5BA,EACVxvB,EAAMwvB,EAAMlmE,GACZylF,EAAMgxH,EAASz2M,GACXylF,IAAQ/uC,GACVmoB,GAAQ23H,EAAKx2L,EAAK02C,EAAK63C,EAAM76E,KAAKqxL,KAStC,IAAK/kM,KAHAu9F,IAAQ23F,KAAWhvH,EAAMnmE,QAAU02M,EAAS12M,OAC/C8+D,GAAQ23H,EAAK,QAAStwH,EAAMnmE,OAElB02M,EACN9kB,EAAQzrH,EAAMlmE,MACZkvM,GAAQlvM,GACVw2L,EAAIkgB,kBAAkBzH,GAASE,GAAanvM,IAClC4uM,GAAiB5uM,IAC3Bw2L,EAAIv3H,gBAAgBj/D,KAM5B,SAAS6+D,GAASzyD,EAAIpM,EAAKD,EAAO42M,GAC5BA,GAAWvqM,EAAG2qF,QAAQxqF,QAAQ,MAAQ,EACxCqqM,GAAYxqM,EAAIpM,EAAKD,GACZivM,GAAchvM,GAGnB+uM,GAAiBhvM,GACnBqM,EAAG6yD,gBAAgBj/D,IAInBD,EAAgB,oBAARC,GAA4C,UAAfoM,EAAG2qF,QACpC,OACA/2F,EACJoM,EAAG2yD,aAAa/+D,EAAKD,IAEd6uM,GAAiB5uM,GAC1BoM,EAAG2yD,aAAa/+D,EAAK8uM,GAAuB9uM,EAAKD,IACxCmvM,GAAQlvM,GACb+uM,GAAiBhvM,GACnBqM,EAAGsqM,kBAAkBzH,GAASE,GAAanvM,IAE3CoM,EAAGyqM,eAAe5H,GAASjvM,EAAKD,GAGlC62M,GAAYxqM,EAAIpM,EAAKD,GAIzB,SAAS62M,GAAaxqM,EAAIpM,EAAKD,GAC7B,GAAIgvM,GAAiBhvM,GACnBqM,EAAG6yD,gBAAgBj/D,OACd,CAKL,GACEu9F,KAAS03F,IACM,aAAf7oL,EAAG2qF,SACK,gBAAR/2F,GAAmC,KAAVD,IAAiBqM,EAAG0qM,OAC7C,CACA,IAAIC,EAAU,SAAVA,EAAoB15K,GACtBA,EAAEkoC,2BACFn5D,EAAGizC,oBAAoB,QAAS03J,IAElC3qM,EAAGsmB,iBAAiB,QAASqkL,GAE7B3qM,EAAG0qM,QAAS,EAEd1qM,EAAG2yD,aAAa/+D,EAAKD,IAIzB,IAAImmE,GAAQ,CACV3mE,OAAQi3M,GACRrzG,OAAQqzG,IAKV,SAASQ,GAAa7T,EAAU50G,GAC9B,IAAIniF,EAAKmiF,EAAMioG,IACX9iL,EAAO66E,EAAM76E,KACbmuI,EAAUshD,EAASzvL,KACvB,KACEi+K,EAAQj+K,EAAKsyD,cACb2rH,EAAQj+K,EAAKuyD,SACX0rH,EAAQ9vC,IACN8vC,EAAQ9vC,EAAQ77E,cAChB2rH,EAAQ9vC,EAAQ57E,SALtB,CAYA,IAAIgxI,EAAM7H,GAAiB7gH,GAGvB2oH,EAAkB9qM,EAAG+qM,mBACrB7wB,EAAM4wB,KACRD,EAAMt4M,GAAOs4M,EAAKxH,GAAeyH,KAI/BD,IAAQ7qM,EAAGgrM,aACbhrM,EAAG2yD,aAAa,QAASk4I,GACzB7qM,EAAGgrM,WAAaH,IAIpB,IAyCII,GAzCAh0M,GAAQ,CACV9D,OAAQy3M,GACR7zG,OAAQ6zG,IAaNM,GAAc,MACdC,GAAuB,MAQ3B,SAASC,GAAiB1yI,GAExB,GAAIwhH,EAAMxhH,EAAGwyI,KAAe,CAE1B,IAAItlL,EAAQurE,GAAO,SAAW,QAC9Bz4B,EAAG9yC,GAAS,GAAGrzB,OAAOmmE,EAAGwyI,IAAcxyI,EAAG9yC,IAAU,WAC7C8yC,EAAGwyI,IAKRhxB,EAAMxhH,EAAGyyI,OACXzyI,EAAG8yC,OAAS,GAAGj5G,OAAOmmE,EAAGyyI,IAAuBzyI,EAAG8yC,QAAU,WACtD9yC,EAAGyyI,KAMd,SAASE,GAAqBzlL,EAAOK,EAASjS,GAC5C,IAAIumL,EAAU0Q,GACd,OAAO,SAASzQ,IACd,IAAIxhK,EAAM/S,EAAQvkB,MAAM,KAAMjF,WAClB,OAARu8B,GACFsyK,GAAS1lL,EAAO40K,EAAaxmL,EAASumL,IAQ5C,IAAIgR,GAAkBhc,MAAsBvG,IAAQhxK,OAAOgxK,GAAK,KAAO,IAEvE,SAASwiB,GACP9vM,EACAuqB,EACAjS,EACAg/B,GAQA,GAAIu4J,GAAiB,CACnB,IAAIE,EAAoBhP,GACpB1qB,EAAW9rJ,EACfA,EAAU8rJ,EAAS25B,SAAW,SAAUz6K,GACtC,GAIEA,EAAErzB,SAAWqzB,EAAEs3C,eAEft3C,EAAE0rK,WAAa8O,GAIfx6K,EAAE0rK,WAAa,GAIf1rK,EAAErzB,OAAOg2D,gBAAkBxmD,SAE3B,OAAO2kK,EAASrwK,MAAMpQ,KAAMmL,YAIlCwuM,GAAS3kL,iBACP5qB,EACAuqB,EACAijK,GACI,CAAEl1K,QAASA,EAASg/B,QAASA,GAC7Bh/B,GAIR,SAASs3L,GACP5vM,EACAuqB,EACAjS,EACAumL,IAECA,GAAW0Q,IAAUh4J,oBACpBv3C,EACAuqB,EAAQylL,UAAYzlL,EACpBjS,GAIJ,SAAS23L,GAAoB5U,EAAU50G,GACrC,IAAIojG,EAAQwR,EAASzvL,KAAKoxD,MAAO6sH,EAAQpjG,EAAM76E,KAAKoxD,IAApD,CAGA,IAAIA,EAAKypB,EAAM76E,KAAKoxD,IAAM,GACtB83H,EAAQuG,EAASzvL,KAAKoxD,IAAM,GAChCuyI,GAAW9oH,EAAMioG,IACjBghB,GAAgB1yI,GAChB80C,GAAgB90C,EAAI83H,EAAOgb,GAAOF,GAAUD,GAAqBlpH,EAAM9wF,SACvE45M,QAAWx3M,GAGb,IAOIm4M,GAPApiH,GAAS,CACXr2F,OAAQw4M,GACR50G,OAAQ40G,IAOV,SAASE,GAAgB9U,EAAU50G,GACjC,IAAIojG,EAAQwR,EAASzvL,KAAK0yD,YAAaurH,EAAQpjG,EAAM76E,KAAK0yD,UAA1D,CAGA,IAAIpmE,EAAK02C,EACL8/I,EAAMjoG,EAAMioG,IACZ0hB,EAAW/U,EAASzvL,KAAK0yD,UAAY,GACrCv7C,EAAQ0jE,EAAM76E,KAAK0yD,UAAY,GAMnC,IAAKpmE,KAJDsmL,EAAMz7J,EAAMgtK,UACdhtK,EAAQ0jE,EAAM76E,KAAK0yD,SAAWjf,EAAO,GAAIt8B,IAG/BqtL,EACJl4M,KAAO6qB,IACX2rK,EAAIx2L,GAAO,IAIf,IAAKA,KAAO6qB,EAAO,CAKjB,GAJA6rB,EAAM7rB,EAAM7qB,GAIA,gBAARA,GAAiC,cAARA,EAAqB,CAEhD,GADIuuF,EAAMpnB,WAAYonB,EAAMpnB,SAAS9mE,OAAS,GAC1Cq2C,IAAQwhK,EAASl4M,GAAQ,SAGC,IAA1Bw2L,EAAIh9G,WAAWn5E,QACjBm2L,EAAI5jK,YAAY4jK,EAAIh9G,WAAW,IAInC,GAAY,UAARx5E,GAAmC,aAAhBw2L,EAAIz/F,QAAwB,CAGjDy/F,EAAIlqE,OAAS51E,EAEb,IAAIyhK,EAASxmB,EAAQj7I,GAAO,GAAKr3C,OAAOq3C,GACpC0hK,GAAkB5hB,EAAK2hB,KACzB3hB,EAAIz2L,MAAQo4M,QAET,GAAY,cAARn4M,GAAuBiwM,GAAMzZ,EAAIz/F,UAAY46F,EAAQ6E,EAAInwH,WAAY,CAE9E2xI,GAAeA,IAAgBx+L,SAASE,cAAc,OACtDs+L,GAAa3xI,UAAY,QAAU3vB,EAAM,SACzC,IAAIo5J,EAAMkI,GAAahD,WACvB,MAAOxe,EAAIwe,WACTxe,EAAI5jK,YAAY4jK,EAAIwe,YAEtB,MAAOlF,EAAIkF,WACTxe,EAAInsK,YAAYylL,EAAIkF,iBAEjB,GAKLt+J,IAAQwhK,EAASl4M,GAIjB,IACEw2L,EAAIx2L,GAAO02C,EACX,MAAOrZ,QAQf,SAAS+6K,GAAmB5hB,EAAK6hB,GAC/B,OAAS7hB,EAAIzuE,YACK,WAAhByuE,EAAIz/F,SACJuhH,GAAqB9hB,EAAK6hB,IAC1BE,GAAqB/hB,EAAK6hB,IAI9B,SAASC,GAAsB9hB,EAAK6hB,GAGlC,IAAIG,GAAa,EAGjB,IAAMA,EAAah/L,SAASqjD,gBAAkB25H,EAAO,MAAOn5J,KAC5D,OAAOm7K,GAAchiB,EAAIz2L,QAAUs4M,EAGrC,SAASE,GAAsB/hB,EAAK3gB,GAClC,IAAI91K,EAAQy2L,EAAIz2L,MACZsvF,EAAYmnG,EAAIiiB,YACpB,GAAInyB,EAAMj3F,GAAY,CACpB,GAAIA,EAAU1oF,OACZ,OAAOq1B,EAASj8B,KAAWi8B,EAAS65I,GAEtC,GAAIxmF,EAAUx+D,KACZ,OAAO9wB,EAAM8wB,SAAWglJ,EAAOhlJ,OAGnC,OAAO9wB,IAAU81K,EAGnB,IAAIzvG,GAAW,CACb7mE,OAAQ04M,GACR90G,OAAQ80G,IAKNS,GAAiBvmB,GAAO,SAAUwmB,GACpC,IAAIvzK,EAAM,GACNwzK,EAAgB,gBAChBC,EAAoB,QAOxB,OANAF,EAAQj8L,MAAMk8L,GAAehuM,SAAQ,SAAU8iB,GAC7C,GAAIA,EAAM,CACR,IAAIu8K,EAAMv8K,EAAKhR,MAAMm8L,GACrB5O,EAAI5pM,OAAS,IAAM+kC,EAAI6kK,EAAI,GAAGp5K,QAAUo5K,EAAI,GAAGp5K,YAG5CuU,KAIT,SAAS0zK,GAAoBplM,GAC3B,IAAIyW,EAAQ4uL,GAAsBrlM,EAAKyW,OAGvC,OAAOzW,EAAKslM,YACR7xJ,EAAOzzC,EAAKslM,YAAa7uL,GACzBA,EAIN,SAAS4uL,GAAuBE,GAC9B,OAAIt5M,MAAMqQ,QAAQipM,GACTxvM,EAASwvM,GAEU,kBAAjBA,EACFP,GAAeO,GAEjBA,EAOT,SAAS97I,GAAUoxB,EAAO2qH,GACxB,IACIC,EADA/zK,EAAM,GAGV,GAAI8zK,EAAY,CACd,IAAI7J,EAAY9gH,EAChB,MAAO8gH,EAAU3tB,kBACf2tB,EAAYA,EAAU3tB,kBAAkByjB,OAEtCkK,GAAaA,EAAU37L,OACtBylM,EAAYL,GAAmBzJ,EAAU37L,QAE1CyzC,EAAO/hB,EAAK+zK,IAKbA,EAAYL,GAAmBvqH,EAAM76E,QACxCyzC,EAAO/hB,EAAK+zK,GAGd,IAAIt9I,EAAa0yB,EACjB,MAAQ1yB,EAAaA,EAAWh+D,OAC1Bg+D,EAAWnoD,OAASylM,EAAYL,GAAmBj9I,EAAWnoD,QAChEyzC,EAAO/hB,EAAK+zK,GAGhB,OAAO/zK,EAKT,IAyBIg0K,GAzBAC,GAAW,MACXC,GAAc,iBACdC,GAAU,SAAUntM,EAAItE,EAAMukB,GAEhC,GAAIgtL,GAASrnM,KAAKlK,GAChBsE,EAAG+d,MAAMqvL,YAAY1xM,EAAMukB,QACtB,GAAIitL,GAAYtnM,KAAKqa,GAC1BjgB,EAAG+d,MAAMqvL,YAAY/mB,EAAU3qL,GAAOukB,EAAI3a,QAAQ4nM,GAAa,IAAK,iBAC/D,CACL,IAAIG,EAAiBz1L,GAAUlc,GAC/B,GAAInI,MAAMqQ,QAAQqc,GAIhB,IAAK,IAAIzkB,EAAI,EAAGsC,EAAMmiB,EAAIhsB,OAAQuH,EAAIsC,EAAKtC,IACzCwE,EAAG+d,MAAMsvL,GAAkBptL,EAAIzkB,QAGjCwE,EAAG+d,MAAMsvL,GAAkBptL,IAK7BqtL,GAAc,CAAC,SAAU,MAAO,MAGhC11L,GAAYmuK,GAAO,SAAUnuI,GAG/B,GAFAo1J,GAAaA,IAAc5/L,SAASE,cAAc,OAAOyQ,MACzD65B,EAAOsuI,EAAStuI,GACH,WAATA,GAAsBA,KAAQo1J,GAChC,OAAOp1J,EAGT,IADA,IAAI21J,EAAU31J,EAAK/jD,OAAO,GAAG+nD,cAAgBhE,EAAK50C,MAAM,GAC/CxH,EAAI,EAAGA,EAAI8xM,GAAYr5M,OAAQuH,IAAK,CAC3C,IAAIE,EAAO4xM,GAAY9xM,GAAK+xM,EAC5B,GAAI7xM,KAAQsxM,GACV,OAAOtxM,MAKb,SAAS8xM,GAAazW,EAAU50G,GAC9B,IAAI76E,EAAO66E,EAAM76E,KACbmuI,EAAUshD,EAASzvL,KAEvB,KAAIi+K,EAAQj+K,EAAKslM,cAAgBrnB,EAAQj+K,EAAKyW,QAC5CwnK,EAAQ9vC,EAAQm3D,cAAgBrnB,EAAQ9vC,EAAQ13H,QADlD,CAMA,IAAIusB,EAAK5uC,EACLsE,EAAKmiF,EAAMioG,IACXqjB,EAAiBh4D,EAAQm3D,YACzBc,EAAkBj4D,EAAQk4D,iBAAmBl4D,EAAQ13H,OAAS,GAG9D6vL,EAAWH,GAAkBC,EAE7B3vL,EAAQ4uL,GAAsBxqH,EAAM76E,KAAKyW,QAAU,GAKvDokE,EAAM76E,KAAKqmM,gBAAkBzzB,EAAMn8J,EAAM0tK,QACrC1wI,EAAO,GAAIh9B,GACXA,EAEJ,IAAI8vL,EAAW98I,GAASoxB,GAAO,GAE/B,IAAKzmF,KAAQkyM,EACProB,EAAQsoB,EAASnyM,KACnByxM,GAAQntM,EAAItE,EAAM,IAGtB,IAAKA,KAAQmyM,EACXvjK,EAAMujK,EAASnyM,GACX4uC,IAAQsjK,EAASlyM,IAEnByxM,GAAQntM,EAAItE,EAAa,MAAP4uC,EAAc,GAAKA,IAK3C,IAAIvsB,GAAQ,CACV5qB,OAAQq6M,GACRz2G,OAAQy2G,IAKNM,GAAe,MAMnB,SAASz7I,GAAUryD,EAAI6qM,GAErB,GAAKA,IAASA,EAAMA,EAAIpmL,QAKxB,GAAIzkB,EAAGwP,UACDq7L,EAAI1qM,QAAQ,MAAQ,EACtB0qM,EAAIv6L,MAAMw9L,IAActvM,SAAQ,SAAUsW,GAAK,OAAO9U,EAAGwP,UAAU3d,IAAIijB,MAEvE9U,EAAGwP,UAAU3d,IAAIg5M,OAEd,CACL,IAAIvgK,EAAM,KAAOtqC,EAAG+yD,aAAa,UAAY,IAAM,IAC/CzoB,EAAInqC,QAAQ,IAAM0qM,EAAM,KAAO,GACjC7qM,EAAG2yD,aAAa,SAAUroB,EAAMugK,GAAKpmL,SAS3C,SAAS8tC,GAAavyD,EAAI6qM,GAExB,GAAKA,IAASA,EAAMA,EAAIpmL,QAKxB,GAAIzkB,EAAGwP,UACDq7L,EAAI1qM,QAAQ,MAAQ,EACtB0qM,EAAIv6L,MAAMw9L,IAActvM,SAAQ,SAAUsW,GAAK,OAAO9U,EAAGwP,UAAUgjD,OAAO19C,MAE1E9U,EAAGwP,UAAUgjD,OAAOq4I,GAEjB7qM,EAAGwP,UAAUvb,QAChB+L,EAAG6yD,gBAAgB,aAEhB,CACL,IAAIvoB,EAAM,KAAOtqC,EAAG+yD,aAAa,UAAY,IAAM,IAC/Cg7I,EAAM,IAAMlD,EAAM,IACtB,MAAOvgK,EAAInqC,QAAQ4tM,IAAQ,EACzBzjK,EAAMA,EAAIhlC,QAAQyoM,EAAK,KAEzBzjK,EAAMA,EAAI7lB,OACN6lB,EACFtqC,EAAG2yD,aAAa,QAASroB,GAEzBtqC,EAAG6yD,gBAAgB,UAOzB,SAASm7I,GAAmBpgB,GAC1B,GAAKA,EAAL,CAIA,GAAsB,YAAlB,OAAOA,GAAqB,CAC9B,IAAI50J,EAAM,GAKV,OAJmB,IAAf40J,EAAOzyH,KACTpgB,EAAO/hB,EAAKi1K,GAAkBrgB,EAAOlyL,MAAQ,MAE/Cq/C,EAAO/hB,EAAK40J,GACL50J,EACF,MAAsB,kBAAX40J,EACTqgB,GAAkBrgB,QADpB,GAKT,IAAIqgB,GAAoBloB,GAAO,SAAUrqL,GACvC,MAAO,CACL0+D,WAAa1+D,EAAO,SACpB4+D,aAAe5+D,EAAO,YACtB2+D,iBAAmB3+D,EAAO,gBAC1B6+D,WAAa7+D,EAAO,SACpB++D,aAAe/+D,EAAO,YACtB8+D,iBAAmB9+D,EAAO,oBAI1BwyM,GAAgBtmC,IAAcihB,GAC9BslB,GAAa,aACbC,GAAY,YAGZC,GAAiB,aACjB5mH,GAAqB,gBACrB6mH,GAAgB,YAChBC,GAAoB,eACpBL,UAE6Bz6M,IAA3Boc,OAAO2+L,sBACwB/6M,IAAjCoc,OAAO4+L,wBAEPJ,GAAiB,mBACjB5mH,GAAqB,4BAEOh0F,IAA1Boc,OAAO6+L,qBACuBj7M,IAAhCoc,OAAO8+L,uBAEPL,GAAgB,kBAChBC,GAAoB,uBAKxB,IAAIK,GAAMhnC,EACN/3J,OAAOigD,sBACLjgD,OAAOigD,sBAAsBlxD,KAAKiR,QAClC4W,WACyB,SAAUxiB,GAAM,OAAOA,KAEtD,SAAS4qM,GAAW5qM,GAClB2qM,IAAI,WACFA,GAAI3qM,MAIR,SAAS6qM,GAAoB9uM,EAAI6qM,GAC/B,IAAIkE,EAAoB/uM,EAAG+qM,qBAAuB/qM,EAAG+qM,mBAAqB,IACtEgE,EAAkB5uM,QAAQ0qM,GAAO,IACnCkE,EAAkBzuM,KAAKuqM,GACvBx4I,GAASryD,EAAI6qM,IAIjB,SAASmE,GAAuBhvM,EAAI6qM,GAC9B7qM,EAAG+qM,oBACLv4I,EAAOxyD,EAAG+qM,mBAAoBF,GAEhCt4I,GAAYvyD,EAAI6qM,GAGlB,SAASoE,GACPjvM,EACAkvM,EACA/+I,GAEA,IAAIktB,EAAM8xH,GAAkBnvM,EAAIkvM,GAC5BxoM,EAAO22E,EAAI32E,KACX28I,EAAUhmE,EAAIgmE,QACd+rD,EAAY/xH,EAAI+xH,UACpB,IAAK1oM,EAAQ,OAAOypD,IACpB,IAAIvqC,EAAQlf,IAASynM,GAAa1mH,GAAqB8mH,GACnDc,EAAQ,EACRpxM,EAAM,WACR+B,EAAGizC,oBAAoBrtB,EAAO0pL,GAC9Bn/I,KAEEm/I,EAAQ,SAAUr+K,GAChBA,EAAErzB,SAAWoC,KACTqvM,GAASD,GACbnxM,KAINwoB,YAAW,WACL4oL,EAAQD,GACVnxM,MAEDolJ,EAAU,GACbrjJ,EAAGsmB,iBAAiBV,EAAO0pL,GAG7B,IAAIC,GAAc,yBAElB,SAASJ,GAAmBnvM,EAAIkvM,GAC9B,IASIxoM,EATAusF,EAASpjF,OAAOwjD,iBAAiBrzD,GAEjCwvM,GAAoBv8G,EAAOo7G,GAAiB,UAAY,IAAI/9L,MAAM,MAClEm/L,GAAuBx8G,EAAOo7G,GAAiB,aAAe,IAAI/9L,MAAM,MACxEo/L,EAAoBC,GAAWH,EAAkBC,GACjDG,GAAmB38G,EAAOq7G,GAAgB,UAAY,IAAIh+L,MAAM,MAChEu/L,GAAsB58G,EAAOq7G,GAAgB,aAAe,IAAIh+L,MAAM,MACtEw/L,EAAmBH,GAAWC,EAAiBC,GAG/CxsD,EAAU,EACV+rD,EAAY,EAEZF,IAAiBf,GACfuB,EAAoB,IACtBhpM,EAAOynM,GACP9qD,EAAUqsD,EACVN,EAAYK,EAAoBx7M,QAEzBi7M,IAAiBd,GACtB0B,EAAmB,IACrBppM,EAAO0nM,GACP/qD,EAAUysD,EACVV,EAAYS,EAAmB57M,SAGjCovJ,EAAU3lJ,KAAKkF,IAAI8sM,EAAmBI,GACtCppM,EAAO28I,EAAU,EACbqsD,EAAoBI,EAClB3B,GACAC,GACF,KACJgB,EAAY1oM,EACRA,IAASynM,GACPsB,EAAoBx7M,OACpB47M,EAAmB57M,OACrB,GAEN,IAAI87M,EACFrpM,IAASynM,IACToB,GAAY3pM,KAAKqtF,EAAOo7G,GAAiB,aAC3C,MAAO,CACL3nM,KAAMA,EACN28I,QAASA,EACT+rD,UAAWA,EACXW,aAAcA,GAIlB,SAASJ,GAAYK,EAAQC,GAE3B,MAAOD,EAAO/7M,OAASg8M,EAAUh8M,OAC/B+7M,EAASA,EAAOz9M,OAAOy9M,GAGzB,OAAOtyM,KAAKkF,IAAIlB,MAAM,KAAMuuM,EAAU9uM,KAAI,SAAUi4E,EAAG59E,GACrD,OAAO00M,GAAK92H,GAAK82H,GAAKF,EAAOx0M,QAQjC,SAAS00M,GAAMp/K,GACb,OAAkD,IAA3C9Y,OAAO8Y,EAAE9tB,MAAM,GAAI,GAAGsC,QAAQ,IAAK,MAK5C,SAAS2V,GAAOknE,EAAOguH,GACrB,IAAInwM,EAAKmiF,EAAMioG,IAGXlQ,EAAMl6K,EAAGipM,YACXjpM,EAAGipM,SAASzpB,WAAY,EACxBx/K,EAAGipM,YAGL,IAAI3hM,EAAO0mM,GAAkB7rH,EAAM76E,KAAKg/E,YACxC,IAAIi/F,EAAQj+K,KAKR4yK,EAAMl6K,EAAGowM,WAA6B,IAAhBpwM,EAAG0vD,SAA7B,CAIA,IAAIyL,EAAM7zD,EAAK6zD,IACXz0D,EAAOY,EAAKZ,KACZ0zD,EAAa9yD,EAAK8yD,WAClBE,EAAehzD,EAAKgzD,aACpBD,EAAmB/yD,EAAK+yD,iBACxBW,EAAc1zD,EAAK0zD,YACnBE,EAAgB5zD,EAAK4zD,cACrBD,EAAoB3zD,EAAK2zD,kBACzB6kE,EAAcx4H,EAAKw4H,YACnB7kH,EAAQ3T,EAAK2T,MACbkxE,EAAa7kF,EAAK6kF,WAClBkkH,EAAiB/oM,EAAK+oM,eACtBC,EAAehpM,EAAKgpM,aACpB31I,EAASrzD,EAAKqzD,OACd41I,EAAcjpM,EAAKipM,YACnBC,EAAkBlpM,EAAKkpM,gBACvB9xC,EAAWp3J,EAAKo3J,SAMhBrtK,EAAUylM,GACV2Z,EAAiB3Z,GAAevlM,OACpC,MAAOk/M,GAAkBA,EAAeh/M,OACtCJ,EAAUo/M,EAAep/M,QACzBo/M,EAAiBA,EAAeh/M,OAGlC,IAAIi/M,GAAYr/M,EAAQ6lM,aAAe/0G,EAAMwoG,aAE7C,IAAI+lB,GAAa/1I,GAAqB,KAAXA,EAA3B,CAIA,IAAIg2I,EAAaD,GAAY11I,EACzBA,EACAZ,EACAwM,EAAc8pI,GAAYz1I,EAC1BA,EACAZ,EACAu2I,EAAUF,GAAYx1I,EACtBA,EACAZ,EAEAu2I,EAAkBH,GACjBJ,GACDxwE,EACAgxE,EAAYJ,GACO,oBAAX/1I,EAAwBA,EAChC1/C,EACA81L,EAAiBL,GAChBH,GACDpkH,EACA6kH,EAAqBN,GACpBF,GACDH,EAEAY,EAAwBrhL,EAC1Bv7B,EAASqqK,GACLA,EAASzjJ,MACTyjJ,GAGFzuJ,EAIJ,IAAIihM,GAAqB,IAAR/1I,IAAkB0tH,GAC/BsoB,EAAmBC,GAAuBN,GAE1C3gJ,EAAKnwD,EAAGowM,SAAW/tH,GAAK,WACtB6uH,IACFlC,GAAsBhvM,EAAI4wM,GAC1B5B,GAAsBhvM,EAAI4mE,IAExBzW,EAAGqvH,WACD0xB,GACFlC,GAAsBhvM,EAAI2wM,GAE5BK,GAAsBA,EAAmBhxM,IAEzC+wM,GAAkBA,EAAe/wM,GAEnCA,EAAGowM,SAAW,QAGXjuH,EAAM76E,KAAKo0D,MAEdi1H,GAAexuG,EAAO,UAAU,WAC9B,IAAI1wF,EAASuO,EAAGyvD,WACZ4hJ,EAAc5/M,GAAUA,EAAO6/M,UAAY7/M,EAAO6/M,SAASnvH,EAAMvuF,KACjEy9M,GACFA,EAAYnsM,MAAQi9E,EAAMj9E,KAC1BmsM,EAAYjnB,IAAI6e,UAEhBoI,EAAYjnB,IAAI6e,WAElB6H,GAAaA,EAAU9wM,EAAImwD,MAK/B0gJ,GAAmBA,EAAgB7wM,GAC/BkxM,IACFpC,GAAmB9uM,EAAI2wM,GACvB7B,GAAmB9uM,EAAI4mE,GACvBioI,IAAU,WACRG,GAAsBhvM,EAAI2wM,GACrBxgJ,EAAGqvH,YACNsvB,GAAmB9uM,EAAI4wM,GAClBO,IACCI,GAAgBN,GAClBxqL,WAAW0pC,EAAI8gJ,GAEfhC,GAAmBjvM,EAAI0G,EAAMypD,SAOnCgyB,EAAM76E,KAAKo0D,OACby0I,GAAiBA,IACjBW,GAAaA,EAAU9wM,EAAImwD,IAGxB+gJ,GAAeC,GAClBhhJ,MAIJ,SAASi8B,GAAOjK,EAAO8kH,GACrB,IAAIjnM,EAAKmiF,EAAMioG,IAGXlQ,EAAMl6K,EAAGowM,YACXpwM,EAAGowM,SAAS5wB,WAAY,EACxBx/K,EAAGowM,YAGL,IAAI9oM,EAAO0mM,GAAkB7rH,EAAM76E,KAAKg/E,YACxC,GAAIi/F,EAAQj+K,IAAyB,IAAhBtH,EAAG0vD,SACtB,OAAOu3I,IAIT,IAAI/sB,EAAMl6K,EAAGipM,UAAb,CAIA,IAAI9tI,EAAM7zD,EAAK6zD,IACXz0D,EAAOY,EAAKZ,KACZ6zD,EAAajzD,EAAKizD,WAClBE,EAAenzD,EAAKmzD,aACpBD,EAAmBlzD,EAAKkzD,iBACxBulE,EAAcz4H,EAAKy4H,YACnB3zC,EAAQ9kF,EAAK8kF,MACbC,EAAa/kF,EAAK+kF,WAClBmlH,EAAiBlqM,EAAKkqM,eACtBC,EAAanqM,EAAKmqM,WAClB/yC,EAAWp3J,EAAKo3J,SAEhBwyC,GAAqB,IAAR/1I,IAAkB0tH,GAC/BsoB,EAAmBC,GAAuBhlH,GAE1CslH,EAAwB9hL,EAC1Bv7B,EAASqqK,GACLA,EAAStyE,MACTsyE,GAGFzuJ,EAIJ,IAAIkgD,EAAKnwD,EAAGipM,SAAW5mH,GAAK,WACtBriF,EAAGyvD,YAAczvD,EAAGyvD,WAAW6hJ,WACjCtxM,EAAGyvD,WAAW6hJ,SAASnvH,EAAMvuF,KAAO,MAElCs9M,IACFlC,GAAsBhvM,EAAIy6D,GAC1Bu0I,GAAsBhvM,EAAIw6D,IAExBrK,EAAGqvH,WACD0xB,GACFlC,GAAsBhvM,EAAIu6D,GAE5Bi3I,GAAkBA,EAAexxM,KAEjCinM,IACA56G,GAAcA,EAAWrsF,IAE3BA,EAAGipM,SAAW,QAGZwI,EACFA,EAAWE,GAEXA,IAGF,SAASA,IAEHxhJ,EAAGqvH,aAIFr9F,EAAM76E,KAAKo0D,MAAQ17D,EAAGyvD,cACxBzvD,EAAGyvD,WAAW6hJ,WAAatxM,EAAGyvD,WAAW6hJ,SAAW,KAAMnvH,EAAMvuF,KAAQuuF,GAE3E49C,GAAeA,EAAY//H,GACvBkxM,IACFpC,GAAmB9uM,EAAIu6D,GACvBu0I,GAAmB9uM,EAAIw6D,GACvBq0I,IAAU,WACRG,GAAsBhvM,EAAIu6D,GACrBpK,EAAGqvH,YACNsvB,GAAmB9uM,EAAIy6D,GAClB02I,IACCI,GAAgBG,GAClBjrL,WAAW0pC,EAAIuhJ,GAEfzC,GAAmBjvM,EAAI0G,EAAMypD,SAMvCi8B,GAASA,EAAMpsF,EAAImwD,GACd+gJ,GAAeC,GAClBhhJ,MAsBN,SAASohJ,GAAiBtxL,GACxB,MAAsB,kBAARA,IAAqBkQ,MAAMlQ,GAS3C,SAASmxL,GAAwBntM,GAC/B,GAAIshL,EAAQthL,GACV,OAAO,EAET,IAAI2tM,EAAa3tM,EAAGosL,IACpB,OAAInW,EAAM03B,GAEDR,GACL79M,MAAMqQ,QAAQguM,GACVA,EAAW,GACXA,IAGE3tM,EAAGuiL,SAAWviL,EAAGhQ,QAAU,EAIvC,SAAS49M,GAAQr4K,EAAG2oD,IACM,IAApBA,EAAM76E,KAAKo0D,MACbzgD,GAAMknE,GAIV,IAAImE,GAAashF,EAAY,CAC3Bz0K,OAAQ0+M,GACRl8C,SAAUk8C,GACVr/I,OAAQ,SAAoB2vB,EAAO8kH,IAET,IAApB9kH,EAAM76E,KAAKo0D,KACb0wB,GAAMjK,EAAO8kH,GAEbA,MAGF,GAEA6K,GAAkB,CACpBh4I,GACA7iE,GACAuyF,GACAxvB,GACAj8C,GACAuoE,IAOEi/G,GAAUuM,GAAgBv/M,OAAO43M,IAEjC4H,GAAQ1M,GAAoB,CAAEZ,QAASA,GAASc,QAASA,KAQzD1c,IAEFz7K,SAASkZ,iBAAiB,mBAAmB,WAC3C,IAAItmB,EAAKoN,SAASqjD,cACdzwD,GAAMA,EAAGgyM,QACXj7E,GAAQ/2H,EAAI,YAKlB,IAAIs7C,GAAY,CACdmlF,SAAU,SAAmBzgI,EAAIwvF,EAASrN,EAAO40G,GAC7B,WAAd50G,EAAMj9E,KAEJ6xL,EAAS3M,MAAQ2M,EAAS3M,IAAI6nB,UAChCthB,GAAexuG,EAAO,aAAa,WACjC7mC,GAAU6nC,iBAAiBnjF,EAAIwvF,EAASrN,MAG1C+vH,GAAYlyM,EAAIwvF,EAASrN,EAAM9wF,SAEjC2O,EAAGiyM,UAAY,GAAG9wM,IAAIxP,KAAKqO,EAAG/O,QAASkhN,MAChB,aAAdhwH,EAAMj9E,KAAsB8+L,GAAgBhkM,EAAG0G,SACxD1G,EAAGqsM,YAAc78G,EAAQvM,UACpBuM,EAAQvM,UAAUsgB,OACrBvjG,EAAGsmB,iBAAiB,mBAAoB8rL,IACxCpyM,EAAGsmB,iBAAiB,iBAAkB+rL,IAKtCryM,EAAGsmB,iBAAiB,SAAU+rL,IAE1BxpB,KACF7oL,EAAGgyM,QAAS,MAMpB7uH,iBAAkB,SAA2BnjF,EAAIwvF,EAASrN,GACxD,GAAkB,WAAdA,EAAMj9E,IAAkB,CAC1BgtM,GAAYlyM,EAAIwvF,EAASrN,EAAM9wF,SAK/B,IAAIihN,EAActyM,EAAGiyM,UACjBM,EAAavyM,EAAGiyM,UAAY,GAAG9wM,IAAIxP,KAAKqO,EAAG/O,QAASkhN,IACxD,GAAII,EAAWlxM,MAAK,SAAUqmC,EAAGlsC,GAAK,OAAQkpE,EAAWh9B,EAAG4qK,EAAY92M,OAAS,CAG/E,IAAIg3M,EAAYxyM,EAAG8yG,SACftjB,EAAQ77F,MAAM0N,MAAK,SAAUisB,GAAK,OAAOmlL,GAAoBnlL,EAAGilL,MAChE/iH,EAAQ77F,QAAU67F,EAAQpqB,UAAYqtI,GAAoBjjH,EAAQ77F,MAAO4+M,GACzEC,GACFz7E,GAAQ/2H,EAAI,cAOtB,SAASkyM,GAAalyM,EAAIwvF,EAASqT,GACjC6vG,GAAoB1yM,EAAIwvF,EAASqT,IAE7B1R,IAAQ23F,KACVriK,YAAW,WACTisL,GAAoB1yM,EAAIwvF,EAASqT,KAChC,GAIP,SAAS6vG,GAAqB1yM,EAAIwvF,EAASqT,GACzC,IAAIlvG,EAAQ67F,EAAQ77F,MAChBg/M,EAAa3yM,EAAG8yG,SACpB,IAAI6/F,GAAep/M,MAAMqQ,QAAQjQ,GAAjC,CASA,IADA,IAAIghF,EAAUkzB,EACLrsG,EAAI,EAAGo1K,EAAI5wK,EAAG/O,QAAQgD,OAAQuH,EAAIo1K,EAAGp1K,IAE5C,GADAqsG,EAAS7nG,EAAG/O,QAAQuK,GAChBm3M,EACFh+H,EAAWg0B,EAAah1G,EAAOw+M,GAAStqG,KAAY,EAChDA,EAAOlzB,WAAaA,IACtBkzB,EAAOlzB,SAAWA,QAGpB,GAAIjQ,EAAWytI,GAAStqG,GAASl0G,GAI/B,YAHIqM,EAAG4yM,gBAAkBp3M,IACvBwE,EAAG4yM,cAAgBp3M,IAMtBm3M,IACH3yM,EAAG4yM,eAAiB,IAIxB,SAASH,GAAqB9+M,EAAO1C,GACnC,OAAOA,EAAQqQ,OAAM,SAAUomC,GAAK,OAAQg9B,EAAWh9B,EAAG/zC,MAG5D,SAASw+M,GAAUtqG,GACjB,MAAO,WAAYA,EACfA,EAAOqY,OACPrY,EAAOl0G,MAGb,SAASy+M,GAAoBnhL,GAC3BA,EAAErzB,OAAO+9G,WAAY,EAGvB,SAAS02F,GAAkBphL,GAEpBA,EAAErzB,OAAO+9G,YACd1qF,EAAErzB,OAAO+9G,WAAY,EACrBob,GAAQ9lG,EAAErzB,OAAQ,UAGpB,SAASm5H,GAAS/2H,EAAI0G,GACpB,IAAIuqB,EAAI7jB,SAAS+lB,YAAY,cAC7BlC,EAAEwD,UAAU/tB,GAAM,GAAM,GACxB1G,EAAGozB,cAAcnC,GAMnB,SAAS4hL,GAAY1wH,GACnB,OAAOA,EAAMmzF,mBAAuBnzF,EAAM76E,MAAS66E,EAAM76E,KAAKg/E,WAE1DnE,EADA0wH,GAAW1wH,EAAMmzF,kBAAkByjB,QAIzC,IAAIr9H,GAAO,CACT98D,KAAM,SAAeoB,EAAIq9E,EAAK8E,GAC5B,IAAIxuF,EAAQ0pF,EAAI1pF,MAEhBwuF,EAAQ0wH,GAAW1wH,GACnB,IAAI2wH,EAAgB3wH,EAAM76E,MAAQ66E,EAAM76E,KAAKg/E,WACzCysH,EAAkB/yM,EAAGgzM,mBACF,SAArBhzM,EAAG+d,MAAMC,QAAqB,GAAKhe,EAAG+d,MAAMC,QAC1CrqB,GAASm/M,GACX3wH,EAAM76E,KAAKo0D,MAAO,EAClBzgD,GAAMknE,GAAO,WACXniF,EAAG+d,MAAMC,QAAU+0L,MAGrB/yM,EAAG+d,MAAMC,QAAUrqB,EAAQo/M,EAAkB,QAIjDh8G,OAAQ,SAAiB/2F,EAAIq9E,EAAK8E,GAChC,IAAIxuF,EAAQ0pF,EAAI1pF,MACZyxE,EAAWiY,EAAIjY,SAGnB,IAAKzxE,KAAWyxE,EAAhB,CACA+c,EAAQ0wH,GAAW1wH,GACnB,IAAI2wH,EAAgB3wH,EAAM76E,MAAQ66E,EAAM76E,KAAKg/E,WACzCwsH,GACF3wH,EAAM76E,KAAKo0D,MAAO,EACd/nE,EACFsnB,GAAMknE,GAAO,WACXniF,EAAG+d,MAAMC,QAAUhe,EAAGgzM,sBAGxB5mH,GAAMjK,GAAO,WACXniF,EAAG+d,MAAMC,QAAU,WAIvBhe,EAAG+d,MAAMC,QAAUrqB,EAAQqM,EAAGgzM,mBAAqB,SAIvD5vH,OAAQ,SACNpjF,EACAwvF,EACArN,EACA40G,EACAwS,GAEKA,IACHvpM,EAAG+d,MAAMC,QAAUhe,EAAGgzM,sBAKxBC,GAAqB,CACvBz7I,MAAOlc,GACPogB,KAAMA,IAKJ28E,GAAkB,CACpB38I,KAAMzI,OACN0nE,OAAQt4D,QACR84D,IAAK94D,QACLohB,KAAMxwB,OACNyT,KAAMzT,OACNmnE,WAAYnnE,OACZsnE,WAAYtnE,OACZqnE,aAAcrnE,OACdwnE,aAAcxnE,OACdonE,iBAAkBpnE,OAClBunE,iBAAkBvnE,OAClB+nE,YAAa/nE,OACbgoE,kBAAmBhoE,OACnBioE,cAAejoE,OACfyrK,SAAU,CAAC1mJ,OAAQ/kB,OAAQyB,SAK7B,SAASw+M,GAAc/wH,GACrB,IAAIgxH,EAAchxH,GAASA,EAAMkoG,iBACjC,OAAI8oB,GAAeA,EAAY5pB,KAAKt4L,QAAQwkI,SACnCy9E,GAAahZ,GAAuBiZ,EAAYp4I,WAEhDonB,EAIX,SAASixH,GAAuBzyB,GAC9B,IAAIr5K,EAAO,GACPrW,EAAU0vL,EAAK3uL,SAEnB,IAAK,IAAI4B,KAAO3C,EAAQulI,UACtBlvH,EAAK1T,GAAO+sL,EAAK/sL,GAInB,IAAIi2E,EAAY54E,EAAQkoM,iBACxB,IAAK,IAAI9L,KAASxjH,EAChBviE,EAAK4+K,EAASmH,IAAUxjH,EAAUwjH,GAEpC,OAAO/lL,EAGT,SAASymG,GAAa37G,EAAGihN,GACvB,GAAI,iBAAiBztM,KAAKytM,EAASnuM,KACjC,OAAO9S,EAAE,aAAc,CACrBqsB,MAAO40L,EAAShpB,iBAAiB7zD,YAKvC,SAAS88E,GAAqBnxH,GAC5B,MAAQA,EAAQA,EAAM1wF,OACpB,GAAI0wF,EAAM76E,KAAKg/E,WACb,OAAO,EAKb,SAASitH,GAAarhJ,EAAOshJ,GAC3B,OAAOA,EAAS5/M,MAAQs+D,EAAMt+D,KAAO4/M,EAAStuM,MAAQgtD,EAAMhtD,IAG9D,IAAIuuM,GAAgB,SAAU3+L,GAAK,OAAOA,EAAE5P,KAAO8lL,GAAmBl2K,IAElE4+L,GAAmB,SAAUt6H,GAAK,MAAkB,SAAXA,EAAE19E,MAE3Ci4M,GAAa,CACfj4M,KAAM,aACN+iB,MAAO45H,GACP5iB,UAAU,EAEVhlI,OAAQ,SAAiB2B,GACvB,IAAI4mL,EAAS1nL,KAETypE,EAAWzpE,KAAKqmE,OAAOrB,QAC3B,GAAKyE,IAKLA,EAAWA,EAAS35D,OAAOqyM,IAEtB14I,EAAS9mE,QAAd,CAKIgc,EAQJ,IAAIwT,EAAOnyB,KAAKmyB,KAGZxT,EASJ,IAAIojM,EAAWt4I,EAAS,GAIxB,GAAIu4I,GAAoBhiN,KAAKC,QAC3B,OAAO8hN,EAKT,IAAInhJ,EAAQghJ,GAAaG,GAEzB,IAAKnhJ,EACH,OAAOmhJ,EAGT,GAAI/hN,KAAKsiN,SACP,OAAO7lG,GAAY37G,EAAGihN,GAMxB,IAAInrM,EAAK,gBAAmB5W,KAAKouM,KAAQ,IACzCxtI,EAAMt+D,IAAmB,MAAbs+D,EAAMt+D,IACds+D,EAAM04H,UACJ1iL,EAAK,UACLA,EAAKgqD,EAAMhtD,IACb+rK,EAAY/+G,EAAMt+D,KACmB,IAAlCX,OAAOi/D,EAAMt+D,KAAKuM,QAAQ+H,GAAYgqD,EAAMt+D,IAAMsU,EAAKgqD,EAAMt+D,IAC9Ds+D,EAAMt+D,IAEZ,IAAI0T,GAAQ4qD,EAAM5qD,OAAS4qD,EAAM5qD,KAAO,KAAKg/E,WAAa8sH,GAAsB9hN,MAC5EuiN,EAAcviN,KAAKynM,OACnBya,EAAWN,GAAaW,GAQ5B,GAJI3hJ,EAAM5qD,KAAKizC,YAAc2X,EAAM5qD,KAAKizC,WAAWl5C,KAAKqyM,MACtDxhJ,EAAM5qD,KAAKo0D,MAAO,GAIlB83I,GACAA,EAASlsM,OACRisM,GAAYrhJ,EAAOshJ,KACnBxoB,GAAmBwoB,MAElBA,EAASl+B,oBAAqBk+B,EAASl+B,kBAAkByjB,OAAOnO,WAClE,CAGA,IAAIn1C,EAAU+9D,EAASlsM,KAAKg/E,WAAavrC,EAAO,GAAIzzC,GAEpD,GAAa,WAATmc,EAOF,OALAnyB,KAAKsiN,UAAW,EAChBjjB,GAAel7C,EAAS,cAAc,WACpCujC,EAAO46B,UAAW,EAClB56B,EAAOzkB,kBAEFxmD,GAAY37G,EAAGihN,GACjB,GAAa,WAAT5vL,EAAmB,CAC5B,GAAIunK,GAAmB94H,GACrB,OAAO2hJ,EAET,IAAIC,EACAnC,EAAe,WAAcmC,KACjCnjB,GAAerpL,EAAM,aAAcqqM,GACnChhB,GAAerpL,EAAM,iBAAkBqqM,GACvChhB,GAAel7C,EAAS,cAAc,SAAUrpD,GAAS0nH,EAAe1nH,MAI5E,OAAOinH,KAMP50L,GAAQs8B,EAAO,CACjB71C,IAAKjS,OACL8gN,UAAW9gN,QACVolJ,WAEI55H,GAAMgF,KAEb,IAAIuwL,GAAkB,CACpBv1L,MAAOA,GAEP23G,YAAa,WACX,IAAI4iD,EAAS1nL,KAETylG,EAASzlG,KAAK2pM,QAClB3pM,KAAK2pM,QAAU,SAAU94G,EAAOw0G,GAC9B,IAAIyE,EAAwBR,GAAkB5hB,GAE9CA,EAAOqiB,UACLriB,EAAO+f,OACP/f,EAAOi7B,MACP,GACA,GAEFj7B,EAAO+f,OAAS/f,EAAOi7B,KACvB7Y,IACArkG,EAAOplG,KAAKqnL,EAAQ72F,EAAOw0G,KAI/BlmM,OAAQ,SAAiB2B,GAQvB,IAPA,IAAI8S,EAAM5T,KAAK4T,KAAO5T,KAAKC,OAAO+V,KAAKpC,KAAO,OAC1C/D,EAAMzM,OAAOvB,OAAO,MACpB+gN,EAAe5iN,KAAK4iN,aAAe5iN,KAAKypE,SACxCo5I,EAAc7iN,KAAKqmE,OAAOrB,SAAW,GACrCyE,EAAWzpE,KAAKypE,SAAW,GAC3Bq5I,EAAiBhB,GAAsB9hN,MAElCkK,EAAI,EAAGA,EAAI24M,EAAYlgN,OAAQuH,IAAK,CAC3C,IAAIsZ,EAAIq/L,EAAY34M,GACpB,GAAIsZ,EAAE5P,IACJ,GAAa,MAAT4P,EAAElhB,KAAoD,IAArCX,OAAO6hB,EAAElhB,KAAKuM,QAAQ,WACzC46D,EAASz6D,KAAKwU,GACd3T,EAAI2T,EAAElhB,KAAOkhB,GACXA,EAAExN,OAASwN,EAAExN,KAAO,KAAKg/E,WAAa8tH,QAS9C,GAAIF,EAAc,CAGhB,IAFA,IAAID,EAAO,GACP7sM,EAAU,GACLitK,EAAM,EAAGA,EAAM6/B,EAAajgN,OAAQogL,IAAO,CAClD,IAAIggC,EAAMH,EAAa7/B,GACvBggC,EAAI/sM,KAAKg/E,WAAa8tH,EACtBC,EAAI/sM,KAAK0c,IAAMqwL,EAAIjqB,IAAIj3H,wBACnBhyD,EAAIkzM,EAAIzgN,KACVqgN,EAAK3zM,KAAK+zM,GAEVjtM,EAAQ9G,KAAK+zM,GAGjB/iN,KAAK2iN,KAAO7hN,EAAE8S,EAAK,KAAM+uM,GACzB3iN,KAAK8V,QAAUA,EAGjB,OAAOhV,EAAE8S,EAAK,KAAM61D,IAGtByyB,QAAS,WACP,IAAIzyB,EAAWzpE,KAAK4iN,aAChBH,EAAYziN,KAAKyiN,YAAeziN,KAAKoK,MAAQ,KAAO,QACnDq/D,EAAS9mE,QAAW3C,KAAKgjN,QAAQv5I,EAAS,GAAGqvH,IAAK2pB,KAMvDh5I,EAASv8D,QAAQ+1M,IACjBx5I,EAASv8D,QAAQg2M,IACjBz5I,EAASv8D,QAAQi2M,IAKjBnjN,KAAKojN,QAAUtnM,SAAS0jD,KAAKW,aAE7BsJ,EAASv8D,SAAQ,SAAUsW,GACzB,GAAIA,EAAExN,KAAKqtM,MAAO,CAChB,IAAI30M,EAAK8U,EAAEs1K,IACPt5J,EAAI9wB,EAAG+d,MACX+wL,GAAmB9uM,EAAI+zM,GACvBjjL,EAAE2wC,UAAY3wC,EAAE8jL,gBAAkB9jL,EAAE+jL,mBAAqB,GACzD70M,EAAGsmB,iBAAiBmhE,GAAoBznF,EAAG80M,QAAU,SAAS3kJ,EAAIl/B,GAC5DA,GAAKA,EAAErzB,SAAWoC,GAGjBixB,IAAK,aAAarrB,KAAKqrB,EAAE8jL,gBAC5B/0M,EAAGizC,oBAAoBw0C,GAAoBt3B,GAC3CnwD,EAAG80M,QAAU,KACb9F,GAAsBhvM,EAAI+zM,YAOpCznM,QAAS,CACPgoM,QAAS,SAAkBt0M,EAAI+zM,GAE7B,IAAK7F,GACH,OAAO,EAGT,GAAI58M,KAAK0jN,SACP,OAAO1jN,KAAK0jN,SAOd,IAAIn9J,EAAQ73C,EAAGi1M,YACXj1M,EAAG+qM,oBACL/qM,EAAG+qM,mBAAmBvsM,SAAQ,SAAUqsM,GAAOt4I,GAAY1a,EAAOgzJ,MAEpEx4I,GAASxa,EAAOk8J,GAChBl8J,EAAM95B,MAAMC,QAAU,OACtB1sB,KAAKm3E,IAAIxqD,YAAY45B,GACrB,IAAIqhC,EAAOi2H,GAAkBt3J,GAE7B,OADAvmD,KAAKm3E,IAAIjiD,YAAYqxB,GACbvmD,KAAK0jN,SAAW97H,EAAK62H,gBAKnC,SAASwE,GAAgBz/L,GAEnBA,EAAEs1K,IAAI0qB,SACRhgM,EAAEs1K,IAAI0qB,UAGJhgM,EAAEs1K,IAAIgmB,UACRt7L,EAAEs1K,IAAIgmB,WAIV,SAASoE,GAAgB1/L,GACvBA,EAAExN,KAAK4tM,OAASpgM,EAAEs1K,IAAIj3H,wBAGxB,SAASshJ,GAAkB3/L,GACzB,IAAIqgM,EAASrgM,EAAExN,KAAK0c,IAChBkxL,EAASpgM,EAAExN,KAAK4tM,OAChBE,EAAKD,EAAOzyM,KAAOwyM,EAAOxyM,KAC1B2yM,EAAKF,EAAO1hJ,IAAMyhJ,EAAOzhJ,IAC7B,GAAI2hJ,GAAMC,EAAI,CACZvgM,EAAExN,KAAKqtM,OAAQ,EACf,IAAI7jL,EAAIhc,EAAEs1K,IAAIrsK,MACd+S,EAAE2wC,UAAY3wC,EAAE8jL,gBAAkB,aAAeQ,EAAK,MAAQC,EAAK,MACnEvkL,EAAE+jL,mBAAqB,MAI3B,IAAIS,GAAqB,CACvB3B,WAAYA,GACZK,gBAAiBA,IAMnBj6J,GAAIJ,OAAOsuI,YAAcA,GACzBluI,GAAIJ,OAAOiuI,cAAgBA,GAC3B7tI,GAAIJ,OAAOkuI,eAAiBA,GAC5B9tI,GAAIJ,OAAOouI,gBAAkBA,GAC7BhuI,GAAIJ,OAAOmuI,iBAAmBA,GAG9B/sI,EAAOhB,GAAI9oD,QAAQspD,WAAY04J,IAC/Bl4J,EAAOhB,GAAI9oD,QAAQqpD,WAAYg7J,IAG/Bv7J,GAAIvmD,UAAU6nM,UAAYzzB,EAAYmqC,GAAQ36L,EAG9C2iC,GAAIvmD,UAAUkuI,OAAS,SACrB1hI,EACA22L,GAGA,OADA32L,EAAKA,GAAM4nK,EAAY/oG,GAAM7+D,QAAMvM,EAC5B+nM,GAAelqM,KAAM0O,EAAI22L,IAK9B/uB,GACFnhJ,YAAW,WACLkzB,EAAO4tI,UACLA,IACFA,GAAS3yJ,KAAK,OAAQmlB,MAsBzB,GAKL,iB,iGC5yQA,IAAIv7C,EAAU2iC,EAAQ,MAClByjI,EAAuBzjI,EAAQ,KAC/BmiI,EAAYniI,EAAQ,MAEpBrJ,EAAYwrI,EAAU,6BACtBD,EAAiBliI,EAAQ,IAARA,GAEjBhtB,EAA0B,qBAAfD,WAA6Blf,EAAAA,EAASkf,WACjD2wJ,EAAcD,IAEdE,EAASxB,EAAU,0BACnByB,EAAY,GACZC,EAAO7jI,EAAQ,MACf9rC,EAAiBX,OAAOW,eACxBguK,GAAkB2B,GAAQ3vK,GAC7BmJ,EAAQqmK,GAAa,SAAUI,GAC9B,GAA6B,oBAAlB9wJ,EAAE8wJ,GAA4B,CACxC,IAAI94H,EAAM,IAAIh4B,EAAE8wJ,GAChB,GAAI/3J,OAAO81J,eAAe72H,EAAK,CAC9B,IAAIp/B,EAAQ1X,EAAe82C,GACvB7gC,EAAa05J,EAAKj4J,EAAOG,OAAO81J,aACpC,IAAK13J,EAAY,CAChB,IAAI45J,EAAa7vK,EAAe0X,GAChCzB,EAAa05J,EAAKE,EAAYh4J,OAAO81J,aAEtC+B,EAAUE,GAAc35J,EAAWtT,SAMvC,IAAImtK,EAAiB,SAA2BxxK,GAC/C,IAAI4hN,GAAY,EAWhB,OAVA/2M,EAAQumK,GAAW,SAAUx5J,EAAQ05J,GACpC,IAAKswC,EACJ,IACC,IAAI75M,EAAO6P,EAAO5Z,KAAKgC,GACnB+H,IAASupK,IACZswC,EAAY75M,GAEZ,MAAOu1B,QAGJskL,GAGJr+M,EAAeiqC,EAAQ,MAE3BtuC,EAAOL,QAAU,SAAyBmB,GACzC,QAAKuD,EAAavD,KACb0vK,GAAoBn2J,OAAO81J,eAAervK,EACxCwxK,EAAexxK,GAD0CmxK,EAAOhtI,EAAUnkC,GAAQ,GAAI,M,yCClD9F,IAAI6hN,EAAgB,CACnB,gBACA,iBACA,eACA,eACA,aACA,aACA,YACA,cACA,cACA,aACA,qBAGGrhM,EAA0B,qBAAfD,WAA6Blf,EAAAA,EAASkf,WAErDrhB,EAAOL,QAAU,WAEhB,IADA,IAAIijN,EAAM,GACDj6M,EAAI,EAAGA,EAAIg6M,EAAcvhN,OAAQuH,IACN,oBAAxB2Y,EAAEqhM,EAAch6M,MAC1Bi6M,EAAIA,EAAIxhN,QAAUuhN,EAAch6M,IAGlC,OAAOi6M,I,kCCvBR,IAAIh4C,EAAet8H,EAAQ,MAEvB68H,EAAQP,EAAa,qCAAqC,GAC9D,GAAIO,EACH,IACCA,EAAM,GAAI,UACT,MAAO/sI,GAER+sI,EAAQ,KAIVnrK,EAAOL,QAAUwrK,G,kHCdF,SAASn9H,EAAQvnB,GAG9B,OAAOunB,EAAU,mBAAqB3zB,QAAU,iBAAmBA,OAAO1N,SAAW,SAAU8Z,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBpM,QAAUoM,EAAIxd,cAAgBoR,QAAUoM,IAAQpM,OAAO1Z,UAAY,gBAAkB8lB,GACvHunB,EAAQvnB","sources":["webpack://africa-risk/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://africa-risk/./node_modules/core-js/internals/a-callable.js","webpack://africa-risk/./node_modules/core-js/internals/a-constructor.js","webpack://africa-risk/./node_modules/core-js/internals/a-possible-prototype.js","webpack://africa-risk/./node_modules/core-js/internals/add-to-unscopables.js","webpack://africa-risk/./node_modules/core-js/internals/advance-string-index.js","webpack://africa-risk/./node_modules/core-js/internals/an-instance.js","webpack://africa-risk/./node_modules/core-js/internals/an-object.js","webpack://africa-risk/./node_modules/core-js/internals/array-buffer-native.js","webpack://africa-risk/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://africa-risk/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://africa-risk/./node_modules/core-js/internals/array-buffer.js","webpack://africa-risk/./node_modules/core-js/internals/array-copy-within.js","webpack://africa-risk/./node_modules/core-js/internals/array-fill.js","webpack://africa-risk/./node_modules/core-js/internals/array-for-each.js","webpack://africa-risk/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://africa-risk/./node_modules/core-js/internals/array-from.js","webpack://africa-risk/./node_modules/core-js/internals/array-includes.js","webpack://africa-risk/./node_modules/core-js/internals/array-iteration.js","webpack://africa-risk/./node_modules/core-js/internals/array-last-index-of.js","webpack://africa-risk/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://africa-risk/./node_modules/core-js/internals/array-method-is-strict.js","webpack://africa-risk/./node_modules/core-js/internals/array-reduce.js","webpack://africa-risk/./node_modules/core-js/internals/array-slice-simple.js","webpack://africa-risk/./node_modules/core-js/internals/array-slice.js","webpack://africa-risk/./node_modules/core-js/internals/array-sort.js","webpack://africa-risk/./node_modules/core-js/internals/array-species-constructor.js","webpack://africa-risk/./node_modules/core-js/internals/array-species-create.js","webpack://africa-risk/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://africa-risk/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://africa-risk/./node_modules/core-js/internals/classof-raw.js","webpack://africa-risk/./node_modules/core-js/internals/classof.js","webpack://africa-risk/./node_modules/core-js/internals/clear-error-stack.js","webpack://africa-risk/./node_modules/core-js/internals/collection-strong.js","webpack://africa-risk/./node_modules/core-js/internals/collection-weak.js","webpack://africa-risk/./node_modules/core-js/internals/collection.js","webpack://africa-risk/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://africa-risk/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://africa-risk/./node_modules/core-js/internals/create-html.js","webpack://africa-risk/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://africa-risk/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://africa-risk/./node_modules/core-js/internals/create-property-descriptor.js","webpack://africa-risk/./node_modules/core-js/internals/create-property.js","webpack://africa-risk/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://africa-risk/./node_modules/core-js/internals/define-built-in.js","webpack://africa-risk/./node_modules/core-js/internals/define-built-ins.js","webpack://africa-risk/./node_modules/core-js/internals/define-global-property.js","webpack://africa-risk/./node_modules/core-js/internals/define-iterator.js","webpack://africa-risk/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://africa-risk/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://africa-risk/./node_modules/core-js/internals/descriptors.js","webpack://africa-risk/./node_modules/core-js/internals/document-create-element.js","webpack://africa-risk/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://africa-risk/./node_modules/core-js/internals/dom-iterables.js","webpack://africa-risk/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://africa-risk/./node_modules/core-js/internals/engine-ff-version.js","webpack://africa-risk/./node_modules/core-js/internals/engine-is-browser.js","webpack://africa-risk/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://africa-risk/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://africa-risk/./node_modules/core-js/internals/engine-is-ios.js","webpack://africa-risk/./node_modules/core-js/internals/engine-is-node.js","webpack://africa-risk/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://africa-risk/./node_modules/core-js/internals/engine-user-agent.js","webpack://africa-risk/./node_modules/core-js/internals/engine-v8-version.js","webpack://africa-risk/./node_modules/core-js/internals/engine-webkit-version.js","webpack://africa-risk/./node_modules/core-js/internals/enum-bug-keys.js","webpack://africa-risk/./node_modules/core-js/internals/error-stack-installable.js","webpack://africa-risk/./node_modules/core-js/internals/export.js","webpack://africa-risk/./node_modules/core-js/internals/fails.js","webpack://africa-risk/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://africa-risk/./node_modules/core-js/internals/freezing.js","webpack://africa-risk/./node_modules/core-js/internals/function-apply.js","webpack://africa-risk/./node_modules/core-js/internals/function-bind-context.js","webpack://africa-risk/./node_modules/core-js/internals/function-bind-native.js","webpack://africa-risk/./node_modules/core-js/internals/function-bind.js","webpack://africa-risk/./node_modules/core-js/internals/function-call.js","webpack://africa-risk/./node_modules/core-js/internals/function-name.js","webpack://africa-risk/./node_modules/core-js/internals/function-uncurry-this.js","webpack://africa-risk/./node_modules/core-js/internals/get-built-in.js","webpack://africa-risk/./node_modules/core-js/internals/get-iterator-method.js","webpack://africa-risk/./node_modules/core-js/internals/get-iterator.js","webpack://africa-risk/./node_modules/core-js/internals/get-method.js","webpack://africa-risk/./node_modules/core-js/internals/get-substitution.js","webpack://africa-risk/./node_modules/core-js/internals/global.js","webpack://africa-risk/./node_modules/core-js/internals/has-own-property.js","webpack://africa-risk/./node_modules/core-js/internals/hidden-keys.js","webpack://africa-risk/./node_modules/core-js/internals/host-report-errors.js","webpack://africa-risk/./node_modules/core-js/internals/html.js","webpack://africa-risk/./node_modules/core-js/internals/ie8-dom-define.js","webpack://africa-risk/./node_modules/core-js/internals/ieee754.js","webpack://africa-risk/./node_modules/core-js/internals/indexed-object.js","webpack://africa-risk/./node_modules/core-js/internals/inherit-if-required.js","webpack://africa-risk/./node_modules/core-js/internals/inspect-source.js","webpack://africa-risk/./node_modules/core-js/internals/install-error-cause.js","webpack://africa-risk/./node_modules/core-js/internals/internal-metadata.js","webpack://africa-risk/./node_modules/core-js/internals/internal-state.js","webpack://africa-risk/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://africa-risk/./node_modules/core-js/internals/is-array.js","webpack://africa-risk/./node_modules/core-js/internals/is-callable.js","webpack://africa-risk/./node_modules/core-js/internals/is-constructor.js","webpack://africa-risk/./node_modules/core-js/internals/is-data-descriptor.js","webpack://africa-risk/./node_modules/core-js/internals/is-forced.js","webpack://africa-risk/./node_modules/core-js/internals/is-integral-number.js","webpack://africa-risk/./node_modules/core-js/internals/is-object.js","webpack://africa-risk/./node_modules/core-js/internals/is-pure.js","webpack://africa-risk/./node_modules/core-js/internals/is-regexp.js","webpack://africa-risk/./node_modules/core-js/internals/is-symbol.js","webpack://africa-risk/./node_modules/core-js/internals/iterate.js","webpack://africa-risk/./node_modules/core-js/internals/iterator-close.js","webpack://africa-risk/./node_modules/core-js/internals/iterators-core.js","webpack://africa-risk/./node_modules/core-js/internals/iterators.js","webpack://africa-risk/./node_modules/core-js/internals/length-of-array-like.js","webpack://africa-risk/./node_modules/core-js/internals/make-built-in.js","webpack://africa-risk/./node_modules/core-js/internals/math-trunc.js","webpack://africa-risk/./node_modules/core-js/internals/microtask.js","webpack://africa-risk/./node_modules/core-js/internals/native-symbol-registry.js","webpack://africa-risk/./node_modules/core-js/internals/native-symbol.js","webpack://africa-risk/./node_modules/core-js/internals/native-weak-map.js","webpack://africa-risk/./node_modules/core-js/internals/new-promise-capability.js","webpack://africa-risk/./node_modules/core-js/internals/normalize-string-argument.js","webpack://africa-risk/./node_modules/core-js/internals/object-assign.js","webpack://africa-risk/./node_modules/core-js/internals/object-create.js","webpack://africa-risk/./node_modules/core-js/internals/object-define-properties.js","webpack://africa-risk/./node_modules/core-js/internals/object-define-property.js","webpack://africa-risk/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://africa-risk/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://africa-risk/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://africa-risk/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://africa-risk/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://africa-risk/./node_modules/core-js/internals/object-is-extensible.js","webpack://africa-risk/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://africa-risk/./node_modules/core-js/internals/object-keys-internal.js","webpack://africa-risk/./node_modules/core-js/internals/object-keys.js","webpack://africa-risk/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://africa-risk/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://africa-risk/./node_modules/core-js/internals/object-to-string.js","webpack://africa-risk/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://africa-risk/./node_modules/core-js/internals/own-keys.js","webpack://africa-risk/./node_modules/core-js/internals/path.js","webpack://africa-risk/./node_modules/core-js/internals/perform.js","webpack://africa-risk/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://africa-risk/./node_modules/core-js/internals/promise-native-constructor.js","webpack://africa-risk/./node_modules/core-js/internals/promise-resolve.js","webpack://africa-risk/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://africa-risk/./node_modules/core-js/internals/proxy-accessor.js","webpack://africa-risk/./node_modules/core-js/internals/queue.js","webpack://africa-risk/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://africa-risk/./node_modules/core-js/internals/regexp-exec.js","webpack://africa-risk/./node_modules/core-js/internals/regexp-flags.js","webpack://africa-risk/./node_modules/core-js/internals/regexp-get-flags.js","webpack://africa-risk/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://africa-risk/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://africa-risk/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://africa-risk/./node_modules/core-js/internals/require-object-coercible.js","webpack://africa-risk/./node_modules/core-js/internals/same-value.js","webpack://africa-risk/./node_modules/core-js/internals/set-species.js","webpack://africa-risk/./node_modules/core-js/internals/set-to-string-tag.js","webpack://africa-risk/./node_modules/core-js/internals/shared-key.js","webpack://africa-risk/./node_modules/core-js/internals/shared-store.js","webpack://africa-risk/./node_modules/core-js/internals/shared.js","webpack://africa-risk/./node_modules/core-js/internals/species-constructor.js","webpack://africa-risk/./node_modules/core-js/internals/string-html-forced.js","webpack://africa-risk/./node_modules/core-js/internals/string-multibyte.js","webpack://africa-risk/./node_modules/core-js/internals/string-repeat.js","webpack://africa-risk/./node_modules/core-js/internals/string-trim-forced.js","webpack://africa-risk/./node_modules/core-js/internals/string-trim.js","webpack://africa-risk/./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://africa-risk/./node_modules/core-js/internals/task.js","webpack://africa-risk/./node_modules/core-js/internals/this-number-value.js","webpack://africa-risk/./node_modules/core-js/internals/to-absolute-index.js","webpack://africa-risk/./node_modules/core-js/internals/to-big-int.js","webpack://africa-risk/./node_modules/core-js/internals/to-index.js","webpack://africa-risk/./node_modules/core-js/internals/to-indexed-object.js","webpack://africa-risk/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://africa-risk/./node_modules/core-js/internals/to-length.js","webpack://africa-risk/./node_modules/core-js/internals/to-object.js","webpack://africa-risk/./node_modules/core-js/internals/to-offset.js","webpack://africa-risk/./node_modules/core-js/internals/to-positive-integer.js","webpack://africa-risk/./node_modules/core-js/internals/to-primitive.js","webpack://africa-risk/./node_modules/core-js/internals/to-property-key.js","webpack://africa-risk/./node_modules/core-js/internals/to-string-tag-support.js","webpack://africa-risk/./node_modules/core-js/internals/to-string.js","webpack://africa-risk/./node_modules/core-js/internals/try-to-string.js","webpack://africa-risk/./node_modules/core-js/internals/typed-array-constructor.js","webpack://africa-risk/./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://africa-risk/./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack://africa-risk/./node_modules/core-js/internals/typed-array-from.js","webpack://africa-risk/./node_modules/core-js/internals/typed-array-species-constructor.js","webpack://africa-risk/./node_modules/core-js/internals/uid.js","webpack://africa-risk/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://africa-risk/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://africa-risk/./node_modules/core-js/internals/validate-arguments-length.js","webpack://africa-risk/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://africa-risk/./node_modules/core-js/internals/well-known-symbol.js","webpack://africa-risk/./node_modules/core-js/internals/whitespaces.js","webpack://africa-risk/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://africa-risk/./node_modules/core-js/modules/es.aggregate-error.cause.js","webpack://africa-risk/./node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.aggregate-error.js","webpack://africa-risk/./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.concat.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.fill.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.filter.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.find-index.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.find.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.from.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.includes.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.iterator.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.join.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.map.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.slice.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.sort.js","webpack://africa-risk/./node_modules/core-js/modules/es.array.splice.js","webpack://africa-risk/./node_modules/core-js/modules/es.error.cause.js","webpack://africa-risk/./node_modules/core-js/modules/es.function.name.js","webpack://africa-risk/./node_modules/core-js/modules/es.global-this.js","webpack://africa-risk/./node_modules/core-js/modules/es.json.stringify.js","webpack://africa-risk/./node_modules/core-js/modules/es.json.to-string-tag.js","webpack://africa-risk/./node_modules/core-js/modules/es.map.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.map.js","webpack://africa-risk/./node_modules/core-js/modules/es.math.to-string-tag.js","webpack://africa-risk/./node_modules/core-js/modules/es.number.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.number.is-nan.js","webpack://africa-risk/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.assign.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.freeze.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.is-extensible.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.is-frozen.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.is.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.keys.js","webpack://africa-risk/./node_modules/core-js/modules/es.object.to-string.js","webpack://africa-risk/./node_modules/core-js/modules/es.promise.all.js","webpack://africa-risk/./node_modules/core-js/modules/es.promise.catch.js","webpack://africa-risk/./node_modules/core-js/modules/es.promise.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.promise.finally.js","webpack://africa-risk/./node_modules/core-js/modules/es.promise.js","webpack://africa-risk/./node_modules/core-js/modules/es.promise.race.js","webpack://africa-risk/./node_modules/core-js/modules/es.promise.reject.js","webpack://africa-risk/./node_modules/core-js/modules/es.promise.resolve.js","webpack://africa-risk/./node_modules/core-js/modules/es.reflect.apply.js","webpack://africa-risk/./node_modules/core-js/modules/es.reflect.construct.js","webpack://africa-risk/./node_modules/core-js/modules/es.reflect.get.js","webpack://africa-risk/./node_modules/core-js/modules/es.reflect.own-keys.js","webpack://africa-risk/./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack://africa-risk/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.regexp.dot-all.js","webpack://africa-risk/./node_modules/core-js/modules/es.regexp.exec.js","webpack://africa-risk/./node_modules/core-js/modules/es.regexp.flags.js","webpack://africa-risk/./node_modules/core-js/modules/es.regexp.sticky.js","webpack://africa-risk/./node_modules/core-js/modules/es.regexp.test.js","webpack://africa-risk/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://africa-risk/./node_modules/core-js/modules/es.set.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.set.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.fixed.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.iterator.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.link.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.match.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.repeat.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.replace.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.search.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.small.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.split.js","webpack://africa-risk/./node_modules/core-js/modules/es.string.trim.js","webpack://africa-risk/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.symbol.description.js","webpack://africa-risk/./node_modules/core-js/modules/es.symbol.for.js","webpack://africa-risk/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://africa-risk/./node_modules/core-js/modules/es.symbol.js","webpack://africa-risk/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://africa-risk/./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.at.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.every.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.fill.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.filter.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.find-index.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.find.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.for-each.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.includes.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.index-of.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.int16-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.int32-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.int8-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.iterator.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.join.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.map.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.reduce.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.reverse.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.set.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.slice.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.some.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.sort.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.subarray.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.to-string.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack://africa-risk/./node_modules/core-js/modules/es.weak-map.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.weak-map.js","webpack://africa-risk/./node_modules/core-js/modules/es.weak-set.constructor.js","webpack://africa-risk/./node_modules/core-js/modules/es.weak-set.js","webpack://africa-risk/./node_modules/core-js/modules/web.clear-immediate.js","webpack://africa-risk/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://africa-risk/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://africa-risk/./node_modules/core-js/modules/web.immediate.js","webpack://africa-risk/./node_modules/core-js/modules/web.set-immediate.js","webpack://africa-risk/./node_modules/@babel/runtime/helpers/typeof.js","webpack://africa-risk/./node_modules/assert/build/assert.js","webpack://africa-risk/./node_modules/assert/build/internal/assert/assertion_error.js","webpack://africa-risk/./node_modules/assert/build/internal/errors.js","webpack://africa-risk/./node_modules/assert/build/internal/util/comparisons.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/env.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/config.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/regex.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/safe-types.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/inspect.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/object.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/clone-deep.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/identity.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/get.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/env.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/warn.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/config-set.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/plugins.js","webpack://africa-risk/../src/index.ts","webpack://africa-risk/./node_modules/bootstrap-vue/esm/vue.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/components.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/events.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/props.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/slots.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/array.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/number.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/string.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/dom.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/memoize.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/config.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/props.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/model.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/normalize-slot.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/normalize-slot.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/events.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/button/button-close.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/transition/bv-transition.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/alert/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/math.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/aspect/aspect.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/aspect/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/router.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/icons/helpers/icon-base.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/icons/helpers/make-icon.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/icons/icons.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/icons/icon.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/key-codes.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/loose-equal.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/cache.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/attrs.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/listen-on-root.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/listeners.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/link/link.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/button/button.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/avatar/avatar-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/avatar/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/badge/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/html.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb-link.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb-item.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/breadcrumb/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/button/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/button-group/button-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/button-group/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/button-toolbar/button-toolbar.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/button-toolbar/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/date.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/date.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/locale.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/id.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/calendar/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/card.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/image/img.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/image/img-lazy.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-img-lazy.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/card-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/card/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/noop.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/observe-dom.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/carousel/carousel.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/carousel/carousel-slide.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/collapse/collapse.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/carousel/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/classes.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/collapse/helpers/bv-collapse.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/toggle/toggle.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/toggle/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/collapse/index.js","webpack://africa-risk/../../src/utils/isBrowser.js","webpack://africa-risk/../../src/utils/debounce.js","webpack://africa-risk/../../src/utils/isFunction.js","webpack://africa-risk/../../src/utils/getStyleComputedProperty.js","webpack://africa-risk/../../src/utils/getParentNode.js","webpack://africa-risk/../../src/utils/getScrollParent.js","webpack://africa-risk/../../src/utils/getReferenceNode.js","webpack://africa-risk/../../src/utils/isIE.js","webpack://africa-risk/../../src/utils/getOffsetParent.js","webpack://africa-risk/../../src/utils/isOffsetContainer.js","webpack://africa-risk/../../src/utils/getRoot.js","webpack://africa-risk/../../src/utils/findCommonOffsetParent.js","webpack://africa-risk/../../src/utils/getScroll.js","webpack://africa-risk/../../src/utils/includeScroll.js","webpack://africa-risk/../../src/utils/getBordersSize.js","webpack://africa-risk/../../src/utils/getWindowSizes.js","webpack://africa-risk/../../src/utils/getClientRect.js","webpack://africa-risk/../../src/utils/getBoundingClientRect.js","webpack://africa-risk/../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack://africa-risk/../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack://africa-risk/../../src/utils/isFixed.js","webpack://africa-risk/../../src/utils/getFixedPositionOffsetParent.js","webpack://africa-risk/../../src/utils/getBoundaries.js","webpack://africa-risk/../../src/utils/computeAutoPlacement.js","webpack://africa-risk/../../src/utils/getReferenceOffsets.js","webpack://africa-risk/../../src/utils/getOuterSizes.js","webpack://africa-risk/../../src/utils/getOppositePlacement.js","webpack://africa-risk/../../src/utils/getPopperOffsets.js","webpack://africa-risk/../../src/utils/find.js","webpack://africa-risk/../../src/utils/findIndex.js","webpack://africa-risk/../../src/utils/runModifiers.js","webpack://africa-risk/../../src/methods/update.js","webpack://africa-risk/../../src/utils/isModifierEnabled.js","webpack://africa-risk/../../src/utils/getSupportedPropertyName.js","webpack://africa-risk/../../src/methods/destroy.js","webpack://africa-risk/../../src/utils/getWindow.js","webpack://africa-risk/../../src/utils/setupEventListeners.js","webpack://africa-risk/../../src/methods/enableEventListeners.js","webpack://africa-risk/../../src/utils/removeEventListeners.js","webpack://africa-risk/../../src/methods/disableEventListeners.js","webpack://africa-risk/../../src/utils/isNumeric.js","webpack://africa-risk/../../src/utils/setStyles.js","webpack://africa-risk/../../src/utils/setAttributes.js","webpack://africa-risk/../../src/modifiers/applyStyle.js","webpack://africa-risk/../../src/utils/getRoundedOffsets.js","webpack://africa-risk/../../src/modifiers/computeStyle.js","webpack://africa-risk/../../src/utils/isModifierRequired.js","webpack://africa-risk/../../src/modifiers/arrow.js","webpack://africa-risk/../../src/utils/getOppositeVariation.js","webpack://africa-risk/../../src/methods/placements.js","webpack://africa-risk/../../src/utils/clockwise.js","webpack://africa-risk/../../src/modifiers/flip.js","webpack://africa-risk/../../src/modifiers/keepTogether.js","webpack://africa-risk/../../src/modifiers/offset.js","webpack://africa-risk/../../src/modifiers/preventOverflow.js","webpack://africa-risk/../../src/modifiers/shift.js","webpack://africa-risk/../../src/modifiers/hide.js","webpack://africa-risk/../../src/modifiers/inner.js","webpack://africa-risk/../../src/modifiers/index.js","webpack://africa-risk/../../src/methods/defaults.js","webpack://africa-risk/../../src/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/constants/popper.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/bv-event.class.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item-button.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-header.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-divider.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form/form.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-form.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-text.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/dropdown/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/embed/embed.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/embed/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-options.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form/form-datalist.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-radio-check-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-checkbox/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/hover/hover.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-btn-label-control/bv-form-btn-label-control.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-datepicker/form-datepicker.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-datepicker/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-file/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/layout/col.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-group/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-rating/form-rating.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-input/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-radio/form-radio-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-radio/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-rating/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/model.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-select/helpers/mixin-options.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-select/form-select-option.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-select/form-select-option-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-select/form-select.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-spinbutton/form-spinbutton.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-select/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-spinbutton/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-tags/form-tag.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-tags/form-tags.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-tags/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/time/time.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-textarea/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-timepicker/form-timepicker.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/form-timepicker/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/image/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/input-group/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/layout/container.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/jumbotron/jumbotron.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/jumbotron/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/layout/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/link/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/list-group/list-group.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/list-group/list-group-item.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/list-group/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/media/media.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/media/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/listen-on-document.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/listen-on-window.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/get-scope-id.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/scoped-style.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/transporter/transporter.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal-event.class.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/modal/helpers/modal-manager.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/modal/modal.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/modal/modal.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/modal/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/nav/nav-item.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/nav/nav-text.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/nav/nav-form.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/nav/nav-item-dropdown.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/nav/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/navbar/navbar.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/navbar/navbar-nav.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/navbar/navbar-brand.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/navbar/navbar-toggle.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/navbar/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/overlay/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/pagination/pagination.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/pagination/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/pagination-nav/pagination-nav.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/pagination-nav/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover-template.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/popover/popover.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/popover/popover.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/popover/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/popover/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/progress/progress-bar.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/progress/progress.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/sidebar/sidebar.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/progress/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/sidebar/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-icon.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-img.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/mixins/has-listener.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/table-simple.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-table.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-wrapper.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/skeleton/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/spinner/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/tr.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/td.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-caption.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/sanitize-row.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-record-values.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-filtering.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/normalize-fields.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-items.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-pagination.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-provider.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-selectable.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-sorting.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/default-sort-compare.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/th.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody-row.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-top-row.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/table.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/table-lite.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/tabs/tabs.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/table/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/toast/toast.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/tabs/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/time/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/toast/toaster.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/toast/helpers/bv-toast.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/toast/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/tooltip/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/tooltip/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/components/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/hover/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/modal/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/scrollspy/helpers/bv-scrollspy.class.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/scrollspy/scrollspy.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/scrollspy/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/visible/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/directives/index.js","webpack://africa-risk/./node_modules/bootstrap-vue/esm/index.js","webpack://africa-risk/./node_modules/call-bind/callBound.js","webpack://africa-risk/./node_modules/call-bind/index.js","webpack://africa-risk/./node_modules/console-browserify/index.js","webpack://africa-risk/./node_modules/define-properties/index.js","webpack://africa-risk/./node_modules/es6-object-assign/index.js","webpack://africa-risk/./node_modules/for-each/index.js","webpack://africa-risk/./node_modules/function-bind/implementation.js","webpack://africa-risk/./node_modules/function-bind/index.js","webpack://africa-risk/./node_modules/get-intrinsic/index.js","webpack://africa-risk/./node_modules/has-property-descriptors/index.js","webpack://africa-risk/./node_modules/has-symbols/index.js","webpack://africa-risk/./node_modules/has-symbols/shams.js","webpack://africa-risk/./node_modules/has-tostringtag/shams.js","webpack://africa-risk/./node_modules/has/src/index.js","webpack://africa-risk/./node_modules/inherits/inherits_browser.js","webpack://africa-risk/./node_modules/is-arguments/index.js","webpack://africa-risk/./node_modules/is-callable/index.js","webpack://africa-risk/./node_modules/is-generator-function/index.js","webpack://africa-risk/./node_modules/is-nan/implementation.js","webpack://africa-risk/./node_modules/is-nan/index.js","webpack://africa-risk/./node_modules/is-nan/polyfill.js","webpack://africa-risk/./node_modules/is-nan/shim.js","webpack://africa-risk/./node_modules/is-typed-array/index.js","webpack://africa-risk/./node_modules/object-is/implementation.js","webpack://africa-risk/./node_modules/object-is/index.js","webpack://africa-risk/./node_modules/object-is/polyfill.js","webpack://africa-risk/./node_modules/object-is/shim.js","webpack://africa-risk/./node_modules/object-keys/implementation.js","webpack://africa-risk/./node_modules/object-keys/index.js","webpack://africa-risk/./node_modules/object-keys/isArguments.js","webpack://africa-risk/../src/utils/index.ts","webpack://africa-risk/../src/components/wormhole.ts","webpack://africa-risk/../src/components/portal.tsx","webpack://africa-risk/../src/components/portal-target.tsx","webpack://africa-risk/../src/components/mounting-portal.tsx","webpack://africa-risk/./node_modules/process/browser.js","webpack://africa-risk/./node_modules/util/support/isBufferBrowser.js","webpack://africa-risk/./node_modules/util/support/types.js","webpack://africa-risk/./node_modules/util/util.js","webpack://africa-risk/./node_modules/vue-router/dist/vue-router.esm.js","webpack://africa-risk/./node_modules/vue/dist/vue.runtime.esm.js","webpack://africa-risk/./node_modules/which-typed-array/index.js","webpack://africa-risk/./node_modules/available-typed-arrays/index.js","webpack://africa-risk/./node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://africa-risk/./node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es-x/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es-x/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\n/* eslint-disable es-x/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '' + tag + '>';\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n } return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","module.exports = typeof window == 'object' && typeof Deno != 'object';\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es-x/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es-x/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n defineProperty(value, 'name', { value: name, configurable: true });\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\n/* eslint-disable es-x/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es-x/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es-x/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.22.8',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.22.8/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es-x/no-bigint -- safe\n return BigInt(prim);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw $RangeError('Wrong length or index');\n return length;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw $RangeError('Wrong offset');\n return offset;\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n aTypedArrayConstructor(C);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor != NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar fails = require('../internals/fails');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar AGGREGATE_ERROR = 'AggregateError';\nvar $AggregateError = getBuiltIn(AGGREGATE_ERROR);\nvar FORCED = !fails(function () {\n return $AggregateError([1]).errors[0] !== 1;\n}) && fails(function () {\n return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7;\n});\n\n// https://github.com/tc39/proposal-error-cause\n$({ global: true, constructor: true, arity: 2, forced: FORCED }, {\n AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) {\n // eslint-disable-next-line no-unused-vars -- required for functions `.length`\n return function AggregateError(errors, message) { return apply(init, this, arguments); };\n }, FORCED, true)\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es-x/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n globalThis: global\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });\n}\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number != number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es-x/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es-x/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar $isExtensible = require('../internals/object-is-extensible');\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\n$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, {\n isExtensible: $isExtensible\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE }, {\n isFrozen: function isFrozen(it) {\n if (!isObject(it)) return true;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return true;\n return $isFrozen ? $isFrozen(it) : false;\n }\n});\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var $ = require('../internals/export');\nvar functionApply = require('../internals/function-apply');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n // eslint-disable-next-line es-x/no-reflect -- required for testing\n Reflect.apply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n return functionApply(aCallable(target), thisArgument, anObject(argumentsList));\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineBuiltInAccessor(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function dotAll() {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n return Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy';\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineBuiltInAccessor(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function sticky() {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar $TypeError = TypeError;\nvar un$Test = uncurryThis(/./.test);\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n var exec = this.exec;\n if (!isCallable(exec)) return un$Test(this, str);\n var result = call(exec, this, str);\n if (result !== null && !isObject(result)) {\n throw new $TypeError('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es-x/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {\n un$Sort(new Uint16Array(2), null);\n}) && fails(function () {\n un$Sort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!un$Sort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n un$Sort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return un$Sort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar isExtensible = require('../internals/object-is-extensible');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n var nativeSet = uncurryThis(WeakMapPrototype.set);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n}\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-set.constructor');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setImmediate = require('../internals/task').set;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, 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 _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } 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 _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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } 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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 } }); 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\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","export var HAS_WINDOW_SUPPORT = typeof window !== 'undefined';\nexport var HAS_DOCUMENT_SUPPORT = typeof document !== 'undefined';\nexport var HAS_NAVIGATOR_SUPPORT = typeof navigator !== 'undefined';\nexport var HAS_PROMISE_SUPPORT = typeof Promise !== 'undefined';\n/* istanbul ignore next: JSDOM always returns false */\n\nexport var HAS_MUTATION_OBSERVER_SUPPORT = typeof MutationObserver !== 'undefined' || typeof WebKitMutationObserver !== 'undefined' || typeof MozMutationObserver !== 'undefined';\nexport var IS_BROWSER = HAS_WINDOW_SUPPORT && HAS_DOCUMENT_SUPPORT && HAS_NAVIGATOR_SUPPORT;\nexport var WINDOW = HAS_WINDOW_SUPPORT ? window : {};\nexport var DOCUMENT = HAS_DOCUMENT_SUPPORT ? document : {};\nexport var NAVIGATOR = HAS_NAVIGATOR_SUPPORT ? navigator : {};\nexport var USER_AGENT = (NAVIGATOR.userAgent || '').toLowerCase();\nexport var IS_JSDOM = USER_AGENT.indexOf('jsdom') > 0;\nexport var IS_IE = /msie|trident/.test(USER_AGENT); // Determine if the browser supports the option passive for events\n\nexport var HAS_PASSIVE_EVENT_SUPPORT = function () {\n var passiveEventSupported = false;\n\n if (IS_BROWSER) {\n try {\n var options = {\n // This function will be called when the browser\n // attempts to access the passive property\n get passive() {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = true;\n }\n\n };\n WINDOW.addEventListener('test', options, options);\n WINDOW.removeEventListener('test', options, options);\n } catch (_unused) {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = false;\n }\n }\n\n return passiveEventSupported;\n}();\nexport var HAS_TOUCH_SUPPORT = IS_BROWSER && ('ontouchstart' in DOCUMENT.documentElement || NAVIGATOR.maxTouchPoints > 0);\nexport var HAS_POINTER_EVENT_SUPPORT = IS_BROWSER && Boolean(WINDOW.PointerEvent || WINDOW.MSPointerEvent);\n/* istanbul ignore next: JSDOM only checks for 'IntersectionObserver' */\n\nexport var HAS_INTERACTION_OBSERVER_SUPPORT = IS_BROWSER && 'IntersectionObserver' in WINDOW && 'IntersectionObserverEntry' in WINDOW && // Edge 15 and UC Browser lack support for `isIntersecting`\n// but we an use `intersectionRatio > 0` instead\n// 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\n'intersectionRatio' in WINDOW.IntersectionObserverEntry.prototype;","export var NAME = 'BvConfig';\nexport var PROP_NAME = '$bvConfig';\nexport var DEFAULT_BREAKPOINT = ['xs', 'sm', 'md', 'lg', 'xl'];","// --- General ---\nexport var RX_ARRAY_NOTATION = /\\[(\\d+)]/g;\nexport var RX_BV_PREFIX = /^(BV?)/;\nexport var RX_DIGITS = /^\\d+$/;\nexport var RX_EXTENSION = /^\\..+/;\nexport var RX_HASH = /^#/;\nexport var RX_HASH_ID = /^#[A-Za-z]+[\\w\\-:.]*$/;\nexport var RX_HTML_TAGS = /(<([^>]+)>)/gi;\nexport var RX_HYPHENATE = /\\B([A-Z])/g;\nexport var RX_LOWER_UPPER = /([a-z])([A-Z])/g;\nexport var RX_NUMBER = /^[0-9]*\\.?[0-9]+$/;\nexport var RX_PLUS = /\\+/g;\nexport var RX_REGEXP_REPLACE = /[-/\\\\^$*+?.()|[\\]{}]/g;\nexport var RX_SPACES = /[\\s\\uFEFF\\xA0]+/g;\nexport var RX_SPACE_SPLIT = /\\s+/;\nexport var RX_STAR = /\\/\\*$/;\nexport var RX_START_SPACE_WORD = /(\\s|^)(\\w)/g;\nexport var RX_TRIM_LEFT = /^\\s+/;\nexport var RX_TRIM_RIGHT = /\\s+$/;\nexport var RX_UNDERSCORE = /_/g;\nexport var RX_UN_KEBAB = /-(\\w)/g; // --- Date ---\n// Loose YYYY-MM-DD matching, ignores any appended time inforation\n// Matches '1999-12-20', '1999-1-1', '1999-01-20T22:51:49.118Z', '1999-01-02 13:00:00'\n\nexport var RX_DATE = /^\\d+-\\d\\d?-\\d\\d?(?:\\s|T|$)/; // Used to split off the date parts of the YYYY-MM-DD string\n\nexport var RX_DATE_SPLIT = /-|\\s|T/; // Time string RegEx (optional seconds)\n\nexport var RX_TIME = /^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/; // --- URL ---\n// HREFs must end with a hash followed by at least one non-hash character\n\nexport var RX_HREF = /^.*(#[^#]+)$/;\nexport var RX_ENCODED_COMMA = /%2C/g;\nexport var RX_ENCODE_REVERSE = /[!'()*]/g;\nexport var RX_QUERY_START = /^(\\?|#|&)/; // --- Aspect ---\n\nexport var RX_ASPECT = /^\\d+(\\.\\d*)?[/:]\\d+(\\.\\d*)?$/;\nexport var RX_ASPECT_SEPARATOR = /[/:]/; // --- Grid ---\n\nexport var RX_COL_CLASS = /^col-/; // --- Icon ---\n\nexport var RX_ICON_PREFIX = /^BIcon/; // --- Locale ---\n\nexport var RX_STRIP_LOCALE_MODS = /-u-.+/;","function _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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } Object.defineProperty(subClass, \"prototype\", { value: Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }), writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\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 _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\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 _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { HAS_WINDOW_SUPPORT, WINDOW } from './env';\n/* istanbul ignore next */\n\nexport var Element = HAS_WINDOW_SUPPORT ? WINDOW.Element : /*#__PURE__*/function (_Object) {\n _inherits(Element, _Object);\n\n var _super = _createSuper(Element);\n\n function Element() {\n _classCallCheck(this, Element);\n\n return _super.apply(this, arguments);\n }\n\n return Element;\n}( /*#__PURE__*/_wrapNativeSuper(Object));\n/* istanbul ignore next */\n\nexport var HTMLElement = HAS_WINDOW_SUPPORT ? WINDOW.HTMLElement : /*#__PURE__*/function (_Element) {\n _inherits(HTMLElement, _Element);\n\n var _super2 = _createSuper(HTMLElement);\n\n function HTMLElement() {\n _classCallCheck(this, HTMLElement);\n\n return _super2.apply(this, arguments);\n }\n\n return HTMLElement;\n}(Element);\n/* istanbul ignore next */\n\nexport var SVGElement = HAS_WINDOW_SUPPORT ? WINDOW.SVGElement : /*#__PURE__*/function (_Element2) {\n _inherits(SVGElement, _Element2);\n\n var _super3 = _createSuper(SVGElement);\n\n function SVGElement() {\n _classCallCheck(this, SVGElement);\n\n return _super3.apply(this, arguments);\n }\n\n return SVGElement;\n}(Element);\n/* istanbul ignore next */\n\nexport var File = HAS_WINDOW_SUPPORT ? WINDOW.File : /*#__PURE__*/function (_Object2) {\n _inherits(File, _Object2);\n\n var _super4 = _createSuper(File);\n\n function File() {\n _classCallCheck(this, File);\n\n return _super4.apply(this, arguments);\n }\n\n return File;\n}( /*#__PURE__*/_wrapNativeSuper(Object));","function _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\nimport { RX_NUMBER } from '../constants/regex';\nimport { File } from '../constants/safe-types'; // --- Convenience inspection utilities ---\n\nexport var toType = function toType(value) {\n return _typeof(value);\n};\nexport var toRawType = function toRawType(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n};\nexport var toRawTypeLC = function toRawTypeLC(value) {\n return toRawType(value).toLowerCase();\n};\nexport var isUndefined = function isUndefined(value) {\n return value === undefined;\n};\nexport var isNull = function isNull(value) {\n return value === null;\n};\nexport var isEmptyString = function isEmptyString(value) {\n return value === '';\n};\nexport var isUndefinedOrNull = function isUndefinedOrNull(value) {\n return isUndefined(value) || isNull(value);\n};\nexport var isUndefinedOrNullOrEmpty = function isUndefinedOrNullOrEmpty(value) {\n return isUndefinedOrNull(value) || isEmptyString(value);\n};\nexport var isFunction = function isFunction(value) {\n return toType(value) === 'function';\n};\nexport var isBoolean = function isBoolean(value) {\n return toType(value) === 'boolean';\n};\nexport var isString = function isString(value) {\n return toType(value) === 'string';\n};\nexport var isNumber = function isNumber(value) {\n return toType(value) === 'number';\n};\nexport var isNumeric = function isNumeric(value) {\n return RX_NUMBER.test(String(value));\n};\nexport var isPrimitive = function isPrimitive(value) {\n return isBoolean(value) || isString(value) || isNumber(value);\n};\nexport var isArray = function isArray(value) {\n return Array.isArray(value);\n}; // Quick object check\n// This is primarily used to tell Objects from primitive values\n// when we know the value is a JSON-compliant type\n// Note object could be a complex type like array, Date, etc.\n\nexport var isObject = function isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}; // Strict object type check\n// Only returns true for plain JavaScript objects\n\nexport var isPlainObject = function isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\nexport var isDate = function isDate(value) {\n return value instanceof Date;\n};\nexport var isEvent = function isEvent(value) {\n return value instanceof Event;\n};\nexport var isFile = function isFile(value) {\n return value instanceof File;\n};\nexport var isRegExp = function isRegExp(value) {\n return toRawType(value) === 'RegExp';\n};\nexport var isPromise = function isPromise(value) {\n return !isUndefinedOrNull(value) && isFunction(value.then) && isFunction(value.catch);\n};","function 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\nimport { isObject } from './inspect'; // --- Static ---\n\nexport var assign = function assign() {\n return Object.assign.apply(Object, arguments);\n};\nexport var create = function create(proto, optionalProps) {\n return Object.create(proto, optionalProps);\n};\nexport var defineProperties = function defineProperties(obj, props) {\n return Object.defineProperties(obj, props);\n};\nexport var defineProperty = function defineProperty(obj, prop, descriptor) {\n return Object.defineProperty(obj, prop, descriptor);\n};\nexport var freeze = function freeze(obj) {\n return Object.freeze(obj);\n};\nexport var getOwnPropertyNames = function getOwnPropertyNames(obj) {\n return Object.getOwnPropertyNames(obj);\n};\nexport var getOwnPropertyDescriptor = function getOwnPropertyDescriptor(obj, prop) {\n return Object.getOwnPropertyDescriptor(obj, prop);\n};\nexport var getOwnPropertySymbols = function getOwnPropertySymbols(obj) {\n return Object.getOwnPropertySymbols(obj);\n};\nexport var getPrototypeOf = function getPrototypeOf(obj) {\n return Object.getPrototypeOf(obj);\n};\nexport var is = function is(value1, value2) {\n return Object.is(value1, value2);\n};\nexport var isFrozen = function isFrozen(obj) {\n return Object.isFrozen(obj);\n};\nexport var keys = function keys(obj) {\n return Object.keys(obj);\n}; // --- \"Instance\" ---\n\nexport var hasOwnProperty = function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n};\nexport var toString = function toString(obj) {\n return Object.prototype.toString.call(obj);\n}; // --- Utilities ---\n// Shallow copy an object\n\nexport var clone = function clone(obj) {\n return _objectSpread({}, obj);\n}; // Return a shallow copy of object with the specified properties only\n// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var pick = function pick(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) !== -1;\n }).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Return a shallow copy of object with the specified properties omitted\n// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var omit = function omit(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) === -1;\n }).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Merges two object deeply together\n// See: https://gist.github.com/Salakar/1d7137de9cb8b704e48a\n\nexport var mergeDeep = function mergeDeep(target, source) {\n if (isObject(target) && isObject(source)) {\n keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!target[key] || !isObject(target[key])) {\n target[key] = source[key];\n }\n\n mergeDeep(target[key], source[key]);\n } else {\n assign(target, _defineProperty({}, key, source[key]));\n }\n });\n }\n\n return target;\n}; // Returns a shallow copy of the object with keys in sorted order\n\nexport var sortKeys = function sortKeys(obj) {\n return keys(obj).sort().reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Convenience method to create a read-only descriptor\n\nexport var readonlyDescriptor = function readonlyDescriptor() {\n return {\n enumerable: true,\n configurable: false,\n writable: false\n };\n};","function 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\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 _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 _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 _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\nimport { isArray, isPlainObject } from './inspect';\nimport { keys } from './object';\nexport var cloneDeep = function cloneDeep(obj) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : obj;\n\n if (isArray(obj)) {\n return obj.reduce(function (result, val) {\n return [].concat(_toConsumableArray(result), [cloneDeep(val, val)]);\n }, []);\n }\n\n if (isPlainObject(obj)) {\n return keys(obj).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, cloneDeep(obj[key], obj[key])));\n }, {});\n }\n\n return defaultValue;\n};","export var identity = function identity(x) {\n return x;\n};","import { RX_ARRAY_NOTATION } from '../constants/regex';\nimport { identity } from './identity';\nimport { isArray, isNull, isObject, isUndefinedOrNull } from './inspect';\n/**\n * Get property defined by dot/array notation in string, returns undefined if not found\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @return {*}\n */\n\nexport var getRaw = function getRaw(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Handle array of path values\n path = isArray(path) ? path.join('.') : path; // If no path or no object passed\n\n if (!path || !isObject(obj)) {\n return defaultValue;\n } // Handle edge case where user has dot(s) in top-level item field key\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n if (path in obj) {\n return obj[path];\n } // Handle string array notation (numeric indices only)\n\n\n path = String(path).replace(RX_ARRAY_NOTATION, '.$1');\n var steps = path.split('.').filter(identity); // Handle case where someone passes a string of only dots\n\n if (steps.length === 0) {\n return defaultValue;\n } // Traverse path in object to find result\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n return steps.every(function (step) {\n return isObject(obj) && step in obj && !isUndefinedOrNull(obj = obj[step]);\n }) ? obj : isNull(obj) ? null : defaultValue;\n};\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\n\nexport var get = function get(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var value = getRaw(obj, path);\n return isUndefinedOrNull(value) ? defaultValue : value;\n};","/**\n * Utilities to get information about the current environment\n */\nexport var getEnv = function getEnv(key) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var env = typeof process !== 'undefined' && process ? process.env || {} : {};\n\n if (!key) {\n /* istanbul ignore next */\n return env;\n }\n\n return env[key] || fallback;\n};\nexport var getNoWarn = function getNoWarn() {\n return getEnv('BOOTSTRAP_VUE_NO_WARN') || getEnv('NODE_ENV') === 'production';\n};","import { IS_BROWSER, HAS_PROMISE_SUPPORT, HAS_MUTATION_OBSERVER_SUPPORT } from '../constants/env';\nimport { getNoWarn } from './env';\n/**\n * Log a warning message to the console with BootstrapVue formatting\n * @param {string} message\n */\n\nexport var warn = function warn(message)\n/* istanbul ignore next */\n{\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!getNoWarn()) {\n console.warn(\"[BootstrapVue warn]: \".concat(source ? \"\".concat(source, \" - \") : '').concat(message));\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNotClient = function warnNotClient(source) {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n return false;\n } else {\n warn(\"\".concat(source, \": Can not be called during SSR.\"));\n return true;\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoPromiseSupport = function warnNoPromiseSupport(source) {\n /* istanbul ignore else */\n if (HAS_PROMISE_SUPPORT) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires Promise support.\"));\n return true;\n }\n};\n/**\n * Warn when no MutationObserver support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoMutationObserverSupport = function warnNoMutationObserverSupport(source) {\n /* istanbul ignore else */\n if (HAS_MUTATION_OBSERVER_SUPPORT) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires MutationObserver support.\"));\n return true;\n }\n};","function _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\nimport { Vue as OurVue } from '../vue';\nimport { NAME, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { getRaw } from './get';\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect';\nimport { getOwnPropertyNames } from './object';\nimport { warn } from './warn'; // Config manager class\n\nvar BvConfig = /*#__PURE__*/function () {\n function BvConfig() {\n _classCallCheck(this, BvConfig);\n\n this.$_config = {};\n } // Method to merge in user config parameters\n\n\n _createClass(BvConfig, [{\n key: \"setConfig\",\n value: function setConfig() {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /* istanbul ignore next */\n if (!isPlainObject(config)) {\n return;\n }\n\n var configKeys = getOwnPropertyNames(config);\n configKeys.forEach(function (key) {\n /* istanbul ignore next */\n var subConfig = config[key];\n\n if (key === 'breakpoints') {\n /* istanbul ignore if */\n if (!isArray(subConfig) || subConfig.length < 2 || subConfig.some(function (b) {\n return !isString(b) || b.length === 0;\n })) {\n warn('\"breakpoints\" must be an array of at least 2 breakpoint names', NAME);\n } else {\n _this.$_config[key] = cloneDeep(subConfig);\n }\n } else if (isPlainObject(subConfig)) {\n // Component prop defaults\n _this.$_config[key] = getOwnPropertyNames(subConfig).reduce(function (config, prop) {\n if (!isUndefined(subConfig[prop])) {\n config[prop] = cloneDeep(subConfig[prop]);\n }\n\n return config;\n }, _this.$_config[key] || {});\n }\n });\n } // Clear the config\n\n }, {\n key: \"resetConfig\",\n value: function resetConfig() {\n this.$_config = {};\n } // Returns a deep copy of the user config\n\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return cloneDeep(this.$_config);\n } // Returns a deep copy of the config value\n\n }, {\n key: \"getConfigValue\",\n value: function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n return cloneDeep(getRaw(this.$_config, key, defaultValue));\n }\n }]);\n\n return BvConfig;\n}(); // Method for applying a global config\n\n\nexport var setConfig = function setConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var Vue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OurVue;\n // Ensure we have a `$bvConfig` Object on the Vue prototype\n // We set on Vue and OurVue just in case consumer has not set an alias of `vue`\n Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] = Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig(); // Apply the config values\n\n Vue.prototype[PROP_NAME].setConfig(config);\n}; // Method for resetting the user config\n// Exported for testing purposes only\n\nexport var resetConfig = function resetConfig() {\n if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n OurVue.prototype[PROP_NAME].resetConfig();\n }\n};","function 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\nimport { Vue as OurVue } from '../vue';\nimport { HAS_WINDOW_SUPPORT, IS_JSDOM } from '../constants/env';\nimport { setConfig } from './config-set';\nimport { warn } from './warn';\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\n\nexport var checkMultipleVue = function () {\n var checkMultipleVueWarned = false;\n var MULTIPLE_VUE_WARNING = ['Multiple instances of Vue detected!', 'You may need to set up an alias for Vue in your bundler config.', 'See: https://bootstrap-vue.org/docs#using-module-bundlers'].join('\\n');\n return function (Vue) {\n /* istanbul ignore next */\n if (!checkMultipleVueWarned && OurVue !== Vue && !IS_JSDOM) {\n warn(MULTIPLE_VUE_WARNING);\n }\n\n checkMultipleVueWarned = true;\n };\n}();\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactory = function installFactory() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref.components,\n directives = _ref.directives,\n plugins = _ref.plugins;\n\n var install = function install(Vue) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n setConfig(config, Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin install factory function (no plugin config option).\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactoryNoConfig = function installFactoryNoConfig() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref2.components,\n directives = _ref2.directives,\n plugins = _ref2.plugins;\n\n var install = function install(Vue) {\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactory = function pluginFactory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactory(options)\n });\n};\n/**\n * Plugin object factory function (no config option).\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactoryNoConfig = function pluginFactoryNoConfig() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactoryNoConfig(options)\n });\n};\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\n\nexport var registerPlugins = function registerPlugins(Vue) {\n var plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var plugin in plugins) {\n if (plugin && plugins[plugin]) {\n Vue.use(plugins[plugin]);\n }\n }\n};\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\n\nexport var registerComponent = function registerComponent(Vue, name, def) {\n if (Vue && name && def) {\n Vue.component(name, def);\n }\n};\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\n\nexport var registerComponents = function registerComponents(Vue) {\n var components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var component in components) {\n registerComponent(Vue, component, components[component]);\n }\n};\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\n\nexport var registerDirective = function registerDirective(Vue, name, def) {\n if (Vue && name && def) {\n // Ensure that any leading V is removed from the\n // name, as Vue adds it automatically\n Vue.directive(name.replace(/^VB/, 'B'), def);\n }\n};\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\n\nexport var registerDirectives = function registerDirectives(Vue) {\n var directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var directive in directives) {\n registerDirective(Vue, directive, directives[directive]);\n }\n};\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\n\nexport var vueUse = function vueUse(VuePlugin) {\n /* istanbul ignore next */\n if (HAS_WINDOW_SUPPORT && window.Vue) {\n window.Vue.use(VuePlugin);\n }\n /* istanbul ignore next */\n\n\n if (HAS_WINDOW_SUPPORT && VuePlugin.NAME) {\n window[VuePlugin.NAME] = VuePlugin;\n }\n};","import { VNodeData } from \"vue\";\n\nconst pattern = {\n kebab: /-(\\w)/g,\n styleProp: /:(.*)/,\n\tstyleList: /;(?![^(]*\\))/g,\n} as const;\n\nfunction camelReplace(_substr: string, match: string) {\n return match ? match.toUpperCase() : \"\";\n}\n\nfunction camelCase(str: string) {\n return str.replace(pattern.kebab, camelReplace);\n}\n\nfunction parseStyle(style: string) {\n let styleMap: Record = {};\n\n for (let s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp);\n key = key.trim();\n if (!key) {\n continue;\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === \"string\") {\n val = val.trim();\n }\n styleMap[camelCase(key)] = val;\n }\n\n return styleMap;\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData;\nfunction mergeData(): VNodeData {\n let mergeTarget: VNodeData & Record = {};\n let i: number = arguments.length;\n let prop: string;\n let event: string;\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case \"class\":\n case \"style\":\n case \"directives\":\n if (!Array.isArray(mergeTarget[prop])) {\n mergeTarget[prop] = [];\n }\n\n if (prop === \"style\") {\n let style: any[];\n if (Array.isArray(arguments[i].style)) {\n style = arguments[i].style;\n } else {\n style = [arguments[i].style];\n }\n for (let j = 0; j < style.length; j++) {\n let s = style[j];\n if (typeof s === \"string\") {\n style[j] = parseStyle(s);\n }\n }\n arguments[i].style = style;\n }\n\n // Repackaging in an array allows Vue runtime\n // to merge class/style bindings regardless of type.\n mergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop]);\n break;\n // Space delimited string concatenation strategy\n case \"staticClass\":\n if (!arguments[i][prop]) {\n break;\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = \"\";\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += \" \";\n }\n mergeTarget[prop] += arguments[i][prop].trim();\n break;\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case \"on\":\n case \"nativeOn\":\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {};\n }\n for (event of Object.keys(arguments[i][prop] || {})) {\n // Concat function to array of functions if callback present.\n if (mergeTarget[prop][event]) {\n // Insert current iteration data in beginning of merged array.\n mergeTarget[prop][event] = [].concat(\n mergeTarget[prop][event],\n arguments[i][prop][event]\n );\n } else {\n // Straight assign.\n mergeTarget[prop][event] = arguments[i][prop][event];\n }\n }\n break;\n // Object merge strategy\n case \"attrs\":\n case \"props\":\n case \"domProps\":\n case \"scopedSlots\":\n case \"staticStyle\":\n case \"hook\":\n case \"transition\":\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {};\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] };\n break;\n // Reassignment strategy (no merge)\n case \"slot\":\n case \"key\":\n case \"ref\":\n case \"tag\":\n case \"show\":\n case \"keepAlive\":\n default:\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop];\n }\n }\n }\n }\n\n return mergeTarget;\n}\n\nexport { mergeData };\n","import Vue from 'vue';\nimport { mergeData } from 'vue-functional-data-merge'; // --- Constants ---\n\nvar COMPONENT_UID_KEY = '_uid';\nexport { COMPONENT_UID_KEY, Vue, mergeData };","// Component names\nexport var NAME_ALERT = 'BAlert';\nexport var NAME_ASPECT = 'BAspect';\nexport var NAME_AVATAR = 'BAvatar';\nexport var NAME_AVATAR_GROUP = 'BAvatarGroup';\nexport var NAME_BADGE = 'BBadge';\nexport var NAME_BREADCRUMB = 'BBreadcrumb';\nexport var NAME_BREADCRUMB_ITEM = 'BBreadcrumbItem';\nexport var NAME_BREADCRUMB_LINK = 'BBreadcrumbLink';\nexport var NAME_BUTTON = 'BButton';\nexport var NAME_BUTTON_CLOSE = 'BButtonClose';\nexport var NAME_BUTTON_GROUP = 'BButtonGroup';\nexport var NAME_BUTTON_TOOLBAR = 'BButtonToolbar';\nexport var NAME_CALENDAR = 'BCalendar';\nexport var NAME_CARD = 'BCard';\nexport var NAME_CARD_BODY = 'BCardBody';\nexport var NAME_CARD_FOOTER = 'BCardFooter';\nexport var NAME_CARD_GROUP = 'BCardGroup';\nexport var NAME_CARD_HEADER = 'BCardHeader';\nexport var NAME_CARD_IMG = 'BCardImg';\nexport var NAME_CARD_IMG_LAZY = 'BCardImgLazy';\nexport var NAME_CARD_SUB_TITLE = 'BCardSubTitle';\nexport var NAME_CARD_TEXT = 'BCardText';\nexport var NAME_CARD_TITLE = 'BCardTitle';\nexport var NAME_CAROUSEL = 'BCarousel';\nexport var NAME_CAROUSEL_SLIDE = 'BCarouselSlide';\nexport var NAME_COL = 'BCol';\nexport var NAME_COLLAPSE = 'BCollapse';\nexport var NAME_CONTAINER = 'BContainer';\nexport var NAME_DROPDOWN = 'BDropdown';\nexport var NAME_DROPDOWN_DIVIDER = 'BDropdownDivider';\nexport var NAME_DROPDOWN_FORM = 'BDropdownForm';\nexport var NAME_DROPDOWN_GROUP = 'BDropdownGroup';\nexport var NAME_DROPDOWN_HEADER = 'BDropdownHeader';\nexport var NAME_DROPDOWN_ITEM = 'BDropdownItem';\nexport var NAME_DROPDOWN_ITEM_BUTTON = 'BDropdownItemButton';\nexport var NAME_DROPDOWN_TEXT = 'BDropdownText';\nexport var NAME_EMBED = 'BEmbed';\nexport var NAME_FORM = 'BForm';\nexport var NAME_FORM_CHECKBOX = 'BFormCheckbox';\nexport var NAME_FORM_CHECKBOX_GROUP = 'BFormCheckboxGroup';\nexport var NAME_FORM_DATALIST = 'BFormDatalist';\nexport var NAME_FORM_DATEPICKER = 'BFormDatepicker';\nexport var NAME_FORM_FILE = 'BFormFile';\nexport var NAME_FORM_GROUP = 'BFormGroup';\nexport var NAME_FORM_INPUT = 'BFormInput';\nexport var NAME_FORM_INVALID_FEEDBACK = 'BFormInvalidFeedback';\nexport var NAME_FORM_RADIO = 'BFormRadio';\nexport var NAME_FORM_RADIO_GROUP = 'BFormRadioGroup';\nexport var NAME_FORM_RATING = 'BFormRating';\nexport var NAME_FORM_ROW = 'BFormRow';\nexport var NAME_FORM_SELECT = 'BFormSelect';\nexport var NAME_FORM_SELECT_OPTION = 'BFormSelectOption';\nexport var NAME_FORM_SELECT_OPTION_GROUP = 'BFormSelectOptionGroup';\nexport var NAME_FORM_SPINBUTTON = 'BFormSpinbutton';\nexport var NAME_FORM_TAG = 'BFormTag';\nexport var NAME_FORM_TAGS = 'BFormTags';\nexport var NAME_FORM_TEXT = 'BFormText';\nexport var NAME_FORM_TEXTAREA = 'BFormTextarea';\nexport var NAME_FORM_TIMEPICKER = 'BFormTimepicker';\nexport var NAME_FORM_VALID_FEEDBACK = 'BFormValidFeedback';\nexport var NAME_ICON = 'BIcon';\nexport var NAME_ICONSTACK = 'BIconstack';\nexport var NAME_ICON_BASE = 'BIconBase';\nexport var NAME_IMG = 'BImg';\nexport var NAME_IMG_LAZY = 'BImgLazy';\nexport var NAME_INPUT_GROUP = 'BInputGroup';\nexport var NAME_INPUT_GROUP_ADDON = 'BInputGroupAddon';\nexport var NAME_INPUT_GROUP_APPEND = 'BInputGroupAppend';\nexport var NAME_INPUT_GROUP_PREPEND = 'BInputGroupPrepend';\nexport var NAME_INPUT_GROUP_TEXT = 'BInputGroupText';\nexport var NAME_JUMBOTRON = 'BJumbotron';\nexport var NAME_LINK = 'BLink';\nexport var NAME_LIST_GROUP = 'BListGroup';\nexport var NAME_LIST_GROUP_ITEM = 'BListGroupItem';\nexport var NAME_MEDIA = 'BMedia';\nexport var NAME_MEDIA_ASIDE = 'BMediaAside';\nexport var NAME_MEDIA_BODY = 'BMediaBody';\nexport var NAME_MODAL = 'BModal';\nexport var NAME_MSG_BOX = 'BMsgBox';\nexport var NAME_NAV = 'BNav';\nexport var NAME_NAVBAR = 'BNavbar';\nexport var NAME_NAVBAR_BRAND = 'BNavbarBrand';\nexport var NAME_NAVBAR_NAV = 'BNavbarNav';\nexport var NAME_NAVBAR_TOGGLE = 'BNavbarToggle';\nexport var NAME_NAV_FORM = 'BNavForm';\nexport var NAME_NAV_ITEM = 'BNavItem';\nexport var NAME_NAV_ITEM_DROPDOWN = 'BNavItemDropdown';\nexport var NAME_NAV_TEXT = 'BNavText';\nexport var NAME_OVERLAY = 'BOverlay';\nexport var NAME_PAGINATION = 'BPagination';\nexport var NAME_PAGINATION_NAV = 'BPaginationNav';\nexport var NAME_POPOVER = 'BPopover';\nexport var NAME_PROGRESS = 'BProgress';\nexport var NAME_PROGRESS_BAR = 'BProgressBar';\nexport var NAME_ROW = 'BRow';\nexport var NAME_SIDEBAR = 'BSidebar';\nexport var NAME_SKELETON = 'BSkeleton';\nexport var NAME_SKELETON_ICON = 'BSkeletonIcon';\nexport var NAME_SKELETON_IMG = 'BSkeletonImg';\nexport var NAME_SKELETON_TABLE = 'BSkeletonTable';\nexport var NAME_SKELETON_WRAPPER = 'BSkeletonWrapper';\nexport var NAME_SPINNER = 'BSpinner';\nexport var NAME_TAB = 'BTab';\nexport var NAME_TABLE = 'BTable';\nexport var NAME_TABLE_CELL = 'BTableCell';\nexport var NAME_TABLE_LITE = 'BTableLite';\nexport var NAME_TABLE_SIMPLE = 'BTableSimple';\nexport var NAME_TABS = 'BTabs';\nexport var NAME_TBODY = 'BTbody';\nexport var NAME_TFOOT = 'BTfoot';\nexport var NAME_TH = 'BTh';\nexport var NAME_THEAD = 'BThead';\nexport var NAME_TIME = 'BTime';\nexport var NAME_TOAST = 'BToast';\nexport var NAME_TOASTER = 'BToaster';\nexport var NAME_TOOLTIP = 'BTooltip';\nexport var NAME_TR = 'BTr'; // Helper component names\n\nexport var NAME_COLLAPSE_HELPER = 'BVCollapse';\nexport var NAME_FORM_BUTTON_LABEL_CONTROL = 'BVFormBtnLabelControl';\nexport var NAME_FORM_RATING_STAR = 'BVFormRatingStar';\nexport var NAME_POPOVER_HELPER = 'BVPopover';\nexport var NAME_POPOVER_TEMPLATE = 'BVPopoverTemplate';\nexport var NAME_POPPER = 'BVPopper';\nexport var NAME_TAB_BUTTON_HELPER = 'BVTabButton';\nexport var NAME_TOAST_POP = 'BVToastPop';\nexport var NAME_TOOLTIP_HELPER = 'BVTooltip';\nexport var NAME_TOOLTIP_TEMPLATE = 'BVTooltipTemplate';\nexport var NAME_TRANSITION = 'BVTransition';\nexport var NAME_TRANSPORTER = 'BVTransporter';\nexport var NAME_TRANSPORTER_TARGET = 'BVTransporterTarget';","export var EVENT_NAME_ACTIVATE_TAB = 'activate-tab';\nexport var EVENT_NAME_BLUR = 'blur';\nexport var EVENT_NAME_CANCEL = 'cancel';\nexport var EVENT_NAME_CHANGE = 'change';\nexport var EVENT_NAME_CHANGED = 'changed';\nexport var EVENT_NAME_CLICK = 'click';\nexport var EVENT_NAME_CLOSE = 'close';\nexport var EVENT_NAME_CONTEXT = 'context';\nexport var EVENT_NAME_CONTEXT_CHANGED = 'context-changed';\nexport var EVENT_NAME_DESTROYED = 'destroyed';\nexport var EVENT_NAME_DISABLE = 'disable';\nexport var EVENT_NAME_DISABLED = 'disabled';\nexport var EVENT_NAME_DISMISSED = 'dismissed';\nexport var EVENT_NAME_DISMISS_COUNT_DOWN = 'dismiss-count-down';\nexport var EVENT_NAME_ENABLE = 'enable';\nexport var EVENT_NAME_ENABLED = 'enabled';\nexport var EVENT_NAME_FILTERED = 'filtered';\nexport var EVENT_NAME_FIRST = 'first';\nexport var EVENT_NAME_FOCUS = 'focus';\nexport var EVENT_NAME_FOCUSIN = 'focusin';\nexport var EVENT_NAME_FOCUSOUT = 'focusout';\nexport var EVENT_NAME_HEAD_CLICKED = 'head-clicked';\nexport var EVENT_NAME_HIDDEN = 'hidden';\nexport var EVENT_NAME_HIDE = 'hide';\nexport var EVENT_NAME_IMG_ERROR = 'img-error';\nexport var EVENT_NAME_INPUT = 'input';\nexport var EVENT_NAME_LAST = 'last';\nexport var EVENT_NAME_MOUSEENTER = 'mouseenter';\nexport var EVENT_NAME_MOUSELEAVE = 'mouseleave';\nexport var EVENT_NAME_NEXT = 'next';\nexport var EVENT_NAME_OK = 'ok';\nexport var EVENT_NAME_OPEN = 'open';\nexport var EVENT_NAME_PAGE_CLICK = 'page-click';\nexport var EVENT_NAME_PAUSED = 'paused';\nexport var EVENT_NAME_PREV = 'prev';\nexport var EVENT_NAME_REFRESH = 'refresh';\nexport var EVENT_NAME_REFRESHED = 'refreshed';\nexport var EVENT_NAME_REMOVE = 'remove';\nexport var EVENT_NAME_ROW_CLICKED = 'row-clicked';\nexport var EVENT_NAME_ROW_CONTEXTMENU = 'row-contextmenu';\nexport var EVENT_NAME_ROW_DBLCLICKED = 'row-dblclicked';\nexport var EVENT_NAME_ROW_HOVERED = 'row-hovered';\nexport var EVENT_NAME_ROW_MIDDLE_CLICKED = 'row-middle-clicked';\nexport var EVENT_NAME_ROW_SELECTED = 'row-selected';\nexport var EVENT_NAME_ROW_UNHOVERED = 'row-unhovered';\nexport var EVENT_NAME_SELECTED = 'selected';\nexport var EVENT_NAME_SHOW = 'show';\nexport var EVENT_NAME_SHOWN = 'shown';\nexport var EVENT_NAME_SLIDING_END = 'sliding-end';\nexport var EVENT_NAME_SLIDING_START = 'sliding-start';\nexport var EVENT_NAME_SORT_CHANGED = 'sort-changed';\nexport var EVENT_NAME_TAG_STATE = 'tag-state';\nexport var EVENT_NAME_TOGGLE = 'toggle';\nexport var EVENT_NAME_UNPAUSED = 'unpaused';\nexport var EVENT_NAME_UPDATE = 'update';\nexport var HOOK_EVENT_NAME_BEFORE_DESTROY = 'hook:beforeDestroy';\nexport var HOOK_EVENT_NAME_DESTROYED = 'hook:destroyed';\nexport var MODEL_EVENT_NAME_PREFIX = 'update:';\nexport var ROOT_EVENT_NAME_PREFIX = 'bv';\nexport var ROOT_EVENT_NAME_SEPARATOR = '::';\nexport var EVENT_OPTIONS_PASSIVE = {\n passive: true\n};\nexport var EVENT_OPTIONS_NO_CAPTURE = {\n passive: true,\n capture: false\n};","// General types\nexport var PROP_TYPE_ANY = undefined;\nexport var PROP_TYPE_ARRAY = Array;\nexport var PROP_TYPE_BOOLEAN = Boolean;\nexport var PROP_TYPE_DATE = Date;\nexport var PROP_TYPE_FUNCTION = Function;\nexport var PROP_TYPE_NUMBER = Number;\nexport var PROP_TYPE_OBJECT = Object;\nexport var PROP_TYPE_REG_EXP = RegExp;\nexport var PROP_TYPE_STRING = String; // Multiple types\n\nexport var PROP_TYPE_ARRAY_FUNCTION = [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION];\nexport var PROP_TYPE_ARRAY_OBJECT = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT];\nexport var PROP_TYPE_ARRAY_OBJECT_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\nexport var PROP_TYPE_ARRAY_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_STRING];\nexport var PROP_TYPE_BOOLEAN_NUMBER = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER];\nexport var PROP_TYPE_BOOLEAN_NUMBER_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING];\nexport var PROP_TYPE_BOOLEAN_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING];\nexport var PROP_TYPE_DATE_STRING = [PROP_TYPE_DATE, PROP_TYPE_STRING];\nexport var PROP_TYPE_FUNCTION_STRING = [PROP_TYPE_FUNCTION, PROP_TYPE_STRING];\nexport var PROP_TYPE_NUMBER_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_STRING];\nexport var PROP_TYPE_NUMBER_OBJECT_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\nexport var PROP_TYPE_OBJECT_FUNCTION = [PROP_TYPE_OBJECT, PROP_TYPE_FUNCTION];\nexport var PROP_TYPE_OBJECT_STRING = [PROP_TYPE_OBJECT, PROP_TYPE_STRING];","export var SLOT_NAME_ADD_BUTTON_TEXT = 'add-button-text';\nexport var SLOT_NAME_APPEND = 'append';\nexport var SLOT_NAME_ASIDE = 'aside';\nexport var SLOT_NAME_BADGE = 'badge';\nexport var SLOT_NAME_BOTTOM_ROW = 'bottom-row';\nexport var SLOT_NAME_BUTTON_CONTENT = 'button-content';\nexport var SLOT_NAME_CUSTOM_FOOT = 'custom-foot';\nexport var SLOT_NAME_DECREMENT = 'decrement';\nexport var SLOT_NAME_DEFAULT = 'default';\nexport var SLOT_NAME_DESCRIPTION = 'description';\nexport var SLOT_NAME_DISMISS = 'dismiss';\nexport var SLOT_NAME_DROP_PLACEHOLDER = 'drop-placeholder';\nexport var SLOT_NAME_ELLIPSIS_TEXT = 'ellipsis-text';\nexport var SLOT_NAME_EMPTY = 'empty';\nexport var SLOT_NAME_EMPTYFILTERED = 'emptyfiltered';\nexport var SLOT_NAME_FILE_NAME = 'file-name';\nexport var SLOT_NAME_FIRST = 'first';\nexport var SLOT_NAME_FIRST_TEXT = 'first-text';\nexport var SLOT_NAME_FOOTER = 'footer';\nexport var SLOT_NAME_HEADER = 'header';\nexport var SLOT_NAME_HEADER_CLOSE = 'header-close';\nexport var SLOT_NAME_ICON_CLEAR = 'icon-clear';\nexport var SLOT_NAME_ICON_EMPTY = 'icon-empty';\nexport var SLOT_NAME_ICON_FULL = 'icon-full';\nexport var SLOT_NAME_ICON_HALF = 'icon-half';\nexport var SLOT_NAME_IMG = 'img';\nexport var SLOT_NAME_INCREMENT = 'increment';\nexport var SLOT_NAME_INVALID_FEEDBACK = 'invalid-feedback';\nexport var SLOT_NAME_LABEL = 'label';\nexport var SLOT_NAME_LAST_TEXT = 'last-text';\nexport var SLOT_NAME_LEAD = 'lead';\nexport var SLOT_NAME_LOADING = 'loading';\nexport var SLOT_NAME_MODAL_BACKDROP = 'modal-backdrop';\nexport var SLOT_NAME_MODAL_CANCEL = 'modal-cancel';\nexport var SLOT_NAME_MODAL_FOOTER = 'modal-footer';\nexport var SLOT_NAME_MODAL_HEADER = 'modal-header';\nexport var SLOT_NAME_MODAL_HEADER_CLOSE = 'modal-header-close';\nexport var SLOT_NAME_MODAL_OK = 'modal-ok';\nexport var SLOT_NAME_MODAL_TITLE = 'modal-title';\nexport var SLOT_NAME_NAV_NEXT_DECADE = 'nav-next-decade';\nexport var SLOT_NAME_NAV_NEXT_MONTH = 'nav-next-month';\nexport var SLOT_NAME_NAV_NEXT_YEAR = 'nav-next-year';\nexport var SLOT_NAME_NAV_PEV_DECADE = 'nav-prev-decade';\nexport var SLOT_NAME_NAV_PEV_MONTH = 'nav-prev-month';\nexport var SLOT_NAME_NAV_PEV_YEAR = 'nav-prev-year';\nexport var SLOT_NAME_NAV_THIS_MONTH = 'nav-this-month';\nexport var SLOT_NAME_NEXT_TEXT = 'next-text';\nexport var SLOT_NAME_OVERLAY = 'overlay';\nexport var SLOT_NAME_PAGE = 'page';\nexport var SLOT_NAME_PLACEHOLDER = 'placeholder';\nexport var SLOT_NAME_PREPEND = 'prepend';\nexport var SLOT_NAME_PREV_TEXT = 'prev-text';\nexport var SLOT_NAME_ROW_DETAILS = 'row-details';\nexport var SLOT_NAME_TABLE_BUSY = 'table-busy';\nexport var SLOT_NAME_TABLE_CAPTION = 'table-caption';\nexport var SLOT_NAME_TABLE_COLGROUP = 'table-colgroup';\nexport var SLOT_NAME_TABS_END = 'tabs-end';\nexport var SLOT_NAME_TABS_START = 'tabs-start';\nexport var SLOT_NAME_TEXT = 'text';\nexport var SLOT_NAME_THEAD_TOP = 'thead-top';\nexport var SLOT_NAME_TITLE = 'title';\nexport var SLOT_NAME_TOAST_TITLE = 'toast-title';\nexport var SLOT_NAME_TOP_ROW = 'top-row';\nexport var SLOT_NAME_VALID_FEEDBACK = 'valid-feedback';","import { isFunction } from './inspect'; // --- Static ---\n\nexport var from = function from() {\n return Array.from.apply(Array, arguments);\n}; // --- Instance ---\n\nexport var arrayIncludes = function arrayIncludes(array, value) {\n return array.indexOf(value) !== -1;\n};\nexport var concat = function concat() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return Array.prototype.concat.apply([], args);\n}; // --- Utilities ---\n\nexport var createArray = function createArray(length, fillFn) {\n var mapFn = isFunction(fillFn) ? fillFn : function () {\n return fillFn;\n };\n return Array.apply(null, {\n length: length\n }).map(mapFn);\n};\nexport var flatten = function flatten(array) {\n return array.reduce(function (result, item) {\n return concat(result, item);\n }, []);\n};\nexport var flattenDeep = function flattenDeep(array) {\n return array.reduce(function (result, item) {\n return concat(result, Array.isArray(item) ? flattenDeep(item) : item);\n }, []);\n};","// Number utilities\n// Converts a value (string, number, etc.) to an integer number\n// Assumes radix base 10\nexport var toInteger = function toInteger(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var integer = parseInt(value, 10);\n return isNaN(integer) ? defaultValue : integer;\n}; // Converts a value (string, number, etc.) to a number\n\nexport var toFloat = function toFloat(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var float = parseFloat(value);\n return isNaN(float) ? defaultValue : float;\n}; // Converts a value (string, number, etc.) to a string\n// representation with `precision` digits after the decimal\n// Returns the string 'NaN' if the value cannot be converted\n\nexport var toFixed = function toFixed(val, precision) {\n return toFloat(val).toFixed(toInteger(precision, 0));\n};","// String utilities\nimport { RX_HYPHENATE, RX_LOWER_UPPER, RX_REGEXP_REPLACE, RX_START_SPACE_WORD, RX_TRIM_LEFT, RX_TRIM_RIGHT, RX_UNDERSCORE, RX_UN_KEBAB } from '../constants/regex';\nimport { isArray, isPlainObject, isString, isUndefinedOrNull } from './inspect'; // --- Utilities ---\n// Converts PascalCase or camelCase to kebab-case\n\nexport var kebabCase = function kebabCase(str) {\n return str.replace(RX_HYPHENATE, '-$1').toLowerCase();\n}; // Converts a kebab-case or camelCase string to PascalCase\n\nexport var pascalCase = function pascalCase(str) {\n str = kebabCase(str).replace(RX_UN_KEBAB, function (_, c) {\n return c ? c.toUpperCase() : '';\n });\n return str.charAt(0).toUpperCase() + str.slice(1);\n}; // Converts a string, including strings in camelCase or snake_case, into Start Case\n// It keeps original single quote and hyphen in the word\n// https://github.com/UrbanCompass/to-start-case\n\nexport var startCase = function startCase(str) {\n return str.replace(RX_UNDERSCORE, ' ').replace(RX_LOWER_UPPER, function (str, $1, $2) {\n return $1 + ' ' + $2;\n }).replace(RX_START_SPACE_WORD, function (str, $1, $2) {\n return $1 + $2.toUpperCase();\n });\n}; // Lowercases the first letter of a string and returns a new string\n\nexport var lowerFirst = function lowerFirst(str) {\n str = isString(str) ? str.trim() : String(str);\n return str.charAt(0).toLowerCase() + str.slice(1);\n}; // Uppercases the first letter of a string and returns a new string\n\nexport var upperFirst = function upperFirst(str) {\n str = isString(str) ? str.trim() : String(str);\n return str.charAt(0).toUpperCase() + str.slice(1);\n}; // Escape characters to be used in building a regular expression\n\nexport var escapeRegExp = function escapeRegExp(str) {\n return str.replace(RX_REGEXP_REPLACE, '\\\\$&');\n}; // Convert a value to a string that can be rendered\n// `undefined`/`null` will be converted to `''`\n// Plain objects and arrays will be JSON stringified\n\nexport var toString = function toString(val) {\n var spaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return isUndefinedOrNull(val) ? '' : isArray(val) || isPlainObject(val) && val.toString === Object.prototype.toString ? JSON.stringify(val, null, spaces) : String(val);\n}; // Remove leading white space from a string\n\nexport var trimLeft = function trimLeft(str) {\n return toString(str).replace(RX_TRIM_LEFT, '');\n}; // Remove Trailing white space from a string\n\nexport var trimRight = function trimRight(str) {\n return toString(str).replace(RX_TRIM_RIGHT, '');\n}; // Remove leading and trailing white space from a string\n\nexport var trim = function trim(str) {\n return toString(str).trim();\n}; // Lower case a string\n\nexport var lowerCase = function lowerCase(str) {\n return toString(str).toLowerCase();\n}; // Upper case a string\n\nexport var upperCase = function upperCase(str) {\n return toString(str).toUpperCase();\n};","import { DOCUMENT, WINDOW } from '../constants/env';\nimport { Element } from '../constants/safe-types';\nimport { from as arrayFrom } from './array';\nimport { isFunction, isNull } from './inspect';\nimport { toFloat } from './number';\nimport { toString } from './string'; // --- Constants ---\n\nvar ELEMENT_PROTO = Element.prototype;\nvar TABABLE_SELECTOR = ['button', '[href]:not(.disabled)', 'input', 'select', 'textarea', '[tabindex]', '[contenteditable]'].map(function (s) {\n return \"\".concat(s, \":not(:disabled):not([disabled])\");\n}).join(', '); // --- Normalization utils ---\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\n/* istanbul ignore next */\n\nexport var matchesEl = ELEMENT_PROTO.matches || ELEMENT_PROTO.msMatchesSelector || ELEMENT_PROTO.webkitMatchesSelector; // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n\n/* istanbul ignore next */\n\nexport var closestEl = ELEMENT_PROTO.closest || function (sel) {\n var el = this;\n\n do {\n // Use our \"patched\" matches function\n if (matches(el, sel)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE);\n\n return null;\n}; // `requestAnimationFrame()` convenience method\n\n/* istanbul ignore next: JSDOM always returns the first option */\n\nexport var requestAF = (WINDOW.requestAnimationFrame || WINDOW.webkitRequestAnimationFrame || WINDOW.mozRequestAnimationFrame || WINDOW.msRequestAnimationFrame || WINDOW.oRequestAnimationFrame || // Fallback, but not a true polyfill\n// Only needed for Opera Mini\n\n/* istanbul ignore next */\nfunction (cb) {\n return setTimeout(cb, 16);\n}).bind(WINDOW);\nexport var MutationObs = WINDOW.MutationObserver || WINDOW.WebKitMutationObserver || WINDOW.MozMutationObserver || null; // --- Utils ---\n// Remove a node from DOM\n\nexport var removeNode = function removeNode(el) {\n return el && el.parentNode && el.parentNode.removeChild(el);\n}; // Determine if an element is an HTML element\n\nexport var isElement = function isElement(el) {\n return !!(el && el.nodeType === Node.ELEMENT_NODE);\n}; // Get the currently active HTML element\n\nexport var getActiveElement = function getActiveElement() {\n var excludes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var activeElement = DOCUMENT.activeElement;\n return activeElement && !excludes.some(function (el) {\n return el === activeElement;\n }) ? activeElement : null;\n}; // Returns `true` if a tag's name equals `name`\n\nexport var isTag = function isTag(tag, name) {\n return toString(tag).toLowerCase() === toString(name).toLowerCase();\n}; // Determine if an HTML element is the currently active element\n\nexport var isActiveElement = function isActiveElement(el) {\n return isElement(el) && el === getActiveElement();\n}; // Determine if an HTML element is visible - Faster than CSS check\n\nexport var isVisible = function isVisible(el) {\n if (!isElement(el) || !el.parentNode || !contains(DOCUMENT.body, el)) {\n // Note this can fail for shadow dom elements since they\n // are not a direct descendant of document.body\n return false;\n }\n\n if (getStyle(el, 'display') === 'none') {\n // We do this check to help with vue-test-utils when using v-show\n\n /* istanbul ignore next */\n return false;\n } // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n // So any tests that need isVisible will fail in JSDOM\n // Except when we override the getBCR prototype in some tests\n\n\n var bcr = getBCR(el);\n return !!(bcr && bcr.height > 0 && bcr.width > 0);\n}; // Determine if an element is disabled\n\nexport var isDisabled = function isDisabled(el) {\n return !isElement(el) || el.disabled || hasAttr(el, 'disabled') || hasClass(el, 'disabled');\n}; // Cause/wait-for an element to reflow its content (adjusting its height/width)\n\nexport var reflow = function reflow(el) {\n // Requesting an elements offsetHight will trigger a reflow of the element content\n\n /* istanbul ignore next: reflow doesn't happen in JSDOM */\n return isElement(el) && el.offsetHeight;\n}; // Select all elements matching selector. Returns `[]` if none found\n\nexport var selectAll = function selectAll(selector, root) {\n return arrayFrom((isElement(root) ? root : DOCUMENT).querySelectorAll(selector));\n}; // Select a single element, returns `null` if not found\n\nexport var select = function select(selector, root) {\n return (isElement(root) ? root : DOCUMENT).querySelector(selector) || null;\n}; // Determine if an element matches a selector\n\nexport var matches = function matches(el, selector) {\n return isElement(el) ? matchesEl.call(el, selector) : false;\n}; // Finds closest element matching selector. Returns `null` if not found\n\nexport var closest = function closest(selector, root) {\n var includeRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!isElement(root)) {\n return null;\n }\n\n var el = closestEl.call(root, selector); // Native closest behaviour when `includeRoot` is truthy,\n // else emulate jQuery closest and return `null` if match is\n // the passed in root element when `includeRoot` is falsey\n\n return includeRoot ? el : el === root ? null : el;\n}; // Returns true if the parent element contains the child element\n\nexport var contains = function contains(parent, child) {\n return parent && isFunction(parent.contains) ? parent.contains(child) : false;\n}; // Get an element given an ID\n\nexport var getById = function getById(id) {\n return DOCUMENT.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n}; // Add a class to an element\n\nexport var addClass = function addClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.add(className);\n }\n}; // Remove a class from an element\n\nexport var removeClass = function removeClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.remove(className);\n }\n}; // Test if an element has a class\n\nexport var hasClass = function hasClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n return el.classList.contains(className);\n }\n\n return false;\n}; // Set an attribute on an element\n\nexport var setAttr = function setAttr(el, attr, value) {\n if (attr && isElement(el)) {\n el.setAttribute(attr, value);\n }\n}; // Remove an attribute from an element\n\nexport var removeAttr = function removeAttr(el, attr) {\n if (attr && isElement(el)) {\n el.removeAttribute(attr);\n }\n}; // Get an attribute value from an element\n// Returns `null` if not found\n\nexport var getAttr = function getAttr(el, attr) {\n return attr && isElement(el) ? el.getAttribute(attr) : null;\n}; // Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\n\nexport var hasAttr = function hasAttr(el, attr) {\n return attr && isElement(el) ? el.hasAttribute(attr) : null;\n}; // Set an style property on an element\n\nexport var setStyle = function setStyle(el, prop, value) {\n if (prop && isElement(el)) {\n el.style[prop] = value;\n }\n}; // Remove an style property from an element\n\nexport var removeStyle = function removeStyle(el, prop) {\n if (prop && isElement(el)) {\n el.style[prop] = '';\n }\n}; // Get an style property value from an element\n// Returns `null` if not found\n\nexport var getStyle = function getStyle(el, prop) {\n return prop && isElement(el) ? el.style[prop] || null : null;\n}; // Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n\nexport var getBCR = function getBCR(el) {\n return isElement(el) ? el.getBoundingClientRect() : null;\n}; // Get computed style object for an element\n\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\n\nexport var getCS = function getCS(el) {\n var getComputedStyle = WINDOW.getComputedStyle;\n return getComputedStyle && isElement(el) ? getComputedStyle(el) : {};\n}; // Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\n\nexport var getSel = function getSel() {\n var getSelection = WINDOW.getSelection;\n return getSelection ? WINDOW.getSelection() : null;\n}; // Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\n\nexport var offset = function offset(el)\n/* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el) || el.getClientRects().length === 0) {\n return _offset;\n }\n\n var bcr = getBCR(el);\n\n if (bcr) {\n var win = el.ownerDocument.defaultView;\n _offset.top = bcr.top + win.pageYOffset;\n _offset.left = bcr.left + win.pageXOffset;\n }\n\n return _offset;\n}; // Return an element's offset with respect to to its offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\n\nexport var position = function position(el)\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el)) {\n return _offset;\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n var elStyles = getCS(el);\n\n if (elStyles.position === 'fixed') {\n _offset = getBCR(el) || _offset;\n } else {\n _offset = offset(el);\n var doc = el.ownerDocument;\n var offsetParent = el.offsetParent || doc.documentElement;\n\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent);\n var offsetParentStyles = getCS(offsetParent);\n parentOffset.top += toFloat(offsetParentStyles.borderTopWidth, 0);\n parentOffset.left += toFloat(offsetParentStyles.borderLeftWidth, 0);\n }\n }\n\n return {\n top: _offset.top - parentOffset.top - toFloat(elStyles.marginTop, 0),\n left: _offset.left - parentOffset.left - toFloat(elStyles.marginLeft, 0)\n };\n}; // Find all tabable elements in the given element\n// Assumes users have not used `tabindex` > `0` on elements\n\nexport var getTabables = function getTabables() {\n var rootEl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n return selectAll(TABABLE_SELECTOR, rootEl).filter(isVisible).filter(function (el) {\n return el.tabIndex > -1 && !el.disabled;\n });\n}; // Attempt to focus an element, and return `true` if successful\n\nexport var attemptFocus = function attemptFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n try {\n el.focus(options);\n } catch (_unused) {}\n\n return isActiveElement(el);\n}; // Attempt to blur an element, and return `true` if successful\n\nexport var attemptBlur = function attemptBlur(el) {\n try {\n el.blur();\n } catch (_unused2) {}\n\n return !isActiveElement(el);\n};","import { create } from './object';\nexport var memoize = function memoize(fn) {\n var cache = create(null);\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsKey = JSON.stringify(args);\n return cache[argsKey] = cache[argsKey] || fn.apply(null, args);\n };\n};","import { Vue } from '../vue';\nimport { DEFAULT_BREAKPOINT, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { memoize } from './memoize'; // --- Constants ---\n\nvar VueProto = Vue.prototype; // --- Getter methods ---\n// All methods return a deep clone (immutable) copy of the config value,\n// to prevent mutation of the user config object\n// Get the current config\n\nexport var getConfig = function getConfig() {\n var bvConfig = VueProto[PROP_NAME];\n return bvConfig ? bvConfig.getConfig() : {};\n}; // Method to grab a config value based on a dotted/array notation key\n\nexport var getConfigValue = function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var bvConfig = VueProto[PROP_NAME];\n return bvConfig ? bvConfig.getConfigValue(key, defaultValue) : cloneDeep(defaultValue);\n}; // Method to grab a config value for a particular component\n\nexport var getComponentConfig = function getComponentConfig(key) {\n var propKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Return the particular config value for key if specified,\n // otherwise we return the full config (or an empty object if not found)\n return propKey ? getConfigValue(\"\".concat(key, \".\").concat(propKey), defaultValue) : getConfigValue(key, {});\n}; // Get all breakpoint names\n\nexport var getBreakpoints = function getBreakpoints() {\n return getConfigValue('breakpoints', DEFAULT_BREAKPOINT);\n}; // Private method for caching breakpoint names\n\nvar _getBreakpointsCached = memoize(function () {\n return getBreakpoints();\n}); // Get all breakpoint names (cached)\n\n\nexport var getBreakpointsCached = function getBreakpointsCached() {\n return cloneDeep(_getBreakpointsCached());\n}; // Get breakpoints with the smallest breakpoint set as ''\n// Useful for components that create breakpoint specific props\n\nexport var getBreakpointsUp = function getBreakpointsUp() {\n var breakpoints = getBreakpoints();\n breakpoints[0] = '';\n return breakpoints;\n}; // Get breakpoints with the smallest breakpoint set as '' (cached)\n// Useful for components that create breakpoint specific props\n\nexport var getBreakpointsUpCached = memoize(function () {\n var breakpoints = getBreakpointsCached();\n breakpoints[0] = '';\n return breakpoints;\n}); // Get breakpoints with the largest breakpoint set as ''\n\nexport var getBreakpointsDown = function getBreakpointsDown() {\n var breakpoints = getBreakpoints();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n}; // Get breakpoints with the largest breakpoint set as '' (cached)\n// Useful for components that create breakpoint specific props\n\n/* istanbul ignore next: we don't use this method anywhere, yet */\n\nexport var getBreakpointsDownCached = function getBreakpointsDownCached() {\n var breakpoints = getBreakpointsCached();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n};","function 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\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { cloneDeep } from './clone-deep';\nimport { getComponentConfig } from './config';\nimport { identity } from './identity';\nimport { isArray, isFunction, isObject, isUndefined } from './inspect';\nimport { clone, hasOwnProperty, keys } from './object';\nimport { lowerFirst, upperFirst } from './string'; // Prefix a property\n\nexport var prefixPropName = function prefixPropName(prefix, value) {\n return prefix + upperFirst(value);\n}; // Remove a prefix from a property\n\nexport var unprefixPropName = function unprefixPropName(prefix, value) {\n return lowerFirst(value.replace(prefix, ''));\n}; // Suffix can be a falsey value so nothing is appended to string\n// (helps when looping over props & some shouldn't change)\n// Use data last parameters to allow for currying\n\nexport var suffixPropName = function suffixPropName(suffix, value) {\n return value + (suffix ? upperFirst(suffix) : '');\n}; // Generates a prop object\n\nexport var makeProp = function makeProp() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PROP_TYPE_ANY;\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var requiredOrValidator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var validator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n var required = requiredOrValidator === true;\n validator = required ? validator : requiredOrValidator;\n return _objectSpread(_objectSpread(_objectSpread({}, type ? {\n type: type\n } : {}), required ? {\n required: required\n } : isUndefined(value) ? {} : {\n default: isObject(value) ? function () {\n return value;\n } : value\n }), isUndefined(validator) ? {} : {\n validator: validator\n });\n}; // Copies props from one array/object to a new array/object\n// Prop values are also cloned as new references to prevent possible\n// mutation of original prop object values\n// Optionally accepts a function to transform the prop name\n\nexport var copyProps = function copyProps(props) {\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n if (isArray(props)) {\n return props.map(transformFn);\n }\n\n var copied = {};\n\n for (var prop in props) {\n /* istanbul ignore else */\n if (hasOwnProperty(props, prop)) {\n // If the prop value is an object, do a shallow clone\n // to prevent potential mutations to the original object\n copied[transformFn(prop)] = isObject(props[prop]) ? clone(props[prop]) : props[prop];\n }\n }\n\n return copied;\n}; // Given an array of properties or an object of property keys,\n// plucks all the values off the target object, returning a new object\n// that has props that reference the original prop values\n\nexport var pluckProps = function pluckProps(keysToPluck, objToPluck) {\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\n memo[transformFn(prop)] = objToPluck[prop];\n return memo;\n }, {});\n}; // Make a prop object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropConfigurable = function makePropConfigurable(prop, key, componentKey) {\n return _objectSpread(_objectSpread({}, cloneDeep(prop)), {}, {\n default: function bvConfigurablePropDefault() {\n var value = getComponentConfig(componentKey, key, prop.default);\n return isFunction(value) ? value() : value;\n }\n });\n}; // Make a props object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropsConfigurable = function makePropsConfigurable(props, componentKey) {\n return keys(props).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, makePropConfigurable(props[key], key, componentKey)));\n }, {});\n}; // Get function name we use in `makePropConfigurable()`\n// for the prop default value override to compare\n// against in `hasPropFunction()`\n\nvar configurablePropDefaultFnName = makePropConfigurable({}, '', '').default.name; // Detect wether the given value is currently a function\n// and isn't the props default function\n\nexport var hasPropFunction = function hasPropFunction(fn) {\n return isFunction(fn) && fn.name && fn.name !== configurablePropDefaultFnName;\n};","function _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\nimport { Vue } from '../vue';\nimport { EVENT_NAME_INPUT } from '../constants/events';\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { makeProp } from './props';\nexport var makeModelMixin = function makeModelMixin(prop) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? PROP_TYPE_ANY : _ref$type,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? undefined : _ref$defaultValue,\n _ref$validator = _ref.validator,\n validator = _ref$validator === void 0 ? undefined : _ref$validator,\n _ref$event = _ref.event,\n event = _ref$event === void 0 ? EVENT_NAME_INPUT : _ref$event;\n\n var props = _defineProperty({}, prop, makeProp(type, defaultValue, validator)); // @vue/component\n\n\n var mixin = Vue.extend({\n model: {\n prop: prop,\n event: event\n },\n props: props\n });\n return {\n mixin: mixin,\n props: props,\n prop: prop,\n event: event\n };\n};","import { concat } from './array';\nimport { identity } from './identity';\nimport { isFunction } from './inspect'; // Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String, Array} name or name[]\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var hasNormalizedSlot = function hasNormalizedSlot(names) {\n var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // Ensure names is an array\n names = concat(names).filter(identity); // Returns true if the either a $scopedSlot or $slot exists with the specified name\n\n return names.some(function (name) {\n return $scopedSlots[name] || $slots[name];\n });\n};\n/**\n * Returns VNodes for named slot either scoped or unscoped\n *\n * @param {String, Array} name or name[]\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var normalizeSlot = function normalizeSlot(names) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // Ensure names is an array\n names = concat(names).filter(identity);\n var slot;\n\n for (var i = 0; i < names.length && !slot; i++) {\n var name = names[i];\n slot = $scopedSlots[name] || $slots[name];\n } // Note: in Vue 2.6.x, all named slots are also scoped slots\n\n\n return isFunction(slot) ? slot(scope) : slot;\n};","import { Vue } from '../vue';\nimport { SLOT_NAME_DEFAULT } from '../constants/slots';\nimport { hasNormalizedSlot as _hasNormalizedSlot, normalizeSlot as _normalizeSlot } from '../utils/normalize-slot';\nimport { concat } from '../utils/array'; // @vue/component\n\nexport var normalizeSlotMixin = Vue.extend({\n methods: {\n // Returns `true` if the either a `$scopedSlot` or `$slot` exists with the specified name\n // `name` can be a string name or an array of names\n hasNormalizedSlot: function hasNormalizedSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots;\n var slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$slots;\n return _hasNormalizedSlot(name, scopedSlots, slots);\n },\n // Returns an array of rendered VNodes if slot found, otherwise `undefined`\n // `name` can be a string name or an array of names\n normalizeSlot: function normalizeSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots;\n var slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots;\n\n var vNodes = _normalizeSlot(name, scope, scopedSlots, slots);\n\n return vNodes ? concat(vNodes) : vNodes;\n }\n }\n});","import { HAS_PASSIVE_EVENT_SUPPORT } from '../constants/env';\nimport { ROOT_EVENT_NAME_PREFIX, ROOT_EVENT_NAME_SEPARATOR } from '../constants/events';\nimport { RX_BV_PREFIX } from '../constants/regex';\nimport { isObject } from './inspect';\nimport { kebabCase } from './string'; // --- Utils ---\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\n\nexport var parseEventOptions = function parseEventOptions(options) {\n /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n if (HAS_PASSIVE_EVENT_SUPPORT) {\n return isObject(options) ? options : {\n capture: !!options || false\n };\n } else {\n // Need to translate to actual Boolean value\n return !!(isObject(options) ? options.capture : options);\n }\n}; // Attach an event listener to an element\n\nexport var eventOn = function eventOn(el, eventName, handler, options) {\n if (el && el.addEventListener) {\n el.addEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Remove an event listener from an element\n\nexport var eventOff = function eventOff(el, eventName, handler, options) {\n if (el && el.removeEventListener) {\n el.removeEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Utility method to add/remove a event listener based on first argument (boolean)\n// It passes all other arguments to the `eventOn()` or `eventOff` method\n\nexport var eventOnOff = function eventOnOff(on) {\n var method = on ? eventOn : eventOff;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n method.apply(void 0, args);\n}; // Utility method to prevent the default event handling and propagation\n\nexport var stopEvent = function stopEvent(event) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$preventDefault = _ref.preventDefault,\n preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,\n _ref$propagation = _ref.propagation,\n propagation = _ref$propagation === void 0 ? true : _ref$propagation,\n _ref$immediatePropaga = _ref.immediatePropagation,\n immediatePropagation = _ref$immediatePropaga === void 0 ? false : _ref$immediatePropaga;\n\n if (preventDefault) {\n event.preventDefault();\n }\n\n if (propagation) {\n event.stopPropagation();\n }\n\n if (immediatePropagation) {\n event.stopImmediatePropagation();\n }\n}; // Helper method to convert a component/directive name to a base event name\n// `getBaseEventName('BNavigationItem')` => 'navigation-item'\n// `getBaseEventName('BVToggle')` => 'toggle'\n\nvar getBaseEventName = function getBaseEventName(value) {\n return kebabCase(value.replace(RX_BV_PREFIX, ''));\n}; // Get a root event name by component/directive and event name\n// `getBaseEventName('BModal', 'show')` => 'bv::modal::show'\n\n\nexport var getRootEventName = function getRootEventName(name, eventName) {\n return [ROOT_EVENT_NAME_PREFIX, getBaseEventName(name), eventName].join(ROOT_EVENT_NAME_SEPARATOR);\n}; // Get a root action event name by component/directive and action name\n// `getRootActionEventName('BModal', 'show')` => 'bv::show::modal'\n\nexport var getRootActionEventName = function getRootActionEventName(name, actionName) {\n return [ROOT_EVENT_NAME_PREFIX, actionName, getBaseEventName(name)].join(ROOT_EVENT_NAME_SEPARATOR);\n};","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BUTTON_CLOSE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { stopEvent } from '../../utils/events';\nimport { isEvent } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n content: makeProp(PROP_TYPE_STRING, '×'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_BUTTON_CLOSE); // --- Main component ---\n// @vue/component\n\nexport var BButtonClose = /*#__PURE__*/Vue.extend({\n name: NAME_BUTTON_CLOSE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var componentData = {\n staticClass: 'close',\n class: _defineProperty({}, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n type: 'button',\n disabled: props.disabled,\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n },\n on: {\n click: function click(event) {\n // Ensure click on button HTML content is also disabled\n\n /* istanbul ignore if: bug in JSDOM still emits click on inner element */\n if (props.disabled && isEvent(event)) {\n stopEvent(event);\n }\n }\n }\n }; // Careful not to override the default slot with innerHTML\n\n if (!hasNormalizedSlot(SLOT_NAME_DEFAULT, $scopedSlots, $slots)) {\n componentData.domProps = {\n innerHTML: props.content\n };\n }\n\n return h('button', mergeData(data, componentData), normalizeSlot(SLOT_NAME_DEFAULT, {}, $scopedSlots, $slots));\n }\n});","function 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\n// Generic Bootstrap v4 fade (no-fade) transition component\n//\n// Assumes that `show` class is not required when\n// the transition has finished the enter transition\n// (show and fade classes are only applied during transition)\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_TRANSITION } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { isPlainObject } from '../../utils/inspect';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n\nvar NO_FADE_PROPS = {\n name: '',\n enterClass: '',\n enterActiveClass: '',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: '',\n leaveToClass: ''\n};\n\nvar FADE_PROPS = _objectSpread(_objectSpread({}, NO_FADE_PROPS), {}, {\n enterActiveClass: 'fade',\n leaveActiveClass: 'fade'\n}); // --- Props ---\n\n\nexport var props = {\n // Has no effect if `trans-props` provided\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n // Can be overridden by user supplied `trans-props`\n mode: makeProp(PROP_TYPE_STRING),\n // Only applicable to the built in transition\n // Has no effect if `trans-props` provided\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // For user supplied transitions (if needed)\n transProps: makeProp(PROP_TYPE_OBJECT)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransition = /*#__PURE__*/Vue.extend({\n name: NAME_TRANSITION,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var children = _ref.children,\n data = _ref.data,\n props = _ref.props;\n var transProps = props.transProps;\n\n if (!isPlainObject(transProps)) {\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;\n\n if (props.appear) {\n // Default the appear classes to equal the enter classes\n transProps = _objectSpread(_objectSpread({}, transProps), {}, {\n appear: true,\n appearClass: transProps.enterClass,\n appearActiveClass: transProps.enterActiveClass,\n appearToClass: transProps.enterToClass\n });\n }\n }\n\n transProps = _objectSpread(_objectSpread({\n mode: props.mode\n }, transProps), {}, {\n // We always need `css` true\n css: true\n });\n return h('transition', // Any transition event listeners will get merged here\n mergeData(data, {\n props: transProps\n }), children);\n }\n});","var _watch;\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\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","import { BAlert } from './alert';\nimport { pluginFactory } from '../../utils/plugins';\nvar AlertPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAlert: BAlert\n }\n});\nexport { AlertPlugin, BAlert };","// Math utilty functions\nexport var mathMin = Math.min;\nexport var mathMax = Math.max;\nexport var mathAbs = Math.abs;\nexport var mathCeil = Math.ceil;\nexport var mathFloor = Math.floor;\nexport var mathPow = Math.pow;\nexport var mathRound = Math.round;","function _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\nimport { Vue } from '../../vue';\nimport { NAME_ASPECT } from '../../constants/components';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_ASPECT, RX_ASPECT_SEPARATOR } from '../../constants/regex';\nimport { mathAbs } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar CLASS_NAME = 'b-aspect'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Accepts a number (i.e. `16 / 9`, `1`, `4 / 3`)\n // Or a string (i.e. '16/9', '16:9', '4:3' '1:1')\n aspect: makeProp(PROP_TYPE_NUMBER_STRING, '1:1'),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_ASPECT); // --- Main component ---\n// @vue/component\n\nexport var BAspect = /*#__PURE__*/Vue.extend({\n name: NAME_ASPECT,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n padding: function padding() {\n var aspect = this.aspect;\n var ratio = 1;\n\n if (RX_ASPECT.test(aspect)) {\n // Width and/or Height can be a decimal value below `1`, so\n // we only fallback to `1` if the value is `0` or `NaN`\n var _aspect$split$map = aspect.split(RX_ASPECT_SEPARATOR).map(function (v) {\n return toFloat(v) || 1;\n }),\n _aspect$split$map2 = _slicedToArray(_aspect$split$map, 2),\n width = _aspect$split$map2[0],\n height = _aspect$split$map2[1];\n\n ratio = width / height;\n } else {\n ratio = toFloat(aspect) || 1;\n }\n\n return \"\".concat(100 / mathAbs(ratio), \"%\");\n }\n },\n render: function render(h) {\n var $sizer = h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-sizer flex-grow-1\"),\n style: {\n paddingBottom: this.padding,\n height: 0\n }\n });\n var $content = h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-content flex-grow-1 w-100 mw-100\"),\n style: {\n marginLeft: '-100%'\n }\n }, this.normalizeSlot());\n return h(this.tag, {\n staticClass: \"\".concat(CLASS_NAME, \" d-flex\")\n }, [$sizer, $content]);\n }\n});","import { BAspect } from './aspect';\nimport { pluginFactory } from '../../utils/plugins';\nvar AspectPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAspect: BAspect\n }\n});\nexport { AspectPlugin, BAspect };","import { RX_ENCODED_COMMA, RX_ENCODE_REVERSE, RX_PLUS, RX_QUERY_START } from '../constants/regex';\nimport { isTag } from './dom';\nimport { isArray, isNull, isPlainObject, isString, isUndefined } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string';\nvar ANCHOR_TAG = 'a'; // Method to replace reserved chars\n\nvar encodeReserveReplacer = function encodeReserveReplacer(c) {\n return '%' + c.charCodeAt(0).toString(16);\n}; // Fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\n\n\nvar encode = function encode(str) {\n return encodeURIComponent(toString(str)).replace(RX_ENCODE_REVERSE, encodeReserveReplacer).replace(RX_ENCODED_COMMA, ',');\n};\n\nvar decode = decodeURIComponent; // Stringifies an object of query parameters\n// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\n\nexport var stringifyQueryObj = function stringifyQueryObj(obj) {\n if (!isPlainObject(obj)) {\n return '';\n }\n\n var query = keys(obj).map(function (key) {\n var value = obj[key];\n\n if (isUndefined(value)) {\n return '';\n } else if (isNull(value)) {\n return encode(key);\n } else if (isArray(value)) {\n return value.reduce(function (results, value2) {\n if (isNull(value2)) {\n results.push(encode(key));\n } else if (!isUndefined(value2)) {\n // Faster than string interpolation\n results.push(encode(key) + '=' + encode(value2));\n }\n\n return results;\n }, []).join('&');\n } // Faster than string interpolation\n\n\n return encode(key) + '=' + encode(value);\n })\n /* must check for length, as we only want to filter empty strings, not things that look falsey! */\n .filter(function (x) {\n return x.length > 0;\n }).join('&');\n return query ? \"?\".concat(query) : '';\n};\nexport var parseQuery = function parseQuery(query) {\n var parsed = {};\n query = toString(query).trim().replace(RX_QUERY_START, '');\n\n if (!query) {\n return parsed;\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(RX_PLUS, ' ').split('=');\n var key = decode(parts.shift());\n var value = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (isUndefined(parsed[key])) {\n parsed[key] = value;\n } else if (isArray(parsed[key])) {\n parsed[key].push(value);\n } else {\n parsed[key] = [parsed[key], value];\n }\n });\n return parsed;\n};\nexport var isLink = function isLink(props) {\n return !!(props.href || props.to);\n};\nexport var isRouterLink = function isRouterLink(tag) {\n return !!(tag && !isTag(tag, 'a'));\n};\nexport var computeTag = function computeTag(_ref, thisOrParent) {\n var to = _ref.to,\n disabled = _ref.disabled,\n routerComponentName = _ref.routerComponentName;\n var hasRouter = !!thisOrParent.$router;\n\n if (!hasRouter || hasRouter && (disabled || !to)) {\n return ANCHOR_TAG;\n } // TODO:\n // Check registered components for existence of user supplied router link component name\n // We would need to check PascalCase, kebab-case, and camelCase versions of name:\n // const name = routerComponentName\n // const names = [name, PascalCase(name), KebabCase(name), CamelCase(name)]\n // exists = names.some(name => !!thisOrParent.$options.components[name])\n // And may want to cache the result for performance or we just let the render fail\n // if the component is not registered\n\n\n return routerComponentName || (thisOrParent.$nuxt ? 'nuxt-link' : 'router-link');\n};\nexport var computeRel = function computeRel() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n target = _ref2.target,\n rel = _ref2.rel;\n\n return target === '_blank' && isNull(rel) ? 'noopener' : rel || null;\n};\nexport var computeHref = function computeHref() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n href = _ref3.href,\n to = _ref3.to;\n\n var tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ANCHOR_TAG;\n var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';\n var toFallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/';\n\n // Return `href` when explicitly provided\n if (href) {\n return href;\n } // We've checked for `$router` in `computeTag()`, so `isRouterLink()` indicates a live router\n // When deferring to Vue Router's ``, don't use the `href` attribute at all\n // We return `null`, and then remove `href` from the attributes passed to ``\n\n\n if (isRouterLink(tag)) {\n return null;\n } // Fallback to `to` prop (if `to` is a string)\n\n\n if (isString(to)) {\n return to || toFallback;\n } // Fallback to `to.path' + `to.query` + `to.hash` prop (if `to` is an object)\n\n\n if (isPlainObject(to) && (to.path || to.query || to.hash)) {\n var path = toString(to.path);\n var query = stringifyQueryObj(to.query);\n var hash = toString(to.hash);\n hash = !hash || hash.charAt(0) === '#' ? hash : \"#\".concat(hash);\n return \"\".concat(path).concat(query).concat(hash) || toFallback;\n } // If nothing is provided return the fallback\n\n\n return fallback;\n};","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_ICON_BASE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathMax } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n// Base attributes needed on all icons\n\nvar BASE_ATTRS = {\n viewBox: '0 0 16 16',\n width: '1em',\n height: '1em',\n focusable: 'false',\n role: 'img',\n 'aria-label': 'icon'\n}; // Attributes that are nulled out when stacked\n\nvar STACKED_ATTRS = {\n width: null,\n height: null,\n focusable: null,\n role: null,\n 'aria-label': null\n}; // --- Props ---\n\nexport var props = {\n animation: makeProp(PROP_TYPE_STRING),\n content: makeProp(PROP_TYPE_STRING),\n flipH: makeProp(PROP_TYPE_BOOLEAN, false),\n flipV: makeProp(PROP_TYPE_BOOLEAN, false),\n fontScale: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n rotate: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n scale: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n shiftH: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n shiftV: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// Shared private base component to reduce bundle/runtime size\n// @vue/component\n\nexport var BVIconBase = /*#__PURE__*/Vue.extend({\n name: NAME_ICON_BASE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var data = _ref.data,\n props = _ref.props,\n children = _ref.children;\n var animation = props.animation,\n content = props.content,\n flipH = props.flipH,\n flipV = props.flipV,\n stacked = props.stacked,\n title = props.title,\n variant = props.variant;\n var fontScale = mathMax(toFloat(props.fontScale, 1), 0) || 1;\n var scale = mathMax(toFloat(props.scale, 1), 0) || 1;\n var rotate = toFloat(props.rotate, 0);\n var shiftH = toFloat(props.shiftH, 0);\n var shiftV = toFloat(props.shiftV, 0); // Compute the transforms\n // Note that order is important as SVG transforms are applied in order from\n // left to right and we want flipping/scale to occur before rotation\n // Note shifting is applied separately\n // Assumes that the viewbox is `0 0 16 16` (`8 8` is the center)\n\n var hasScale = flipH || flipV || scale !== 1;\n var hasTransforms = hasScale || rotate;\n var hasShift = shiftH || shiftV;\n var hasContent = !isUndefinedOrNull(content);\n var transforms = [hasTransforms ? 'translate(8 8)' : null, hasScale ? \"scale(\".concat((flipH ? -1 : 1) * scale, \" \").concat((flipV ? -1 : 1) * scale, \")\") : null, rotate ? \"rotate(\".concat(rotate, \")\") : null, hasTransforms ? 'translate(-8 -8)' : null].filter(identity); // We wrap the content in a `` for handling the transforms (except shift)\n\n var $inner = h('g', {\n attrs: {\n transform: transforms.join(' ') || null\n },\n domProps: hasContent ? {\n innerHTML: content || ''\n } : {}\n }, children); // If needed, we wrap in an additional `` in order to handle the shifting\n\n if (hasShift) {\n $inner = h('g', {\n attrs: {\n transform: \"translate(\".concat(16 * shiftH / 16, \" \").concat(-16 * shiftV / 16, \")\")\n }\n }, [$inner]);\n } // Wrap in an additional `` for proper animation handling if stacked\n\n\n if (stacked) {\n $inner = h('g', [$inner]);\n }\n\n var $title = title ? h('title', title) : null;\n var $content = [$title, $inner].filter(identity);\n return h('svg', mergeData({\n staticClass: 'b-icon bi',\n class: (_class = {}, _defineProperty(_class, \"text-\".concat(variant), variant), _defineProperty(_class, \"b-icon-animation-\".concat(animation), animation), _class),\n attrs: BASE_ATTRS,\n style: stacked ? {} : {\n fontSize: fontScale === 1 ? null : \"\".concat(fontScale * 100, \"%\")\n }\n }, // Merge in user supplied data\n data, // If icon is stacked, null-out some attrs\n stacked ? {\n attrs: STACKED_ATTRS\n } : {}, // These cannot be overridden by users\n {\n attrs: {\n xmlns: stacked ? null : 'http://www.w3.org/2000/svg',\n fill: 'currentColor'\n }\n }), $content);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { omit } from '../../utils/object';\nimport { kebabCase, pascalCase, trim } from '../../utils/string';\nimport { BVIconBase, props as BVIconBaseProps } from './icon-base';\nvar iconProps = omit(BVIconBaseProps, ['content']);\n/**\n * Icon component generator function\n *\n * @param {string} icon name (minus the leading `BIcon`)\n * @param {string} raw `innerHTML` for SVG\n * @return {VueComponent}\n */\n\nexport var makeIcon = function makeIcon(name, content) {\n // For performance reason we pre-compute some values, so that\n // they are not computed on each render of the icon component\n var kebabName = kebabCase(name);\n var iconName = \"BIcon\".concat(pascalCase(name));\n var iconNameClass = \"bi-\".concat(kebabName);\n var iconTitle = kebabName.replace(/-/g, ' ');\n var svgContent = trim(content || '');\n return /*#__PURE__*/Vue.extend({\n name: iconName,\n functional: true,\n props: iconProps,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props;\n return h(BVIconBase, mergeData( // Defaults\n {\n props: {\n title: iconTitle\n },\n attrs: {\n 'aria-label': iconTitle\n }\n }, // User data\n data, // Required data\n {\n staticClass: iconNameClass,\n props: _objectSpread(_objectSpread({}, props), {}, {\n content: svgContent\n })\n }));\n }\n });\n};","// --- BEGIN AUTO-GENERATED FILE ---\n//\n// @IconsVersion: 1.5.0\n// @Generated: 2022-04-17T12:11:59.345Z\n//\n// This file is generated on each build. Do not edit this file!\n/*!\n * BootstrapVue Icons, generated from Bootstrap Icons 1.5.0\n *\n * @link https://icons.getbootstrap.com/\n * @license MIT\n * https://github.com/twbs/icons/blob/master/LICENSE.md\n */import{makeIcon}from'./helpers/make-icon';// --- BootstrapVue custom icons ---\nexport var BIconBlank=/*#__PURE__*/makeIcon('Blank','');// --- Bootstrap Icons ---\n// eslint-disable-next-line\nexport var BIconAlarm=/*#__PURE__*/makeIcon('Alarm','');// eslint-disable-next-line\nexport var BIconAlarmFill=/*#__PURE__*/makeIcon('AlarmFill','');// eslint-disable-next-line\nexport var BIconAlignBottom=/*#__PURE__*/makeIcon('AlignBottom','');// eslint-disable-next-line\nexport var BIconAlignCenter=/*#__PURE__*/makeIcon('AlignCenter','');// eslint-disable-next-line\nexport var BIconAlignEnd=/*#__PURE__*/makeIcon('AlignEnd','');// eslint-disable-next-line\nexport var BIconAlignMiddle=/*#__PURE__*/makeIcon('AlignMiddle','');// eslint-disable-next-line\nexport var BIconAlignStart=/*#__PURE__*/makeIcon('AlignStart','');// eslint-disable-next-line\nexport var BIconAlignTop=/*#__PURE__*/makeIcon('AlignTop','');// eslint-disable-next-line\nexport var BIconAlt=/*#__PURE__*/makeIcon('Alt','');// eslint-disable-next-line\nexport var BIconApp=/*#__PURE__*/makeIcon('App','');// eslint-disable-next-line\nexport var BIconAppIndicator=/*#__PURE__*/makeIcon('AppIndicator','');// eslint-disable-next-line\nexport var BIconArchive=/*#__PURE__*/makeIcon('Archive','');// eslint-disable-next-line\nexport var BIconArchiveFill=/*#__PURE__*/makeIcon('ArchiveFill','');// eslint-disable-next-line\nexport var BIconArrow90degDown=/*#__PURE__*/makeIcon('Arrow90degDown','');// eslint-disable-next-line\nexport var BIconArrow90degLeft=/*#__PURE__*/makeIcon('Arrow90degLeft','');// eslint-disable-next-line\nexport var BIconArrow90degRight=/*#__PURE__*/makeIcon('Arrow90degRight','');// eslint-disable-next-line\nexport var BIconArrow90degUp=/*#__PURE__*/makeIcon('Arrow90degUp','');// eslint-disable-next-line\nexport var BIconArrowBarDown=/*#__PURE__*/makeIcon('ArrowBarDown','');// eslint-disable-next-line\nexport var BIconArrowBarLeft=/*#__PURE__*/makeIcon('ArrowBarLeft','');// eslint-disable-next-line\nexport var BIconArrowBarRight=/*#__PURE__*/makeIcon('ArrowBarRight','');// eslint-disable-next-line\nexport var BIconArrowBarUp=/*#__PURE__*/makeIcon('ArrowBarUp','');// eslint-disable-next-line\nexport var BIconArrowClockwise=/*#__PURE__*/makeIcon('ArrowClockwise','');// eslint-disable-next-line\nexport var BIconArrowCounterclockwise=/*#__PURE__*/makeIcon('ArrowCounterclockwise','');// eslint-disable-next-line\nexport var BIconArrowDown=/*#__PURE__*/makeIcon('ArrowDown','');// eslint-disable-next-line\nexport var BIconArrowDownCircle=/*#__PURE__*/makeIcon('ArrowDownCircle','');// eslint-disable-next-line\nexport var BIconArrowDownCircleFill=/*#__PURE__*/makeIcon('ArrowDownCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownLeft=/*#__PURE__*/makeIcon('ArrowDownLeft','');// eslint-disable-next-line\nexport var BIconArrowDownLeftCircle=/*#__PURE__*/makeIcon('ArrowDownLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowDownLeftCircleFill=/*#__PURE__*/makeIcon('ArrowDownLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownLeftSquare=/*#__PURE__*/makeIcon('ArrowDownLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowDownLeftSquareFill=/*#__PURE__*/makeIcon('ArrowDownLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownRight=/*#__PURE__*/makeIcon('ArrowDownRight','');// eslint-disable-next-line\nexport var BIconArrowDownRightCircle=/*#__PURE__*/makeIcon('ArrowDownRightCircle','');// eslint-disable-next-line\nexport var BIconArrowDownRightCircleFill=/*#__PURE__*/makeIcon('ArrowDownRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownRightSquare=/*#__PURE__*/makeIcon('ArrowDownRightSquare','');// eslint-disable-next-line\nexport var BIconArrowDownRightSquareFill=/*#__PURE__*/makeIcon('ArrowDownRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownShort=/*#__PURE__*/makeIcon('ArrowDownShort','');// eslint-disable-next-line\nexport var BIconArrowDownSquare=/*#__PURE__*/makeIcon('ArrowDownSquare','');// eslint-disable-next-line\nexport var BIconArrowDownSquareFill=/*#__PURE__*/makeIcon('ArrowDownSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownUp=/*#__PURE__*/makeIcon('ArrowDownUp','');// eslint-disable-next-line\nexport var BIconArrowLeft=/*#__PURE__*/makeIcon('ArrowLeft','');// eslint-disable-next-line\nexport var BIconArrowLeftCircle=/*#__PURE__*/makeIcon('ArrowLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowLeftCircleFill=/*#__PURE__*/makeIcon('ArrowLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowLeftRight=/*#__PURE__*/makeIcon('ArrowLeftRight','');// eslint-disable-next-line\nexport var BIconArrowLeftShort=/*#__PURE__*/makeIcon('ArrowLeftShort','');// eslint-disable-next-line\nexport var BIconArrowLeftSquare=/*#__PURE__*/makeIcon('ArrowLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowLeftSquareFill=/*#__PURE__*/makeIcon('ArrowLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowRepeat=/*#__PURE__*/makeIcon('ArrowRepeat','');// eslint-disable-next-line\nexport var BIconArrowReturnLeft=/*#__PURE__*/makeIcon('ArrowReturnLeft','');// eslint-disable-next-line\nexport var BIconArrowReturnRight=/*#__PURE__*/makeIcon('ArrowReturnRight','');// eslint-disable-next-line\nexport var BIconArrowRight=/*#__PURE__*/makeIcon('ArrowRight','');// eslint-disable-next-line\nexport var BIconArrowRightCircle=/*#__PURE__*/makeIcon('ArrowRightCircle','');// eslint-disable-next-line\nexport var BIconArrowRightCircleFill=/*#__PURE__*/makeIcon('ArrowRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowRightShort=/*#__PURE__*/makeIcon('ArrowRightShort','');// eslint-disable-next-line\nexport var BIconArrowRightSquare=/*#__PURE__*/makeIcon('ArrowRightSquare','');// eslint-disable-next-line\nexport var BIconArrowRightSquareFill=/*#__PURE__*/makeIcon('ArrowRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUp=/*#__PURE__*/makeIcon('ArrowUp','');// eslint-disable-next-line\nexport var BIconArrowUpCircle=/*#__PURE__*/makeIcon('ArrowUpCircle','');// eslint-disable-next-line\nexport var BIconArrowUpCircleFill=/*#__PURE__*/makeIcon('ArrowUpCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpLeft=/*#__PURE__*/makeIcon('ArrowUpLeft','');// eslint-disable-next-line\nexport var BIconArrowUpLeftCircle=/*#__PURE__*/makeIcon('ArrowUpLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowUpLeftCircleFill=/*#__PURE__*/makeIcon('ArrowUpLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpLeftSquare=/*#__PURE__*/makeIcon('ArrowUpLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowUpLeftSquareFill=/*#__PURE__*/makeIcon('ArrowUpLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUpRight=/*#__PURE__*/makeIcon('ArrowUpRight','');// eslint-disable-next-line\nexport var BIconArrowUpRightCircle=/*#__PURE__*/makeIcon('ArrowUpRightCircle','');// eslint-disable-next-line\nexport var BIconArrowUpRightCircleFill=/*#__PURE__*/makeIcon('ArrowUpRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpRightSquare=/*#__PURE__*/makeIcon('ArrowUpRightSquare','');// eslint-disable-next-line\nexport var BIconArrowUpRightSquareFill=/*#__PURE__*/makeIcon('ArrowUpRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUpShort=/*#__PURE__*/makeIcon('ArrowUpShort','');// eslint-disable-next-line\nexport var BIconArrowUpSquare=/*#__PURE__*/makeIcon('ArrowUpSquare','');// eslint-disable-next-line\nexport var BIconArrowUpSquareFill=/*#__PURE__*/makeIcon('ArrowUpSquareFill','');// eslint-disable-next-line\nexport var BIconArrowsAngleContract=/*#__PURE__*/makeIcon('ArrowsAngleContract','');// eslint-disable-next-line\nexport var BIconArrowsAngleExpand=/*#__PURE__*/makeIcon('ArrowsAngleExpand','');// eslint-disable-next-line\nexport var BIconArrowsCollapse=/*#__PURE__*/makeIcon('ArrowsCollapse','');// eslint-disable-next-line\nexport var BIconArrowsExpand=/*#__PURE__*/makeIcon('ArrowsExpand','');// eslint-disable-next-line\nexport var BIconArrowsFullscreen=/*#__PURE__*/makeIcon('ArrowsFullscreen','');// eslint-disable-next-line\nexport var BIconArrowsMove=/*#__PURE__*/makeIcon('ArrowsMove','');// eslint-disable-next-line\nexport var BIconAspectRatio=/*#__PURE__*/makeIcon('AspectRatio','');// eslint-disable-next-line\nexport var BIconAspectRatioFill=/*#__PURE__*/makeIcon('AspectRatioFill','');// eslint-disable-next-line\nexport var BIconAsterisk=/*#__PURE__*/makeIcon('Asterisk','');// eslint-disable-next-line\nexport var BIconAt=/*#__PURE__*/makeIcon('At','');// eslint-disable-next-line\nexport var BIconAward=/*#__PURE__*/makeIcon('Award','');// eslint-disable-next-line\nexport var BIconAwardFill=/*#__PURE__*/makeIcon('AwardFill','');// eslint-disable-next-line\nexport var BIconBack=/*#__PURE__*/makeIcon('Back','');// eslint-disable-next-line\nexport var BIconBackspace=/*#__PURE__*/makeIcon('Backspace','');// eslint-disable-next-line\nexport var BIconBackspaceFill=/*#__PURE__*/makeIcon('BackspaceFill','');// eslint-disable-next-line\nexport var BIconBackspaceReverse=/*#__PURE__*/makeIcon('BackspaceReverse','');// eslint-disable-next-line\nexport var BIconBackspaceReverseFill=/*#__PURE__*/makeIcon('BackspaceReverseFill','');// eslint-disable-next-line\nexport var BIconBadge3d=/*#__PURE__*/makeIcon('Badge3d','');// eslint-disable-next-line\nexport var BIconBadge3dFill=/*#__PURE__*/makeIcon('Badge3dFill','');// eslint-disable-next-line\nexport var BIconBadge4k=/*#__PURE__*/makeIcon('Badge4k','');// eslint-disable-next-line\nexport var BIconBadge4kFill=/*#__PURE__*/makeIcon('Badge4kFill','');// eslint-disable-next-line\nexport var BIconBadge8k=/*#__PURE__*/makeIcon('Badge8k','');// eslint-disable-next-line\nexport var BIconBadge8kFill=/*#__PURE__*/makeIcon('Badge8kFill','');// eslint-disable-next-line\nexport var BIconBadgeAd=/*#__PURE__*/makeIcon('BadgeAd','');// eslint-disable-next-line\nexport var BIconBadgeAdFill=/*#__PURE__*/makeIcon('BadgeAdFill','');// eslint-disable-next-line\nexport var BIconBadgeAr=/*#__PURE__*/makeIcon('BadgeAr','');// eslint-disable-next-line\nexport var BIconBadgeArFill=/*#__PURE__*/makeIcon('BadgeArFill','');// eslint-disable-next-line\nexport var BIconBadgeCc=/*#__PURE__*/makeIcon('BadgeCc','');// eslint-disable-next-line\nexport var BIconBadgeCcFill=/*#__PURE__*/makeIcon('BadgeCcFill','');// eslint-disable-next-line\nexport var BIconBadgeHd=/*#__PURE__*/makeIcon('BadgeHd','');// eslint-disable-next-line\nexport var BIconBadgeHdFill=/*#__PURE__*/makeIcon('BadgeHdFill','');// eslint-disable-next-line\nexport var BIconBadgeTm=/*#__PURE__*/makeIcon('BadgeTm','');// eslint-disable-next-line\nexport var BIconBadgeTmFill=/*#__PURE__*/makeIcon('BadgeTmFill','');// eslint-disable-next-line\nexport var BIconBadgeVo=/*#__PURE__*/makeIcon('BadgeVo','');// eslint-disable-next-line\nexport var BIconBadgeVoFill=/*#__PURE__*/makeIcon('BadgeVoFill','');// eslint-disable-next-line\nexport var BIconBadgeVr=/*#__PURE__*/makeIcon('BadgeVr','');// eslint-disable-next-line\nexport var BIconBadgeVrFill=/*#__PURE__*/makeIcon('BadgeVrFill','');// eslint-disable-next-line\nexport var BIconBadgeWc=/*#__PURE__*/makeIcon('BadgeWc','');// eslint-disable-next-line\nexport var BIconBadgeWcFill=/*#__PURE__*/makeIcon('BadgeWcFill','');// eslint-disable-next-line\nexport var BIconBag=/*#__PURE__*/makeIcon('Bag','');// eslint-disable-next-line\nexport var BIconBagCheck=/*#__PURE__*/makeIcon('BagCheck','');// eslint-disable-next-line\nexport var BIconBagCheckFill=/*#__PURE__*/makeIcon('BagCheckFill','');// eslint-disable-next-line\nexport var BIconBagDash=/*#__PURE__*/makeIcon('BagDash','');// eslint-disable-next-line\nexport var BIconBagDashFill=/*#__PURE__*/makeIcon('BagDashFill','');// eslint-disable-next-line\nexport var BIconBagFill=/*#__PURE__*/makeIcon('BagFill','');// eslint-disable-next-line\nexport var BIconBagPlus=/*#__PURE__*/makeIcon('BagPlus','');// eslint-disable-next-line\nexport var BIconBagPlusFill=/*#__PURE__*/makeIcon('BagPlusFill','');// eslint-disable-next-line\nexport var BIconBagX=/*#__PURE__*/makeIcon('BagX','');// eslint-disable-next-line\nexport var BIconBagXFill=/*#__PURE__*/makeIcon('BagXFill','');// eslint-disable-next-line\nexport var BIconBank=/*#__PURE__*/makeIcon('Bank','');// eslint-disable-next-line\nexport var BIconBank2=/*#__PURE__*/makeIcon('Bank2','');// eslint-disable-next-line\nexport var BIconBarChart=/*#__PURE__*/makeIcon('BarChart','');// eslint-disable-next-line\nexport var BIconBarChartFill=/*#__PURE__*/makeIcon('BarChartFill','');// eslint-disable-next-line\nexport var BIconBarChartLine=/*#__PURE__*/makeIcon('BarChartLine','');// eslint-disable-next-line\nexport var BIconBarChartLineFill=/*#__PURE__*/makeIcon('BarChartLineFill','');// eslint-disable-next-line\nexport var BIconBarChartSteps=/*#__PURE__*/makeIcon('BarChartSteps','');// eslint-disable-next-line\nexport var BIconBasket=/*#__PURE__*/makeIcon('Basket','');// eslint-disable-next-line\nexport var BIconBasket2=/*#__PURE__*/makeIcon('Basket2','');// eslint-disable-next-line\nexport var BIconBasket2Fill=/*#__PURE__*/makeIcon('Basket2Fill','');// eslint-disable-next-line\nexport var BIconBasket3=/*#__PURE__*/makeIcon('Basket3','');// eslint-disable-next-line\nexport var BIconBasket3Fill=/*#__PURE__*/makeIcon('Basket3Fill','');// eslint-disable-next-line\nexport var BIconBasketFill=/*#__PURE__*/makeIcon('BasketFill','');// eslint-disable-next-line\nexport var BIconBattery=/*#__PURE__*/makeIcon('Battery','');// eslint-disable-next-line\nexport var BIconBatteryCharging=/*#__PURE__*/makeIcon('BatteryCharging','');// eslint-disable-next-line\nexport var BIconBatteryFull=/*#__PURE__*/makeIcon('BatteryFull','');// eslint-disable-next-line\nexport var BIconBatteryHalf=/*#__PURE__*/makeIcon('BatteryHalf','');// eslint-disable-next-line\nexport var BIconBell=/*#__PURE__*/makeIcon('Bell','');// eslint-disable-next-line\nexport var BIconBellFill=/*#__PURE__*/makeIcon('BellFill','');// eslint-disable-next-line\nexport var BIconBellSlash=/*#__PURE__*/makeIcon('BellSlash','');// eslint-disable-next-line\nexport var BIconBellSlashFill=/*#__PURE__*/makeIcon('BellSlashFill','');// eslint-disable-next-line\nexport var BIconBezier=/*#__PURE__*/makeIcon('Bezier','');// eslint-disable-next-line\nexport var BIconBezier2=/*#__PURE__*/makeIcon('Bezier2','');// eslint-disable-next-line\nexport var BIconBicycle=/*#__PURE__*/makeIcon('Bicycle','');// eslint-disable-next-line\nexport var BIconBinoculars=/*#__PURE__*/makeIcon('Binoculars','');// eslint-disable-next-line\nexport var BIconBinocularsFill=/*#__PURE__*/makeIcon('BinocularsFill','');// eslint-disable-next-line\nexport var BIconBlockquoteLeft=/*#__PURE__*/makeIcon('BlockquoteLeft','');// eslint-disable-next-line\nexport var BIconBlockquoteRight=/*#__PURE__*/makeIcon('BlockquoteRight','');// eslint-disable-next-line\nexport var BIconBook=/*#__PURE__*/makeIcon('Book','');// eslint-disable-next-line\nexport var BIconBookFill=/*#__PURE__*/makeIcon('BookFill','');// eslint-disable-next-line\nexport var BIconBookHalf=/*#__PURE__*/makeIcon('BookHalf','');// eslint-disable-next-line\nexport var BIconBookmark=/*#__PURE__*/makeIcon('Bookmark','');// eslint-disable-next-line\nexport var BIconBookmarkCheck=/*#__PURE__*/makeIcon('BookmarkCheck','');// eslint-disable-next-line\nexport var BIconBookmarkCheckFill=/*#__PURE__*/makeIcon('BookmarkCheckFill','');// eslint-disable-next-line\nexport var BIconBookmarkDash=/*#__PURE__*/makeIcon('BookmarkDash','');// eslint-disable-next-line\nexport var BIconBookmarkDashFill=/*#__PURE__*/makeIcon('BookmarkDashFill','');// eslint-disable-next-line\nexport var BIconBookmarkFill=/*#__PURE__*/makeIcon('BookmarkFill','');// eslint-disable-next-line\nexport var BIconBookmarkHeart=/*#__PURE__*/makeIcon('BookmarkHeart','');// eslint-disable-next-line\nexport var BIconBookmarkHeartFill=/*#__PURE__*/makeIcon('BookmarkHeartFill','');// eslint-disable-next-line\nexport var BIconBookmarkPlus=/*#__PURE__*/makeIcon('BookmarkPlus','');// eslint-disable-next-line\nexport var BIconBookmarkPlusFill=/*#__PURE__*/makeIcon('BookmarkPlusFill','');// eslint-disable-next-line\nexport var BIconBookmarkStar=/*#__PURE__*/makeIcon('BookmarkStar','');// eslint-disable-next-line\nexport var BIconBookmarkStarFill=/*#__PURE__*/makeIcon('BookmarkStarFill','');// eslint-disable-next-line\nexport var BIconBookmarkX=/*#__PURE__*/makeIcon('BookmarkX','');// eslint-disable-next-line\nexport var BIconBookmarkXFill=/*#__PURE__*/makeIcon('BookmarkXFill','');// eslint-disable-next-line\nexport var BIconBookmarks=/*#__PURE__*/makeIcon('Bookmarks','');// eslint-disable-next-line\nexport var BIconBookmarksFill=/*#__PURE__*/makeIcon('BookmarksFill','');// eslint-disable-next-line\nexport var BIconBookshelf=/*#__PURE__*/makeIcon('Bookshelf','');// eslint-disable-next-line\nexport var BIconBootstrap=/*#__PURE__*/makeIcon('Bootstrap','');// eslint-disable-next-line\nexport var BIconBootstrapFill=/*#__PURE__*/makeIcon('BootstrapFill','');// eslint-disable-next-line\nexport var BIconBootstrapReboot=/*#__PURE__*/makeIcon('BootstrapReboot','');// eslint-disable-next-line\nexport var BIconBorder=/*#__PURE__*/makeIcon('Border','');// eslint-disable-next-line\nexport var BIconBorderAll=/*#__PURE__*/makeIcon('BorderAll','');// eslint-disable-next-line\nexport var BIconBorderBottom=/*#__PURE__*/makeIcon('BorderBottom','');// eslint-disable-next-line\nexport var BIconBorderCenter=/*#__PURE__*/makeIcon('BorderCenter','');// eslint-disable-next-line\nexport var BIconBorderInner=/*#__PURE__*/makeIcon('BorderInner','');// eslint-disable-next-line\nexport var BIconBorderLeft=/*#__PURE__*/makeIcon('BorderLeft','');// eslint-disable-next-line\nexport var BIconBorderMiddle=/*#__PURE__*/makeIcon('BorderMiddle','');// eslint-disable-next-line\nexport var BIconBorderOuter=/*#__PURE__*/makeIcon('BorderOuter','');// eslint-disable-next-line\nexport var BIconBorderRight=/*#__PURE__*/makeIcon('BorderRight','');// eslint-disable-next-line\nexport var BIconBorderStyle=/*#__PURE__*/makeIcon('BorderStyle','');// eslint-disable-next-line\nexport var BIconBorderTop=/*#__PURE__*/makeIcon('BorderTop','');// eslint-disable-next-line\nexport var BIconBorderWidth=/*#__PURE__*/makeIcon('BorderWidth','');// eslint-disable-next-line\nexport var BIconBoundingBox=/*#__PURE__*/makeIcon('BoundingBox','');// eslint-disable-next-line\nexport var BIconBoundingBoxCircles=/*#__PURE__*/makeIcon('BoundingBoxCircles','');// eslint-disable-next-line\nexport var BIconBox=/*#__PURE__*/makeIcon('Box','');// eslint-disable-next-line\nexport var BIconBoxArrowDown=/*#__PURE__*/makeIcon('BoxArrowDown','');// eslint-disable-next-line\nexport var BIconBoxArrowDownLeft=/*#__PURE__*/makeIcon('BoxArrowDownLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowDownRight=/*#__PURE__*/makeIcon('BoxArrowDownRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInDown=/*#__PURE__*/makeIcon('BoxArrowInDown','');// eslint-disable-next-line\nexport var BIconBoxArrowInDownLeft=/*#__PURE__*/makeIcon('BoxArrowInDownLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInDownRight=/*#__PURE__*/makeIcon('BoxArrowInDownRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInLeft=/*#__PURE__*/makeIcon('BoxArrowInLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInRight=/*#__PURE__*/makeIcon('BoxArrowInRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInUp=/*#__PURE__*/makeIcon('BoxArrowInUp','');// eslint-disable-next-line\nexport var BIconBoxArrowInUpLeft=/*#__PURE__*/makeIcon('BoxArrowInUpLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInUpRight=/*#__PURE__*/makeIcon('BoxArrowInUpRight','');// eslint-disable-next-line\nexport var BIconBoxArrowLeft=/*#__PURE__*/makeIcon('BoxArrowLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowRight=/*#__PURE__*/makeIcon('BoxArrowRight','');// eslint-disable-next-line\nexport var BIconBoxArrowUp=/*#__PURE__*/makeIcon('BoxArrowUp','');// eslint-disable-next-line\nexport var BIconBoxArrowUpLeft=/*#__PURE__*/makeIcon('BoxArrowUpLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowUpRight=/*#__PURE__*/makeIcon('BoxArrowUpRight','');// eslint-disable-next-line\nexport var BIconBoxSeam=/*#__PURE__*/makeIcon('BoxSeam','');// eslint-disable-next-line\nexport var BIconBraces=/*#__PURE__*/makeIcon('Braces','');// eslint-disable-next-line\nexport var BIconBricks=/*#__PURE__*/makeIcon('Bricks','');// eslint-disable-next-line\nexport var BIconBriefcase=/*#__PURE__*/makeIcon('Briefcase','');// eslint-disable-next-line\nexport var BIconBriefcaseFill=/*#__PURE__*/makeIcon('BriefcaseFill','');// eslint-disable-next-line\nexport var BIconBrightnessAltHigh=/*#__PURE__*/makeIcon('BrightnessAltHigh','');// eslint-disable-next-line\nexport var BIconBrightnessAltHighFill=/*#__PURE__*/makeIcon('BrightnessAltHighFill','');// eslint-disable-next-line\nexport var BIconBrightnessAltLow=/*#__PURE__*/makeIcon('BrightnessAltLow','');// eslint-disable-next-line\nexport var BIconBrightnessAltLowFill=/*#__PURE__*/makeIcon('BrightnessAltLowFill','');// eslint-disable-next-line\nexport var BIconBrightnessHigh=/*#__PURE__*/makeIcon('BrightnessHigh','');// eslint-disable-next-line\nexport var BIconBrightnessHighFill=/*#__PURE__*/makeIcon('BrightnessHighFill','');// eslint-disable-next-line\nexport var BIconBrightnessLow=/*#__PURE__*/makeIcon('BrightnessLow','');// eslint-disable-next-line\nexport var BIconBrightnessLowFill=/*#__PURE__*/makeIcon('BrightnessLowFill','');// eslint-disable-next-line\nexport var BIconBroadcast=/*#__PURE__*/makeIcon('Broadcast','');// eslint-disable-next-line\nexport var BIconBroadcastPin=/*#__PURE__*/makeIcon('BroadcastPin','');// eslint-disable-next-line\nexport var BIconBrush=/*#__PURE__*/makeIcon('Brush','');// eslint-disable-next-line\nexport var BIconBrushFill=/*#__PURE__*/makeIcon('BrushFill','');// eslint-disable-next-line\nexport var BIconBucket=/*#__PURE__*/makeIcon('Bucket','');// eslint-disable-next-line\nexport var BIconBucketFill=/*#__PURE__*/makeIcon('BucketFill','');// eslint-disable-next-line\nexport var BIconBug=/*#__PURE__*/makeIcon('Bug','');// eslint-disable-next-line\nexport var BIconBugFill=/*#__PURE__*/makeIcon('BugFill','');// eslint-disable-next-line\nexport var BIconBuilding=/*#__PURE__*/makeIcon('Building','');// eslint-disable-next-line\nexport var BIconBullseye=/*#__PURE__*/makeIcon('Bullseye','');// eslint-disable-next-line\nexport var BIconCalculator=/*#__PURE__*/makeIcon('Calculator','');// eslint-disable-next-line\nexport var BIconCalculatorFill=/*#__PURE__*/makeIcon('CalculatorFill','');// eslint-disable-next-line\nexport var BIconCalendar=/*#__PURE__*/makeIcon('Calendar','');// eslint-disable-next-line\nexport var BIconCalendar2=/*#__PURE__*/makeIcon('Calendar2','');// eslint-disable-next-line\nexport var BIconCalendar2Check=/*#__PURE__*/makeIcon('Calendar2Check','');// eslint-disable-next-line\nexport var BIconCalendar2CheckFill=/*#__PURE__*/makeIcon('Calendar2CheckFill','');// eslint-disable-next-line\nexport var BIconCalendar2Date=/*#__PURE__*/makeIcon('Calendar2Date','');// eslint-disable-next-line\nexport var BIconCalendar2DateFill=/*#__PURE__*/makeIcon('Calendar2DateFill','');// eslint-disable-next-line\nexport var BIconCalendar2Day=/*#__PURE__*/makeIcon('Calendar2Day','');// eslint-disable-next-line\nexport var BIconCalendar2DayFill=/*#__PURE__*/makeIcon('Calendar2DayFill','');// eslint-disable-next-line\nexport var BIconCalendar2Event=/*#__PURE__*/makeIcon('Calendar2Event','');// eslint-disable-next-line\nexport var BIconCalendar2EventFill=/*#__PURE__*/makeIcon('Calendar2EventFill','');// eslint-disable-next-line\nexport var BIconCalendar2Fill=/*#__PURE__*/makeIcon('Calendar2Fill','');// eslint-disable-next-line\nexport var BIconCalendar2Minus=/*#__PURE__*/makeIcon('Calendar2Minus','');// eslint-disable-next-line\nexport var BIconCalendar2MinusFill=/*#__PURE__*/makeIcon('Calendar2MinusFill','');// eslint-disable-next-line\nexport var BIconCalendar2Month=/*#__PURE__*/makeIcon('Calendar2Month','');// eslint-disable-next-line\nexport var BIconCalendar2MonthFill=/*#__PURE__*/makeIcon('Calendar2MonthFill','');// eslint-disable-next-line\nexport var BIconCalendar2Plus=/*#__PURE__*/makeIcon('Calendar2Plus','');// eslint-disable-next-line\nexport var BIconCalendar2PlusFill=/*#__PURE__*/makeIcon('Calendar2PlusFill','');// eslint-disable-next-line\nexport var BIconCalendar2Range=/*#__PURE__*/makeIcon('Calendar2Range','');// eslint-disable-next-line\nexport var BIconCalendar2RangeFill=/*#__PURE__*/makeIcon('Calendar2RangeFill','');// eslint-disable-next-line\nexport var BIconCalendar2Week=/*#__PURE__*/makeIcon('Calendar2Week','');// eslint-disable-next-line\nexport var BIconCalendar2WeekFill=/*#__PURE__*/makeIcon('Calendar2WeekFill','');// eslint-disable-next-line\nexport var BIconCalendar2X=/*#__PURE__*/makeIcon('Calendar2X','');// eslint-disable-next-line\nexport var BIconCalendar2XFill=/*#__PURE__*/makeIcon('Calendar2XFill','');// eslint-disable-next-line\nexport var BIconCalendar3=/*#__PURE__*/makeIcon('Calendar3','');// eslint-disable-next-line\nexport var BIconCalendar3Event=/*#__PURE__*/makeIcon('Calendar3Event','');// eslint-disable-next-line\nexport var BIconCalendar3EventFill=/*#__PURE__*/makeIcon('Calendar3EventFill','');// eslint-disable-next-line\nexport var BIconCalendar3Fill=/*#__PURE__*/makeIcon('Calendar3Fill','');// eslint-disable-next-line\nexport var BIconCalendar3Range=/*#__PURE__*/makeIcon('Calendar3Range','');// eslint-disable-next-line\nexport var BIconCalendar3RangeFill=/*#__PURE__*/makeIcon('Calendar3RangeFill','');// eslint-disable-next-line\nexport var BIconCalendar3Week=/*#__PURE__*/makeIcon('Calendar3Week','');// eslint-disable-next-line\nexport var BIconCalendar3WeekFill=/*#__PURE__*/makeIcon('Calendar3WeekFill','');// eslint-disable-next-line\nexport var BIconCalendar4=/*#__PURE__*/makeIcon('Calendar4','');// eslint-disable-next-line\nexport var BIconCalendar4Event=/*#__PURE__*/makeIcon('Calendar4Event','');// eslint-disable-next-line\nexport var BIconCalendar4Range=/*#__PURE__*/makeIcon('Calendar4Range','');// eslint-disable-next-line\nexport var BIconCalendar4Week=/*#__PURE__*/makeIcon('Calendar4Week','');// eslint-disable-next-line\nexport var BIconCalendarCheck=/*#__PURE__*/makeIcon('CalendarCheck','');// eslint-disable-next-line\nexport var BIconCalendarCheckFill=/*#__PURE__*/makeIcon('CalendarCheckFill','');// eslint-disable-next-line\nexport var BIconCalendarDate=/*#__PURE__*/makeIcon('CalendarDate','');// eslint-disable-next-line\nexport var BIconCalendarDateFill=/*#__PURE__*/makeIcon('CalendarDateFill','');// eslint-disable-next-line\nexport var BIconCalendarDay=/*#__PURE__*/makeIcon('CalendarDay','');// eslint-disable-next-line\nexport var BIconCalendarDayFill=/*#__PURE__*/makeIcon('CalendarDayFill','');// eslint-disable-next-line\nexport var BIconCalendarEvent=/*#__PURE__*/makeIcon('CalendarEvent','');// eslint-disable-next-line\nexport var BIconCalendarEventFill=/*#__PURE__*/makeIcon('CalendarEventFill','');// eslint-disable-next-line\nexport var BIconCalendarFill=/*#__PURE__*/makeIcon('CalendarFill','');// eslint-disable-next-line\nexport var BIconCalendarMinus=/*#__PURE__*/makeIcon('CalendarMinus','');// eslint-disable-next-line\nexport var BIconCalendarMinusFill=/*#__PURE__*/makeIcon('CalendarMinusFill','');// eslint-disable-next-line\nexport var BIconCalendarMonth=/*#__PURE__*/makeIcon('CalendarMonth','');// eslint-disable-next-line\nexport var BIconCalendarMonthFill=/*#__PURE__*/makeIcon('CalendarMonthFill','');// eslint-disable-next-line\nexport var BIconCalendarPlus=/*#__PURE__*/makeIcon('CalendarPlus','');// eslint-disable-next-line\nexport var BIconCalendarPlusFill=/*#__PURE__*/makeIcon('CalendarPlusFill','');// eslint-disable-next-line\nexport var BIconCalendarRange=/*#__PURE__*/makeIcon('CalendarRange','');// eslint-disable-next-line\nexport var BIconCalendarRangeFill=/*#__PURE__*/makeIcon('CalendarRangeFill','');// eslint-disable-next-line\nexport var BIconCalendarWeek=/*#__PURE__*/makeIcon('CalendarWeek','');// eslint-disable-next-line\nexport var BIconCalendarWeekFill=/*#__PURE__*/makeIcon('CalendarWeekFill','');// eslint-disable-next-line\nexport var BIconCalendarX=/*#__PURE__*/makeIcon('CalendarX','');// eslint-disable-next-line\nexport var BIconCalendarXFill=/*#__PURE__*/makeIcon('CalendarXFill','');// eslint-disable-next-line\nexport var BIconCamera=/*#__PURE__*/makeIcon('Camera','');// eslint-disable-next-line\nexport var BIconCamera2=/*#__PURE__*/makeIcon('Camera2','');// eslint-disable-next-line\nexport var BIconCameraFill=/*#__PURE__*/makeIcon('CameraFill','');// eslint-disable-next-line\nexport var BIconCameraReels=/*#__PURE__*/makeIcon('CameraReels','');// eslint-disable-next-line\nexport var BIconCameraReelsFill=/*#__PURE__*/makeIcon('CameraReelsFill','');// eslint-disable-next-line\nexport var BIconCameraVideo=/*#__PURE__*/makeIcon('CameraVideo','');// eslint-disable-next-line\nexport var BIconCameraVideoFill=/*#__PURE__*/makeIcon('CameraVideoFill','');// eslint-disable-next-line\nexport var BIconCameraVideoOff=/*#__PURE__*/makeIcon('CameraVideoOff','');// eslint-disable-next-line\nexport var BIconCameraVideoOffFill=/*#__PURE__*/makeIcon('CameraVideoOffFill','');// eslint-disable-next-line\nexport var BIconCapslock=/*#__PURE__*/makeIcon('Capslock','');// eslint-disable-next-line\nexport var BIconCapslockFill=/*#__PURE__*/makeIcon('CapslockFill','');// eslint-disable-next-line\nexport var BIconCardChecklist=/*#__PURE__*/makeIcon('CardChecklist','');// eslint-disable-next-line\nexport var BIconCardHeading=/*#__PURE__*/makeIcon('CardHeading','');// eslint-disable-next-line\nexport var BIconCardImage=/*#__PURE__*/makeIcon('CardImage','');// eslint-disable-next-line\nexport var BIconCardList=/*#__PURE__*/makeIcon('CardList','');// eslint-disable-next-line\nexport var BIconCardText=/*#__PURE__*/makeIcon('CardText','');// eslint-disable-next-line\nexport var BIconCaretDown=/*#__PURE__*/makeIcon('CaretDown','');// eslint-disable-next-line\nexport var BIconCaretDownFill=/*#__PURE__*/makeIcon('CaretDownFill','');// eslint-disable-next-line\nexport var BIconCaretDownSquare=/*#__PURE__*/makeIcon('CaretDownSquare','');// eslint-disable-next-line\nexport var BIconCaretDownSquareFill=/*#__PURE__*/makeIcon('CaretDownSquareFill','');// eslint-disable-next-line\nexport var BIconCaretLeft=/*#__PURE__*/makeIcon('CaretLeft','');// eslint-disable-next-line\nexport var BIconCaretLeftFill=/*#__PURE__*/makeIcon('CaretLeftFill','');// eslint-disable-next-line\nexport var BIconCaretLeftSquare=/*#__PURE__*/makeIcon('CaretLeftSquare','');// eslint-disable-next-line\nexport var BIconCaretLeftSquareFill=/*#__PURE__*/makeIcon('CaretLeftSquareFill','');// eslint-disable-next-line\nexport var BIconCaretRight=/*#__PURE__*/makeIcon('CaretRight','');// eslint-disable-next-line\nexport var BIconCaretRightFill=/*#__PURE__*/makeIcon('CaretRightFill','');// eslint-disable-next-line\nexport var BIconCaretRightSquare=/*#__PURE__*/makeIcon('CaretRightSquare','');// eslint-disable-next-line\nexport var BIconCaretRightSquareFill=/*#__PURE__*/makeIcon('CaretRightSquareFill','');// eslint-disable-next-line\nexport var BIconCaretUp=/*#__PURE__*/makeIcon('CaretUp','');// eslint-disable-next-line\nexport var BIconCaretUpFill=/*#__PURE__*/makeIcon('CaretUpFill','');// eslint-disable-next-line\nexport var BIconCaretUpSquare=/*#__PURE__*/makeIcon('CaretUpSquare','');// eslint-disable-next-line\nexport var BIconCaretUpSquareFill=/*#__PURE__*/makeIcon('CaretUpSquareFill','');// eslint-disable-next-line\nexport var BIconCart=/*#__PURE__*/makeIcon('Cart','');// eslint-disable-next-line\nexport var BIconCart2=/*#__PURE__*/makeIcon('Cart2','');// eslint-disable-next-line\nexport var BIconCart3=/*#__PURE__*/makeIcon('Cart3','');// eslint-disable-next-line\nexport var BIconCart4=/*#__PURE__*/makeIcon('Cart4','');// eslint-disable-next-line\nexport var BIconCartCheck=/*#__PURE__*/makeIcon('CartCheck','');// eslint-disable-next-line\nexport var BIconCartCheckFill=/*#__PURE__*/makeIcon('CartCheckFill','');// eslint-disable-next-line\nexport var BIconCartDash=/*#__PURE__*/makeIcon('CartDash','');// eslint-disable-next-line\nexport var BIconCartDashFill=/*#__PURE__*/makeIcon('CartDashFill','');// eslint-disable-next-line\nexport var BIconCartFill=/*#__PURE__*/makeIcon('CartFill','');// eslint-disable-next-line\nexport var BIconCartPlus=/*#__PURE__*/makeIcon('CartPlus','');// eslint-disable-next-line\nexport var BIconCartPlusFill=/*#__PURE__*/makeIcon('CartPlusFill','');// eslint-disable-next-line\nexport var BIconCartX=/*#__PURE__*/makeIcon('CartX','');// eslint-disable-next-line\nexport var BIconCartXFill=/*#__PURE__*/makeIcon('CartXFill','');// eslint-disable-next-line\nexport var BIconCash=/*#__PURE__*/makeIcon('Cash','');// eslint-disable-next-line\nexport var BIconCashCoin=/*#__PURE__*/makeIcon('CashCoin','');// eslint-disable-next-line\nexport var BIconCashStack=/*#__PURE__*/makeIcon('CashStack','');// eslint-disable-next-line\nexport var BIconCast=/*#__PURE__*/makeIcon('Cast','');// eslint-disable-next-line\nexport var BIconChat=/*#__PURE__*/makeIcon('Chat','');// eslint-disable-next-line\nexport var BIconChatDots=/*#__PURE__*/makeIcon('ChatDots','');// eslint-disable-next-line\nexport var BIconChatDotsFill=/*#__PURE__*/makeIcon('ChatDotsFill','');// eslint-disable-next-line\nexport var BIconChatFill=/*#__PURE__*/makeIcon('ChatFill','');// eslint-disable-next-line\nexport var BIconChatLeft=/*#__PURE__*/makeIcon('ChatLeft','');// eslint-disable-next-line\nexport var BIconChatLeftDots=/*#__PURE__*/makeIcon('ChatLeftDots','');// eslint-disable-next-line\nexport var BIconChatLeftDotsFill=/*#__PURE__*/makeIcon('ChatLeftDotsFill','');// eslint-disable-next-line\nexport var BIconChatLeftFill=/*#__PURE__*/makeIcon('ChatLeftFill','');// eslint-disable-next-line\nexport var BIconChatLeftQuote=/*#__PURE__*/makeIcon('ChatLeftQuote','');// eslint-disable-next-line\nexport var BIconChatLeftQuoteFill=/*#__PURE__*/makeIcon('ChatLeftQuoteFill','');// eslint-disable-next-line\nexport var BIconChatLeftText=/*#__PURE__*/makeIcon('ChatLeftText','');// eslint-disable-next-line\nexport var BIconChatLeftTextFill=/*#__PURE__*/makeIcon('ChatLeftTextFill','');// eslint-disable-next-line\nexport var BIconChatQuote=/*#__PURE__*/makeIcon('ChatQuote','');// eslint-disable-next-line\nexport var BIconChatQuoteFill=/*#__PURE__*/makeIcon('ChatQuoteFill','');// eslint-disable-next-line\nexport var BIconChatRight=/*#__PURE__*/makeIcon('ChatRight','');// eslint-disable-next-line\nexport var BIconChatRightDots=/*#__PURE__*/makeIcon('ChatRightDots','');// eslint-disable-next-line\nexport var BIconChatRightDotsFill=/*#__PURE__*/makeIcon('ChatRightDotsFill','');// eslint-disable-next-line\nexport var BIconChatRightFill=/*#__PURE__*/makeIcon('ChatRightFill','');// eslint-disable-next-line\nexport var BIconChatRightQuote=/*#__PURE__*/makeIcon('ChatRightQuote','');// eslint-disable-next-line\nexport var BIconChatRightQuoteFill=/*#__PURE__*/makeIcon('ChatRightQuoteFill','');// eslint-disable-next-line\nexport var BIconChatRightText=/*#__PURE__*/makeIcon('ChatRightText','');// eslint-disable-next-line\nexport var BIconChatRightTextFill=/*#__PURE__*/makeIcon('ChatRightTextFill','');// eslint-disable-next-line\nexport var BIconChatSquare=/*#__PURE__*/makeIcon('ChatSquare','');// eslint-disable-next-line\nexport var BIconChatSquareDots=/*#__PURE__*/makeIcon('ChatSquareDots','');// eslint-disable-next-line\nexport var BIconChatSquareDotsFill=/*#__PURE__*/makeIcon('ChatSquareDotsFill','');// eslint-disable-next-line\nexport var BIconChatSquareFill=/*#__PURE__*/makeIcon('ChatSquareFill','');// eslint-disable-next-line\nexport var BIconChatSquareQuote=/*#__PURE__*/makeIcon('ChatSquareQuote','');// eslint-disable-next-line\nexport var BIconChatSquareQuoteFill=/*#__PURE__*/makeIcon('ChatSquareQuoteFill','');// eslint-disable-next-line\nexport var BIconChatSquareText=/*#__PURE__*/makeIcon('ChatSquareText','');// eslint-disable-next-line\nexport var BIconChatSquareTextFill=/*#__PURE__*/makeIcon('ChatSquareTextFill','');// eslint-disable-next-line\nexport var BIconChatText=/*#__PURE__*/makeIcon('ChatText','');// eslint-disable-next-line\nexport var BIconChatTextFill=/*#__PURE__*/makeIcon('ChatTextFill','');// eslint-disable-next-line\nexport var BIconCheck=/*#__PURE__*/makeIcon('Check','');// eslint-disable-next-line\nexport var BIconCheck2=/*#__PURE__*/makeIcon('Check2','');// eslint-disable-next-line\nexport var BIconCheck2All=/*#__PURE__*/makeIcon('Check2All','');// eslint-disable-next-line\nexport var BIconCheck2Circle=/*#__PURE__*/makeIcon('Check2Circle','');// eslint-disable-next-line\nexport var BIconCheck2Square=/*#__PURE__*/makeIcon('Check2Square','');// eslint-disable-next-line\nexport var BIconCheckAll=/*#__PURE__*/makeIcon('CheckAll','');// eslint-disable-next-line\nexport var BIconCheckCircle=/*#__PURE__*/makeIcon('CheckCircle','');// eslint-disable-next-line\nexport var BIconCheckCircleFill=/*#__PURE__*/makeIcon('CheckCircleFill','');// eslint-disable-next-line\nexport var BIconCheckLg=/*#__PURE__*/makeIcon('CheckLg','');// eslint-disable-next-line\nexport var BIconCheckSquare=/*#__PURE__*/makeIcon('CheckSquare','');// eslint-disable-next-line\nexport var BIconCheckSquareFill=/*#__PURE__*/makeIcon('CheckSquareFill','');// eslint-disable-next-line\nexport var BIconChevronBarContract=/*#__PURE__*/makeIcon('ChevronBarContract','');// eslint-disable-next-line\nexport var BIconChevronBarDown=/*#__PURE__*/makeIcon('ChevronBarDown','');// eslint-disable-next-line\nexport var BIconChevronBarExpand=/*#__PURE__*/makeIcon('ChevronBarExpand','');// eslint-disable-next-line\nexport var BIconChevronBarLeft=/*#__PURE__*/makeIcon('ChevronBarLeft','');// eslint-disable-next-line\nexport var BIconChevronBarRight=/*#__PURE__*/makeIcon('ChevronBarRight','');// eslint-disable-next-line\nexport var BIconChevronBarUp=/*#__PURE__*/makeIcon('ChevronBarUp','');// eslint-disable-next-line\nexport var BIconChevronCompactDown=/*#__PURE__*/makeIcon('ChevronCompactDown','');// eslint-disable-next-line\nexport var BIconChevronCompactLeft=/*#__PURE__*/makeIcon('ChevronCompactLeft','');// eslint-disable-next-line\nexport var BIconChevronCompactRight=/*#__PURE__*/makeIcon('ChevronCompactRight','');// eslint-disable-next-line\nexport var BIconChevronCompactUp=/*#__PURE__*/makeIcon('ChevronCompactUp','');// eslint-disable-next-line\nexport var BIconChevronContract=/*#__PURE__*/makeIcon('ChevronContract','');// eslint-disable-next-line\nexport var BIconChevronDoubleDown=/*#__PURE__*/makeIcon('ChevronDoubleDown','');// eslint-disable-next-line\nexport var BIconChevronDoubleLeft=/*#__PURE__*/makeIcon('ChevronDoubleLeft','');// eslint-disable-next-line\nexport var BIconChevronDoubleRight=/*#__PURE__*/makeIcon('ChevronDoubleRight','');// eslint-disable-next-line\nexport var BIconChevronDoubleUp=/*#__PURE__*/makeIcon('ChevronDoubleUp','');// eslint-disable-next-line\nexport var BIconChevronDown=/*#__PURE__*/makeIcon('ChevronDown','');// eslint-disable-next-line\nexport var BIconChevronExpand=/*#__PURE__*/makeIcon('ChevronExpand','');// eslint-disable-next-line\nexport var BIconChevronLeft=/*#__PURE__*/makeIcon('ChevronLeft','');// eslint-disable-next-line\nexport var BIconChevronRight=/*#__PURE__*/makeIcon('ChevronRight','');// eslint-disable-next-line\nexport var BIconChevronUp=/*#__PURE__*/makeIcon('ChevronUp','');// eslint-disable-next-line\nexport var BIconCircle=/*#__PURE__*/makeIcon('Circle','');// eslint-disable-next-line\nexport var BIconCircleFill=/*#__PURE__*/makeIcon('CircleFill','');// eslint-disable-next-line\nexport var BIconCircleHalf=/*#__PURE__*/makeIcon('CircleHalf','');// eslint-disable-next-line\nexport var BIconCircleSquare=/*#__PURE__*/makeIcon('CircleSquare','');// eslint-disable-next-line\nexport var BIconClipboard=/*#__PURE__*/makeIcon('Clipboard','');// eslint-disable-next-line\nexport var BIconClipboardCheck=/*#__PURE__*/makeIcon('ClipboardCheck','');// eslint-disable-next-line\nexport var BIconClipboardData=/*#__PURE__*/makeIcon('ClipboardData','');// eslint-disable-next-line\nexport var BIconClipboardMinus=/*#__PURE__*/makeIcon('ClipboardMinus','');// eslint-disable-next-line\nexport var BIconClipboardPlus=/*#__PURE__*/makeIcon('ClipboardPlus','');// eslint-disable-next-line\nexport var BIconClipboardX=/*#__PURE__*/makeIcon('ClipboardX','');// eslint-disable-next-line\nexport var BIconClock=/*#__PURE__*/makeIcon('Clock','');// eslint-disable-next-line\nexport var BIconClockFill=/*#__PURE__*/makeIcon('ClockFill','');// eslint-disable-next-line\nexport var BIconClockHistory=/*#__PURE__*/makeIcon('ClockHistory','');// eslint-disable-next-line\nexport var BIconCloud=/*#__PURE__*/makeIcon('Cloud','');// eslint-disable-next-line\nexport var BIconCloudArrowDown=/*#__PURE__*/makeIcon('CloudArrowDown','');// eslint-disable-next-line\nexport var BIconCloudArrowDownFill=/*#__PURE__*/makeIcon('CloudArrowDownFill','');// eslint-disable-next-line\nexport var BIconCloudArrowUp=/*#__PURE__*/makeIcon('CloudArrowUp','');// eslint-disable-next-line\nexport var BIconCloudArrowUpFill=/*#__PURE__*/makeIcon('CloudArrowUpFill','');// eslint-disable-next-line\nexport var BIconCloudCheck=/*#__PURE__*/makeIcon('CloudCheck','');// eslint-disable-next-line\nexport var BIconCloudCheckFill=/*#__PURE__*/makeIcon('CloudCheckFill','');// eslint-disable-next-line\nexport var BIconCloudDownload=/*#__PURE__*/makeIcon('CloudDownload','');// eslint-disable-next-line\nexport var BIconCloudDownloadFill=/*#__PURE__*/makeIcon('CloudDownloadFill','');// eslint-disable-next-line\nexport var BIconCloudDrizzle=/*#__PURE__*/makeIcon('CloudDrizzle','');// eslint-disable-next-line\nexport var BIconCloudDrizzleFill=/*#__PURE__*/makeIcon('CloudDrizzleFill','');// eslint-disable-next-line\nexport var BIconCloudFill=/*#__PURE__*/makeIcon('CloudFill','');// eslint-disable-next-line\nexport var BIconCloudFog=/*#__PURE__*/makeIcon('CloudFog','');// eslint-disable-next-line\nexport var BIconCloudFog2=/*#__PURE__*/makeIcon('CloudFog2','');// eslint-disable-next-line\nexport var BIconCloudFog2Fill=/*#__PURE__*/makeIcon('CloudFog2Fill','');// eslint-disable-next-line\nexport var BIconCloudFogFill=/*#__PURE__*/makeIcon('CloudFogFill','');// eslint-disable-next-line\nexport var BIconCloudHail=/*#__PURE__*/makeIcon('CloudHail','');// eslint-disable-next-line\nexport var BIconCloudHailFill=/*#__PURE__*/makeIcon('CloudHailFill','');// eslint-disable-next-line\nexport var BIconCloudHaze=/*#__PURE__*/makeIcon('CloudHaze','');// eslint-disable-next-line\nexport var BIconCloudHaze1=/*#__PURE__*/makeIcon('CloudHaze1','');// eslint-disable-next-line\nexport var BIconCloudHaze2Fill=/*#__PURE__*/makeIcon('CloudHaze2Fill','');// eslint-disable-next-line\nexport var BIconCloudHazeFill=/*#__PURE__*/makeIcon('CloudHazeFill','');// eslint-disable-next-line\nexport var BIconCloudLightning=/*#__PURE__*/makeIcon('CloudLightning','');// eslint-disable-next-line\nexport var BIconCloudLightningFill=/*#__PURE__*/makeIcon('CloudLightningFill','');// eslint-disable-next-line\nexport var BIconCloudLightningRain=/*#__PURE__*/makeIcon('CloudLightningRain','');// eslint-disable-next-line\nexport var BIconCloudLightningRainFill=/*#__PURE__*/makeIcon('CloudLightningRainFill','');// eslint-disable-next-line\nexport var BIconCloudMinus=/*#__PURE__*/makeIcon('CloudMinus','');// eslint-disable-next-line\nexport var BIconCloudMinusFill=/*#__PURE__*/makeIcon('CloudMinusFill','');// eslint-disable-next-line\nexport var BIconCloudMoon=/*#__PURE__*/makeIcon('CloudMoon','');// eslint-disable-next-line\nexport var BIconCloudMoonFill=/*#__PURE__*/makeIcon('CloudMoonFill','');// eslint-disable-next-line\nexport var BIconCloudPlus=/*#__PURE__*/makeIcon('CloudPlus','');// eslint-disable-next-line\nexport var BIconCloudPlusFill=/*#__PURE__*/makeIcon('CloudPlusFill','');// eslint-disable-next-line\nexport var BIconCloudRain=/*#__PURE__*/makeIcon('CloudRain','');// eslint-disable-next-line\nexport var BIconCloudRainFill=/*#__PURE__*/makeIcon('CloudRainFill','');// eslint-disable-next-line\nexport var BIconCloudRainHeavy=/*#__PURE__*/makeIcon('CloudRainHeavy','');// eslint-disable-next-line\nexport var BIconCloudRainHeavyFill=/*#__PURE__*/makeIcon('CloudRainHeavyFill','');// eslint-disable-next-line\nexport var BIconCloudSlash=/*#__PURE__*/makeIcon('CloudSlash','');// eslint-disable-next-line\nexport var BIconCloudSlashFill=/*#__PURE__*/makeIcon('CloudSlashFill','');// eslint-disable-next-line\nexport var BIconCloudSleet=/*#__PURE__*/makeIcon('CloudSleet','');// eslint-disable-next-line\nexport var BIconCloudSleetFill=/*#__PURE__*/makeIcon('CloudSleetFill','');// eslint-disable-next-line\nexport var BIconCloudSnow=/*#__PURE__*/makeIcon('CloudSnow','');// eslint-disable-next-line\nexport var BIconCloudSnowFill=/*#__PURE__*/makeIcon('CloudSnowFill','');// eslint-disable-next-line\nexport var BIconCloudSun=/*#__PURE__*/makeIcon('CloudSun','');// eslint-disable-next-line\nexport var BIconCloudSunFill=/*#__PURE__*/makeIcon('CloudSunFill','');// eslint-disable-next-line\nexport var BIconCloudUpload=/*#__PURE__*/makeIcon('CloudUpload','');// eslint-disable-next-line\nexport var BIconCloudUploadFill=/*#__PURE__*/makeIcon('CloudUploadFill','');// eslint-disable-next-line\nexport var BIconClouds=/*#__PURE__*/makeIcon('Clouds','');// eslint-disable-next-line\nexport var BIconCloudsFill=/*#__PURE__*/makeIcon('CloudsFill','');// eslint-disable-next-line\nexport var BIconCloudy=/*#__PURE__*/makeIcon('Cloudy','');// eslint-disable-next-line\nexport var BIconCloudyFill=/*#__PURE__*/makeIcon('CloudyFill','');// eslint-disable-next-line\nexport var BIconCode=/*#__PURE__*/makeIcon('Code','');// eslint-disable-next-line\nexport var BIconCodeSlash=/*#__PURE__*/makeIcon('CodeSlash','');// eslint-disable-next-line\nexport var BIconCodeSquare=/*#__PURE__*/makeIcon('CodeSquare','');// eslint-disable-next-line\nexport var BIconCoin=/*#__PURE__*/makeIcon('Coin','');// eslint-disable-next-line\nexport var BIconCollection=/*#__PURE__*/makeIcon('Collection','');// eslint-disable-next-line\nexport var BIconCollectionFill=/*#__PURE__*/makeIcon('CollectionFill','');// eslint-disable-next-line\nexport var BIconCollectionPlay=/*#__PURE__*/makeIcon('CollectionPlay','');// eslint-disable-next-line\nexport var BIconCollectionPlayFill=/*#__PURE__*/makeIcon('CollectionPlayFill','');// eslint-disable-next-line\nexport var BIconColumns=/*#__PURE__*/makeIcon('Columns','');// eslint-disable-next-line\nexport var BIconColumnsGap=/*#__PURE__*/makeIcon('ColumnsGap','');// eslint-disable-next-line\nexport var BIconCommand=/*#__PURE__*/makeIcon('Command','');// eslint-disable-next-line\nexport var BIconCompass=/*#__PURE__*/makeIcon('Compass','');// eslint-disable-next-line\nexport var BIconCompassFill=/*#__PURE__*/makeIcon('CompassFill','');// eslint-disable-next-line\nexport var BIconCone=/*#__PURE__*/makeIcon('Cone','');// eslint-disable-next-line\nexport var BIconConeStriped=/*#__PURE__*/makeIcon('ConeStriped','');// eslint-disable-next-line\nexport var BIconController=/*#__PURE__*/makeIcon('Controller','');// eslint-disable-next-line\nexport var BIconCpu=/*#__PURE__*/makeIcon('Cpu','');// eslint-disable-next-line\nexport var BIconCpuFill=/*#__PURE__*/makeIcon('CpuFill','');// eslint-disable-next-line\nexport var BIconCreditCard=/*#__PURE__*/makeIcon('CreditCard','');// eslint-disable-next-line\nexport var BIconCreditCard2Back=/*#__PURE__*/makeIcon('CreditCard2Back','');// eslint-disable-next-line\nexport var BIconCreditCard2BackFill=/*#__PURE__*/makeIcon('CreditCard2BackFill','');// eslint-disable-next-line\nexport var BIconCreditCard2Front=/*#__PURE__*/makeIcon('CreditCard2Front','');// eslint-disable-next-line\nexport var BIconCreditCard2FrontFill=/*#__PURE__*/makeIcon('CreditCard2FrontFill','');// eslint-disable-next-line\nexport var BIconCreditCardFill=/*#__PURE__*/makeIcon('CreditCardFill','');// eslint-disable-next-line\nexport var BIconCrop=/*#__PURE__*/makeIcon('Crop','');// eslint-disable-next-line\nexport var BIconCup=/*#__PURE__*/makeIcon('Cup','');// eslint-disable-next-line\nexport var BIconCupFill=/*#__PURE__*/makeIcon('CupFill','');// eslint-disable-next-line\nexport var BIconCupStraw=/*#__PURE__*/makeIcon('CupStraw','');// eslint-disable-next-line\nexport var BIconCurrencyBitcoin=/*#__PURE__*/makeIcon('CurrencyBitcoin','');// eslint-disable-next-line\nexport var BIconCurrencyDollar=/*#__PURE__*/makeIcon('CurrencyDollar','');// eslint-disable-next-line\nexport var BIconCurrencyEuro=/*#__PURE__*/makeIcon('CurrencyEuro','');// eslint-disable-next-line\nexport var BIconCurrencyExchange=/*#__PURE__*/makeIcon('CurrencyExchange','');// eslint-disable-next-line\nexport var BIconCurrencyPound=/*#__PURE__*/makeIcon('CurrencyPound','');// eslint-disable-next-line\nexport var BIconCurrencyYen=/*#__PURE__*/makeIcon('CurrencyYen','');// eslint-disable-next-line\nexport var BIconCursor=/*#__PURE__*/makeIcon('Cursor','');// eslint-disable-next-line\nexport var BIconCursorFill=/*#__PURE__*/makeIcon('CursorFill','');// eslint-disable-next-line\nexport var BIconCursorText=/*#__PURE__*/makeIcon('CursorText','');// eslint-disable-next-line\nexport var BIconDash=/*#__PURE__*/makeIcon('Dash','');// eslint-disable-next-line\nexport var BIconDashCircle=/*#__PURE__*/makeIcon('DashCircle','');// eslint-disable-next-line\nexport var BIconDashCircleDotted=/*#__PURE__*/makeIcon('DashCircleDotted','');// eslint-disable-next-line\nexport var BIconDashCircleFill=/*#__PURE__*/makeIcon('DashCircleFill','');// eslint-disable-next-line\nexport var BIconDashLg=/*#__PURE__*/makeIcon('DashLg','');// eslint-disable-next-line\nexport var BIconDashSquare=/*#__PURE__*/makeIcon('DashSquare','');// eslint-disable-next-line\nexport var BIconDashSquareDotted=/*#__PURE__*/makeIcon('DashSquareDotted','');// eslint-disable-next-line\nexport var BIconDashSquareFill=/*#__PURE__*/makeIcon('DashSquareFill','');// eslint-disable-next-line\nexport var BIconDiagram2=/*#__PURE__*/makeIcon('Diagram2','');// eslint-disable-next-line\nexport var BIconDiagram2Fill=/*#__PURE__*/makeIcon('Diagram2Fill','');// eslint-disable-next-line\nexport var BIconDiagram3=/*#__PURE__*/makeIcon('Diagram3','');// eslint-disable-next-line\nexport var BIconDiagram3Fill=/*#__PURE__*/makeIcon('Diagram3Fill','');// eslint-disable-next-line\nexport var BIconDiamond=/*#__PURE__*/makeIcon('Diamond','');// eslint-disable-next-line\nexport var BIconDiamondFill=/*#__PURE__*/makeIcon('DiamondFill','');// eslint-disable-next-line\nexport var BIconDiamondHalf=/*#__PURE__*/makeIcon('DiamondHalf','');// eslint-disable-next-line\nexport var BIconDice1=/*#__PURE__*/makeIcon('Dice1','');// eslint-disable-next-line\nexport var BIconDice1Fill=/*#__PURE__*/makeIcon('Dice1Fill','');// eslint-disable-next-line\nexport var BIconDice2=/*#__PURE__*/makeIcon('Dice2','');// eslint-disable-next-line\nexport var BIconDice2Fill=/*#__PURE__*/makeIcon('Dice2Fill','');// eslint-disable-next-line\nexport var BIconDice3=/*#__PURE__*/makeIcon('Dice3','');// eslint-disable-next-line\nexport var BIconDice3Fill=/*#__PURE__*/makeIcon('Dice3Fill','');// eslint-disable-next-line\nexport var BIconDice4=/*#__PURE__*/makeIcon('Dice4','');// eslint-disable-next-line\nexport var BIconDice4Fill=/*#__PURE__*/makeIcon('Dice4Fill','');// eslint-disable-next-line\nexport var BIconDice5=/*#__PURE__*/makeIcon('Dice5','');// eslint-disable-next-line\nexport var BIconDice5Fill=/*#__PURE__*/makeIcon('Dice5Fill','');// eslint-disable-next-line\nexport var BIconDice6=/*#__PURE__*/makeIcon('Dice6','');// eslint-disable-next-line\nexport var BIconDice6Fill=/*#__PURE__*/makeIcon('Dice6Fill','');// eslint-disable-next-line\nexport var BIconDisc=/*#__PURE__*/makeIcon('Disc','');// eslint-disable-next-line\nexport var BIconDiscFill=/*#__PURE__*/makeIcon('DiscFill','');// eslint-disable-next-line\nexport var BIconDiscord=/*#__PURE__*/makeIcon('Discord','');// eslint-disable-next-line\nexport var BIconDisplay=/*#__PURE__*/makeIcon('Display','');// eslint-disable-next-line\nexport var BIconDisplayFill=/*#__PURE__*/makeIcon('DisplayFill','');// eslint-disable-next-line\nexport var BIconDistributeHorizontal=/*#__PURE__*/makeIcon('DistributeHorizontal','');// eslint-disable-next-line\nexport var BIconDistributeVertical=/*#__PURE__*/makeIcon('DistributeVertical','');// eslint-disable-next-line\nexport var BIconDoorClosed=/*#__PURE__*/makeIcon('DoorClosed','');// eslint-disable-next-line\nexport var BIconDoorClosedFill=/*#__PURE__*/makeIcon('DoorClosedFill','');// eslint-disable-next-line\nexport var BIconDoorOpen=/*#__PURE__*/makeIcon('DoorOpen','');// eslint-disable-next-line\nexport var BIconDoorOpenFill=/*#__PURE__*/makeIcon('DoorOpenFill','');// eslint-disable-next-line\nexport var BIconDot=/*#__PURE__*/makeIcon('Dot','');// eslint-disable-next-line\nexport var BIconDownload=/*#__PURE__*/makeIcon('Download','');// eslint-disable-next-line\nexport var BIconDroplet=/*#__PURE__*/makeIcon('Droplet','');// eslint-disable-next-line\nexport var BIconDropletFill=/*#__PURE__*/makeIcon('DropletFill','');// eslint-disable-next-line\nexport var BIconDropletHalf=/*#__PURE__*/makeIcon('DropletHalf','');// eslint-disable-next-line\nexport var BIconEarbuds=/*#__PURE__*/makeIcon('Earbuds','');// eslint-disable-next-line\nexport var BIconEasel=/*#__PURE__*/makeIcon('Easel','');// eslint-disable-next-line\nexport var BIconEaselFill=/*#__PURE__*/makeIcon('EaselFill','');// eslint-disable-next-line\nexport var BIconEgg=/*#__PURE__*/makeIcon('Egg','');// eslint-disable-next-line\nexport var BIconEggFill=/*#__PURE__*/makeIcon('EggFill','');// eslint-disable-next-line\nexport var BIconEggFried=/*#__PURE__*/makeIcon('EggFried','');// eslint-disable-next-line\nexport var BIconEject=/*#__PURE__*/makeIcon('Eject','');// eslint-disable-next-line\nexport var BIconEjectFill=/*#__PURE__*/makeIcon('EjectFill','');// eslint-disable-next-line\nexport var BIconEmojiAngry=/*#__PURE__*/makeIcon('EmojiAngry','');// eslint-disable-next-line\nexport var BIconEmojiAngryFill=/*#__PURE__*/makeIcon('EmojiAngryFill','');// eslint-disable-next-line\nexport var BIconEmojiDizzy=/*#__PURE__*/makeIcon('EmojiDizzy','');// eslint-disable-next-line\nexport var BIconEmojiDizzyFill=/*#__PURE__*/makeIcon('EmojiDizzyFill','');// eslint-disable-next-line\nexport var BIconEmojiExpressionless=/*#__PURE__*/makeIcon('EmojiExpressionless','');// eslint-disable-next-line\nexport var BIconEmojiExpressionlessFill=/*#__PURE__*/makeIcon('EmojiExpressionlessFill','');// eslint-disable-next-line\nexport var BIconEmojiFrown=/*#__PURE__*/makeIcon('EmojiFrown','');// eslint-disable-next-line\nexport var BIconEmojiFrownFill=/*#__PURE__*/makeIcon('EmojiFrownFill','');// eslint-disable-next-line\nexport var BIconEmojiHeartEyes=/*#__PURE__*/makeIcon('EmojiHeartEyes','');// eslint-disable-next-line\nexport var BIconEmojiHeartEyesFill=/*#__PURE__*/makeIcon('EmojiHeartEyesFill','');// eslint-disable-next-line\nexport var BIconEmojiLaughing=/*#__PURE__*/makeIcon('EmojiLaughing','');// eslint-disable-next-line\nexport var BIconEmojiLaughingFill=/*#__PURE__*/makeIcon('EmojiLaughingFill','');// eslint-disable-next-line\nexport var BIconEmojiNeutral=/*#__PURE__*/makeIcon('EmojiNeutral','');// eslint-disable-next-line\nexport var BIconEmojiNeutralFill=/*#__PURE__*/makeIcon('EmojiNeutralFill','');// eslint-disable-next-line\nexport var BIconEmojiSmile=/*#__PURE__*/makeIcon('EmojiSmile','');// eslint-disable-next-line\nexport var BIconEmojiSmileFill=/*#__PURE__*/makeIcon('EmojiSmileFill','');// eslint-disable-next-line\nexport var BIconEmojiSmileUpsideDown=/*#__PURE__*/makeIcon('EmojiSmileUpsideDown','');// eslint-disable-next-line\nexport var BIconEmojiSmileUpsideDownFill=/*#__PURE__*/makeIcon('EmojiSmileUpsideDownFill','');// eslint-disable-next-line\nexport var BIconEmojiSunglasses=/*#__PURE__*/makeIcon('EmojiSunglasses','');// eslint-disable-next-line\nexport var BIconEmojiSunglassesFill=/*#__PURE__*/makeIcon('EmojiSunglassesFill','');// eslint-disable-next-line\nexport var BIconEmojiWink=/*#__PURE__*/makeIcon('EmojiWink','');// eslint-disable-next-line\nexport var BIconEmojiWinkFill=/*#__PURE__*/makeIcon('EmojiWinkFill','');// eslint-disable-next-line\nexport var BIconEnvelope=/*#__PURE__*/makeIcon('Envelope','');// eslint-disable-next-line\nexport var BIconEnvelopeFill=/*#__PURE__*/makeIcon('EnvelopeFill','');// eslint-disable-next-line\nexport var BIconEnvelopeOpen=/*#__PURE__*/makeIcon('EnvelopeOpen','');// eslint-disable-next-line\nexport var BIconEnvelopeOpenFill=/*#__PURE__*/makeIcon('EnvelopeOpenFill','');// eslint-disable-next-line\nexport var BIconEraser=/*#__PURE__*/makeIcon('Eraser','');// eslint-disable-next-line\nexport var BIconEraserFill=/*#__PURE__*/makeIcon('EraserFill','');// eslint-disable-next-line\nexport var BIconExclamation=/*#__PURE__*/makeIcon('Exclamation','');// eslint-disable-next-line\nexport var BIconExclamationCircle=/*#__PURE__*/makeIcon('ExclamationCircle','');// eslint-disable-next-line\nexport var BIconExclamationCircleFill=/*#__PURE__*/makeIcon('ExclamationCircleFill','');// eslint-disable-next-line\nexport var BIconExclamationDiamond=/*#__PURE__*/makeIcon('ExclamationDiamond','');// eslint-disable-next-line\nexport var BIconExclamationDiamondFill=/*#__PURE__*/makeIcon('ExclamationDiamondFill','');// eslint-disable-next-line\nexport var BIconExclamationLg=/*#__PURE__*/makeIcon('ExclamationLg','');// eslint-disable-next-line\nexport var BIconExclamationOctagon=/*#__PURE__*/makeIcon('ExclamationOctagon','');// eslint-disable-next-line\nexport var BIconExclamationOctagonFill=/*#__PURE__*/makeIcon('ExclamationOctagonFill','');// eslint-disable-next-line\nexport var BIconExclamationSquare=/*#__PURE__*/makeIcon('ExclamationSquare','');// eslint-disable-next-line\nexport var BIconExclamationSquareFill=/*#__PURE__*/makeIcon('ExclamationSquareFill','');// eslint-disable-next-line\nexport var BIconExclamationTriangle=/*#__PURE__*/makeIcon('ExclamationTriangle','');// eslint-disable-next-line\nexport var BIconExclamationTriangleFill=/*#__PURE__*/makeIcon('ExclamationTriangleFill','');// eslint-disable-next-line\nexport var BIconExclude=/*#__PURE__*/makeIcon('Exclude','');// eslint-disable-next-line\nexport var BIconEye=/*#__PURE__*/makeIcon('Eye','');// eslint-disable-next-line\nexport var BIconEyeFill=/*#__PURE__*/makeIcon('EyeFill','');// eslint-disable-next-line\nexport var BIconEyeSlash=/*#__PURE__*/makeIcon('EyeSlash','');// eslint-disable-next-line\nexport var BIconEyeSlashFill=/*#__PURE__*/makeIcon('EyeSlashFill','');// eslint-disable-next-line\nexport var BIconEyedropper=/*#__PURE__*/makeIcon('Eyedropper','');// eslint-disable-next-line\nexport var BIconEyeglasses=/*#__PURE__*/makeIcon('Eyeglasses','');// eslint-disable-next-line\nexport var BIconFacebook=/*#__PURE__*/makeIcon('Facebook','');// eslint-disable-next-line\nexport var BIconFile=/*#__PURE__*/makeIcon('File','');// eslint-disable-next-line\nexport var BIconFileArrowDown=/*#__PURE__*/makeIcon('FileArrowDown','');// eslint-disable-next-line\nexport var BIconFileArrowDownFill=/*#__PURE__*/makeIcon('FileArrowDownFill','');// eslint-disable-next-line\nexport var BIconFileArrowUp=/*#__PURE__*/makeIcon('FileArrowUp','');// eslint-disable-next-line\nexport var BIconFileArrowUpFill=/*#__PURE__*/makeIcon('FileArrowUpFill','');// eslint-disable-next-line\nexport var BIconFileBarGraph=/*#__PURE__*/makeIcon('FileBarGraph','');// eslint-disable-next-line\nexport var BIconFileBarGraphFill=/*#__PURE__*/makeIcon('FileBarGraphFill','');// eslint-disable-next-line\nexport var BIconFileBinary=/*#__PURE__*/makeIcon('FileBinary','');// eslint-disable-next-line\nexport var BIconFileBinaryFill=/*#__PURE__*/makeIcon('FileBinaryFill','');// eslint-disable-next-line\nexport var BIconFileBreak=/*#__PURE__*/makeIcon('FileBreak','');// eslint-disable-next-line\nexport var BIconFileBreakFill=/*#__PURE__*/makeIcon('FileBreakFill','');// eslint-disable-next-line\nexport var BIconFileCheck=/*#__PURE__*/makeIcon('FileCheck','');// eslint-disable-next-line\nexport var BIconFileCheckFill=/*#__PURE__*/makeIcon('FileCheckFill','');// eslint-disable-next-line\nexport var BIconFileCode=/*#__PURE__*/makeIcon('FileCode','');// eslint-disable-next-line\nexport var BIconFileCodeFill=/*#__PURE__*/makeIcon('FileCodeFill','');// eslint-disable-next-line\nexport var BIconFileDiff=/*#__PURE__*/makeIcon('FileDiff','');// eslint-disable-next-line\nexport var BIconFileDiffFill=/*#__PURE__*/makeIcon('FileDiffFill','');// eslint-disable-next-line\nexport var BIconFileEarmark=/*#__PURE__*/makeIcon('FileEarmark','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowDown=/*#__PURE__*/makeIcon('FileEarmarkArrowDown','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowDownFill=/*#__PURE__*/makeIcon('FileEarmarkArrowDownFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowUp=/*#__PURE__*/makeIcon('FileEarmarkArrowUp','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowUpFill=/*#__PURE__*/makeIcon('FileEarmarkArrowUpFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBarGraph=/*#__PURE__*/makeIcon('FileEarmarkBarGraph','');// eslint-disable-next-line\nexport var BIconFileEarmarkBarGraphFill=/*#__PURE__*/makeIcon('FileEarmarkBarGraphFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBinary=/*#__PURE__*/makeIcon('FileEarmarkBinary','');// eslint-disable-next-line\nexport var BIconFileEarmarkBinaryFill=/*#__PURE__*/makeIcon('FileEarmarkBinaryFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBreak=/*#__PURE__*/makeIcon('FileEarmarkBreak','');// eslint-disable-next-line\nexport var BIconFileEarmarkBreakFill=/*#__PURE__*/makeIcon('FileEarmarkBreakFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkCheck=/*#__PURE__*/makeIcon('FileEarmarkCheck','');// eslint-disable-next-line\nexport var BIconFileEarmarkCheckFill=/*#__PURE__*/makeIcon('FileEarmarkCheckFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkCode=/*#__PURE__*/makeIcon('FileEarmarkCode','');// eslint-disable-next-line\nexport var BIconFileEarmarkCodeFill=/*#__PURE__*/makeIcon('FileEarmarkCodeFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkDiff=/*#__PURE__*/makeIcon('FileEarmarkDiff','');// eslint-disable-next-line\nexport var BIconFileEarmarkDiffFill=/*#__PURE__*/makeIcon('FileEarmarkDiffFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkEasel=/*#__PURE__*/makeIcon('FileEarmarkEasel','');// eslint-disable-next-line\nexport var BIconFileEarmarkEaselFill=/*#__PURE__*/makeIcon('FileEarmarkEaselFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkExcel=/*#__PURE__*/makeIcon('FileEarmarkExcel','');// eslint-disable-next-line\nexport var BIconFileEarmarkExcelFill=/*#__PURE__*/makeIcon('FileEarmarkExcelFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkFill=/*#__PURE__*/makeIcon('FileEarmarkFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkFont=/*#__PURE__*/makeIcon('FileEarmarkFont','');// eslint-disable-next-line\nexport var BIconFileEarmarkFontFill=/*#__PURE__*/makeIcon('FileEarmarkFontFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkImage=/*#__PURE__*/makeIcon('FileEarmarkImage','');// eslint-disable-next-line\nexport var BIconFileEarmarkImageFill=/*#__PURE__*/makeIcon('FileEarmarkImageFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock=/*#__PURE__*/makeIcon('FileEarmarkLock','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock2=/*#__PURE__*/makeIcon('FileEarmarkLock2','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock2Fill=/*#__PURE__*/makeIcon('FileEarmarkLock2Fill','');// eslint-disable-next-line\nexport var BIconFileEarmarkLockFill=/*#__PURE__*/makeIcon('FileEarmarkLockFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMedical=/*#__PURE__*/makeIcon('FileEarmarkMedical','');// eslint-disable-next-line\nexport var BIconFileEarmarkMedicalFill=/*#__PURE__*/makeIcon('FileEarmarkMedicalFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMinus=/*#__PURE__*/makeIcon('FileEarmarkMinus','');// eslint-disable-next-line\nexport var BIconFileEarmarkMinusFill=/*#__PURE__*/makeIcon('FileEarmarkMinusFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMusic=/*#__PURE__*/makeIcon('FileEarmarkMusic','');// eslint-disable-next-line\nexport var BIconFileEarmarkMusicFill=/*#__PURE__*/makeIcon('FileEarmarkMusicFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPdf=/*#__PURE__*/makeIcon('FileEarmarkPdf','');// eslint-disable-next-line\nexport var BIconFileEarmarkPdfFill=/*#__PURE__*/makeIcon('FileEarmarkPdfFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPerson=/*#__PURE__*/makeIcon('FileEarmarkPerson','');// eslint-disable-next-line\nexport var BIconFileEarmarkPersonFill=/*#__PURE__*/makeIcon('FileEarmarkPersonFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlay=/*#__PURE__*/makeIcon('FileEarmarkPlay','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlayFill=/*#__PURE__*/makeIcon('FileEarmarkPlayFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlus=/*#__PURE__*/makeIcon('FileEarmarkPlus','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlusFill=/*#__PURE__*/makeIcon('FileEarmarkPlusFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPost=/*#__PURE__*/makeIcon('FileEarmarkPost','');// eslint-disable-next-line\nexport var BIconFileEarmarkPostFill=/*#__PURE__*/makeIcon('FileEarmarkPostFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPpt=/*#__PURE__*/makeIcon('FileEarmarkPpt','');// eslint-disable-next-line\nexport var BIconFileEarmarkPptFill=/*#__PURE__*/makeIcon('FileEarmarkPptFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkRichtext=/*#__PURE__*/makeIcon('FileEarmarkRichtext','');// eslint-disable-next-line\nexport var BIconFileEarmarkRichtextFill=/*#__PURE__*/makeIcon('FileEarmarkRichtextFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkRuled=/*#__PURE__*/makeIcon('FileEarmarkRuled','');// eslint-disable-next-line\nexport var BIconFileEarmarkRuledFill=/*#__PURE__*/makeIcon('FileEarmarkRuledFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkSlides=/*#__PURE__*/makeIcon('FileEarmarkSlides','');// eslint-disable-next-line\nexport var BIconFileEarmarkSlidesFill=/*#__PURE__*/makeIcon('FileEarmarkSlidesFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkSpreadsheet=/*#__PURE__*/makeIcon('FileEarmarkSpreadsheet','');// eslint-disable-next-line\nexport var BIconFileEarmarkSpreadsheetFill=/*#__PURE__*/makeIcon('FileEarmarkSpreadsheetFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkText=/*#__PURE__*/makeIcon('FileEarmarkText','');// eslint-disable-next-line\nexport var BIconFileEarmarkTextFill=/*#__PURE__*/makeIcon('FileEarmarkTextFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkWord=/*#__PURE__*/makeIcon('FileEarmarkWord','');// eslint-disable-next-line\nexport var BIconFileEarmarkWordFill=/*#__PURE__*/makeIcon('FileEarmarkWordFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkX=/*#__PURE__*/makeIcon('FileEarmarkX','');// eslint-disable-next-line\nexport var BIconFileEarmarkXFill=/*#__PURE__*/makeIcon('FileEarmarkXFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkZip=/*#__PURE__*/makeIcon('FileEarmarkZip','');// eslint-disable-next-line\nexport var BIconFileEarmarkZipFill=/*#__PURE__*/makeIcon('FileEarmarkZipFill','');// eslint-disable-next-line\nexport var BIconFileEasel=/*#__PURE__*/makeIcon('FileEasel','');// eslint-disable-next-line\nexport var BIconFileEaselFill=/*#__PURE__*/makeIcon('FileEaselFill','');// eslint-disable-next-line\nexport var BIconFileExcel=/*#__PURE__*/makeIcon('FileExcel','');// eslint-disable-next-line\nexport var BIconFileExcelFill=/*#__PURE__*/makeIcon('FileExcelFill','');// eslint-disable-next-line\nexport var BIconFileFill=/*#__PURE__*/makeIcon('FileFill','');// eslint-disable-next-line\nexport var BIconFileFont=/*#__PURE__*/makeIcon('FileFont','');// eslint-disable-next-line\nexport var BIconFileFontFill=/*#__PURE__*/makeIcon('FileFontFill','');// eslint-disable-next-line\nexport var BIconFileImage=/*#__PURE__*/makeIcon('FileImage','');// eslint-disable-next-line\nexport var BIconFileImageFill=/*#__PURE__*/makeIcon('FileImageFill','');// eslint-disable-next-line\nexport var BIconFileLock=/*#__PURE__*/makeIcon('FileLock','');// eslint-disable-next-line\nexport var BIconFileLock2=/*#__PURE__*/makeIcon('FileLock2','');// eslint-disable-next-line\nexport var BIconFileLock2Fill=/*#__PURE__*/makeIcon('FileLock2Fill','');// eslint-disable-next-line\nexport var BIconFileLockFill=/*#__PURE__*/makeIcon('FileLockFill','');// eslint-disable-next-line\nexport var BIconFileMedical=/*#__PURE__*/makeIcon('FileMedical','');// eslint-disable-next-line\nexport var BIconFileMedicalFill=/*#__PURE__*/makeIcon('FileMedicalFill','');// eslint-disable-next-line\nexport var BIconFileMinus=/*#__PURE__*/makeIcon('FileMinus','');// eslint-disable-next-line\nexport var BIconFileMinusFill=/*#__PURE__*/makeIcon('FileMinusFill','');// eslint-disable-next-line\nexport var BIconFileMusic=/*#__PURE__*/makeIcon('FileMusic','');// eslint-disable-next-line\nexport var BIconFileMusicFill=/*#__PURE__*/makeIcon('FileMusicFill','');// eslint-disable-next-line\nexport var BIconFilePdf=/*#__PURE__*/makeIcon('FilePdf','');// eslint-disable-next-line\nexport var BIconFilePdfFill=/*#__PURE__*/makeIcon('FilePdfFill','');// eslint-disable-next-line\nexport var BIconFilePerson=/*#__PURE__*/makeIcon('FilePerson','');// eslint-disable-next-line\nexport var BIconFilePersonFill=/*#__PURE__*/makeIcon('FilePersonFill','');// eslint-disable-next-line\nexport var BIconFilePlay=/*#__PURE__*/makeIcon('FilePlay','');// eslint-disable-next-line\nexport var BIconFilePlayFill=/*#__PURE__*/makeIcon('FilePlayFill','');// eslint-disable-next-line\nexport var BIconFilePlus=/*#__PURE__*/makeIcon('FilePlus','');// eslint-disable-next-line\nexport var BIconFilePlusFill=/*#__PURE__*/makeIcon('FilePlusFill','');// eslint-disable-next-line\nexport var BIconFilePost=/*#__PURE__*/makeIcon('FilePost','');// eslint-disable-next-line\nexport var BIconFilePostFill=/*#__PURE__*/makeIcon('FilePostFill','');// eslint-disable-next-line\nexport var BIconFilePpt=/*#__PURE__*/makeIcon('FilePpt','');// eslint-disable-next-line\nexport var BIconFilePptFill=/*#__PURE__*/makeIcon('FilePptFill','');// eslint-disable-next-line\nexport var BIconFileRichtext=/*#__PURE__*/makeIcon('FileRichtext','');// eslint-disable-next-line\nexport var BIconFileRichtextFill=/*#__PURE__*/makeIcon('FileRichtextFill','');// eslint-disable-next-line\nexport var BIconFileRuled=/*#__PURE__*/makeIcon('FileRuled','');// eslint-disable-next-line\nexport var BIconFileRuledFill=/*#__PURE__*/makeIcon('FileRuledFill','');// eslint-disable-next-line\nexport var BIconFileSlides=/*#__PURE__*/makeIcon('FileSlides','');// eslint-disable-next-line\nexport var BIconFileSlidesFill=/*#__PURE__*/makeIcon('FileSlidesFill','');// eslint-disable-next-line\nexport var BIconFileSpreadsheet=/*#__PURE__*/makeIcon('FileSpreadsheet','');// eslint-disable-next-line\nexport var BIconFileSpreadsheetFill=/*#__PURE__*/makeIcon('FileSpreadsheetFill','');// eslint-disable-next-line\nexport var BIconFileText=/*#__PURE__*/makeIcon('FileText','');// eslint-disable-next-line\nexport var BIconFileTextFill=/*#__PURE__*/makeIcon('FileTextFill','');// eslint-disable-next-line\nexport var BIconFileWord=/*#__PURE__*/makeIcon('FileWord','');// eslint-disable-next-line\nexport var BIconFileWordFill=/*#__PURE__*/makeIcon('FileWordFill','');// eslint-disable-next-line\nexport var BIconFileX=/*#__PURE__*/makeIcon('FileX','');// eslint-disable-next-line\nexport var BIconFileXFill=/*#__PURE__*/makeIcon('FileXFill','');// eslint-disable-next-line\nexport var BIconFileZip=/*#__PURE__*/makeIcon('FileZip','');// eslint-disable-next-line\nexport var BIconFileZipFill=/*#__PURE__*/makeIcon('FileZipFill','');// eslint-disable-next-line\nexport var BIconFiles=/*#__PURE__*/makeIcon('Files','');// eslint-disable-next-line\nexport var BIconFilesAlt=/*#__PURE__*/makeIcon('FilesAlt','');// eslint-disable-next-line\nexport var BIconFilm=/*#__PURE__*/makeIcon('Film','');// eslint-disable-next-line\nexport var BIconFilter=/*#__PURE__*/makeIcon('Filter','');// eslint-disable-next-line\nexport var BIconFilterCircle=/*#__PURE__*/makeIcon('FilterCircle','');// eslint-disable-next-line\nexport var BIconFilterCircleFill=/*#__PURE__*/makeIcon('FilterCircleFill','');// eslint-disable-next-line\nexport var BIconFilterLeft=/*#__PURE__*/makeIcon('FilterLeft','');// eslint-disable-next-line\nexport var BIconFilterRight=/*#__PURE__*/makeIcon('FilterRight','');// eslint-disable-next-line\nexport var BIconFilterSquare=/*#__PURE__*/makeIcon('FilterSquare','');// eslint-disable-next-line\nexport var BIconFilterSquareFill=/*#__PURE__*/makeIcon('FilterSquareFill','');// eslint-disable-next-line\nexport var BIconFlag=/*#__PURE__*/makeIcon('Flag','');// eslint-disable-next-line\nexport var BIconFlagFill=/*#__PURE__*/makeIcon('FlagFill','');// eslint-disable-next-line\nexport var BIconFlower1=/*#__PURE__*/makeIcon('Flower1','');// eslint-disable-next-line\nexport var BIconFlower2=/*#__PURE__*/makeIcon('Flower2','');// eslint-disable-next-line\nexport var BIconFlower3=/*#__PURE__*/makeIcon('Flower3','');// eslint-disable-next-line\nexport var BIconFolder=/*#__PURE__*/makeIcon('Folder','');// eslint-disable-next-line\nexport var BIconFolder2=/*#__PURE__*/makeIcon('Folder2','');// eslint-disable-next-line\nexport var BIconFolder2Open=/*#__PURE__*/makeIcon('Folder2Open','');// eslint-disable-next-line\nexport var BIconFolderCheck=/*#__PURE__*/makeIcon('FolderCheck','');// eslint-disable-next-line\nexport var BIconFolderFill=/*#__PURE__*/makeIcon('FolderFill','');// eslint-disable-next-line\nexport var BIconFolderMinus=/*#__PURE__*/makeIcon('FolderMinus','');// eslint-disable-next-line\nexport var BIconFolderPlus=/*#__PURE__*/makeIcon('FolderPlus','');// eslint-disable-next-line\nexport var BIconFolderSymlink=/*#__PURE__*/makeIcon('FolderSymlink','');// eslint-disable-next-line\nexport var BIconFolderSymlinkFill=/*#__PURE__*/makeIcon('FolderSymlinkFill','');// eslint-disable-next-line\nexport var BIconFolderX=/*#__PURE__*/makeIcon('FolderX','');// eslint-disable-next-line\nexport var BIconFonts=/*#__PURE__*/makeIcon('Fonts','');// eslint-disable-next-line\nexport var BIconForward=/*#__PURE__*/makeIcon('Forward','');// eslint-disable-next-line\nexport var BIconForwardFill=/*#__PURE__*/makeIcon('ForwardFill','');// eslint-disable-next-line\nexport var BIconFront=/*#__PURE__*/makeIcon('Front','');// eslint-disable-next-line\nexport var BIconFullscreen=/*#__PURE__*/makeIcon('Fullscreen','');// eslint-disable-next-line\nexport var BIconFullscreenExit=/*#__PURE__*/makeIcon('FullscreenExit','');// eslint-disable-next-line\nexport var BIconFunnel=/*#__PURE__*/makeIcon('Funnel','');// eslint-disable-next-line\nexport var BIconFunnelFill=/*#__PURE__*/makeIcon('FunnelFill','');// eslint-disable-next-line\nexport var BIconGear=/*#__PURE__*/makeIcon('Gear','');// eslint-disable-next-line\nexport var BIconGearFill=/*#__PURE__*/makeIcon('GearFill','');// eslint-disable-next-line\nexport var BIconGearWide=/*#__PURE__*/makeIcon('GearWide','');// eslint-disable-next-line\nexport var BIconGearWideConnected=/*#__PURE__*/makeIcon('GearWideConnected','');// eslint-disable-next-line\nexport var BIconGem=/*#__PURE__*/makeIcon('Gem','');// eslint-disable-next-line\nexport var BIconGenderAmbiguous=/*#__PURE__*/makeIcon('GenderAmbiguous','');// eslint-disable-next-line\nexport var BIconGenderFemale=/*#__PURE__*/makeIcon('GenderFemale','');// eslint-disable-next-line\nexport var BIconGenderMale=/*#__PURE__*/makeIcon('GenderMale','');// eslint-disable-next-line\nexport var BIconGenderTrans=/*#__PURE__*/makeIcon('GenderTrans','');// eslint-disable-next-line\nexport var BIconGeo=/*#__PURE__*/makeIcon('Geo','');// eslint-disable-next-line\nexport var BIconGeoAlt=/*#__PURE__*/makeIcon('GeoAlt','');// eslint-disable-next-line\nexport var BIconGeoAltFill=/*#__PURE__*/makeIcon('GeoAltFill','');// eslint-disable-next-line\nexport var BIconGeoFill=/*#__PURE__*/makeIcon('GeoFill','');// eslint-disable-next-line\nexport var BIconGift=/*#__PURE__*/makeIcon('Gift','');// eslint-disable-next-line\nexport var BIconGiftFill=/*#__PURE__*/makeIcon('GiftFill','');// eslint-disable-next-line\nexport var BIconGithub=/*#__PURE__*/makeIcon('Github','');// eslint-disable-next-line\nexport var BIconGlobe=/*#__PURE__*/makeIcon('Globe','');// eslint-disable-next-line\nexport var BIconGlobe2=/*#__PURE__*/makeIcon('Globe2','');// eslint-disable-next-line\nexport var BIconGoogle=/*#__PURE__*/makeIcon('Google','');// eslint-disable-next-line\nexport var BIconGraphDown=/*#__PURE__*/makeIcon('GraphDown','');// eslint-disable-next-line\nexport var BIconGraphUp=/*#__PURE__*/makeIcon('GraphUp','');// eslint-disable-next-line\nexport var BIconGrid=/*#__PURE__*/makeIcon('Grid','');// eslint-disable-next-line\nexport var BIconGrid1x2=/*#__PURE__*/makeIcon('Grid1x2','');// eslint-disable-next-line\nexport var BIconGrid1x2Fill=/*#__PURE__*/makeIcon('Grid1x2Fill','');// eslint-disable-next-line\nexport var BIconGrid3x2=/*#__PURE__*/makeIcon('Grid3x2','');// eslint-disable-next-line\nexport var BIconGrid3x2Gap=/*#__PURE__*/makeIcon('Grid3x2Gap','');// eslint-disable-next-line\nexport var BIconGrid3x2GapFill=/*#__PURE__*/makeIcon('Grid3x2GapFill','');// eslint-disable-next-line\nexport var BIconGrid3x3=/*#__PURE__*/makeIcon('Grid3x3','');// eslint-disable-next-line\nexport var BIconGrid3x3Gap=/*#__PURE__*/makeIcon('Grid3x3Gap','');// eslint-disable-next-line\nexport var BIconGrid3x3GapFill=/*#__PURE__*/makeIcon('Grid3x3GapFill','');// eslint-disable-next-line\nexport var BIconGridFill=/*#__PURE__*/makeIcon('GridFill','');// eslint-disable-next-line\nexport var BIconGripHorizontal=/*#__PURE__*/makeIcon('GripHorizontal','');// eslint-disable-next-line\nexport var BIconGripVertical=/*#__PURE__*/makeIcon('GripVertical','');// eslint-disable-next-line\nexport var BIconHammer=/*#__PURE__*/makeIcon('Hammer','');// eslint-disable-next-line\nexport var BIconHandIndex=/*#__PURE__*/makeIcon('HandIndex','');// eslint-disable-next-line\nexport var BIconHandIndexFill=/*#__PURE__*/makeIcon('HandIndexFill','');// eslint-disable-next-line\nexport var BIconHandIndexThumb=/*#__PURE__*/makeIcon('HandIndexThumb','');// eslint-disable-next-line\nexport var BIconHandIndexThumbFill=/*#__PURE__*/makeIcon('HandIndexThumbFill','');// eslint-disable-next-line\nexport var BIconHandThumbsDown=/*#__PURE__*/makeIcon('HandThumbsDown','');// eslint-disable-next-line\nexport var BIconHandThumbsDownFill=/*#__PURE__*/makeIcon('HandThumbsDownFill','');// eslint-disable-next-line\nexport var BIconHandThumbsUp=/*#__PURE__*/makeIcon('HandThumbsUp','');// eslint-disable-next-line\nexport var BIconHandThumbsUpFill=/*#__PURE__*/makeIcon('HandThumbsUpFill','');// eslint-disable-next-line\nexport var BIconHandbag=/*#__PURE__*/makeIcon('Handbag','');// eslint-disable-next-line\nexport var BIconHandbagFill=/*#__PURE__*/makeIcon('HandbagFill','');// eslint-disable-next-line\nexport var BIconHash=/*#__PURE__*/makeIcon('Hash','');// eslint-disable-next-line\nexport var BIconHdd=/*#__PURE__*/makeIcon('Hdd','');// eslint-disable-next-line\nexport var BIconHddFill=/*#__PURE__*/makeIcon('HddFill','');// eslint-disable-next-line\nexport var BIconHddNetwork=/*#__PURE__*/makeIcon('HddNetwork','');// eslint-disable-next-line\nexport var BIconHddNetworkFill=/*#__PURE__*/makeIcon('HddNetworkFill','');// eslint-disable-next-line\nexport var BIconHddRack=/*#__PURE__*/makeIcon('HddRack','');// eslint-disable-next-line\nexport var BIconHddRackFill=/*#__PURE__*/makeIcon('HddRackFill','');// eslint-disable-next-line\nexport var BIconHddStack=/*#__PURE__*/makeIcon('HddStack','');// eslint-disable-next-line\nexport var BIconHddStackFill=/*#__PURE__*/makeIcon('HddStackFill','');// eslint-disable-next-line\nexport var BIconHeadphones=/*#__PURE__*/makeIcon('Headphones','');// eslint-disable-next-line\nexport var BIconHeadset=/*#__PURE__*/makeIcon('Headset','');// eslint-disable-next-line\nexport var BIconHeadsetVr=/*#__PURE__*/makeIcon('HeadsetVr','');// eslint-disable-next-line\nexport var BIconHeart=/*#__PURE__*/makeIcon('Heart','');// eslint-disable-next-line\nexport var BIconHeartFill=/*#__PURE__*/makeIcon('HeartFill','');// eslint-disable-next-line\nexport var BIconHeartHalf=/*#__PURE__*/makeIcon('HeartHalf','');// eslint-disable-next-line\nexport var BIconHeptagon=/*#__PURE__*/makeIcon('Heptagon','');// eslint-disable-next-line\nexport var BIconHeptagonFill=/*#__PURE__*/makeIcon('HeptagonFill','');// eslint-disable-next-line\nexport var BIconHeptagonHalf=/*#__PURE__*/makeIcon('HeptagonHalf','');// eslint-disable-next-line\nexport var BIconHexagon=/*#__PURE__*/makeIcon('Hexagon','');// eslint-disable-next-line\nexport var BIconHexagonFill=/*#__PURE__*/makeIcon('HexagonFill','');// eslint-disable-next-line\nexport var BIconHexagonHalf=/*#__PURE__*/makeIcon('HexagonHalf','');// eslint-disable-next-line\nexport var BIconHourglass=/*#__PURE__*/makeIcon('Hourglass','');// eslint-disable-next-line\nexport var BIconHourglassBottom=/*#__PURE__*/makeIcon('HourglassBottom','');// eslint-disable-next-line\nexport var BIconHourglassSplit=/*#__PURE__*/makeIcon('HourglassSplit','');// eslint-disable-next-line\nexport var BIconHourglassTop=/*#__PURE__*/makeIcon('HourglassTop','');// eslint-disable-next-line\nexport var BIconHouse=/*#__PURE__*/makeIcon('House','');// eslint-disable-next-line\nexport var BIconHouseDoor=/*#__PURE__*/makeIcon('HouseDoor','');// eslint-disable-next-line\nexport var BIconHouseDoorFill=/*#__PURE__*/makeIcon('HouseDoorFill','');// eslint-disable-next-line\nexport var BIconHouseFill=/*#__PURE__*/makeIcon('HouseFill','');// eslint-disable-next-line\nexport var BIconHr=/*#__PURE__*/makeIcon('Hr','');// eslint-disable-next-line\nexport var BIconHurricane=/*#__PURE__*/makeIcon('Hurricane','');// eslint-disable-next-line\nexport var BIconImage=/*#__PURE__*/makeIcon('Image','');// eslint-disable-next-line\nexport var BIconImageAlt=/*#__PURE__*/makeIcon('ImageAlt','');// eslint-disable-next-line\nexport var BIconImageFill=/*#__PURE__*/makeIcon('ImageFill','');// eslint-disable-next-line\nexport var BIconImages=/*#__PURE__*/makeIcon('Images','');// eslint-disable-next-line\nexport var BIconInbox=/*#__PURE__*/makeIcon('Inbox','');// eslint-disable-next-line\nexport var BIconInboxFill=/*#__PURE__*/makeIcon('InboxFill','');// eslint-disable-next-line\nexport var BIconInboxes=/*#__PURE__*/makeIcon('Inboxes','');// eslint-disable-next-line\nexport var BIconInboxesFill=/*#__PURE__*/makeIcon('InboxesFill','');// eslint-disable-next-line\nexport var BIconInfo=/*#__PURE__*/makeIcon('Info','');// eslint-disable-next-line\nexport var BIconInfoCircle=/*#__PURE__*/makeIcon('InfoCircle','');// eslint-disable-next-line\nexport var BIconInfoCircleFill=/*#__PURE__*/makeIcon('InfoCircleFill','');// eslint-disable-next-line\nexport var BIconInfoLg=/*#__PURE__*/makeIcon('InfoLg','');// eslint-disable-next-line\nexport var BIconInfoSquare=/*#__PURE__*/makeIcon('InfoSquare','');// eslint-disable-next-line\nexport var BIconInfoSquareFill=/*#__PURE__*/makeIcon('InfoSquareFill','');// eslint-disable-next-line\nexport var BIconInputCursor=/*#__PURE__*/makeIcon('InputCursor','');// eslint-disable-next-line\nexport var BIconInputCursorText=/*#__PURE__*/makeIcon('InputCursorText','');// eslint-disable-next-line\nexport var BIconInstagram=/*#__PURE__*/makeIcon('Instagram','');// eslint-disable-next-line\nexport var BIconIntersect=/*#__PURE__*/makeIcon('Intersect','');// eslint-disable-next-line\nexport var BIconJournal=/*#__PURE__*/makeIcon('Journal','');// eslint-disable-next-line\nexport var BIconJournalAlbum=/*#__PURE__*/makeIcon('JournalAlbum','');// eslint-disable-next-line\nexport var BIconJournalArrowDown=/*#__PURE__*/makeIcon('JournalArrowDown','');// eslint-disable-next-line\nexport var BIconJournalArrowUp=/*#__PURE__*/makeIcon('JournalArrowUp','');// eslint-disable-next-line\nexport var BIconJournalBookmark=/*#__PURE__*/makeIcon('JournalBookmark','');// eslint-disable-next-line\nexport var BIconJournalBookmarkFill=/*#__PURE__*/makeIcon('JournalBookmarkFill','');// eslint-disable-next-line\nexport var BIconJournalCheck=/*#__PURE__*/makeIcon('JournalCheck','');// eslint-disable-next-line\nexport var BIconJournalCode=/*#__PURE__*/makeIcon('JournalCode','');// eslint-disable-next-line\nexport var BIconJournalMedical=/*#__PURE__*/makeIcon('JournalMedical','');// eslint-disable-next-line\nexport var BIconJournalMinus=/*#__PURE__*/makeIcon('JournalMinus','');// eslint-disable-next-line\nexport var BIconJournalPlus=/*#__PURE__*/makeIcon('JournalPlus','');// eslint-disable-next-line\nexport var BIconJournalRichtext=/*#__PURE__*/makeIcon('JournalRichtext','');// eslint-disable-next-line\nexport var BIconJournalText=/*#__PURE__*/makeIcon('JournalText','');// eslint-disable-next-line\nexport var BIconJournalX=/*#__PURE__*/makeIcon('JournalX','');// eslint-disable-next-line\nexport var BIconJournals=/*#__PURE__*/makeIcon('Journals','');// eslint-disable-next-line\nexport var BIconJoystick=/*#__PURE__*/makeIcon('Joystick','');// eslint-disable-next-line\nexport var BIconJustify=/*#__PURE__*/makeIcon('Justify','');// eslint-disable-next-line\nexport var BIconJustifyLeft=/*#__PURE__*/makeIcon('JustifyLeft','');// eslint-disable-next-line\nexport var BIconJustifyRight=/*#__PURE__*/makeIcon('JustifyRight','');// eslint-disable-next-line\nexport var BIconKanban=/*#__PURE__*/makeIcon('Kanban','');// eslint-disable-next-line\nexport var BIconKanbanFill=/*#__PURE__*/makeIcon('KanbanFill','');// eslint-disable-next-line\nexport var BIconKey=/*#__PURE__*/makeIcon('Key','');// eslint-disable-next-line\nexport var BIconKeyFill=/*#__PURE__*/makeIcon('KeyFill','');// eslint-disable-next-line\nexport var BIconKeyboard=/*#__PURE__*/makeIcon('Keyboard','');// eslint-disable-next-line\nexport var BIconKeyboardFill=/*#__PURE__*/makeIcon('KeyboardFill','');// eslint-disable-next-line\nexport var BIconLadder=/*#__PURE__*/makeIcon('Ladder','');// eslint-disable-next-line\nexport var BIconLamp=/*#__PURE__*/makeIcon('Lamp','');// eslint-disable-next-line\nexport var BIconLampFill=/*#__PURE__*/makeIcon('LampFill','');// eslint-disable-next-line\nexport var BIconLaptop=/*#__PURE__*/makeIcon('Laptop','');// eslint-disable-next-line\nexport var BIconLaptopFill=/*#__PURE__*/makeIcon('LaptopFill','');// eslint-disable-next-line\nexport var BIconLayerBackward=/*#__PURE__*/makeIcon('LayerBackward','');// eslint-disable-next-line\nexport var BIconLayerForward=/*#__PURE__*/makeIcon('LayerForward','');// eslint-disable-next-line\nexport var BIconLayers=/*#__PURE__*/makeIcon('Layers','');// eslint-disable-next-line\nexport var BIconLayersFill=/*#__PURE__*/makeIcon('LayersFill','');// eslint-disable-next-line\nexport var BIconLayersHalf=/*#__PURE__*/makeIcon('LayersHalf','');// eslint-disable-next-line\nexport var BIconLayoutSidebar=/*#__PURE__*/makeIcon('LayoutSidebar','');// eslint-disable-next-line\nexport var BIconLayoutSidebarInset=/*#__PURE__*/makeIcon('LayoutSidebarInset','');// eslint-disable-next-line\nexport var BIconLayoutSidebarInsetReverse=/*#__PURE__*/makeIcon('LayoutSidebarInsetReverse','');// eslint-disable-next-line\nexport var BIconLayoutSidebarReverse=/*#__PURE__*/makeIcon('LayoutSidebarReverse','');// eslint-disable-next-line\nexport var BIconLayoutSplit=/*#__PURE__*/makeIcon('LayoutSplit','');// eslint-disable-next-line\nexport var BIconLayoutTextSidebar=/*#__PURE__*/makeIcon('LayoutTextSidebar','');// eslint-disable-next-line\nexport var BIconLayoutTextSidebarReverse=/*#__PURE__*/makeIcon('LayoutTextSidebarReverse','');// eslint-disable-next-line\nexport var BIconLayoutTextWindow=/*#__PURE__*/makeIcon('LayoutTextWindow','');// eslint-disable-next-line\nexport var BIconLayoutTextWindowReverse=/*#__PURE__*/makeIcon('LayoutTextWindowReverse','');// eslint-disable-next-line\nexport var BIconLayoutThreeColumns=/*#__PURE__*/makeIcon('LayoutThreeColumns','');// eslint-disable-next-line\nexport var BIconLayoutWtf=/*#__PURE__*/makeIcon('LayoutWtf','');// eslint-disable-next-line\nexport var BIconLifePreserver=/*#__PURE__*/makeIcon('LifePreserver','');// eslint-disable-next-line\nexport var BIconLightbulb=/*#__PURE__*/makeIcon('Lightbulb','');// eslint-disable-next-line\nexport var BIconLightbulbFill=/*#__PURE__*/makeIcon('LightbulbFill','');// eslint-disable-next-line\nexport var BIconLightbulbOff=/*#__PURE__*/makeIcon('LightbulbOff','');// eslint-disable-next-line\nexport var BIconLightbulbOffFill=/*#__PURE__*/makeIcon('LightbulbOffFill','');// eslint-disable-next-line\nexport var BIconLightning=/*#__PURE__*/makeIcon('Lightning','');// eslint-disable-next-line\nexport var BIconLightningCharge=/*#__PURE__*/makeIcon('LightningCharge','');// eslint-disable-next-line\nexport var BIconLightningChargeFill=/*#__PURE__*/makeIcon('LightningChargeFill','');// eslint-disable-next-line\nexport var BIconLightningFill=/*#__PURE__*/makeIcon('LightningFill','');// eslint-disable-next-line\nexport var BIconLink=/*#__PURE__*/makeIcon('Link','');// eslint-disable-next-line\nexport var BIconLink45deg=/*#__PURE__*/makeIcon('Link45deg','');// eslint-disable-next-line\nexport var BIconLinkedin=/*#__PURE__*/makeIcon('Linkedin','');// eslint-disable-next-line\nexport var BIconList=/*#__PURE__*/makeIcon('List','');// eslint-disable-next-line\nexport var BIconListCheck=/*#__PURE__*/makeIcon('ListCheck','');// eslint-disable-next-line\nexport var BIconListNested=/*#__PURE__*/makeIcon('ListNested','');// eslint-disable-next-line\nexport var BIconListOl=/*#__PURE__*/makeIcon('ListOl','');// eslint-disable-next-line\nexport var BIconListStars=/*#__PURE__*/makeIcon('ListStars','');// eslint-disable-next-line\nexport var BIconListTask=/*#__PURE__*/makeIcon('ListTask','');// eslint-disable-next-line\nexport var BIconListUl=/*#__PURE__*/makeIcon('ListUl','');// eslint-disable-next-line\nexport var BIconLock=/*#__PURE__*/makeIcon('Lock','');// eslint-disable-next-line\nexport var BIconLockFill=/*#__PURE__*/makeIcon('LockFill','');// eslint-disable-next-line\nexport var BIconMailbox=/*#__PURE__*/makeIcon('Mailbox','');// eslint-disable-next-line\nexport var BIconMailbox2=/*#__PURE__*/makeIcon('Mailbox2','');// eslint-disable-next-line\nexport var BIconMap=/*#__PURE__*/makeIcon('Map','');// eslint-disable-next-line\nexport var BIconMapFill=/*#__PURE__*/makeIcon('MapFill','');// eslint-disable-next-line\nexport var BIconMarkdown=/*#__PURE__*/makeIcon('Markdown','');// eslint-disable-next-line\nexport var BIconMarkdownFill=/*#__PURE__*/makeIcon('MarkdownFill','');// eslint-disable-next-line\nexport var BIconMask=/*#__PURE__*/makeIcon('Mask','');// eslint-disable-next-line\nexport var BIconMastodon=/*#__PURE__*/makeIcon('Mastodon','');// eslint-disable-next-line\nexport var BIconMegaphone=/*#__PURE__*/makeIcon('Megaphone','');// eslint-disable-next-line\nexport var BIconMegaphoneFill=/*#__PURE__*/makeIcon('MegaphoneFill','');// eslint-disable-next-line\nexport var BIconMenuApp=/*#__PURE__*/makeIcon('MenuApp','');// eslint-disable-next-line\nexport var BIconMenuAppFill=/*#__PURE__*/makeIcon('MenuAppFill','');// eslint-disable-next-line\nexport var BIconMenuButton=/*#__PURE__*/makeIcon('MenuButton','');// eslint-disable-next-line\nexport var BIconMenuButtonFill=/*#__PURE__*/makeIcon('MenuButtonFill','');// eslint-disable-next-line\nexport var BIconMenuButtonWide=/*#__PURE__*/makeIcon('MenuButtonWide','');// eslint-disable-next-line\nexport var BIconMenuButtonWideFill=/*#__PURE__*/makeIcon('MenuButtonWideFill','');// eslint-disable-next-line\nexport var BIconMenuDown=/*#__PURE__*/makeIcon('MenuDown','');// eslint-disable-next-line\nexport var BIconMenuUp=/*#__PURE__*/makeIcon('MenuUp','');// eslint-disable-next-line\nexport var BIconMessenger=/*#__PURE__*/makeIcon('Messenger','');// eslint-disable-next-line\nexport var BIconMic=/*#__PURE__*/makeIcon('Mic','');// eslint-disable-next-line\nexport var BIconMicFill=/*#__PURE__*/makeIcon('MicFill','');// eslint-disable-next-line\nexport var BIconMicMute=/*#__PURE__*/makeIcon('MicMute','');// eslint-disable-next-line\nexport var BIconMicMuteFill=/*#__PURE__*/makeIcon('MicMuteFill','');// eslint-disable-next-line\nexport var BIconMinecart=/*#__PURE__*/makeIcon('Minecart','');// eslint-disable-next-line\nexport var BIconMinecartLoaded=/*#__PURE__*/makeIcon('MinecartLoaded','');// eslint-disable-next-line\nexport var BIconMoisture=/*#__PURE__*/makeIcon('Moisture','');// eslint-disable-next-line\nexport var BIconMoon=/*#__PURE__*/makeIcon('Moon','');// eslint-disable-next-line\nexport var BIconMoonFill=/*#__PURE__*/makeIcon('MoonFill','');// eslint-disable-next-line\nexport var BIconMoonStars=/*#__PURE__*/makeIcon('MoonStars','');// eslint-disable-next-line\nexport var BIconMoonStarsFill=/*#__PURE__*/makeIcon('MoonStarsFill','');// eslint-disable-next-line\nexport var BIconMouse=/*#__PURE__*/makeIcon('Mouse','');// eslint-disable-next-line\nexport var BIconMouse2=/*#__PURE__*/makeIcon('Mouse2','');// eslint-disable-next-line\nexport var BIconMouse2Fill=/*#__PURE__*/makeIcon('Mouse2Fill','');// eslint-disable-next-line\nexport var BIconMouse3=/*#__PURE__*/makeIcon('Mouse3','');// eslint-disable-next-line\nexport var BIconMouse3Fill=/*#__PURE__*/makeIcon('Mouse3Fill','');// eslint-disable-next-line\nexport var BIconMouseFill=/*#__PURE__*/makeIcon('MouseFill','');// eslint-disable-next-line\nexport var BIconMusicNote=/*#__PURE__*/makeIcon('MusicNote','');// eslint-disable-next-line\nexport var BIconMusicNoteBeamed=/*#__PURE__*/makeIcon('MusicNoteBeamed','');// eslint-disable-next-line\nexport var BIconMusicNoteList=/*#__PURE__*/makeIcon('MusicNoteList','');// eslint-disable-next-line\nexport var BIconMusicPlayer=/*#__PURE__*/makeIcon('MusicPlayer','');// eslint-disable-next-line\nexport var BIconMusicPlayerFill=/*#__PURE__*/makeIcon('MusicPlayerFill','');// eslint-disable-next-line\nexport var BIconNewspaper=/*#__PURE__*/makeIcon('Newspaper','');// eslint-disable-next-line\nexport var BIconNodeMinus=/*#__PURE__*/makeIcon('NodeMinus','');// eslint-disable-next-line\nexport var BIconNodeMinusFill=/*#__PURE__*/makeIcon('NodeMinusFill','');// eslint-disable-next-line\nexport var BIconNodePlus=/*#__PURE__*/makeIcon('NodePlus','');// eslint-disable-next-line\nexport var BIconNodePlusFill=/*#__PURE__*/makeIcon('NodePlusFill','');// eslint-disable-next-line\nexport var BIconNut=/*#__PURE__*/makeIcon('Nut','');// eslint-disable-next-line\nexport var BIconNutFill=/*#__PURE__*/makeIcon('NutFill','');// eslint-disable-next-line\nexport var BIconOctagon=/*#__PURE__*/makeIcon('Octagon','');// eslint-disable-next-line\nexport var BIconOctagonFill=/*#__PURE__*/makeIcon('OctagonFill','');// eslint-disable-next-line\nexport var BIconOctagonHalf=/*#__PURE__*/makeIcon('OctagonHalf','');// eslint-disable-next-line\nexport var BIconOption=/*#__PURE__*/makeIcon('Option','');// eslint-disable-next-line\nexport var BIconOutlet=/*#__PURE__*/makeIcon('Outlet','');// eslint-disable-next-line\nexport var BIconPaintBucket=/*#__PURE__*/makeIcon('PaintBucket','');// eslint-disable-next-line\nexport var BIconPalette=/*#__PURE__*/makeIcon('Palette','');// eslint-disable-next-line\nexport var BIconPalette2=/*#__PURE__*/makeIcon('Palette2','');// eslint-disable-next-line\nexport var BIconPaletteFill=/*#__PURE__*/makeIcon('PaletteFill','');// eslint-disable-next-line\nexport var BIconPaperclip=/*#__PURE__*/makeIcon('Paperclip','');// eslint-disable-next-line\nexport var BIconParagraph=/*#__PURE__*/makeIcon('Paragraph','');// eslint-disable-next-line\nexport var BIconPatchCheck=/*#__PURE__*/makeIcon('PatchCheck','');// eslint-disable-next-line\nexport var BIconPatchCheckFill=/*#__PURE__*/makeIcon('PatchCheckFill','');// eslint-disable-next-line\nexport var BIconPatchExclamation=/*#__PURE__*/makeIcon('PatchExclamation','');// eslint-disable-next-line\nexport var BIconPatchExclamationFill=/*#__PURE__*/makeIcon('PatchExclamationFill','');// eslint-disable-next-line\nexport var BIconPatchMinus=/*#__PURE__*/makeIcon('PatchMinus','');// eslint-disable-next-line\nexport var BIconPatchMinusFill=/*#__PURE__*/makeIcon('PatchMinusFill','');// eslint-disable-next-line\nexport var BIconPatchPlus=/*#__PURE__*/makeIcon('PatchPlus','');// eslint-disable-next-line\nexport var BIconPatchPlusFill=/*#__PURE__*/makeIcon('PatchPlusFill','');// eslint-disable-next-line\nexport var BIconPatchQuestion=/*#__PURE__*/makeIcon('PatchQuestion','');// eslint-disable-next-line\nexport var BIconPatchQuestionFill=/*#__PURE__*/makeIcon('PatchQuestionFill','');// eslint-disable-next-line\nexport var BIconPause=/*#__PURE__*/makeIcon('Pause','');// eslint-disable-next-line\nexport var BIconPauseBtn=/*#__PURE__*/makeIcon('PauseBtn','');// eslint-disable-next-line\nexport var BIconPauseBtnFill=/*#__PURE__*/makeIcon('PauseBtnFill','');// eslint-disable-next-line\nexport var BIconPauseCircle=/*#__PURE__*/makeIcon('PauseCircle','');// eslint-disable-next-line\nexport var BIconPauseCircleFill=/*#__PURE__*/makeIcon('PauseCircleFill','');// eslint-disable-next-line\nexport var BIconPauseFill=/*#__PURE__*/makeIcon('PauseFill','');// eslint-disable-next-line\nexport var BIconPeace=/*#__PURE__*/makeIcon('Peace','');// eslint-disable-next-line\nexport var BIconPeaceFill=/*#__PURE__*/makeIcon('PeaceFill','');// eslint-disable-next-line\nexport var BIconPen=/*#__PURE__*/makeIcon('Pen','');// eslint-disable-next-line\nexport var BIconPenFill=/*#__PURE__*/makeIcon('PenFill','');// eslint-disable-next-line\nexport var BIconPencil=/*#__PURE__*/makeIcon('Pencil','');// eslint-disable-next-line\nexport var BIconPencilFill=/*#__PURE__*/makeIcon('PencilFill','');// eslint-disable-next-line\nexport var BIconPencilSquare=/*#__PURE__*/makeIcon('PencilSquare','');// eslint-disable-next-line\nexport var BIconPentagon=/*#__PURE__*/makeIcon('Pentagon','');// eslint-disable-next-line\nexport var BIconPentagonFill=/*#__PURE__*/makeIcon('PentagonFill','');// eslint-disable-next-line\nexport var BIconPentagonHalf=/*#__PURE__*/makeIcon('PentagonHalf','');// eslint-disable-next-line\nexport var BIconPeople=/*#__PURE__*/makeIcon('People','');// eslint-disable-next-line\nexport var BIconPeopleFill=/*#__PURE__*/makeIcon('PeopleFill','');// eslint-disable-next-line\nexport var BIconPercent=/*#__PURE__*/makeIcon('Percent','');// eslint-disable-next-line\nexport var BIconPerson=/*#__PURE__*/makeIcon('Person','');// eslint-disable-next-line\nexport var BIconPersonBadge=/*#__PURE__*/makeIcon('PersonBadge','');// eslint-disable-next-line\nexport var BIconPersonBadgeFill=/*#__PURE__*/makeIcon('PersonBadgeFill','');// eslint-disable-next-line\nexport var BIconPersonBoundingBox=/*#__PURE__*/makeIcon('PersonBoundingBox','');// eslint-disable-next-line\nexport var BIconPersonCheck=/*#__PURE__*/makeIcon('PersonCheck','');// eslint-disable-next-line\nexport var BIconPersonCheckFill=/*#__PURE__*/makeIcon('PersonCheckFill','');// eslint-disable-next-line\nexport var BIconPersonCircle=/*#__PURE__*/makeIcon('PersonCircle','');// eslint-disable-next-line\nexport var BIconPersonDash=/*#__PURE__*/makeIcon('PersonDash','');// eslint-disable-next-line\nexport var BIconPersonDashFill=/*#__PURE__*/makeIcon('PersonDashFill','');// eslint-disable-next-line\nexport var BIconPersonFill=/*#__PURE__*/makeIcon('PersonFill','');// eslint-disable-next-line\nexport var BIconPersonLinesFill=/*#__PURE__*/makeIcon('PersonLinesFill','');// eslint-disable-next-line\nexport var BIconPersonPlus=/*#__PURE__*/makeIcon('PersonPlus','');// eslint-disable-next-line\nexport var BIconPersonPlusFill=/*#__PURE__*/makeIcon('PersonPlusFill','');// eslint-disable-next-line\nexport var BIconPersonSquare=/*#__PURE__*/makeIcon('PersonSquare','');// eslint-disable-next-line\nexport var BIconPersonX=/*#__PURE__*/makeIcon('PersonX','');// eslint-disable-next-line\nexport var BIconPersonXFill=/*#__PURE__*/makeIcon('PersonXFill','');// eslint-disable-next-line\nexport var BIconPhone=/*#__PURE__*/makeIcon('Phone','');// eslint-disable-next-line\nexport var BIconPhoneFill=/*#__PURE__*/makeIcon('PhoneFill','');// eslint-disable-next-line\nexport var BIconPhoneLandscape=/*#__PURE__*/makeIcon('PhoneLandscape','');// eslint-disable-next-line\nexport var BIconPhoneLandscapeFill=/*#__PURE__*/makeIcon('PhoneLandscapeFill','');// eslint-disable-next-line\nexport var BIconPhoneVibrate=/*#__PURE__*/makeIcon('PhoneVibrate','');// eslint-disable-next-line\nexport var BIconPhoneVibrateFill=/*#__PURE__*/makeIcon('PhoneVibrateFill','');// eslint-disable-next-line\nexport var BIconPieChart=/*#__PURE__*/makeIcon('PieChart','');// eslint-disable-next-line\nexport var BIconPieChartFill=/*#__PURE__*/makeIcon('PieChartFill','');// eslint-disable-next-line\nexport var BIconPiggyBank=/*#__PURE__*/makeIcon('PiggyBank','');// eslint-disable-next-line\nexport var BIconPiggyBankFill=/*#__PURE__*/makeIcon('PiggyBankFill','');// eslint-disable-next-line\nexport var BIconPin=/*#__PURE__*/makeIcon('Pin','');// eslint-disable-next-line\nexport var BIconPinAngle=/*#__PURE__*/makeIcon('PinAngle','');// eslint-disable-next-line\nexport var BIconPinAngleFill=/*#__PURE__*/makeIcon('PinAngleFill','');// eslint-disable-next-line\nexport var BIconPinFill=/*#__PURE__*/makeIcon('PinFill','');// eslint-disable-next-line\nexport var BIconPinMap=/*#__PURE__*/makeIcon('PinMap','');// eslint-disable-next-line\nexport var BIconPinMapFill=/*#__PURE__*/makeIcon('PinMapFill','');// eslint-disable-next-line\nexport var BIconPip=/*#__PURE__*/makeIcon('Pip','');// eslint-disable-next-line\nexport var BIconPipFill=/*#__PURE__*/makeIcon('PipFill','');// eslint-disable-next-line\nexport var BIconPlay=/*#__PURE__*/makeIcon('Play','');// eslint-disable-next-line\nexport var BIconPlayBtn=/*#__PURE__*/makeIcon('PlayBtn','');// eslint-disable-next-line\nexport var BIconPlayBtnFill=/*#__PURE__*/makeIcon('PlayBtnFill','');// eslint-disable-next-line\nexport var BIconPlayCircle=/*#__PURE__*/makeIcon('PlayCircle','');// eslint-disable-next-line\nexport var BIconPlayCircleFill=/*#__PURE__*/makeIcon('PlayCircleFill','');// eslint-disable-next-line\nexport var BIconPlayFill=/*#__PURE__*/makeIcon('PlayFill','');// eslint-disable-next-line\nexport var BIconPlug=/*#__PURE__*/makeIcon('Plug','');// eslint-disable-next-line\nexport var BIconPlugFill=/*#__PURE__*/makeIcon('PlugFill','');// eslint-disable-next-line\nexport var BIconPlus=/*#__PURE__*/makeIcon('Plus','');// eslint-disable-next-line\nexport var BIconPlusCircle=/*#__PURE__*/makeIcon('PlusCircle','');// eslint-disable-next-line\nexport var BIconPlusCircleDotted=/*#__PURE__*/makeIcon('PlusCircleDotted','');// eslint-disable-next-line\nexport var BIconPlusCircleFill=/*#__PURE__*/makeIcon('PlusCircleFill','');// eslint-disable-next-line\nexport var BIconPlusLg=/*#__PURE__*/makeIcon('PlusLg','');// eslint-disable-next-line\nexport var BIconPlusSquare=/*#__PURE__*/makeIcon('PlusSquare','');// eslint-disable-next-line\nexport var BIconPlusSquareDotted=/*#__PURE__*/makeIcon('PlusSquareDotted','');// eslint-disable-next-line\nexport var BIconPlusSquareFill=/*#__PURE__*/makeIcon('PlusSquareFill','');// eslint-disable-next-line\nexport var BIconPower=/*#__PURE__*/makeIcon('Power','');// eslint-disable-next-line\nexport var BIconPrinter=/*#__PURE__*/makeIcon('Printer','');// eslint-disable-next-line\nexport var BIconPrinterFill=/*#__PURE__*/makeIcon('PrinterFill','');// eslint-disable-next-line\nexport var BIconPuzzle=/*#__PURE__*/makeIcon('Puzzle','');// eslint-disable-next-line\nexport var BIconPuzzleFill=/*#__PURE__*/makeIcon('PuzzleFill','');// eslint-disable-next-line\nexport var BIconQuestion=/*#__PURE__*/makeIcon('Question','');// eslint-disable-next-line\nexport var BIconQuestionCircle=/*#__PURE__*/makeIcon('QuestionCircle','');// eslint-disable-next-line\nexport var BIconQuestionCircleFill=/*#__PURE__*/makeIcon('QuestionCircleFill','');// eslint-disable-next-line\nexport var BIconQuestionDiamond=/*#__PURE__*/makeIcon('QuestionDiamond','');// eslint-disable-next-line\nexport var BIconQuestionDiamondFill=/*#__PURE__*/makeIcon('QuestionDiamondFill','');// eslint-disable-next-line\nexport var BIconQuestionLg=/*#__PURE__*/makeIcon('QuestionLg','');// eslint-disable-next-line\nexport var BIconQuestionOctagon=/*#__PURE__*/makeIcon('QuestionOctagon','');// eslint-disable-next-line\nexport var BIconQuestionOctagonFill=/*#__PURE__*/makeIcon('QuestionOctagonFill','');// eslint-disable-next-line\nexport var BIconQuestionSquare=/*#__PURE__*/makeIcon('QuestionSquare','');// eslint-disable-next-line\nexport var BIconQuestionSquareFill=/*#__PURE__*/makeIcon('QuestionSquareFill','');// eslint-disable-next-line\nexport var BIconRainbow=/*#__PURE__*/makeIcon('Rainbow','');// eslint-disable-next-line\nexport var BIconReceipt=/*#__PURE__*/makeIcon('Receipt','');// eslint-disable-next-line\nexport var BIconReceiptCutoff=/*#__PURE__*/makeIcon('ReceiptCutoff','');// eslint-disable-next-line\nexport var BIconReception0=/*#__PURE__*/makeIcon('Reception0','');// eslint-disable-next-line\nexport var BIconReception1=/*#__PURE__*/makeIcon('Reception1','');// eslint-disable-next-line\nexport var BIconReception2=/*#__PURE__*/makeIcon('Reception2','');// eslint-disable-next-line\nexport var BIconReception3=/*#__PURE__*/makeIcon('Reception3','');// eslint-disable-next-line\nexport var BIconReception4=/*#__PURE__*/makeIcon('Reception4','');// eslint-disable-next-line\nexport var BIconRecord=/*#__PURE__*/makeIcon('Record','');// eslint-disable-next-line\nexport var BIconRecord2=/*#__PURE__*/makeIcon('Record2','');// eslint-disable-next-line\nexport var BIconRecord2Fill=/*#__PURE__*/makeIcon('Record2Fill','');// eslint-disable-next-line\nexport var BIconRecordBtn=/*#__PURE__*/makeIcon('RecordBtn','');// eslint-disable-next-line\nexport var BIconRecordBtnFill=/*#__PURE__*/makeIcon('RecordBtnFill','');// eslint-disable-next-line\nexport var BIconRecordCircle=/*#__PURE__*/makeIcon('RecordCircle','');// eslint-disable-next-line\nexport var BIconRecordCircleFill=/*#__PURE__*/makeIcon('RecordCircleFill','');// eslint-disable-next-line\nexport var BIconRecordFill=/*#__PURE__*/makeIcon('RecordFill','');// eslint-disable-next-line\nexport var BIconRecycle=/*#__PURE__*/makeIcon('Recycle','');// eslint-disable-next-line\nexport var BIconReddit=/*#__PURE__*/makeIcon('Reddit','');// eslint-disable-next-line\nexport var BIconReply=/*#__PURE__*/makeIcon('Reply','');// eslint-disable-next-line\nexport var BIconReplyAll=/*#__PURE__*/makeIcon('ReplyAll','');// eslint-disable-next-line\nexport var BIconReplyAllFill=/*#__PURE__*/makeIcon('ReplyAllFill','');// eslint-disable-next-line\nexport var BIconReplyFill=/*#__PURE__*/makeIcon('ReplyFill','');// eslint-disable-next-line\nexport var BIconRss=/*#__PURE__*/makeIcon('Rss','');// eslint-disable-next-line\nexport var BIconRssFill=/*#__PURE__*/makeIcon('RssFill','');// eslint-disable-next-line\nexport var BIconRulers=/*#__PURE__*/makeIcon('Rulers','');// eslint-disable-next-line\nexport var BIconSafe=/*#__PURE__*/makeIcon('Safe','');// eslint-disable-next-line\nexport var BIconSafe2=/*#__PURE__*/makeIcon('Safe2','');// eslint-disable-next-line\nexport var BIconSafe2Fill=/*#__PURE__*/makeIcon('Safe2Fill','');// eslint-disable-next-line\nexport var BIconSafeFill=/*#__PURE__*/makeIcon('SafeFill','');// eslint-disable-next-line\nexport var BIconSave=/*#__PURE__*/makeIcon('Save','');// eslint-disable-next-line\nexport var BIconSave2=/*#__PURE__*/makeIcon('Save2','');// eslint-disable-next-line\nexport var BIconSave2Fill=/*#__PURE__*/makeIcon('Save2Fill','');// eslint-disable-next-line\nexport var BIconSaveFill=/*#__PURE__*/makeIcon('SaveFill','');// eslint-disable-next-line\nexport var BIconScissors=/*#__PURE__*/makeIcon('Scissors','');// eslint-disable-next-line\nexport var BIconScrewdriver=/*#__PURE__*/makeIcon('Screwdriver','');// eslint-disable-next-line\nexport var BIconSdCard=/*#__PURE__*/makeIcon('SdCard','');// eslint-disable-next-line\nexport var BIconSdCardFill=/*#__PURE__*/makeIcon('SdCardFill','');// eslint-disable-next-line\nexport var BIconSearch=/*#__PURE__*/makeIcon('Search','');// eslint-disable-next-line\nexport var BIconSegmentedNav=/*#__PURE__*/makeIcon('SegmentedNav','');// eslint-disable-next-line\nexport var BIconServer=/*#__PURE__*/makeIcon('Server','');// eslint-disable-next-line\nexport var BIconShare=/*#__PURE__*/makeIcon('Share','');// eslint-disable-next-line\nexport var BIconShareFill=/*#__PURE__*/makeIcon('ShareFill','');// eslint-disable-next-line\nexport var BIconShield=/*#__PURE__*/makeIcon('Shield','');// eslint-disable-next-line\nexport var BIconShieldCheck=/*#__PURE__*/makeIcon('ShieldCheck','');// eslint-disable-next-line\nexport var BIconShieldExclamation=/*#__PURE__*/makeIcon('ShieldExclamation','');// eslint-disable-next-line\nexport var BIconShieldFill=/*#__PURE__*/makeIcon('ShieldFill','');// eslint-disable-next-line\nexport var BIconShieldFillCheck=/*#__PURE__*/makeIcon('ShieldFillCheck','');// eslint-disable-next-line\nexport var BIconShieldFillExclamation=/*#__PURE__*/makeIcon('ShieldFillExclamation','');// eslint-disable-next-line\nexport var BIconShieldFillMinus=/*#__PURE__*/makeIcon('ShieldFillMinus','');// eslint-disable-next-line\nexport var BIconShieldFillPlus=/*#__PURE__*/makeIcon('ShieldFillPlus','');// eslint-disable-next-line\nexport var BIconShieldFillX=/*#__PURE__*/makeIcon('ShieldFillX','');// eslint-disable-next-line\nexport var BIconShieldLock=/*#__PURE__*/makeIcon('ShieldLock','');// eslint-disable-next-line\nexport var BIconShieldLockFill=/*#__PURE__*/makeIcon('ShieldLockFill','');// eslint-disable-next-line\nexport var BIconShieldMinus=/*#__PURE__*/makeIcon('ShieldMinus','');// eslint-disable-next-line\nexport var BIconShieldPlus=/*#__PURE__*/makeIcon('ShieldPlus','');// eslint-disable-next-line\nexport var BIconShieldShaded=/*#__PURE__*/makeIcon('ShieldShaded','');// eslint-disable-next-line\nexport var BIconShieldSlash=/*#__PURE__*/makeIcon('ShieldSlash','');// eslint-disable-next-line\nexport var BIconShieldSlashFill=/*#__PURE__*/makeIcon('ShieldSlashFill','');// eslint-disable-next-line\nexport var BIconShieldX=/*#__PURE__*/makeIcon('ShieldX','');// eslint-disable-next-line\nexport var BIconShift=/*#__PURE__*/makeIcon('Shift','');// eslint-disable-next-line\nexport var BIconShiftFill=/*#__PURE__*/makeIcon('ShiftFill','');// eslint-disable-next-line\nexport var BIconShop=/*#__PURE__*/makeIcon('Shop','');// eslint-disable-next-line\nexport var BIconShopWindow=/*#__PURE__*/makeIcon('ShopWindow','');// eslint-disable-next-line\nexport var BIconShuffle=/*#__PURE__*/makeIcon('Shuffle','');// eslint-disable-next-line\nexport var BIconSignpost=/*#__PURE__*/makeIcon('Signpost','');// eslint-disable-next-line\nexport var BIconSignpost2=/*#__PURE__*/makeIcon('Signpost2','');// eslint-disable-next-line\nexport var BIconSignpost2Fill=/*#__PURE__*/makeIcon('Signpost2Fill','');// eslint-disable-next-line\nexport var BIconSignpostFill=/*#__PURE__*/makeIcon('SignpostFill','');// eslint-disable-next-line\nexport var BIconSignpostSplit=/*#__PURE__*/makeIcon('SignpostSplit','');// eslint-disable-next-line\nexport var BIconSignpostSplitFill=/*#__PURE__*/makeIcon('SignpostSplitFill','');// eslint-disable-next-line\nexport var BIconSim=/*#__PURE__*/makeIcon('Sim','');// eslint-disable-next-line\nexport var BIconSimFill=/*#__PURE__*/makeIcon('SimFill','');// eslint-disable-next-line\nexport var BIconSkipBackward=/*#__PURE__*/makeIcon('SkipBackward','');// eslint-disable-next-line\nexport var BIconSkipBackwardBtn=/*#__PURE__*/makeIcon('SkipBackwardBtn','');// eslint-disable-next-line\nexport var BIconSkipBackwardBtnFill=/*#__PURE__*/makeIcon('SkipBackwardBtnFill','');// eslint-disable-next-line\nexport var BIconSkipBackwardCircle=/*#__PURE__*/makeIcon('SkipBackwardCircle','');// eslint-disable-next-line\nexport var BIconSkipBackwardCircleFill=/*#__PURE__*/makeIcon('SkipBackwardCircleFill','');// eslint-disable-next-line\nexport var BIconSkipBackwardFill=/*#__PURE__*/makeIcon('SkipBackwardFill','');// eslint-disable-next-line\nexport var BIconSkipEnd=/*#__PURE__*/makeIcon('SkipEnd','');// eslint-disable-next-line\nexport var BIconSkipEndBtn=/*#__PURE__*/makeIcon('SkipEndBtn','');// eslint-disable-next-line\nexport var BIconSkipEndBtnFill=/*#__PURE__*/makeIcon('SkipEndBtnFill','');// eslint-disable-next-line\nexport var BIconSkipEndCircle=/*#__PURE__*/makeIcon('SkipEndCircle','');// eslint-disable-next-line\nexport var BIconSkipEndCircleFill=/*#__PURE__*/makeIcon('SkipEndCircleFill','');// eslint-disable-next-line\nexport var BIconSkipEndFill=/*#__PURE__*/makeIcon('SkipEndFill','');// eslint-disable-next-line\nexport var BIconSkipForward=/*#__PURE__*/makeIcon('SkipForward','');// eslint-disable-next-line\nexport var BIconSkipForwardBtn=/*#__PURE__*/makeIcon('SkipForwardBtn','');// eslint-disable-next-line\nexport var BIconSkipForwardBtnFill=/*#__PURE__*/makeIcon('SkipForwardBtnFill','');// eslint-disable-next-line\nexport var BIconSkipForwardCircle=/*#__PURE__*/makeIcon('SkipForwardCircle','');// eslint-disable-next-line\nexport var BIconSkipForwardCircleFill=/*#__PURE__*/makeIcon('SkipForwardCircleFill','');// eslint-disable-next-line\nexport var BIconSkipForwardFill=/*#__PURE__*/makeIcon('SkipForwardFill','');// eslint-disable-next-line\nexport var BIconSkipStart=/*#__PURE__*/makeIcon('SkipStart','');// eslint-disable-next-line\nexport var BIconSkipStartBtn=/*#__PURE__*/makeIcon('SkipStartBtn','');// eslint-disable-next-line\nexport var BIconSkipStartBtnFill=/*#__PURE__*/makeIcon('SkipStartBtnFill','');// eslint-disable-next-line\nexport var BIconSkipStartCircle=/*#__PURE__*/makeIcon('SkipStartCircle','');// eslint-disable-next-line\nexport var BIconSkipStartCircleFill=/*#__PURE__*/makeIcon('SkipStartCircleFill','');// eslint-disable-next-line\nexport var BIconSkipStartFill=/*#__PURE__*/makeIcon('SkipStartFill','');// eslint-disable-next-line\nexport var BIconSkype=/*#__PURE__*/makeIcon('Skype','');// eslint-disable-next-line\nexport var BIconSlack=/*#__PURE__*/makeIcon('Slack','');// eslint-disable-next-line\nexport var BIconSlash=/*#__PURE__*/makeIcon('Slash','');// eslint-disable-next-line\nexport var BIconSlashCircle=/*#__PURE__*/makeIcon('SlashCircle','');// eslint-disable-next-line\nexport var BIconSlashCircleFill=/*#__PURE__*/makeIcon('SlashCircleFill','');// eslint-disable-next-line\nexport var BIconSlashLg=/*#__PURE__*/makeIcon('SlashLg','');// eslint-disable-next-line\nexport var BIconSlashSquare=/*#__PURE__*/makeIcon('SlashSquare','');// eslint-disable-next-line\nexport var BIconSlashSquareFill=/*#__PURE__*/makeIcon('SlashSquareFill','');// eslint-disable-next-line\nexport var BIconSliders=/*#__PURE__*/makeIcon('Sliders','');// eslint-disable-next-line\nexport var BIconSmartwatch=/*#__PURE__*/makeIcon('Smartwatch','');// eslint-disable-next-line\nexport var BIconSnow=/*#__PURE__*/makeIcon('Snow','');// eslint-disable-next-line\nexport var BIconSnow2=/*#__PURE__*/makeIcon('Snow2','');// eslint-disable-next-line\nexport var BIconSnow3=/*#__PURE__*/makeIcon('Snow3','');// eslint-disable-next-line\nexport var BIconSortAlphaDown=/*#__PURE__*/makeIcon('SortAlphaDown','');// eslint-disable-next-line\nexport var BIconSortAlphaDownAlt=/*#__PURE__*/makeIcon('SortAlphaDownAlt','');// eslint-disable-next-line\nexport var BIconSortAlphaUp=/*#__PURE__*/makeIcon('SortAlphaUp','');// eslint-disable-next-line\nexport var BIconSortAlphaUpAlt=/*#__PURE__*/makeIcon('SortAlphaUpAlt','');// eslint-disable-next-line\nexport var BIconSortDown=/*#__PURE__*/makeIcon('SortDown','');// eslint-disable-next-line\nexport var BIconSortDownAlt=/*#__PURE__*/makeIcon('SortDownAlt','');// eslint-disable-next-line\nexport var BIconSortNumericDown=/*#__PURE__*/makeIcon('SortNumericDown','');// eslint-disable-next-line\nexport var BIconSortNumericDownAlt=/*#__PURE__*/makeIcon('SortNumericDownAlt','');// eslint-disable-next-line\nexport var BIconSortNumericUp=/*#__PURE__*/makeIcon('SortNumericUp','');// eslint-disable-next-line\nexport var BIconSortNumericUpAlt=/*#__PURE__*/makeIcon('SortNumericUpAlt','');// eslint-disable-next-line\nexport var BIconSortUp=/*#__PURE__*/makeIcon('SortUp','');// eslint-disable-next-line\nexport var BIconSortUpAlt=/*#__PURE__*/makeIcon('SortUpAlt','');// eslint-disable-next-line\nexport var BIconSoundwave=/*#__PURE__*/makeIcon('Soundwave','');// eslint-disable-next-line\nexport var BIconSpeaker=/*#__PURE__*/makeIcon('Speaker','');// eslint-disable-next-line\nexport var BIconSpeakerFill=/*#__PURE__*/makeIcon('SpeakerFill','');// eslint-disable-next-line\nexport var BIconSpeedometer=/*#__PURE__*/makeIcon('Speedometer','');// eslint-disable-next-line\nexport var BIconSpeedometer2=/*#__PURE__*/makeIcon('Speedometer2','');// eslint-disable-next-line\nexport var BIconSpellcheck=/*#__PURE__*/makeIcon('Spellcheck','');// eslint-disable-next-line\nexport var BIconSquare=/*#__PURE__*/makeIcon('Square','');// eslint-disable-next-line\nexport var BIconSquareFill=/*#__PURE__*/makeIcon('SquareFill','');// eslint-disable-next-line\nexport var BIconSquareHalf=/*#__PURE__*/makeIcon('SquareHalf','');// eslint-disable-next-line\nexport var BIconStack=/*#__PURE__*/makeIcon('Stack','');// eslint-disable-next-line\nexport var BIconStar=/*#__PURE__*/makeIcon('Star','');// eslint-disable-next-line\nexport var BIconStarFill=/*#__PURE__*/makeIcon('StarFill','');// eslint-disable-next-line\nexport var BIconStarHalf=/*#__PURE__*/makeIcon('StarHalf','');// eslint-disable-next-line\nexport var BIconStars=/*#__PURE__*/makeIcon('Stars','');// eslint-disable-next-line\nexport var BIconStickies=/*#__PURE__*/makeIcon('Stickies','');// eslint-disable-next-line\nexport var BIconStickiesFill=/*#__PURE__*/makeIcon('StickiesFill','');// eslint-disable-next-line\nexport var BIconSticky=/*#__PURE__*/makeIcon('Sticky','');// eslint-disable-next-line\nexport var BIconStickyFill=/*#__PURE__*/makeIcon('StickyFill','');// eslint-disable-next-line\nexport var BIconStop=/*#__PURE__*/makeIcon('Stop','');// eslint-disable-next-line\nexport var BIconStopBtn=/*#__PURE__*/makeIcon('StopBtn','');// eslint-disable-next-line\nexport var BIconStopBtnFill=/*#__PURE__*/makeIcon('StopBtnFill','');// eslint-disable-next-line\nexport var BIconStopCircle=/*#__PURE__*/makeIcon('StopCircle','');// eslint-disable-next-line\nexport var BIconStopCircleFill=/*#__PURE__*/makeIcon('StopCircleFill','');// eslint-disable-next-line\nexport var BIconStopFill=/*#__PURE__*/makeIcon('StopFill','');// eslint-disable-next-line\nexport var BIconStoplights=/*#__PURE__*/makeIcon('Stoplights','');// eslint-disable-next-line\nexport var BIconStoplightsFill=/*#__PURE__*/makeIcon('StoplightsFill','');// eslint-disable-next-line\nexport var BIconStopwatch=/*#__PURE__*/makeIcon('Stopwatch','');// eslint-disable-next-line\nexport var BIconStopwatchFill=/*#__PURE__*/makeIcon('StopwatchFill','');// eslint-disable-next-line\nexport var BIconSubtract=/*#__PURE__*/makeIcon('Subtract','');// eslint-disable-next-line\nexport var BIconSuitClub=/*#__PURE__*/makeIcon('SuitClub','');// eslint-disable-next-line\nexport var BIconSuitClubFill=/*#__PURE__*/makeIcon('SuitClubFill','');// eslint-disable-next-line\nexport var BIconSuitDiamond=/*#__PURE__*/makeIcon('SuitDiamond','');// eslint-disable-next-line\nexport var BIconSuitDiamondFill=/*#__PURE__*/makeIcon('SuitDiamondFill','');// eslint-disable-next-line\nexport var BIconSuitHeart=/*#__PURE__*/makeIcon('SuitHeart','');// eslint-disable-next-line\nexport var BIconSuitHeartFill=/*#__PURE__*/makeIcon('SuitHeartFill','');// eslint-disable-next-line\nexport var BIconSuitSpade=/*#__PURE__*/makeIcon('SuitSpade','');// eslint-disable-next-line\nexport var BIconSuitSpadeFill=/*#__PURE__*/makeIcon('SuitSpadeFill','');// eslint-disable-next-line\nexport var BIconSun=/*#__PURE__*/makeIcon('Sun','');// eslint-disable-next-line\nexport var BIconSunFill=/*#__PURE__*/makeIcon('SunFill','');// eslint-disable-next-line\nexport var BIconSunglasses=/*#__PURE__*/makeIcon('Sunglasses','');// eslint-disable-next-line\nexport var BIconSunrise=/*#__PURE__*/makeIcon('Sunrise','');// eslint-disable-next-line\nexport var BIconSunriseFill=/*#__PURE__*/makeIcon('SunriseFill','');// eslint-disable-next-line\nexport var BIconSunset=/*#__PURE__*/makeIcon('Sunset','');// eslint-disable-next-line\nexport var BIconSunsetFill=/*#__PURE__*/makeIcon('SunsetFill','');// eslint-disable-next-line\nexport var BIconSymmetryHorizontal=/*#__PURE__*/makeIcon('SymmetryHorizontal','');// eslint-disable-next-line\nexport var BIconSymmetryVertical=/*#__PURE__*/makeIcon('SymmetryVertical','');// eslint-disable-next-line\nexport var BIconTable=/*#__PURE__*/makeIcon('Table','');// eslint-disable-next-line\nexport var BIconTablet=/*#__PURE__*/makeIcon('Tablet','');// eslint-disable-next-line\nexport var BIconTabletFill=/*#__PURE__*/makeIcon('TabletFill','');// eslint-disable-next-line\nexport var BIconTabletLandscape=/*#__PURE__*/makeIcon('TabletLandscape','');// eslint-disable-next-line\nexport var BIconTabletLandscapeFill=/*#__PURE__*/makeIcon('TabletLandscapeFill','');// eslint-disable-next-line\nexport var BIconTag=/*#__PURE__*/makeIcon('Tag','');// eslint-disable-next-line\nexport var BIconTagFill=/*#__PURE__*/makeIcon('TagFill','');// eslint-disable-next-line\nexport var BIconTags=/*#__PURE__*/makeIcon('Tags','');// eslint-disable-next-line\nexport var BIconTagsFill=/*#__PURE__*/makeIcon('TagsFill','');// eslint-disable-next-line\nexport var BIconTelegram=/*#__PURE__*/makeIcon('Telegram','');// eslint-disable-next-line\nexport var BIconTelephone=/*#__PURE__*/makeIcon('Telephone','');// eslint-disable-next-line\nexport var BIconTelephoneFill=/*#__PURE__*/makeIcon('TelephoneFill','');// eslint-disable-next-line\nexport var BIconTelephoneForward=/*#__PURE__*/makeIcon('TelephoneForward','');// eslint-disable-next-line\nexport var BIconTelephoneForwardFill=/*#__PURE__*/makeIcon('TelephoneForwardFill','');// eslint-disable-next-line\nexport var BIconTelephoneInbound=/*#__PURE__*/makeIcon('TelephoneInbound','');// eslint-disable-next-line\nexport var BIconTelephoneInboundFill=/*#__PURE__*/makeIcon('TelephoneInboundFill','');// eslint-disable-next-line\nexport var BIconTelephoneMinus=/*#__PURE__*/makeIcon('TelephoneMinus','');// eslint-disable-next-line\nexport var BIconTelephoneMinusFill=/*#__PURE__*/makeIcon('TelephoneMinusFill','');// eslint-disable-next-line\nexport var BIconTelephoneOutbound=/*#__PURE__*/makeIcon('TelephoneOutbound','');// eslint-disable-next-line\nexport var BIconTelephoneOutboundFill=/*#__PURE__*/makeIcon('TelephoneOutboundFill','');// eslint-disable-next-line\nexport var BIconTelephonePlus=/*#__PURE__*/makeIcon('TelephonePlus','');// eslint-disable-next-line\nexport var BIconTelephonePlusFill=/*#__PURE__*/makeIcon('TelephonePlusFill','');// eslint-disable-next-line\nexport var BIconTelephoneX=/*#__PURE__*/makeIcon('TelephoneX','');// eslint-disable-next-line\nexport var BIconTelephoneXFill=/*#__PURE__*/makeIcon('TelephoneXFill','');// eslint-disable-next-line\nexport var BIconTerminal=/*#__PURE__*/makeIcon('Terminal','');// eslint-disable-next-line\nexport var BIconTerminalFill=/*#__PURE__*/makeIcon('TerminalFill','');// eslint-disable-next-line\nexport var BIconTextCenter=/*#__PURE__*/makeIcon('TextCenter','');// eslint-disable-next-line\nexport var BIconTextIndentLeft=/*#__PURE__*/makeIcon('TextIndentLeft','');// eslint-disable-next-line\nexport var BIconTextIndentRight=/*#__PURE__*/makeIcon('TextIndentRight','');// eslint-disable-next-line\nexport var BIconTextLeft=/*#__PURE__*/makeIcon('TextLeft','');// eslint-disable-next-line\nexport var BIconTextParagraph=/*#__PURE__*/makeIcon('TextParagraph','');// eslint-disable-next-line\nexport var BIconTextRight=/*#__PURE__*/makeIcon('TextRight','');// eslint-disable-next-line\nexport var BIconTextarea=/*#__PURE__*/makeIcon('Textarea','');// eslint-disable-next-line\nexport var BIconTextareaResize=/*#__PURE__*/makeIcon('TextareaResize','');// eslint-disable-next-line\nexport var BIconTextareaT=/*#__PURE__*/makeIcon('TextareaT','');// eslint-disable-next-line\nexport var BIconThermometer=/*#__PURE__*/makeIcon('Thermometer','');// eslint-disable-next-line\nexport var BIconThermometerHalf=/*#__PURE__*/makeIcon('ThermometerHalf','');// eslint-disable-next-line\nexport var BIconThermometerHigh=/*#__PURE__*/makeIcon('ThermometerHigh','');// eslint-disable-next-line\nexport var BIconThermometerLow=/*#__PURE__*/makeIcon('ThermometerLow','');// eslint-disable-next-line\nexport var BIconThermometerSnow=/*#__PURE__*/makeIcon('ThermometerSnow','');// eslint-disable-next-line\nexport var BIconThermometerSun=/*#__PURE__*/makeIcon('ThermometerSun','');// eslint-disable-next-line\nexport var BIconThreeDots=/*#__PURE__*/makeIcon('ThreeDots','');// eslint-disable-next-line\nexport var BIconThreeDotsVertical=/*#__PURE__*/makeIcon('ThreeDotsVertical','');// eslint-disable-next-line\nexport var BIconToggle2Off=/*#__PURE__*/makeIcon('Toggle2Off','');// eslint-disable-next-line\nexport var BIconToggle2On=/*#__PURE__*/makeIcon('Toggle2On','');// eslint-disable-next-line\nexport var BIconToggleOff=/*#__PURE__*/makeIcon('ToggleOff','');// eslint-disable-next-line\nexport var BIconToggleOn=/*#__PURE__*/makeIcon('ToggleOn','');// eslint-disable-next-line\nexport var BIconToggles=/*#__PURE__*/makeIcon('Toggles','');// eslint-disable-next-line\nexport var BIconToggles2=/*#__PURE__*/makeIcon('Toggles2','');// eslint-disable-next-line\nexport var BIconTools=/*#__PURE__*/makeIcon('Tools','');// eslint-disable-next-line\nexport var BIconTornado=/*#__PURE__*/makeIcon('Tornado','');// eslint-disable-next-line\nexport var BIconTranslate=/*#__PURE__*/makeIcon('Translate','');// eslint-disable-next-line\nexport var BIconTrash=/*#__PURE__*/makeIcon('Trash','');// eslint-disable-next-line\nexport var BIconTrash2=/*#__PURE__*/makeIcon('Trash2','');// eslint-disable-next-line\nexport var BIconTrash2Fill=/*#__PURE__*/makeIcon('Trash2Fill','');// eslint-disable-next-line\nexport var BIconTrashFill=/*#__PURE__*/makeIcon('TrashFill','');// eslint-disable-next-line\nexport var BIconTree=/*#__PURE__*/makeIcon('Tree','');// eslint-disable-next-line\nexport var BIconTreeFill=/*#__PURE__*/makeIcon('TreeFill','');// eslint-disable-next-line\nexport var BIconTriangle=/*#__PURE__*/makeIcon('Triangle','');// eslint-disable-next-line\nexport var BIconTriangleFill=/*#__PURE__*/makeIcon('TriangleFill','');// eslint-disable-next-line\nexport var BIconTriangleHalf=/*#__PURE__*/makeIcon('TriangleHalf','');// eslint-disable-next-line\nexport var BIconTrophy=/*#__PURE__*/makeIcon('Trophy','');// eslint-disable-next-line\nexport var BIconTrophyFill=/*#__PURE__*/makeIcon('TrophyFill','');// eslint-disable-next-line\nexport var BIconTropicalStorm=/*#__PURE__*/makeIcon('TropicalStorm','');// eslint-disable-next-line\nexport var BIconTruck=/*#__PURE__*/makeIcon('Truck','');// eslint-disable-next-line\nexport var BIconTruckFlatbed=/*#__PURE__*/makeIcon('TruckFlatbed','');// eslint-disable-next-line\nexport var BIconTsunami=/*#__PURE__*/makeIcon('Tsunami','');// eslint-disable-next-line\nexport var BIconTv=/*#__PURE__*/makeIcon('Tv','');// eslint-disable-next-line\nexport var BIconTvFill=/*#__PURE__*/makeIcon('TvFill','');// eslint-disable-next-line\nexport var BIconTwitch=/*#__PURE__*/makeIcon('Twitch','');// eslint-disable-next-line\nexport var BIconTwitter=/*#__PURE__*/makeIcon('Twitter','');// eslint-disable-next-line\nexport var BIconType=/*#__PURE__*/makeIcon('Type','');// eslint-disable-next-line\nexport var BIconTypeBold=/*#__PURE__*/makeIcon('TypeBold','');// eslint-disable-next-line\nexport var BIconTypeH1=/*#__PURE__*/makeIcon('TypeH1','');// eslint-disable-next-line\nexport var BIconTypeH2=/*#__PURE__*/makeIcon('TypeH2','');// eslint-disable-next-line\nexport var BIconTypeH3=/*#__PURE__*/makeIcon('TypeH3','');// eslint-disable-next-line\nexport var BIconTypeItalic=/*#__PURE__*/makeIcon('TypeItalic','');// eslint-disable-next-line\nexport var BIconTypeStrikethrough=/*#__PURE__*/makeIcon('TypeStrikethrough','');// eslint-disable-next-line\nexport var BIconTypeUnderline=/*#__PURE__*/makeIcon('TypeUnderline','');// eslint-disable-next-line\nexport var BIconUiChecks=/*#__PURE__*/makeIcon('UiChecks','');// eslint-disable-next-line\nexport var BIconUiChecksGrid=/*#__PURE__*/makeIcon('UiChecksGrid','');// eslint-disable-next-line\nexport var BIconUiRadios=/*#__PURE__*/makeIcon('UiRadios','');// eslint-disable-next-line\nexport var BIconUiRadiosGrid=/*#__PURE__*/makeIcon('UiRadiosGrid','');// eslint-disable-next-line\nexport var BIconUmbrella=/*#__PURE__*/makeIcon('Umbrella','');// eslint-disable-next-line\nexport var BIconUmbrellaFill=/*#__PURE__*/makeIcon('UmbrellaFill','');// eslint-disable-next-line\nexport var BIconUnion=/*#__PURE__*/makeIcon('Union','');// eslint-disable-next-line\nexport var BIconUnlock=/*#__PURE__*/makeIcon('Unlock','');// eslint-disable-next-line\nexport var BIconUnlockFill=/*#__PURE__*/makeIcon('UnlockFill','');// eslint-disable-next-line\nexport var BIconUpc=/*#__PURE__*/makeIcon('Upc','');// eslint-disable-next-line\nexport var BIconUpcScan=/*#__PURE__*/makeIcon('UpcScan','');// eslint-disable-next-line\nexport var BIconUpload=/*#__PURE__*/makeIcon('Upload','');// eslint-disable-next-line\nexport var BIconVectorPen=/*#__PURE__*/makeIcon('VectorPen','');// eslint-disable-next-line\nexport var BIconViewList=/*#__PURE__*/makeIcon('ViewList','');// eslint-disable-next-line\nexport var BIconViewStacked=/*#__PURE__*/makeIcon('ViewStacked','');// eslint-disable-next-line\nexport var BIconVinyl=/*#__PURE__*/makeIcon('Vinyl','');// eslint-disable-next-line\nexport var BIconVinylFill=/*#__PURE__*/makeIcon('VinylFill','');// eslint-disable-next-line\nexport var BIconVoicemail=/*#__PURE__*/makeIcon('Voicemail','');// eslint-disable-next-line\nexport var BIconVolumeDown=/*#__PURE__*/makeIcon('VolumeDown','');// eslint-disable-next-line\nexport var BIconVolumeDownFill=/*#__PURE__*/makeIcon('VolumeDownFill','');// eslint-disable-next-line\nexport var BIconVolumeMute=/*#__PURE__*/makeIcon('VolumeMute','');// eslint-disable-next-line\nexport var BIconVolumeMuteFill=/*#__PURE__*/makeIcon('VolumeMuteFill','');// eslint-disable-next-line\nexport var BIconVolumeOff=/*#__PURE__*/makeIcon('VolumeOff','');// eslint-disable-next-line\nexport var BIconVolumeOffFill=/*#__PURE__*/makeIcon('VolumeOffFill','');// eslint-disable-next-line\nexport var BIconVolumeUp=/*#__PURE__*/makeIcon('VolumeUp','');// eslint-disable-next-line\nexport var BIconVolumeUpFill=/*#__PURE__*/makeIcon('VolumeUpFill','');// eslint-disable-next-line\nexport var BIconVr=/*#__PURE__*/makeIcon('Vr','');// eslint-disable-next-line\nexport var BIconWallet=/*#__PURE__*/makeIcon('Wallet','');// eslint-disable-next-line\nexport var BIconWallet2=/*#__PURE__*/makeIcon('Wallet2','');// eslint-disable-next-line\nexport var BIconWalletFill=/*#__PURE__*/makeIcon('WalletFill','');// eslint-disable-next-line\nexport var BIconWatch=/*#__PURE__*/makeIcon('Watch','');// eslint-disable-next-line\nexport var BIconWater=/*#__PURE__*/makeIcon('Water','');// eslint-disable-next-line\nexport var BIconWhatsapp=/*#__PURE__*/makeIcon('Whatsapp','');// eslint-disable-next-line\nexport var BIconWifi=/*#__PURE__*/makeIcon('Wifi','');// eslint-disable-next-line\nexport var BIconWifi1=/*#__PURE__*/makeIcon('Wifi1','');// eslint-disable-next-line\nexport var BIconWifi2=/*#__PURE__*/makeIcon('Wifi2','');// eslint-disable-next-line\nexport var BIconWifiOff=/*#__PURE__*/makeIcon('WifiOff','');// eslint-disable-next-line\nexport var BIconWind=/*#__PURE__*/makeIcon('Wind','');// eslint-disable-next-line\nexport var BIconWindow=/*#__PURE__*/makeIcon('Window','');// eslint-disable-next-line\nexport var BIconWindowDock=/*#__PURE__*/makeIcon('WindowDock','');// eslint-disable-next-line\nexport var BIconWindowSidebar=/*#__PURE__*/makeIcon('WindowSidebar','');// eslint-disable-next-line\nexport var BIconWrench=/*#__PURE__*/makeIcon('Wrench','');// eslint-disable-next-line\nexport var BIconX=/*#__PURE__*/makeIcon('X','');// eslint-disable-next-line\nexport var BIconXCircle=/*#__PURE__*/makeIcon('XCircle','');// eslint-disable-next-line\nexport var BIconXCircleFill=/*#__PURE__*/makeIcon('XCircleFill','');// eslint-disable-next-line\nexport var BIconXDiamond=/*#__PURE__*/makeIcon('XDiamond','');// eslint-disable-next-line\nexport var BIconXDiamondFill=/*#__PURE__*/makeIcon('XDiamondFill','');// eslint-disable-next-line\nexport var BIconXLg=/*#__PURE__*/makeIcon('XLg','');// eslint-disable-next-line\nexport var BIconXOctagon=/*#__PURE__*/makeIcon('XOctagon','');// eslint-disable-next-line\nexport var BIconXOctagonFill=/*#__PURE__*/makeIcon('XOctagonFill','');// eslint-disable-next-line\nexport var BIconXSquare=/*#__PURE__*/makeIcon('XSquare','');// eslint-disable-next-line\nexport var BIconXSquareFill=/*#__PURE__*/makeIcon('XSquareFill','');// eslint-disable-next-line\nexport var BIconYoutube=/*#__PURE__*/makeIcon('Youtube','');// eslint-disable-next-line\nexport var BIconZoomIn=/*#__PURE__*/makeIcon('ZoomIn','');// eslint-disable-next-line\nexport var BIconZoomOut=/*#__PURE__*/makeIcon('ZoomOut','');// --- END AUTO-GENERATED FILE ---","function 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\nimport { Vue, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return Vue.component(iconName);\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components && components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nvar iconProps = omit(BVIconBaseProps, ['content']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, iconProps), {}, {\n icon: makeProp(PROP_TYPE_STRING)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/Vue.extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: pluckProps(iconProps, props)\n }));\n }\n});","export var CODE_BACKSPACE = 8;\nexport var CODE_BREAK = 19;\nexport var CODE_DELETE = 46;\nexport var CODE_DOWN = 40;\nexport var CODE_END = 35;\nexport var CODE_ENTER = 13;\nexport var CODE_ESC = 27;\nexport var CODE_HOME = 36;\nexport var CODE_LEFT = 37;\nexport var CODE_PAGEDOWN = 34;\nexport var CODE_PAGEUP = 33;\nexport var CODE_RIGHT = 39;\nexport var CODE_SPACE = 32;\nexport var CODE_UP = 38;","import { hasOwnProperty, keys } from './object';\nimport { isArray, isDate, isObject } from './inspect'; // Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\n\nvar compareArrays = function compareArrays(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n var equal = true;\n\n for (var i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n\n return equal;\n};\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\n\n\nexport var looseEqual = function looseEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n var aValidType = isDate(a);\n var bValidType = isDate(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n\n aValidType = isArray(a);\n bValidType = isArray(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? compareArrays(a, b) : false;\n }\n\n aValidType = isObject(a);\n bValidType = isObject(b);\n\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n\n var aKeysCount = keys(a).length;\n var bKeysCount = keys(b).length;\n\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n\n for (var key in a) {\n var aHasKey = hasOwnProperty(a, key);\n var bHasKey = hasOwnProperty(b, key);\n\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n\n return String(a) === String(b);\n};","function _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\nimport { Vue } from '../vue';\nimport { cloneDeep } from './clone-deep';\nimport { looseEqual } from './loose-equal';\nimport { hasOwnProperty, keys } from './object';\n\nvar isEmpty = function isEmpty(value) {\n return !value || keys(value).length === 0;\n};\n\nexport var makePropWatcher = function makePropWatcher(propName) {\n return {\n handler: function handler(newValue, oldValue) {\n if (looseEqual(newValue, oldValue)) {\n return;\n }\n\n if (isEmpty(newValue) || isEmpty(oldValue)) {\n this[propName] = cloneDeep(newValue);\n return;\n }\n\n for (var key in oldValue) {\n if (!hasOwnProperty(newValue, key)) {\n this.$delete(this.$data[propName], key);\n }\n }\n\n for (var _key in newValue) {\n this.$set(this.$data[propName], _key, newValue[_key]);\n }\n }\n };\n};\nexport var makePropCacheMixin = function makePropCacheMixin(propName, proxyPropName) {\n return Vue.extend({\n data: function data() {\n return _defineProperty({}, proxyPropName, cloneDeep(this[propName]));\n },\n watch: _defineProperty({}, propName, makePropWatcher(proxyPropName))\n });\n};","import { makePropCacheMixin } from '../utils/cache';\nexport var attrsMixin = makePropCacheMixin('$attrs', 'bvAttrs');","import { Vue } from '../vue';\nimport { arrayIncludes } from '../utils/array';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_rootListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnRootMixin = Vue.extend({\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n // Unregister all registered listeners\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffRoot(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerRootListener: function registerRootListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterRootListener: function unregisterRootListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n\n /**\n * Safely register event listeners on the root Vue node\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on `$root` and is destroyed,\n * this orphans a callback because the node is gone, but the `$root`\n * does not clear the callback\n *\n * When registering a `$root` listener, it also registers the listener\n * to be removed in the component's `beforeDestroy()` hook\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOnRoot: function listenOnRoot(event, callback) {\n if (this.$root) {\n this.$root.$on(event, callback);\n this.registerRootListener(event, callback);\n }\n },\n\n /**\n * Safely register a `$once()` event listener on the root Vue node\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on `$root` and is destroyed,\n * this orphans a callback because the node is gone, but the `$root`\n * does not clear the callback\n *\n * When registering a `$root` listener, it also registers the listener\n * to be removed in the component's `beforeDestroy()` hook\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOnRootOnce: function listenOnRootOnce(event, callback) {\n var _this2 = this;\n\n if (this.$root) {\n var _callback = function _callback() {\n _this2.unregisterRootListener(_callback); // eslint-disable-next-line node/no-callback-literal\n\n\n callback.apply(void 0, arguments);\n };\n\n this.$root.$once(event, _callback);\n this.registerRootListener(event, _callback);\n }\n },\n\n /**\n * Safely unregister event listeners from the root Vue node\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOffRoot: function listenOffRoot(event, callback) {\n this.unregisterRootListener(event, callback);\n\n if (this.$root) {\n this.$root.$off(event, callback);\n }\n },\n\n /**\n * Convenience method for calling `vm.$emit()` on `$root`\n *\n * @param {string} event\n * @param {*} args\n */\n emitOnRoot: function emitOnRoot(event) {\n if (this.$root) {\n var _this$$root;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$$root = this.$root).$emit.apply(_this$$root, [event].concat(args));\n }\n }\n }\n});","import { makePropCacheMixin } from '../utils/cache';\nexport var listenersMixin = makePropCacheMixin('$listeners', 'bvListeners');","function _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 _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 _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 _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 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\nimport { Vue } from '../../vue';\nimport { NAME_LINK } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { attemptBlur, attemptFocus, isTag } from '../../utils/dom';\nimport { getRootEventName, stopEvent } from '../../utils/events';\nimport { isBoolean, isEvent, isFunction, isUndefined } from '../../utils/inspect';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { computeHref, computeRel, computeTag, isRouterLink as _isRouterLink } from '../../utils/router';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_CLICKED = getRootEventName(NAME_LINK, 'clicked'); // --- Props ---\n// `` specific props\n\nexport var routerLinkProps = {\n activeClass: makeProp(PROP_TYPE_STRING),\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n event: makeProp(PROP_TYPE_ARRAY_STRING),\n exact: makeProp(PROP_TYPE_BOOLEAN, false),\n exactActiveClass: makeProp(PROP_TYPE_STRING),\n exactPath: makeProp(PROP_TYPE_BOOLEAN, false),\n exactPathActiveClass: makeProp(PROP_TYPE_STRING),\n replace: makeProp(PROP_TYPE_BOOLEAN, false),\n routerTag: makeProp(PROP_TYPE_STRING),\n to: makeProp(PROP_TYPE_OBJECT_STRING)\n}; // `` specific props\n\nexport var nuxtLinkProps = {\n noPrefetch: makeProp(PROP_TYPE_BOOLEAN, false),\n // Must be `null` to fall back to the value defined in the\n // `nuxt.config.js` configuration file for `router.prefetchLinks`\n // We convert `null` to `undefined`, so that Nuxt.js will use the\n // compiled default\n // Vue treats `undefined` as default of `false` for Boolean props,\n // so we must set it as `null` here to be a true tri-state prop\n prefetch: makeProp(PROP_TYPE_BOOLEAN, null)\n}; // All `` props\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, nuxtLinkProps), routerLinkProps), {}, {\n active: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n href: makeProp(PROP_TYPE_STRING),\n // Must be `null` if no value provided\n rel: makeProp(PROP_TYPE_STRING, null),\n // To support 3rd party router links based on `` (i.e. `g-link` for Gridsome)\n // Default is to auto choose between `` and ``\n // Gridsome doesn't provide a mechanism to auto detect and has caveats\n // such as not supporting FQDN URLs or hash only URLs\n routerComponentName: makeProp(PROP_TYPE_STRING),\n target: makeProp(PROP_TYPE_STRING, '_self')\n})), NAME_LINK); // --- Main component ---\n// @vue/component\n\nexport var BLink = /*#__PURE__*/Vue.extend({\n name: NAME_LINK,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n computed: {\n computedTag: function computedTag() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var to = this.to,\n disabled = this.disabled,\n routerComponentName = this.routerComponentName;\n return computeTag({\n to: to,\n disabled: disabled,\n routerComponentName: routerComponentName\n }, this);\n },\n isRouterLink: function isRouterLink() {\n return _isRouterLink(this.computedTag);\n },\n computedRel: function computedRel() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var target = this.target,\n rel = this.rel;\n return computeRel({\n target: target,\n rel: rel\n });\n },\n computedHref: function computedHref() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var to = this.to,\n href = this.href;\n return computeHref({\n to: to,\n href: href\n }, this.computedTag);\n },\n computedProps: function computedProps() {\n var event = this.event,\n prefetch = this.prefetch,\n routerTag = this.routerTag;\n return this.isRouterLink ? _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pluckProps(omit(_objectSpread(_objectSpread({}, routerLinkProps), nuxtLinkProps), ['event', 'prefetch', 'routerTag']), this)), event ? {\n event: event\n } : {}), isBoolean(prefetch) ? {\n prefetch: prefetch\n } : {}), routerTag ? {\n tag: routerTag\n } : {}) : {};\n },\n computedAttrs: function computedAttrs() {\n var bvAttrs = this.bvAttrs,\n href = this.computedHref,\n rel = this.computedRel,\n disabled = this.disabled,\n target = this.target,\n routerTag = this.routerTag,\n isRouterLink = this.isRouterLink;\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, bvAttrs), href ? {\n href: href\n } : {}), isRouterLink && routerTag && !isTag(routerTag, 'a') ? {} : {\n rel: rel,\n target: target\n }), {}, {\n tabindex: disabled ? '-1' : isUndefined(bvAttrs.tabindex) ? null : bvAttrs.tabindex,\n 'aria-disabled': disabled ? 'true' : null\n });\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n // We want to overwrite any click handler since our callback\n // will invoke the user supplied handler(s) if `!this.disabled`\n click: this.onClick\n });\n }\n },\n methods: {\n onClick: function onClick(event) {\n var _arguments = arguments;\n var eventIsEvent = isEvent(event);\n var isRouterLink = this.isRouterLink;\n var suppliedHandler = this.bvListeners.click;\n\n if (eventIsEvent && this.disabled) {\n // Stop event from bubbling up\n // Kill the event loop attached to this specific `EventTarget`\n // Needed to prevent `vue-router` for doing its thing\n stopEvent(event, {\n immediatePropagation: true\n });\n } else {\n // Router links do not emit instance `click` events, so we\n // add in an `$emit('click', event)` on its Vue instance\n\n /* istanbul ignore next: difficult to test, but we know it works */\n if (isRouterLink && event.currentTarget.__vue__) {\n event.currentTarget.__vue__.$emit(EVENT_NAME_CLICK, event);\n } // Call the suppliedHandler(s), if any provided\n\n\n concat(suppliedHandler).filter(function (h) {\n return isFunction(h);\n }).forEach(function (handler) {\n handler.apply(void 0, _toConsumableArray(_arguments));\n }); // Emit the global `$root` click event\n\n this.emitOnRoot(ROOT_EVENT_NAME_CLICKED, event); // TODO: Remove deprecated 'clicked::link' event with next major release\n\n this.emitOnRoot('clicked::link', event);\n } // Stop scroll-to-top behavior or navigation on\n // regular links when href is just '#'\n\n\n if (eventIsEvent && !isRouterLink && this.computedHref === '#') {\n stopEvent(event, {\n propagation: false\n });\n }\n },\n focus: function focus() {\n attemptFocus(this.$el);\n },\n blur: function blur() {\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n var active = this.active,\n disabled = this.disabled;\n return h(this.computedTag, _defineProperty({\n class: {\n active: active,\n disabled: disabled\n },\n attrs: this.computedAttrs,\n props: this.computedProps\n }, this.isRouterLink ? 'nativeOn' : 'on', this.computedListeners), this.normalizeSlot());\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BUTTON } from '../../constants/components';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { addClass, isTag, removeClass } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { isBoolean, isEvent, isFunction } from '../../utils/inspect';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink as isLinkStrict } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state: `true`, `false` or `null`\n // => On, off, not a toggle\n pressed: makeProp(PROP_TYPE_BOOLEAN, null),\n size: makeProp(PROP_TYPE_STRING),\n squared: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'button'),\n type: makeProp(PROP_TYPE_STRING, 'button'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BUTTON); // --- Helper methods ---\n// Focus handler for toggle buttons\n// Needs class of 'focus' when focused\n\nvar handleFocus = function handleFocus(event) {\n if (event.type === 'focusin') {\n addClass(event.target, 'focus');\n } else if (event.type === 'focusout') {\n removeClass(event.target, 'focus');\n }\n}; // Is the requested button a link?\n// If tag prop is set to `a`, we use a to get proper disabled handling\n\n\nvar isLink = function isLink(props) {\n return isLinkStrict(props) || isTag(props.tag, 'a');\n}; // Is the button to be a toggle button?\n\n\nvar isToggle = function isToggle(props) {\n return isBoolean(props.pressed);\n}; // Is the button \"really\" a button?\n\n\nvar isButton = function isButton(props) {\n return !(isLink(props) || props.tag && !isTag(props.tag, 'button'));\n}; // Is the requested tag not a button or link?\n\n\nvar isNonStandardTag = function isNonStandardTag(props) {\n return !isLink(props) && !isButton(props);\n}; // Compute required classes (non static classes)\n\n\nvar computeClass = function computeClass(props) {\n var _ref;\n\n return [\"btn-\".concat(props.variant || 'secondary'), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(props.size), props.size), _defineProperty(_ref, 'btn-block', props.block), _defineProperty(_ref, 'rounded-pill', props.pill), _defineProperty(_ref, 'rounded-0', props.squared && !props.pill), _defineProperty(_ref, \"disabled\", props.disabled), _defineProperty(_ref, \"active\", props.pressed), _ref)];\n}; // Compute the link props to pass to b-link (if required)\n\n\nvar computeLinkProps = function computeLinkProps(props) {\n return isLink(props) ? pluckProps(linkProps, props) : {};\n}; // Compute the attributes for a button\n\n\nvar computeAttrs = function computeAttrs(props, data) {\n var button = isButton(props);\n var link = isLink(props);\n var toggle = isToggle(props);\n var nonStandardTag = isNonStandardTag(props);\n var hashLink = link && props.href === '#';\n var role = data.attrs && data.attrs.role ? data.attrs.role : null;\n var tabindex = data.attrs ? data.attrs.tabindex : null;\n\n if (nonStandardTag || hashLink) {\n tabindex = '0';\n }\n\n return {\n // Type only used for \"real\" buttons\n type: button && !link ? props.type : null,\n // Disabled only set on \"real\" buttons\n disabled: button ? props.disabled : null,\n // We add a role of button when the tag is not a link or button for ARIA\n // Don't bork any role provided in `data.attrs` when `isLink` or `isButton`\n // Except when link has `href` of `#`\n role: nonStandardTag || hashLink ? 'button' : role,\n // We set the `aria-disabled` state for non-standard tags\n 'aria-disabled': nonStandardTag ? String(props.disabled) : null,\n // For toggles, we need to set the pressed state for ARIA\n 'aria-pressed': toggle ? String(props.pressed) : null,\n // `autocomplete=\"off\"` is needed in toggle mode to prevent some browsers\n // from remembering the previous setting when using the back button\n autocomplete: toggle ? 'off' : null,\n // `tabindex` is used when the component is not a button\n // Links are tabbable, but don't allow disabled, while non buttons or links\n // are not tabbable, so we mimic that functionality by disabling tabbing\n // when disabled, and adding a `tabindex=\"0\"` to non buttons or non links\n tabindex: props.disabled && !button ? '-1' : tabindex\n };\n}; // --- Main component ---\n// @vue/component\n\n\nexport var BButton = /*#__PURE__*/Vue.extend({\n name: NAME_BUTTON,\n functional: true,\n props: props,\n render: function render(h, _ref2) {\n var props = _ref2.props,\n data = _ref2.data,\n listeners = _ref2.listeners,\n children = _ref2.children;\n var toggle = isToggle(props);\n var link = isLink(props);\n var nonStandardTag = isNonStandardTag(props);\n var hashLink = link && props.href === '#';\n var on = {\n keydown: function keydown(event) {\n // When the link is a `href=\"#\"` or a non-standard tag (has `role=\"button\"`),\n // we add a keydown handlers for CODE_SPACE/CODE_ENTER\n\n /* istanbul ignore next */\n if (props.disabled || !(nonStandardTag || hashLink)) {\n return;\n }\n\n var keyCode = event.keyCode; // Add CODE_SPACE handler for `href=\"#\"` and CODE_ENTER handler for non-standard tags\n\n if (keyCode === CODE_SPACE || keyCode === CODE_ENTER && nonStandardTag) {\n var target = event.currentTarget || event.target;\n stopEvent(event, {\n propagation: false\n });\n target.click();\n }\n },\n click: function click(event) {\n /* istanbul ignore if: blink/button disabled should handle this */\n if (props.disabled && isEvent(event)) {\n stopEvent(event);\n } else if (toggle && listeners && listeners['update:pressed']) {\n // Send `.sync` updates to any \"pressed\" prop (if `.sync` listeners)\n // `concat()` will normalize the value to an array without\n // double wrapping an array value in an array\n concat(listeners['update:pressed']).forEach(function (fn) {\n if (isFunction(fn)) {\n fn(!props.pressed);\n }\n });\n }\n }\n };\n\n if (toggle) {\n on.focusin = handleFocus;\n on.focusout = handleFocus;\n }\n\n var componentData = {\n staticClass: 'btn',\n class: computeClass(props),\n props: computeLinkProps(props),\n attrs: computeAttrs(props, data),\n on: on\n };\n return h(link ? BLink : props.tag, mergeData(data, componentData), children);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvAvatarGroup: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\n }\n});","import { Vue } from '../../vue';\nimport { NAME_AVATAR_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { mathMax, mathMin } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { computeSize } from './avatar'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n overlap: makeProp(PROP_TYPE_NUMBER_STRING, 0.3),\n // Child avatars will prefer this prop (if set) over their own\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n // Child avatars will always use this over their own size\n size: makeProp(PROP_TYPE_STRING),\n // Child avatars will prefer this prop (if set) over their own\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n // Child avatars will prefer this variant over their own\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_AVATAR_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BAvatarGroup = /*#__PURE__*/Vue.extend({\n name: NAME_AVATAR_GROUP,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvAvatarGroup: this\n };\n },\n props: props,\n computed: {\n computedSize: function computedSize() {\n return computeSize(this.size);\n },\n overlapScale: function overlapScale() {\n return mathMin(mathMax(toFloat(this.overlap, 0), 0), 1) / 2;\n },\n paddingStyle: function paddingStyle() {\n var value = this.computedSize;\n value = value ? \"calc(\".concat(value, \" * \").concat(this.overlapScale, \")\") : null;\n return value ? {\n paddingLeft: value,\n paddingRight: value\n } : {};\n }\n },\n render: function render(h) {\n var $inner = h('div', {\n staticClass: 'b-avatar-group-inner',\n style: this.paddingStyle\n }, this.normalizeSlot());\n return h(this.tag, {\n staticClass: 'b-avatar-group',\n attrs: {\n role: 'group'\n }\n }, [$inner]);\n }\n});","import { BAvatar } from './avatar';\nimport { BAvatarGroup } from './avatar-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar AvatarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAvatar: BAvatar,\n BAvatarGroup: BAvatarGroup\n }\n});\nexport { AvatarPlugin, BAvatar, BAvatarGroup };","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","import { BBadge } from './badge';\nimport { pluginFactory } from '../../utils/plugins';\nvar BadgePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BBadge: BBadge\n }\n});\nexport { BadgePlugin, BBadge };","import { RX_HTML_TAGS } from '../constants/regex'; // Removes anything that looks like an HTML tag from the supplied string\n\nexport var stripTags = function stripTags() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return String(text).replace(RX_HTML_TAGS, '');\n}; // Generate a `domProps` object for either `innerHTML`, `textContent` or an empty object\n\nexport var htmlOrText = function htmlOrText(innerHTML, textContent) {\n return innerHTML ? {\n innerHTML: innerHTML\n } : textContent ? {\n textContent: textContent\n } : {};\n};","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BREADCRUMB_LINK } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n ariaCurrent: makeProp(PROP_TYPE_STRING, 'location'),\n html: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING)\n})), NAME_BREADCRUMB_LINK); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumbLink = /*#__PURE__*/Vue.extend({\n name: NAME_BREADCRUMB_LINK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var suppliedProps = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = suppliedProps.active;\n var tag = active ? 'span' : BLink;\n var componentData = {\n attrs: {\n 'aria-current': active ? suppliedProps.ariaCurrent : null\n },\n props: pluckProps(props, suppliedProps)\n };\n\n if (!children) {\n componentData.domProps = htmlOrText(suppliedProps.html, suppliedProps.text);\n }\n\n return h(tag, mergeData(data, componentData), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_BREADCRUMB_ITEM } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BBreadcrumbLink, props as BBreadcrumbLinkProps } from './breadcrumb-link'; // --- Props ---\n\nexport var props = makePropsConfigurable(BBreadcrumbLinkProps, NAME_BREADCRUMB_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumbItem = /*#__PURE__*/Vue.extend({\n name: NAME_BREADCRUMB_ITEM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('li', mergeData(data, {\n staticClass: 'breadcrumb-item',\n class: {\n active: props.active\n }\n }), [h(BBreadcrumbLink, {\n props: props\n }, children)]);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BREADCRUMB } from '../../constants/components';\nimport { PROP_TYPE_ARRAY } from '../../constants/props';\nimport { isArray, isObject } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { BBreadcrumbItem } from './breadcrumb-item'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n items: makeProp(PROP_TYPE_ARRAY)\n}, NAME_BREADCRUMB); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumb = /*#__PURE__*/Vue.extend({\n name: NAME_BREADCRUMB,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var items = props.items; // Build child nodes from items, if given\n\n var childNodes = children;\n\n if (isArray(items)) {\n var activeDefined = false;\n childNodes = items.map(function (item, idx) {\n if (!isObject(item)) {\n item = {\n text: toString(item)\n };\n } // Copy the value here so we can normalize it\n\n\n var _item = item,\n active = _item.active;\n\n if (active) {\n activeDefined = true;\n } // Auto-detect active by position in list\n\n\n if (!active && !activeDefined) {\n active = idx + 1 === items.length;\n }\n\n return h(BBreadcrumbItem, {\n props: _objectSpread(_objectSpread({}, item), {}, {\n active: active\n })\n });\n });\n }\n\n return h('ol', mergeData(data, {\n staticClass: 'breadcrumb'\n }), childNodes);\n }\n});","import { BBreadcrumb } from './breadcrumb';\nimport { BBreadcrumbItem } from './breadcrumb-item';\nimport { BBreadcrumbLink } from './breadcrumb-link';\nimport { pluginFactory } from '../../utils/plugins';\nvar BreadcrumbPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BBreadcrumb: BBreadcrumb,\n BBreadcrumbItem: BBreadcrumbItem,\n BBreadcrumbLink: BBreadcrumbLink\n }\n});\nexport { BreadcrumbPlugin, BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink };","import { BButton } from './button';\nimport { BButtonClose } from './button-close';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButton: BButton,\n BBtn: BButton,\n BButtonClose: BButtonClose,\n BBtnClose: BButtonClose\n }\n});\nexport { ButtonPlugin, BButton, BButtonClose };","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BUTTON_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as buttonProps } from '../button/button'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(buttonProps, ['size'])), {}, {\n ariaRole: makeProp(PROP_TYPE_STRING, 'group'),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_BUTTON_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BButtonGroup = /*#__PURE__*/Vue.extend({\n name: NAME_BUTTON_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'btn-group': !props.vertical,\n 'btn-group-vertical': props.vertical\n }, \"btn-group-\".concat(props.size), props.size),\n attrs: {\n role: props.ariaRole\n }\n }), children);\n }\n});","import { BButtonGroup } from './button-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonGroupPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButtonGroup: BButtonGroup,\n BBtnGroup: BButtonGroup\n }\n});\nexport { ButtonGroupPlugin, BButtonGroup };","import { Vue } from '../../vue';\nimport { NAME_BUTTON_TOOLBAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP } from '../../constants/key-codes';\nimport { attemptFocus, contains, isVisible, selectAll } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar ITEM_SELECTOR = ['.btn:not(.disabled):not([disabled]):not(.dropdown-item)', '.form-control:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'input[type=\"checkbox\"]:not(.disabled)', 'input[type=\"radio\"]:not(.disabled)'].join(','); // --- Props ---\n\nexport var props = makePropsConfigurable({\n justify: makeProp(PROP_TYPE_BOOLEAN, false),\n keyNav: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_BUTTON_TOOLBAR); // --- Main component ---\n// @vue/component\n\nexport var BButtonToolbar = /*#__PURE__*/Vue.extend({\n name: NAME_BUTTON_TOOLBAR,\n mixins: [normalizeSlotMixin],\n props: props,\n mounted: function mounted() {\n // Pre-set the tabindexes if the markup does not include\n // `tabindex=\"-1\"` on the toolbar items\n if (this.keyNav) {\n this.getItems();\n }\n },\n methods: {\n getItems: function getItems() {\n var items = selectAll(ITEM_SELECTOR, this.$el); // Ensure `tabindex=\"-1\"` is set on every item\n\n items.forEach(function (item) {\n item.tabIndex = -1;\n });\n return items.filter(function (el) {\n return isVisible(el);\n });\n },\n focusFirst: function focusFirst() {\n var items = this.getItems();\n attemptFocus(items[0]);\n },\n focusPrev: function focusPrev(event) {\n var items = this.getItems();\n var index = items.indexOf(event.target);\n\n if (index > -1) {\n items = items.slice(0, index).reverse();\n attemptFocus(items[0]);\n }\n },\n focusNext: function focusNext(event) {\n var items = this.getItems();\n var index = items.indexOf(event.target);\n\n if (index > -1) {\n items = items.slice(index + 1);\n attemptFocus(items[0]);\n }\n },\n focusLast: function focusLast() {\n var items = this.getItems().reverse();\n attemptFocus(items[0]);\n },\n onFocusin: function onFocusin(event) {\n var $el = this.$el;\n\n if (event.target === $el && !contains($el, event.relatedTarget)) {\n stopEvent(event);\n this.focusFirst(event);\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (keyCode === CODE_UP || keyCode === CODE_LEFT) {\n stopEvent(event);\n shiftKey ? this.focusFirst(event) : this.focusPrev(event);\n } else if (keyCode === CODE_DOWN || keyCode === CODE_RIGHT) {\n stopEvent(event);\n shiftKey ? this.focusLast(event) : this.focusNext(event);\n }\n }\n },\n render: function render(h) {\n var keyNav = this.keyNav;\n return h('div', {\n staticClass: 'btn-toolbar',\n class: {\n 'justify-content-between': this.justify\n },\n attrs: {\n role: 'toolbar',\n tabindex: keyNav ? '0' : null\n },\n on: keyNav ? {\n focusin: this.onFocusin,\n keydown: this.onKeydown\n } : {}\n }, [this.normalizeSlot()]);\n }\n});","import { BButtonToolbar } from './button-toolbar';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonToolbarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButtonToolbar: BButtonToolbar,\n BBtnToolbar: BButtonToolbar\n }\n});\nexport { ButtonToolbarPlugin, BButtonToolbar };","export var CALENDAR_GREGORY = 'gregory';\nexport var CALENDAR_LONG = 'long';\nexport var CALENDAR_NARROW = 'narrow';\nexport var CALENDAR_SHORT = 'short';\nexport var DATE_FORMAT_2_DIGIT = '2-digit';\nexport var DATE_FORMAT_NUMERIC = 'numeric';","function _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 _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n// Date utility functions\nimport { CALENDAR_GREGORY } from '../constants/date';\nimport { RX_DATE, RX_DATE_SPLIT } from '../constants/regex';\nimport { concat } from './array';\nimport { identity } from './identity';\nimport { isDate, isString } from './inspect';\nimport { toInteger } from './number'; // --- Date utility methods ---\n// Create or clone a date (`new Date(...)` shortcut)\n\nexport var createDate = function createDate() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(Date, args);\n}; // Parse a date sting, or Date object, into a Date object (with no time information)\n\nexport var parseYMD = function parseYMD(date) {\n if (isString(date) && RX_DATE.test(date.trim())) {\n var _date$split$map = date.split(RX_DATE_SPLIT).map(function (v) {\n return toInteger(v, 1);\n }),\n _date$split$map2 = _slicedToArray(_date$split$map, 3),\n year = _date$split$map2[0],\n month = _date$split$map2[1],\n day = _date$split$map2[2];\n\n return createDate(year, month - 1, day);\n } else if (isDate(date)) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n return null;\n}; // Format a date object as `YYYY-MM-DD` format\n\nexport var formatYMD = function formatYMD(date) {\n date = parseYMD(date);\n\n if (!date) {\n return null;\n }\n\n var year = date.getFullYear();\n var month = \"0\".concat(date.getMonth() + 1).slice(-2);\n var day = \"0\".concat(date.getDate()).slice(-2);\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n}; // Given a locale (or locales), resolve the browser available locale\n\nexport var resolveLocale = function resolveLocale(locales)\n/* istanbul ignore next */\n{\n var calendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_GREGORY;\n locales = concat(locales).filter(identity);\n var fmt = new Intl.DateTimeFormat(locales, {\n calendar: calendar\n });\n return fmt.resolvedOptions().locale;\n}; // Create a `Intl.DateTimeFormat` formatter function\n\nexport var createDateFormatter = function createDateFormatter(locale, options)\n/* istanbul ignore next */\n{\n var dtf = new Intl.DateTimeFormat(locale, options);\n return dtf.format;\n}; // Determine if two dates are the same date (ignoring time portion)\n\nexport var datesEqual = function datesEqual(date1, date2) {\n // Returns true of the date portion of two date objects are equal\n // We don't compare the time portion\n return formatYMD(date1) === formatYMD(date2);\n}; // --- Date \"math\" utility methods (for BCalendar component mainly) ---\n\nexport var firstDateOfMonth = function firstDateOfMonth(date) {\n date = createDate(date);\n date.setDate(1);\n return date;\n};\nexport var lastDateOfMonth = function lastDateOfMonth(date) {\n date = createDate(date);\n date.setMonth(date.getMonth() + 1);\n date.setDate(0);\n return date;\n};\nexport var addYears = function addYears(date, numberOfYears) {\n date = createDate(date);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear() + numberOfYears); // Handle Feb 29th for leap years\n\n if (date.getMonth() !== month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAgo = function oneMonthAgo(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month - 1); // Handle when days in month are different\n\n if (date.getMonth() === month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAhead = function oneMonthAhead(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month + 1); // Handle when days in month are different\n\n if (date.getMonth() === (month + 2) % 12) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneYearAgo = function oneYearAgo(date) {\n return addYears(date, -1);\n};\nexport var oneYearAhead = function oneYearAhead(date) {\n return addYears(date, 1);\n};\nexport var oneDecadeAgo = function oneDecadeAgo(date) {\n return addYears(date, -10);\n};\nexport var oneDecadeAhead = function oneDecadeAhead(date) {\n return addYears(date, 10);\n}; // Helper function to constrain a date between two values\n// Always returns a `Date` object or `null` if no date passed\n\nexport var constrainDate = function constrainDate(date) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // Ensure values are `Date` objects (or `null`)\n date = parseYMD(date);\n min = parseYMD(min) || date;\n max = parseYMD(max) || date; // Return a new `Date` object (or `null`)\n\n return date ? date < min ? min : date > max ? max : date : null;\n};","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_CALENDAR } from '../../constants/components';\nimport { CALENDAR_GREGORY, CALENDAR_LONG, CALENDAR_NARROW, CALENDAR_SHORT, DATE_FORMAT_2_DIGIT, DATE_FORMAT_NUMERIC } from '../../constants/date';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SELECTED } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_LEFT, CODE_PAGEDOWN, CODE_PAGEUP, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_NAV_NEXT_DECADE, SLOT_NAME_NAV_NEXT_MONTH, SLOT_NAME_NAV_NEXT_YEAR, SLOT_NAME_NAV_PEV_DECADE, SLOT_NAME_NAV_PEV_MONTH, SLOT_NAME_NAV_PEV_YEAR, SLOT_NAME_NAV_THIS_MONTH } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { createDate, createDateFormatter, constrainDate as _constrainDate, datesEqual, firstDateOfMonth, formatYMD, lastDateOfMonth, oneMonthAgo, oneMonthAhead, oneYearAgo, oneYearAhead, oneDecadeAgo, oneDecadeAhead, parseYMD, resolveLocale } from '../../utils/date';\nimport { attemptBlur, attemptFocus, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isPlainObject, isString } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconChevronLeft, BIconChevronDoubleLeft, BIconChevronBarLeft, BIconCircleFill } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n // Makes calendar the full width of its parent container\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n dateDisabledFn: makeProp(PROP_TYPE_FUNCTION),\n // `Intl.DateTimeFormat` object\n dateFormatOptions: makeProp(PROP_TYPE_OBJECT, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n day: DATE_FORMAT_NUMERIC,\n weekday: CALENDAR_LONG\n }),\n // Function to set a class of (classes) on the date cell\n // if passed a string or an array\n // TODO:\n // If the function returns an object, look for class prop for classes,\n // and other props for handling events/details/descriptions\n dateInfoFn: makeProp(PROP_TYPE_FUNCTION),\n // 'ltr', 'rtl', or `null` (for auto detect)\n direction: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n // When `true`, renders a comment node, but keeps the component instance active\n // Mainly for , so that we can get the component's value and locale\n // But we might just use separate date formatters, using the resolved locale\n // (adjusted for the gregorian calendar)\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true` makes the selected date header `sr-only`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // This specifies the calendar year/month/day that will be shown when\n // first opening the datepicker if no v-model value is provided\n // Default is the current date (or `min`/`max`)\n initialDate: makeProp(PROP_TYPE_DATE_STRING),\n // Labels for buttons and keyboard shortcuts\n labelCalendar: makeProp(PROP_TYPE_STRING, 'Calendar'),\n labelCurrentMonth: makeProp(PROP_TYPE_STRING, 'Current month'),\n labelHelp: makeProp(PROP_TYPE_STRING, 'Use cursor keys to navigate calendar dates'),\n labelNav: makeProp(PROP_TYPE_STRING, 'Calendar navigation'),\n labelNextDecade: makeProp(PROP_TYPE_STRING, 'Next decade'),\n labelNextMonth: makeProp(PROP_TYPE_STRING, 'Next month'),\n labelNextYear: makeProp(PROP_TYPE_STRING, 'Next year'),\n labelNoDateSelected: makeProp(PROP_TYPE_STRING, 'No date selected'),\n labelPrevDecade: makeProp(PROP_TYPE_STRING, 'Previous decade'),\n labelPrevMonth: makeProp(PROP_TYPE_STRING, 'Previous month'),\n labelPrevYear: makeProp(PROP_TYPE_STRING, 'Previous year'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected date'),\n labelToday: makeProp(PROP_TYPE_STRING, 'Today'),\n // Locale(s) to use\n // Default is to use page/browser default setting\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_DATE_STRING),\n min: makeProp(PROP_TYPE_DATE_STRING),\n // Variant color to use for the navigation buttons\n navButtonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // Disable highlighting today's date\n noHighlightToday: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n roleDescription: makeProp(PROP_TYPE_STRING),\n // Variant color to use for the selected date\n selectedVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // When `true` enables the decade navigation buttons\n showDecadeNav: makeProp(PROP_TYPE_BOOLEAN, false),\n // Day of week to start calendar on\n // `0` (Sunday), `1` (Monday), ... `6` (Saturday)\n startWeekday: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n // Variant color to use for today's date (defaults to `selectedVariant`)\n todayVariant: makeProp(PROP_TYPE_STRING),\n // Always return the `v-model` value as a date object\n valueAsDate: makeProp(PROP_TYPE_BOOLEAN, false),\n // Format of the weekday names at the top of the calendar\n // `short` is typically a 3 letter abbreviation,\n // `narrow` is typically a single letter\n // `long` is the full week day name\n // Although some locales may override this (i.e `ar`, etc.)\n weekdayHeaderFormat: makeProp(PROP_TYPE_STRING, CALENDAR_SHORT, function (value) {\n return arrayIncludes([CALENDAR_LONG, CALENDAR_SHORT, CALENDAR_NARROW], value);\n }),\n // Has no effect if prop `block` is set\n width: makeProp(PROP_TYPE_STRING, '270px')\n})), NAME_CALENDAR); // --- Main component ---\n// @vue/component\n\nexport var BCalendar = Vue.extend({\n name: NAME_CALENDAR,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var selected = formatYMD(this[MODEL_PROP_NAME]) || '';\n return {\n // Selected date\n selectedYMD: selected,\n // Date in calendar grid that has `tabindex` of `0`\n activeYMD: selected || formatYMD(_constrainDate(this.initialDate || this.getToday()), this.min, this.max),\n // Will be true if the calendar grid has/contains focus\n gridHasFocus: false,\n // Flag to enable the `aria-live` region(s) after mount\n // to prevent screen reader \"outbursts\" when mounting\n isLive: false\n };\n },\n computed: {\n valueId: function valueId() {\n return this.safeId();\n },\n widgetId: function widgetId() {\n return this.safeId('_calendar-wrapper_');\n },\n navId: function navId() {\n return this.safeId('_calendar-nav_');\n },\n gridId: function gridId() {\n return this.safeId('_calendar-grid_');\n },\n gridCaptionId: function gridCaptionId() {\n return this.safeId('_calendar-grid-caption_');\n },\n gridHelpId: function gridHelpId() {\n return this.safeId('_calendar-grid-help_');\n },\n activeId: function activeId() {\n return this.activeYMD ? this.safeId(\"_cell-\".concat(this.activeYMD, \"_\")) : null;\n },\n // TODO: Use computed props to convert `YYYY-MM-DD` to `Date` object\n selectedDate: function selectedDate() {\n // Selected as a `Date` object\n return parseYMD(this.selectedYMD);\n },\n activeDate: function activeDate() {\n // Active as a `Date` object\n return parseYMD(this.activeYMD);\n },\n computedMin: function computedMin() {\n return parseYMD(this.min);\n },\n computedMax: function computedMax() {\n return parseYMD(this.max);\n },\n computedWeekStarts: function computedWeekStarts() {\n // `startWeekday` is a prop (constrained to `0` through `6`)\n return mathMax(toInteger(this.startWeekday, 0), 0) % 7;\n },\n computedLocale: function computedLocale() {\n // Returns the resolved locale used by the calendar\n return resolveLocale(concat(this.locale).filter(identity), CALENDAR_GREGORY);\n },\n computedDateDisabledFn: function computedDateDisabledFn() {\n var dateDisabledFn = this.dateDisabledFn;\n return hasPropFunction(dateDisabledFn) ? dateDisabledFn : function () {\n return false;\n };\n },\n // TODO: Change `dateInfoFn` to handle events and notes as well as classes\n computedDateInfoFn: function computedDateInfoFn() {\n var dateInfoFn = this.dateInfoFn;\n return hasPropFunction(dateInfoFn) ? dateInfoFn : function () {\n return {};\n };\n },\n calendarLocale: function calendarLocale() {\n // This locale enforces the gregorian calendar (for use in formatter functions)\n // Needed because IE 11 resolves `ar-IR` as islamic-civil calendar\n // and IE 11 (and some other browsers) do not support the `calendar` option\n // And we currently only support the gregorian calendar\n var fmt = new Intl.DateTimeFormat(this.computedLocale, {\n calendar: CALENDAR_GREGORY\n });\n var calendar = fmt.resolvedOptions().calendar;\n var locale = fmt.resolvedOptions().locale;\n /* istanbul ignore if: mainly for IE 11 and a few other browsers, hard to test in JSDOM */\n\n if (calendar !== CALENDAR_GREGORY) {\n // Ensure the locale requests the gregorian calendar\n // Mainly for IE 11, and currently we can't handle non-gregorian calendars\n // TODO: Should we always return this value?\n locale = locale.replace(/-u-.+$/i, '').concat('-u-ca-gregory');\n }\n\n return locale;\n },\n calendarYear: function calendarYear() {\n return this.activeDate.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.activeDate.getMonth();\n },\n calendarFirstDay: function calendarFirstDay() {\n // We set the time for this date to 12pm to work around\n // date formatting issues in Firefox and Safari\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/5818\n return createDate(this.calendarYear, this.calendarMonth, 1, 12);\n },\n calendarDaysInMonth: function calendarDaysInMonth() {\n // We create a new date as to not mutate the original\n var date = createDate(this.calendarFirstDay);\n date.setMonth(date.getMonth() + 1, 0);\n return date.getDate();\n },\n computedVariant: function computedVariant() {\n return \"btn-\".concat(this.selectedVariant || 'primary');\n },\n computedTodayVariant: function computedTodayVariant() {\n return \"btn-outline-\".concat(this.todayVariant || this.selectedVariant || 'primary');\n },\n computedNavButtonVariant: function computedNavButtonVariant() {\n return \"btn-outline-\".concat(this.navButtonVariant || 'primary');\n },\n isRTL: function isRTL() {\n // `true` if the language requested is RTL\n var dir = toString(this.direction).toLowerCase();\n\n if (dir === 'rtl') {\n /* istanbul ignore next */\n return true;\n } else if (dir === 'ltr') {\n /* istanbul ignore next */\n return false;\n }\n\n return isLocaleRTL(this.computedLocale);\n },\n context: function context() {\n var selectedYMD = this.selectedYMD,\n activeYMD = this.activeYMD;\n var selectedDate = parseYMD(selectedYMD);\n var activeDate = parseYMD(activeYMD);\n return {\n // The current value of the `v-model`\n selectedYMD: selectedYMD,\n selectedDate: selectedDate,\n selectedFormatted: selectedDate ? this.formatDateString(selectedDate) : this.labelNoDateSelected,\n // Which date cell is considered active due to navigation\n activeYMD: activeYMD,\n activeDate: activeDate,\n activeFormatted: activeDate ? this.formatDateString(activeDate) : '',\n // `true` if the date is disabled (when using keyboard navigation)\n disabled: this.dateDisabled(activeDate),\n // Locales used in formatting dates\n locale: this.computedLocale,\n calendarLocale: this.calendarLocale,\n rtl: this.isRTL\n };\n },\n // Computed props that return a function reference\n dateOutOfRange: function dateOutOfRange() {\n // Check whether a date is within the min/max range\n // Returns a new function ref if the pops change\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var min = this.computedMin,\n max = this.computedMax;\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n return min && date < min || max && date > max;\n };\n },\n dateDisabled: function dateDisabled() {\n var _this = this;\n\n // Returns a function for validating if a date is within range\n // We grab this variables first to ensure a new function ref\n // is generated when the props value changes\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var rangeFn = this.dateOutOfRange; // Return the function ref\n\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n var ymd = formatYMD(date);\n return !!(rangeFn(date) || _this.computedDateDisabledFn(ymd, date));\n };\n },\n // Computed props that return date formatter functions\n formatDateString: function formatDateString() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, _objectSpread(_objectSpread({\n // Ensure we have year, month, day shown for screen readers/ARIA\n // If users really want to leave one of these out, they can\n // pass `undefined` for the property value\n year: DATE_FORMAT_NUMERIC,\n month: DATE_FORMAT_2_DIGIT,\n day: DATE_FORMAT_2_DIGIT\n }, this.dateFormatOptions), {}, {\n // Ensure hours/minutes/seconds are not shown\n // As we do not support the time portion (yet)\n hour: undefined,\n minute: undefined,\n second: undefined,\n // Ensure calendar is gregorian\n calendar: CALENDAR_GREGORY\n }));\n },\n formatYearMonth: function formatYearMonth() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayName: function formatWeekdayName() {\n // Long weekday name for weekday header aria-label\n return createDateFormatter(this.calendarLocale, {\n weekday: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayNameShort: function formatWeekdayNameShort() {\n // Weekday header cell format\n // defaults to 'short' 3 letter days, where possible\n return createDateFormatter(this.calendarLocale, {\n weekday: this.weekdayHeaderFormat || CALENDAR_SHORT,\n calendar: CALENDAR_GREGORY\n });\n },\n formatDay: function formatDay() {\n // Calendar grid day number formatter\n // We don't use DateTimeFormatter here as it can place extra\n // character(s) after the number (i.e the `zh` locale)\n var nf = new Intl.NumberFormat([this.computedLocale], {\n style: 'decimal',\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n }); // Return a formatter function instance\n\n return function (date) {\n return nf.format(date.getDate());\n };\n },\n // Disabled states for the nav buttons\n prevDecadeDisabled: function prevDecadeDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneDecadeAgo(this.activeDate)) < min;\n },\n prevYearDisabled: function prevYearDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneYearAgo(this.activeDate)) < min;\n },\n prevMonthDisabled: function prevMonthDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneMonthAgo(this.activeDate)) < min;\n },\n thisMonthDisabled: function thisMonthDisabled() {\n // TODO: We could/should check if today is out of range\n return this.disabled;\n },\n nextMonthDisabled: function nextMonthDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneMonthAhead(this.activeDate)) > max;\n },\n nextYearDisabled: function nextYearDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneYearAhead(this.activeDate)) > max;\n },\n nextDecadeDisabled: function nextDecadeDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneDecadeAhead(this.activeDate)) > max;\n },\n // Calendar dates generation\n calendar: function calendar() {\n var matrix = [];\n var firstDay = this.calendarFirstDay;\n var calendarYear = firstDay.getFullYear();\n var calendarMonth = firstDay.getMonth();\n var daysInMonth = this.calendarDaysInMonth;\n var startIndex = firstDay.getDay(); // `0`..`6`\n\n var weekOffset = (this.computedWeekStarts > startIndex ? 7 : 0) - this.computedWeekStarts; // Build the calendar matrix\n\n var currentDay = 0 - weekOffset - startIndex;\n\n for (var week = 0; week < 6 && currentDay < daysInMonth; week++) {\n // For each week\n matrix[week] = []; // The following could be a map function\n\n for (var j = 0; j < 7; j++) {\n // For each day in week\n currentDay++;\n var date = createDate(calendarYear, calendarMonth, currentDay);\n var month = date.getMonth();\n var dayYMD = formatYMD(date);\n var dayDisabled = this.dateDisabled(date); // TODO: This could be a normalizer method\n\n var dateInfo = this.computedDateInfoFn(dayYMD, parseYMD(dayYMD));\n dateInfo = isString(dateInfo) || isArray(dateInfo) ?\n /* istanbul ignore next */\n {\n class: dateInfo\n } : isPlainObject(dateInfo) ? _objectSpread({\n class: ''\n }, dateInfo) :\n /* istanbul ignore next */\n {\n class: ''\n };\n matrix[week].push({\n ymd: dayYMD,\n // Cell content\n day: this.formatDay(date),\n label: this.formatDateString(date),\n // Flags for styling\n isThisMonth: month === calendarMonth,\n isDisabled: dayDisabled,\n // TODO: Handle other dateInfo properties such as notes/events\n info: dateInfo\n });\n }\n }\n\n return matrix;\n },\n calendarHeadings: function calendarHeadings() {\n var _this2 = this;\n\n return this.calendar[0].map(function (d) {\n return {\n text: _this2.formatWeekdayNameShort(parseYMD(d.ymd)),\n label: _this2.formatWeekdayName(parseYMD(d.ymd))\n };\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n var selected = formatYMD(newValue) || '';\n var old = formatYMD(oldValue) || '';\n\n if (!datesEqual(selected, old)) {\n this.activeYMD = selected || this.activeYMD;\n this.selectedYMD = selected;\n }\n }), _defineProperty(_watch, \"selectedYMD\", function selectedYMD(newYMD, oldYMD) {\n // TODO:\n // Should we compare to `formatYMD(this.value)` and emit\n // only if they are different?\n if (newYMD !== oldYMD) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newYMD) || null : newYMD || '');\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"hidden\", function hidden(newValue) {\n // Reset the active focused day when hidden\n this.activeYMD = this.selectedYMD || formatYMD(this[MODEL_PROP_NAME] || this.constrainDate(this.initialDate || this.getToday())); // Enable/disable the live regions\n\n this.setLive(!newValue);\n }), _watch),\n created: function created() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.$emit(EVENT_NAME_CONTEXT, _this3.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public method(s)\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.grid);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.grid);\n }\n },\n // Private methods\n setLive: function setLive(on) {\n var _this4 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this4.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n },\n getToday: function getToday() {\n return parseYMD(createDate());\n },\n constrainDate: function constrainDate(date) {\n // Constrains a date between min and max\n // returns a new `Date` object instance\n return _constrainDate(date, this.computedMin, this.computedMax);\n },\n emitSelected: function emitSelected(date) {\n var _this5 = this;\n\n // Performed in a `$nextTick()` to (probably) ensure\n // the input event has emitted first\n this.$nextTick(function () {\n _this5.$emit(EVENT_NAME_SELECTED, formatYMD(date) || '', parseYMD(date) || null);\n });\n },\n // Event handlers\n setGridFocusFlag: function setGridFocusFlag(event) {\n // Sets the gridHasFocus flag to make date \"button\" look focused\n this.gridHasFocus = !this.disabled && event.type === 'focus';\n },\n onKeydownWrapper: function onKeydownWrapper(event) {\n // Calendar keyboard navigation\n // Handles PAGEUP/PAGEDOWN/END/HOME/LEFT/UP/RIGHT/DOWN\n // Focuses grid after updating\n if (this.noKeyNav) {\n /* istanbul ignore next */\n return;\n }\n\n var altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n keyCode = event.keyCode;\n\n if (!arrayIncludes([CODE_PAGEUP, CODE_PAGEDOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_UP, CODE_RIGHT, CODE_DOWN], keyCode)) {\n /* istanbul ignore next */\n return;\n }\n\n stopEvent(event);\n var activeDate = createDate(this.activeDate);\n var checkDate = createDate(this.activeDate);\n var day = activeDate.getDate();\n var constrainedToday = this.constrainDate(this.getToday());\n var isRTL = this.isRTL;\n\n if (keyCode === CODE_PAGEUP) {\n // PAGEUP - Previous month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAgo : oneYearAgo : oneMonthAgo)(activeDate); // We check the first day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setDate(1);\n } else if (keyCode === CODE_PAGEDOWN) {\n // PAGEDOWN - Next month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAhead : oneYearAhead : oneMonthAhead)(activeDate); // We check the last day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setMonth(checkDate.getMonth() + 1);\n checkDate.setDate(0);\n } else if (keyCode === CODE_LEFT) {\n // LEFT - Previous day (or next day for RTL)\n activeDate.setDate(day + (isRTL ? 1 : -1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_RIGHT) {\n // RIGHT - Next day (or previous day for RTL)\n activeDate.setDate(day + (isRTL ? -1 : 1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_UP) {\n // UP - Previous week\n activeDate.setDate(day - 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_DOWN) {\n // DOWN - Next week\n activeDate.setDate(day + 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_HOME) {\n // HOME - Today\n activeDate = constrainedToday;\n checkDate = activeDate;\n } else if (keyCode === CODE_END) {\n // END - Selected date, or today if no selected date\n activeDate = parseYMD(this.selectedDate) || constrainedToday;\n checkDate = activeDate;\n }\n\n if (!this.dateOutOfRange(checkDate) && !datesEqual(activeDate, this.activeDate)) {\n // We only jump to date if within min/max\n // We don't check for individual disabled dates though (via user function)\n this.activeYMD = formatYMD(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n },\n onKeydownGrid: function onKeydownGrid(event) {\n // Pressing enter/space on grid to select active date\n var keyCode = event.keyCode;\n var activeDate = this.activeDate;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n stopEvent(event);\n\n if (!this.disabled && !this.readonly && !this.dateDisabled(activeDate)) {\n this.selectedYMD = formatYMD(activeDate);\n this.emitSelected(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n }\n },\n onClickDay: function onClickDay(day) {\n // Clicking on a date \"button\" to select it\n var selectedDate = this.selectedDate,\n activeDate = this.activeDate;\n var clickedDate = parseYMD(day.ymd);\n\n if (!this.disabled && !day.isDisabled && !this.dateDisabled(clickedDate)) {\n if (!this.readonly) {\n // If readonly mode, we don't set the selected date, just the active date\n // If the clicked date is equal to the already selected date, we don't update the model\n this.selectedYMD = formatYMD(datesEqual(clickedDate, selectedDate) ? selectedDate : clickedDate);\n this.emitSelected(clickedDate);\n }\n\n this.activeYMD = formatYMD(datesEqual(clickedDate, activeDate) ? activeDate : createDate(clickedDate)); // Ensure grid is focused\n\n this.focus();\n }\n },\n gotoPrevDecade: function gotoPrevDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAgo(this.activeDate)));\n },\n gotoPrevYear: function gotoPrevYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAgo(this.activeDate)));\n },\n gotoPrevMonth: function gotoPrevMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAgo(this.activeDate)));\n },\n gotoCurrentMonth: function gotoCurrentMonth() {\n // TODO: Maybe this goto date should be configurable?\n this.activeYMD = formatYMD(this.constrainDate(this.getToday()));\n },\n gotoNextMonth: function gotoNextMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAhead(this.activeDate)));\n },\n gotoNextYear: function gotoNextYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAhead(this.activeDate)));\n },\n gotoNextDecade: function gotoNextDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAhead(this.activeDate)));\n },\n onHeaderClick: function onHeaderClick() {\n if (!this.disabled) {\n this.activeYMD = this.selectedYMD || formatYMD(this.getToday());\n this.focus();\n }\n }\n },\n render: function render(h) {\n var _this6 = this;\n\n // If `hidden` prop is set, render just a placeholder node\n if (this.hidden) {\n return h();\n }\n\n var valueId = this.valueId,\n widgetId = this.widgetId,\n navId = this.navId,\n gridId = this.gridId,\n gridCaptionId = this.gridCaptionId,\n gridHelpId = this.gridHelpId,\n activeId = this.activeId,\n disabled = this.disabled,\n noKeyNav = this.noKeyNav,\n isLive = this.isLive,\n isRTL = this.isRTL,\n activeYMD = this.activeYMD,\n selectedYMD = this.selectedYMD,\n safeId = this.safeId;\n var hideDecadeNav = !this.showDecadeNav;\n var todayYMD = formatYMD(this.getToday());\n var highlightToday = !this.noHighlightToday; // Header showing current selected date\n\n var $header = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n 'text-muted': disabled,\n readonly: this.readonly || disabled\n },\n attrs: {\n id: valueId,\n for: gridId,\n role: 'status',\n tabindex: disabled ? null : '-1',\n // Mainly for testing purposes, as we do not know\n // the exact format `Intl` will format the date string\n 'data-selected': toString(selectedYMD),\n // We wait until after mount to enable `aria-live`\n // to prevent initial announcement on page render\n 'aria-live': isLive ? 'polite' : 'off',\n 'aria-atomic': isLive ? 'true' : null\n },\n on: {\n // Transfer focus/click to focus grid\n // and focus active date (or today if no selection)\n click: this.onHeaderClick,\n focus: this.onHeaderClick\n }\n }, this.selectedDate ? [// We use `bdi` elements here in case the label doesn't match the locale\n // Although IE 11 does not deal with at all (equivalent to a span)\n h('bdi', {\n staticClass: 'sr-only'\n }, \" (\".concat(toString(this.labelSelected), \") \")), h('bdi', this.formatDateString(this.selectedDate))] : this.labelNoDateSelected || \"\\xA0\" // ' '\n );\n $header = h(this.headerTag, {\n staticClass: 'b-calendar-header',\n class: {\n 'sr-only': this.hideHeader\n },\n attrs: {\n title: this.selectedDate ? this.labelSelectedDate || null : null\n }\n }, [$header]); // Content for the date navigation buttons\n\n var navScope = {\n isRTL: isRTL\n };\n var navProps = {\n shiftV: 0.5\n };\n\n var navPrevProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: isRTL\n });\n\n var navNextProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: !isRTL\n });\n\n var $prevDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navPrevProps\n });\n var $prevYearIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navPrevProps\n });\n var $prevMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_MONTH, navScope) || h(BIconChevronLeft, {\n props: navPrevProps\n });\n var $thisMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_THIS_MONTH, navScope) || h(BIconCircleFill, {\n props: navProps\n });\n var $nextMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_MONTH, navScope) || h(BIconChevronLeft, {\n props: navNextProps\n });\n var $nextYearIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navNextProps\n });\n var $nextDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navNextProps\n }); // Utility to create the date navigation buttons\n\n var makeNavBtn = function makeNavBtn(content, label, handler, btnDisabled, shortcut) {\n return h('button', {\n staticClass: 'btn btn-sm border-0 flex-fill',\n class: [_this6.computedNavButtonVariant, {\n disabled: btnDisabled\n }],\n attrs: {\n title: label || null,\n type: 'button',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-label': label || null,\n 'aria-disabled': btnDisabled ? 'true' : null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: btnDisabled ? {} : {\n click: handler\n }\n }, [h('div', {\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [content])]);\n }; // Generate the date navigation buttons\n\n\n var $nav = h('div', {\n staticClass: 'b-calendar-nav d-flex',\n attrs: {\n id: navId,\n role: 'group',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-hidden': disabled ? 'true' : null,\n 'aria-label': this.labelNav || null,\n 'aria-controls': gridId\n }\n }, [hideDecadeNav ? h() : makeNavBtn($prevDecadeIcon, this.labelPrevDecade, this.gotoPrevDecade, this.prevDecadeDisabled, 'Ctrl+Alt+PageDown'), makeNavBtn($prevYearIcon, this.labelPrevYear, this.gotoPrevYear, this.prevYearDisabled, 'Alt+PageDown'), makeNavBtn($prevMonthIcon, this.labelPrevMonth, this.gotoPrevMonth, this.prevMonthDisabled, 'PageDown'), makeNavBtn($thisMonthIcon, this.labelCurrentMonth, this.gotoCurrentMonth, this.thisMonthDisabled, 'Home'), makeNavBtn($nextMonthIcon, this.labelNextMonth, this.gotoNextMonth, this.nextMonthDisabled, 'PageUp'), makeNavBtn($nextYearIcon, this.labelNextYear, this.gotoNextYear, this.nextYearDisabled, 'Alt+PageUp'), hideDecadeNav ? h() : makeNavBtn($nextDecadeIcon, this.labelNextDecade, this.gotoNextDecade, this.nextDecadeDisabled, 'Ctrl+Alt+PageUp')]); // Caption for calendar grid\n\n var $gridCaption = h('div', {\n staticClass: 'b-calendar-grid-caption text-center font-weight-bold',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n id: gridCaptionId,\n 'aria-live': isLive ? 'polite' : null,\n 'aria-atomic': isLive ? 'true' : null\n },\n key: 'grid-caption'\n }, this.formatYearMonth(this.calendarFirstDay)); // Calendar weekday headings\n\n var $gridWeekDays = h('div', {\n staticClass: 'b-calendar-grid-weekdays row no-gutters border-bottom',\n attrs: {\n 'aria-hidden': 'true'\n }\n }, this.calendarHeadings.map(function (d, idx) {\n return h('small', {\n staticClass: 'col text-truncate',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n title: d.label === d.text ? null : d.label,\n 'aria-label': d.label\n },\n key: idx\n }, d.text);\n })); // Calendar day grid\n\n var $gridBody = this.calendar.map(function (week) {\n var $cells = week.map(function (day, dIndex) {\n var _class;\n\n var isSelected = day.ymd === selectedYMD;\n var isActive = day.ymd === activeYMD;\n var isToday = day.ymd === todayYMD;\n var idCell = safeId(\"_cell-\".concat(day.ymd, \"_\")); // \"fake\" button\n\n var $btn = h('span', {\n staticClass: 'btn border-0 rounded-circle text-nowrap',\n // Should we add some classes to signify if today/selected/etc?\n class: (_class = {\n // Give the fake button a focus ring\n focus: isActive && _this6.gridHasFocus,\n // Styling\n disabled: day.isDisabled || disabled,\n active: isSelected\n }, _defineProperty(_class, _this6.computedVariant, isSelected), _defineProperty(_class, _this6.computedTodayVariant, isToday && highlightToday && !isSelected && day.isThisMonth), _defineProperty(_class, 'btn-outline-light', !(isToday && highlightToday) && !isSelected && !isActive), _defineProperty(_class, 'btn-light', !(isToday && highlightToday) && !isSelected && isActive), _defineProperty(_class, 'text-muted', !day.isThisMonth && !isSelected), _defineProperty(_class, 'text-dark', !(isToday && highlightToday) && !isSelected && !isActive && day.isThisMonth), _defineProperty(_class, 'font-weight-bold', (isSelected || day.isThisMonth) && !day.isDisabled), _class),\n on: {\n click: function click() {\n return _this6.onClickDay(day);\n }\n }\n }, day.day);\n return h('div', // Cell with button\n {\n staticClass: 'col p-0',\n class: day.isDisabled ? 'bg-light' : day.info.class || '',\n attrs: {\n id: idCell,\n role: 'button',\n 'data-date': day.ymd,\n // Primarily for testing purposes\n // Only days in the month are presented as buttons to screen readers\n 'aria-hidden': day.isThisMonth ? null : 'true',\n 'aria-disabled': day.isDisabled || disabled ? 'true' : null,\n 'aria-label': [day.label, isSelected ? \"(\".concat(_this6.labelSelected, \")\") : null, isToday ? \"(\".concat(_this6.labelToday, \")\") : null].filter(identity).join(' '),\n // NVDA doesn't convey `aria-selected`, but does `aria-current`,\n // ChromeVox doesn't convey `aria-current`, but does `aria-selected`,\n // so we set both attributes for robustness\n 'aria-selected': isSelected ? 'true' : null,\n 'aria-current': isSelected ? 'date' : null\n },\n key: dIndex\n }, [$btn]);\n }); // Return the week \"row\"\n // We use the first day of the weeks YMD value as a\n // key for efficient DOM patching / element re-use\n\n return h('div', {\n staticClass: 'row no-gutters',\n key: week[0].ymd\n }, $cells);\n });\n $gridBody = h('div', {\n // A key is only required on the body if we add in transition support\n staticClass: 'b-calendar-grid-body',\n style: disabled ? {\n pointerEvents: 'none'\n } : {} // key: this.activeYMD.slice(0, -3)\n\n }, $gridBody);\n var $gridHelp = h('div', {\n staticClass: 'b-calendar-grid-help border-top small text-muted text-center bg-light',\n attrs: {\n id: gridHelpId\n }\n }, [h('div', {\n staticClass: 'small'\n }, this.labelHelp)]);\n var $grid = h('div', {\n staticClass: 'b-calendar-grid form-control h-auto text-center',\n attrs: {\n id: gridId,\n role: 'application',\n tabindex: noKeyNav ? '-1' : disabled ? null : '0',\n 'data-month': activeYMD.slice(0, -3),\n // `YYYY-MM`, mainly for testing\n 'aria-roledescription': this.labelCalendar || null,\n 'aria-labelledby': gridCaptionId,\n 'aria-describedby': gridHelpId,\n // `aria-readonly` is not considered valid on `role=\"application\"`\n // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\n // 'aria-readonly': this.readonly && !disabled ? 'true' : null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-activedescendant': activeId\n },\n on: {\n keydown: this.onKeydownGrid,\n focus: this.setGridFocusFlag,\n blur: this.setGridFocusFlag\n },\n ref: 'grid'\n }, [$gridCaption, $gridWeekDays, $gridBody, $gridHelp]); // Optional bottom slot\n\n var $slot = this.normalizeSlot();\n $slot = $slot ? h('footer', {\n staticClass: 'b-calendar-footer'\n }, $slot) : h();\n var $widget = h('div', {\n staticClass: 'b-calendar-inner',\n style: this.block ? {} : {\n width: this.width\n },\n attrs: {\n id: widgetId,\n dir: isRTL ? 'rtl' : 'ltr',\n lang: this.computedLocale || null,\n role: 'group',\n 'aria-disabled': disabled ? 'true' : null,\n // If datepicker controls an input, this will specify the ID of the input\n 'aria-controls': this.ariaControls || null,\n // This should be a prop (so it can be changed to Date picker, etc, localized\n 'aria-roledescription': this.roleDescription || null,\n 'aria-describedby': [// Should the attr (if present) go last?\n // Or should this attr be a prop?\n this.bvAttrs['aria-describedby'], valueId, gridHelpId].filter(identity).join(' ')\n },\n on: {\n keydown: this.onKeydownWrapper\n }\n }, [$header, $nav, $grid, $slot]); // Wrap in an outer div that can be styled\n\n return h('div', {\n staticClass: 'b-calendar',\n class: {\n 'd-block': this.block\n }\n }, [$widget]);\n }\n});","// Localization utilities\nimport { RX_STRIP_LOCALE_MODS } from '../constants/regex';\nimport { arrayIncludes } from './array';\nimport { toString } from './string'; // Languages that are RTL\n\nvar RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {\n return locale.toLowerCase();\n}); // Returns true if the locale is RTL\n\nexport var isLocaleRTL = function isLocaleRTL(locale) {\n // Determines if the locale is RTL (only single locale supported)\n var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');\n var locale1 = parts.slice(0, 2).join('-');\n var locale2 = parts[0];\n return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);\n};","// SSR safe client-side ID attribute generation\n// ID's can only be generated client-side, after mount\n// `this._uid` is not synched between server and client\nimport { COMPONENT_UID_KEY, Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp } from '../utils/props'; // --- Props ---\n\nexport var props = {\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var idMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localId_: null\n };\n },\n computed: {\n safeId: function safeId() {\n // Computed property that returns a dynamic function for creating the ID\n // Reacts to changes in both `.id` and `.localId_` and regenerates a new function\n var id = this.id || this.localId_; // We return a function that accepts an optional suffix string\n // So this computed prop looks and works like a method\n // but benefits from Vue's computed prop caching\n\n var fn = function fn(suffix) {\n if (!id) {\n return null;\n }\n\n suffix = String(suffix || '').replace(/\\s+/g, '_');\n return suffix ? id + '_' + suffix : id;\n };\n\n return fn;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // `mounted()` only occurs client-side\n this.$nextTick(function () {\n // Update DOM with auto-generated ID after mount\n // to prevent SSR hydration errors\n _this.localId_ = \"__BVID__\".concat(_this[COMPONENT_UID_KEY]);\n });\n }\n});","import { BCalendar } from './calendar';\nimport { pluginFactory } from '../../utils/plugins';\nvar CalendarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCalendar: BCalendar\n }\n});\nexport { CalendarPlugin, BCalendar };","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\n }\n});","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/Vue.extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","function _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\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_IMG_LAZY } from '../../constants/components';\nimport { HAS_INTERACTION_OBSERVER_SUPPORT } from '../../constants/env';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { requestAF } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { toInteger } from '../../utils/number';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { VBVisible } from '../../directives/visible/visible';\nimport { BImg, props as BImgProps } from './img'; // --- Constants ---\n\nvar MODEL_PROP_NAME_SHOW = 'show';\nvar MODEL_EVENT_NAME_SHOW = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW; // --- Props ---\n\nvar imgProps = omit(BImgProps, ['blank']);\nexport var props = makePropsConfigurable(_objectSpread(_objectSpread({}, imgProps), {}, _defineProperty({\n blankHeight: makeProp(PROP_TYPE_NUMBER_STRING),\n // If `null`, a blank image is generated\n blankSrc: makeProp(PROP_TYPE_STRING, null),\n blankWidth: makeProp(PROP_TYPE_NUMBER_STRING),\n // Distance away from viewport (in pixels)\n // before being considered \"visible\"\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 360)\n}, MODEL_PROP_NAME_SHOW, makeProp(PROP_TYPE_BOOLEAN, false))), NAME_IMG_LAZY); // --- Main component ---\n// @vue/component\n\nexport var BImgLazy = /*#__PURE__*/Vue.extend({\n name: NAME_IMG_LAZY,\n directives: {\n 'b-visible': VBVisible\n },\n props: props,\n data: function data() {\n return {\n isShown: this[MODEL_PROP_NAME_SHOW]\n };\n },\n computed: {\n computedSrc: function computedSrc() {\n var blankSrc = this.blankSrc;\n return !blankSrc || this.isShown ? this.src : blankSrc;\n },\n computedBlank: function computedBlank() {\n return !(this.isShown || this.blankSrc);\n },\n computedWidth: function computedWidth() {\n var width = this.width;\n return this.isShown ? width : this.blankWidth || width;\n },\n computedHeight: function computedHeight() {\n var height = this.height;\n return this.isShown ? height : this.blankHeight || height;\n },\n computedSrcset: function computedSrcset() {\n var srcset = concat(this.srcset).filter(identity).join(',');\n return srcset && (!this.blankSrc || this.isShown) ? srcset : null;\n },\n computedSizes: function computedSizes() {\n var sizes = concat(this.sizes).filter(identity).join(',');\n return sizes && (!this.blankSrc || this.isShown) ? sizes : null;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_SHOW, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n // If `IntersectionObserver` support is not available, image is always shown\n var visible = HAS_INTERACTION_OBSERVER_SUPPORT ? newValue : true;\n this.isShown = visible; // Ensure the show prop is synced (when no `IntersectionObserver`)\n\n if (newValue !== visible) {\n this.$nextTick(this.updateShowProp);\n }\n }\n }), _defineProperty(_watch, \"isShown\", function isShown(newValue, oldValue) {\n // Update synched show prop\n if (newValue !== oldValue) {\n this.updateShowProp();\n }\n }), _watch),\n mounted: function mounted() {\n // If `IntersectionObserver` is not available, image is always shown\n this.isShown = HAS_INTERACTION_OBSERVER_SUPPORT ? this[MODEL_PROP_NAME_SHOW] : true;\n },\n methods: {\n updateShowProp: function updateShowProp() {\n this.$emit(MODEL_EVENT_NAME_SHOW, this.isShown);\n },\n doShow: function doShow(visible) {\n var _this = this;\n\n // If IntersectionObserver is not supported, the callback\n // will be called with `null` rather than `true` or `false`\n if ((visible || visible === null) && !this.isShown) {\n // In a `requestAF()` to render the `blank` placeholder properly\n // for fast loading images in some browsers (i.e. Firefox)\n requestAF(function () {\n _this.isShown = true;\n });\n }\n }\n },\n render: function render(h) {\n var directives = [];\n\n if (!this.isShown) {\n var _modifiers;\n\n // We only add the visible directive if we are not shown\n directives.push({\n // Visible directive will silently do nothing if\n // `IntersectionObserver` is not supported\n name: 'b-visible',\n // Value expects a callback (passed one arg of `visible` = `true` or `false`)\n value: this.doShow,\n modifiers: (_modifiers = {}, _defineProperty(_modifiers, \"\".concat(toInteger(this.offset, 0)), true), _defineProperty(_modifiers, \"once\", true), _modifiers)\n });\n }\n\n return h(BImg, {\n directives: directives,\n props: _objectSpread(_objectSpread({}, pluckProps(imgProps, this.$props)), {}, {\n // Computed value props\n src: this.computedSrc,\n blank: this.computedBlank,\n width: this.computedWidth,\n height: this.computedHeight,\n srcset: this.computedSrcset,\n sizes: this.computedSizes\n })\n });\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG_LAZY } from '../../constants/components';\nimport { keys, omit, sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img';\nimport { BImgLazy, props as BImgLazyProps } from '../image/img-lazy';\nimport { props as BCardImgProps } from './card-img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BImgLazyProps, keys(BImgProps))), omit(BCardImgProps, ['src', 'alt', 'width', 'height']))), NAME_CARD_IMG_LAZY); // --- Main component ---\n// @vue/component\n\nexport var BCardImgLazy = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG_LAZY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h(BImgLazy, mergeData(data, {\n class: [baseClass],\n // Exclude `left` and `right` props before passing to ``\n props: omit(props, ['left', 'right'])\n }));\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n columns: makeProp(PROP_TYPE_BOOLEAN, false),\n deck: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_CARD_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BCardGroup = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: props.deck ? 'card-deck' : props.columns ? 'card-columns' : 'card-group'\n }), children);\n }\n});","import { BCard } from './card';\nimport { BCardHeader } from './card-header';\nimport { BCardBody } from './card-body';\nimport { BCardTitle } from './card-title';\nimport { BCardSubTitle } from './card-sub-title';\nimport { BCardFooter } from './card-footer';\nimport { BCardImg } from './card-img';\nimport { BCardImgLazy } from './card-img-lazy';\nimport { BCardText } from './card-text';\nimport { BCardGroup } from './card-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar CardPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCard: BCard,\n BCardHeader: BCardHeader,\n BCardBody: BCardBody,\n BCardTitle: BCardTitle,\n BCardSubTitle: BCardSubTitle,\n BCardFooter: BCardFooter,\n BCardImg: BCardImg,\n BCardImgLazy: BCardImgLazy,\n BCardText: BCardText,\n BCardGroup: BCardGroup\n }\n});\nexport { CardPlugin, BCard, BCardHeader, BCardBody, BCardTitle, BCardSubTitle, BCardFooter, BCardImg, BCardImgLazy, BCardText, BCardGroup };","export var noop = function noop() {};","function 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\nimport { MutationObs, isElement } from './dom';\nimport { warnNoMutationObserverSupport } from './warn';\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [options={childList: true, subtree: true}] observe options\n * @see https://stackoverflow.com/questions/3219758\n */\n\nexport var observeDom = function observeDom(el, callback, options)\n/* istanbul ignore next: difficult to test in JSDOM */\n{\n // Handle cases where we might be passed a Vue instance\n el = el ? el.$el || el : null; // Early exit when we have no element\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n if (!isElement(el)) {\n return null;\n } // Exit and throw a warning when `MutationObserver` isn't available\n\n\n if (warnNoMutationObserverSupport('observeDom')) {\n return null;\n } // Define a new observer\n\n\n var obs = new MutationObs(function (mutations) {\n var changed = false; // A mutation can contain several change records, so we loop\n // through them to see what has changed\n // We break out of the loop early if any \"significant\" change\n // has been detected\n\n for (var i = 0; i < mutations.length && !changed; i++) {\n // The mutation record\n var mutation = mutations[i]; // Mutation type\n\n var type = mutation.type; // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n\n var target = mutation.target; // Detect whether a change happened based on type and target\n\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXT (i.e. comments, etc.)\n // as they don't change layout\n changed = true;\n } else if (type === 'attributes') {\n changed = true;\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\n // This includes HTMLElement and text nodes being\n // added/removed/re-arranged\n changed = true;\n }\n } // We only call the callback if a change that could affect\n // layout/size truly happened\n\n\n if (changed) {\n callback();\n }\n }); // Have the observer observe foo for changes in children, etc\n\n obs.observe(el, _objectSpread({\n childList: true,\n subtree: true\n }, options)); // We return a reference to the observer so that `obs.disconnect()`\n // can be called if necessary\n // To reduce overhead when the root element is hidden\n\n return obs;\n};","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_CAROUSEL } from '../../constants/components';\nimport { IS_BROWSER, HAS_POINTER_EVENT_SUPPORT, HAS_TOUCH_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_PAUSED, EVENT_NAME_SLIDING_END, EVENT_NAME_SLIDING_START, EVENT_NAME_UNPAUSED, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { CODE_ENTER, CODE_LEFT, CODE_RIGHT, CODE_SPACE } from '../../constants/key-codes';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { addClass, getActiveElement, reflow, removeClass, requestAF, selectAll, setAttr } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { isUndefined } from '../../utils/inspect';\nimport { mathAbs, mathFloor, mathMax, mathMin } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { noop } from '../../utils/noop';\nimport { sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER,\n defaultValue: 0\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // Slide directional classes\n\n\nvar DIRECTION = {\n next: {\n dirClass: 'carousel-item-left',\n overlayClass: 'carousel-item-next'\n },\n prev: {\n dirClass: 'carousel-item-right',\n overlayClass: 'carousel-item-prev'\n }\n}; // Fallback Transition duration (with a little buffer) in ms\n\nvar TRANS_DURATION = 600 + 50; // Time for mouse compat events to fire after touch\n\nvar TOUCH_EVENT_COMPAT_WAIT = 500; // Number of pixels to consider touch move a swipe\n\nvar SWIPE_THRESHOLD = 40; // PointerEvent pointer types\n\nvar PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}; // Transition Event names\n\nvar TransitionEndEvents = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'otransitionend oTransitionEnd',\n transition: 'transitionend'\n}; // --- Helper methods ---\n// Return the browser specific transitionEnd event name\n\nvar getTransitionEndEvent = function getTransitionEndEvent(el) {\n for (var name in TransitionEndEvents) {\n if (!isUndefined(el.style[name])) {\n return TransitionEndEvents[name];\n }\n } // Fallback\n\n /* istanbul ignore next */\n\n\n return null;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n background: makeProp(PROP_TYPE_STRING),\n controls: makeProp(PROP_TYPE_BOOLEAN, false),\n // Enable cross-fade animation instead of slide animation\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n // Sniffed by carousel-slide\n imgHeight: makeProp(PROP_TYPE_NUMBER_STRING),\n // Sniffed by carousel-slide\n imgWidth: makeProp(PROP_TYPE_NUMBER_STRING),\n indicators: makeProp(PROP_TYPE_BOOLEAN, false),\n interval: makeProp(PROP_TYPE_NUMBER, 5000),\n labelGotoSlide: makeProp(PROP_TYPE_STRING, 'Goto slide'),\n labelIndicators: makeProp(PROP_TYPE_STRING, 'Select a slide to display'),\n labelNext: makeProp(PROP_TYPE_STRING, 'Next slide'),\n labelPrev: makeProp(PROP_TYPE_STRING, 'Previous slide'),\n // Disable slide/fade animation\n noAnimation: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable pause on hover\n noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\n // Sniffed by carousel-slide\n noTouch: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable wrapping/looping when start/end is reached\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CAROUSEL); // --- Main component ---\n// @vue/component\n\nexport var BCarousel = /*#__PURE__*/Vue.extend({\n name: NAME_CAROUSEL,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvCarousel: this\n };\n },\n props: props,\n data: function data() {\n return {\n index: this[MODEL_PROP_NAME] || 0,\n isSliding: false,\n transitionEndEvent: null,\n slides: [],\n direction: null,\n isPaused: !(toInteger(this.interval, 0) > 0),\n // Touch event handling values\n touchStartX: 0,\n touchDeltaX: 0\n };\n },\n computed: {\n numSlides: function numSlides() {\n return this.slides.length;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.setSlide(toInteger(newValue, 0));\n }\n }), _defineProperty(_watch, \"interval\", function interval(newValue, oldValue) {\n /* istanbul ignore next */\n if (newValue === oldValue) {\n return;\n }\n\n if (!newValue) {\n // Pausing slide show\n this.pause(false);\n } else {\n // Restarting or Changing interval\n this.pause(true);\n this.start(false);\n }\n }), _defineProperty(_watch, \"isPaused\", function isPaused(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(newValue ? EVENT_NAME_PAUSED : EVENT_NAME_UNPAUSED);\n }\n }), _defineProperty(_watch, \"index\", function index(to, from) {\n /* istanbul ignore next */\n if (to === from || this.isSliding) {\n return;\n }\n\n this.doSlide(to, from);\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_interval = null;\n this.$_animationTimeout = null;\n this.$_touchTimeout = null;\n this.$_observer = null; // Set initial paused state\n\n this.isPaused = !(toInteger(this.interval, 0) > 0);\n },\n mounted: function mounted() {\n // Cache current browser transitionend event name\n this.transitionEndEvent = getTransitionEndEvent(this.$el) || null; // Get all slides\n\n this.updateSlides(); // Observe child changes so we can update slide list\n\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearInterval();\n this.clearAnimationTimeout();\n this.clearTouchTimeout();\n this.setObserver(false);\n },\n methods: {\n clearInterval: function (_clearInterval) {\n function clearInterval() {\n return _clearInterval.apply(this, arguments);\n }\n\n clearInterval.toString = function () {\n return _clearInterval.toString();\n };\n\n return clearInterval;\n }(function () {\n clearInterval(this.$_interval);\n this.$_interval = null;\n }),\n clearAnimationTimeout: function clearAnimationTimeout() {\n clearTimeout(this.$_animationTimeout);\n this.$_animationTimeout = null;\n },\n clearTouchTimeout: function clearTouchTimeout() {\n clearTimeout(this.$_touchTimeout);\n this.$_touchTimeout = null;\n },\n setObserver: function setObserver() {\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n this.$_observer = observeDom(this.$refs.inner, this.updateSlides.bind(this), {\n subtree: false,\n childList: true,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n // Set slide\n setSlide: function setSlide(slide) {\n var _this = this;\n\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // Don't animate when page is not visible\n\n /* istanbul ignore if: difficult to test */\n if (IS_BROWSER && document.visibilityState && document.hidden) {\n return;\n }\n\n var noWrap = this.noWrap;\n var numSlides = this.numSlides; // Make sure we have an integer (you never know!)\n\n slide = mathFloor(slide); // Don't do anything if nothing to slide to\n\n if (numSlides === 0) {\n return;\n } // Don't change slide while transitioning, wait until transition is done\n\n\n if (this.isSliding) {\n // Schedule slide after sliding complete\n this.$once(EVENT_NAME_SLIDING_END, function () {\n // Wrap in `requestAF()` to allow the slide to properly finish to avoid glitching\n requestAF(function () {\n return _this.setSlide(slide, direction);\n });\n });\n return;\n }\n\n this.direction = direction; // Set new slide index\n // Wrap around if necessary (if no-wrap not enabled)\n\n this.index = slide >= numSlides ? noWrap ? numSlides - 1 : 0 : slide < 0 ? noWrap ? 0 : numSlides - 1 : slide; // Ensure the v-model is synched up if no-wrap is enabled\n // and user tried to slide pass either ends\n\n if (noWrap && this.index !== slide && this.index !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, this.index);\n }\n },\n // Previous slide\n prev: function prev() {\n this.setSlide(this.index - 1, 'prev');\n },\n // Next slide\n next: function next() {\n this.setSlide(this.index + 1, 'next');\n },\n // Pause auto rotation\n pause: function pause(event) {\n if (!event) {\n this.isPaused = true;\n }\n\n this.clearInterval();\n },\n // Start auto rotate slides\n start: function start(event) {\n if (!event) {\n this.isPaused = false;\n }\n /* istanbul ignore next: most likely will never happen, but just in case */\n\n\n this.clearInterval(); // Don't start if no interval, or less than 2 slides\n\n if (this.interval && this.numSlides > 1) {\n this.$_interval = setInterval(this.next, mathMax(1000, this.interval));\n }\n },\n // Restart auto rotate slides when focus/hover leaves the carousel\n\n /* istanbul ignore next */\n restart: function restart() {\n if (!this.$el.contains(getActiveElement())) {\n this.start();\n }\n },\n doSlide: function doSlide(to, from) {\n var _this2 = this;\n\n var isCycling = Boolean(this.interval); // Determine sliding direction\n\n var direction = this.calcDirection(this.direction, from, to);\n var overlayClass = direction.overlayClass;\n var dirClass = direction.dirClass; // Determine current and next slides\n\n var currentSlide = this.slides[from];\n var nextSlide = this.slides[to]; // Don't do anything if there aren't any slides to slide to\n\n if (!currentSlide || !nextSlide) {\n /* istanbul ignore next */\n return;\n } // Start animating\n\n\n this.isSliding = true;\n\n if (isCycling) {\n this.pause(false);\n }\n\n this.$emit(EVENT_NAME_SLIDING_START, to); // Update v-model\n\n this.$emit(MODEL_EVENT_NAME, this.index);\n\n if (this.noAnimation) {\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n this.isSliding = false; // Notify ourselves that we're done sliding (slid)\n\n this.$nextTick(function () {\n return _this2.$emit(EVENT_NAME_SLIDING_END, to);\n });\n } else {\n addClass(nextSlide, overlayClass); // Trigger a reflow of next slide\n\n reflow(nextSlide);\n addClass(currentSlide, dirClass);\n addClass(nextSlide, dirClass); // Transition End handler\n\n var called = false;\n /* istanbul ignore next: difficult to test */\n\n var onceTransEnd = function onceTransEnd() {\n if (called) {\n return;\n }\n\n called = true;\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n\n if (_this2.transitionEndEvent) {\n var events = _this2.transitionEndEvent.split(/\\s+/);\n\n events.forEach(function (event) {\n return eventOff(nextSlide, event, onceTransEnd, EVENT_OPTIONS_NO_CAPTURE);\n });\n }\n\n _this2.clearAnimationTimeout();\n\n removeClass(nextSlide, dirClass);\n removeClass(nextSlide, overlayClass);\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n removeClass(currentSlide, dirClass);\n removeClass(currentSlide, overlayClass);\n setAttr(currentSlide, 'aria-current', 'false');\n setAttr(nextSlide, 'aria-current', 'true');\n setAttr(currentSlide, 'aria-hidden', 'true');\n setAttr(nextSlide, 'aria-hidden', 'false');\n _this2.isSliding = false;\n _this2.direction = null; // Notify ourselves that we're done sliding (slid)\n\n _this2.$nextTick(function () {\n return _this2.$emit(EVENT_NAME_SLIDING_END, to);\n });\n }; // Set up transitionend handler\n\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n\n\n if (this.transitionEndEvent) {\n var events = this.transitionEndEvent.split(/\\s+/);\n events.forEach(function (event) {\n return eventOn(nextSlide, event, onceTransEnd, EVENT_OPTIONS_NO_CAPTURE);\n });\n } // Fallback to setTimeout()\n\n\n this.$_animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);\n }\n\n if (isCycling) {\n this.start(false);\n }\n },\n // Update slide list\n updateSlides: function updateSlides() {\n this.pause(true); // Get all slides as DOM elements\n\n this.slides = selectAll('.carousel-item', this.$refs.inner);\n var numSlides = this.slides.length; // Keep slide number in range\n\n var index = mathMax(0, mathMin(mathFloor(this.index), numSlides - 1));\n this.slides.forEach(function (slide, idx) {\n var n = idx + 1;\n\n if (idx === index) {\n addClass(slide, 'active');\n setAttr(slide, 'aria-current', 'true');\n } else {\n removeClass(slide, 'active');\n setAttr(slide, 'aria-current', 'false');\n }\n\n setAttr(slide, 'aria-posinset', String(n));\n setAttr(slide, 'aria-setsize', String(numSlides));\n }); // Set slide as active\n\n this.setSlide(index);\n this.start(this.isPaused);\n },\n calcDirection: function calcDirection() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!direction) {\n return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;\n }\n\n return DIRECTION[direction];\n },\n handleClick: function handleClick(event, fn) {\n var keyCode = event.keyCode;\n\n if (event.type === 'click' || keyCode === CODE_SPACE || keyCode === CODE_ENTER) {\n stopEvent(event);\n fn();\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n handleSwipe: function handleSwipe() {\n var absDeltaX = mathAbs(this.touchDeltaX);\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltaX / this.touchDeltaX; // Reset touch delta X\n // https://github.com/twbs/bootstrap/pull/28558\n\n this.touchDeltaX = 0;\n\n if (direction > 0) {\n // Swipe left\n this.prev();\n } else if (direction < 0) {\n // Swipe right\n this.next();\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchStart: function touchStart(event) {\n if (HAS_POINTER_EVENT_SUPPORT && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX;\n } else if (!HAS_POINTER_EVENT_SUPPORT) {\n this.touchStartX = event.touches[0].clientX;\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchMove: function touchMove(event) {\n // Ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0;\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX;\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchEnd: function touchEnd(event) {\n if (HAS_POINTER_EVENT_SUPPORT && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX;\n }\n\n this.handleSwipe(); // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause(false);\n this.clearTouchTimeout();\n this.$_touchTimeout = setTimeout(this.start, TOUCH_EVENT_COMPAT_WAIT + mathMax(1000, this.interval));\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var indicators = this.indicators,\n background = this.background,\n noAnimation = this.noAnimation,\n noHoverPause = this.noHoverPause,\n noTouch = this.noTouch,\n index = this.index,\n isSliding = this.isSliding,\n pause = this.pause,\n restart = this.restart,\n touchStart = this.touchStart,\n touchEnd = this.touchEnd;\n var idInner = this.safeId('__BV_inner_'); // Wrapper for slides\n\n var $inner = h('div', {\n staticClass: 'carousel-inner',\n attrs: {\n id: idInner,\n role: 'list'\n },\n ref: 'inner'\n }, [this.normalizeSlot()]); // Prev and next controls\n\n var $controls = h();\n\n if (this.controls) {\n var makeControl = function makeControl(direction, label, handler) {\n var handlerWrapper = function handlerWrapper(event) {\n /* istanbul ignore next */\n if (!isSliding) {\n _this3.handleClick(event, handler);\n } else {\n stopEvent(event, {\n propagation: false\n });\n }\n };\n\n return h('a', {\n staticClass: \"carousel-control-\".concat(direction),\n attrs: {\n href: '#',\n role: 'button',\n 'aria-controls': idInner,\n 'aria-disabled': isSliding ? 'true' : null\n },\n on: {\n click: handlerWrapper,\n keydown: handlerWrapper\n }\n }, [h('span', {\n staticClass: \"carousel-control-\".concat(direction, \"-icon\"),\n attrs: {\n 'aria-hidden': 'true'\n }\n }), h('span', {\n class: 'sr-only'\n }, [label])]);\n };\n\n $controls = [makeControl('prev', this.labelPrev, this.prev), makeControl('next', this.labelNext, this.next)];\n } // Indicators\n\n\n var $indicators = h('ol', {\n staticClass: 'carousel-indicators',\n directives: [{\n name: 'show',\n value: indicators\n }],\n attrs: {\n id: this.safeId('__BV_indicators_'),\n 'aria-hidden': indicators ? 'false' : 'true',\n 'aria-label': this.labelIndicators,\n 'aria-owns': idInner\n }\n }, this.slides.map(function (slide, i) {\n var handler = function handler(event) {\n _this3.handleClick(event, function () {\n _this3.setSlide(i);\n });\n };\n\n return h('li', {\n class: {\n active: i === index\n },\n attrs: {\n role: 'button',\n id: _this3.safeId(\"__BV_indicator_\".concat(i + 1, \"_\")),\n tabindex: indicators ? '0' : '-1',\n 'aria-current': i === index ? 'true' : 'false',\n 'aria-label': \"\".concat(_this3.labelGotoSlide, \" \").concat(i + 1),\n 'aria-describedby': slide.id || null,\n 'aria-controls': idInner\n },\n on: {\n click: handler,\n keydown: handler\n },\n key: \"slide_\".concat(i)\n });\n }));\n var on = {\n mouseenter: noHoverPause ? noop : pause,\n mouseleave: noHoverPause ? noop : restart,\n focusin: pause,\n focusout: restart,\n keydown: function keydown(event) {\n /* istanbul ignore next */\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_LEFT || keyCode === CODE_RIGHT) {\n stopEvent(event);\n\n _this3[keyCode === CODE_LEFT ? 'prev' : 'next']();\n }\n }\n }; // Touch support event handlers for environment\n\n if (HAS_TOUCH_SUPPORT && !noTouch) {\n // Attach appropriate listeners (prepend event name with '&' for passive mode)\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n if (HAS_POINTER_EVENT_SUPPORT) {\n on['&pointerdown'] = touchStart;\n on['&pointerup'] = touchEnd;\n } else {\n on['&touchstart'] = touchStart;\n on['&touchmove'] = this.touchMove;\n on['&touchend'] = touchEnd;\n }\n } // Return the carousel\n\n\n return h('div', {\n staticClass: 'carousel',\n class: {\n slide: !noAnimation,\n 'carousel-fade': !noAnimation && this.fade,\n 'pointer-event': HAS_TOUCH_SUPPORT && HAS_POINTER_EVENT_SUPPORT && !noTouch\n },\n style: {\n background: background\n },\n attrs: {\n role: 'region',\n id: this.safeId(),\n 'aria-busy': isSliding ? 'true' : 'false'\n },\n on: on\n }, [$inner, $controls, $indicators]);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_CAROUSEL_SLIDE } from '../../constants/components';\nimport { HAS_TOUCH_SUPPORT } from '../../constants/env';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_IMG } from '../../constants/slots';\nimport { stopEvent } from '../../utils/events';\nimport { htmlOrText } from '../../utils/html';\nimport { identity } from '../../utils/identity';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps, unprefixPropName } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BImg } from '../image/img'; // --- Props ---\n\nvar imgProps = {\n imgAlt: makeProp(PROP_TYPE_STRING),\n imgBlank: makeProp(PROP_TYPE_BOOLEAN, false),\n imgBlankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n imgHeight: makeProp(PROP_TYPE_NUMBER_STRING),\n imgSrc: makeProp(PROP_TYPE_STRING),\n imgWidth: makeProp(PROP_TYPE_NUMBER_STRING)\n};\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), imgProps), {}, {\n background: makeProp(PROP_TYPE_STRING),\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING),\n captionTag: makeProp(PROP_TYPE_STRING, 'h3'),\n contentTag: makeProp(PROP_TYPE_STRING, 'div'),\n contentVisibleUp: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n textHtml: makeProp(PROP_TYPE_STRING),\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n})), NAME_CAROUSEL_SLIDE); // --- Main component ---\n// @vue/component\n\nexport var BCarouselSlide = /*#__PURE__*/Vue.extend({\n name: NAME_CAROUSEL_SLIDE,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvCarousel: {\n // Explicitly disable touch if not a child of carousel\n default: function _default() {\n return {\n noTouch: true\n };\n }\n }\n },\n props: props,\n computed: {\n contentClasses: function contentClasses() {\n return [this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? \"d-\".concat(this.contentVisibleUp, \"-block\") : ''];\n },\n computedWidth: function computedWidth() {\n // Use local width, or try parent width\n return this.imgWidth || this.bvCarousel.imgWidth || null;\n },\n computedHeight: function computedHeight() {\n // Use local height, or try parent height\n return this.imgHeight || this.bvCarousel.imgHeight || null;\n }\n },\n render: function render(h) {\n var $img = this.normalizeSlot(SLOT_NAME_IMG);\n\n if (!$img && (this.imgSrc || this.imgBlank)) {\n var on = {}; // Touch support event handler\n\n /* istanbul ignore if: difficult to test in JSDOM */\n\n if (!this.bvCarousel.noTouch && HAS_TOUCH_SUPPORT) {\n on.dragstart = function (event) {\n return stopEvent(event, {\n propagation: false\n });\n };\n }\n\n $img = h(BImg, {\n props: _objectSpread(_objectSpread({}, pluckProps(imgProps, this.$props, unprefixPropName.bind(null, 'img'))), {}, {\n width: this.computedWidth,\n height: this.computedHeight,\n fluidGrow: true,\n block: true\n }),\n on: on\n });\n }\n\n var $contentChildren = [// Caption\n this.caption || this.captionHtml ? h(this.captionTag, {\n domProps: htmlOrText(this.captionHtml, this.caption)\n }) : false, // Text\n this.text || this.textHtml ? h(this.textTag, {\n domProps: htmlOrText(this.textHtml, this.text)\n }) : false, // Children\n this.normalizeSlot() || false];\n var $content = h();\n\n if ($contentChildren.some(identity)) {\n $content = h(this.contentTag, {\n staticClass: 'carousel-caption',\n class: this.contentClasses\n }, $contentChildren.map(function ($child) {\n return $child || h();\n }));\n }\n\n return h('div', {\n staticClass: 'carousel-item',\n style: {\n background: this.background || this.bvCarousel.background || null\n },\n attrs: {\n id: this.safeId(),\n role: 'listitem'\n }\n }, [$img, $content]);\n }\n});","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_COLLAPSE } from '../../constants/components';\nimport { CLASS_NAME_SHOW } from '../../constants/classes';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { addClass, hasClass, removeClass, closest, matches, getCS } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVCollapse } from './helpers/bv-collapse'; // --- Constants ---\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar ROOT_EVENT_NAME_ACCORDION = getRootEventName(NAME_COLLAPSE, 'accordion');\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n // If `true` (and `visible` is `true` on mount), animate initially visible\n accordion: makeProp(PROP_TYPE_STRING),\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n isNav: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_COLLAPSE); // --- Main component ---\n// @vue/component\n\nexport var BCollapse = /*#__PURE__*/Vue.extend({\n name: NAME_COLLAPSE,\n mixins: [idMixin, modelMixin, normalizeSlotMixin, listenOnRootMixin],\n props: props,\n data: function data() {\n return {\n show: this[MODEL_PROP_NAME],\n transitioning: false\n };\n },\n computed: {\n classObject: function classObject() {\n var transitioning = this.transitioning;\n return {\n 'navbar-collapse': this.isNav,\n collapse: !transitioning,\n show: this.show && !transitioning\n };\n },\n slotScope: function slotScope() {\n var _this = this;\n\n return {\n visible: this.show,\n close: function close() {\n _this.show = false;\n }\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (newValue !== this.show) {\n this.show = newValue;\n }\n }), _defineProperty(_watch, \"show\", function show(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState();\n }\n }), _watch),\n created: function created() {\n this.show = this[MODEL_PROP_NAME];\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.show = this[MODEL_PROP_NAME]; // Listen for toggle events to open/close us\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggleEvent); // Listen to other collapses for accordion events\n\n this.listenOnRoot(ROOT_EVENT_NAME_ACCORDION, this.handleAccordionEvent);\n\n if (this.isNav) {\n // Set up handlers\n this.setWindowEvents(true);\n this.handleResize();\n }\n\n this.$nextTick(function () {\n _this2.emitState();\n }); // Listen for \"Sync state\" requests from `v-b-toggle`\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, function (id) {\n if (id === _this2.safeId()) {\n _this2.$nextTick(_this2.emitSync);\n }\n });\n },\n updated: function updated() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitSync();\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.isNav) {\n this.setWindowEvents(false);\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.isNav) {\n this.setWindowEvents(true);\n }\n\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n // Trigger state emit if needed\n this.show = false;\n\n if (this.isNav && IS_BROWSER) {\n this.setWindowEvents(false);\n }\n },\n methods: {\n setWindowEvents: function setWindowEvents(on) {\n eventOnOff(on, window, 'resize', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, window, 'orientationchange', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\n },\n toggle: function toggle() {\n this.show = !this.show;\n },\n onEnter: function onEnter() {\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit(EVENT_NAME_SHOW);\n },\n onAfterEnter: function onAfterEnter() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_SHOWN);\n },\n onLeave: function onLeave() {\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit(EVENT_NAME_HIDE);\n },\n onAfterLeave: function onAfterLeave() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n emitState: function emitState() {\n var show = this.show,\n accordion = this.accordion;\n var id = this.safeId();\n this.$emit(MODEL_EVENT_NAME, show); // Let `v-b-toggle` know the state of this collapse\n\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, id, show);\n\n if (accordion && show) {\n // Tell the other collapses in this accordion to close\n this.emitOnRoot(ROOT_EVENT_NAME_ACCORDION, id, accordion);\n }\n },\n emitSync: function emitSync() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), this.show);\n },\n checkDisplayBlock: function checkDisplayBlock() {\n // Check to see if the collapse has `display: block !important` set\n // We can't set `display: none` directly on `this.$el`, as it would\n // trigger a new transition to start (or cancel a current one)\n var $el = this.$el;\n var restore = hasClass($el, CLASS_NAME_SHOW);\n removeClass($el, CLASS_NAME_SHOW);\n var isBlock = getCS($el).display === 'block';\n\n if (restore) {\n addClass($el, CLASS_NAME_SHOW);\n }\n\n return isBlock;\n },\n clickHandler: function clickHandler(event) {\n var el = event.target; // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n\n /* istanbul ignore next: can't test `getComputedStyle()` in JSDOM */\n\n if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\n return;\n } // Only close the collapse if it is not forced to be `display: block !important`\n\n\n if ((matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) && !this.checkDisplayBlock()) {\n this.show = false;\n }\n },\n handleToggleEvent: function handleToggleEvent(id) {\n if (id === this.safeId()) {\n this.toggle();\n }\n },\n handleAccordionEvent: function handleAccordionEvent(openedId, openAccordion) {\n var accordion = this.accordion,\n show = this.show;\n\n if (!accordion || accordion !== openAccordion) {\n return;\n }\n\n var isThis = openedId === this.safeId(); // Open this collapse if not shown or\n // close this collapse if shown\n\n if (isThis && !show || !isThis && show) {\n this.toggle();\n }\n },\n handleResize: function handleResize() {\n // Handler for orientation/resize to set collapsed state in nav/navbar\n this.show = getCS(this.$el).display === 'block';\n }\n },\n render: function render(h) {\n var appear = this.appear;\n var $content = h(this.tag, {\n class: this.classObject,\n directives: [{\n name: 'show',\n value: this.show\n }],\n attrs: {\n id: this.safeId()\n },\n on: {\n click: this.clickHandler\n }\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope));\n return h(BVCollapse, {\n props: {\n appear: appear\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$content]);\n }\n});","import { BCarousel } from './carousel';\nimport { BCarouselSlide } from './carousel-slide';\nimport { pluginFactory } from '../../utils/plugins';\nvar CarouselPlugin =\n/*#__PURE*/\npluginFactory({\n components: {\n BCarousel: BCarousel,\n BCarouselSlide: BCarouselSlide\n }\n});\nexport { CarouselPlugin, BCarousel, BCarouselSlide };","export var CLASS_NAME_SHOW = 'show';\nexport var CLASS_NAME_FADE = 'fade';","// Generic collapse transion helper component\n//\n// Note:\n// Applies the classes `collapse`, `show` and `collapsing`\n// during the enter/leave transition phases only\n// Although it appears that Vue may be leaving the classes\n// in-place after the transition completes\nimport { Vue, mergeData } from '../../../vue';\nimport { NAME_COLLAPSE_HELPER } from '../../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { getBCR, reflow, removeStyle, requestAF, setStyle } from '../../../utils/dom';\nimport { makeProp } from '../../../utils/props'; // --- Helper methods ---\n// Transition event handler helpers\n\nvar onEnter = function onEnter(el) {\n setStyle(el, 'height', 0); // In a `requestAF()` for `appear` to work\n\n requestAF(function () {\n reflow(el);\n setStyle(el, 'height', \"\".concat(el.scrollHeight, \"px\"));\n });\n};\n\nvar onAfterEnter = function onAfterEnter(el) {\n removeStyle(el, 'height');\n};\n\nvar onLeave = function onLeave(el) {\n setStyle(el, 'height', 'auto');\n setStyle(el, 'display', 'block');\n setStyle(el, 'height', \"\".concat(getBCR(el).height, \"px\"));\n reflow(el);\n setStyle(el, 'height', 0);\n};\n\nvar onAfterLeave = function onAfterLeave(el) {\n removeStyle(el, 'height');\n}; // --- Constants ---\n// Default transition props\n// `appear` will use the enter classes\n\n\nvar TRANSITION_PROPS = {\n css: true,\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: 'collapse show',\n leaveClass: 'collapse show',\n leaveActiveClass: 'collapsing',\n leaveToClass: 'collapse'\n}; // Default transition handlers\n// `appear` will use the enter handlers\n\nvar TRANSITION_HANDLERS = {\n enter: onEnter,\n afterEnter: onAfterEnter,\n leave: onLeave,\n afterLeave: onAfterLeave\n}; // --- Main component ---\n\nexport var props = {\n // // If `true` (and `visible` is `true` on mount), animate initially visible\n appear: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVCollapse = /*#__PURE__*/Vue.extend({\n name: NAME_COLLAPSE_HELPER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('transition', // We merge in the `appear` prop last\n mergeData(data, {\n props: TRANSITION_PROPS,\n on: TRANSITION_HANDLERS\n }, {\n props: props\n }), // Note: `` supports a single root element only\n children);\n }\n});","import { NAME_COLLAPSE } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { RX_HASH, RX_HASH_ID, RX_SPACE_SPLIT } from '../../constants/regex';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { addClass, getAttr, hasAttr, isDisabled, isTag, removeAttr, removeClass, removeStyle, requestAF, setAttr, setStyle } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { keys } from '../../utils/object'; // --- Constants ---\n// Classes to apply to trigger element\n\nvar CLASS_BV_TOGGLE_COLLAPSED = 'collapsed';\nvar CLASS_BV_TOGGLE_NOT_COLLAPSED = 'not-collapsed'; // Property key for handler storage\n\nvar BV_BASE = '__BV_toggle'; // Root event listener property (Function)\n\nvar BV_TOGGLE_ROOT_HANDLER = \"\".concat(BV_BASE, \"_HANDLER__\"); // Trigger element click handler property (Function)\n\nvar BV_TOGGLE_CLICK_HANDLER = \"\".concat(BV_BASE, \"_CLICK__\"); // Target visibility state property (Boolean)\n\nvar BV_TOGGLE_STATE = \"\".concat(BV_BASE, \"_STATE__\"); // Target ID list property (Array)\n\nvar BV_TOGGLE_TARGETS = \"\".concat(BV_BASE, \"_TARGETS__\"); // Commonly used strings\n\nvar STRING_FALSE = 'false';\nvar STRING_TRUE = 'true'; // Commonly used attribute names\n\nvar ATTR_ARIA_CONTROLS = 'aria-controls';\nvar ATTR_ARIA_EXPANDED = 'aria-expanded';\nvar ATTR_ROLE = 'role';\nvar ATTR_TABINDEX = 'tabindex'; // Commonly used style properties\n\nvar STYLE_OVERFLOW_ANCHOR = 'overflow-anchor'; // Emitted control event for collapse (emitted to collapse)\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle'); // Listen to event for toggle state update (emitted by collapse)\n\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state'); // Private event emitted on `$root` to ensure the toggle state is always synced\n// Gets emitted even if the state of b-collapse has not changed\n// This event is NOT to be documented as people should not be using it\n\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // Private event we send to collapse to request state update sync event\n\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar KEYDOWN_KEY_CODES = [CODE_ENTER, CODE_SPACE]; // --- Helper methods ---\n\nvar isNonStandardTag = function isNonStandardTag(el) {\n return !arrayIncludes(['button', 'a'], el.tagName.toLowerCase());\n};\n\nvar getTargets = function getTargets(_ref, el) {\n var modifiers = _ref.modifiers,\n arg = _ref.arg,\n value = _ref.value;\n // Any modifiers are considered target IDs\n var targets = keys(modifiers || {}); // If value is a string, split out individual targets (if space delimited)\n\n value = isString(value) ? value.split(RX_SPACE_SPLIT) : value; // Support target ID as link href (`href=\"#id\"`)\n\n if (isTag(el.tagName, 'a')) {\n var href = getAttr(el, 'href') || '';\n\n if (RX_HASH_ID.test(href)) {\n targets.push(href.replace(RX_HASH, ''));\n }\n } // Add ID from `arg` (if provided), and support value\n // as a single string ID or an array of string IDs\n // If `value` is not an array or string, then it gets filtered out\n\n\n concat(arg, value).forEach(function (t) {\n return isString(t) && targets.push(t);\n }); // Return only unique and truthy target IDs\n\n return targets.filter(function (t, index, arr) {\n return t && arr.indexOf(t) === index;\n });\n};\n\nvar removeClickListener = function removeClickListener(el) {\n var handler = el[BV_TOGGLE_CLICK_HANDLER];\n\n if (handler) {\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n el[BV_TOGGLE_CLICK_HANDLER] = null;\n};\n\nvar addClickListener = function addClickListener(el, vnode) {\n removeClickListener(el);\n\n if (vnode.context) {\n var handler = function handler(event) {\n if (!(event.type === 'keydown' && !arrayIncludes(KEYDOWN_KEY_CODES, event.keyCode)) && !isDisabled(el)) {\n var targets = el[BV_TOGGLE_TARGETS] || [];\n targets.forEach(function (target) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_TOGGLE, target);\n });\n }\n };\n\n el[BV_TOGGLE_CLICK_HANDLER] = handler;\n eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (isNonStandardTag(el)) {\n eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar removeRootListeners = function removeRootListeners(el, vnode) {\n if (el[BV_TOGGLE_ROOT_HANDLER] && vnode.context) {\n vnode.context.$root.$off([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], el[BV_TOGGLE_ROOT_HANDLER]);\n }\n\n el[BV_TOGGLE_ROOT_HANDLER] = null;\n};\n\nvar addRootListeners = function addRootListeners(el, vnode) {\n removeRootListeners(el, vnode);\n\n if (vnode.context) {\n var handler = function handler(id, state) {\n // `state` will be `true` if target is expanded\n if (arrayIncludes(el[BV_TOGGLE_TARGETS] || [], id)) {\n // Set/Clear 'collapsed' visibility class state\n el[BV_TOGGLE_STATE] = state; // Set `aria-expanded` and class state on trigger element\n\n setToggleState(el, state);\n }\n };\n\n el[BV_TOGGLE_ROOT_HANDLER] = handler; // Listen for toggle state changes (public) and sync (private)\n\n vnode.context.$root.$on([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], handler);\n }\n};\n\nvar setToggleState = function setToggleState(el, state) {\n // State refers to the visibility of the collapse/sidebar\n if (state) {\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_TRUE);\n } else {\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_FALSE);\n }\n}; // Reset and remove a property from the provided element\n\n\nvar resetProp = function resetProp(el, prop) {\n el[prop] = null;\n delete el[prop];\n}; // Handle directive updates\n\n\nvar handleUpdate = function handleUpdate(el, binding, vnode) {\n /* istanbul ignore next: should never happen */\n if (!IS_BROWSER || !vnode.context) {\n return;\n } // If element is not a button or link, we add `role=\"button\"`\n // and `tabindex=\"0\"` for accessibility reasons\n\n\n if (isNonStandardTag(el)) {\n if (!hasAttr(el, ATTR_ROLE)) {\n setAttr(el, ATTR_ROLE, 'button');\n }\n\n if (!hasAttr(el, ATTR_TABINDEX)) {\n setAttr(el, ATTR_TABINDEX, '0');\n }\n } // Ensure the collapse class and `aria-*` attributes persist\n // after element is updated (either by parent re-rendering\n // or changes to this element or its contents)\n\n\n setToggleState(el, el[BV_TOGGLE_STATE]); // Parse list of target IDs\n\n var targets = getTargets(binding, el); // Ensure the `aria-controls` hasn't been overwritten\n // or removed when vnode updates\n // Also ensure to set `overflow-anchor` to `none` to prevent\n // the browser's scroll anchoring behavior\n\n /* istanbul ignore else */\n\n if (targets.length > 0) {\n setAttr(el, ATTR_ARIA_CONTROLS, targets.join(' '));\n setStyle(el, STYLE_OVERFLOW_ANCHOR, 'none');\n } else {\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n } // Add/Update our click listener(s)\n // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n addClickListener(el, vnode);\n }); // If targets array has changed, update\n\n if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {\n // Update targets array to element storage\n el[BV_TOGGLE_TARGETS] = targets; // Ensure `aria-controls` is up to date\n // Request a state update from targets so that we can\n // ensure expanded state is correct (in most cases)\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, target);\n });\n }\n};\n/*\n * Export our directive\n */\n\n\nexport var VBToggle = {\n bind: function bind(el, binding, vnode) {\n // State is initially collapsed until we receive a state event\n el[BV_TOGGLE_STATE] = false; // Assume no targets initially\n\n el[BV_TOGGLE_TARGETS] = []; // Add our root listeners\n\n addRootListeners(el, vnode); // Initial update of trigger\n\n handleUpdate(el, binding, vnode);\n },\n componentUpdated: handleUpdate,\n updated: handleUpdate,\n unbind: function unbind(el, binding, vnode) {\n removeClickListener(el); // Remove our $root listener\n\n removeRootListeners(el, vnode); // Reset custom props\n\n resetProp(el, BV_TOGGLE_ROOT_HANDLER);\n resetProp(el, BV_TOGGLE_CLICK_HANDLER);\n resetProp(el, BV_TOGGLE_STATE);\n resetProp(el, BV_TOGGLE_TARGETS); // Reset classes/attrs/styles\n\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n removeAttr(el, ATTR_ARIA_EXPANDED);\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeAttr(el, ATTR_ROLE);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n }\n};","import { VBToggle } from './toggle';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBTogglePlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBToggle: VBToggle\n }\n});\nexport { VBTogglePlugin, VBToggle };","import { BCollapse } from './collapse';\nimport { VBTogglePlugin } from '../../directives/toggle';\nimport { pluginFactory } from '../../utils/plugins';\nvar CollapsePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCollapse: BCollapse\n },\n plugins: {\n VBTogglePlugin: VBTogglePlugin\n }\n});\nexport { CollapsePlugin, BCollapse };","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.\n * It will read the variation of the `placement` property.\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.\n * These can be overridden using the `options` argument of Popper.js.\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","function _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\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from './object';\nexport var BvEvent = /*#__PURE__*/function () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent);\n\n // Start by emulating native Event constructor\n if (!type) {\n /* istanbul ignore next */\n throw new TypeError(\"Failed to construct '\".concat(this.constructor.name, \"'. 1 argument required, \").concat(arguments.length, \" given.\"));\n } // Merge defaults first, the eventInit, and the type last\n // so it can't be overwritten\n\n\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, {\n type: type\n }); // Freeze some props as readonly, but leave them enumerable\n\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor(),\n componentId: readonlyDescriptor()\n }); // Create a private variable using closure scoping\n\n var defaultPrevented = false; // Recreate preventDefault method. One way setter\n\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n }; // Create `defaultPrevented` publicly accessible prop that\n // can only be altered by the preventDefault method\n\n\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null,\n componentId: null\n };\n }\n }]);\n\n return BvEvent;\n}();","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\n }\n }\n});","function 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\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { HAS_TOUCH_SUPPORT } from '../constants/env';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n },\n hideDelay: function hideDelay() {\n return this.inNavbar ? HAS_TOUCH_SUPPORT ? 300 : 50 : 0;\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.hideDelay);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleAttrs: makeProp(PROP_TYPE_OBJECT, {}),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var ariaHasPopupRoles = ['menu', 'listbox', 'tree', 'grid', 'dialog'];\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: _objectSpread(_objectSpread({}, this.toggleAttrs), {}, {\n // Must have attributes\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': ariaHasPopupRoles.includes(role) ? role : 'false',\n 'aria-expanded': toString(visible)\n }),\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: pluckProps(linkProps, this.$props),\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN_ITEM_BUTTON } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n active: makeProp(PROP_TYPE_BOOLEAN, false),\n activeClass: makeProp(PROP_TYPE_STRING, 'active'),\n buttonClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_ITEM_BUTTON); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItemButton = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM_BUTTON,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem',\n type: 'button',\n disabled: this.disabled\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n if (this.bvDropdown) {\n this.bvDropdown.hide(true);\n }\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var _ref;\n\n var active = this.active,\n variant = this.variant,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h('button', {\n staticClass: 'dropdown-item',\n class: [this.buttonClass, (_ref = {}, _defineProperty(_ref, this.activeClass, active), _defineProperty(_ref, \"text-\".concat(variant), variant && !(active || this.disabled)), _ref)],\n attrs: this.computedAttrs,\n on: {\n click: this.onClick\n },\n ref: 'button'\n }, this.normalizeSlot())]);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_HEADER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'header'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownHeader = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.tag,\n variant = props.variant;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'dropdown-header',\n class: _defineProperty({}, \"text-\".concat(variant), variant),\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n id: props.id || null,\n role: isTag(tag, 'header') ? null : 'heading'\n }),\n ref: 'header'\n }, children)]);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_DIVIDER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { omit } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'hr')\n}, NAME_DROPDOWN_DIVIDER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownDivider = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_DIVIDER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(props.tag, {\n staticClass: 'dropdown-divider',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n role: 'separator',\n 'aria-orientation': 'horizontal'\n }),\n ref: 'divider'\n })]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_FORM } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BForm, props as formControlProps } from '../form/form'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formControlProps), {}, {\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})), NAME_DROPDOWN_FORM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownForm = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n return h('li', mergeData(omit(data, ['attrs', 'on']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(BForm, {\n staticClass: 'b-dropdown-form',\n class: [props.formClass, {\n disabled: props.disabled\n }],\n props: props,\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n disabled: props.disabled,\n // Tab index of -1 for keyboard navigation\n tabindex: props.disabled ? null : '-1'\n }),\n on: listeners,\n ref: 'form'\n }, children)]);\n }\n});","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_TEXT } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'p'),\n textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BDropdownText = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.tag,\n textClass = props.textClass,\n variant = props.variant;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'b-dropdown-text',\n class: [textClass, _defineProperty({}, \"text-\".concat(variant), variant)],\n props: props,\n attrs: data.attrs || {},\n ref: 'text'\n }, children)]);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_GROUP } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { isTag } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaDescribedby: makeProp(PROP_TYPE_STRING),\n header: makeProp(PROP_TYPE_STRING),\n headerClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n headerVariant: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BDropdownGroup = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var id = props.id,\n variant = props.variant,\n header = props.header,\n headerTag = props.headerTag;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var slotScope = {};\n var headerId = id ? \"_bv_\".concat(id, \"_group_dd_header\") : null;\n var $header = h();\n\n if (hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots) || header) {\n $header = h(headerTag, {\n staticClass: 'dropdown-header',\n class: [props.headerClasses, _defineProperty({}, \"text-\".concat(variant), variant)],\n attrs: {\n id: headerId,\n role: isTag(headerTag, 'header') ? null : 'heading'\n }\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots) || header);\n }\n\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [$header, h('ul', {\n staticClass: 'list-unstyled',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n id: id,\n role: 'group',\n 'aria-describedby': [headerId, props.ariaDescribedBy].filter(identity).join(' ').trim() || null\n })\n }, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots))]);\n }\n});","import { BDropdown } from './dropdown';\nimport { BDropdownItem } from './dropdown-item';\nimport { BDropdownItemButton } from './dropdown-item-button';\nimport { BDropdownHeader } from './dropdown-header';\nimport { BDropdownDivider } from './dropdown-divider';\nimport { BDropdownForm } from './dropdown-form';\nimport { BDropdownText } from './dropdown-text';\nimport { BDropdownGroup } from './dropdown-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar DropdownPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BDropdown: BDropdown,\n BDd: BDropdown,\n BDropdownItem: BDropdownItem,\n BDdItem: BDropdownItem,\n BDropdownItemButton: BDropdownItemButton,\n BDropdownItemBtn: BDropdownItemButton,\n BDdItemButton: BDropdownItemButton,\n BDdItemBtn: BDropdownItemButton,\n BDropdownHeader: BDropdownHeader,\n BDdHeader: BDropdownHeader,\n BDropdownDivider: BDropdownDivider,\n BDdDivider: BDropdownDivider,\n BDropdownForm: BDropdownForm,\n BDdForm: BDropdownForm,\n BDropdownText: BDropdownText,\n BDdText: BDropdownText,\n BDropdownGroup: BDropdownGroup,\n BDdGroup: BDropdownGroup\n }\n});\nexport { DropdownPlugin, BDropdown, BDropdownItem, BDropdownItemButton, BDropdownHeader, BDropdownDivider, BDropdownForm, BDropdownText, BDropdownGroup };","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_EMBED } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Constants ---\n\nvar TYPES = ['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy']; // --- Props ---\n\nexport var props = makePropsConfigurable({\n aspect: makeProp(PROP_TYPE_STRING, '16by9'),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n type: makeProp(PROP_TYPE_STRING, 'iframe', function (value) {\n return arrayIncludes(TYPES, value);\n })\n}, NAME_EMBED); // --- Main component ---\n// @vue/component\n\nexport var BEmbed = /*#__PURE__*/Vue.extend({\n name: NAME_EMBED,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var aspect = props.aspect;\n return h(props.tag, {\n staticClass: 'embed-responsive',\n class: _defineProperty({}, \"embed-responsive-\".concat(aspect), aspect),\n ref: data.ref\n }, [h(props.type, mergeData(omit(data, ['ref']), {\n staticClass: 'embed-responsive-item'\n }), children)]);\n }\n});","import { BEmbed } from './embed';\nimport { pluginFactory } from '../../utils/plugins';\nvar EmbedPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BEmbed: BEmbed\n }\n});\nexport { EmbedPlugin, BEmbed };","import { Vue } from '../vue';\nimport { PROP_TYPE_ARRAY_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { get } from '../utils/get';\nimport { stripTags } from '../utils/html';\nimport { isArray, isPlainObject, isUndefined } from '../utils/inspect';\nimport { keys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn'; // --- Constants ---\n\nvar OPTIONS_OBJECT_DEPRECATED_MSG = 'Setting prop \"options\" to an object is deprecated. Use the array format instead.'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabledField: makeProp(PROP_TYPE_STRING, 'disabled'),\n htmlField: makeProp(PROP_TYPE_STRING, 'html'),\n options: makeProp(PROP_TYPE_ARRAY_OBJECT, []),\n textField: makeProp(PROP_TYPE_STRING, 'text'),\n valueField: makeProp(PROP_TYPE_STRING, 'value')\n}, 'formOptionControls'); // --- Mixin ---\n// @vue/component\n\nexport var formOptionsMixin = Vue.extend({\n props: props,\n computed: {\n formOptions: function formOptions() {\n return this.normalizeOptions(this.options);\n }\n },\n methods: {\n normalizeOption: function normalizeOption(option) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When the option is an object, normalize it\n if (isPlainObject(option)) {\n var value = get(option, this.valueField);\n var text = get(option, this.textField);\n return {\n value: isUndefined(value) ? key || text : value,\n text: stripTags(String(isUndefined(text) ? key : text)),\n html: get(option, this.htmlField),\n disabled: Boolean(get(option, this.disabledField))\n };\n } // Otherwise create an `` object from the given value\n\n\n return {\n value: key || option,\n text: stripTags(String(option)),\n disabled: false\n };\n },\n normalizeOptions: function normalizeOptions(options) {\n var _this = this;\n\n // Normalize the given options array\n if (isArray(options)) {\n return options.map(function (option) {\n return _this.normalizeOption(option);\n });\n } else if (isPlainObject(options)) {\n // Deprecate the object options format\n warn(OPTIONS_OBJECT_DEPRECATED_MSG, this.$options.name); // Normalize a `options` object to an array of options\n\n return keys(options).map(function (key) {\n return _this.normalizeOption(options[key] || {}, key);\n });\n } // If not an array or object, return an empty array\n\n /* istanbul ignore next */\n\n\n return [];\n }\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_DATALIST } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formOptionsMixin, props as formOptionsProps } from '../../mixins/form-options';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formOptionsProps), {}, {\n id: makeProp(PROP_TYPE_STRING, undefined, true) // Required\n\n})), NAME_FORM_DATALIST); // --- Main component ---\n// @vue/component\n\nexport var BFormDatalist = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_DATALIST,\n mixins: [formOptionsMixin, normalizeSlotMixin],\n props: props,\n render: function render(h) {\n var id = this.id;\n var $options = this.formOptions.map(function (option, index) {\n var value = option.value,\n text = option.text,\n html = option.html,\n disabled = option.disabled;\n return h('option', {\n attrs: {\n value: value,\n disabled: disabled\n },\n domProps: htmlOrText(html, text),\n key: \"option_\".concat(index)\n });\n });\n return h('datalist', {\n attrs: {\n id: id\n }\n }, [$options, this.normalizeSlot()]);\n }\n});","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_TEXT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'small'),\n textVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_FORM_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BFormText = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n id: props.id\n }\n }), children);\n }\n});","var _watch, _methods;\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\nimport { Vue } from '../vue';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { EVENT_NAME_CHANGE } from '../constants/events';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { isBoolean } from '../utils/inspect';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { attrsMixin } from './attrs';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('checked', {\n defaultValue: null\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // Only applicable in standalone mode (non group)\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY)\n})), 'formRadioCheckControls'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckMixin = Vue.extend({\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this.isGroup ? this.bvGroup[MODEL_PROP_NAME] : this[MODEL_PROP_NAME],\n hasFocus: false\n };\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n return this.isGroup ? this.bvGroup.localChecked : this.localChecked;\n },\n set: function set(value) {\n if (this.isGroup) {\n this.bvGroup.localChecked = value;\n } else {\n this.localChecked = value;\n }\n }\n },\n isChecked: function isChecked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n isRadio: function isRadio() {\n return true;\n },\n isGroup: function isGroup() {\n // Is this check/radio a child of check-group or radio-group?\n return !!this.bvGroup;\n },\n isBtnMode: function isBtnMode() {\n // Support button style in single input mode\n return this.isGroup ? this.bvGroup.buttons : this.button;\n },\n isPlain: function isPlain() {\n return this.isBtnMode ? false : this.isGroup ? this.bvGroup.plain : this.plain;\n },\n isCustom: function isCustom() {\n return this.isBtnMode ? false : !this.isPlain;\n },\n isSwitch: function isSwitch() {\n // Custom switch styling (checkboxes only)\n return this.isBtnMode || this.isRadio || this.isPlain ? false : this.isGroup ? this.bvGroup.switches : this.switch;\n },\n isInline: function isInline() {\n return this.isGroup ? this.bvGroup.inline : this.inline;\n },\n isDisabled: function isDisabled() {\n // Child can be disabled while parent isn't, but is always disabled if group is\n return this.isGroup ? this.bvGroup.disabled || this.disabled : this.disabled;\n },\n isRequired: function isRequired() {\n // Required only works when a name is provided for the input(s)\n // Child can only be required when parent is\n // Groups will always have a name (either user supplied or auto generated)\n return this.computedName && (this.isGroup ? this.bvGroup.required : this.required);\n },\n computedName: function computedName() {\n // Group name preferred over local name\n return (this.isGroup ? this.bvGroup.groupName : this.name) || null;\n },\n computedForm: function computedForm() {\n return (this.isGroup ? this.bvGroup.form : this.form) || null;\n },\n computedSize: function computedSize() {\n return (this.isGroup ? this.bvGroup.size : this.size) || '';\n },\n computedState: function computedState() {\n return this.isGroup ? this.bvGroup.computedState : isBoolean(this.state) ? this.state : null;\n },\n computedButtonVariant: function computedButtonVariant() {\n // Local variant preferred over group variant\n var buttonVariant = this.buttonVariant;\n\n if (buttonVariant) {\n return buttonVariant;\n }\n\n if (this.isGroup && this.bvGroup.buttonVariant) {\n return this.bvGroup.buttonVariant;\n }\n\n return 'secondary';\n },\n buttonClasses: function buttonClasses() {\n var _ref;\n\n var computedSize = this.computedSize;\n return ['btn', \"btn-\".concat(this.computedButtonVariant), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(computedSize), computedSize), _defineProperty(_ref, \"disabled\", this.isDisabled), _defineProperty(_ref, \"active\", this.isChecked), _defineProperty(_ref, \"focus\", this.hasFocus), _ref)];\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.isDisabled,\n required = this.isRequired;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n type: this.isRadio ? 'radio' : 'checkbox',\n name: this.computedName,\n form: this.computedForm,\n disabled: disabled,\n required: required,\n 'aria-required': required || null,\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function () {\n this[\"\".concat(MODEL_PROP_NAME, \"Watcher\")].apply(this, arguments);\n }), _defineProperty(_watch, \"computedLocalChecked\", function computedLocalChecked() {\n this.computedLocalCheckedWatcher.apply(this, arguments);\n }), _watch),\n methods: (_methods = {}, _defineProperty(_methods, \"\".concat(MODEL_PROP_NAME, \"Watcher\"), function Watcher(newValue) {\n if (!looseEqual(newValue, this.computedLocalChecked)) {\n this.computedLocalChecked = newValue;\n }\n }), _defineProperty(_methods, \"computedLocalCheckedWatcher\", function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_methods, \"handleChange\", function handleChange(_ref2) {\n var _this = this;\n\n var checked = _ref2.target.checked;\n var value = this.value;\n var localChecked = checked ? value : null;\n this.computedLocalChecked = value; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n });\n }), _defineProperty(_methods, \"handleFocus\", function handleFocus(event) {\n // When in buttons mode, we need to add 'focus' class to label when input focused\n // As it is the hidden input which has actual focus\n if (event.target) {\n if (event.type === 'focus') {\n this.hasFocus = true;\n } else if (event.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }), _defineProperty(_methods, \"focus\", function focus() {\n if (!this.isDisabled) {\n attemptFocus(this.$refs.input);\n }\n }), _defineProperty(_methods, \"blur\", function blur() {\n if (!this.isDisabled) {\n attemptBlur(this.$refs.input);\n }\n }), _methods),\n render: function render(h) {\n var isRadio = this.isRadio,\n isBtnMode = this.isBtnMode,\n isPlain = this.isPlain,\n isCustom = this.isCustom,\n isInline = this.isInline,\n isSwitch = this.isSwitch,\n computedSize = this.computedSize,\n bvAttrs = this.bvAttrs;\n var $content = this.normalizeSlot();\n var $input = h('input', {\n class: [{\n 'form-check-input': isPlain,\n 'custom-control-input': isCustom,\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n 'position-static': isPlain && !$content\n }, isBtnMode ? '' : this.stateClass],\n directives: [{\n name: 'model',\n value: this.computedLocalChecked\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.value,\n checked: this.isChecked\n },\n on: _objectSpread({\n change: this.handleChange\n }, isBtnMode ? {\n focus: this.handleFocus,\n blur: this.handleFocus\n } : {}),\n key: 'input',\n ref: 'input'\n });\n\n if (isBtnMode) {\n var $button = h('label', {\n class: this.buttonClasses\n }, [$input, $content]);\n\n if (!this.isGroup) {\n // Standalone button mode, so wrap in 'btn-group-toggle'\n // and flag it as inline-block to mimic regular buttons\n $button = h('div', {\n class: ['btn-group-toggle', 'd-inline-block']\n }, [$button]);\n }\n\n return $button;\n } // If no label content in plain mode we dont render the label\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2911\n\n\n var $label = h();\n\n if (!(isPlain && !$content)) {\n $label = h('label', {\n class: {\n 'form-check-label': isPlain,\n 'custom-control-label': isCustom\n },\n attrs: {\n for: this.safeId()\n }\n }, $content);\n }\n\n return h('div', {\n class: [_defineProperty({\n 'form-check': isPlain,\n 'form-check-inline': isPlain && isInline,\n 'custom-control': isCustom,\n 'custom-control-inline': isCustom && isInline,\n 'custom-checkbox': isCustom && !isRadio && !isSwitch,\n 'custom-switch': isSwitch,\n 'custom-radio': isCustom && isRadio\n }, \"b-custom-control-\".concat(computedSize), computedSize && !isBtnMode), bvAttrs.class],\n style: bvAttrs.style\n }, [$input, $label]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_INVALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_INVALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormInvalidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INVALID_FEEDBACK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === false;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'invalid-feedback': !tooltip,\n 'invalid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_VALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_VALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormValidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_VALID_FEEDBACK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === true;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'valid-feedback': !tooltip,\n 'valid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_ROW } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_FORM_ROW); // --- Main component ---\n// @vue/component\n\nexport var BFormRow = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_ROW,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'form-row'\n }), children);\n }\n});","import { BForm } from './form';\nimport { BFormDatalist } from './form-datalist';\nimport { BFormText } from './form-text';\nimport { BFormInvalidFeedback } from './form-invalid-feedback';\nimport { BFormValidFeedback } from './form-valid-feedback';\nimport { BFormRow } from '../layout/form-row';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BForm: BForm,\n BFormDatalist: BFormDatalist,\n BDatalist: BFormDatalist,\n BFormText: BFormText,\n BFormInvalidFeedback: BFormInvalidFeedback,\n BFormFeedback: BFormInvalidFeedback,\n BFormValidFeedback: BFormValidFeedback,\n // Added here for convenience\n BFormRow: BFormRow\n }\n}); // BFormRow is not exported here as a named export, as it is exported by Layout\n\nexport { FormPlugin, BForm, BFormDatalist, BFormText, BFormInvalidFeedback, BFormValidFeedback };","import { looseEqual } from './loose-equal'; // Assumes that the first argument is an array\n\nexport var looseIndexOf = function looseIndexOf(array, value) {\n for (var i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n\n return -1;\n};","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true for is-valid\n * - false for is-invalid\n * - null for no contextual state\n */\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { isBoolean } from '../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Tri-state prop: true, false, null (or undefined)\n state: makeProp(PROP_TYPE_BOOLEAN, null)\n}, 'formState'); // --- Mixin ---\n// @vue/component\n\nexport var formStateMixin = Vue.extend({\n props: props,\n computed: {\n computedState: function computedState() {\n // If not a boolean, ensure that value is null\n return isBoolean(this.state) ? this.state : null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n return state === true ? 'is-valid' : state === false ? 'is-invalid' : null;\n },\n computedAriaInvalid: function computedAriaInvalid() {\n var ariaInvalid = this.ariaInvalid;\n\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true';\n }\n\n return this.computedState === false ? 'true' : ariaInvalid;\n }\n }\n});","var _objectSpread2;\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Constants ---\n\nvar MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nvar MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_INDETERMINATE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"switch\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"uncheckedValue\", makeProp(PROP_TYPE_ANY, false)), _defineProperty(_objectSpread2, \"value\", makeProp(PROP_TYPE_ANY, true)), _objectSpread2))), NAME_FORM_CHECKBOX); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckbox = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvCheckGroup',\n default: null\n }\n },\n props: props,\n computed: {\n isChecked: function isChecked() {\n var value = this.value,\n checked = this.computedLocalChecked;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio: function isRadio() {\n return false;\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME_INDETERMINATE, function (newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }),\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher: function computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n var $input = this.$refs.input;\n\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange: function handleChange(_ref) {\n var _this = this;\n\n var _ref$target = _ref.target,\n checked = _ref$target.checked,\n indeterminate = _ref$target.indeterminate;\n var value = this.value,\n uncheckedValue = this.uncheckedValue; // Update `computedLocalChecked`\n\n var localChecked = this.computedLocalChecked;\n\n if (isArray(localChecked)) {\n var index = looseIndexOf(localChecked, value);\n\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n\n this.computedLocalChecked = localChecked; // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n\n this.$nextTick(function () {\n // Change is only emitted on user interaction\n _this.$emit(EVENT_NAME_CHANGE, localChecked); // If this is a child of a group, we emit a change event on it as well\n\n\n if (_this.isGroup) {\n _this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n\n _this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n\n var $input = this.$refs.input;\n\n if ($input) {\n $input.indeterminate = state; // Emit update event to prop\n\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});","var _watch;\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\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_FIRST } from '../constants/slots';\nimport { htmlOrText } from '../utils/html';\nimport { looseEqual } from '../utils/loose-equal';\nimport { makeModelMixin } from '../utils/model';\nimport { omit, pick, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { BFormCheckbox } from '../components/form-checkbox/form-checkbox';\nimport { BFormRadio } from '../components/form-radio/form-radio';\nimport { formControlMixin, props as formControlProps } from './form-control';\nimport { formCustomMixin, props as formCustomProps } from './form-custom';\nimport { formOptionsMixin, props as formOptionsProps } from './form-options';\nimport { formSizeMixin, props as formSizeProps } from './form-size';\nimport { formStateMixin, props as formStateProps } from './form-state';\nimport { idMixin, props as idProps } from './id';\nimport { normalizeSlotMixin } from './normalize-slot'; // --- Constants ---\n// Attributes to pass down to checks/radios instead of applying them to the group\n\nvar PASS_DOWN_ATTRS = ['aria-describedby', 'aria-labelledby'];\n\nvar _makeModelMixin = makeModelMixin('checked'),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formOptionsProps), formSizeProps), formStateProps), formCustomProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n // Only applicable when rendered with button style\n buttonVariant: makeProp(PROP_TYPE_STRING),\n // Render as button style\n buttons: makeProp(PROP_TYPE_BOOLEAN, false),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formRadioCheckGroups'); // --- Mixin ---\n// @vue/component\n\nexport var formRadioCheckGroupMixin = Vue.extend({\n mixins: [idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formOptionsMixin, formSizeMixin, formStateMixin, formCustomMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localChecked: this[MODEL_PROP_NAME]\n };\n },\n computed: {\n inline: function inline() {\n return !this.stacked;\n },\n groupName: function groupName() {\n // Checks/Radios tied to the same model must have the same name,\n // especially for ARIA accessibility\n return this.name || this.safeId();\n },\n groupClasses: function groupClasses() {\n var inline = this.inline,\n size = this.size,\n validated = this.validated;\n var classes = {\n 'was-validated': validated\n };\n\n if (this.buttons) {\n classes = [classes, 'btn-group-toggle', _defineProperty({\n 'btn-group': inline,\n 'btn-group-vertical': !inline\n }, \"btn-group-\".concat(size), size)];\n }\n\n return classes;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!looseEqual(newValue, this.localChecked)) {\n this.localChecked = newValue;\n }\n }), _defineProperty(_watch, \"localChecked\", function localChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n render: function render(h) {\n var _this = this;\n\n var isRadioGroup = this.isRadioGroup;\n var attrs = pick(this.$attrs, PASS_DOWN_ATTRS);\n var optionComponent = isRadioGroup ? BFormRadio : BFormCheckbox;\n var $inputs = this.formOptions.map(function (option, index) {\n var key = \"BV_option_\".concat(index);\n return h(optionComponent, {\n props: {\n // Individual radios or checks can be disabled in a group\n disabled: option.disabled || false,\n id: _this.safeId(key),\n value: option.value // We don't need to include these, since the input's will know they are inside here\n // form: this.form || null,\n // name: this.groupName,\n // required: Boolean(this.name && this.required),\n // state: this.state\n\n },\n attrs: attrs,\n key: key\n }, [h('span', {\n domProps: htmlOrText(option.html, option.text)\n })]);\n });\n return h('div', {\n class: [this.groupClasses, 'bv-no-focus-ring'],\n attrs: _objectSpread(_objectSpread({}, omit(this.$attrs, PASS_DOWN_ATTRS)), {}, {\n 'aria-invalid': this.computedAriaInvalid,\n 'aria-required': this.required ? 'true' : null,\n id: this.safeId(),\n role: isRadioGroup ? 'radiogroup' : 'group',\n // Add `tabindex=\"-1\"` to allow group to be focused if needed by screen readers\n tabindex: '-1'\n })\n }, [this.normalizeSlot(SLOT_NAME_FIRST), $inputs, this.normalizeSlot()]);\n }\n});","import { Vue } from '../../vue';\nimport { NAME_FORM_RADIO } from '../../constants/components';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check'; // --- Props ---\n\nexport var props = makePropsConfigurable(formRadioCheckProps, NAME_FORM_RADIO); // --- Main component ---\n// @vue/component\n\nexport var BFormRadio = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO,\n mixins: [formRadioCheckMixin],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: props,\n watch: {\n computedLocalChecked: function computedLocalChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }\n }\n});","var _objectSpread2;\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_CHECKBOX_GROUP } from '../../constants/components';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, formRadioCheckGroupMixin, props as formRadioCheckGroupProps } from '../../mixins/form-radio-check-group'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formRadioCheckGroupProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])), _defineProperty(_objectSpread2, \"switches\", makeProp(PROP_TYPE_BOOLEAN, false)), _objectSpread2))), NAME_FORM_CHECKBOX_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormCheckboxGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_CHECKBOX_GROUP,\n // Includes render function\n mixins: [formRadioCheckGroupMixin],\n provide: function provide() {\n return {\n bvCheckGroup: this\n };\n },\n props: props,\n computed: {\n isRadioGroup: function isRadioGroup() {\n return false;\n }\n }\n});","import { BFormCheckbox } from './form-checkbox';\nimport { BFormCheckboxGroup } from './form-checkbox-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormCheckboxPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormCheckbox: BFormCheckbox,\n BCheckbox: BFormCheckbox,\n BCheck: BFormCheckbox,\n BFormCheckboxGroup: BFormCheckboxGroup,\n BCheckboxGroup: BFormCheckboxGroup,\n BCheckGroup: BFormCheckboxGroup\n }\n});\nexport { FormCheckboxPlugin, BFormCheckbox, BFormCheckboxGroup };","// v-b-hover directive\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { eventOnOff } from '../../utils/events';\nimport { isFunction } from '../../utils/inspect'; // --- Constants ---\n\nvar PROP = '__BV_hover_handler__';\nvar MOUSEENTER = 'mouseenter';\nvar MOUSELEAVE = 'mouseleave'; // --- Helper methods ---\n\nvar createListener = function createListener(handler) {\n var listener = function listener(event) {\n handler(event.type === MOUSEENTER, event);\n };\n\n listener.fn = handler;\n return listener;\n};\n\nvar updateListeners = function updateListeners(on, el, listener) {\n eventOnOff(on, el, MOUSEENTER, listener, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, el, MOUSELEAVE, listener, EVENT_OPTIONS_NO_CAPTURE);\n}; // --- Directive bind/unbind/update handler ---\n\n\nvar directive = function directive(el, _ref) {\n var _ref$value = _ref.value,\n handler = _ref$value === void 0 ? null : _ref$value;\n\n if (IS_BROWSER) {\n var listener = el[PROP];\n var hasListener = isFunction(listener);\n var handlerChanged = !(hasListener && listener.fn === handler);\n\n if (hasListener && handlerChanged) {\n updateListeners(false, el, listener);\n delete el[PROP];\n }\n\n if (isFunction(handler) && handlerChanged) {\n el[PROP] = createListener(handler);\n updateListeners(true, el, el[PROP]);\n }\n }\n}; // VBHover directive\n\n\nexport var VBHover = {\n bind: directive,\n componentUpdated: directive,\n unbind: function unbind(el) {\n directive(el, {\n value: null\n });\n }\n};","function 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\n//\n// Private component used by `b-form-datepicker` and `b-form-timepicker`\n//\nimport { Vue } from '../../vue';\nimport { NAME_FORM_BUTTON_LABEL_CONTROL } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { props as formControlProps } from '../../mixins/form-control';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBHover } from '../../directives/hover/hover';\nimport { BIconChevronDown } from '../../icons/icons'; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formSizeProps), formStateProps), omit(dropdownProps, ['disabled'])), omit(formControlProps, ['autofocus'])), {}, {\n // When `true`, renders a `btn-group` wrapper and visually hides the label\n buttonOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Applicable in button mode only\n buttonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // This is the value shown in the label\n // Defaults back to `value`\n formattedValue: makeProp(PROP_TYPE_STRING),\n // Value placed in `.sr-only` span inside label when value is present\n labelSelected: makeProp(PROP_TYPE_STRING),\n lang: makeProp(PROP_TYPE_STRING),\n // Extra classes to apply to the `dropdown-menu` div\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // This is the value placed on the hidden input when no value selected\n placeholder: makeProp(PROP_TYPE_STRING),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state prop: `true`, `false` or `null`\n rtl: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_STRING, '')\n})); // --- Main component ---\n// @vue/component\n\nexport var BVFormBtnLabelControl = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_BUTTON_LABEL_CONTROL,\n directives: {\n 'b-hover': VBHover\n },\n mixins: [idMixin, formSizeMixin, formStateMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n isHovered: false,\n hasFocus: false\n };\n },\n computed: {\n idButton: function idButton() {\n return this.safeId();\n },\n idLabel: function idLabel() {\n return this.safeId('_value_');\n },\n idMenu: function idMenu() {\n return this.safeId('_dialog_');\n },\n idWrapper: function idWrapper() {\n return this.safeId('_outer_');\n },\n computedDir: function computedDir() {\n return this.rtl === true ? 'rtl' : this.rtl === false ? 'ltr' : null;\n }\n },\n methods: {\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.toggle);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.toggle);\n }\n },\n setFocus: function setFocus(event) {\n this.hasFocus = event.type === 'focus';\n },\n handleHover: function handleHover(hovered) {\n this.isHovered = hovered;\n }\n },\n render: function render(h) {\n var _class;\n\n var idButton = this.idButton,\n idLabel = this.idLabel,\n idMenu = this.idMenu,\n idWrapper = this.idWrapper,\n disabled = this.disabled,\n readonly = this.readonly,\n required = this.required,\n name = this.name,\n state = this.state,\n visible = this.visible,\n size = this.size,\n isHovered = this.isHovered,\n hasFocus = this.hasFocus,\n labelSelected = this.labelSelected,\n buttonVariant = this.buttonVariant,\n buttonOnly = this.buttonOnly;\n var value = toString(this.value) || '';\n var invalid = state === false || required && !value;\n var btnScope = {\n isHovered: isHovered,\n hasFocus: hasFocus,\n state: state,\n opened: visible\n };\n var $button = h('button', {\n staticClass: 'btn',\n class: (_class = {}, _defineProperty(_class, \"btn-\".concat(buttonVariant), buttonOnly), _defineProperty(_class, \"btn-\".concat(size), size), _defineProperty(_class, 'h-auto', !buttonOnly), _defineProperty(_class, 'dropdown-toggle', buttonOnly), _defineProperty(_class, 'dropdown-toggle-no-caret', buttonOnly), _class),\n attrs: {\n id: idButton,\n type: 'button',\n disabled: disabled,\n 'aria-haspopup': 'dialog',\n 'aria-expanded': visible ? 'true' : 'false',\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n mousedown: this.onMousedown,\n click: this.toggle,\n keydown: this.toggle,\n // Handle ENTER, SPACE and DOWN\n '!focus': this.setFocus,\n '!blur': this.setFocus\n },\n ref: 'toggle'\n }, [this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT, btnScope) :\n /* istanbul ignore next */\n h(BIconChevronDown, {\n props: {\n scale: 1.25\n }\n })]); // Hidden input\n\n var $hidden = h();\n\n if (name && !disabled) {\n $hidden = h('input', {\n attrs: {\n type: 'hidden',\n name: name || null,\n form: this.form || null,\n value: value\n }\n });\n } // Dropdown content\n\n\n var $menu = h('div', {\n staticClass: 'dropdown-menu',\n class: [this.menuClass, {\n show: visible,\n 'dropdown-menu-right': this.right\n }],\n attrs: {\n id: idMenu,\n role: 'dialog',\n tabindex: '-1',\n 'aria-modal': 'false',\n 'aria-labelledby': idLabel\n },\n on: {\n keydown: this.onKeydown // Handle ESC\n\n },\n ref: 'menu'\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n opened: visible\n })]); // Value label\n\n var $label = h('label', {\n class: buttonOnly ? 'sr-only' // Hidden in button only mode\n : ['form-control', // Mute the text if showing the placeholder\n {\n 'text-muted': !value\n }, this.stateClass, this.sizeFormClass],\n attrs: {\n id: idLabel,\n for: idButton,\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n // Disable bubbling of the click event to\n // prevent menu from closing and re-opening\n '!click':\n /* istanbul ignore next */\n function click(event) {\n stopEvent(event, {\n preventDefault: false\n });\n }\n }\n }, [value ? this.formattedValue || value : this.placeholder || '', // Add the selected label for screen readers when a value is provided\n value && labelSelected ? h('bdi', {\n staticClass: 'sr-only'\n }, labelSelected) : '']); // Return the custom form control wrapper\n\n return h('div', {\n staticClass: 'b-form-btn-label-control dropdown',\n class: [this.directionClass, this.boundaryClass, [{\n 'btn-group': buttonOnly,\n 'form-control': !buttonOnly,\n focus: hasFocus && !buttonOnly,\n show: visible,\n 'is-valid': state === true,\n 'is-invalid': state === false\n }, buttonOnly ? null : this.sizeFormClass]],\n attrs: {\n id: idWrapper,\n role: buttonOnly ? null : 'group',\n lang: this.lang || null,\n dir: this.computedDir,\n 'aria-disabled': disabled,\n 'aria-readonly': readonly && !disabled,\n 'aria-labelledby': idLabel,\n 'aria-invalid': state === false || required && !value ? 'true' : null,\n 'aria-required': required ? 'true' : null\n }\n }, [$button, $hidden, $menu, $label]);\n }\n});","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_DATEPICKER } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT } from '../../constants/slots';\nimport { createDate, constrainDate, formatYMD, parseYMD } from '../../utils/date';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { BIconCalendar, BIconCalendarFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BCalendar, props as BCalendarProps } from '../calendar/calendar';\nimport { BVFormBtnLabelControl, props as BVFormBtnLabelControlProps } from '../form-btn-label-control/bv-form-btn-label-control'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nvar calendarProps = omit(BCalendarProps, ['block', 'hidden', 'id', 'noKeyNav', 'roleDescription', 'value', 'width']);\nvar formBtnLabelControlProps = omit(BVFormBtnLabelControlProps, ['formattedValue', 'id', 'lang', 'rtl', 'value']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), calendarProps), formBtnLabelControlProps), {}, {\n // Width of the calendar dropdown\n calendarWidth: makeProp(PROP_TYPE_STRING, '270px'),\n closeButton: makeProp(PROP_TYPE_BOOLEAN, false),\n closeButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n // Dark mode\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n labelCloseButton: makeProp(PROP_TYPE_STRING, 'Close'),\n labelResetButton: makeProp(PROP_TYPE_STRING, 'Reset'),\n labelTodayButton: makeProp(PROP_TYPE_STRING, 'Select today'),\n noCloseOnSelect: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButton: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-danger'),\n resetValue: makeProp(PROP_TYPE_DATE_STRING),\n todayButton: makeProp(PROP_TYPE_BOOLEAN, false),\n todayButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-primary')\n})), NAME_FORM_DATEPICKER); // --- Main component ---\n// @vue/component\n\nexport var BFormDatepicker = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_DATEPICKER,\n mixins: [idMixin, modelMixin],\n props: props,\n data: function data() {\n return {\n // We always use `YYYY-MM-DD` value internally\n localYMD: formatYMD(this[MODEL_PROP_NAME]) || '',\n // If the popup is open\n isVisible: false,\n // Context data from BCalendar\n localLocale: null,\n isRTL: false,\n formattedValue: '',\n activeYMD: ''\n };\n },\n computed: {\n calendarYM: function calendarYM() {\n // Returns the calendar year/month\n // Returns the `YYYY-MM` portion of the active calendar date\n return this.activeYMD.slice(0, -3);\n },\n computedLang: function computedLang() {\n return (this.localLocale || '').replace(/-u-.*$/i, '') || null;\n },\n computedResetValue: function computedResetValue() {\n return formatYMD(constrainDate(this.resetValue)) || '';\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.localYMD = formatYMD(newValue) || '';\n }), _defineProperty(_watch, \"localYMD\", function localYMD(newValue) {\n // We only update the v-model when the datepicker is open\n if (this.isVisible) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newValue) || null : newValue || '');\n }\n }), _defineProperty(_watch, \"calendarYM\", function calendarYM(newValue, oldValue) {\n // Displayed calendar month has changed\n // So possibly the calendar height has changed...\n // We need to update popper computed position\n if (newValue !== oldValue && oldValue) {\n try {\n this.$refs.control.updatePopper();\n } catch (_unused) {}\n }\n }), _watch),\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.control);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.control);\n }\n },\n // Private methods\n setAndClose: function setAndClose(ymd) {\n var _this = this;\n\n this.localYMD = ymd; // Close calendar popup, unless `noCloseOnSelect`\n\n if (!this.noCloseOnSelect) {\n this.$nextTick(function () {\n _this.$refs.control.hide(true);\n });\n }\n },\n onSelected: function onSelected(ymd) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setAndClose(ymd);\n });\n },\n onInput: function onInput(ymd) {\n if (this.localYMD !== ymd) {\n this.localYMD = ymd;\n }\n },\n onContext: function onContext(ctx) {\n var activeYMD = ctx.activeYMD,\n isRTL = ctx.isRTL,\n locale = ctx.locale,\n selectedYMD = ctx.selectedYMD,\n selectedFormatted = ctx.selectedFormatted;\n this.isRTL = isRTL;\n this.localLocale = locale;\n this.formattedValue = selectedFormatted;\n this.localYMD = selectedYMD;\n this.activeYMD = activeYMD; // Re-emit the context event\n\n this.$emit(EVENT_NAME_CONTEXT, ctx);\n },\n onTodayButton: function onTodayButton() {\n // Set to today (or min/max if today is out of range)\n this.setAndClose(formatYMD(constrainDate(createDate(), this.min, this.max)));\n },\n onResetButton: function onResetButton() {\n this.setAndClose(this.computedResetValue);\n },\n onCloseButton: function onCloseButton() {\n this.$refs.control.hide(true);\n },\n // Menu handlers\n onShow: function onShow() {\n this.isVisible = true;\n },\n onShown: function onShown() {\n var _this3 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this3.$refs.calendar);\n\n _this3.$emit(EVENT_NAME_SHOWN);\n });\n },\n onHidden: function onHidden() {\n this.isVisible = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n // Render helpers\n defaultButtonFn: function defaultButtonFn(_ref) {\n var isHovered = _ref.isHovered,\n hasFocus = _ref.hasFocus;\n return this.$createElement(isHovered || hasFocus ? BIconCalendarFill : BIconCalendar, {\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n },\n render: function render(h) {\n var localYMD = this.localYMD,\n disabled = this.disabled,\n readonly = this.readonly,\n dark = this.dark,\n $props = this.$props,\n $scopedSlots = this.$scopedSlots;\n var placeholder = isUndefinedOrNull(this.placeholder) ? this.labelNoDateSelected : this.placeholder; // Optional footer buttons\n\n var $footer = [];\n\n if (this.todayButton) {\n var label = this.labelTodayButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.todayButtonVariant\n },\n attrs: {\n 'aria-label': label || null\n },\n on: {\n click: this.onTodayButton\n }\n }, label));\n }\n\n if (this.resetButton) {\n var _label = this.labelResetButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.resetButtonVariant\n },\n attrs: {\n 'aria-label': _label || null\n },\n on: {\n click: this.onResetButton\n }\n }, _label));\n }\n\n if (this.closeButton) {\n var _label2 = this.labelCloseButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled,\n size: 'sm',\n variant: this.closeButtonVariant\n },\n attrs: {\n 'aria-label': _label2 || null\n },\n on: {\n click: this.onCloseButton\n }\n }, _label2));\n }\n\n if ($footer.length > 0) {\n $footer = [h('div', {\n staticClass: 'b-form-date-controls d-flex flex-wrap',\n class: {\n 'justify-content-between': $footer.length > 1,\n 'justify-content-end': $footer.length < 2\n }\n }, $footer)];\n }\n\n var $calendar = h(BCalendar, {\n staticClass: 'b-form-date-calendar w-100',\n props: _objectSpread(_objectSpread({}, pluckProps(calendarProps, $props)), {}, {\n hidden: !this.isVisible,\n value: localYMD,\n valueAsDate: false,\n width: this.calendarWidth\n }),\n on: {\n selected: this.onSelected,\n input: this.onInput,\n context: this.onContext\n },\n scopedSlots: pick($scopedSlots, ['nav-prev-decade', 'nav-prev-year', 'nav-prev-month', 'nav-this-month', 'nav-next-month', 'nav-next-year', 'nav-next-decade']),\n key: 'calendar',\n ref: 'calendar'\n }, $footer);\n return h(BVFormBtnLabelControl, {\n staticClass: 'b-form-datepicker',\n props: _objectSpread(_objectSpread({}, pluckProps(formBtnLabelControlProps, $props)), {}, {\n formattedValue: localYMD ? this.formattedValue : '',\n id: this.safeId(),\n lang: this.computedLang,\n menuClass: [{\n 'bg-dark': dark,\n 'text-light': dark\n }, this.menuClass],\n placeholder: placeholder,\n rtl: this.isRTL,\n value: localYMD\n }),\n on: {\n show: this.onShow,\n shown: this.onShown,\n hidden: this.onHidden\n },\n scopedSlots: _defineProperty({}, SLOT_NAME_BUTTON_CONTENT, $scopedSlots[SLOT_NAME_BUTTON_CONTENT] || this.defaultButtonFn),\n ref: 'control'\n }, [$calendar]);\n }\n});","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_FILE } from '../../constants/components';\nimport { HAS_PROMISE_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DROP_PLACEHOLDER, SLOT_NAME_FILE_NAME, SLOT_NAME_PLACEHOLDER } from '../../constants/slots';\nimport { RX_EXTENSION, RX_STAR } from '../../constants/regex';\nimport { File } from '../../constants/safe-types';\nimport { from as arrayFrom, flatten, flattenDeep } from '../../utils/array';\nimport { cloneDeep } from '../../utils/clone-deep';\nimport { closest } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isFile, isFunction, isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formSizeProps } from '../../mixins/form-size'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: [PROP_TYPE_ARRAY, File],\n defaultValue: null,\n validator: function validator(value) {\n /* istanbul ignore next */\n if (value === '') {\n warn(VALUE_EMPTY_DEPRECATED_MSG, NAME_FORM_FILE);\n return true;\n }\n\n return isUndefinedOrNull(value) || isValidValue(value);\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar VALUE_EMPTY_DEPRECATED_MSG = 'Setting \"value\"/\"v-model\" to an empty string for reset is deprecated. Set to \"null\" instead.'; // --- Helper methods ---\n\nvar isValidValue = function isValidValue(value) {\n return isFile(value) || isArray(value) && value.every(function (v) {\n return isValidValue(v);\n });\n}; // Helper method to \"safely\" get the entry from a data-transfer item\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getDataTransferItemEntry = function getDataTransferItemEntry(item) {\n return isFunction(item.getAsEntry) ? item.getAsEntry() : isFunction(item.webkitGetAsEntry) ? item.webkitGetAsEntry() : null;\n}; // Drop handler function to get all files\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntries = function getAllFileEntries(dataTransferItemList) {\n var traverseDirectories = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Promise.all(arrayFrom(dataTransferItemList).filter(function (item) {\n return item.kind === 'file';\n }).map(function (item) {\n var entry = getDataTransferItemEntry(item);\n\n if (entry) {\n if (entry.isDirectory && traverseDirectories) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = '';\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity));\n}; // Get all the file entries (recursive) in a directory\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntriesInDirectory = function getAllFileEntriesInDirectory(directoryReader) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return new Promise(function (resolve) {\n var entryPromises = [];\n\n var readDirectoryEntries = function readDirectoryEntries() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n resolve(Promise.all(entryPromises).then(function (entries) {\n return flatten(entries);\n }));\n } else {\n entryPromises.push(Promise.all(entries.map(function (entry) {\n if (entry) {\n if (entry.isDirectory) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(path).concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = \"\".concat(path).concat(file.name);\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity)));\n readDirectoryEntries();\n }\n });\n };\n\n readDirectoryEntries();\n });\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formStateProps), formSizeProps), {}, {\n accept: makeProp(PROP_TYPE_STRING, ''),\n browseText: makeProp(PROP_TYPE_STRING, 'Browse'),\n // Instruct input to capture from camera\n capture: makeProp(PROP_TYPE_BOOLEAN, false),\n directory: makeProp(PROP_TYPE_BOOLEAN, false),\n dropPlaceholder: makeProp(PROP_TYPE_STRING, 'Drop files here'),\n fileNameFormatter: makeProp(PROP_TYPE_FUNCTION),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n noDrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noDropPlaceholder: makeProp(PROP_TYPE_STRING, 'Not allowed'),\n // TODO:\n // Should we deprecate this and only support flat file structures?\n // Nested file structures are only supported when files are dropped\n // A Chromium \"bug\" prevents `webkitEntries` from being populated\n // on the file input's `change` event and is marked as \"WontFix\"\n // Mozilla implemented the behavior the same way as Chromium\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=138987\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1326031\n noTraverse: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'No file chosen')\n})), NAME_FORM_FILE); // --- Main component ---\n// @vue/component\n\nexport var BFormFile = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_FILE,\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n files: [],\n dragging: false,\n // IE 11 doesn't respect setting `event.dataTransfer.dropEffect`,\n // so we handle it ourselves as well\n // https://stackoverflow.com/a/46915971/2744776\n dropAllowed: !this.noDrop,\n hasFocus: false\n };\n },\n computed: {\n // Convert `accept` to an array of `[{ RegExpr, isMime }, ...]`\n computedAccept: function computedAccept() {\n var accept = this.accept;\n accept = (accept || '').trim().split(/[,\\s]+/).filter(identity); // Allow any file type/extension\n\n if (accept.length === 0) {\n return null;\n }\n\n return accept.map(function (extOrType) {\n var prop = 'name';\n var startMatch = '^';\n var endMatch = '$';\n\n if (RX_EXTENSION.test(extOrType)) {\n // File extension /\\.ext$/\n startMatch = '';\n } else {\n // MIME type /^mime\\/.+$/ or /^mime\\/type$/\n prop = 'type';\n\n if (RX_STAR.test(extOrType)) {\n endMatch = '.+$'; // Remove trailing `*`\n\n extOrType = extOrType.slice(0, -1);\n }\n } // Escape all RegExp special chars\n\n\n extOrType = escapeRegExp(extOrType);\n var rx = new RegExp(\"\".concat(startMatch).concat(extOrType).concat(endMatch));\n return {\n rx: rx,\n prop: prop\n };\n });\n },\n computedCapture: function computedCapture() {\n var capture = this.capture;\n return capture === true || capture === '' ? true : capture || null;\n },\n computedAttrs: function computedAttrs() {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n computedCapture = this.computedCapture,\n accept = this.accept,\n multiple = this.multiple,\n directory = this.directory;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n type: 'file',\n id: this.safeId(),\n name: name,\n disabled: disabled,\n required: required,\n form: form || null,\n capture: computedCapture,\n accept: accept || null,\n multiple: multiple,\n directory: directory,\n webkitdirectory: directory,\n 'aria-required': required ? 'true' : null\n });\n },\n computedFileNameFormatter: function computedFileNameFormatter() {\n var fileNameFormatter = this.fileNameFormatter;\n return hasPropFunction(fileNameFormatter) ? fileNameFormatter : this.defaultFileNameFormatter;\n },\n clonedFiles: function clonedFiles() {\n return cloneDeep(this.files);\n },\n flattenedFiles: function flattenedFiles() {\n return flattenDeep(this.files);\n },\n fileNames: function fileNames() {\n return this.flattenedFiles.map(function (file) {\n return file.name;\n });\n },\n labelContent: function labelContent() {\n // Draging active\n\n /* istanbul ignore next: used by drag/drop which can't be tested easily */\n if (this.dragging && !this.noDrop) {\n return (// TODO: Add additional scope with file count, and other not-allowed reasons\n this.normalizeSlot(SLOT_NAME_DROP_PLACEHOLDER, {\n allowed: this.dropAllowed\n }) || (this.dropAllowed ? this.dropPlaceholder : this.$createElement('span', {\n staticClass: 'text-danger'\n }, this.noDropPlaceholder))\n );\n } // No file chosen\n\n\n if (this.files.length === 0) {\n return this.normalizeSlot(SLOT_NAME_PLACEHOLDER) || this.placeholder;\n }\n\n var flattenedFiles = this.flattenedFiles,\n clonedFiles = this.clonedFiles,\n fileNames = this.fileNames,\n computedFileNameFormatter = this.computedFileNameFormatter; // There is a slot for formatting the files/names\n\n if (this.hasNormalizedSlot(SLOT_NAME_FILE_NAME)) {\n return this.normalizeSlot(SLOT_NAME_FILE_NAME, {\n files: flattenedFiles,\n filesTraversed: clonedFiles,\n names: fileNames\n });\n }\n\n return computedFileNameFormatter(flattenedFiles, clonedFiles, fileNames);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!newValue || isArray(newValue) && newValue.length === 0) {\n this.reset();\n }\n }), _defineProperty(_watch, \"files\", function files(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n var multiple = this.multiple,\n noTraverse = this.noTraverse;\n var files = !multiple || noTraverse ? flattenDeep(newValue) : newValue;\n this.$emit(MODEL_EVENT_NAME, multiple ? files : files[0] || null);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_form = null;\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the file input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n this.$_form = $form;\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = this.$_form;\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n isFileValid: function isFileValid(file) {\n if (!file) {\n return false;\n }\n\n var accept = this.computedAccept;\n return accept ? accept.some(function (a) {\n return a.rx.test(file[a.prop]);\n }) : true;\n },\n isFilesArrayValid: function isFilesArrayValid(files) {\n var _this = this;\n\n return isArray(files) ? files.every(function (file) {\n return _this.isFileValid(file);\n }) : this.isFileValid(files);\n },\n defaultFileNameFormatter: function defaultFileNameFormatter(flattenedFiles, clonedFiles, fileNames) {\n return fileNames.join(', ');\n },\n setFiles: function setFiles(files) {\n // Reset the dragging flags\n this.dropAllowed = !this.noDrop;\n this.dragging = false; // Set the selected files\n\n this.files = this.multiple ? this.directory ? files : flattenDeep(files) : flattenDeep(files).slice(0, 1);\n },\n\n /* istanbul ignore next: used by Drag/Drop */\n setInputFiles: function setInputFiles(files) {\n // Try an set the file input files array so that `required`\n // constraint works for dropped files (will fail in IE11 though)\n // To be used only when dropping files\n try {\n // Firefox < 62 workaround exploiting https://bugzilla.mozilla.org/show_bug.cgi?id=1422655\n var dataTransfer = new ClipboardEvent('').clipboardData || new DataTransfer(); // Add flattened files to temp `dataTransfer` object to get a true `FileList` array\n\n flattenDeep(cloneDeep(files)).forEach(function (file) {\n // Make sure to remove the custom `$path` attribute\n delete file.$path;\n dataTransfer.items.add(file);\n });\n this.$refs.input.files = dataTransfer.files;\n } catch (_unused) {}\n },\n reset: function reset() {\n // IE 11 doesn't support setting `$input.value` to `''` or `null`\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well\n // Wrapped in try in case IE 11 or mobile Safari crap out\n try {\n var $input = this.$refs.input;\n $input.value = '';\n $input.type = '';\n $input.type = 'file';\n } catch (_unused2) {}\n\n this.files = [];\n },\n handleFiles: function handleFiles(files) {\n var isDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isDrop) {\n // When dropped, make sure to filter files with the internal `accept` logic\n var filteredFiles = files.filter(this.isFilesArrayValid); // Only update files when we have any after filtering\n\n if (filteredFiles.length > 0) {\n this.setFiles(filteredFiles); // Try an set the file input's files array so that `required`\n // constraint works for dropped files (will fail in IE 11 though)\n\n this.setInputFiles(filteredFiles);\n }\n } else {\n // We always update the files from the `change` event\n this.setFiles(files);\n }\n },\n focusHandler: function focusHandler(event) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a `[type=file]:focus ~ sibling` selector issue,\n // so we add a `focus` class to get around these bugs\n if (this.plain || event.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n onChange: function onChange(event) {\n var _this2 = this;\n\n var type = event.type,\n target = event.target,\n _event$dataTransfer = event.dataTransfer,\n dataTransfer = _event$dataTransfer === void 0 ? {} : _event$dataTransfer;\n var isDrop = type === 'drop'; // Always emit original event\n\n this.$emit(EVENT_NAME_CHANGE, event);\n var items = arrayFrom(dataTransfer.items || []);\n\n if (HAS_PROMISE_SUPPORT && items.length > 0 && !isNull(getDataTransferItemEntry(items[0]))) {\n // Drop handling for modern browsers\n // Supports nested directory structures in `directory` mode\n\n /* istanbul ignore next: not supported in JSDOM */\n getAllFileEntries(items, this.directory).then(function (files) {\n return _this2.handleFiles(files, isDrop);\n });\n } else {\n // Standard file input handling (native file input change event),\n // or fallback drop mode (IE 11 / Opera) which don't support `directory` mode\n var files = arrayFrom(target.files || dataTransfer.files || []).map(function (file) {\n // Add custom `$path` property to each file (to be consistent with drop mode)\n file.$path = file.webkitRelativePath || '';\n return file;\n });\n this.handleFiles(files, isDrop);\n }\n },\n onDragenter: function onDragenter(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer2 = event.dataTransfer,\n dataTransfer = _event$dataTransfer2 === void 0 ? {} : _event$dataTransfer2; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n // Note this event fires repeatedly while the mouse is over the dropzone at\n // intervals in the milliseconds, so avoid doing much processing in here\n onDragover: function onDragover(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer3 = event.dataTransfer,\n dataTransfer = _event$dataTransfer3 === void 0 ? {} : _event$dataTransfer3; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(event) {\n var _this3 = this;\n\n stopEvent(event);\n this.$nextTick(function () {\n _this3.dragging = false; // Reset `dropAllowed` to default\n\n _this3.dropAllowed = !_this3.noDrop;\n });\n },\n // Triggered by a file drop onto drop target\n onDrop: function onDrop(event) {\n var _this4 = this;\n\n stopEvent(event);\n this.dragging = false; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n this.$nextTick(function () {\n // Reset `dropAllowed` to default\n _this4.dropAllowed = !_this4.noDrop;\n });\n return;\n }\n\n this.onChange(event);\n }\n },\n render: function render(h) {\n var custom = this.custom,\n plain = this.plain,\n size = this.size,\n dragging = this.dragging,\n stateClass = this.stateClass,\n bvAttrs = this.bvAttrs; // Form Input\n\n var $input = h('input', {\n class: [{\n 'form-control-file': plain,\n 'custom-file-input': custom,\n focus: custom && this.hasFocus\n }, stateClass],\n // With IE 11, the input gets in the \"way\" of the drop events,\n // so we move it out of the way by putting it behind the label\n // Bootstrap v4 has it in front\n style: custom ? {\n zIndex: -5\n } : {},\n attrs: this.computedAttrs,\n on: {\n change: this.onChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.reset\n },\n ref: 'input'\n });\n\n if (plain) {\n return $input;\n } // Overlay label\n\n\n var $label = h('label', {\n staticClass: 'custom-file-label',\n class: {\n dragging: dragging\n },\n attrs: {\n for: this.safeId(),\n // This goes away in Bootstrap v5\n 'data-browse': this.browseText || null\n }\n }, [h('span', {\n staticClass: 'd-block form-file-text',\n // `pointer-events: none` is used to make sure\n // the drag events fire only on the label\n style: {\n pointerEvents: 'none'\n }\n }, [this.labelContent])]); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [_defineProperty({}, \"b-custom-control-\".concat(size), size), stateClass, bvAttrs.class],\n style: bvAttrs.style,\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragenter: this.onDragenter,\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [$input, $label]);\n }\n});","import { BFormDatepicker } from './form-datepicker';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormDatepickerPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormDatepicker: BFormDatepicker,\n BDatepicker: BFormDatepicker\n }\n});\nexport { FormDatepickerPlugin, BFormDatepicker };","import { BFormFile } from './form-file';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormFilePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormFile: BFormFile,\n BFile: BFormFile\n }\n});\nexport { FormFilePlugin, BFormFile };","import { toString } from './string';\n\nvar escapeChar = function escapeChar(value) {\n return '\\\\' + value;\n}; // The `cssEscape()` util is based on this `CSS.escape()` polyfill:\n// https://github.com/mathiasbynens/CSS.escape\n\n\nexport var cssEscape = function cssEscape(value) {\n value = toString(value);\n var length = value.length;\n var firstCharCode = value.charCodeAt(0);\n return value.split('').reduce(function (result, char, index) {\n var charCode = value.charCodeAt(index); // If the character is NULL (U+0000), use (U+FFFD) as replacement\n\n if (charCode === 0x0000) {\n return result + \"\\uFFFD\";\n } // If the character ...\n\n\n if ( // ... is U+007F OR\n charCode === 0x007f || // ... is in the range [\\1-\\1F] (U+0001 to U+001F) OR ...\n charCode >= 0x0001 && charCode <= 0x001f || // ... is the first character and is in the range [0-9] (U+0030 to U+0039) OR ...\n index === 0 && charCode >= 0x0030 && charCode <= 0x0039 || // ... is the second character and is in the range [0-9] (U+0030 to U+0039)\n // and the first character is a `-` (U+002D) ...\n index === 1 && charCode >= 0x0030 && charCode <= 0x0039 && firstCharCode === 0x002d) {\n // ... https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n return result + escapeChar(\"\".concat(charCode.toString(16), \" \"));\n } // If the character ...\n\n\n if ( // ... is the first character AND ...\n index === 0 && // ... is a `-` (U+002D) AND ...\n charCode === 0x002d && // ... there is no second character ...\n length === 1) {\n // ... use the escaped character\n return result + escapeChar(char);\n } // If the character ...\n\n\n if ( // ... is greater than or equal to U+0080 OR ...\n charCode >= 0x0080 || // ... is `-` (U+002D) OR ...\n charCode === 0x002d || // ... is `_` (U+005F) OR ...\n charCode === 0x005f || // ... is in the range [0-9] (U+0030 to U+0039) OR ...\n charCode >= 0x0030 && charCode <= 0x0039 || // ... is in the range [A-Z] (U+0041 to U+005A) OR ...\n charCode >= 0x0041 && charCode <= 0x005a || // ... is in the range [a-z] (U+0061 to U+007A) ...\n charCode >= 0x0061 && charCode <= 0x007a) {\n // ... use the character itself\n return result + char;\n } // Otherwise use the escaped character\n // See: https://drafts.csswg.org/cssom/#escape-a-character\n\n\n return result + escapeChar(char);\n }, '');\n};","function 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\nimport { mergeData } from '../../vue';\nimport { NAME_COL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_COL_CLASS } from '../../constants/regex';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { memoize } from '../../utils/memoize';\nimport { assign, create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase } from '../../utils/string'; // --- Constants ---\n\nvar ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch']; // --- Helper methods ---\n// Compute a breakpoint class name\n\nvar computeBreakpoint = function computeBreakpoint(type, breakpoint, value) {\n var className = type;\n\n if (isUndefinedOrNull(value) || value === false) {\n return undefined;\n }\n\n if (breakpoint) {\n className += \"-\".concat(breakpoint);\n } // Handling the boolean style prop when accepting `[Boolean, String, Number]`\n // means Vue will not convert `` to `sm: true` for us\n // Since the default is `false`, '' indicates the prop's presence\n\n\n if (type === 'col' && (value === '' || value === true)) {\n // .col-md\n return lowerCase(className);\n } // .order-md-6\n\n\n className += \"-\".concat(value);\n return lowerCase(className);\n}; // Memoized function for better performance on generating class names\n\n\nvar computeBreakpointClass = memoize(computeBreakpoint); // Cached copy of the breakpoint prop names\n\nvar breakpointPropMap = create(null); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n var breakpoints = getBreakpointsUpCached().filter(identity); // i.e. 'col-sm', 'col-md-6', 'col-lg-auto', ...\n\n var breakpointCol = breakpoints.reduce(function (props, breakpoint) {\n props[breakpoint] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'offset-md-1', 'offset-lg-12', ...\n\n var breakpointOffset = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'offset')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'order-md-1', 'order-lg-12', ...\n\n var breakpointOrder = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'order')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // For loop doesn't need to check `.hasOwnProperty()`\n // when using an object created from `null`\n\n breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n }); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, breakpointCol), breakpointOffset), breakpointOrder), {}, {\n // Flex alignment\n alignSelf: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(ALIGN_SELF_VALUES, value);\n }),\n // Generic flexbox 'col' (xs)\n col: makeProp(PROP_TYPE_BOOLEAN, false),\n // i.e. 'col-1', 'col-2', 'col-auto', ...\n cols: makeProp(PROP_TYPE_NUMBER_STRING),\n offset: makeProp(PROP_TYPE_NUMBER_STRING),\n order: makeProp(PROP_TYPE_NUMBER_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_COL);\n}; // --- Main component ---\n// We do not use Vue.extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BCol = {\n name: NAME_COL,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var cols = props.cols,\n offset = props.offset,\n order = props.order,\n alignSelf = props.alignSelf;\n var classList = []; // Loop through `col`, `offset`, `order` breakpoint props\n\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n\n for (var i = 0; i < _keys.length; i++) {\n // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBreakpointClass(type, _keys[i].replace(type, ''), props[_keys[i]]); // If a class is returned, push it onto the array.\n\n if (c) {\n classList.push(c);\n }\n }\n }\n\n var hasColClasses = classList.some(function (className) {\n return RX_COL_CLASS.test(className);\n });\n classList.push((_classList$push = {\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: props.col || !hasColClasses && !cols\n }, _defineProperty(_classList$push, \"col-\".concat(cols), cols), _defineProperty(_classList$push, \"offset-\".concat(offset), offset), _defineProperty(_classList$push, \"order-\".concat(order), order), _defineProperty(_classList$push, \"align-self-\".concat(alignSelf), alignSelf), _classList$push));\n return h(props.tag, mergeData(data, {\n class: classList\n }), children);\n }\n};","function 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\nimport { NAME_FORM_GROUP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_SPACE_SPLIT } from '../../constants/regex';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_DESCRIPTION, SLOT_NAME_INVALID_FEEDBACK, SLOT_NAME_LABEL, SLOT_NAME_VALID_FEEDBACK } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { cssEscape } from '../../utils/css-escape';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr, attemptFocus } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isBoolean } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BCol } from '../layout/col';\nimport { BFormRow } from '../layout/form-row';\nimport { BFormText } from '../form/form-text';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormValidFeedback } from '../form/form-valid-feedback'; // --- Constants ---\n\nvar INPUTS = ['input', 'select', 'textarea']; // Selector for finding first input in the form group\n\nvar INPUT_SELECTOR = INPUTS.map(function (v) {\n return \"\".concat(v, \":not([disabled])\");\n}).join(); // A list of interactive elements (tag names) inside ``'s legend\n\nvar LEGEND_INTERACTIVE_ELEMENTS = [].concat(INPUTS, ['a', 'button', 'label']); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formStateProps), getBreakpointsUpCached().reduce(function (props, breakpoint) {\n // i.e. 'content-cols', 'content-cols-sm', 'content-cols-md', ...\n props[suffixPropName(breakpoint, 'contentCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING); // i.e. 'label-align', 'label-align-sm', 'label-align-md', ...\n\n props[suffixPropName(breakpoint, 'labelAlign')] = makeProp(PROP_TYPE_STRING); // i.e. 'label-cols', 'label-cols-sm', 'label-cols-md', ...\n\n props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null))), {}, {\n description: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),\n invalidFeedback: makeProp(PROP_TYPE_STRING),\n label: makeProp(PROP_TYPE_STRING),\n labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n labelFor: makeProp(PROP_TYPE_STRING),\n labelSize: makeProp(PROP_TYPE_STRING),\n labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false),\n validFeedback: makeProp(PROP_TYPE_STRING),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n })), NAME_FORM_GROUP);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BFormGroup = {\n name: NAME_FORM_GROUP,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n data: function data() {\n return {\n ariaDescribedby: null\n };\n },\n computed: {\n contentColProps: function contentColProps() {\n return this.getColProps(this.$props, 'content');\n },\n labelAlignClasses: function labelAlignClasses() {\n return this.getAlignClasses(this.$props, 'label');\n },\n labelColProps: function labelColProps() {\n return this.getColProps(this.$props, 'label');\n },\n isHorizontal: function isHorizontal() {\n // Determine if the form group will be rendered horizontal\n // based on the existence of 'content-col' or 'label-col' props\n return keys(this.contentColProps).length > 0 || keys(this.labelColProps).length > 0;\n }\n },\n watch: {\n ariaDescribedby: function ariaDescribedby(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.updateAriaDescribedby(newValue, oldValue);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set `aria-describedby` on the input specified by `labelFor`\n // We do this in a `$nextTick()` to ensure the children have finished rendering\n _this.updateAriaDescribedby(_this.ariaDescribedby);\n });\n },\n methods: {\n getAlignClasses: function getAlignClasses(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Align\"))] || null;\n\n if (propValue) {\n result.push(['text', breakpoint, propValue].filter(identity).join('-'));\n }\n\n return result;\n }, []);\n },\n getColProps: function getColProps(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Cols\"))]; // Handle case where the prop's value is an empty string,\n // which represents `true`\n\n propValue = propValue === '' ? true : propValue || false;\n\n if (!isBoolean(propValue) && propValue !== 'auto') {\n // Convert to column size to number\n propValue = toInteger(propValue, 0); // Ensure column size is greater than `0`\n\n propValue = propValue > 0 ? propValue : false;\n } // Add the prop to the list of props to give to ``\n // If breakpoint is '' (`${prefix}Cols` is `true`), then we use\n // the 'col' prop to make equal width at 'xs'\n\n\n if (propValue) {\n result[breakpoint || (isBoolean(propValue) ? 'col' : 'cols')] = propValue;\n }\n\n return result;\n }, {});\n },\n // Sets the `aria-describedby` attribute on the input if `labelFor` is set\n // Optionally accepts a string of IDs to remove as the second parameter\n // Preserves any `aria-describedby` value(s) user may have on input\n updateAriaDescribedby: function updateAriaDescribedby(newValue, oldValue) {\n var labelFor = this.labelFor;\n\n if (IS_BROWSER && labelFor) {\n // We need to escape `labelFor` since it can be user-provided\n var $input = select(\"#\".concat(cssEscape(labelFor)), this.$refs.content);\n\n if ($input) {\n var attr = 'aria-describedby';\n var newIds = (newValue || '').split(RX_SPACE_SPLIT);\n var oldIds = (oldValue || '').split(RX_SPACE_SPLIT); // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n\n var ids = (getAttr($input, attr) || '').split(RX_SPACE_SPLIT).filter(function (id) {\n return !arrayIncludes(oldIds, id);\n }).concat(newIds).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }).filter(identity).join(' ').trim();\n\n if (ids) {\n setAttr($input, attr, ids);\n } else {\n removeAttr($input, attr);\n }\n }\n }\n },\n onLegendClick: function onLegendClick(event) {\n // Don't do anything if `labelFor` is set\n\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n if (this.labelFor) {\n return;\n }\n\n var target = event.target;\n var tagName = target ? target.tagName : ''; // If clicked an interactive element inside legend,\n // we just let the default happen\n\n /* istanbul ignore next */\n\n if (LEGEND_INTERACTIVE_ELEMENTS.indexOf(tagName) !== -1) {\n return;\n } // If only a single input, focus it, emulating label behaviour\n\n\n var inputs = selectAll(INPUT_SELECTOR, this.$refs.content).filter(isVisible);\n\n if (inputs.length === 1) {\n attemptFocus(inputs[0]);\n }\n }\n },\n render: function render(h) {\n var state = this.computedState,\n feedbackAriaLive = this.feedbackAriaLive,\n isHorizontal = this.isHorizontal,\n labelFor = this.labelFor,\n normalizeSlot = this.normalizeSlot,\n safeId = this.safeId,\n tooltip = this.tooltip;\n var id = safeId();\n var isFieldset = !labelFor;\n var $label = h();\n var labelContent = normalizeSlot(SLOT_NAME_LABEL) || this.label;\n var labelId = labelContent ? safeId('_BV_label_') : null;\n\n if (labelContent || isHorizontal) {\n var labelSize = this.labelSize,\n labelColProps = this.labelColProps;\n var labelTag = isFieldset ? 'legend' : 'label';\n\n if (this.labelSrOnly) {\n if (labelContent) {\n $label = h(labelTag, {\n class: 'sr-only',\n attrs: {\n id: labelId,\n for: labelFor || null\n }\n }, [labelContent]);\n }\n\n $label = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? labelColProps : {}\n }, [$label]);\n } else {\n $label = h(isHorizontal ? BCol : labelTag, {\n on: isFieldset ? {\n click: this.onLegendClick\n } : {},\n props: isHorizontal ? _objectSpread(_objectSpread({}, labelColProps), {}, {\n tag: labelTag\n }) : {},\n attrs: {\n id: labelId,\n for: labelFor || null,\n // We add a `tabindex` to legend so that screen readers\n // will properly read the `aria-labelledby` in IE\n tabindex: isFieldset ? '-1' : null\n },\n class: [// Hide the focus ring on the legend\n isFieldset ? 'bv-no-focus-ring' : '', // When horizontal or if a legend is rendered, add 'col-form-label' class\n // for correct sizing as Bootstrap has inconsistent font styling for\n // legend in non-horizontal form groups\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isFieldset ? 'col-form-label' : '', // Emulate label padding top of `0` on legend when not horizontal\n !isHorizontal && isFieldset ? 'pt-0' : '', // If not horizontal and not a legend, we add 'd-block' class to label\n // so that label-align works\n !isHorizontal && !isFieldset ? 'd-block' : '', labelSize ? \"col-form-label-\".concat(labelSize) : '', this.labelAlignClasses, this.labelClass]\n }, [labelContent]);\n }\n }\n\n var $invalidFeedback = h();\n var invalidFeedbackContent = normalizeSlot(SLOT_NAME_INVALID_FEEDBACK) || this.invalidFeedback;\n var invalidFeedbackId = invalidFeedbackContent ? safeId('_BV_feedback_invalid_') : null;\n\n if (invalidFeedbackContent) {\n $invalidFeedback = h(BFormInvalidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: invalidFeedbackId,\n // If state is explicitly `false`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: invalidFeedbackContent ? '-1' : null\n }\n }, [invalidFeedbackContent]);\n }\n\n var $validFeedback = h();\n var validFeedbackContent = normalizeSlot(SLOT_NAME_VALID_FEEDBACK) || this.validFeedback;\n var validFeedbackId = validFeedbackContent ? safeId('_BV_feedback_valid_') : null;\n\n if (validFeedbackContent) {\n $validFeedback = h(BFormValidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: validFeedbackId,\n // If state is explicitly `true`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: validFeedbackContent ? '-1' : null\n }\n }, [validFeedbackContent]);\n }\n\n var $description = h();\n var descriptionContent = normalizeSlot(SLOT_NAME_DESCRIPTION) || this.description;\n var descriptionId = descriptionContent ? safeId('_BV_description_') : null;\n\n if (descriptionContent) {\n $description = h(BFormText, {\n attrs: {\n id: descriptionId,\n tabindex: '-1'\n }\n }, [descriptionContent]);\n } // Update `ariaDescribedby`\n // Screen readers will read out any content linked to by `aria-describedby`\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form group's state is explicitly valid or invalid\n\n\n var ariaDescribedby = this.ariaDescribedby = [descriptionId, state === false ? invalidFeedbackId : null, state === true ? validFeedbackId : null].filter(identity).join(' ') || null;\n var $content = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? this.contentColProps : {},\n ref: 'content'\n }, [normalizeSlot(SLOT_NAME_DEFAULT, {\n ariaDescribedby: ariaDescribedby,\n descriptionId: descriptionId,\n id: id,\n labelId: labelId\n }) || h(), $invalidFeedback, $validFeedback, $description]); // Return it wrapped in a form group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n\n return h(isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div', {\n staticClass: 'form-group',\n class: [{\n 'was-validated': this.validated\n }, this.stateClass],\n attrs: {\n id: id,\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedAriaInvalid,\n // Only apply `aria-labelledby` if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? labelId : null\n }\n }, isHorizontal && isFieldset ? [h(BFormRow, [$label, $content])] : [$label, $content]);\n }\n};","import { BFormGroup } from './form-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormGroupPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormGroup: BFormGroup,\n BFormFieldset: BFormGroup\n }\n});\nexport { FormGroupPlugin, BFormGroup };","import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n});","function 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\nimport { Vue } from '../vue';\nimport { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});","import { Vue } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\n }\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_RATING, NAME_FORM_RATING_STAR } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_SELECTED } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { CODE_LEFT, CODE_RIGHT, CODE_UP, CODE_DOWN } from '../../constants/key-codes';\nimport { SLOT_NAME_ICON_CLEAR, SLOT_NAME_ICON_EMPTY, SLOT_NAME_ICON_FULL, SLOT_NAME_ICON_HALF } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isNull } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { mathMax, mathMin } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formControlProps } from '../../mixins/form-control';\nimport { BIcon } from '../../icons/icon';\nimport { BIconStar, BIconStarHalf, BIconStarFill, BIconX } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar MIN_STARS = 3;\nvar DEFAULT_STARS = 5; // --- Helper methods ---\n\nvar computeStars = function computeStars(stars) {\n return mathMax(MIN_STARS, toInteger(stars, DEFAULT_STARS));\n};\n\nvar clampValue = function clampValue(value, min, max) {\n return mathMax(mathMin(value, max), min);\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVFormRatingStar = Vue.extend({\n name: NAME_FORM_RATING_STAR,\n mixins: [normalizeSlotMixin],\n props: {\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // If parent is focused\n focused: makeProp(PROP_TYPE_BOOLEAN, false),\n hasClear: makeProp(PROP_TYPE_BOOLEAN, false),\n rating: makeProp(PROP_TYPE_NUMBER, 0),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n star: makeProp(PROP_TYPE_NUMBER, 0),\n variant: makeProp(PROP_TYPE_STRING)\n },\n methods: {\n onClick: function onClick(event) {\n if (!this.disabled && !this.readonly) {\n stopEvent(event, {\n propagation: false\n });\n this.$emit(EVENT_NAME_SELECTED, this.star);\n }\n }\n },\n render: function render(h) {\n var rating = this.rating,\n star = this.star,\n focused = this.focused,\n hasClear = this.hasClear,\n variant = this.variant,\n disabled = this.disabled,\n readonly = this.readonly;\n var minStar = hasClear ? 0 : 1;\n var type = rating >= star ? 'full' : rating >= star - 0.5 ? 'half' : 'empty';\n var slotScope = {\n variant: variant,\n disabled: disabled,\n readonly: readonly\n };\n return h('span', {\n staticClass: 'b-rating-star',\n class: {\n // When not hovered, we use this class to focus the current (or first) star\n focused: focused && rating === star || !toInteger(rating) && star === minStar,\n // We add type classes to we can handle RTL styling\n 'b-rating-star-empty': type === 'empty',\n 'b-rating-star-half': type === 'half',\n 'b-rating-star-full': type === 'full'\n },\n attrs: {\n tabindex: !disabled && !readonly ? '-1' : null\n },\n on: {\n click: this.onClick\n }\n }, [h('span', {\n staticClass: 'b-rating-icon'\n }, [this.normalizeSlot(type, slotScope)])]);\n }\n}); // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), omit(formControlProps, ['required', 'autofocus'])), formSizeProps), {}, {\n // CSS color string (overrides variant)\n color: makeProp(PROP_TYPE_STRING),\n iconClear: makeProp(PROP_TYPE_STRING, 'x'),\n iconEmpty: makeProp(PROP_TYPE_STRING, 'star'),\n iconFull: makeProp(PROP_TYPE_STRING, 'star-fill'),\n iconHalf: makeProp(PROP_TYPE_STRING, 'star-half'),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n // Locale for the formatted value (if shown)\n // Defaults to the browser locale. Falls back to `en`\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n noBorder: makeProp(PROP_TYPE_BOOLEAN, false),\n precision: makeProp(PROP_TYPE_NUMBER_STRING),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n showClear: makeProp(PROP_TYPE_BOOLEAN, false),\n showValue: makeProp(PROP_TYPE_BOOLEAN, false),\n showValueMax: makeProp(PROP_TYPE_BOOLEAN, false),\n stars: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_STARS, function (value) {\n return toInteger(value) >= MIN_STARS;\n }),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_FORM_RATING); // --- Main component ---\n// @vue/component\n\nexport var BFormRating = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RATING,\n components: {\n BIconStar: BIconStar,\n BIconStarHalf: BIconStarHalf,\n BIconStarFill: BIconStarFill,\n BIconX: BIconX\n },\n mixins: [idMixin, modelMixin, formSizeMixin],\n props: props,\n data: function data() {\n var value = toFloat(this[MODEL_PROP_NAME], null);\n var stars = computeStars(this.stars);\n return {\n localValue: isNull(value) ? null : clampValue(value, 0, stars),\n hasFocus: false\n };\n },\n computed: {\n computedStars: function computedStars() {\n return computeStars(this.stars);\n },\n computedRating: function computedRating() {\n var value = toFloat(this.localValue, 0);\n var precision = toInteger(this.precision, 3); // We clamp the value between `0` and stars\n\n return clampValue(toFloat(value.toFixed(precision)), 0, this.computedStars);\n },\n computedLocale: function computedLocale() {\n var locales = concat(this.locale).filter(identity);\n var nf = new Intl.NumberFormat(locales);\n return nf.resolvedOptions().locale;\n },\n isInteractive: function isInteractive() {\n return !this.disabled && !this.readonly;\n },\n isRTL: function isRTL() {\n return isLocaleRTL(this.computedLocale);\n },\n formattedRating: function formattedRating() {\n var precision = toInteger(this.precision);\n var showValueMax = this.showValueMax;\n var locale = this.computedLocale;\n var formatOptions = {\n notation: 'standard',\n minimumFractionDigits: isNaN(precision) ? 0 : precision,\n maximumFractionDigits: isNaN(precision) ? 3 : precision\n };\n var stars = this.computedStars.toLocaleString(locale);\n var value = this.localValue;\n value = isNull(value) ? showValueMax ? '-' : '' : value.toLocaleString(locale, formatOptions);\n return showValueMax ? \"\".concat(value, \"/\").concat(stars) : value;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n var value = toFloat(newValue, null);\n this.localValue = isNull(value) ? null : clampValue(value, 0, this.computedStars);\n }\n }), _defineProperty(_watch, \"localValue\", function localValue(newValue, oldValue) {\n if (newValue !== oldValue && newValue !== (this.value || 0)) {\n this.$emit(MODEL_EVENT_NAME, newValue || null);\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue) {\n if (newValue) {\n this.hasFocus = false;\n this.blur();\n }\n }), _watch),\n methods: {\n // --- Public methods ---\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n },\n // --- Private methods ---\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (this.isInteractive && arrayIncludes([CODE_LEFT, CODE_DOWN, CODE_RIGHT, CODE_UP], keyCode)) {\n stopEvent(event, {\n propagation: false\n });\n var value = toInteger(this.localValue, 0);\n var min = this.showClear ? 0 : 1;\n var stars = this.computedStars; // In RTL mode, LEFT/RIGHT are swapped\n\n var amountRtl = this.isRTL ? -1 : 1;\n\n if (keyCode === CODE_LEFT) {\n this.localValue = clampValue(value - amountRtl, min, stars) || null;\n } else if (keyCode === CODE_RIGHT) {\n this.localValue = clampValue(value + amountRtl, min, stars);\n } else if (keyCode === CODE_DOWN) {\n this.localValue = clampValue(value - 1, min, stars) || null;\n } else if (keyCode === CODE_UP) {\n this.localValue = clampValue(value + 1, min, stars);\n }\n }\n },\n onSelected: function onSelected(value) {\n if (this.isInteractive) {\n this.localValue = value;\n }\n },\n onFocus: function onFocus(event) {\n this.hasFocus = !this.isInteractive ? false : event.type === 'focus';\n },\n // --- Render methods ---\n renderIcon: function renderIcon(icon) {\n return this.$createElement(BIcon, {\n props: {\n icon: icon,\n variant: this.disabled || this.color ? null : this.variant || null\n }\n });\n },\n iconEmptyFn: function iconEmptyFn() {\n return this.renderIcon(this.iconEmpty);\n },\n iconHalfFn: function iconHalfFn() {\n return this.renderIcon(this.iconHalf);\n },\n iconFullFn: function iconFullFn() {\n return this.renderIcon(this.iconFull);\n },\n iconClearFn: function iconClearFn() {\n return this.$createElement(BIcon, {\n props: {\n icon: this.iconClear\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var disabled = this.disabled,\n readonly = this.readonly,\n name = this.name,\n form = this.form,\n inline = this.inline,\n variant = this.variant,\n color = this.color,\n noBorder = this.noBorder,\n hasFocus = this.hasFocus,\n computedRating = this.computedRating,\n computedStars = this.computedStars,\n formattedRating = this.formattedRating,\n showClear = this.showClear,\n isRTL = this.isRTL,\n isInteractive = this.isInteractive,\n $scopedSlots = this.$scopedSlots;\n var $content = [];\n\n if (showClear && !disabled && !readonly) {\n var $icon = h('span', {\n staticClass: 'b-rating-icon'\n }, [($scopedSlots[SLOT_NAME_ICON_CLEAR] || this.iconClearFn)()]);\n $content.push(h('span', {\n staticClass: 'b-rating-star b-rating-star-clear flex-grow-1',\n class: {\n focused: hasFocus && computedRating === 0\n },\n attrs: {\n tabindex: isInteractive ? '-1' : null\n },\n on: {\n click: function click() {\n return _this.onSelected(null);\n }\n },\n key: 'clear'\n }, [$icon]));\n }\n\n for (var index = 0; index < computedStars; index++) {\n var value = index + 1;\n $content.push(h(BVFormRatingStar, {\n staticClass: 'flex-grow-1',\n style: color && !disabled ? {\n color: color\n } : {},\n props: {\n rating: computedRating,\n star: value,\n variant: disabled ? null : variant || null,\n disabled: disabled,\n readonly: readonly,\n focused: hasFocus,\n hasClear: showClear\n },\n on: {\n selected: this.onSelected\n },\n scopedSlots: {\n empty: $scopedSlots[SLOT_NAME_ICON_EMPTY] || this.iconEmptyFn,\n half: $scopedSlots[SLOT_NAME_ICON_HALF] || this.iconHalfFn,\n full: $scopedSlots[SLOT_NAME_ICON_FULL] || this.iconFullFn\n },\n key: index\n }));\n }\n\n if (name) {\n $content.push(h('input', {\n attrs: {\n type: 'hidden',\n value: isNull(this.localValue) ? '' : computedRating,\n name: name,\n form: form || null\n },\n key: 'hidden'\n }));\n }\n\n if (this.showValue) {\n $content.push(h('b', {\n staticClass: 'b-rating-value flex-grow-1',\n attrs: {\n 'aria-hidden': 'true'\n },\n key: 'value'\n }, toString(formattedRating)));\n }\n\n return h('output', {\n staticClass: 'b-rating form-control align-items-center',\n class: [{\n 'd-inline-flex': inline,\n 'd-flex': !inline,\n 'border-0': noBorder,\n disabled: disabled,\n readonly: !disabled && readonly\n }, this.sizeFormClass],\n attrs: {\n id: this.safeId(),\n dir: isRTL ? 'rtl' : 'ltr',\n tabindex: disabled ? null : '0',\n disabled: disabled,\n role: 'slider',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-readonly': !disabled && readonly ? 'true' : null,\n 'aria-live': 'off',\n 'aria-valuemin': showClear ? '0' : '1',\n 'aria-valuemax': toString(computedStars),\n 'aria-valuenow': computedRating ? toString(computedRating) : null\n },\n on: {\n keydown: this.onKeydown,\n focus: this.onFocus,\n blur: this.onFocus\n }\n }, $content);\n }\n});","import { BFormInput } from './form-input';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormInputPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormInput: BFormInput,\n BInput: BFormInput\n }\n});\nexport { FormInputPlugin, BFormInput };","import { Vue } from '../../vue';\nimport { NAME_FORM_RADIO_GROUP } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formRadioCheckGroupMixin, props as formRadioCheckGroupProps } from '../../mixins/form-radio-check-group'; // --- Props ---\n\nexport var props = makePropsConfigurable(formRadioCheckGroupProps, NAME_FORM_RADIO_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormRadioGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO_GROUP,\n mixins: [formRadioCheckGroupMixin],\n provide: function provide() {\n return {\n bvRadioGroup: this\n };\n },\n props: props,\n computed: {\n isRadioGroup: function isRadioGroup() {\n return true;\n }\n }\n});","import { BFormRadio } from './form-radio';\nimport { BFormRadioGroup } from './form-radio-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormRadioPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormRadio: BFormRadio,\n BRadio: BFormRadio,\n BFormRadioGroup: BFormRadioGroup,\n BRadioGroup: BFormRadioGroup\n }\n});\nexport { FormRadioPlugin, BFormRadio, BFormRadioGroup };","import { BFormRating } from './form-rating';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormRatingPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormRating: BFormRating,\n BRating: BFormRating\n }\n});\nexport { FormRatingPlugin, BFormRating };","import { makeModelMixin } from '../utils/model';\n\nvar _makeModelMixin = makeModelMixin('value'),\n mixin = _makeModelMixin.mixin,\n props = _makeModelMixin.props,\n prop = _makeModelMixin.prop,\n event = _makeModelMixin.event;\n\nexport { mixin as modelMixin, props, prop as MODEL_PROP_NAME, event as MODEL_EVENT_NAME };","function 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\nimport { Vue } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { get } from '../../../utils/get';\nimport { isNull, isPlainObject, isUndefined } from '../../../utils/inspect';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../../utils/props';\nimport { formOptionsMixin, props as formOptionsProps } from '../../../mixins/form-options'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formOptionsProps), {}, {\n labelField: makeProp(PROP_TYPE_STRING, 'label'),\n optionsField: makeProp(PROP_TYPE_STRING, 'options')\n})), 'formOptions'); // --- Mixin ---\n// @vue/component\n\nexport var optionsMixin = Vue.extend({\n mixins: [formOptionsMixin],\n props: props,\n methods: {\n normalizeOption: function normalizeOption(option) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When the option is an object, normalize it\n if (isPlainObject(option)) {\n var value = get(option, this.valueField);\n var text = get(option, this.textField);\n var options = get(option, this.optionsField, null); // When it has options, create an `` object\n\n if (!isNull(options)) {\n return {\n label: String(get(option, this.labelField) || text),\n options: this.normalizeOptions(options)\n };\n } // Otherwise create an `` object\n\n\n return {\n value: isUndefined(value) ? key || text : value,\n text: String(isUndefined(text) ? key : text),\n html: get(option, this.htmlField),\n disabled: Boolean(get(option, this.disabledField))\n };\n } // Otherwise create an `` object from the given value\n\n\n return {\n value: key || option,\n text: String(option),\n disabled: false\n };\n }\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_SELECT_OPTION } from '../../constants/components';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY, undefined, true) // Required\n\n}, NAME_FORM_SELECT_OPTION); // --- Main component ---\n// @vue/component\n\nexport var BFormSelectOption = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_SELECT_OPTION,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var value = props.value,\n disabled = props.disabled;\n return h('option', mergeData(data, {\n attrs: {\n disabled: disabled\n },\n domProps: {\n value: value\n }\n }), children);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_SELECT_OPTION_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_FIRST } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formOptionsMixin, props as formOptionsProps } from '../../mixins/form-options';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BFormSelectOption } from './form-select-option'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formOptionsProps), {}, {\n label: makeProp(PROP_TYPE_STRING, undefined, true) // Required\n\n})), NAME_FORM_SELECT_OPTION_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormSelectOptionGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_SELECT_OPTION_GROUP,\n mixins: [normalizeSlotMixin, formOptionsMixin],\n props: props,\n render: function render(h) {\n var label = this.label;\n var $options = this.formOptions.map(function (option, index) {\n var value = option.value,\n text = option.text,\n html = option.html,\n disabled = option.disabled;\n return h(BFormSelectOption, {\n attrs: {\n value: value,\n disabled: disabled\n },\n domProps: htmlOrText(html, text),\n key: \"option_\".concat(index)\n });\n });\n return h('optgroup', {\n attrs: {\n label: label\n }\n }, [this.normalizeSlot(SLOT_NAME_FIRST), $options, this.normalizeSlot()]);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_SELECT } from '../../constants/components';\nimport { EVENT_NAME_CHANGE } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER } from '../../constants/props';\nimport { SLOT_NAME_FIRST } from '../../constants/slots';\nimport { from as arrayFrom } from '../../utils/array';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { htmlOrText } from '../../utils/html';\nimport { isArray } from '../../utils/inspect';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { MODEL_EVENT_NAME, MODEL_PROP_NAME, modelMixin, props as modelProps } from '../../mixins/model';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { optionsMixin } from './helpers/mixin-options';\nimport { BFormSelectOption } from './form-select-option';\nimport { BFormSelectOptionGroup } from './form-select-option-group'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formSizeProps), formStateProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n // Browsers default size to `0`, which shows 4 rows in most browsers in multiple mode\n // Size of `1` can bork out Firefox\n selectSize: makeProp(PROP_TYPE_NUMBER, 0)\n})), NAME_FORM_SELECT); // --- Main component ---\n// @vue/component\n\nexport var BFormSelect = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_SELECT,\n mixins: [idMixin, modelMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin, optionsMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n localValue: this[MODEL_PROP_NAME]\n };\n },\n computed: {\n computedSelectSize: function computedSelectSize() {\n // Custom selects with a size of zero causes the arrows to be hidden,\n // so dont render the size attribute in this case\n return !this.plain && this.selectSize === 0 ? null : this.selectSize;\n },\n inputClass: function inputClass() {\n return [this.plain ? 'form-control' : 'custom-select', this.size && this.plain ? \"form-control-\".concat(this.size) : null, this.size && !this.plain ? \"custom-select-\".concat(this.size) : null, this.stateClass];\n }\n },\n watch: {\n value: function value(newValue) {\n this.localValue = newValue;\n },\n localValue: function localValue() {\n this.$emit(MODEL_EVENT_NAME, this.localValue);\n }\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.input);\n },\n blur: function blur() {\n attemptBlur(this.$refs.input);\n },\n onChange: function onChange(event) {\n var _this = this;\n\n var target = event.target;\n var selectedValue = arrayFrom(target.options).filter(function (o) {\n return o.selected;\n }).map(function (o) {\n return '_value' in o ? o._value : o.value;\n });\n this.localValue = target.multiple ? selectedValue : selectedValue[0];\n this.$nextTick(function () {\n _this.$emit(EVENT_NAME_CHANGE, _this.localValue);\n });\n }\n },\n render: function render(h) {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n size = this.computedSelectSize,\n value = this.localValue;\n var $options = this.formOptions.map(function (option, index) {\n var value = option.value,\n label = option.label,\n options = option.options,\n disabled = option.disabled;\n var key = \"option_\".concat(index);\n return isArray(options) ? h(BFormSelectOptionGroup, {\n props: {\n label: label,\n options: options\n },\n key: key\n }) : h(BFormSelectOption, {\n props: {\n value: value,\n disabled: disabled\n },\n domProps: htmlOrText(option.html, option.text),\n key: key\n });\n });\n return h('select', {\n class: this.inputClass,\n attrs: {\n id: this.safeId(),\n name: name,\n form: this.form || null,\n multiple: this.multiple || null,\n size: size,\n disabled: disabled,\n required: required,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n change: this.onChange\n },\n directives: [{\n name: 'model',\n value: value\n }],\n ref: 'input'\n }, [this.normalizeSlot(SLOT_NAME_FIRST), $options, this.normalizeSlot()]);\n }\n});","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_SPINBUTTON } from '../../constants/components';\nimport { EVENT_NAME_CHANGE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_PAGEUP, CODE_UP, CODE_PAGEDOWN } from '../../constants/key-codes';\nimport { SLOT_NAME_DECREMENT, SLOT_NAME_INCREMENT } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { eventOnOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isNull } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { mathFloor, mathMax, mathPow, mathRound } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toFloat, toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formControlProps } from '../../mixins/form-control';\nimport { BIconPlus, BIconDash } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n // Should this really be String, to match native number inputs?\n type: PROP_TYPE_BOOLEAN_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // Default for spin button range and step\n\n\nvar DEFAULT_MIN = 1;\nvar DEFAULT_MAX = 100;\nvar DEFAULT_STEP = 1; // Delay before auto-repeat in ms\n\nvar DEFAULT_REPEAT_DELAY = 500; // Repeat interval in ms\n\nvar DEFAULT_REPEAT_INTERVAL = 100; // Repeat rate increased after number of repeats\n\nvar DEFAULT_REPEAT_THRESHOLD = 10; // Repeat speed multiplier (step multiplier, must be an integer)\n\nvar DEFAULT_REPEAT_MULTIPLIER = 4;\nvar KEY_CODES = [CODE_UP, CODE_DOWN, CODE_HOME, CODE_END, CODE_PAGEUP, CODE_PAGEDOWN]; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), omit(formControlProps, ['required', 'autofocus'])), formSizeProps), formStateProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n formatterFn: makeProp(PROP_TYPE_FUNCTION),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n labelDecrement: makeProp(PROP_TYPE_STRING, 'Decrement'),\n labelIncrement: makeProp(PROP_TYPE_STRING, 'Increment'),\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_MAX),\n min: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_MIN),\n placeholder: makeProp(PROP_TYPE_STRING),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n repeatDelay: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_DELAY),\n repeatInterval: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_INTERVAL),\n repeatStepMultiplier: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_MULTIPLIER),\n repeatThreshold: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_THRESHOLD),\n step: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_STEP),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false),\n wrap: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_FORM_SPINBUTTON); // --- Main Component ---\n// @vue/component\n\nexport var BFormSpinbutton = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_SPINBUTTON,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, formSizeMixin, formStateMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localValue: toFloat(this[MODEL_PROP_NAME], null),\n hasFocus: false\n };\n },\n computed: {\n spinId: function spinId() {\n return this.safeId();\n },\n computedInline: function computedInline() {\n return this.inline && !this.vertical;\n },\n computedReadonly: function computedReadonly() {\n return this.readonly && !this.disabled;\n },\n computedRequired: function computedRequired() {\n return this.required && !this.computedReadonly && !this.disabled;\n },\n computedStep: function computedStep() {\n return toFloat(this.step, DEFAULT_STEP);\n },\n computedMin: function computedMin() {\n return toFloat(this.min, DEFAULT_MIN);\n },\n computedMax: function computedMax() {\n // We round down to the nearest maximum step value\n var max = toFloat(this.max, DEFAULT_MAX);\n var step = this.computedStep;\n var min = this.computedMin;\n return mathFloor((max - min) / step) * step + min;\n },\n computedDelay: function computedDelay() {\n var delay = toInteger(this.repeatDelay, 0);\n return delay > 0 ? delay : DEFAULT_REPEAT_DELAY;\n },\n computedInterval: function computedInterval() {\n var interval = toInteger(this.repeatInterval, 0);\n return interval > 0 ? interval : DEFAULT_REPEAT_INTERVAL;\n },\n computedThreshold: function computedThreshold() {\n return mathMax(toInteger(this.repeatThreshold, DEFAULT_REPEAT_THRESHOLD), 1);\n },\n computedStepMultiplier: function computedStepMultiplier() {\n return mathMax(toInteger(this.repeatStepMultiplier, DEFAULT_REPEAT_MULTIPLIER), 1);\n },\n computedPrecision: function computedPrecision() {\n // Quick and dirty way to get the number of decimals\n var step = this.computedStep;\n return mathFloor(step) === step ? 0 : (step.toString().split('.')[1] || '').length;\n },\n computedMultiplier: function computedMultiplier() {\n return mathPow(10, this.computedPrecision || 0);\n },\n valueAsFixed: function valueAsFixed() {\n var value = this.localValue;\n return isNull(value) ? '' : value.toFixed(this.computedPrecision);\n },\n computedLocale: function computedLocale() {\n var locales = concat(this.locale).filter(identity);\n var nf = new Intl.NumberFormat(locales);\n return nf.resolvedOptions().locale;\n },\n computedRTL: function computedRTL() {\n return isLocaleRTL(this.computedLocale);\n },\n defaultFormatter: function defaultFormatter() {\n // Returns and `Intl.NumberFormat` formatter method reference\n var precision = this.computedPrecision;\n var nf = new Intl.NumberFormat(this.computedLocale, {\n style: 'decimal',\n useGrouping: false,\n minimumIntegerDigits: 1,\n minimumFractionDigits: precision,\n maximumFractionDigits: precision,\n notation: 'standard'\n }); // Return the format method reference\n\n return nf.format;\n },\n computedFormatter: function computedFormatter() {\n var formatterFn = this.formatterFn;\n return hasPropFunction(formatterFn) ? formatterFn : this.defaultFormatter;\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'group',\n lang: this.computedLocale,\n tabindex: this.disabled ? null : '-1',\n title: this.ariaLabel\n });\n },\n computedSpinAttrs: function computedSpinAttrs() {\n var spinId = this.spinId,\n value = this.localValue,\n required = this.computedRequired,\n disabled = this.disabled,\n state = this.state,\n computedFormatter = this.computedFormatter;\n var hasValue = !isNull(value);\n return _objectSpread(_objectSpread({\n dir: this.computedRTL ? 'rtl' : 'ltr'\n }, this.bvAttrs), {}, {\n id: spinId,\n role: 'spinbutton',\n tabindex: disabled ? null : '0',\n 'aria-live': 'off',\n 'aria-label': this.ariaLabel || null,\n 'aria-controls': this.ariaControls || null,\n // TODO: May want to check if the value is in range\n 'aria-invalid': state === false || !hasValue && required ? 'true' : null,\n 'aria-required': required ? 'true' : null,\n // These attrs are required for role spinbutton\n 'aria-valuemin': toString(this.computedMin),\n 'aria-valuemax': toString(this.computedMax),\n // These should be `null` if the value is out of range\n // They must also be non-existent attrs if the value is out of range or `null`\n 'aria-valuenow': hasValue ? value : null,\n 'aria-valuetext': hasValue ? computedFormatter(value) : null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (value) {\n this.localValue = toFloat(value, null);\n }), _defineProperty(_watch, \"localValue\", function localValue(value) {\n this.$emit(MODEL_EVENT_NAME, value);\n }), _defineProperty(_watch, \"disabled\", function disabled(_disabled) {\n if (_disabled) {\n this.clearRepeat();\n }\n }), _defineProperty(_watch, \"readonly\", function readonly(_readonly) {\n if (_readonly) {\n this.clearRepeat();\n }\n }), _watch),\n created: function created() {\n // Create non reactive properties\n this.$_autoDelayTimer = null;\n this.$_autoRepeatTimer = null;\n this.$_keyIsDown = false;\n },\n beforeDestroy: function beforeDestroy() {\n this.clearRepeat();\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.clearRepeat();\n },\n methods: {\n // --- Public methods ---\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.spinner);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.spinner);\n }\n },\n // --- Private methods ---\n emitChange: function emitChange() {\n this.$emit(EVENT_NAME_CHANGE, this.localValue);\n },\n stepValue: function stepValue(direction) {\n // Sets a new incremented or decremented value, supporting optional wrapping\n // Direction is either +1 or -1 (or a multiple thereof)\n var value = this.localValue;\n\n if (!this.disabled && !isNull(value)) {\n var step = this.computedStep * direction;\n var min = this.computedMin;\n var max = this.computedMax;\n var multiplier = this.computedMultiplier;\n var wrap = this.wrap; // We ensure that the value steps like a native input\n\n value = mathRound((value - min) / step) * step + min + step; // We ensure that precision is maintained (decimals)\n\n value = mathRound(value * multiplier) / multiplier; // Handle if wrapping is enabled\n\n this.localValue = value > max ? wrap ? min : max : value < min ? wrap ? max : min : value;\n }\n },\n onFocusBlur: function onFocusBlur(event) {\n this.hasFocus = this.disabled ? false : event.type === 'focus';\n },\n stepUp: function stepUp() {\n var multiplier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var value = this.localValue;\n\n if (isNull(value)) {\n this.localValue = this.computedMin;\n } else {\n this.stepValue(+1 * multiplier);\n }\n },\n stepDown: function stepDown() {\n var multiplier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var value = this.localValue;\n\n if (isNull(value)) {\n this.localValue = this.wrap ? this.computedMax : this.computedMin;\n } else {\n this.stepValue(-1 * multiplier);\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode,\n altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n /* istanbul ignore if */\n\n if (this.disabled || this.readonly || altKey || ctrlKey || metaKey) {\n return;\n }\n\n if (arrayIncludes(KEY_CODES, keyCode)) {\n // https://w3c.github.io/aria-practices/#spinbutton\n stopEvent(event, {\n propagation: false\n });\n /* istanbul ignore if */\n\n if (this.$_keyIsDown) {\n // Keypress is already in progress\n return;\n }\n\n this.resetTimers();\n\n if (arrayIncludes([CODE_UP, CODE_DOWN], keyCode)) {\n // The following use the custom auto-repeat handling\n this.$_keyIsDown = true;\n\n if (keyCode === CODE_UP) {\n this.handleStepRepeat(event, this.stepUp);\n } else if (keyCode === CODE_DOWN) {\n this.handleStepRepeat(event, this.stepDown);\n }\n } else {\n // These use native OS key repeating\n if (keyCode === CODE_PAGEUP) {\n this.stepUp(this.computedStepMultiplier);\n } else if (keyCode === CODE_PAGEDOWN) {\n this.stepDown(this.computedStepMultiplier);\n } else if (keyCode === CODE_HOME) {\n this.localValue = this.computedMin;\n } else if (keyCode === CODE_END) {\n this.localValue = this.computedMax;\n }\n }\n }\n },\n onKeyup: function onKeyup(event) {\n // Emit a change event when the keyup happens\n var keyCode = event.keyCode,\n altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n /* istanbul ignore if */\n\n if (this.disabled || this.readonly || altKey || ctrlKey || metaKey) {\n return;\n }\n\n if (arrayIncludes(KEY_CODES, keyCode)) {\n stopEvent(event, {\n propagation: false\n });\n this.resetTimers();\n this.$_keyIsDown = false;\n this.emitChange();\n }\n },\n handleStepRepeat: function handleStepRepeat(event, stepper) {\n var _this = this;\n\n var _ref = event || {},\n type = _ref.type,\n button = _ref.button;\n\n if (!this.disabled && !this.readonly) {\n /* istanbul ignore if */\n if (type === 'mousedown' && button) {\n // We only respond to left (main === 0) button clicks\n return;\n }\n\n this.resetTimers(); // Step the counter initially\n\n stepper(1);\n var threshold = this.computedThreshold;\n var multiplier = this.computedStepMultiplier;\n var delay = this.computedDelay;\n var interval = this.computedInterval; // Initiate the delay/repeat interval\n\n this.$_autoDelayTimer = setTimeout(function () {\n var count = 0;\n _this.$_autoRepeatTimer = setInterval(function () {\n // After N initial repeats, we increase the incrementing step amount\n // We do this to minimize screen reader announcements of the value\n // (values are announced every change, which can be chatty for SR users)\n // And to make it easer to select a value when the range is large\n stepper(count < threshold ? 1 : multiplier);\n count++;\n }, interval);\n }, delay);\n }\n },\n onMouseup: function onMouseup(event) {\n // `` listener, only enabled when mousedown starts\n var _ref2 = event || {},\n type = _ref2.type,\n button = _ref2.button;\n /* istanbul ignore if */\n\n\n if (type === 'mouseup' && button) {\n // Ignore non left button (main === 0) mouse button click\n return;\n }\n\n stopEvent(event, {\n propagation: false\n });\n this.resetTimers();\n this.setMouseup(false); // Trigger the change event\n\n this.emitChange();\n },\n setMouseup: function setMouseup(on) {\n // Enable or disabled the body mouseup/touchend handlers\n // Use try/catch to handle case when called server side\n try {\n eventOnOff(on, document.body, 'mouseup', this.onMouseup, false);\n eventOnOff(on, document.body, 'touchend', this.onMouseup, false);\n } catch (_unused) {}\n },\n resetTimers: function resetTimers() {\n clearTimeout(this.$_autoDelayTimer);\n clearInterval(this.$_autoRepeatTimer);\n this.$_autoDelayTimer = null;\n this.$_autoRepeatTimer = null;\n },\n clearRepeat: function clearRepeat() {\n this.resetTimers();\n this.setMouseup(false);\n this.$_keyIsDown = false;\n }\n },\n render: function render(h) {\n var _this2 = this;\n\n var spinId = this.spinId,\n value = this.localValue,\n inline = this.computedInline,\n readonly = this.computedReadonly,\n vertical = this.vertical,\n disabled = this.disabled,\n computedFormatter = this.computedFormatter;\n var hasValue = !isNull(value);\n\n var makeButton = function makeButton(stepper, label, IconCmp, keyRef, shortcut, btnDisabled, slotName) {\n var $icon = h(IconCmp, {\n props: {\n scale: _this2.hasFocus ? 1.5 : 1.25\n },\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n var scope = {\n hasFocus: _this2.hasFocus\n };\n\n var handler = function handler(event) {\n if (!disabled && !readonly) {\n stopEvent(event, {\n propagation: false\n });\n\n _this2.setMouseup(true); // Since we `preventDefault()`, we must manually focus the button\n\n\n attemptFocus(event.currentTarget);\n\n _this2.handleStepRepeat(event, stepper);\n }\n };\n\n return h('button', {\n staticClass: 'btn btn-sm border-0 rounded-0',\n class: {\n 'py-0': !vertical\n },\n attrs: {\n tabindex: '-1',\n type: 'button',\n disabled: disabled || readonly || btnDisabled,\n 'aria-disabled': disabled || readonly || btnDisabled ? 'true' : null,\n 'aria-controls': spinId,\n 'aria-label': label || null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: {\n mousedown: handler,\n touchstart: handler\n },\n key: keyRef || null,\n ref: keyRef\n }, [_this2.normalizeSlot(slotName, scope) || $icon]);\n }; // TODO: Add button disabled state when `wrap` is `false` and at value max/min\n\n\n var $increment = makeButton(this.stepUp, this.labelIncrement, BIconPlus, 'inc', 'ArrowUp', false, SLOT_NAME_INCREMENT);\n var $decrement = makeButton(this.stepDown, this.labelDecrement, BIconDash, 'dec', 'ArrowDown', false, SLOT_NAME_DECREMENT);\n var $hidden = h();\n\n if (this.name && !disabled) {\n $hidden = h('input', {\n attrs: {\n type: 'hidden',\n name: this.name,\n form: this.form || null,\n // TODO: Should this be set to '' if value is out of range?\n value: this.valueAsFixed\n },\n key: 'hidden'\n });\n }\n\n var $spin = h( // We use 'output' element to make this accept a `` (Except IE)\n 'output', {\n staticClass: 'flex-grow-1',\n class: {\n 'd-flex': vertical,\n 'align-self-center': !vertical,\n 'align-items-center': vertical,\n 'border-top': vertical,\n 'border-bottom': vertical,\n 'border-left': !vertical,\n 'border-right': !vertical\n },\n attrs: this.computedSpinAttrs,\n key: 'output',\n ref: 'spinner'\n }, [h('bdi', hasValue ? computedFormatter(value) : this.placeholder || '')]);\n return h('div', {\n staticClass: 'b-form-spinbutton form-control',\n class: [{\n disabled: disabled,\n readonly: readonly,\n focus: this.hasFocus,\n 'd-inline-flex': inline || vertical,\n 'd-flex': !inline && !vertical,\n 'align-items-stretch': !vertical,\n 'flex-column': vertical\n }, this.sizeFormClass, this.stateClass],\n attrs: this.computedAttrs,\n on: {\n keydown: this.onKeydown,\n keyup: this.onKeyup,\n // We use capture phase (`!` prefix) since focus and blur do not bubble\n '!focus': this.onFocusBlur,\n '!blur': this.onFocusBlur\n }\n }, vertical ? [$increment, $hidden, $spin, $decrement] : [$decrement, $hidden, $spin, $increment]);\n }\n});","import { BFormSelect } from './form-select';\nimport { BFormSelectOption } from './form-select-option';\nimport { BFormSelectOptionGroup } from './form-select-option-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormSelectPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormSelect: BFormSelect,\n BFormSelectOption: BFormSelectOption,\n BFormSelectOptionGroup: BFormSelectOptionGroup,\n BSelect: BFormSelect,\n BSelectOption: BFormSelectOption,\n BSelectOptionGroup: BFormSelectOptionGroup\n }\n});\nexport { FormSelectPlugin, BFormSelect, BFormSelectOption, BFormSelectOptionGroup };","import { BFormSpinbutton } from './form-spinbutton';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormSpinbuttonPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormSpinbutton: BFormSpinbutton,\n BSpinbutton: BFormSpinbutton\n }\n});\nexport { FormSpinbuttonPlugin, BFormSpinbutton };","function 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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TAG } from '../../constants/components';\nimport { EVENT_NAME_REMOVE } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { CODE_DELETE } from '../../constants/key-codes';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BBadge } from '../badge/badge';\nimport { BButtonClose } from '../button/button-close'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n noRemove: makeProp(PROP_TYPE_BOOLEAN, false),\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n removeLabel: makeProp(PROP_TYPE_STRING, 'Remove tag'),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n title: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_FORM_TAG); // --- Main component ---\n// @vue/component\n\nexport var BFormTag = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TAG,\n mixins: [idMixin, normalizeSlotMixin],\n props: props,\n methods: {\n onRemove: function onRemove(event) {\n var type = event.type,\n keyCode = event.keyCode;\n\n if (!this.disabled && (type === 'click' || type === 'keydown' && keyCode === CODE_DELETE)) {\n this.$emit(EVENT_NAME_REMOVE);\n }\n }\n },\n render: function render(h) {\n var title = this.title,\n tag = this.tag,\n variant = this.variant,\n pill = this.pill,\n disabled = this.disabled;\n var tagId = this.safeId();\n var tagLabelId = this.safeId('_taglabel_');\n var $remove = h();\n\n if (!this.noRemove && !disabled) {\n $remove = h(BButtonClose, {\n staticClass: 'b-form-tag-remove',\n props: {\n ariaLabel: this.removeLabel\n },\n attrs: {\n 'aria-controls': tagId,\n 'aria-describedby': tagLabelId,\n 'aria-keyshortcuts': 'Delete'\n },\n on: {\n click: this.onRemove,\n keydown: this.onRemove\n }\n });\n }\n\n var $tag = h('span', {\n staticClass: 'b-form-tag-content flex-grow-1 text-truncate',\n attrs: {\n id: tagLabelId\n }\n }, this.normalizeSlot() || title);\n return h(BBadge, {\n staticClass: 'b-form-tag d-inline-flex align-items-baseline mw-100',\n class: {\n disabled: disabled\n },\n props: {\n tag: tag,\n variant: variant,\n pill: pill\n },\n attrs: {\n id: tagId,\n title: title || null,\n 'aria-labelledby': tagLabelId\n }\n }, [$tag, $remove]);\n }\n});","var _watch;\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 _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 _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 _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 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\n// Tagged input form control\n// Based loosely on https://adamwathan.me/renderless-components-in-vuejs/\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TAGS } from '../../constants/components';\nimport { EVENT_NAME_BLUR, EVENT_NAME_FOCUS, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_TAG_STATE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_BACKSPACE, CODE_DELETE, CODE_ENTER } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_SPACES } from '../../constants/regex';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_ADD_BUTTON_TEXT } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { cssEscape } from '../../utils/css-escape';\nimport { attemptBlur, attemptFocus, closest, matches, requestAF, select } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent, isNumber, isString } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, pick, sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp, toString, trim, trimLeft } from '../../utils/string';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormText } from '../form/form-text';\nimport { BFormTag } from './form-tag'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_ARRAY,\n defaultValue: []\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // Supported input types (for built in input)\n\n\nvar TYPES = ['text', 'email', 'tel', 'url', 'number']; // Default ignore input focus selector\n\nvar DEFAULT_INPUT_FOCUS_SELECTOR = ['.b-form-tag', 'button', 'input', 'select'].join(' '); // --- Helper methods ---\n// Escape special chars in string and replace\n// contiguous spaces with a whitespace match\n\nvar escapeRegExpChars = function escapeRegExpChars(str) {\n return escapeRegExp(str).replace(RX_SPACES, '\\\\s');\n}; // Remove leading/trailing spaces from array of tags and remove duplicates\n\n\nvar cleanTags = function cleanTags(tags) {\n return concat(tags).map(function (tag) {\n return trim(toString(tag));\n }).filter(function (tag, index, arr) {\n return tag.length > 0 && arr.indexOf(tag) === index;\n });\n}; // Processes an input/change event, normalizing string or event argument\n\n\nvar processEventValue = function processEventValue(event) {\n return isString(event) ? event : isEvent(event) ? event.target.value || '' : '';\n}; // Returns a fresh empty `tagsState` object\n\n\nvar cleanTagsState = function cleanTagsState() {\n return {\n all: [],\n valid: [],\n invalid: [],\n duplicate: []\n };\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formSizeProps), formStateProps), {}, {\n addButtonText: makeProp(PROP_TYPE_STRING, 'Add'),\n addButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n // Enable change event triggering tag addition\n // Handy if using as the input\n addOnChange: makeProp(PROP_TYPE_BOOLEAN, false),\n duplicateTagText: makeProp(PROP_TYPE_STRING, 'Duplicate tag(s)'),\n feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),\n // Disable the input focus behavior when clicking\n // on element matching the selector (or selectors)\n ignoreInputFocusSelector: makeProp(PROP_TYPE_ARRAY_STRING, DEFAULT_INPUT_FOCUS_SELECTOR),\n // Additional attributes to add to the input element\n inputAttrs: makeProp(PROP_TYPE_OBJECT, {}),\n inputClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n inputId: makeProp(PROP_TYPE_STRING),\n inputType: makeProp(PROP_TYPE_STRING, 'text', function (value) {\n return arrayIncludes(TYPES, value);\n }),\n invalidTagText: makeProp(PROP_TYPE_STRING, 'Invalid tag(s)'),\n limit: makeProp(PROP_TYPE_NUMBER),\n limitTagsText: makeProp(PROP_TYPE_STRING, 'Tag limit reached'),\n // Disable ENTER key from triggering tag addition\n noAddOnEnter: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the focus ring on the root element\n noOuterFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noTagRemove: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'Add tag...'),\n // Enable deleting last tag in list when CODE_BACKSPACE is\n // pressed and input is empty\n removeOnDelete: makeProp(PROP_TYPE_BOOLEAN, false),\n // Character (or characters) that trigger adding tags\n separator: makeProp(PROP_TYPE_ARRAY_STRING),\n tagClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tagPills: makeProp(PROP_TYPE_BOOLEAN, false),\n tagRemoveLabel: makeProp(PROP_TYPE_STRING, 'Remove tag'),\n tagRemovedLabel: makeProp(PROP_TYPE_STRING, 'Tag removed'),\n tagValidator: makeProp(PROP_TYPE_FUNCTION),\n tagVariant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_FORM_TAGS); // --- Main component ---\n// @vue/component\n\nexport var BFormTags = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TAGS,\n mixins: [listenersMixin, idMixin, modelMixin, formControlMixin, formSizeMixin, formStateMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n hasFocus: false,\n newTag: '',\n tags: [],\n // Tags that were removed\n removedTags: [],\n // Populated when tags are parsed\n tagsState: cleanTagsState(),\n focusState: null\n };\n },\n computed: {\n computedInputId: function computedInputId() {\n return this.inputId || this.safeId('__input__');\n },\n computedInputType: function computedInputType() {\n // We only allow certain types\n return arrayIncludes(TYPES, this.inputType) ? this.inputType : 'text';\n },\n computedInputAttrs: function computedInputAttrs() {\n var disabled = this.disabled,\n form = this.form;\n return _objectSpread(_objectSpread({}, this.inputAttrs), {}, {\n // Must have attributes\n id: this.computedInputId,\n value: this.newTag,\n disabled: disabled,\n form: form\n });\n },\n computedInputHandlers: function computedInputHandlers() {\n return _objectSpread(_objectSpread({}, omit(this.bvListeners, [EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT])), {}, {\n blur: this.onInputBlur,\n change: this.onInputChange,\n focus: this.onInputFocus,\n input: this.onInputInput,\n keydown: this.onInputKeydown,\n reset: this.reset\n });\n },\n computedSeparator: function computedSeparator() {\n // Merge the array into a string\n return concat(this.separator).filter(isString).filter(identity).join('');\n },\n computedSeparatorRegExp: function computedSeparatorRegExp() {\n // We use a computed prop here to precompile the RegExp\n // The RegExp is a character class RE in the form of `/[abc]+/`\n // where a, b, and c are the valid separator characters\n // -> `tags = str.split(/[abc]+/).filter(t => t)`\n var separator = this.computedSeparator;\n return separator ? new RegExp(\"[\".concat(escapeRegExpChars(separator), \"]+\")) : null;\n },\n computedJoiner: function computedJoiner() {\n // When tag(s) are invalid or duplicate, we leave them\n // in the input so that the user can see them\n // If there are more than one tag in the input, we use the\n // first separator character as the separator in the input\n // We append a space if the first separator is not a space\n var joiner = this.computedSeparator.charAt(0);\n return joiner !== ' ' ? \"\".concat(joiner, \" \") : joiner;\n },\n computeIgnoreInputFocusSelector: function computeIgnoreInputFocusSelector() {\n // Normalize to an single selector with selectors separated by `,`\n return concat(this.ignoreInputFocusSelector).filter(identity).join(',').trim();\n },\n disableAddButton: function disableAddButton() {\n var _this = this;\n\n // If 'Add' button should be disabled\n // If the input contains at least one tag that can\n // be added, then the 'Add' button should be enabled\n var newTag = trim(this.newTag);\n return newTag === '' || !this.splitTags(newTag).some(function (t) {\n return !arrayIncludes(_this.tags, t) && _this.validateTag(t);\n });\n },\n duplicateTags: function duplicateTags() {\n return this.tagsState.duplicate;\n },\n hasDuplicateTags: function hasDuplicateTags() {\n return this.duplicateTags.length > 0;\n },\n invalidTags: function invalidTags() {\n return this.tagsState.invalid;\n },\n hasInvalidTags: function hasInvalidTags() {\n return this.invalidTags.length > 0;\n },\n isLimitReached: function isLimitReached() {\n var limit = this.limit;\n return isNumber(limit) && limit >= 0 && this.tags.length >= limit;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.tags = cleanTags(newValue);\n }), _defineProperty(_watch, \"tags\", function tags(newValue, oldValue) {\n // Update the `v-model` (if it differs from the value prop)\n if (!looseEqual(newValue, this[MODEL_PROP_NAME])) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (!looseEqual(newValue, oldValue)) {\n newValue = concat(newValue).filter(identity);\n oldValue = concat(oldValue).filter(identity);\n this.removedTags = oldValue.filter(function (old) {\n return !arrayIncludes(newValue, old);\n });\n }\n }), _defineProperty(_watch, \"tagsState\", function tagsState(newValue, oldValue) {\n // Emit a tag-state event when the `tagsState` object changes\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_TAG_STATE, newValue.valid, newValue.invalid, newValue.duplicate);\n }\n }), _watch),\n created: function created() {\n // We do this in created to make sure an input event emits\n // if the cleaned tags are not equal to the value prop\n this.tags = cleanTags(this[MODEL_PROP_NAME]);\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the tags input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n addTag: function addTag(newTag) {\n newTag = isString(newTag) ? newTag : this.newTag;\n /* istanbul ignore next */\n\n if (this.disabled || trim(newTag) === '' || this.isLimitReached) {\n // Early exit\n return;\n }\n\n var parsed = this.parseTags(newTag); // Add any new tags to the `tags` array, or if the\n // array of `allTags` is empty, we clear the input\n\n if (parsed.valid.length > 0 || parsed.all.length === 0) {\n // Clear the user input element (and leave in any invalid/duplicate tag(s)\n\n /* istanbul ignore if: full testing to be added later */\n if (matches(this.getInput(), 'select')) {\n // The following is needed to properly\n // work with `` elements\n this.newTag = '';\n } else {\n var invalidAndDuplicates = [].concat(_toConsumableArray(parsed.invalid), _toConsumableArray(parsed.duplicate));\n this.newTag = parsed.all.filter(function (tag) {\n return arrayIncludes(invalidAndDuplicates, tag);\n }).join(this.computedJoiner).concat(invalidAndDuplicates.length > 0 ? this.computedJoiner.charAt(0) : '');\n }\n }\n\n if (parsed.valid.length > 0) {\n // We add the new tags in one atomic operation\n // to trigger reactivity once (instead of once per tag)\n // We do this after we update the new tag input value\n // `concat()` can be faster than array spread, when both args are arrays\n this.tags = concat(this.tags, parsed.valid);\n }\n\n this.tagsState = parsed; // Attempt to re-focus the input (specifically for when using the Add\n // button, as the button disappears after successfully adding a tag\n\n this.focus();\n },\n removeTag: function removeTag(tag) {\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n } // TODO:\n // Add `onRemoveTag(tag)` user method, which if returns `false`\n // will prevent the tag from being removed (i.e. confirmation)\n // Or emit cancelable `BvEvent`\n\n\n this.tags = this.tags.filter(function (t) {\n return t !== tag;\n });\n },\n reset: function reset() {\n var _this2 = this;\n\n this.newTag = '';\n this.tags = [];\n this.$nextTick(function () {\n _this2.removedTags = [];\n _this2.tagsState = cleanTagsState();\n });\n },\n // --- Input element event handlers ---\n onInputInput: function onInputInput(event) {\n /* istanbul ignore next: hard to test composition events */\n if (this.disabled || isEvent(event) && event.target.composing) {\n // `event.target.composing` is set by Vue (`v-model` directive)\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n return;\n }\n\n var newTag = processEventValue(event);\n var separatorRe = this.computedSeparatorRegExp;\n\n if (this.newTag !== newTag) {\n this.newTag = newTag;\n } // We ignore leading whitespace for the following\n\n\n newTag = trimLeft(newTag);\n\n if (separatorRe && separatorRe.test(newTag.slice(-1))) {\n // A trailing separator character was entered, so add the tag(s)\n // Note: More than one tag on input event is possible via copy/paste\n this.addTag();\n } else {\n // Validate (parse tags) on input event\n this.tagsState = newTag === '' ? cleanTagsState() : this.parseTags(newTag);\n }\n },\n onInputChange: function onInputChange(event) {\n // Change is triggered on `` blur, or `` selected\n // This event is opt-in\n if (!this.disabled && this.addOnChange) {\n var newTag = processEventValue(event);\n /* istanbul ignore next */\n\n if (this.newTag !== newTag) {\n this.newTag = newTag;\n }\n\n this.addTag();\n }\n },\n onInputKeydown: function onInputKeydown(event) {\n // Early exit\n\n /* istanbul ignore next */\n if (this.disabled || !isEvent(event)) {\n return;\n }\n\n var keyCode = event.keyCode;\n var value = event.target.value || '';\n /* istanbul ignore else: testing to be added later */\n\n if (!this.noAddOnEnter && keyCode === CODE_ENTER) {\n // Attempt to add the tag when user presses enter\n stopEvent(event, {\n propagation: false\n });\n this.addTag();\n } else if (this.removeOnDelete && (keyCode === CODE_BACKSPACE || keyCode === CODE_DELETE) && value === '') {\n // Remove the last tag if the user pressed backspace/delete and the input is empty\n stopEvent(event, {\n propagation: false\n });\n this.tags = this.tags.slice(0, -1);\n }\n },\n // --- Wrapper event handlers ---\n onClick: function onClick(event) {\n var _this3 = this;\n\n var ignoreFocusSelector = this.computeIgnoreInputFocusSelector;\n\n if (!ignoreFocusSelector || !closest(ignoreFocusSelector, event.target, true)) {\n this.$nextTick(function () {\n _this3.focus();\n });\n }\n },\n onInputFocus: function onInputFocus(event) {\n var _this4 = this;\n\n if (this.focusState !== 'out') {\n this.focusState = 'in';\n this.$nextTick(function () {\n requestAF(function () {\n if (_this4.hasFocus) {\n _this4.$emit(EVENT_NAME_FOCUS, event);\n\n _this4.focusState = null;\n }\n });\n });\n }\n },\n onInputBlur: function onInputBlur(event) {\n var _this5 = this;\n\n if (this.focusState !== 'in') {\n this.focusState = 'out';\n this.$nextTick(function () {\n requestAF(function () {\n if (!_this5.hasFocus) {\n _this5.$emit(EVENT_NAME_BLUR, event);\n\n _this5.focusState = null;\n }\n });\n });\n }\n },\n onFocusin: function onFocusin(event) {\n this.hasFocus = true;\n this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n onFocusout: function onFocusout(event) {\n this.hasFocus = false;\n this.$emit(EVENT_NAME_FOCUSOUT, event);\n },\n handleAutofocus: function handleAutofocus() {\n var _this6 = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n if (_this6.autofocus) {\n _this6.focus();\n }\n });\n });\n },\n // --- Public methods ---\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.getInput());\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.getInput());\n }\n },\n // --- Private methods ---\n splitTags: function splitTags(newTag) {\n // Split the input into an array of raw tags\n newTag = toString(newTag);\n var separatorRe = this.computedSeparatorRegExp; // Split the tag(s) via the optional separator\n // Normally only a single tag is provided, but copy/paste\n // can enter multiple tags in a single operation\n\n return (separatorRe ? newTag.split(separatorRe) : [newTag]).map(trim).filter(identity);\n },\n parseTags: function parseTags(newTag) {\n var _this7 = this;\n\n // Takes `newTag` value and parses it into `validTags`,\n // `invalidTags`, and duplicate tags as an object\n // Split the input into raw tags\n var tags = this.splitTags(newTag); // Base results\n\n var parsed = {\n all: tags,\n valid: [],\n invalid: [],\n duplicate: []\n }; // Parse the unique tags\n\n tags.forEach(function (tag) {\n if (arrayIncludes(_this7.tags, tag) || arrayIncludes(parsed.valid, tag)) {\n // Unique duplicate tags\n if (!arrayIncludes(parsed.duplicate, tag)) {\n parsed.duplicate.push(tag);\n }\n } else if (_this7.validateTag(tag)) {\n // We only add unique/valid tags\n parsed.valid.push(tag);\n } else {\n // Unique invalid tags\n if (!arrayIncludes(parsed.invalid, tag)) {\n parsed.invalid.push(tag);\n }\n }\n });\n return parsed;\n },\n validateTag: function validateTag(tag) {\n var tagValidator = this.tagValidator;\n return hasPropFunction(tagValidator) ? tagValidator(tag) : true;\n },\n getInput: function getInput() {\n // Returns the input element reference (or null if not found)\n // We need to escape `computedInputId` since it can be user-provided\n return select(\"#\".concat(cssEscape(this.computedInputId)), this.$el);\n },\n // Default User Interface render\n defaultRender: function defaultRender(_ref) {\n var addButtonText = _ref.addButtonText,\n addButtonVariant = _ref.addButtonVariant,\n addTag = _ref.addTag,\n disableAddButton = _ref.disableAddButton,\n disabled = _ref.disabled,\n duplicateTagText = _ref.duplicateTagText,\n inputAttrs = _ref.inputAttrs,\n inputClass = _ref.inputClass,\n inputHandlers = _ref.inputHandlers,\n inputType = _ref.inputType,\n invalidTagText = _ref.invalidTagText,\n isDuplicate = _ref.isDuplicate,\n isInvalid = _ref.isInvalid,\n isLimitReached = _ref.isLimitReached,\n limitTagsText = _ref.limitTagsText,\n noTagRemove = _ref.noTagRemove,\n placeholder = _ref.placeholder,\n removeTag = _ref.removeTag,\n tagClass = _ref.tagClass,\n tagPills = _ref.tagPills,\n tagRemoveLabel = _ref.tagRemoveLabel,\n tagVariant = _ref.tagVariant,\n tags = _ref.tags;\n var h = this.$createElement; // Make the list of tags\n\n var $tags = tags.map(function (tag) {\n tag = toString(tag);\n return h(BFormTag, {\n class: tagClass,\n // `BFormTag` will auto generate an ID\n // so we do not need to set the ID prop\n props: {\n disabled: disabled,\n noRemove: noTagRemove,\n pill: tagPills,\n removeLabel: tagRemoveLabel,\n tag: 'li',\n title: tag,\n variant: tagVariant\n },\n on: {\n remove: function remove() {\n return removeTag(tag);\n }\n },\n key: \"tags_\".concat(tag)\n }, tag);\n }); // Feedback IDs if needed\n\n var invalidFeedbackId = invalidTagText && isInvalid ? this.safeId('__invalid_feedback__') : null;\n var duplicateFeedbackId = duplicateTagText && isDuplicate ? this.safeId('__duplicate_feedback__') : null;\n var limitFeedbackId = limitTagsText && isLimitReached ? this.safeId('__limit_feedback__') : null; // Compute the `aria-describedby` attribute value\n\n var ariaDescribedby = [inputAttrs['aria-describedby'], invalidFeedbackId, duplicateFeedbackId, limitFeedbackId].filter(identity).join(' '); // Input\n\n var $input = h('input', {\n staticClass: 'b-form-tags-input w-100 flex-grow-1 p-0 m-0 bg-transparent border-0',\n class: inputClass,\n style: {\n outline: 0,\n minWidth: '5rem'\n },\n attrs: _objectSpread(_objectSpread({}, inputAttrs), {}, {\n 'aria-describedby': ariaDescribedby || null,\n type: inputType,\n placeholder: placeholder || null\n }),\n domProps: {\n value: inputAttrs.value\n },\n on: inputHandlers,\n // Directive needed to get `event.target.composing` set (if needed)\n directives: [{\n name: 'model',\n value: inputAttrs.value\n }],\n ref: 'input'\n }); // Add button\n\n var $button = h(BButton, {\n staticClass: 'b-form-tags-button py-0',\n class: {\n // Only show the button if the tag can be added\n // We use the `invisible` class instead of not rendering\n // the button, so that we maintain layout to prevent\n // the user input from jumping around\n invisible: disableAddButton\n },\n style: {\n fontSize: '90%'\n },\n props: {\n disabled: disableAddButton || isLimitReached,\n variant: addButtonVariant\n },\n on: {\n click: function click() {\n return addTag();\n }\n },\n ref: 'button'\n }, [this.normalizeSlot(SLOT_NAME_ADD_BUTTON_TEXT) || addButtonText]); // ID of the tags + input `` list\n // Note we could concatenate `inputAttrs.id` with '__tag_list__'\n // but `inputId` may be `null` until after mount\n // `safeId()` returns `null`, if no user provided ID,\n // until after mount when a unique ID is generated\n\n var tagListId = this.safeId('__tag_list__');\n var $field = h('li', {\n staticClass: 'b-form-tags-field flex-grow-1',\n attrs: {\n role: 'none',\n 'aria-live': 'off',\n 'aria-controls': tagListId\n },\n key: 'tags_field'\n }, [h('div', {\n staticClass: 'd-flex',\n attrs: {\n role: 'group'\n }\n }, [$input, $button])]); // Wrap in an unordered list element (we use a list for accessibility)\n\n var $ul = h('ul', {\n staticClass: 'b-form-tags-list list-unstyled mb-0 d-flex flex-wrap align-items-center',\n attrs: {\n id: tagListId\n },\n key: 'tags_list'\n }, [$tags, $field]); // Assemble the feedback\n\n var $feedback = h();\n\n if (invalidTagText || duplicateTagText || limitTagsText) {\n // Add an aria live region for the invalid/duplicate tag\n // messages if the user has not disabled the messages\n var ariaLive = this.feedbackAriaLive,\n joiner = this.computedJoiner; // Invalid tag feedback if needed (error)\n\n var $invalid = h();\n\n if (invalidFeedbackId) {\n $invalid = h(BFormInvalidFeedback, {\n props: {\n id: invalidFeedbackId,\n ariaLive: ariaLive,\n forceShow: true\n },\n key: 'tags_invalid_feedback'\n }, [this.invalidTagText, ': ', this.invalidTags.join(joiner)]);\n } // Duplicate tag feedback if needed (warning, not error)\n\n\n var $duplicate = h();\n\n if (duplicateFeedbackId) {\n $duplicate = h(BFormText, {\n props: {\n id: duplicateFeedbackId,\n ariaLive: ariaLive\n },\n key: 'tags_duplicate_feedback'\n }, [this.duplicateTagText, ': ', this.duplicateTags.join(joiner)]);\n } // Limit tags feedback if needed (warning, not error)\n\n\n var $limit = h();\n\n if (limitFeedbackId) {\n $limit = h(BFormText, {\n props: {\n id: limitFeedbackId,\n ariaLive: ariaLive\n },\n key: 'tags_limit_feedback'\n }, [limitTagsText]);\n }\n\n $feedback = h('div', {\n attrs: {\n 'aria-live': 'polite',\n 'aria-atomic': 'true'\n },\n key: 'tags_feedback'\n }, [$invalid, $duplicate, $limit]);\n } // Return the content\n\n\n return [$ul, $feedback];\n }\n },\n render: function render(h) {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n tags = this.tags,\n computedInputId = this.computedInputId,\n hasFocus = this.hasFocus,\n noOuterFocus = this.noOuterFocus; // Scoped slot properties\n\n var scope = _objectSpread({\n // Array of tags (shallow copy to prevent mutations)\n tags: tags.slice(),\n // v-bind:inputAttrs\n inputAttrs: this.computedInputAttrs,\n // We don't include this in the attrs, as users may want to override this\n inputType: this.computedInputType,\n // v-on:inputHandlers\n inputHandlers: this.computedInputHandlers,\n // Methods\n removeTag: this.removeTag,\n addTag: this.addTag,\n reset: this.reset,\n // :id=\"inputId\"\n inputId: computedInputId,\n // Invalid/Duplicate state information\n isInvalid: this.hasInvalidTags,\n invalidTags: this.invalidTags.slice(),\n isDuplicate: this.hasDuplicateTags,\n duplicateTags: this.duplicateTags.slice(),\n isLimitReached: this.isLimitReached,\n // If the 'Add' button should be disabled\n disableAddButton: this.disableAddButton\n }, pick(this.$props, ['addButtonText', 'addButtonVariant', 'disabled', 'duplicateTagText', 'form', 'inputClass', 'invalidTagText', 'limit', 'limitTagsText', 'noTagRemove', 'placeholder', 'required', 'separator', 'size', 'state', 'tagClass', 'tagPills', 'tagRemoveLabel', 'tagVariant'])); // Generate the user interface\n\n\n var $content = this.normalizeSlot(SLOT_NAME_DEFAULT, scope) || this.defaultRender(scope); // Generate the `aria-live` region for the current value(s)\n\n var $output = h('output', {\n staticClass: 'sr-only',\n attrs: {\n id: this.safeId('__selected_tags__'),\n role: 'status',\n for: computedInputId,\n 'aria-live': hasFocus ? 'polite' : 'off',\n 'aria-atomic': 'true',\n 'aria-relevant': 'additions text'\n }\n }, this.tags.join(', ')); // Removed tag live region\n\n var $removed = h('div', {\n staticClass: 'sr-only',\n attrs: {\n id: this.safeId('__removed_tags__'),\n role: 'status',\n 'aria-live': hasFocus ? 'assertive' : 'off',\n 'aria-atomic': 'true'\n }\n }, this.removedTags.length > 0 ? \"(\".concat(this.tagRemovedLabel, \") \").concat(this.removedTags.join(', ')) : ''); // Add hidden inputs for form submission\n\n var $hidden = h();\n\n if (name && !disabled) {\n // We add hidden inputs for each tag if a name is provided\n // When there are currently no tags, a visually hidden input\n // with empty value is rendered for proper required handling\n var hasTags = tags.length > 0;\n $hidden = (hasTags ? tags : ['']).map(function (tag) {\n return h('input', {\n class: {\n 'sr-only': !hasTags\n },\n attrs: {\n type: hasTags ? 'hidden' : 'text',\n value: tag,\n required: required,\n name: name,\n form: form\n },\n key: \"tag_input_\".concat(tag)\n });\n });\n } // Return the rendered output\n\n\n return h('div', {\n staticClass: 'b-form-tags form-control h-auto',\n class: [{\n focus: hasFocus && !noOuterFocus && !disabled,\n disabled: disabled\n }, this.sizeFormClass, this.stateClass],\n attrs: {\n id: this.safeId(),\n role: 'group',\n tabindex: disabled || noOuterFocus ? null : '-1',\n 'aria-describedby': this.safeId('__selected_tags__')\n },\n on: {\n click: this.onClick,\n focusin: this.onFocusin,\n focusout: this.onFocusout\n }\n }, [$output, $removed, $content, $hidden]);\n }\n});","import { BFormTags } from './form-tags';\nimport { BFormTag } from './form-tag';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormTagsPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormTags: BFormTags,\n BTags: BFormTags,\n BFormTag: BFormTag,\n BTag: BFormTag\n }\n});\nexport { FormTagsPlugin, BFormTags, BFormTag };","function 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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","var _watch;\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\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\n// BTime control (not form input control)\nimport { Vue } from '../../vue';\nimport { NAME_TIME } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT } from '../../constants/events';\nimport { CODE_LEFT, CODE_RIGHT } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_TIME } from '../../constants/regex';\nimport { concat } from '../../utils/array';\nimport { createDate, createDateFormatter } from '../../utils/date';\nimport { attemptBlur, attemptFocus, contains, getActiveElement, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BFormSpinbutton, props as BFormSpinbuttonProps } from '../form-spinbutton/form-spinbutton';\nimport { BIconCircleFill, BIconChevronUp } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_STRING,\n defaultValue: ''\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar NUMERIC = 'numeric'; // --- Helper methods ---\n\nvar padLeftZeros = function padLeftZeros(value) {\n return \"00\".concat(value || '').slice(-2);\n};\n\nvar parseHMS = function parseHMS(value) {\n value = toString(value);\n var hh = null,\n mm = null,\n ss = null;\n\n if (RX_TIME.test(value)) {\n ;\n\n var _value$split$map = value.split(':').map(function (v) {\n return toInteger(v, null);\n });\n\n var _value$split$map2 = _slicedToArray(_value$split$map, 3);\n\n hh = _value$split$map2[0];\n mm = _value$split$map2[1];\n ss = _value$split$map2[2];\n }\n\n return {\n hours: isUndefinedOrNull(hh) ? null : hh,\n minutes: isUndefinedOrNull(mm) ? null : mm,\n seconds: isUndefinedOrNull(ss) ? null : ss,\n ampm: isUndefinedOrNull(hh) || hh < 12 ? 0 : 1\n };\n};\n\nvar formatHMS = function formatHMS(_ref) {\n var hours = _ref.hours,\n minutes = _ref.minutes,\n seconds = _ref.seconds;\n var requireSeconds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isNull(hours) || isNull(minutes) || requireSeconds && isNull(seconds)) {\n return '';\n }\n\n var hms = [hours, minutes, requireSeconds ? seconds : 0];\n return hms.map(padLeftZeros).join(':');\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), pick(BFormSpinbuttonProps, ['labelIncrement', 'labelDecrement'])), {}, {\n // ID of label element\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n footerTag: makeProp(PROP_TYPE_STRING, 'footer'),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // Explicitly force 12 or 24 hour time\n // Default is to use resolved locale for 12/24 hour display\n // Tri-state: `true` = 12, `false` = 24, `null` = auto\n hour12: makeProp(PROP_TYPE_BOOLEAN, null),\n labelAm: makeProp(PROP_TYPE_STRING, 'AM'),\n labelAmpm: makeProp(PROP_TYPE_STRING, 'AM/PM'),\n labelHours: makeProp(PROP_TYPE_STRING, 'Hours'),\n labelMinutes: makeProp(PROP_TYPE_STRING, 'Minutes'),\n labelNoTimeSelected: makeProp(PROP_TYPE_STRING, 'No time selected'),\n labelPm: makeProp(PROP_TYPE_STRING, 'PM'),\n labelSeconds: makeProp(PROP_TYPE_STRING, 'Seconds'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected time'),\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n minutesStep: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n secondsStep: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n // If `true`, show the second spinbutton\n showSeconds: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_TIME); // --- Main component ---\n// @vue/component\n\nexport var BTime = /*#__PURE__*/Vue.extend({\n name: NAME_TIME,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var parsed = parseHMS(this[MODEL_PROP_NAME] || '');\n return {\n // Spin button models\n modelHours: parsed.hours,\n modelMinutes: parsed.minutes,\n modelSeconds: parsed.seconds,\n modelAmpm: parsed.ampm,\n // Internal flag to enable aria-live regions\n isLive: false\n };\n },\n computed: {\n computedHMS: function computedHMS() {\n var hours = this.modelHours;\n var minutes = this.modelMinutes;\n var seconds = this.modelSeconds;\n return formatHMS({\n hours: hours,\n minutes: minutes,\n seconds: seconds\n }, this.showSeconds);\n },\n resolvedOptions: function resolvedOptions() {\n // Resolved locale options\n var locale = concat(this.locale).filter(identity);\n var options = {\n hour: NUMERIC,\n minute: NUMERIC,\n second: NUMERIC\n };\n\n if (!isUndefinedOrNull(this.hour12)) {\n // Force 12 or 24 hour clock\n options.hour12 = !!this.hour12;\n }\n\n var dtf = new Intl.DateTimeFormat(locale, options);\n var resolved = dtf.resolvedOptions();\n var hour12 = resolved.hour12 || false; // IE 11 doesn't resolve the hourCycle, so we make\n // an assumption and fall back to common values\n\n var hourCycle = resolved.hourCycle || (hour12 ? 'h12' : 'h23');\n return {\n locale: resolved.locale,\n hour12: hour12,\n hourCycle: hourCycle\n };\n },\n computedLocale: function computedLocale() {\n return this.resolvedOptions.locale;\n },\n computedLang: function computedLang() {\n return (this.computedLocale || '').replace(/-u-.*$/, '');\n },\n computedRTL: function computedRTL() {\n return isLocaleRTL(this.computedLang);\n },\n computedHourCycle: function computedHourCycle() {\n // h11, h12, h23, or h24\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Locale/hourCycle\n // h12 - Hour system using 1–12. Corresponds to 'h' in patterns. The 12 hour clock, with midnight starting at 12:00 am\n // h23 - Hour system using 0–23. Corresponds to 'H' in patterns. The 24 hour clock, with midnight starting at 0:00\n // h11 - Hour system using 0–11. Corresponds to 'K' in patterns. The 12 hour clock, with midnight starting at 0:00 am\n // h24 - Hour system using 1–24. Corresponds to 'k' in pattern. The 24 hour clock, with midnight starting at 24:00\n // For h12 or h24, we visually format 00 hours as 12\n return this.resolvedOptions.hourCycle;\n },\n is12Hour: function is12Hour() {\n return !!this.resolvedOptions.hour12;\n },\n context: function context() {\n return {\n locale: this.computedLocale,\n isRTL: this.computedRTL,\n hourCycle: this.computedHourCycle,\n hour12: this.is12Hour,\n hours: this.modelHours,\n minutes: this.modelMinutes,\n seconds: this.showSeconds ? this.modelSeconds : 0,\n value: this.computedHMS,\n formatted: this.formattedTimeString\n };\n },\n valueId: function valueId() {\n return this.safeId() || null;\n },\n computedAriaLabelledby: function computedAriaLabelledby() {\n return [this.ariaLabelledby, this.valueId].filter(identity).join(' ') || null;\n },\n timeFormatter: function timeFormatter() {\n // Returns a formatter function reference\n // The formatter converts the time to a localized string\n var options = {\n hour12: this.is12Hour,\n hourCycle: this.computedHourCycle,\n hour: NUMERIC,\n minute: NUMERIC,\n timeZone: 'UTC'\n };\n\n if (this.showSeconds) {\n options.second = NUMERIC;\n } // Formats the time as a localized string\n\n\n return createDateFormatter(this.computedLocale, options);\n },\n numberFormatter: function numberFormatter() {\n // Returns a formatter function reference\n // The formatter always formats as 2 digits and is localized\n var nf = new Intl.NumberFormat(this.computedLocale, {\n style: 'decimal',\n minimumIntegerDigits: 2,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n });\n return nf.format;\n },\n formattedTimeString: function formattedTimeString() {\n var hours = this.modelHours;\n var minutes = this.modelMinutes;\n var seconds = this.showSeconds ? this.modelSeconds || 0 : 0;\n\n if (this.computedHMS) {\n return this.timeFormatter(createDate(Date.UTC(0, 0, 1, hours, minutes, seconds)));\n }\n\n return this.labelNoTimeSelected || ' ';\n },\n spinScopedSlots: function spinScopedSlots() {\n var h = this.$createElement;\n return {\n increment: function increment(_ref2) {\n var hasFocus = _ref2.hasFocus;\n return h(BIconChevronUp, {\n props: {\n scale: hasFocus ? 1.5 : 1.25\n },\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n },\n decrement: function decrement(_ref3) {\n var hasFocus = _ref3.hasFocus;\n return h(BIconChevronUp, {\n props: {\n flipV: true,\n scale: hasFocus ? 1.5 : 1.25\n },\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue && !looseEqual(parseHMS(newValue), parseHMS(this.computedHMS))) {\n var _parseHMS = parseHMS(newValue),\n hours = _parseHMS.hours,\n minutes = _parseHMS.minutes,\n seconds = _parseHMS.seconds,\n ampm = _parseHMS.ampm;\n\n this.modelHours = hours;\n this.modelMinutes = minutes;\n this.modelSeconds = seconds;\n this.modelAmpm = ampm;\n }\n }), _defineProperty(_watch, \"computedHMS\", function computedHMS(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"modelAmpm\", function modelAmpm(newValue, oldValue) {\n var _this = this;\n\n if (newValue !== oldValue) {\n var hours = isNull(this.modelHours) ? 0 : this.modelHours;\n this.$nextTick(function () {\n if (newValue === 0 && hours > 11) {\n // Switched to AM\n _this.modelHours = hours - 12;\n } else if (newValue === 1 && hours < 12) {\n // Switched to PM\n _this.modelHours = hours + 12;\n }\n });\n }\n }), _defineProperty(_watch, \"modelHours\", function modelHours(newHours, oldHours) {\n if (newHours !== oldHours) {\n this.modelAmpm = newHours > 11 ? 1 : 0;\n }\n }), _watch),\n created: function created() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.$emit(EVENT_NAME_CONTEXT, _this2.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n // We focus the first spin button\n attemptFocus(this.$refs.spinners[0]);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n var activeElement = getActiveElement();\n\n if (contains(this.$el, activeElement)) {\n attemptBlur(activeElement);\n }\n }\n },\n // Formatters for the spin buttons\n formatHours: function formatHours(hh) {\n var hourCycle = this.computedHourCycle; // We always store 0-23, but format based on h11/h12/h23/h24 formats\n\n hh = this.is12Hour && hh > 12 ? hh - 12 : hh; // Determine how 00:00 and 12:00 are shown\n\n hh = hh === 0 && hourCycle === 'h12' ? 12 : hh === 0 && hourCycle === 'h24' ?\n /* istanbul ignore next */\n 24 : hh === 12 && hourCycle === 'h11' ?\n /* istanbul ignore next */\n 0 : hh;\n return this.numberFormatter(hh);\n },\n formatMinutes: function formatMinutes(mm) {\n return this.numberFormatter(mm);\n },\n formatSeconds: function formatSeconds(ss) {\n return this.numberFormatter(ss);\n },\n formatAmpm: function formatAmpm(ampm) {\n // These should come from label props???\n // `ampm` should always be a value of `0` or `1`\n return ampm === 0 ? this.labelAm : ampm === 1 ? this.labelPm : '';\n },\n // Spinbutton on change handlers\n setHours: function setHours(value) {\n this.modelHours = value;\n },\n setMinutes: function setMinutes(value) {\n this.modelMinutes = value;\n },\n setSeconds: function setSeconds(value) {\n this.modelSeconds = value;\n },\n setAmpm: function setAmpm(value) {\n this.modelAmpm = value;\n },\n onSpinLeftRight: function onSpinLeftRight() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var type = event.type,\n keyCode = event.keyCode;\n\n if (!this.disabled && type === 'keydown' && (keyCode === CODE_LEFT || keyCode === CODE_RIGHT)) {\n stopEvent(event);\n var spinners = this.$refs.spinners || [];\n var index = spinners.map(function (cmp) {\n return !!cmp.hasFocus;\n }).indexOf(true);\n index = index + (keyCode === CODE_LEFT ? -1 : 1);\n index = index >= spinners.length ? 0 : index < 0 ? spinners.length - 1 : index;\n attemptFocus(spinners[index]);\n }\n },\n setLive: function setLive(on) {\n var _this3 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this3.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n // If hidden, we just render a placeholder comment\n\n /* istanbul ignore if */\n if (this.hidden) {\n return h();\n }\n\n var disabled = this.disabled,\n readonly = this.readonly,\n locale = this.computedLocale,\n ariaLabelledby = this.computedAriaLabelledby,\n labelIncrement = this.labelIncrement,\n labelDecrement = this.labelDecrement,\n valueId = this.valueId,\n focusHandler = this.focus;\n var spinIds = []; // Helper method to render a spinbutton\n\n var makeSpinbutton = function makeSpinbutton(handler, key, classes) {\n var spinbuttonProps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var id = _this4.safeId(\"_spinbutton_\".concat(key, \"_\")) || null;\n spinIds.push(id);\n return h(BFormSpinbutton, {\n class: classes,\n props: _objectSpread({\n id: id,\n placeholder: '--',\n vertical: true,\n required: true,\n disabled: disabled,\n readonly: readonly,\n locale: locale,\n labelIncrement: labelIncrement,\n labelDecrement: labelDecrement,\n wrap: true,\n ariaControls: valueId,\n min: 0\n }, spinbuttonProps),\n scopedSlots: _this4.spinScopedSlots,\n on: {\n // We use `change` event to minimize SR verbosity\n // As the spinbutton will announce each value change\n // and we don't want the formatted time to be announced\n // on each value input if repeat is happening\n change: handler\n },\n key: key,\n ref: 'spinners',\n refInFor: true\n });\n }; // Helper method to return a \"colon\" separator\n\n\n var makeColon = function makeColon() {\n return h('div', {\n staticClass: 'd-flex flex-column',\n class: {\n 'text-muted': disabled || readonly\n },\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [h(BIconCircleFill, {\n props: {\n shiftV: 4,\n scale: 0.5\n }\n }), h(BIconCircleFill, {\n props: {\n shiftV: -4,\n scale: 0.5\n }\n })]);\n };\n\n var $spinners = []; // Hours\n\n $spinners.push(makeSpinbutton(this.setHours, 'hours', 'b-time-hours', {\n value: this.modelHours,\n max: 23,\n step: 1,\n formatterFn: this.formatHours,\n ariaLabel: this.labelHours\n })); // Spacer\n\n $spinners.push(makeColon()); // Minutes\n\n $spinners.push(makeSpinbutton(this.setMinutes, 'minutes', 'b-time-minutes', {\n value: this.modelMinutes,\n max: 59,\n step: this.minutesStep || 1,\n formatterFn: this.formatMinutes,\n ariaLabel: this.labelMinutes\n }));\n\n if (this.showSeconds) {\n // Spacer\n $spinners.push(makeColon()); // Seconds\n\n $spinners.push(makeSpinbutton(this.setSeconds, 'seconds', 'b-time-seconds', {\n value: this.modelSeconds,\n max: 59,\n step: this.secondsStep || 1,\n formatterFn: this.formatSeconds,\n ariaLabel: this.labelSeconds\n }));\n } // AM/PM ?\n\n\n if (this.is12Hour) {\n // TODO:\n // If locale is RTL, unshift this instead of push?\n // And switch class `ml-2` to `mr-2`\n // Note some LTR locales (i.e. zh) also place AM/PM to the left\n $spinners.push(makeSpinbutton(this.setAmpm, 'ampm', 'b-time-ampm', {\n value: this.modelAmpm,\n max: 1,\n formatterFn: this.formatAmpm,\n ariaLabel: this.labelAmpm,\n // We set `required` as `false`, since this always has a value\n required: false\n }));\n } // Assemble spinners\n\n\n $spinners = h('div', {\n staticClass: 'd-flex align-items-center justify-content-center mx-auto',\n attrs: {\n role: 'group',\n tabindex: disabled || readonly ? null : '-1',\n 'aria-labelledby': ariaLabelledby\n },\n on: {\n keydown: this.onSpinLeftRight,\n click:\n /* istanbul ignore next */\n function click(event) {\n if (event.target === event.currentTarget) {\n focusHandler();\n }\n }\n }\n }, $spinners); // Selected type display\n\n var $value = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n disabled: disabled || readonly\n },\n attrs: {\n id: valueId,\n role: 'status',\n for: spinIds.filter(identity).join(' ') || null,\n tabindex: disabled ? null : '-1',\n 'aria-live': this.isLive ? 'polite' : 'off',\n 'aria-atomic': 'true'\n },\n on: {\n // Transfer focus/click to focus hours spinner\n click: focusHandler,\n focus: focusHandler\n }\n }, [h('bdi', this.formattedTimeString), this.computedHMS ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(this.labelSelected, \") \")) : '']);\n var $header = h(this.headerTag, {\n staticClass: 'b-time-header',\n class: {\n 'sr-only': this.hideHeader\n }\n }, [$value]);\n var $content = this.normalizeSlot();\n var $footer = $content ? h(this.footerTag, {\n staticClass: 'b-time-footer'\n }, $content) : h();\n return h('div', {\n staticClass: 'b-time d-inline-flex flex-column text-center',\n attrs: {\n role: 'group',\n lang: this.computedLang || null,\n 'aria-labelledby': ariaLabelledby || null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-readonly': readonly && !disabled ? 'true' : null\n }\n }, [$header, $spinners, $footer]);\n }\n});","import { BFormTextarea } from './form-textarea';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormTextareaPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormTextarea: BFormTextarea,\n BTextarea: BFormTextarea\n }\n});\nexport { FormTextareaPlugin, BFormTextarea };","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TIMEPICKER } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SHOWN, EVENT_NAME_HIDDEN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT } from '../../constants/slots';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { BIconClock, BIconClockFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BVFormBtnLabelControl, props as BVFormBtnLabelControlProps } from '../form-btn-label-control/bv-form-btn-label-control';\nimport { BTime, props as BTimeProps } from '../time/time'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_STRING,\n defaultValue: ''\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nvar timeProps = omit(BTimeProps, ['hidden', 'id', 'value']);\nvar formBtnLabelControlProps = omit(BVFormBtnLabelControlProps, ['formattedValue', 'id', 'lang', 'rtl', 'value']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), timeProps), formBtnLabelControlProps), {}, {\n closeButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n labelCloseButton: makeProp(PROP_TYPE_STRING, 'Close'),\n labelNowButton: makeProp(PROP_TYPE_STRING, 'Select now'),\n labelResetButton: makeProp(PROP_TYPE_STRING, 'Reset'),\n noCloseButton: makeProp(PROP_TYPE_BOOLEAN, false),\n nowButton: makeProp(PROP_TYPE_BOOLEAN, false),\n nowButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-primary'),\n resetButton: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-danger'),\n resetValue: makeProp(PROP_TYPE_DATE_STRING)\n})), NAME_FORM_TIMEPICKER); // --- Main component ---\n// @vue/component\n\nexport var BFormTimepicker = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TIMEPICKER,\n mixins: [idMixin, modelMixin],\n props: props,\n data: function data() {\n return {\n // We always use `HH:mm:ss` value internally\n localHMS: this[MODEL_PROP_NAME] || '',\n // Context data from BTime\n localLocale: null,\n isRTL: false,\n formattedValue: '',\n // If the menu is opened\n isVisible: false\n };\n },\n computed: {\n computedLang: function computedLang() {\n return (this.localLocale || '').replace(/-u-.*$/i, '') || null;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.localHMS = newValue || '';\n }), _defineProperty(_watch, \"localHMS\", function localHMS(newValue) {\n // We only update the v-model value when the timepicker\n // is open, to prevent cursor jumps when bound to a\n // text input in button only mode\n if (this.isVisible) {\n this.$emit(MODEL_EVENT_NAME, newValue || '');\n }\n }), _watch),\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.control);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.control);\n }\n },\n // Private methods\n setAndClose: function setAndClose(value) {\n var _this = this;\n\n this.localHMS = value;\n this.$nextTick(function () {\n _this.$refs.control.hide(true);\n });\n },\n onInput: function onInput(hms) {\n if (this.localHMS !== hms) {\n this.localHMS = hms;\n }\n },\n onContext: function onContext(ctx) {\n var isRTL = ctx.isRTL,\n locale = ctx.locale,\n value = ctx.value,\n formatted = ctx.formatted;\n this.isRTL = isRTL;\n this.localLocale = locale;\n this.formattedValue = formatted;\n this.localHMS = value || ''; // Re-emit the context event\n\n this.$emit(EVENT_NAME_CONTEXT, ctx);\n },\n onNowButton: function onNowButton() {\n var now = new Date();\n var hours = now.getHours();\n var minutes = now.getMinutes();\n var seconds = this.showSeconds ? now.getSeconds() : 0;\n var value = [hours, minutes, seconds].map(function (v) {\n return \"00\".concat(v || '').slice(-2);\n }).join(':');\n this.setAndClose(value);\n },\n onResetButton: function onResetButton() {\n this.setAndClose(this.resetValue);\n },\n onCloseButton: function onCloseButton() {\n this.$refs.control.hide(true);\n },\n onShow: function onShow() {\n this.isVisible = true;\n },\n onShown: function onShown() {\n var _this2 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this2.$refs.time);\n\n _this2.$emit(EVENT_NAME_SHOWN);\n });\n },\n onHidden: function onHidden() {\n this.isVisible = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n // Render function helpers\n defaultButtonFn: function defaultButtonFn(_ref) {\n var isHovered = _ref.isHovered,\n hasFocus = _ref.hasFocus;\n return this.$createElement(isHovered || hasFocus ? BIconClockFill : BIconClock, {\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n },\n render: function render(h) {\n var localHMS = this.localHMS,\n disabled = this.disabled,\n readonly = this.readonly,\n $props = this.$props;\n var placeholder = isUndefinedOrNull(this.placeholder) ? this.labelNoTimeSelected : this.placeholder; // Footer buttons\n\n var $footer = [];\n\n if (this.nowButton) {\n var label = this.labelNowButton;\n $footer.push(h(BButton, {\n props: {\n size: 'sm',\n disabled: disabled || readonly,\n variant: this.nowButtonVariant\n },\n attrs: {\n 'aria-label': label || null\n },\n on: {\n click: this.onNowButton\n },\n key: 'now-btn'\n }, label));\n }\n\n if (this.resetButton) {\n if ($footer.length > 0) {\n // Add a \"spacer\" between buttons (' ')\n $footer.push(h('span', \"\\xA0\"));\n }\n\n var _label = this.labelResetButton;\n $footer.push(h(BButton, {\n props: {\n size: 'sm',\n disabled: disabled || readonly,\n variant: this.resetButtonVariant\n },\n attrs: {\n 'aria-label': _label || null\n },\n on: {\n click: this.onResetButton\n },\n key: 'reset-btn'\n }, _label));\n }\n\n if (!this.noCloseButton) {\n // Add a \"spacer\" between buttons (' ')\n if ($footer.length > 0) {\n $footer.push(h('span', \"\\xA0\"));\n }\n\n var _label2 = this.labelCloseButton;\n $footer.push(h(BButton, {\n props: {\n size: 'sm',\n disabled: disabled,\n variant: this.closeButtonVariant\n },\n attrs: {\n 'aria-label': _label2 || null\n },\n on: {\n click: this.onCloseButton\n },\n key: 'close-btn'\n }, _label2));\n }\n\n if ($footer.length > 0) {\n $footer = [h('div', {\n staticClass: 'b-form-date-controls d-flex flex-wrap',\n class: {\n 'justify-content-between': $footer.length > 1,\n 'justify-content-end': $footer.length < 2\n }\n }, $footer)];\n }\n\n var $time = h(BTime, {\n staticClass: 'b-form-time-control',\n props: _objectSpread(_objectSpread({}, pluckProps(timeProps, $props)), {}, {\n value: localHMS,\n hidden: !this.isVisible\n }),\n on: {\n input: this.onInput,\n context: this.onContext\n },\n ref: 'time'\n }, $footer);\n return h(BVFormBtnLabelControl, {\n staticClass: 'b-form-timepicker',\n props: _objectSpread(_objectSpread({}, pluckProps(formBtnLabelControlProps, $props)), {}, {\n id: this.safeId(),\n value: localHMS,\n formattedValue: localHMS ? this.formattedValue : '',\n placeholder: placeholder,\n rtl: this.isRTL,\n lang: this.computedLang\n }),\n on: {\n show: this.onShow,\n shown: this.onShown,\n hidden: this.onHidden\n },\n scopedSlots: _defineProperty({}, SLOT_NAME_BUTTON_CONTENT, this.$scopedSlots[SLOT_NAME_BUTTON_CONTENT] || this.defaultButtonFn),\n ref: 'control'\n }, [$time]);\n }\n});","import { BFormTimepicker } from './form-timepicker';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormTimepickerPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormTimepicker: BFormTimepicker,\n BTimepicker: BFormTimepicker\n }\n});\nexport { FormTimepickerPlugin, BFormTimepicker };","import { BImg } from './img';\nimport { BImgLazy } from './img-lazy';\nimport { pluginFactory } from '../../utils/plugins';\nvar ImagePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BImg: BImg,\n BImgLazy: BImgLazy\n }\n});\nexport { ImagePlugin, BImg, BImgLazy };","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupText = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-text'\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_ADDON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n isText: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP_ADDON); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAddon = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_ADDON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var append = props.append;\n return h(props.tag, mergeData(data, {\n class: {\n 'input-group-append': append,\n 'input-group-prepend': !append\n },\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(BInputGroupText, children)] : children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\n })\n }), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP_PREPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_PREPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupPrepend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_PREPEND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: false\n })\n }), children);\n }\n});","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_INPUT_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_APPEND, SLOT_NAME_DEFAULT, SLOT_NAME_PREPEND } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_STRING),\n appendHtml: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n prepend: makeProp(PROP_TYPE_STRING),\n prependHtml: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BInputGroup = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var prepend = props.prepend,\n prependHtml = props.prependHtml,\n append = props.append,\n appendHtml = props.appendHtml,\n size = props.size;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $prepend = h();\n var hasPrependSlot = hasNormalizedSlot(SLOT_NAME_PREPEND, $scopedSlots, $slots);\n\n if (hasPrependSlot || prepend || prependHtml) {\n $prepend = h(BInputGroupPrepend, [hasPrependSlot ? normalizeSlot(SLOT_NAME_PREPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(prependHtml, prepend)\n })]);\n }\n\n var $append = h();\n var hasAppendSlot = hasNormalizedSlot(SLOT_NAME_APPEND, $scopedSlots, $slots);\n\n if (hasAppendSlot || append || appendHtml) {\n $append = h(BInputGroupAppend, [hasAppendSlot ? normalizeSlot(SLOT_NAME_APPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(appendHtml, append)\n })]);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(size), size),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), [$prepend, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots), $append]);\n }\n});","import { BInputGroup } from './input-group';\nimport { BInputGroupAddon } from './input-group-addon';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupText } from './input-group-text';\nimport { pluginFactory } from '../../utils/plugins';\nvar InputGroupPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BInputGroup: BInputGroup,\n BInputGroupAddon: BInputGroupAddon,\n BInputGroupPrepend: BInputGroupPrepend,\n BInputGroupAppend: BInputGroupAppend,\n BInputGroupText: BInputGroupText\n }\n});\nexport { InputGroupPlugin, BInputGroup, BInputGroupAddon, BInputGroupPrepend, BInputGroupAppend, BInputGroupText };","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CONTAINER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // String breakpoint name new in Bootstrap v4.4.x\n fluid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_CONTAINER); // --- Main component ---\n// @vue/component\n\nexport var BContainer = /*#__PURE__*/Vue.extend({\n name: NAME_CONTAINER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var fluid = props.fluid;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n container: !(fluid || fluid === ''),\n 'container-fluid': fluid === true || fluid === ''\n }, \"container-\".concat(fluid), fluid && fluid !== true)\n }), children);\n }\n});","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_JUMBOTRON } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_HEADER, SLOT_NAME_LEAD } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BContainer } from '../layout/container'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n containerFluid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n header: makeProp(PROP_TYPE_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING),\n headerLevel: makeProp(PROP_TYPE_NUMBER_STRING, 3),\n headerTag: makeProp(PROP_TYPE_STRING, 'h1'),\n lead: makeProp(PROP_TYPE_STRING),\n leadHtml: makeProp(PROP_TYPE_STRING),\n leadTag: makeProp(PROP_TYPE_STRING, 'p'),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_JUMBOTRON); // --- Main component ---\n// @vue/component\n\nexport var BJumbotron = /*#__PURE__*/Vue.extend({\n name: NAME_JUMBOTRON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var header = props.header,\n headerHtml = props.headerHtml,\n lead = props.lead,\n leadHtml = props.leadHtml,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n var headerLevel = props.headerLevel;\n $header = h(props.headerTag, {\n class: _defineProperty({}, \"display-\".concat(headerLevel), headerLevel),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $lead = h();\n var hasLeadSlot = hasNormalizedSlot(SLOT_NAME_LEAD, $scopedSlots, $slots);\n\n if (hasLeadSlot || lead || leadHtml) {\n $lead = h(props.leadTag, {\n staticClass: 'lead',\n domProps: hasLeadSlot ? {} : htmlOrText(leadHtml, lead)\n }, normalizeSlot(SLOT_NAME_LEAD, slotScope, $scopedSlots, $slots));\n }\n\n var $children = [$header, $lead, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)]; // If fluid, wrap content in a container\n\n if (props.fluid) {\n $children = [h(BContainer, {\n props: {\n fluid: props.containerFluid\n }\n }, $children)];\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'jumbotron',\n class: (_class2 = {\n 'jumbotron-fluid': props.fluid\n }, _defineProperty(_class2, \"text-\".concat(textVariant), textVariant), _defineProperty(_class2, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class2, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class2, \"border\", borderVariant), _class2)\n }), $children);\n }\n});","import { BJumbotron } from './jumbotron';\nimport { pluginFactory } from '../../utils/plugins';\nvar JumbotronPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BJumbotron: BJumbotron\n }\n});\nexport { JumbotronPlugin, BJumbotron };","function 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\nimport { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","import { BContainer } from './container';\nimport { BRow } from './row';\nimport { BCol } from './col';\nimport { BFormRow } from './form-row';\nimport { pluginFactory } from '../../utils/plugins';\nvar LayoutPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BContainer: BContainer,\n BRow: BRow,\n BCol: BCol,\n BFormRow: BFormRow\n }\n});\nexport { LayoutPlugin, BContainer, BRow, BCol, BFormRow };","import { BLink } from './link';\nimport { pluginFactory } from '../../utils/plugins';\nvar LinkPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BLink: BLink\n }\n});\nexport { LinkPlugin, BLink };","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_LIST_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isString } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n flush: makeProp(PROP_TYPE_BOOLEAN, false),\n horizontal: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_LIST_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BListGroup = /*#__PURE__*/Vue.extend({\n name: NAME_LIST_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var horizontal = props.horizontal === '' ? true : props.horizontal;\n horizontal = props.flush ? false : horizontal;\n var componentData = {\n staticClass: 'list-group',\n class: _defineProperty({\n 'list-group-flush': props.flush,\n 'list-group-horizontal': horizontal === true\n }, \"list-group-horizontal-\".concat(horizontal), isString(horizontal))\n };\n return h(props.tag, mergeData(data, componentData), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_LIST_GROUP_ITEM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { isTag } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar actionTags = ['a', 'router-link', 'button', 'b-link']; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n action: makeProp(PROP_TYPE_BOOLEAN, false),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_LIST_GROUP_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BListGroupItem = /*#__PURE__*/Vue.extend({\n name: NAME_LIST_GROUP_ITEM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var button = props.button,\n variant = props.variant,\n active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = button ? 'button' : !link ? props.tag : BLink;\n var action = !!(props.action || link || button || arrayIncludes(actionTags, props.tag));\n var attrs = {};\n var itemProps = {};\n\n if (isTag(tag, 'button')) {\n if (!data.attrs || !data.attrs.type) {\n // Add a type for button is one not provided in passed attributes\n attrs.type = 'button';\n }\n\n if (props.disabled) {\n // Set disabled attribute if button and disabled\n attrs.disabled = true;\n }\n } else {\n itemProps = pluckProps(linkProps, props);\n }\n\n return h(tag, mergeData(data, {\n attrs: attrs,\n props: itemProps,\n staticClass: 'list-group-item',\n class: (_class = {}, _defineProperty(_class, \"list-group-item-\".concat(variant), variant), _defineProperty(_class, 'list-group-item-action', action), _defineProperty(_class, \"active\", active), _defineProperty(_class, \"disabled\", disabled), _class)\n }), children);\n }\n});","import { BListGroup } from './list-group';\nimport { BListGroupItem } from './list-group-item';\nimport { pluginFactory } from '../../utils/plugins';\nvar ListGroupPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BListGroup: BListGroup,\n BListGroupItem: BListGroupItem\n }\n});\nexport { ListGroupPlugin, BListGroup, BListGroupItem };","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_ASIDE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), $children);\n }\n});","import { BMedia } from './media';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body';\nimport { pluginFactory } from '../../utils/plugins';\nvar MediaPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BMedia: BMedia,\n BMediaAside: BMediaAside,\n BMediaBody: BMediaBody\n }\n});\nexport { MediaPlugin, BMedia, BMediaAside, BMediaBody };","import { Vue } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_documentListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnDocumentMixin = Vue.extend({\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n // Unregister all registered listeners\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffDocument(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerDocumentListener: function registerDocumentListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterDocumentListener: function unregisterDocumentListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n listenDocument: function listenDocument(on, event, callback) {\n on ? this.listenOnDocument(event, callback) : this.listenOffDocument(event, callback);\n },\n listenOnDocument: function listenOnDocument(event, callback) {\n if (IS_BROWSER) {\n eventOn(document, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n this.registerDocumentListener(event, callback);\n }\n },\n listenOffDocument: function listenOffDocument(event, callback) {\n if (IS_BROWSER) {\n eventOff(document, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n }\n\n this.unregisterDocumentListener(event, callback);\n }\n }\n});","import { Vue } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_windowListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnWindowMixin = Vue.extend({\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n // Unregister all registered listeners\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffWindow(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerWindowListener: function registerWindowListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterWindowListener: function unregisterWindowListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n listenWindow: function listenWindow(on, event, callback) {\n on ? this.listenOnWindow(event, callback) : this.listenOffWindow(event, callback);\n },\n listenOnWindow: function listenOnWindow(event, callback) {\n if (IS_BROWSER) {\n eventOn(window, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n this.registerWindowListener(event, callback);\n }\n },\n listenOffWindow: function listenOffWindow(event, callback) {\n if (IS_BROWSER) {\n eventOff(window, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n }\n\n this.unregisterWindowListener(event, callback);\n }\n }\n});","// This method returns a component's scoped style attribute name: `data-v-xxxxxxx`\n// The `_scopeId` options property is added by vue-loader when using scoped styles\n// and will be `undefined` if no scoped styles are in use\nexport var getScopeId = function getScopeId(vm) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return vm ? vm.$options._scopeId || defaultValue : defaultValue;\n};","function _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\nimport { Vue } from '../vue';\nimport { getScopeId } from '../utils/get-scope-id'; // @vue/component\n\nexport var scopedStyleMixin = Vue.extend({\n computed: {\n scopedStyleAttrs: function scopedStyleAttrs() {\n var scopeId = getScopeId(this.$parent);\n return scopeId ? _defineProperty({}, scopeId, '') : {};\n }\n }\n});","import { Vue } from '../../vue';\nimport { NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { concat } from '../../utils/array';\nimport { removeNode, select } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isString } from '../../utils/inspect';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp } from '../../utils/props'; // --- Helper components ---\n// BVTransporter/BVTransporterTarget:\n//\n// Single root node portaling of content, which retains parent/child hierarchy\n// Unlike Portal-Vue where portaled content is no longer a descendent of its\n// intended parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n// Transporter target used by BVTransporter\n// Supports only a single root element\n// @vue/component\n\nvar BVTransporterTarget = /*#__PURE__*/Vue.extend({\n // As an abstract component, it doesn't appear in the $parent chain of\n // components, which means the next parent of any component rendered inside\n // of this one will be the parent from which is was portal'd\n abstract: true,\n name: NAME_TRANSPORTER_TARGET,\n props: {\n // Even though we only support a single root element,\n // VNodes are always passed as an array\n nodes: makeProp(PROP_TYPE_ARRAY_FUNCTION)\n },\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n destroyed: function destroyed() {\n removeNode(this.$el);\n },\n render: function render(h) {\n var updatedNodes = this.updatedNodes;\n var $nodes = isFunction(updatedNodes) ? updatedNodes({}) : updatedNodes;\n $nodes = concat($nodes).filter(identity);\n\n if ($nodes && $nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n /* istanbul ignore next */\n\n\n return h();\n }\n}); // --- Props ---\n\nexport var props = {\n // String: CSS selector,\n // HTMLElement: Element reference\n // Mainly needed for tooltips/popovers inside modals\n container: makeProp([HTMLElement, PROP_TYPE_STRING], 'body'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // This should be set to match the root element type\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransporter = /*#__PURE__*/Vue.extend({\n name: NAME_TRANSPORTER,\n mixins: [normalizeSlotMixin],\n props: props,\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget);\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_defaultFn = null;\n this.$_target = null;\n },\n beforeMount: function beforeMount() {\n this.mountTarget();\n },\n updated: function updated() {\n // We need to make sure that all children have completed updating\n // before rendering in the target\n // `vue-simple-portal` has the this in a `$nextTick()`,\n // while `portal-vue` doesn't\n // Just trying to see if the `$nextTick()` delay is required or not\n // Since all slots in Vue 2.6.x are always functions\n this.updateTarget();\n },\n beforeDestroy: function beforeDestroy() {\n this.unmountTarget();\n this.$_defaultFn = null;\n },\n methods: {\n // Get the element which the target should be appended to\n getContainer: function getContainer() {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n var container = this.container;\n return isString(container) ? select(container) : container;\n } else {\n return null;\n }\n },\n // Mount the target\n mountTarget: function mountTarget() {\n if (!this.$_target) {\n var $container = this.getContainer();\n\n if ($container) {\n var $el = document.createElement('div');\n $container.appendChild($el);\n this.$_target = new BVTransporterTarget({\n el: $el,\n parent: this,\n propsData: {\n // Initial nodes to be rendered\n nodes: concat(this.normalizeSlot())\n }\n });\n }\n }\n },\n // Update the content of the target\n updateTarget: function updateTarget() {\n if (IS_BROWSER && this.$_target) {\n var defaultFn = this.$scopedSlots.default;\n\n if (!this.disabled) {\n /* istanbul ignore else: only applicable in Vue 2.5.x */\n if (defaultFn && this.$_defaultFn !== defaultFn) {\n // We only update the target component if the scoped slot\n // function is a fresh one. The new slot syntax (since Vue 2.6)\n // can cache unchanged slot functions and we want to respect that here\n this.$_target.updatedNodes = defaultFn;\n } else if (!defaultFn) {\n // We also need to be back compatible with non-scoped default slot (i.e. 2.5.x)\n this.$_target.updatedNodes = this.$slots.default;\n }\n } // Update the scoped slot function cache\n\n\n this.$_defaultFn = defaultFn;\n }\n },\n // Unmount the target\n unmountTarget: function unmountTarget() {\n this.$_target && this.$_target.$destroy();\n this.$_target = null;\n }\n },\n render: function render(h) {\n // This component has no root element, so only a single VNode is allowed\n if (this.disabled) {\n var $nodes = concat(this.normalizeSlot()).filter(identity);\n\n if ($nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n }\n\n return h();\n }\n});","function _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\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\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 _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } Object.defineProperty(subClass, \"prototype\", { value: Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }), 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\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { defineProperties, readonlyDescriptor } from '../../../utils/object';\n\nvar BvModalEvent = /*#__PURE__*/function (_BvEvent) {\n _inherits(BvModalEvent, _BvEvent);\n\n var _super = _createSuper(BvModalEvent);\n\n function BvModalEvent(type) {\n var _this;\n\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvModalEvent);\n\n _this = _super.call(this, type, eventInit); // Freeze our new props as readonly, but leave them enumerable\n\n defineProperties(_assertThisInitialized(_this), {\n trigger: readonlyDescriptor()\n });\n return _this;\n }\n\n _createClass(BvModalEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(BvModalEvent), \"Defaults\", this)), {}, {\n trigger: null\n });\n }\n }]);\n\n return BvModalEvent;\n}(BvEvent); // Named exports\n\n\nexport { BvModalEvent };","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\nimport { Vue } from '../../../vue';\nimport { IS_BROWSER } from '../../../constants/env';\nimport { addClass, getAttr, getBCR, getCS, getStyle, hasAttr, removeAttr, removeClass, requestAF, selectAll, setAttr, setStyle } from '../../../utils/dom';\nimport { isNull } from '../../../utils/inspect';\nimport { toFloat, toInteger } from '../../../utils/number'; // --- Constants ---\n// Default modal backdrop z-index\n\nvar DEFAULT_ZINDEX = 1040; // Selectors for padding/margin adjustments\n\nvar SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nvar SELECTOR_STICKY_CONTENT = '.sticky-top';\nvar SELECTOR_NAVBAR_TOGGLER = '.navbar-toggler'; // --- Main component ---\n// @vue/component\n\nvar ModalManager = /*#__PURE__*/Vue.extend({\n data: function data() {\n return {\n modals: [],\n baseZIndex: null,\n scrollbarWidth: null,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalCount: function modalCount() {\n return this.modals.length;\n },\n modalsAreOpen: function modalsAreOpen() {\n return this.modalCount > 0;\n }\n },\n watch: {\n modalCount: function modalCount(newCount, oldCount) {\n if (IS_BROWSER) {\n this.getScrollbarWidth();\n\n if (newCount > 0 && oldCount === 0) {\n // Transitioning to modal(s) open\n this.checkScrollbar();\n this.setScrollbar();\n addClass(document.body, 'modal-open');\n } else if (newCount === 0 && oldCount > 0) {\n // Transitioning to modal(s) closed\n this.resetScrollbar();\n removeClass(document.body, 'modal-open');\n }\n\n setAttr(document.body, 'data-modal-open-count', String(newCount));\n }\n },\n modals: function modals(newValue) {\n var _this = this;\n\n this.checkScrollbar();\n requestAF(function () {\n _this.updateModals(newValue || []);\n });\n }\n },\n methods: {\n // Public methods\n registerModal: function registerModal(modal) {\n // Register the modal if not already registered\n if (modal && this.modals.indexOf(modal) === -1) {\n this.modals.push(modal);\n }\n },\n unregisterModal: function unregisterModal(modal) {\n var index = this.modals.indexOf(modal);\n\n if (index > -1) {\n // Remove modal from modals array\n this.modals.splice(index, 1); // Reset the modal's data\n\n if (!modal._isBeingDestroyed && !modal._isDestroyed) {\n this.resetModal(modal);\n }\n }\n },\n getBaseZIndex: function getBaseZIndex() {\n if (IS_BROWSER && isNull(this.baseZIndex)) {\n // Create a temporary `div.modal-backdrop` to get computed z-index\n var div = document.createElement('div');\n addClass(div, 'modal-backdrop');\n addClass(div, 'd-none');\n setStyle(div, 'display', 'none');\n document.body.appendChild(div);\n this.baseZIndex = toInteger(getCS(div).zIndex, DEFAULT_ZINDEX);\n document.body.removeChild(div);\n }\n\n return this.baseZIndex || DEFAULT_ZINDEX;\n },\n getScrollbarWidth: function getScrollbarWidth() {\n if (IS_BROWSER && isNull(this.scrollbarWidth)) {\n // Create a temporary `div.measure-scrollbar` to get computed z-index\n var div = document.createElement('div');\n addClass(div, 'modal-scrollbar-measure');\n document.body.appendChild(div);\n this.scrollbarWidth = getBCR(div).width - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return this.scrollbarWidth || 0;\n },\n // Private methods\n updateModals: function updateModals(modals) {\n var _this2 = this;\n\n var baseZIndex = this.getBaseZIndex();\n var scrollbarWidth = this.getScrollbarWidth();\n modals.forEach(function (modal, index) {\n // We update data values on each modal\n modal.zIndex = baseZIndex + index;\n modal.scrollbarWidth = scrollbarWidth;\n modal.isTop = index === _this2.modals.length - 1;\n modal.isBodyOverflowing = _this2.isBodyOverflowing;\n });\n },\n resetModal: function resetModal(modal) {\n if (modal) {\n modal.zIndex = this.getBaseZIndex();\n modal.isTop = true;\n modal.isBodyOverflowing = false;\n }\n },\n checkScrollbar: function checkScrollbar() {\n // Determine if the body element is overflowing\n var _getBCR = getBCR(document.body),\n left = _getBCR.left,\n right = _getBCR.right;\n\n this.isBodyOverflowing = left + right < window.innerWidth;\n },\n setScrollbar: function setScrollbar() {\n var body = document.body; // Storage place to cache changes to margins and padding\n // Note: This assumes the following element types are not added to the\n // document after the modal has opened.\n\n body._paddingChangedForModal = body._paddingChangedForModal || [];\n body._marginChangedForModal = body._marginChangedForModal || [];\n\n if (this.isBodyOverflowing) {\n var scrollbarWidth = this.scrollbarWidth; // Adjust fixed content padding\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_FIXED_CONTENT).forEach(function (el) {\n var actualPadding = getStyle(el, 'paddingRight') || '';\n setAttr(el, 'data-padding-right', actualPadding);\n setStyle(el, 'paddingRight', \"\".concat(toFloat(getCS(el).paddingRight, 0) + scrollbarWidth, \"px\"));\n\n body._paddingChangedForModal.push(el);\n }); // Adjust sticky content margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_STICKY_CONTENT).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = getStyle(el, 'marginRight') || '';\n setAttr(el, 'data-margin-right', actualMargin);\n setStyle(el, 'marginRight', \"\".concat(toFloat(getCS(el).marginRight, 0) - scrollbarWidth, \"px\"));\n\n body._marginChangedForModal.push(el);\n }); // Adjust margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_NAVBAR_TOGGLER).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = getStyle(el, 'marginRight') || '';\n setAttr(el, 'data-margin-right', actualMargin);\n setStyle(el, 'marginRight', \"\".concat(toFloat(getCS(el).marginRight, 0) + scrollbarWidth, \"px\"));\n\n body._marginChangedForModal.push(el);\n }); // Adjust body padding\n\n var actualPadding = getStyle(body, 'paddingRight') || '';\n setAttr(body, 'data-padding-right', actualPadding);\n setStyle(body, 'paddingRight', \"\".concat(toFloat(getCS(body).paddingRight, 0) + scrollbarWidth, \"px\"));\n }\n },\n resetScrollbar: function resetScrollbar() {\n var body = document.body;\n\n if (body._paddingChangedForModal) {\n // Restore fixed content padding\n body._paddingChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-padding-right')) {\n setStyle(el, 'paddingRight', getAttr(el, 'data-padding-right') || '');\n removeAttr(el, 'data-padding-right');\n }\n });\n }\n\n if (body._marginChangedForModal) {\n // Restore sticky content and navbar-toggler margin\n body._marginChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-margin-right')) {\n setStyle(el, 'marginRight', getAttr(el, 'data-margin-right') || '');\n removeAttr(el, 'data-margin-right');\n }\n });\n }\n\n body._paddingChangedForModal = null;\n body._marginChangedForModal = null; // Restore body padding\n\n if (hasAttr(body, 'data-padding-right')) {\n setStyle(body, 'paddingRight', getAttr(body, 'data-padding-right') || '');\n removeAttr(body, 'data-padding-right');\n }\n }\n }\n}); // Create and export our modal manager instance\n\nexport var modalManager = new ModalManager();","function 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\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_MODAL } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CANCEL, EVENT_NAME_CHANGE, EVENT_NAME_CLOSE, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OK, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { CODE_ESC } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_MODAL_BACKDROP, SLOT_NAME_MODAL_CANCEL, SLOT_NAME_MODAL_FOOTER, SLOT_NAME_MODAL_HEADER, SLOT_NAME_MODAL_HEADER_CLOSE, SLOT_NAME_MODAL_OK, SLOT_NAME_MODAL_TITLE } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { attemptFocus, closest, contains, getActiveElement as _getActiveElement, getTabables, requestAF, select } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { htmlOrText } from '../../utils/html';\nimport { identity } from '../../utils/identity';\nimport { isString, isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnDocumentMixin } from '../../mixins/listen-on-document';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenOnWindowMixin } from '../../mixins/listen-on-window';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { BButton } from '../button/button';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BVTransporter } from '../transporter/transporter';\nimport { BvModalEvent } from './helpers/bv-modal-event.class';\nimport { modalManager } from './helpers/modal-manager'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar TRIGGER_BACKDROP = 'backdrop';\nvar TRIGGER_ESC = 'esc';\nvar TRIGGER_FORCE = 'FORCE';\nvar TRIGGER_TOGGLE = 'toggle';\nvar BUTTON_CANCEL = 'cancel'; // TODO: This should be renamed to 'close'\n\nvar BUTTON_CLOSE = 'headerclose';\nvar BUTTON_OK = 'ok';\nvar BUTTONS = [BUTTON_CANCEL, BUTTON_CLOSE, BUTTON_OK]; // `ObserveDom` config to detect changes in modal content\n// so that we can adjust the modal padding if needed\n\nvar OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n}; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n autoFocusButton: makeProp(PROP_TYPE_STRING, null,\n /* istanbul ignore next */\n function (value) {\n return isUndefinedOrNull(value) || arrayIncludes(BUTTONS, value);\n }),\n bodyBgVariant: makeProp(PROP_TYPE_STRING),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n bodyTextVariant: makeProp(PROP_TYPE_STRING),\n busy: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonSize: makeProp(PROP_TYPE_STRING),\n cancelDisabled: makeProp(PROP_TYPE_BOOLEAN, false),\n cancelTitle: makeProp(PROP_TYPE_STRING, 'Cancel'),\n cancelTitleHtml: makeProp(PROP_TYPE_STRING),\n cancelVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n centered: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n dialogClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerBgVariant: makeProp(PROP_TYPE_STRING),\n footerBorderVariant: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerTag: makeProp(PROP_TYPE_STRING, 'footer'),\n footerTextVariant: makeProp(PROP_TYPE_STRING),\n headerBgVariant: makeProp(PROP_TYPE_STRING),\n headerBorderVariant: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerCloseContent: makeProp(PROP_TYPE_STRING, '×'),\n headerCloseLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n headerCloseVariant: makeProp(PROP_TYPE_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n headerTextVariant: makeProp(PROP_TYPE_STRING),\n // TODO: Rename to `noBackdrop` and deprecate `hideBackdrop`\n hideBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noFooter` and deprecate `hideFooter`\n hideFooter: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noHeader` and deprecate `hideHeader`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noHeaderClose` and deprecate `hideHeaderClose`\n hideHeaderClose: makeProp(PROP_TYPE_BOOLEAN, false),\n ignoreEnforceFocusSelector: makeProp(PROP_TYPE_ARRAY_STRING),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n modalClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCloseOnBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnEsc: makeProp(PROP_TYPE_BOOLEAN, false),\n noEnforceFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noStacking: makeProp(PROP_TYPE_BOOLEAN, false),\n okDisabled: makeProp(PROP_TYPE_BOOLEAN, false),\n okOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n okTitle: makeProp(PROP_TYPE_STRING, 'OK'),\n okTitleHtml: makeProp(PROP_TYPE_STRING),\n okVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // HTML Element, CSS selector string or Vue component instance\n returnFocus: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n scrollable: makeProp(PROP_TYPE_BOOLEAN, false),\n size: makeProp(PROP_TYPE_STRING, 'md'),\n static: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n titleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n titleHtml: makeProp(PROP_TYPE_STRING),\n titleSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n titleTag: makeProp(PROP_TYPE_STRING, 'h5')\n})), NAME_MODAL); // --- Main component ---\n// @vue/component\n\nexport var BModal = /*#__PURE__*/Vue.extend({\n name: NAME_MODAL,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnDocumentMixin, listenOnRootMixin, listenOnWindowMixin, normalizeSlotMixin, scopedStyleMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n isHidden: true,\n // If modal should not be in document\n isVisible: false,\n // Controls modal visible state\n isTransitioning: false,\n // Used for style control\n isShow: false,\n // Used for style control\n isBlock: false,\n // Used for style control\n isOpening: false,\n // To signal that the modal is in the process of opening\n isClosing: false,\n // To signal that the modal is in the process of closing\n ignoreBackdropClick: false,\n // Used to signify if click out listener should ignore the click\n isModalOverflowing: false,\n // The following items are controlled by the modalManager instance\n scrollbarWidth: 0,\n zIndex: modalManager.getBaseZIndex(),\n isTop: true,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalId: function modalId() {\n return this.safeId();\n },\n modalOuterId: function modalOuterId() {\n return this.safeId('__BV_modal_outer_');\n },\n modalHeaderId: function modalHeaderId() {\n return this.safeId('__BV_modal_header_');\n },\n modalBodyId: function modalBodyId() {\n return this.safeId('__BV_modal_body_');\n },\n modalTitleId: function modalTitleId() {\n return this.safeId('__BV_modal_title_');\n },\n modalContentId: function modalContentId() {\n return this.safeId('__BV_modal_content_');\n },\n modalFooterId: function modalFooterId() {\n return this.safeId('__BV_modal_footer_');\n },\n modalBackdropId: function modalBackdropId() {\n return this.safeId('__BV_modal_backdrop_');\n },\n modalClasses: function modalClasses() {\n return [{\n fade: !this.noFade,\n show: this.isShow\n }, this.modalClass];\n },\n modalStyles: function modalStyles() {\n var sbWidth = \"\".concat(this.scrollbarWidth, \"px\");\n return {\n paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',\n paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : '',\n // Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457\n // Even though we are using v-show, we must ensure 'none' is restored in the styles\n display: this.isBlock ? 'block' : 'none'\n };\n },\n dialogClasses: function dialogClasses() {\n var _ref;\n\n return [(_ref = {}, _defineProperty(_ref, \"modal-\".concat(this.size), this.size), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _defineProperty(_ref, 'modal-dialog-scrollable', this.scrollable), _ref), this.dialogClass];\n },\n headerClasses: function headerClasses() {\n var _ref2;\n\n return [(_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(this.headerBgVariant), this.headerBgVariant), _defineProperty(_ref2, \"text-\".concat(this.headerTextVariant), this.headerTextVariant), _defineProperty(_ref2, \"border-\".concat(this.headerBorderVariant), this.headerBorderVariant), _ref2), this.headerClass];\n },\n titleClasses: function titleClasses() {\n return [{\n 'sr-only': this.titleSrOnly\n }, this.titleClass];\n },\n bodyClasses: function bodyClasses() {\n var _ref3;\n\n return [(_ref3 = {}, _defineProperty(_ref3, \"bg-\".concat(this.bodyBgVariant), this.bodyBgVariant), _defineProperty(_ref3, \"text-\".concat(this.bodyTextVariant), this.bodyTextVariant), _ref3), this.bodyClass];\n },\n footerClasses: function footerClasses() {\n var _ref4;\n\n return [(_ref4 = {}, _defineProperty(_ref4, \"bg-\".concat(this.footerBgVariant), this.footerBgVariant), _defineProperty(_ref4, \"text-\".concat(this.footerTextVariant), this.footerTextVariant), _defineProperty(_ref4, \"border-\".concat(this.footerBorderVariant), this.footerBorderVariant), _ref4), this.footerClass];\n },\n modalOuterStyle: function modalOuterStyle() {\n // Styles needed for proper stacking of modals\n return {\n position: 'absolute',\n zIndex: this.zIndex\n };\n },\n slotScope: function slotScope() {\n return {\n cancel: this.onCancel,\n close: this.onClose,\n hide: this.hide,\n ok: this.onOk,\n visible: this.isVisible\n };\n },\n computeIgnoreEnforceFocusSelector: function computeIgnoreEnforceFocusSelector() {\n // Normalize to an single selector with selectors separated by `,`\n return concat(this.ignoreEnforceFocusSelector).filter(identity).join(',').trim();\n },\n computedAttrs: function computedAttrs() {\n // If the parent has a scoped style attribute, and the modal\n // is portalled, add the scoped attribute to the modal wrapper\n var scopedStyleAttrs = !this.static ? this.scopedStyleAttrs : {};\n return _objectSpread(_objectSpread(_objectSpread({}, scopedStyleAttrs), this.bvAttrs), {}, {\n id: this.modalOuterId\n });\n },\n computedModalAttrs: function computedModalAttrs() {\n var isVisible = this.isVisible,\n ariaLabel = this.ariaLabel;\n return {\n id: this.modalId,\n role: 'dialog',\n 'aria-hidden': isVisible ? null : 'true',\n 'aria-modal': isVisible ? 'true' : null,\n 'aria-label': ariaLabel,\n 'aria-labelledby': this.hideHeader || ariaLabel || // TODO: Rename slot to `title` and deprecate `modal-title`\n !(this.hasNormalizedSlot(SLOT_NAME_MODAL_TITLE) || this.titleHtml || this.title) ? null : this.modalTitleId,\n 'aria-describedby': this.modalBodyId\n };\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this[newValue ? 'show' : 'hide']();\n }\n }),\n created: function created() {\n // Define non-reactive properties\n this.$_observer = null;\n this.$_returnFocus = this.returnFocus || null;\n },\n mounted: function mounted() {\n // Set initial z-index as queried from the DOM\n this.zIndex = modalManager.getBaseZIndex(); // Listen for events from others to either open or close ourselves\n // and listen to all modals to enable/disable enforce focus\n\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW), this.showHandler);\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_HIDE), this.hideHandler);\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_TOGGLE), this.toggleHandler); // Listen for `bv:modal::show events`, and close ourselves if the\n // opening modal not us\n\n this.listenOnRoot(getRootEventName(NAME_MODAL, EVENT_NAME_SHOW), this.modalListener); // Initially show modal?\n\n if (this[MODEL_PROP_NAME] === true) {\n this.$nextTick(this.show);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Ensure everything is back to normal\n modalManager.unregisterModal(this);\n this.setObserver(false);\n\n if (this.isVisible) {\n this.isVisible = false;\n this.isShow = false;\n this.isTransitioning = false;\n }\n },\n methods: {\n setObserver: function setObserver() {\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n this.$_observer = observeDom(this.$refs.content, this.checkModalOverflow.bind(this), OBSERVER_CONFIG);\n }\n },\n // Private method to update the v-model\n updateModel: function updateModel(value) {\n if (value !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, value);\n }\n },\n // Private method to create a BvModalEvent object\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvModalEvent(type, _objectSpread(_objectSpread({\n // Default options\n cancelable: false,\n target: this.$refs.modal || this.$el || null,\n relatedTarget: null,\n trigger: null\n }, options), {}, {\n // Options that can't be overridden\n vueTarget: this,\n componentId: this.modalId\n }));\n },\n // Public method to show modal\n show: function show() {\n if (this.isVisible || this.isOpening) {\n // If already open, or in the process of opening, do nothing\n\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.isClosing) {\n // If we are in the process of closing, wait until hidden before re-opening\n\n /* istanbul ignore next */\n this.$once(EVENT_NAME_HIDDEN, this.show);\n /* istanbul ignore next */\n\n return;\n }\n\n this.isOpening = true; // Set the element to return focus to when closed\n\n this.$_returnFocus = this.$_returnFocus || this.getActiveElement();\n var showEvent = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvent); // Don't show if canceled\n\n if (showEvent.defaultPrevented || this.isVisible) {\n this.isOpening = false; // Ensure the v-model reflects the current state\n\n this.updateModel(false);\n return;\n } // Show the modal\n\n\n this.doShow();\n },\n // Public method to hide modal\n hide: function hide() {\n var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (!this.isVisible || this.isClosing) {\n /* istanbul ignore next */\n return;\n }\n\n this.isClosing = true;\n var hideEvent = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: trigger !== TRIGGER_FORCE,\n trigger: trigger || null\n }); // We emit specific event for one of the three built-in buttons\n\n if (trigger === BUTTON_OK) {\n this.$emit(EVENT_NAME_OK, hideEvent);\n } else if (trigger === BUTTON_CANCEL) {\n this.$emit(EVENT_NAME_CANCEL, hideEvent);\n } else if (trigger === BUTTON_CLOSE) {\n this.$emit(EVENT_NAME_CLOSE, hideEvent);\n }\n\n this.emitEvent(hideEvent); // Hide if not canceled\n\n if (hideEvent.defaultPrevented || !this.isVisible) {\n this.isClosing = false; // Ensure v-model reflects current state\n\n this.updateModel(true);\n return;\n } // Stop observing for content changes\n\n\n this.setObserver(false); // Trigger the hide transition\n\n this.isVisible = false; // Update the v-model\n\n this.updateModel(false);\n },\n // Public method to toggle modal visibility\n toggle: function toggle(triggerEl) {\n if (triggerEl) {\n this.$_returnFocus = triggerEl;\n }\n\n if (this.isVisible) {\n this.hide(TRIGGER_TOGGLE);\n } else {\n this.show();\n }\n },\n // Private method to get the current document active element\n getActiveElement: function getActiveElement() {\n // Returning focus to `document.body` may cause unwanted scrolls,\n // so we exclude setting focus on body\n var activeElement = _getActiveElement(IS_BROWSER ? [document.body] : []); // Preset the fallback return focus value if it is not set\n // `document.activeElement` should be the trigger element that was clicked or\n // in the case of using the v-model, which ever element has current focus\n // Will be overridden by some commands such as toggle, etc.\n // Note: On IE 11, `document.activeElement` may be `null`\n // So we test it for truthiness first\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3206\n\n\n return activeElement && activeElement.focus ? activeElement : null;\n },\n // Private method to finish showing modal\n doShow: function doShow() {\n var _this = this;\n\n /* istanbul ignore next: commenting out for now until we can test stacking */\n if (modalManager.modalsAreOpen && this.noStacking) {\n // If another modal(s) is already open, wait for it(them) to close\n this.listenOnRootOnce(getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN), this.doShow);\n return;\n }\n\n modalManager.registerModal(this); // Place modal in DOM\n\n this.isHidden = false;\n this.$nextTick(function () {\n // We do this in `$nextTick()` to ensure the modal is in DOM first\n // before we show it\n _this.isVisible = true;\n _this.isOpening = false; // Update the v-model\n\n _this.updateModel(true);\n\n _this.$nextTick(function () {\n // Observe changes in modal content and adjust if necessary\n // In a `$nextTick()` in case modal content is lazy\n _this.setObserver(true);\n });\n });\n },\n // Transition handlers\n onBeforeEnter: function onBeforeEnter() {\n this.isTransitioning = true;\n this.setResizeEvent(true);\n },\n onEnter: function onEnter() {\n var _this2 = this;\n\n this.isBlock = true; // We add the `show` class 1 frame later\n // `requestAF()` runs the callback before the next repaint, so we need\n // two calls to guarantee the next frame has been rendered\n\n requestAF(function () {\n requestAF(function () {\n _this2.isShow = true;\n });\n });\n },\n onAfterEnter: function onAfterEnter() {\n var _this3 = this;\n\n this.checkModalOverflow();\n this.isTransitioning = false; // We use `requestAF()` to allow transition hooks to complete\n // before passing control over to the other handlers\n // This will allow users to not have to use `$nextTick()` or `requestAF()`\n // when trying to pre-focus an element\n\n requestAF(function () {\n _this3.emitEvent(_this3.buildEvent(EVENT_NAME_SHOWN));\n\n _this3.setEnforceFocus(true);\n\n _this3.$nextTick(function () {\n // Delayed in a `$nextTick()` to allow users time to pre-focus\n // an element if the wish\n _this3.focusFirst();\n });\n });\n },\n onBeforeLeave: function onBeforeLeave() {\n this.isTransitioning = true;\n this.setResizeEvent(false);\n this.setEnforceFocus(false);\n },\n onLeave: function onLeave() {\n // Remove the 'show' class\n this.isShow = false;\n },\n onAfterLeave: function onAfterLeave() {\n var _this4 = this;\n\n this.isBlock = false;\n this.isTransitioning = false;\n this.isModalOverflowing = false;\n this.isHidden = true;\n this.$nextTick(function () {\n _this4.isClosing = false;\n modalManager.unregisterModal(_this4);\n\n _this4.returnFocusTo(); // TODO: Need to find a way to pass the `trigger` property\n // to the `hidden` event, not just only the `hide` event\n\n\n _this4.emitEvent(_this4.buildEvent(EVENT_NAME_HIDDEN));\n });\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type; // We emit on `$root` first in case a global listener wants to cancel\n // the event first before the instance emits its event\n\n this.emitOnRoot(getRootEventName(NAME_MODAL, type), bvEvent, bvEvent.componentId);\n this.$emit(type, bvEvent);\n },\n // UI event handlers\n onDialogMousedown: function onDialogMousedown() {\n var _this5 = this;\n\n // Watch to see if the matching mouseup event occurs outside the dialog\n // And if it does, cancel the clickOut handler\n var modal = this.$refs.modal;\n\n var onceModalMouseup = function onceModalMouseup(event) {\n eventOff(modal, 'mouseup', onceModalMouseup, EVENT_OPTIONS_NO_CAPTURE);\n\n if (event.target === modal) {\n _this5.ignoreBackdropClick = true;\n }\n };\n\n eventOn(modal, 'mouseup', onceModalMouseup, EVENT_OPTIONS_NO_CAPTURE);\n },\n onClickOut: function onClickOut(event) {\n if (this.ignoreBackdropClick) {\n // Click was initiated inside the modal content, but finished outside.\n // Set by the above onDialogMousedown handler\n this.ignoreBackdropClick = false;\n return;\n } // Do nothing if not visible, backdrop click disabled, or element\n // that generated click event is no longer in document body\n\n\n if (!this.isVisible || this.noCloseOnBackdrop || !contains(document.body, event.target)) {\n return;\n } // If backdrop clicked, hide modal\n\n\n if (!contains(this.$refs.content, event.target)) {\n this.hide(TRIGGER_BACKDROP);\n }\n },\n onOk: function onOk() {\n this.hide(BUTTON_OK);\n },\n onCancel: function onCancel() {\n this.hide(BUTTON_CANCEL);\n },\n onClose: function onClose() {\n this.hide(BUTTON_CLOSE);\n },\n onEsc: function onEsc(event) {\n // If ESC pressed, hide modal\n if (event.keyCode === CODE_ESC && this.isVisible && !this.noCloseOnEsc) {\n this.hide(TRIGGER_ESC);\n }\n },\n // Document focusin listener\n focusHandler: function focusHandler(event) {\n // If focus leaves modal content, bring it back\n var content = this.$refs.content;\n var target = event.target;\n\n if (this.noEnforceFocus || !this.isTop || !this.isVisible || !content || document === target || contains(content, target) || this.computeIgnoreEnforceFocusSelector && closest(this.computeIgnoreEnforceFocusSelector, target, true)) {\n return;\n }\n\n var tabables = getTabables(this.$refs.content);\n var bottomTrap = this.$refs['bottom-trap'];\n var topTrap = this.$refs['top-trap'];\n\n if (bottomTrap && target === bottomTrap) {\n // If user pressed TAB out of modal into our bottom trab trap element\n // Find the first tabable element in the modal content and focus it\n if (attemptFocus(tabables[0])) {\n // Focus was successful\n return;\n }\n } else if (topTrap && target === topTrap) {\n // If user pressed CTRL-TAB out of modal and into our top tab trap element\n // Find the last tabable element in the modal content and focus it\n if (attemptFocus(tabables[tabables.length - 1])) {\n // Focus was successful\n return;\n }\n } // Otherwise focus the modal content container\n\n\n attemptFocus(content, {\n preventScroll: true\n });\n },\n // Turn on/off focusin listener\n setEnforceFocus: function setEnforceFocus(on) {\n this.listenDocument(on, 'focusin', this.focusHandler);\n },\n // Resize listener\n setResizeEvent: function setResizeEvent(on) {\n this.listenWindow(on, 'resize', this.checkModalOverflow);\n this.listenWindow(on, 'orientationchange', this.checkModalOverflow);\n },\n // Root listener handlers\n showHandler: function showHandler(id, triggerEl) {\n if (id === this.modalId) {\n this.$_returnFocus = triggerEl || this.getActiveElement();\n this.show();\n }\n },\n hideHandler: function hideHandler(id) {\n if (id === this.modalId) {\n this.hide('event');\n }\n },\n toggleHandler: function toggleHandler(id, triggerEl) {\n if (id === this.modalId) {\n this.toggle(triggerEl);\n }\n },\n modalListener: function modalListener(bvEvent) {\n // If another modal opens, close this one if stacking not permitted\n if (this.noStacking && bvEvent.vueTarget !== this) {\n this.hide();\n }\n },\n // Focus control handlers\n focusFirst: function focusFirst() {\n var _this6 = this;\n\n // Don't try and focus if we are SSR\n if (IS_BROWSER) {\n requestAF(function () {\n var modal = _this6.$refs.modal;\n var content = _this6.$refs.content;\n\n var activeElement = _this6.getActiveElement(); // If the modal contains the activeElement, we don't do anything\n\n\n if (modal && content && !(activeElement && contains(content, activeElement))) {\n var ok = _this6.$refs['ok-button'];\n var cancel = _this6.$refs['cancel-button'];\n var close = _this6.$refs['close-button']; // Focus the appropriate button or modal content wrapper\n\n var autoFocus = _this6.autoFocusButton;\n /* istanbul ignore next */\n\n var el = autoFocus === BUTTON_OK && ok ? ok.$el || ok : autoFocus === BUTTON_CANCEL && cancel ? cancel.$el || cancel : autoFocus === BUTTON_CLOSE && close ? close.$el || close : content; // Focus the element\n\n attemptFocus(el);\n\n if (el === content) {\n // Make sure top of modal is showing (if longer than the viewport)\n _this6.$nextTick(function () {\n modal.scrollTop = 0;\n });\n }\n }\n });\n }\n },\n returnFocusTo: function returnFocusTo() {\n // Prefer `returnFocus` prop over event specified\n // `return_focus` value\n var el = this.returnFocus || this.$_returnFocus || null;\n this.$_returnFocus = null;\n this.$nextTick(function () {\n // Is el a string CSS selector?\n el = isString(el) ? select(el) : el;\n\n if (el) {\n // Possibly could be a component reference\n el = el.$el || el;\n attemptFocus(el);\n }\n });\n },\n checkModalOverflow: function checkModalOverflow() {\n if (this.isVisible) {\n var modal = this.$refs.modal;\n this.isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;\n }\n },\n makeModal: function makeModal(h) {\n // Modal header\n var $header = h();\n\n if (!this.hideHeader) {\n // TODO: Rename slot to `header` and deprecate `modal-header`\n var $modalHeader = this.normalizeSlot(SLOT_NAME_MODAL_HEADER, this.slotScope);\n\n if (!$modalHeader) {\n var $closeButton = h();\n\n if (!this.hideHeaderClose) {\n $closeButton = h(BButtonClose, {\n props: {\n content: this.headerCloseContent,\n disabled: this.isTransitioning,\n ariaLabel: this.headerCloseLabel,\n textVariant: this.headerCloseVariant || this.headerTextVariant\n },\n on: {\n click: this.onClose\n },\n ref: 'close-button'\n }, // TODO: Rename slot to `header-close` and deprecate `modal-header-close`\n [this.normalizeSlot(SLOT_NAME_MODAL_HEADER_CLOSE)]);\n }\n\n $modalHeader = [h(this.titleTag, {\n staticClass: 'modal-title',\n class: this.titleClasses,\n attrs: {\n id: this.modalTitleId\n },\n // TODO: Rename slot to `title` and deprecate `modal-title`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_TITLE) ? {} : htmlOrText(this.titleHtml, this.title)\n }, // TODO: Rename slot to `title` and deprecate `modal-title`\n this.normalizeSlot(SLOT_NAME_MODAL_TITLE, this.slotScope)), $closeButton];\n }\n\n $header = h(this.headerTag, {\n staticClass: 'modal-header',\n class: this.headerClasses,\n attrs: {\n id: this.modalHeaderId\n },\n ref: 'header'\n }, [$modalHeader]);\n } // Modal body\n\n\n var $body = h('div', {\n staticClass: 'modal-body',\n class: this.bodyClasses,\n attrs: {\n id: this.modalBodyId\n },\n ref: 'body'\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope)); // Modal footer\n\n var $footer = h();\n\n if (!this.hideFooter) {\n // TODO: Rename slot to `footer` and deprecate `modal-footer`\n var $modalFooter = this.normalizeSlot(SLOT_NAME_MODAL_FOOTER, this.slotScope);\n\n if (!$modalFooter) {\n var $cancelButton = h();\n\n if (!this.okOnly) {\n $cancelButton = h(BButton, {\n props: {\n variant: this.cancelVariant,\n size: this.buttonSize,\n disabled: this.cancelDisabled || this.busy || this.isTransitioning\n },\n // TODO: Rename slot to `cancel-button` and deprecate `modal-cancel`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_CANCEL) ? {} : htmlOrText(this.cancelTitleHtml, this.cancelTitle),\n on: {\n click: this.onCancel\n },\n ref: 'cancel-button'\n }, // TODO: Rename slot to `cancel-button` and deprecate `modal-cancel`\n this.normalizeSlot(SLOT_NAME_MODAL_CANCEL));\n }\n\n var $okButton = h(BButton, {\n props: {\n variant: this.okVariant,\n size: this.buttonSize,\n disabled: this.okDisabled || this.busy || this.isTransitioning\n },\n // TODO: Rename slot to `ok-button` and deprecate `modal-ok`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_OK) ? {} : htmlOrText(this.okTitleHtml, this.okTitle),\n on: {\n click: this.onOk\n },\n ref: 'ok-button'\n }, // TODO: Rename slot to `ok-button` and deprecate `modal-ok`\n this.normalizeSlot(SLOT_NAME_MODAL_OK));\n $modalFooter = [$cancelButton, $okButton];\n }\n\n $footer = h(this.footerTag, {\n staticClass: 'modal-footer',\n class: this.footerClasses,\n attrs: {\n id: this.modalFooterId\n },\n ref: 'footer'\n }, [$modalFooter]);\n } // Assemble modal content\n\n\n var $modalContent = h('div', {\n staticClass: 'modal-content',\n class: this.contentClass,\n attrs: {\n id: this.modalContentId,\n tabindex: '-1'\n },\n ref: 'content'\n }, [$header, $body, $footer]); // Tab traps to prevent page from scrolling to next element in\n // tab index during enforce-focus tab cycle\n\n var $tabTrapTop = h();\n var $tabTrapBottom = h();\n\n if (this.isVisible && !this.noEnforceFocus) {\n $tabTrapTop = h('span', {\n attrs: {\n tabindex: '0'\n },\n ref: 'top-trap'\n });\n $tabTrapBottom = h('span', {\n attrs: {\n tabindex: '0'\n },\n ref: 'bottom-trap'\n });\n } // Modal dialog wrapper\n\n\n var $modalDialog = h('div', {\n staticClass: 'modal-dialog',\n class: this.dialogClasses,\n on: {\n mousedown: this.onDialogMousedown\n },\n ref: 'dialog'\n }, [$tabTrapTop, $modalContent, $tabTrapBottom]); // Modal\n\n var $modal = h('div', {\n staticClass: 'modal',\n class: this.modalClasses,\n style: this.modalStyles,\n attrs: this.computedModalAttrs,\n on: {\n keydown: this.onEsc,\n click: this.onClickOut\n },\n directives: [{\n name: 'show',\n value: this.isVisible\n }],\n ref: 'modal'\n }, [$modalDialog]); // Wrap modal in transition\n // Sadly, we can't use `BVTransition` here due to the differences in\n // transition durations for `.modal` and `.modal-dialog`\n // At least until https://github.com/vuejs/vue/issues/9986 is resolved\n\n $modal = h('transition', {\n props: {\n enterClass: '',\n enterToClass: '',\n enterActiveClass: '',\n leaveClass: '',\n leaveActiveClass: '',\n leaveToClass: ''\n },\n on: {\n beforeEnter: this.onBeforeEnter,\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$modal]); // Modal backdrop\n\n var $backdrop = h();\n\n if (!this.hideBackdrop && this.isVisible) {\n $backdrop = h('div', {\n staticClass: 'modal-backdrop',\n attrs: {\n id: this.modalBackdropId\n }\n }, // TODO: Rename slot to `backdrop` and deprecate `modal-backdrop`\n this.normalizeSlot(SLOT_NAME_MODAL_BACKDROP));\n }\n\n $backdrop = h(BVTransition, {\n props: {\n noFade: this.noFade\n }\n }, [$backdrop]); // Assemble modal and backdrop in an outer \n\n return h('div', {\n style: this.modalOuterStyle,\n attrs: this.computedAttrs,\n key: \"modal-outer-\".concat(this[COMPONENT_UID_KEY])\n }, [$modal, $backdrop]);\n }\n },\n render: function render(h) {\n if (this.static) {\n return this.lazy && this.isHidden ? h() : this.makeModal(h);\n } else {\n return this.isHidden ? h() : h(BVTransporter, [this.makeModal(h)]);\n }\n }\n});","import { NAME_MODAL } from '../../constants/components';\nimport { EVENT_NAME_SHOW, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { getAttr, hasAttr, isDisabled, matches, select, setAttr } from '../../utils/dom';\nimport { getRootActionEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { keys } from '../../utils/object'; // Emitted show event for modal\n\nvar ROOT_ACTION_EVENT_NAME_SHOW = getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW); // Prop name we use to store info on root element\n\nvar PROPERTY = '__bv_modal_directive__';\n\nvar getTarget = function getTarget(_ref) {\n var _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? {} : _ref$modifiers,\n arg = _ref.arg,\n value = _ref.value;\n // Try value, then arg, otherwise pick last modifier\n return isString(value) ? value : isString(arg) ? arg : keys(modifiers).reverse()[0];\n};\n\nvar getTriggerElement = function getTriggerElement(el) {\n // If root element is a dropdown-item or nav-item, we\n // need to target the inner link or button instead\n return el && matches(el, '.dropdown-menu > li, li.nav-item') ? select('a, button', el) || el : el;\n};\n\nvar setRole = function setRole(trigger) {\n // Ensure accessibility on non button elements\n if (trigger && trigger.tagName !== 'BUTTON') {\n // Only set a role if the trigger element doesn't have one\n if (!hasAttr(trigger, 'role')) {\n setAttr(trigger, 'role', 'button');\n } // Add a tabindex is not a button or link, and tabindex is not provided\n\n\n if (trigger.tagName !== 'A' && !hasAttr(trigger, 'tabindex')) {\n setAttr(trigger, 'tabindex', '0');\n }\n }\n};\n\nvar bind = function bind(el, binding, vnode) {\n var target = getTarget(binding);\n var trigger = getTriggerElement(el);\n\n if (target && trigger) {\n var handler = function handler(event) {\n // `currentTarget` is the element with the listener on it\n var currentTarget = event.currentTarget;\n\n if (!isDisabled(currentTarget)) {\n var type = event.type;\n var key = event.keyCode; // Open modal only if trigger is not disabled\n\n if (type === 'click' || type === 'keydown' && (key === CODE_ENTER || key === CODE_SPACE)) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_SHOW, target, currentTarget);\n }\n }\n };\n\n el[PROPERTY] = {\n handler: handler,\n target: target,\n trigger: trigger\n }; // If element is not a button, we add `role=\"button\"` for accessibility\n\n setRole(trigger); // Listen for click events\n\n eventOn(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (trigger.tagName !== 'BUTTON' && getAttr(trigger, 'role') === 'button') {\n // If trigger isn't a button but has role button,\n // we also listen for `keydown.space` && `keydown.enter`\n eventOn(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar unbind = function unbind(el) {\n var oldProp = el[PROPERTY] || {};\n var trigger = oldProp.trigger;\n var handler = oldProp.handler;\n\n if (trigger && handler) {\n eventOff(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n delete el[PROPERTY];\n};\n\nvar componentUpdated = function componentUpdated(el, binding, vnode) {\n var oldProp = el[PROPERTY] || {};\n var target = getTarget(binding);\n var trigger = getTriggerElement(el);\n\n if (target !== oldProp.target || trigger !== oldProp.trigger) {\n // We bind and rebind if the target or trigger changes\n unbind(el, binding, vnode);\n bind(el, binding, vnode);\n } // If trigger element is not a button, ensure `role=\"button\"`\n // is still set for accessibility\n\n\n setRole(trigger);\n};\n\nvar updated = function updated() {};\n/*\n * Export our directive\n */\n\n\nexport var VBModal = {\n inserted: componentUpdated,\n updated: updated,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","function _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 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\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 _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 _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 _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\n// Plugin for adding `$bvModal` property to all Vue instances\nimport { NAME_MODAL, NAME_MSG_BOX } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootActionEventName } from '../../../utils/events';\nimport { isUndefined, isFunction } from '../../../utils/inspect';\nimport { assign, defineProperties, defineProperty, hasOwnProperty, keys, omit, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient, warnNoPromiseSupport } from '../../../utils/warn';\nimport { BModal, props as modalProps } from '../modal'; // --- Constants ---\n\nvar PROP_NAME = '$bvModal';\nvar PROP_NAME_PRIV = '_bv__modal'; // Base modal props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\n\nvar BASE_PROPS = ['id'].concat(_toConsumableArray(keys(omit(modalProps, ['busy', 'lazy', 'noStacking', 'static', 'visible'])))); // Fallback event resolver (returns undefined)\n\nvar defaultResolver = function defaultResolver() {}; // Map prop names to modal slot names\n\n\nvar propsToSlots = {\n msgBoxContent: 'default',\n title: 'modal-title',\n okTitle: 'modal-ok',\n cancelTitle: 'modal-cancel'\n}; // --- Helper methods ---\n// Method to filter only recognized props that are not undefined\n\nvar filterOptions = function filterOptions(options) {\n return BASE_PROPS.reduce(function (memo, key) {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n\n return memo;\n }, {});\n}; // Method to install `$bvModal` VM injection\n\n\nvar plugin = function plugin(Vue) {\n // Create a private sub-component that extends BModal\n // which self-destructs after hidden\n // @vue/component\n var BMsgBox = Vue.extend({\n name: NAME_MSG_BOX,\n extends: BModal,\n destroyed: function destroyed() {\n // Make sure we not in document any more\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Self destruct handler\n var handleDestroy = function handleDestroy() {\n _this.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy); // Self destruct on route change\n\n /* istanbul ignore if */\n\n if (this.$router && this.$route) {\n // Destroy ourselves if route changes\n\n /* istanbul ignore next */\n this.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, this.$watch('$router', handleDestroy));\n } // Show the `BMsgBox`\n\n\n this.show();\n }\n }); // Method to generate the on-demand modal message box\n // Returns a promise that resolves to a value returned by the resolve\n\n var asyncMsgBox = function asyncMsgBox($parent, props) {\n var resolver = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultResolver;\n\n if (warnNotClient(PROP_NAME) || warnNoPromiseSupport(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n } // Create an instance of `BMsgBox` component\n\n\n var msgBox = new BMsgBox({\n // We set parent as the local VM so these modals can emit events on\n // the app `$root`, as needed by things like tooltips and popovers\n // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed\n parent: $parent,\n // Preset the prop values\n propsData: _objectSpread(_objectSpread(_objectSpread({}, filterOptions(getComponentConfig(NAME_MODAL))), {}, {\n // Defaults that user can override\n hideHeaderClose: true,\n hideHeader: !(props.title || props.titleHtml)\n }, omit(props, keys(propsToSlots))), {}, {\n // Props that can't be overridden\n lazy: false,\n busy: false,\n visible: false,\n noStacking: false,\n noEnforceFocus: false\n })\n }); // Convert certain props to scoped slots\n\n keys(propsToSlots).forEach(function (prop) {\n if (!isUndefined(props[prop])) {\n // Can be a string, or array of VNodes.\n // Alternatively, user can use HTML version of prop to pass an HTML string.\n msgBox.$slots[propsToSlots[prop]] = concat(props[prop]);\n }\n }); // Return a promise that resolves when hidden, or rejects on destroyed\n\n return new Promise(function (resolve, reject) {\n var resolved = false;\n msgBox.$once(HOOK_EVENT_NAME_DESTROYED, function () {\n if (!resolved) {\n /* istanbul ignore next */\n reject(new Error('BootstrapVue MsgBox destroyed before resolve'));\n }\n });\n msgBox.$on(EVENT_NAME_HIDE, function (bvModalEvent) {\n if (!bvModalEvent.defaultPrevented) {\n var result = resolver(bvModalEvent); // If resolver didn't cancel hide, we resolve\n\n if (!bvModalEvent.defaultPrevented) {\n resolved = true;\n resolve(result);\n }\n }\n }); // Create a mount point (a DIV) and mount the msgBo which will trigger it to show\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n msgBox.$mount(div);\n });\n }; // Private utility method to open a user defined message box and returns a promise.\n // Not to be used directly by consumers, as this method may change calling syntax\n\n\n var makeMsgBox = function makeMsgBox($parent, content) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var resolver = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n if (!content || warnNoPromiseSupport(PROP_NAME) || warnNotClient(PROP_NAME) || !isFunction(resolver)) {\n /* istanbul ignore next */\n return;\n }\n\n return asyncMsgBox($parent, _objectSpread(_objectSpread({}, filterOptions(options)), {}, {\n msgBoxContent: content\n }), resolver);\n }; // BvModal instance class\n\n\n var BvModal = /*#__PURE__*/function () {\n function BvModal(vm) {\n _classCallCheck(this, BvModal);\n\n // Assign the new properties to this instance\n assign(this, {\n _vm: vm,\n _root: vm.$root\n }); // Set these properties as read-only and non-enumerable\n\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n } // --- Instance methods ---\n // Show modal with the specified ID args are for future use\n\n\n _createClass(BvModal, [{\n key: \"show\",\n value: function show(id) {\n if (id && this._root) {\n var _this$_root;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$_root = this._root).$emit.apply(_this$_root, [getRootActionEventName(NAME_MODAL, 'show'), id].concat(args));\n }\n } // Hide modal with the specified ID args are for future use\n\n }, {\n key: \"hide\",\n value: function hide(id) {\n if (id && this._root) {\n var _this$_root2;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (_this$_root2 = this._root).$emit.apply(_this$_root2, [getRootActionEventName(NAME_MODAL, 'hide'), id].concat(args));\n }\n } // The following methods require Promise support!\n // IE 11 and others do not support Promise natively, so users\n // should have a Polyfill loaded (which they need anyways for IE 11 support)\n // Open a message box with OK button only and returns a promise\n\n }, {\n key: \"msgBoxOk\",\n value: function msgBoxOk(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Pick the modal props we support from options\n var props = _objectSpread(_objectSpread({}, options), {}, {\n // Add in overrides and our content prop\n okOnly: true,\n okDisabled: false,\n hideFooter: false,\n msgBoxContent: message\n });\n\n return makeMsgBox(this._vm, message, props, function () {\n // Always resolve to true for OK\n return true;\n });\n } // Open a message box modal with OK and CANCEL buttons\n // and returns a promise\n\n }, {\n key: \"msgBoxConfirm\",\n value: function msgBoxConfirm(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Set the modal props we support from options\n var props = _objectSpread(_objectSpread({}, options), {}, {\n // Add in overrides and our content prop\n okOnly: false,\n okDisabled: false,\n cancelDisabled: false,\n hideFooter: false\n });\n\n return makeMsgBox(this._vm, message, props, function (bvModalEvent) {\n var trigger = bvModalEvent.trigger;\n return trigger === 'ok' ? true : trigger === 'cancel' ? false : null;\n });\n }\n }]);\n\n return BvModal;\n }(); // Add our instance mixin\n\n\n Vue.mixin({\n beforeCreate: function beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvModal` for each VM\n this[PROP_NAME_PRIV] = new BvModal(this);\n }\n }); // Define our read-only `$bvModal` instance property\n // Placed in an if just in case in HMR mode\n\n if (!hasOwnProperty(Vue.prototype, PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get: function get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(\"\\\"\".concat(PROP_NAME, \"\\\" must be accessed from a Vue instance \\\"this\\\" context.\"), NAME_MODAL);\n }\n\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\n\nexport var BVModalPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n plugin: plugin\n }\n});","import { BModal } from './modal';\nimport { VBModal } from '../../directives/modal/modal';\nimport { BVModalPlugin } from './helpers/bv-modal';\nimport { pluginFactory } from '../../utils/plugins';\nvar ModalPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BModal: BModal\n },\n directives: {\n VBModal: VBModal\n },\n // $bvModal injection\n plugins: {\n BVModalPlugin: BVModalPlugin\n }\n});\nexport { ModalPlugin, BModal };","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAV_ITEM } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_OBJECT } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n linkAttrs: makeProp(PROP_TYPE_OBJECT, {}),\n linkClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})), NAME_NAV_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BNavItem = /*#__PURE__*/Vue.extend({\n name: NAME_NAV_ITEM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n return h('li', mergeData(omit(data, ['on']), {\n staticClass: 'nav-item'\n }), [h(BLink, {\n staticClass: 'nav-link',\n class: props.linkClasses,\n attrs: props.linkAttrs,\n props: pluckProps(linkProps, props),\n on: listeners\n }, children)]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_NAV_TEXT } from '../../constants/components'; // --- Props ---\n\nexport var props = {}; // --- Main component ---\n// @vue/component\n\nexport var BNavText = /*#__PURE__*/Vue.extend({\n name: NAME_NAV_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n children = _ref.children;\n return h('li', mergeData(data, {\n staticClass: 'navbar-text'\n }), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAV_FORM } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { BForm, props as BFormProps } from '../form/form'; // --- Props ---\n\nvar formProps = omit(BFormProps, ['inline']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formProps), {}, {\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})), NAME_NAV_FORM); // --- Main component ---\n// @vue/component\n\nexport var BNavForm = /*#__PURE__*/Vue.extend({\n name: NAME_NAV_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children,\n listeners = _ref.listeners;\n var $form = h(BForm, {\n class: props.formClass,\n props: _objectSpread(_objectSpread({}, pluckProps(formProps, props)), {}, {\n inline: true\n }),\n attrs: data.attrs,\n on: listeners\n }, children);\n return h('li', mergeData(omit(data, ['attrs', 'on']), {\n staticClass: 'form-inline'\n }), [$form]);\n }\n});","function _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 _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 _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 _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 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\nimport { Vue } from '../../vue';\nimport { NAME_NAV_ITEM_DROPDOWN } from '../../constants/components';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT, SLOT_NAME_TEXT } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { keys, pick, sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as BDropdownProps } from '../dropdown/dropdown';\nimport { BLink } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), pick(BDropdownProps, [].concat(_toConsumableArray(keys(dropdownProps)), ['html', 'lazy', 'menuClass', 'noCaret', 'role', 'text', 'toggleClass'])))), NAME_NAV_ITEM_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BNavItemDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_NAV_ITEM_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n toggleId: function toggleId() {\n return this.safeId('_BV_toggle_');\n },\n menuId: function menuId() {\n return this.safeId('_BV_toggle_menu_');\n },\n dropdownClasses: function dropdownClasses() {\n return [this.directionClass, this.boundaryClass, {\n show: this.visible\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n return [this.toggleClass, {\n 'dropdown-toggle-no-caret': this.noCaret\n }];\n }\n },\n render: function render(h) {\n var toggleId = this.toggleId,\n menuId = this.menuId,\n visible = this.visible,\n hide = this.hide;\n var $toggle = h(BLink, {\n staticClass: 'nav-link dropdown-toggle',\n class: this.toggleClasses,\n props: {\n href: \"#\".concat(this.id || ''),\n disabled: this.disabled\n },\n attrs: {\n id: toggleId,\n role: 'button',\n 'aria-haspopup': 'true',\n 'aria-expanded': visible ? 'true' : 'false',\n 'aria-controls': menuId\n },\n on: {\n mousedown: this.onMousedown,\n click: this.toggle,\n keydown: this.toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, [// TODO: The `text` slot is deprecated in favor of the `button-content` slot\n this.normalizeSlot([SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_TEXT]) || h('span', {\n domProps: htmlOrText(this.html, this.text)\n })]);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n tabindex: '-1',\n 'aria-labelledby': toggleId,\n id: menuId\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, !this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : [h()]);\n return h('li', {\n staticClass: 'nav-item b-nav-dropdown dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$toggle, $menu]);\n }\n});","import { BNav } from './nav';\nimport { BNavItem } from './nav-item';\nimport { BNavText } from './nav-text';\nimport { BNavForm } from './nav-form';\nimport { BNavItemDropdown } from './nav-item-dropdown';\nimport { DropdownPlugin } from '../dropdown';\nimport { pluginFactory } from '../../utils/plugins';\nvar NavPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BNav: BNav,\n BNavItem: BNavItem,\n BNavText: BNavText,\n BNavForm: BNavForm,\n BNavItemDropdown: BNavItemDropdown,\n BNavItemDd: BNavItemDropdown,\n BNavDropdown: BNavItemDropdown,\n BNavDd: BNavItemDropdown\n },\n plugins: {\n DropdownPlugin: DropdownPlugin\n }\n});\nexport { NavPlugin, BNav, BNavItem, BNavText, BNavForm, BNavItemDropdown };","function _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\nimport { Vue } from '../../vue';\nimport { NAME_NAVBAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getBreakpoints } from '../../utils/config';\nimport { isTag } from '../../utils/dom';\nimport { isString } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n fixed: makeProp(PROP_TYPE_STRING),\n print: makeProp(PROP_TYPE_BOOLEAN, false),\n sticky: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'nav'),\n toggleable: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n type: makeProp(PROP_TYPE_STRING, 'light'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_NAVBAR); // --- Main component ---\n// @vue/component\n\nexport var BNavbar = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvNavbar: this\n };\n },\n props: props,\n computed: {\n breakpointClass: function breakpointClass() {\n var toggleable = this.toggleable;\n var xs = getBreakpoints()[0];\n var breakpoint = null;\n\n if (toggleable && isString(toggleable) && toggleable !== xs) {\n breakpoint = \"navbar-expand-\".concat(toggleable);\n } else if (toggleable === false) {\n breakpoint = 'navbar-expand';\n }\n\n return breakpoint;\n }\n },\n render: function render(h) {\n var _ref;\n\n var tag = this.tag,\n type = this.type,\n variant = this.variant,\n fixed = this.fixed;\n return h(tag, {\n staticClass: 'navbar',\n class: [(_ref = {\n 'd-print': this.print,\n 'sticky-top': this.sticky\n }, _defineProperty(_ref, \"navbar-\".concat(type), type), _defineProperty(_ref, \"bg-\".concat(variant), variant), _defineProperty(_ref, \"fixed-\".concat(fixed), fixed), _ref), this.breakpointClass],\n attrs: {\n role: isTag(tag, 'nav') ? null : 'navigation'\n }\n }, [this.normalizeSlot()]);\n }\n});","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAVBAR_NAV } from '../../constants/components';\nimport { pick } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as BNavProps } from '../nav/nav'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(pick(BNavProps, ['tag', 'fill', 'justified', 'align', 'small']), NAME_NAVBAR_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNavbarNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var align = props.align;\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar-nav',\n class: (_class = {\n 'nav-fill': props.fill,\n 'nav-justified': props.justified\n }, _defineProperty(_class, computeJustifyContent(align), align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAVBAR_BRAND } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\nlinkProps.href.default = undefined;\nlinkProps.to.default = undefined;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_NAVBAR_BRAND); // --- Main component ---\n// @vue/component\n\nexport var BNavbarBrand = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR_BRAND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var isLink = props.to || props.href;\n var tag = isLink ? BLink : props.tag;\n return h(tag, mergeData(data, {\n staticClass: 'navbar-brand',\n props: isLink ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","import { Vue } from '../../vue';\nimport { NAME_COLLAPSE, NAME_NAVBAR_TOGGLE } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { getRootEventName } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBToggle } from '../../directives/toggle/toggle'; // --- Constants ---\n\nvar CLASS_NAME = 'navbar-toggler';\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n label: makeProp(PROP_TYPE_STRING, 'Toggle navigation'),\n target: makeProp(PROP_TYPE_ARRAY_STRING, undefined, true) // Required\n\n}, NAME_NAVBAR_TOGGLE); // --- Main component ---\n// @vue/component\n\nexport var BNavbarToggle = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR_TOGGLE,\n directives: {\n VBToggle: VBToggle\n },\n mixins: [listenOnRootMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n toggleState: false\n };\n },\n created: function created() {\n this.listenOnRoot(ROOT_EVENT_NAME_STATE, this.handleStateEvent);\n this.listenOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.handleStateEvent);\n },\n methods: {\n onClick: function onClick(event) {\n if (!this.disabled) {\n // Emit courtesy `click` event\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n handleStateEvent: function handleStateEvent(id, state) {\n // We listen for state events so that we can pass the\n // boolean expanded state to the default scoped slot\n if (id === this.target) {\n this.toggleState = state;\n }\n }\n },\n render: function render(h) {\n var disabled = this.disabled;\n return h('button', {\n staticClass: CLASS_NAME,\n class: {\n disabled: disabled\n },\n directives: [{\n name: 'VBToggle',\n value: this.target\n }],\n attrs: {\n type: 'button',\n disabled: disabled,\n 'aria-label': this.label\n },\n on: {\n click: this.onClick\n }\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n expanded: this.toggleState\n }) || h('span', {\n staticClass: \"\".concat(CLASS_NAME, \"-icon\")\n })]);\n }\n});","import { BNavbar } from './navbar';\nimport { BNavbarNav } from './navbar-nav';\nimport { BNavbarBrand } from './navbar-brand';\nimport { BNavbarToggle } from './navbar-toggle';\nimport { NavPlugin } from '../nav';\nimport { CollapsePlugin } from '../collapse';\nimport { DropdownPlugin } from '../dropdown';\nimport { pluginFactory } from '../../utils/plugins';\nvar NavbarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BNavbar: BNavbar,\n BNavbarNav: BNavbarNav,\n BNavbarBrand: BNavbarBrand,\n BNavbarToggle: BNavbarToggle,\n BNavToggle: BNavbarToggle\n },\n plugins: {\n NavPlugin: NavPlugin,\n CollapsePlugin: CollapsePlugin,\n DropdownPlugin: DropdownPlugin\n }\n});\nexport { NavbarPlugin, BNavbar, BNavbarNav, BNavbarBrand, BNavbarToggle };","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SPINNER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_LABEL } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n label: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING, 'status'),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n type: makeProp(PROP_TYPE_STRING, 'border'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_SPINNER); // --- Main component ---\n// @vue/component\n\nexport var BSpinner = /*#__PURE__*/Vue.extend({\n name: NAME_SPINNER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $label = normalizeSlot(SLOT_NAME_LABEL, {}, $scopedSlots, $slots) || props.label;\n\n if ($label) {\n $label = h('span', {\n staticClass: 'sr-only'\n }, $label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: $label ? props.role || 'status' : null,\n 'aria-hidden': $label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), props.type), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), props.variant), _class)\n }), [$label || h()]);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_OVERLAY } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_OVERLAY } from '../../constants/slots';\nimport { toFloat } from '../../utils/number';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSpinner } from '../spinner/spinner';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar POSITION_COVER = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n}; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Alternative to variant, allowing a specific\n // CSS color to be applied to the overlay\n bgColor: makeProp(PROP_TYPE_STRING),\n blur: makeProp(PROP_TYPE_STRING, '2px'),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n noCenter: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // If `true, does not render the default slot\n // and switches to absolute positioning\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false),\n opacity: makeProp(PROP_TYPE_NUMBER_STRING, 0.85, function (value) {\n var number = toFloat(value, 0);\n return number >= 0 && number <= 1;\n }),\n overlayTag: makeProp(PROP_TYPE_STRING, 'div'),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n show: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerSmall: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerType: makeProp(PROP_TYPE_STRING, 'border'),\n spinnerVariant: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'light'),\n wrapTag: makeProp(PROP_TYPE_STRING, 'div'),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING, 10)\n}, NAME_OVERLAY); // --- Main component ---\n// @vue/component\n\nexport var BOverlay = /*#__PURE__*/Vue.extend({\n name: NAME_OVERLAY,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n computedRounded: function computedRounded() {\n var rounded = this.rounded;\n return rounded === true || rounded === '' ? 'rounded' : !rounded ? '' : \"rounded-\".concat(rounded);\n },\n computedVariant: function computedVariant() {\n var variant = this.variant;\n return variant && !this.bgColor ? \"bg-\".concat(variant) : '';\n },\n slotScope: function slotScope() {\n return {\n spinnerType: this.spinnerType || null,\n spinnerVariant: this.spinnerVariant || null,\n spinnerSmall: this.spinnerSmall\n };\n }\n },\n methods: {\n defaultOverlayFn: function defaultOverlayFn(_ref) {\n var spinnerType = _ref.spinnerType,\n spinnerVariant = _ref.spinnerVariant,\n spinnerSmall = _ref.spinnerSmall;\n return this.$createElement(BSpinner, {\n props: {\n type: spinnerType,\n variant: spinnerVariant,\n small: spinnerSmall\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var show = this.show,\n fixed = this.fixed,\n noFade = this.noFade,\n noWrap = this.noWrap,\n slotScope = this.slotScope;\n var $overlay = h();\n\n if (show) {\n var $background = h('div', {\n staticClass: 'position-absolute',\n class: [this.computedVariant, this.computedRounded],\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n opacity: this.opacity,\n backgroundColor: this.bgColor || null,\n backdropFilter: this.blur ? \"blur(\".concat(this.blur, \")\") : null\n })\n });\n var $content = h('div', {\n staticClass: 'position-absolute',\n style: this.noCenter ?\n /* istanbul ignore next */\n _objectSpread({}, POSITION_COVER) : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)'\n }\n }, [this.normalizeSlot(SLOT_NAME_OVERLAY, slotScope) || this.defaultOverlayFn(slotScope)]);\n $overlay = h(this.overlayTag, {\n staticClass: 'b-overlay',\n class: {\n 'position-absolute': !noWrap || noWrap && !fixed,\n 'position-fixed': noWrap && fixed\n },\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n zIndex: this.zIndex || 10\n }),\n on: {\n click: function click(event) {\n return _this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n key: 'overlay'\n }, [$background, $content]);\n } // Wrap in a fade transition\n\n\n $overlay = h(BVTransition, {\n props: {\n noFade: noFade,\n appear: true\n },\n on: {\n 'after-enter': function afterEnter() {\n return _this.$emit(EVENT_NAME_SHOWN);\n },\n 'after-leave': function afterLeave() {\n return _this.$emit(EVENT_NAME_HIDDEN);\n }\n }\n }, [$overlay]);\n\n if (noWrap) {\n return $overlay;\n }\n\n return h(this.wrapTag, {\n staticClass: 'b-overlay-wrap position-relative',\n attrs: {\n 'aria-busy': show ? 'true' : null\n }\n }, noWrap ? [$overlay] : [this.normalizeSlot(), $overlay]);\n }\n});","var _watch;\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\nimport { Vue } from '../vue';\nimport { NAME_PAGINATION } from '../constants/components';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_FUNCTION_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_ELLIPSIS_TEXT, SLOT_NAME_FIRST_TEXT, SLOT_NAME_LAST_TEXT, SLOT_NAME_NEXT_TEXT, SLOT_NAME_PAGE, SLOT_NAME_PREV_TEXT } from '../constants/slots';\nimport { createArray } from '../utils/array';\nimport { attemptFocus, getActiveElement, getAttr, isDisabled, isVisible, selectAll } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { isFunction, isNull } from '../utils/inspect';\nimport { mathFloor, mathMax, mathMin } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string';\nimport { warn } from '../utils/warn';\nimport { normalizeSlotMixin } from '../mixins/normalize-slot';\nimport { BLink } from '../components/link/link'; // Common props, computed, data, render function, and methods\n// for `` and ``\n// --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: null,\n\n /* istanbul ignore next */\n validator: function validator(value) {\n if (!isNull(value) && toInteger(value, 0) < 1) {\n warn('\"v-model\" value must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // Threshold of limit size when we start/stop showing ellipsis\n\nvar ELLIPSIS_THRESHOLD = 3; // Default # of buttons limit\n\nvar DEFAULT_LIMIT = 5; // --- Helper methods ---\n// Make an array of N to N+X\n\nvar makePageArray = function makePageArray(startNumber, numberOfPages) {\n return createArray(numberOfPages, function (_, i) {\n return {\n number: startNumber + i,\n classes: null\n };\n });\n}; // Sanitize the provided limit value (converting to a number)\n\n\nvar sanitizeLimit = function sanitizeLimit(value) {\n var limit = toInteger(value) || 1;\n return limit < 1 ? DEFAULT_LIMIT : limit;\n}; // Sanitize the provided current page number (converting to a number)\n\n\nvar sanitizeCurrentPage = function sanitizeCurrentPage(val, numberOfPages) {\n var page = toInteger(val) || 1;\n return page > numberOfPages ? numberOfPages : page < 1 ? 1 : page;\n}; // Links don't normally respond to SPACE, so we add that\n// functionality via this handler\n\n\nvar onSpaceKey = function onSpaceKey(event) {\n if (event.keyCode === CODE_SPACE) {\n // Stop page from scrolling\n stopEvent(event, {\n immediatePropagation: true\n }); // Trigger the click event on the link\n\n event.currentTarget.click();\n return false;\n }\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n align: makeProp(PROP_TYPE_STRING, 'left'),\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Pagination'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n ellipsisClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n ellipsisText: makeProp(PROP_TYPE_STRING, \"\\u2026\"),\n // '…'\n firstClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n firstNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n firstText: makeProp(PROP_TYPE_STRING, \"\\xAB\"),\n // '«'\n hideEllipsis: makeProp(PROP_TYPE_BOOLEAN, false),\n hideGotoEndButtons: makeProp(PROP_TYPE_BOOLEAN, false),\n labelFirstPage: makeProp(PROP_TYPE_STRING, 'Go to first page'),\n labelLastPage: makeProp(PROP_TYPE_STRING, 'Go to last page'),\n labelNextPage: makeProp(PROP_TYPE_STRING, 'Go to next page'),\n labelPage: makeProp(PROP_TYPE_FUNCTION_STRING, 'Go to page'),\n labelPrevPage: makeProp(PROP_TYPE_STRING, 'Go to previous page'),\n lastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lastNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n lastText: makeProp(PROP_TYPE_STRING, \"\\xBB\"),\n // '»'\n limit: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_LIMIT,\n /* istanbul ignore next */\n function (value) {\n if (toInteger(value, 0) < 1) {\n warn('Prop \"limit\" must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }),\n nextClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n nextText: makeProp(PROP_TYPE_STRING, \"\\u203A\"),\n // '›'\n pageClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n prevClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n prevText: makeProp(PROP_TYPE_STRING, \"\\u2039\"),\n // '‹'\n size: makeProp(PROP_TYPE_STRING)\n})), 'pagination'); // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n // `-1` signifies no page initially selected\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n currentPage = currentPage > 0 ? currentPage : -1;\n return {\n currentPage: currentPage,\n localNumberOfPages: 1,\n localLimit: DEFAULT_LIMIT\n };\n },\n computed: {\n btnSize: function btnSize() {\n var size = this.size;\n return size ? \"pagination-\".concat(size) : '';\n },\n alignment: function alignment() {\n var align = this.align;\n\n if (align === 'center') {\n return 'justify-content-center';\n } else if (align === 'end' || align === 'right') {\n return 'justify-content-end';\n } else if (align === 'fill') {\n // The page-items will also have 'flex-fill' added\n // We add text centering to make the button appearance better in fill mode\n return 'text-center';\n }\n\n return '';\n },\n styleClass: function styleClass() {\n return this.pills ? 'b-pagination-pills' : '';\n },\n computedCurrentPage: function computedCurrentPage() {\n return sanitizeCurrentPage(this.currentPage, this.localNumberOfPages);\n },\n paginationParams: function paginationParams() {\n // Determine if we should show the the ellipsis\n var limit = this.localLimit,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage,\n hideEllipsis = this.hideEllipsis,\n firstNumber = this.firstNumber,\n lastNumber = this.lastNumber;\n var showFirstDots = false;\n var showLastDots = false;\n var numberOfLinks = limit;\n var startNumber = 1;\n\n if (numberOfPages <= limit) {\n // Special case: Less pages available than the limit of displayed pages\n numberOfLinks = numberOfPages;\n } else if (currentPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || lastNumber) {\n showLastDots = true;\n numberOfLinks = limit - (firstNumber ? 0 : 1);\n }\n\n numberOfLinks = mathMin(numberOfLinks, limit);\n } else if (numberOfPages - currentPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || firstNumber) {\n showFirstDots = true;\n numberOfLinks = limit - (lastNumber ? 0 : 1);\n }\n\n startNumber = numberOfPages - numberOfLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (limit > ELLIPSIS_THRESHOLD) {\n numberOfLinks = limit - (hideEllipsis ? 0 : 2);\n showFirstDots = !!(!hideEllipsis || firstNumber);\n showLastDots = !!(!hideEllipsis || lastNumber);\n }\n\n startNumber = currentPage - mathFloor(numberOfLinks / 2);\n } // Sanity checks\n\n /* istanbul ignore if */\n\n\n if (startNumber < 1) {\n startNumber = 1;\n showFirstDots = false;\n } else if (startNumber > numberOfPages - numberOfLinks) {\n startNumber = numberOfPages - numberOfLinks + 1;\n showLastDots = false;\n }\n\n if (showFirstDots && firstNumber && startNumber < 4) {\n numberOfLinks = numberOfLinks + 2;\n startNumber = 1;\n showFirstDots = false;\n }\n\n var lastPageNumber = startNumber + numberOfLinks - 1;\n\n if (showLastDots && lastNumber && lastPageNumber > numberOfPages - 3) {\n numberOfLinks = numberOfLinks + (lastPageNumber === numberOfPages - 2 ? 2 : 3);\n showLastDots = false;\n } // Special handling for lower limits (where ellipsis are never shown)\n\n\n if (limit <= ELLIPSIS_THRESHOLD) {\n if (firstNumber && startNumber === 1) {\n numberOfLinks = mathMin(numberOfLinks + 1, numberOfPages, limit + 1);\n } else if (lastNumber && numberOfPages === startNumber + numberOfLinks - 1) {\n startNumber = mathMax(startNumber - 1, 1);\n numberOfLinks = mathMin(numberOfPages - startNumber + 1, numberOfPages, limit + 1);\n }\n }\n\n numberOfLinks = mathMin(numberOfLinks, numberOfPages - startNumber + 1);\n return {\n showFirstDots: showFirstDots,\n showLastDots: showLastDots,\n numberOfLinks: numberOfLinks,\n startNumber: startNumber\n };\n },\n pageList: function pageList() {\n // Generates the pageList array\n var _this$paginationParam = this.paginationParams,\n numberOfLinks = _this$paginationParam.numberOfLinks,\n startNumber = _this$paginationParam.startNumber;\n var currentPage = this.computedCurrentPage; // Generate list of page numbers\n\n var pages = makePageArray(startNumber, numberOfLinks); // We limit to a total of 3 page buttons on XS screens\n // So add classes to page links to hide them for XS breakpoint\n // Note: Ellipsis will also be hidden on XS screens\n // TODO: Make this visual limit configurable based on breakpoint(s)\n\n if (pages.length > 3) {\n var idx = currentPage - startNumber; // THe following is a bootstrap-vue custom utility class\n\n var classes = 'bv-d-xs-down-none';\n\n if (idx === 0) {\n // Keep leftmost 3 buttons visible when current page is first page\n for (var i = 3; i < pages.length; i++) {\n pages[i].classes = classes;\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible when current page is last page\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].classes = classes;\n }\n } else {\n // Hide all except current page, current page - 1 and current page + 1\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n // hide some left button(s)\n pages[_i2].classes = classes;\n }\n\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n // hide some right button(s)\n pages[_i3].classes = classes;\n }\n }\n }\n\n return pages;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = sanitizeCurrentPage(newValue, this.localNumberOfPages);\n }\n }), _defineProperty(_watch, \"currentPage\", function currentPage(newValue, oldValue) {\n if (newValue !== oldValue) {\n // Emit `null` if no page selected\n this.$emit(MODEL_EVENT_NAME, newValue > 0 ? newValue : null);\n }\n }), _defineProperty(_watch, \"limit\", function limit(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localLimit = sanitizeLimit(newValue);\n }\n }), _watch),\n created: function created() {\n var _this = this;\n\n // Set our default values in data\n this.localLimit = sanitizeLimit(this.limit);\n this.$nextTick(function () {\n // Sanity check\n _this.currentPage = _this.currentPage > _this.localNumberOfPages ? _this.localNumberOfPages : _this.currentPage;\n });\n },\n methods: {\n handleKeyNav: function handleKeyNav(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n /* istanbul ignore if */\n\n if (this.isNav) {\n // We disable left/right keyboard navigation in ``\n return;\n }\n\n if (keyCode === CODE_LEFT || keyCode === CODE_UP) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusFirst() : this.focusPrev();\n } else if (keyCode === CODE_RIGHT || keyCode === CODE_DOWN) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusLast() : this.focusNext();\n }\n },\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('button.page-link, a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this2.getButtons().find(function (el) {\n return toInteger(getAttr(el, 'aria-posinset'), 0) === _this2.computedCurrentPage;\n });\n\n if (!attemptFocus(btn)) {\n // Fallback if current page is not in button list\n _this2.focusFirst();\n }\n });\n },\n focusFirst: function focusFirst() {\n var _this3 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this3.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusLast: function focusLast() {\n var _this4 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this4.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusPrev: function focusPrev() {\n var _this5 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this5.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index > 0 && !isDisabled(buttons[index - 1])) {\n attemptFocus(buttons[index - 1]);\n }\n });\n },\n focusNext: function focusNext() {\n var _this6 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this6.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index < buttons.length - 1 && !isDisabled(buttons[index + 1])) {\n attemptFocus(buttons[index + 1]);\n }\n });\n }\n },\n render: function render(h) {\n var _this7 = this;\n\n var disabled = this.disabled,\n labelPage = this.labelPage,\n ariaLabel = this.ariaLabel,\n isNav = this.isNav,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage;\n var pageNumbers = this.pageList.map(function (p) {\n return p.number;\n });\n var _this$paginationParam2 = this.paginationParams,\n showFirstDots = _this$paginationParam2.showFirstDots,\n showLastDots = _this$paginationParam2.showLastDots;\n var fill = this.align === 'fill';\n var $buttons = []; // Helper function and flag\n\n var isActivePage = function isActivePage(pageNumber) {\n return pageNumber === currentPage;\n };\n\n var noCurrentPage = this.currentPage < 1; // Factory function for prev/next/first/last buttons\n\n var makeEndBtn = function makeEndBtn(linkTo, ariaLabel, btnSlot, btnText, btnClass, pageTest, key) {\n var isDisabled = disabled || isActivePage(pageTest) || noCurrentPage || linkTo < 1 || linkTo > numberOfPages;\n var pageNumber = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo;\n var scope = {\n disabled: isDisabled,\n page: pageNumber,\n index: pageNumber - 1\n };\n var $btnContent = _this7.normalizeSlot(btnSlot, scope) || toString(btnText) || h();\n var $inner = h(isDisabled ? 'span' : isNav ? BLink : 'button', {\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !isDisabled && fill\n },\n props: isDisabled || !isNav ? {} : _this7.linkProps(linkTo),\n attrs: {\n role: isNav ? null : 'menuitem',\n type: isNav || isDisabled ? null : 'button',\n tabindex: isDisabled || isNav ? null : '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-disabled': isDisabled ? 'true' : null\n },\n on: isDisabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, linkTo);\n },\n keydown: onSpaceKey\n }\n }, [$btnContent]);\n return h('li', {\n key: key,\n staticClass: 'page-item',\n class: [{\n disabled: isDisabled,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !isDisabled\n }, btnClass],\n attrs: {\n role: isNav ? null : 'presentation',\n 'aria-hidden': isDisabled ? 'true' : null\n }\n }, [$inner]);\n }; // Ellipsis factory\n\n\n var makeEllipsis = function makeEllipsis(isLast) {\n return h('li', {\n staticClass: 'page-item',\n class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : '', _this7.ellipsisClass],\n attrs: {\n role: 'separator'\n },\n key: \"ellipsis-\".concat(isLast ? 'last' : 'first')\n }, [h('span', {\n staticClass: 'page-link'\n }, [_this7.normalizeSlot(SLOT_NAME_ELLIPSIS_TEXT) || toString(_this7.ellipsisText) || h()])]);\n }; // Page button factory\n\n\n var makePageButton = function makePageButton(page, idx) {\n var pageNumber = page.number;\n var active = isActivePage(pageNumber) && !noCurrentPage; // Active page will have tabindex of 0, or if no current page and first page button\n\n var tabIndex = disabled ? null : active || noCurrentPage && idx === 0 ? '0' : '-1';\n var attrs = {\n role: isNav ? null : 'menuitemradio',\n type: isNav || disabled ? null : 'button',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-label': hasPropFunction(labelPage) ?\n /* istanbul ignore next */\n labelPage(pageNumber) : \"\".concat(isFunction(labelPage) ? labelPage() : labelPage, \" \").concat(pageNumber),\n 'aria-checked': isNav ? null : active ? 'true' : 'false',\n 'aria-current': isNav && active ? 'page' : null,\n 'aria-posinset': isNav ? null : pageNumber,\n 'aria-setsize': isNav ? null : numberOfPages,\n // ARIA \"roving tabindex\" method (except in `isNav` mode)\n tabindex: isNav ? null : tabIndex\n };\n var btnContent = toString(_this7.makePage(pageNumber));\n var scope = {\n page: pageNumber,\n index: pageNumber - 1,\n content: btnContent,\n active: active,\n disabled: disabled\n };\n var $inner = h(disabled ? 'span' : isNav ? BLink : 'button', {\n props: disabled || !isNav ? {} : _this7.linkProps(pageNumber),\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !disabled && fill\n },\n attrs: attrs,\n on: disabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, pageNumber);\n },\n keydown: onSpaceKey\n }\n }, [_this7.normalizeSlot(SLOT_NAME_PAGE, scope) || btnContent]);\n return h('li', {\n staticClass: 'page-item',\n class: [{\n disabled: disabled,\n active: active,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !disabled\n }, page.classes, _this7.pageClass],\n attrs: {\n role: isNav ? null : 'presentation'\n },\n key: \"page-\".concat(pageNumber)\n }, [$inner]);\n }; // Goto first page button\n // Don't render button when `hideGotoEndButtons` or `firstNumber` is set\n\n\n var $firstPageBtn = h();\n\n if (!this.firstNumber && !this.hideGotoEndButtons) {\n $firstPageBtn = makeEndBtn(1, this.labelFirstPage, SLOT_NAME_FIRST_TEXT, this.firstText, this.firstClass, 1, 'pagination-goto-first');\n }\n\n $buttons.push($firstPageBtn); // Goto previous page button\n\n $buttons.push(makeEndBtn(currentPage - 1, this.labelPrevPage, SLOT_NAME_PREV_TEXT, this.prevText, this.prevClass, 1, 'pagination-goto-prev')); // Show first (1) button?\n\n $buttons.push(this.firstNumber && pageNumbers[0] !== 1 ? makePageButton({\n number: 1\n }, 0) : h()); // First ellipsis\n\n $buttons.push(showFirstDots ? makeEllipsis(false) : h()); // Individual page links\n\n this.pageList.forEach(function (page, idx) {\n var offset = showFirstDots && _this7.firstNumber && pageNumbers[0] !== 1 ? 1 : 0;\n $buttons.push(makePageButton(page, idx + offset));\n }); // Last ellipsis\n\n $buttons.push(showLastDots ? makeEllipsis(true) : h()); // Show last page button?\n\n $buttons.push(this.lastNumber && pageNumbers[pageNumbers.length - 1] !== numberOfPages ? makePageButton({\n number: numberOfPages\n }, -1) : h()); // Goto next page button\n\n $buttons.push(makeEndBtn(currentPage + 1, this.labelNextPage, SLOT_NAME_NEXT_TEXT, this.nextText, this.nextClass, numberOfPages, 'pagination-goto-next')); // Goto last page button\n // Don't render button when `hideGotoEndButtons` or `lastNumber` is set\n\n var $lastPageBtn = h();\n\n if (!this.lastNumber && !this.hideGotoEndButtons) {\n $lastPageBtn = makeEndBtn(numberOfPages, this.labelLastPage, SLOT_NAME_LAST_TEXT, this.lastText, this.lastClass, numberOfPages, 'pagination-goto-last');\n }\n\n $buttons.push($lastPageBtn); // Assemble the pagination buttons\n\n var $pagination = h('ul', {\n staticClass: 'pagination',\n class: ['b-pagination', this.btnSize, this.alignment, this.styleClass],\n attrs: {\n role: isNav ? null : 'menubar',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-label': isNav ? null : ariaLabel || null\n },\n // We disable keyboard left/right nav when ``\n on: isNav ? {} : {\n keydown: this.handleKeyNav\n },\n ref: 'ul'\n }, $buttons); // If we are ``, wrap in `` wrapper\n\n if (isNav) {\n return h('nav', {\n attrs: {\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-hidden': disabled ? 'true' : 'false',\n 'aria-label': isNav ? ariaLabel || null : null\n }\n }, [$pagination]);\n }\n\n return $pagination;\n }\n});","import { BOverlay } from './overlay';\nimport { pluginFactory } from '../../utils/plugins';\nvar OverlayPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BOverlay: BOverlay\n }\n});\nexport { OverlayPlugin, BOverlay };","function 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\nimport { Vue } from '../../vue';\nimport { NAME_PAGINATION } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_PAGE_CLICK } from '../../constants/events';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, isVisible } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathCeil, mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, paginationMixin, props as paginationProps } from '../../mixins/pagination'; // --- Constants ---\n\nvar DEFAULT_PER_PAGE = 20;\nvar DEFAULT_TOTAL_ROWS = 0; // --- Helper methods ---\n// Sanitize the provided per page number (converting to a number)\n\nvar sanitizePerPage = function sanitizePerPage(value) {\n return mathMax(toInteger(value) || DEFAULT_PER_PAGE, 1);\n}; // Sanitize the provided total rows number (converting to a number)\n\n\nvar sanitizeTotalRows = function sanitizeTotalRows(value) {\n return mathMax(toInteger(value) || DEFAULT_TOTAL_ROWS, 0);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, paginationProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_PER_PAGE),\n totalRows: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_TOTAL_ROWS)\n})), NAME_PAGINATION); // --- Main component ---\n// @vue/component\n\nexport var BPagination = /*#__PURE__*/Vue.extend({\n name: NAME_PAGINATION,\n // The render function is brought in via the `paginationMixin`\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = mathCeil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage));\n return result < 1 ? 1 : result;\n },\n // Used for watching changes to `perPage` and `numberOfPages`\n pageSizeNumberOfPages: function pageSizeNumberOfPages() {\n return {\n perPage: sanitizePerPage(this.perPage),\n totalRows: sanitizeTotalRows(this.totalRows),\n numberOfPages: this.numberOfPages\n };\n }\n },\n watch: {\n pageSizeNumberOfPages: function pageSizeNumberOfPages(newValue, oldValue) {\n if (!isUndefinedOrNull(oldValue)) {\n if (newValue.perPage !== oldValue.perPage && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n this.currentPage = 1;\n } else if (newValue.numberOfPages !== oldValue.numberOfPages && this.currentPage > newValue.numberOfPages) {\n // If `numberOfPages` changes and is less than\n // the `currentPage` number, reset to page 1\n this.currentPage = 1;\n }\n }\n\n this.localNumberOfPages = newValue.numberOfPages;\n }\n },\n created: function created() {\n var _this = this;\n\n // Set the initial page count\n this.localNumberOfPages = this.numberOfPages; // Set the initial page value\n\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n\n if (currentPage > 0) {\n this.currentPage = currentPage;\n } else {\n this.$nextTick(function () {\n // If this value parses to `NaN` or a value less than `1`\n // trigger an initial emit of `null` if no page specified\n _this.currentPage = 0;\n });\n }\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(event, pageNumber) {\n var _this2 = this;\n\n // Dont do anything if clicking the current active page\n if (pageNumber === this.currentPage) {\n return;\n }\n\n var target = event.target; // Emit a user-cancelable `page-click` event\n\n var clickEvent = new BvEvent(EVENT_NAME_PAGE_CLICK, {\n cancelable: true,\n vueTarget: this,\n target: target\n });\n this.$emit(clickEvent.type, clickEvent, pageNumber);\n\n if (clickEvent.defaultPrevented) {\n return;\n } // Update the `v-model`\n\n\n this.currentPage = pageNumber; // Emit event triggered by user interaction\n\n this.$emit(EVENT_NAME_CHANGE, this.currentPage); // Keep the current button focused if possible\n\n this.$nextTick(function () {\n if (isVisible(target) && _this2.$el.contains(target)) {\n attemptFocus(target);\n } else {\n _this2.focusCurrent();\n }\n });\n },\n makePage: function makePage(pageNum) {\n return pageNum;\n },\n\n /* istanbul ignore next */\n linkProps: function linkProps() {\n // No props, since we render a plain button\n return {};\n }\n }\n});","import { BPagination } from './pagination';\nimport { pluginFactory } from '../../utils/plugins';\nvar PaginationPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BPagination: BPagination\n }\n});\nexport { PaginationPlugin, BPagination };","function 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\nimport { Vue } from '../../vue';\nimport { NAME_PAGINATION_NAV } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_PAGE_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptBlur, requestAF } from '../../utils/dom';\nimport { isArray, isUndefined, isObject } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { computeHref, parseQuery } from '../../utils/router';\nimport { toString } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { paginationMixin, props as paginationProps } from '../../mixins/pagination';\nimport { props as BLinkProps } from '../link/link'; // --- Helper methods ---\n// Sanitize the provided number of pages (converting to a number)\n\nexport var sanitizeNumberOfPages = function sanitizeNumberOfPages(value) {\n return mathMax(toInteger(value, 0), 1);\n}; // --- Props ---\n\nvar _linkProps = omit(BLinkProps, ['event', 'routerTag']);\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, paginationProps), _linkProps), {}, {\n baseUrl: makeProp(PROP_TYPE_STRING, '/'),\n linkGen: makeProp(PROP_TYPE_FUNCTION),\n // Disable auto page number detection if `true`\n noPageDetect: makeProp(PROP_TYPE_BOOLEAN, false),\n numberOfPages: makeProp(PROP_TYPE_NUMBER_STRING, 1,\n /* istanbul ignore next */\n function (value) {\n var number = toInteger(value, 0);\n\n if (number < 1) {\n warn('Prop \"number-of-pages\" must be a number greater than \"0\"', NAME_PAGINATION_NAV);\n return false;\n }\n\n return true;\n }),\n pageGen: makeProp(PROP_TYPE_FUNCTION),\n // Optional array of page links\n pages: makeProp(PROP_TYPE_ARRAY),\n useRouter: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_PAGINATION_NAV); // --- Main component ---\n// @vue/component\n\nexport var BPaginationNav = /*#__PURE__*/Vue.extend({\n name: NAME_PAGINATION_NAV,\n // The render function is brought in via the pagination mixin\n mixins: [paginationMixin],\n props: props,\n computed: {\n // Used by render function to trigger wrapping in '' element\n isNav: function isNav() {\n return true;\n },\n computedValue: function computedValue() {\n // Returns the value prop as a number or `null` if undefined or < 1\n var value = toInteger(this.value, 0);\n return value < 1 ? null : value;\n }\n },\n watch: {\n numberOfPages: function numberOfPages() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setNumberOfPages();\n });\n },\n pages: function pages() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setNumberOfPages();\n });\n }\n },\n created: function created() {\n this.setNumberOfPages();\n },\n mounted: function mounted() {\n var _this3 = this;\n\n if (this.$router) {\n // We only add the watcher if vue router is detected\n this.$watch('$route', function () {\n _this3.$nextTick(function () {\n requestAF(function () {\n _this3.guessCurrentPage();\n });\n });\n });\n }\n },\n methods: {\n setNumberOfPages: function setNumberOfPages() {\n var _this4 = this;\n\n if (isArray(this.pages) && this.pages.length > 0) {\n this.localNumberOfPages = this.pages.length;\n } else {\n this.localNumberOfPages = sanitizeNumberOfPages(this.numberOfPages);\n }\n\n this.$nextTick(function () {\n _this4.guessCurrentPage();\n });\n },\n onClick: function onClick(event, pageNumber) {\n var _this5 = this;\n\n // Dont do anything if clicking the current active page\n if (pageNumber === this.currentPage) {\n return;\n }\n\n var target = event.currentTarget || event.target; // Emit a user-cancelable `page-click` event\n\n var clickEvent = new BvEvent(EVENT_NAME_PAGE_CLICK, {\n cancelable: true,\n vueTarget: this,\n target: target\n });\n this.$emit(clickEvent.type, clickEvent, pageNumber);\n\n if (clickEvent.defaultPrevented) {\n return;\n } // Update the `v-model`\n // Done in in requestAF() to allow browser to complete the\n // native browser click handling of a link\n\n\n requestAF(function () {\n _this5.currentPage = pageNumber;\n\n _this5.$emit(EVENT_NAME_CHANGE, pageNumber);\n }); // Emulate native link click page reloading behaviour by blurring the\n // paginator and returning focus to the document\n // Done in a `nextTick()` to ensure rendering complete\n\n this.$nextTick(function () {\n attemptBlur(target);\n });\n },\n getPageInfo: function getPageInfo(pageNumber) {\n if (!isArray(this.pages) || this.pages.length === 0 || isUndefined(this.pages[pageNumber - 1])) {\n var link = \"\".concat(this.baseUrl).concat(pageNumber);\n return {\n link: this.useRouter ? {\n path: link\n } : link,\n text: toString(pageNumber)\n };\n }\n\n var info = this.pages[pageNumber - 1];\n\n if (isObject(info)) {\n var _link = info.link;\n return {\n // Normalize link for router use\n link: isObject(_link) ? _link : this.useRouter ? {\n path: _link\n } : _link,\n // Make sure text has a value\n text: toString(info.text || pageNumber)\n };\n } else {\n return {\n link: toString(info),\n text: toString(pageNumber)\n };\n }\n },\n makePage: function makePage(pageNumber) {\n var pageGen = this.pageGen;\n var info = this.getPageInfo(pageNumber);\n\n if (hasPropFunction(pageGen)) {\n return pageGen(pageNumber, info);\n }\n\n return info.text;\n },\n makeLink: function makeLink(pageNumber) {\n var linkGen = this.linkGen;\n var info = this.getPageInfo(pageNumber);\n\n if (hasPropFunction(linkGen)) {\n return linkGen(pageNumber, info);\n }\n\n return info.link;\n },\n linkProps: function linkProps(pageNumber) {\n var props = pluckProps(_linkProps, this);\n var link = this.makeLink(pageNumber);\n\n if (this.useRouter || isObject(link)) {\n props.to = link;\n } else {\n props.href = link;\n }\n\n return props;\n },\n resolveLink: function resolveLink() {\n var to = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n // Given a to (or href string), convert to normalized route-like structure\n // Works only client side!\n var link;\n\n try {\n // Convert the `to` to a HREF via a temporary `a` tag\n link = document.createElement('a');\n link.href = computeHref({\n to: to\n }, 'a', '/', '/'); // We need to add the anchor to the document to make sure the\n // `pathname` is correctly detected in any browser (i.e. IE)\n\n document.body.appendChild(link); // Once href is assigned, the link will be normalized to the full URL bits\n\n var _link2 = link,\n pathname = _link2.pathname,\n hash = _link2.hash,\n search = _link2.search; // Remove link from document\n\n document.body.removeChild(link); // Return the location in a route-like object\n\n return {\n path: pathname,\n hash: hash,\n query: parseQuery(search)\n };\n } catch (e) {\n /* istanbul ignore next */\n try {\n link && link.parentNode && link.parentNode.removeChild(link);\n } catch (_unused) {}\n /* istanbul ignore next */\n\n\n return {};\n }\n },\n resolveRoute: function resolveRoute() {\n var to = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n // Given a to (or href string), convert to normalized route location structure\n // Works only when router available!\n try {\n var route = this.$router.resolve(to, this.$route).route;\n return {\n path: route.path,\n hash: route.hash,\n query: route.query\n };\n } catch (e) {\n /* istanbul ignore next */\n return {};\n }\n },\n guessCurrentPage: function guessCurrentPage() {\n var $router = this.$router,\n $route = this.$route;\n var guess = this.computedValue; // This section only occurs if we are client side, or server-side with `$router`\n\n if (!this.noPageDetect && !guess && (IS_BROWSER || !IS_BROWSER && $router)) {\n // Current route (if router available)\n var currentRoute = $router && $route ? {\n path: $route.path,\n hash: $route.hash,\n query: $route.query\n } : {}; // Current page full HREF (if client side)\n // Can't be done as a computed prop!\n\n var loc = IS_BROWSER ? window.location || document.location : null;\n var currentLink = loc ? {\n path: loc.pathname,\n hash: loc.hash,\n query: parseQuery(loc.search)\n } :\n /* istanbul ignore next */\n {}; // Loop through the possible pages looking for a match until found\n\n for (var pageNumber = 1; !guess && pageNumber <= this.localNumberOfPages; pageNumber++) {\n var to = this.makeLink(pageNumber);\n\n if ($router && (isObject(to) || this.useRouter)) {\n // Resolve the page via the `$router`\n guess = looseEqual(this.resolveRoute(to), currentRoute) ? pageNumber : null;\n } else if (IS_BROWSER) {\n // If no `$router` available (or `!this.useRouter` when `to` is a string)\n // we compare using parsed URIs\n guess = looseEqual(this.resolveLink(to), currentLink) ? pageNumber : null;\n } else {\n // Probably SSR, but no `$router` so we can't guess,\n // so lets break out of the loop early\n\n /* istanbul ignore next */\n guess = -1;\n }\n }\n } // We set `currentPage` to `0` to trigger an `$emit('input', null)`\n // As the default for `currentPage` is `-1` when no value is specified\n // Valid page numbers are greater than `0`\n\n\n this.currentPage = guess > 0 ? guess : 0;\n }\n }\n});","import { BPaginationNav } from './pagination-nav';\nimport { pluginFactory } from '../../utils/plugins';\nvar PaginationNavPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BPaginationNav: BPaginationNav\n }\n});\nexport { PaginationNavPlugin, BPaginationNav };","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\n }\n});","function 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\nimport { Vue } from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","function 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\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvent = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvent); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvent.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvent = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvent);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvent.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element loses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n var tip = _this8.getTemplateElement();\n\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","var _makePropsConfigurabl, _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_TOOLTIP } from '../../constants/components';\nimport { EVENT_NAME_CLOSE, EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OPEN, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_OBJECT_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement, SVGElement } from '../../constants/safe-types';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { pick } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTooltip } from './helpers/bv-tooltip'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ENABLED = 'disabled';\nvar MODEL_EVENT_NAME_ENABLED = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ENABLED;\nvar MODEL_PROP_NAME_SHOW = 'show';\nvar MODEL_EVENT_NAME_SHOW = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW; // --- Props ---\n\nexport var props = makePropsConfigurable((_makePropsConfigurabl = {\n // String: scrollParent, window, or viewport\n // Element: element reference\n // Object: Vue component\n boundary: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING], 'scrollParent'),\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 50),\n // String: HTML ID of container, if null body is used (default)\n // HTMLElement: element reference reference\n // Object: Vue Component\n container: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n customClass: makeProp(PROP_TYPE_STRING),\n delay: makeProp(PROP_TYPE_NUMBER_OBJECT_STRING, 50)\n}, _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_ENABLED, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"fallbackPlacement\", makeProp(PROP_TYPE_ARRAY_STRING, 'flip')), _defineProperty(_makePropsConfigurabl, \"id\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"noFade\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"noninteractive\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"offset\", makeProp(PROP_TYPE_NUMBER_STRING, 0)), _defineProperty(_makePropsConfigurabl, \"placement\", makeProp(PROP_TYPE_STRING, 'top')), _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_SHOW, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"target\", makeProp([HTMLElement, SVGElement, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING], undefined, true)), _defineProperty(_makePropsConfigurabl, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"triggers\", makeProp(PROP_TYPE_ARRAY_STRING, 'hover focus')), _defineProperty(_makePropsConfigurabl, \"variant\", makeProp(PROP_TYPE_STRING)), _makePropsConfigurabl), NAME_TOOLTIP); // --- Main component ---\n// @vue/component\n\nexport var BTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP,\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localShow: this[MODEL_PROP_NAME_SHOW],\n localTitle: '',\n localContent: ''\n };\n },\n computed: {\n // Data that will be passed to the template and popper\n templateData: function templateData() {\n return _objectSpread({\n title: this.localTitle,\n content: this.localContent,\n interactive: !this.noninteractive\n }, pick(this.$props, ['boundary', 'boundaryPadding', 'container', 'customClass', 'delay', 'fallbackPlacement', 'id', 'noFade', 'offset', 'placement', 'target', 'target', 'triggers', 'variant', MODEL_PROP_NAME_ENABLED]));\n },\n // Used to watch for changes to the title and content props\n templateTitleContent: function templateTitleContent() {\n var title = this.title,\n content = this.content;\n return {\n title: title,\n content: content\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_SHOW, function (newValue, oldValue) {\n if (newValue !== oldValue && newValue !== this.localShow && this.$_toolpop) {\n if (newValue) {\n this.$_toolpop.show();\n } else {\n // We use `forceHide()` to override any active triggers\n this.$_toolpop.forceHide();\n }\n }\n }), _defineProperty(_watch, MODEL_PROP_NAME_ENABLED, function (newValue) {\n if (newValue) {\n this.doDisable();\n } else {\n this.doEnable();\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n // TODO: May need to be done in a `$nextTick()`\n this.$emit(MODEL_EVENT_NAME_SHOW, newValue);\n }), _defineProperty(_watch, \"templateData\", function templateData() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.$_toolpop) {\n _this.$_toolpop.updateData(_this.templateData);\n }\n });\n }), _defineProperty(_watch, \"templateTitleContent\", function templateTitleContent() {\n this.$nextTick(this.updateContent);\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_toolpop = null;\n },\n updated: function updated() {\n // Update the `propData` object\n // Done in a `$nextTick()` to ensure slot(s) have updated\n this.$nextTick(this.updateContent);\n },\n beforeDestroy: function beforeDestroy() {\n // Shutdown our local event listeners\n this.$off(EVENT_NAME_OPEN, this.doOpen);\n this.$off(EVENT_NAME_CLOSE, this.doClose);\n this.$off(EVENT_NAME_DISABLE, this.doDisable);\n this.$off(EVENT_NAME_ENABLE, this.doEnable); // Destroy the tip instance\n\n if (this.$_toolpop) {\n this.$_toolpop.$destroy();\n this.$_toolpop = null;\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n // Instantiate a new BVTooltip instance\n // Done in a `$nextTick()` to ensure DOM has completed rendering\n // so that target can be found\n this.$nextTick(function () {\n // Load the on demand child instance\n var Component = _this2.getComponent(); // Ensure we have initial content\n\n\n _this2.updateContent(); // Pass down the scoped style attribute if available\n\n\n var scopeId = getScopeId(_this2) || getScopeId(_this2.$parent); // Create the instance\n\n var $toolpop = _this2.$_toolpop = new Component({\n parent: _this2,\n // Pass down the scoped style ID\n _scopeId: scopeId || undefined\n }); // Set the initial data\n\n $toolpop.updateData(_this2.templateData); // Set listeners\n\n $toolpop.$on(EVENT_NAME_SHOW, _this2.onShow);\n $toolpop.$on(EVENT_NAME_SHOWN, _this2.onShown);\n $toolpop.$on(EVENT_NAME_HIDE, _this2.onHide);\n $toolpop.$on(EVENT_NAME_HIDDEN, _this2.onHidden);\n $toolpop.$on(EVENT_NAME_DISABLED, _this2.onDisabled);\n $toolpop.$on(EVENT_NAME_ENABLED, _this2.onEnabled); // Initially disabled?\n\n if (_this2[MODEL_PROP_NAME_ENABLED]) {\n // Initially disabled\n _this2.doDisable();\n } // Listen to open signals from others\n\n\n _this2.$on(EVENT_NAME_OPEN, _this2.doOpen); // Listen to close signals from others\n\n\n _this2.$on(EVENT_NAME_CLOSE, _this2.doClose); // Listen to disable signals from others\n\n\n _this2.$on(EVENT_NAME_DISABLE, _this2.doDisable); // Listen to enable signals from others\n\n\n _this2.$on(EVENT_NAME_ENABLE, _this2.doEnable); // Initially show tooltip?\n\n\n if (_this2.localShow) {\n $toolpop.show();\n }\n });\n },\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVTooltip;\n },\n updateContent: function updateContent() {\n // Overridden by BPopover\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function reference by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setTitle(this.normalizeSlot() || this.title);\n },\n // Helper methods for `updateContent()`\n setTitle: function setTitle(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localTitle !== value) {\n this.localTitle = value;\n }\n },\n setContent: function setContent(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localContent !== value) {\n this.localContent = value;\n }\n },\n // --- Template event handlers ---\n onShow: function onShow(bvEvent) {\n // Placeholder\n this.$emit(EVENT_NAME_SHOW, bvEvent);\n\n if (bvEvent) {\n this.localShow = !bvEvent.defaultPrevented;\n }\n },\n onShown: function onShown(bvEvent) {\n // Tip is now showing\n this.localShow = true;\n this.$emit(EVENT_NAME_SHOWN, bvEvent);\n },\n onHide: function onHide(bvEvent) {\n this.$emit(EVENT_NAME_HIDE, bvEvent);\n },\n onHidden: function onHidden(bvEvent) {\n // Tip is no longer showing\n this.$emit(EVENT_NAME_HIDDEN, bvEvent);\n this.localShow = false;\n },\n onDisabled: function onDisabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `disabled` instead of `disable`\n if (bvEvent && bvEvent.type === EVENT_NAME_DISABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, true);\n this.$emit(EVENT_NAME_DISABLED, bvEvent);\n }\n },\n onEnabled: function onEnabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `enabled` instead of `enable`\n if (bvEvent && bvEvent.type === EVENT_NAME_ENABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, false);\n this.$emit(EVENT_NAME_ENABLED, bvEvent);\n }\n },\n // --- Local event listeners ---\n doOpen: function doOpen() {\n !this.localShow && this.$_toolpop && this.$_toolpop.show();\n },\n doClose: function doClose() {\n this.localShow && this.$_toolpop && this.$_toolpop.hide();\n },\n doDisable: function doDisable() {\n this.$_toolpop && this.$_toolpop.disable();\n },\n doEnable: function doEnable() {\n this.$_toolpop && this.$_toolpop.enable();\n }\n },\n render: function render(h) {\n // Always renders a comment node\n // TODO:\n // Future: Possibly render a target slot (single root element)\n // which we can apply the listeners to (pass `this.$el` to BVTooltip)\n return h();\n }\n});","import { Vue } from '../../../vue';\nimport { NAME_POPOVER_TEMPLATE } from '../../../constants/components';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVTooltipTemplate } from '../../tooltip/helpers/bv-tooltip-template'; // @vue/component\n\nexport var BVPopoverTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_TEMPLATE,\n extends: BVTooltipTemplate,\n computed: {\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title,\n content = this.content; // Title and content could be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title;\n var $content = isFunction(content) ? content({}) : content; // Directive usage only\n\n var titleDomProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n var contentDomProps = this.html && !isFunction(content) ? {\n innerHTML: content\n } : {};\n return h('div', {\n staticClass: 'popover b-popover',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), isUndefinedOrNull($title) || $title === '' ?\n /* istanbul ignore next */\n h() : h('h3', {\n staticClass: 'popover-header',\n domProps: titleDomProps\n }, [$title]), isUndefinedOrNull($content) || $content === '' ?\n /* istanbul ignore next */\n h() : h('div', {\n staticClass: 'popover-body',\n domProps: contentDomProps\n }, [$content])]);\n }\n }\n});","// Popover \"Class\" (Built as a renderless Vue instance)\n// Inherits from BVTooltip\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { Vue } from '../../../vue';\nimport { NAME_POPOVER_HELPER } from '../../../constants/components';\nimport { BVTooltip } from '../../tooltip/helpers/bv-tooltip';\nimport { BVPopoverTemplate } from './bv-popover-template'; // @vue/component\n\nexport var BVPopover = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_HELPER,\n extends: BVTooltip,\n computed: {\n // Overwrites BVTooltip\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n getTemplate: function getTemplate() {\n // Overwrites BVTooltip\n return BVPopoverTemplate;\n }\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_POPOVER } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BTooltip, props as BTooltipProps } from '../tooltip/tooltip';\nimport { BVPopover } from './helpers/bv-popover';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, BTooltipProps), {}, {\n content: makeProp(PROP_TYPE_STRING),\n placement: makeProp(PROP_TYPE_STRING, 'right'),\n triggers: makeProp(PROP_TYPE_ARRAY_STRING, EVENT_NAME_CLICK)\n})), NAME_POPOVER); // --- Main component ---\n// @vue/component\n\nexport var BPopover = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER,\n extends: BTooltip,\n inheritAttrs: false,\n props: props,\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVPopover;\n },\n updateContent: function updateContent() {\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function references by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setContent(this.normalizeSlot() || this.content);\n this.setTitle(this.normalizeSlot(SLOT_NAME_TITLE) || this.title);\n }\n } // Render function provided by BTooltip\n\n});","function 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\nimport { NAME_POPOVER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVPopover } from '../../components/popover/helpers/bv-popover'; // Key which we use to store tooltip object on element\n\nvar BV_POPOVER = '__BV_Popover__'; // Default trigger\n\nvar DefaultTrigger = 'click'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Popover config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n content: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'right',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n disabled: false,\n id: null,\n html: false,\n delay: getComponentConfig(NAME_POPOVER, 'delay', 50),\n boundary: String(getComponentConfig(NAME_POPOVER, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_POPOVER, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_POPOVER, 'variant'),\n customClass: getComponentConfig(NAME_POPOVER, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is popover content (html optionally supported)\n config.content = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Content generator function\n config.content = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title/content allows HTML\n config.html = true;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of popover\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of popover\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n }\n\n return config;\n}; // Add or update Popover on our element\n\n\nvar applyPopover = function applyPopover(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_POPOVER]) {\n var $parent = vnode.context;\n el[BV_POPOVER] = new BVPopover({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_POPOVER].__bv_prev_data__ = {};\n el[BV_POPOVER].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the popover, we update the title\n // and content if they are functions\n var data = {};\n\n if (isFunction(config.title)) {\n data.title = config.title(el);\n }\n\n if (isFunction(config.content)) {\n data.content = config.content(el);\n }\n\n if (keys(data).length > 0) {\n el[BV_POPOVER].updateData(data);\n }\n });\n }\n\n var data = {\n title: config.title,\n content: config.content,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_POPOVER].__bv_prev_data__;\n el[BV_POPOVER].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // If title/content is a function, we execute it here\n newData[prop] = (prop === 'title' || prop === 'content') && isFunction(data[prop]) ?\n /* istanbul ignore next */\n data[prop](el) : data[prop];\n }\n });\n el[BV_POPOVER].updateData(newData);\n }\n}; // Remove Popover from our element\n\n\nvar removePopover = function removePopover(el) {\n if (el[BV_POPOVER]) {\n el[BV_POPOVER].$destroy();\n el[BV_POPOVER] = null;\n }\n\n delete el[BV_POPOVER];\n}; // Export our directive\n\n\nexport var VBPopover = {\n bind: function bind(el, bindings, vnode) {\n applyPopover(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent endless render/update loops\n vnode.context.$nextTick(function () {\n applyPopover(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removePopover(el);\n }\n};","import { VBPopover } from './popover';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBPopoverPlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBPopover: VBPopover\n }\n});\nexport { VBPopoverPlugin, VBPopover };","import { BPopover } from './popover';\nimport { VBPopoverPlugin } from '../../directives/popover';\nimport { pluginFactory } from '../../utils/plugins';\nvar PopoverPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BPopover: BPopover\n },\n plugins: {\n VBPopoverPlugin: VBPopoverPlugin\n }\n});\nexport { PopoverPlugin, BPopover };","import { Vue } from '../../vue';\nimport { NAME_PROGRESS_BAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { isBoolean } from '../../utils/inspect';\nimport { mathMax, mathPow } from '../../utils/math';\nimport { toFixed, toFloat, toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animated: makeProp(PROP_TYPE_BOOLEAN, null),\n label: makeProp(PROP_TYPE_STRING),\n labelHtml: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, null),\n precision: makeProp(PROP_TYPE_NUMBER_STRING, null),\n showProgress: makeProp(PROP_TYPE_BOOLEAN, null),\n showValue: makeProp(PROP_TYPE_BOOLEAN, null),\n striped: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_PROGRESS_BAR); // --- Main component ---\n// @vue/component\n\nexport var BProgressBar = /*#__PURE__*/Vue.extend({\n name: NAME_PROGRESS_BAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvProgress: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: props,\n computed: {\n progressBarClasses: function progressBarClasses() {\n var computedAnimated = this.computedAnimated,\n computedVariant = this.computedVariant;\n return [computedVariant ? \"bg-\".concat(computedVariant) : '', this.computedStriped || computedAnimated ? 'progress-bar-striped' : '', computedAnimated ? 'progress-bar-animated' : ''];\n },\n progressBarStyles: function progressBarStyles() {\n return {\n width: 100 * (this.computedValue / this.computedMax) + '%'\n };\n },\n computedValue: function computedValue() {\n return toFloat(this.value, 0);\n },\n computedMax: function computedMax() {\n // Prefer our max over parent setting\n // Default to `100` for invalid values (`-x`, `0`, `NaN`)\n var max = toFloat(this.max) || toFloat(this.bvProgress.max, 0);\n return max > 0 ? max : 100;\n },\n computedPrecision: function computedPrecision() {\n // Prefer our precision over parent setting\n // Default to `0` for invalid values (`-x`, `NaN`)\n return mathMax(toInteger(this.precision, toInteger(this.bvProgress.precision, 0)), 0);\n },\n computedProgress: function computedProgress() {\n var precision = this.computedPrecision;\n var p = mathPow(10, precision);\n return toFixed(100 * p * this.computedValue / this.computedMax / p, precision);\n },\n computedVariant: function computedVariant() {\n // Prefer our variant over parent setting\n return this.variant || this.bvProgress.variant;\n },\n computedStriped: function computedStriped() {\n // Prefer our striped over parent setting\n return isBoolean(this.striped) ? this.striped : this.bvProgress.striped || false;\n },\n computedAnimated: function computedAnimated() {\n // Prefer our animated over parent setting\n return isBoolean(this.animated) ? this.animated : this.bvProgress.animated || false;\n },\n computedShowProgress: function computedShowProgress() {\n // Prefer our showProgress over parent setting\n return isBoolean(this.showProgress) ? this.showProgress : this.bvProgress.showProgress || false;\n },\n computedShowValue: function computedShowValue() {\n // Prefer our showValue over parent setting\n return isBoolean(this.showValue) ? this.showValue : this.bvProgress.showValue || false;\n }\n },\n render: function render(h) {\n var label = this.label,\n labelHtml = this.labelHtml,\n computedValue = this.computedValue,\n computedPrecision = this.computedPrecision;\n var $children;\n var domProps = {};\n\n if (this.hasNormalizedSlot()) {\n $children = this.normalizeSlot();\n } else if (label || labelHtml) {\n domProps = htmlOrText(labelHtml, label);\n } else if (this.computedShowProgress) {\n $children = this.computedProgress;\n } else if (this.computedShowValue) {\n $children = toFixed(computedValue, computedPrecision);\n }\n\n return h('div', {\n staticClass: 'progress-bar',\n class: this.progressBarClasses,\n style: this.progressBarStyles,\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': toString(this.computedMax),\n 'aria-valuenow': toFixed(computedValue, computedPrecision)\n },\n domProps: domProps\n }, $children);\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_PROGRESS } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BProgressBar, props as BProgressBarProps } from './progress-bar'; // --- Props ---\n\nvar progressBarProps = omit(BProgressBarProps, ['label', 'labelHtml']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, progressBarProps), {}, {\n animated: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, 100),\n precision: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n showProgress: makeProp(PROP_TYPE_BOOLEAN, false),\n showValue: makeProp(PROP_TYPE_BOOLEAN, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_PROGRESS); // --- Main component ---\n// @vue/component\n\nexport var BProgress = /*#__PURE__*/Vue.extend({\n name: NAME_PROGRESS,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvProgress: this\n };\n },\n props: props,\n computed: {\n progressHeight: function progressHeight() {\n return {\n height: this.height || null\n };\n }\n },\n render: function render(h) {\n var $childNodes = this.normalizeSlot();\n\n if (!$childNodes) {\n $childNodes = h(BProgressBar, {\n props: pluckProps(progressBarProps, this.$props)\n });\n }\n\n return h('div', {\n staticClass: 'progress',\n style: this.progressHeight\n }, [$childNodes]);\n }\n});","var _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_COLLAPSE, NAME_SIDEBAR } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { CODE_ESC } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER, SLOT_NAME_HEADER_CLOSE, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { attemptFocus, contains, getActiveElement, getTabables } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconX } from '../../icons/icons';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar CLASS_NAME = 'b-sidebar';\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n ariaLabelledby: makeProp(PROP_TYPE_STRING),\n // If `true`, shows a basic backdrop\n backdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n backdropVariant: makeProp(PROP_TYPE_STRING, 'dark'),\n bgVariant: makeProp(PROP_TYPE_STRING, 'light'),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // `aria-label` for close button\n closeLabel: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerTag: makeProp(PROP_TYPE_STRING, 'footer'),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnEsc: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnRouteChange: makeProp(PROP_TYPE_BOOLEAN, false),\n noEnforceFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n noHeaderClose: makeProp(PROP_TYPE_BOOLEAN, false),\n noSlide: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n shadow: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sidebarClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING, 'dark'),\n title: makeProp(PROP_TYPE_STRING),\n width: makeProp(PROP_TYPE_STRING),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING)\n})), NAME_SIDEBAR); // --- Render methods ---\n\nvar renderHeaderTitle = function renderHeaderTitle(h, ctx) {\n // Render a empty `` when to title was provided\n var title = ctx.normalizeSlot(SLOT_NAME_TITLE, ctx.slotScope) || ctx.title;\n\n if (!title) {\n return h('span');\n }\n\n return h('strong', {\n attrs: {\n id: ctx.safeId('__title__')\n }\n }, [title]);\n};\n\nvar renderHeaderClose = function renderHeaderClose(h, ctx) {\n if (ctx.noHeaderClose) {\n return h();\n }\n\n var closeLabel = ctx.closeLabel,\n textVariant = ctx.textVariant,\n hide = ctx.hide;\n return h(BButtonClose, {\n props: {\n ariaLabel: closeLabel,\n textVariant: textVariant\n },\n on: {\n click: hide\n },\n ref: 'close-button'\n }, [ctx.normalizeSlot(SLOT_NAME_HEADER_CLOSE) || h(BIconX)]);\n};\n\nvar renderHeader = function renderHeader(h, ctx) {\n if (ctx.noHeader) {\n return h();\n }\n\n var $content = ctx.normalizeSlot(SLOT_NAME_HEADER, ctx.slotScope);\n\n if (!$content) {\n var $title = renderHeaderTitle(h, ctx);\n var $close = renderHeaderClose(h, ctx);\n $content = ctx.right ? [$close, $title] : [$title, $close];\n }\n\n return h(ctx.headerTag, {\n staticClass: \"\".concat(CLASS_NAME, \"-header\"),\n class: ctx.headerClass,\n key: 'header'\n }, $content);\n};\n\nvar renderBody = function renderBody(h, ctx) {\n return h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-body\"),\n class: ctx.bodyClass,\n key: 'body'\n }, [ctx.normalizeSlot(SLOT_NAME_DEFAULT, ctx.slotScope)]);\n};\n\nvar renderFooter = function renderFooter(h, ctx) {\n var $footer = ctx.normalizeSlot(SLOT_NAME_FOOTER, ctx.slotScope);\n\n if (!$footer) {\n return h();\n }\n\n return h(ctx.footerTag, {\n staticClass: \"\".concat(CLASS_NAME, \"-footer\"),\n class: ctx.footerClass,\n key: 'footer'\n }, [$footer]);\n};\n\nvar renderContent = function renderContent(h, ctx) {\n // We render the header even if `lazy` is enabled as it\n // acts as the accessible label for the sidebar\n var $header = renderHeader(h, ctx);\n\n if (ctx.lazy && !ctx.isOpen) {\n return $header;\n }\n\n return [$header, renderBody(h, ctx), renderFooter(h, ctx)];\n};\n\nvar renderBackdrop = function renderBackdrop(h, ctx) {\n if (!ctx.backdrop) {\n return h();\n }\n\n var backdropVariant = ctx.backdropVariant;\n return h('div', {\n directives: [{\n name: 'show',\n value: ctx.localShow\n }],\n staticClass: 'b-sidebar-backdrop',\n class: _defineProperty({}, \"bg-\".concat(backdropVariant), backdropVariant),\n on: {\n click: ctx.onBackdropClick\n }\n });\n}; // --- Main component ---\n// @vue/component\n\n\nexport var BSidebar = /*#__PURE__*/Vue.extend({\n name: NAME_SIDEBAR,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n var visible = !!this[MODEL_PROP_NAME];\n return {\n // Internal `v-model` state\n localShow: visible,\n // For lazy render triggering\n isOpen: visible\n };\n },\n computed: {\n transitionProps: function transitionProps() {\n return this.noSlide ?\n /* istanbul ignore next */\n {\n css: true\n } : {\n css: true,\n enterClass: '',\n enterActiveClass: 'slide',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: 'slide',\n leaveToClass: ''\n };\n },\n slotScope: function slotScope() {\n var hide = this.hide,\n right = this.right,\n visible = this.localShow;\n return {\n hide: hide,\n right: right,\n visible: visible\n };\n },\n hasTitle: function hasTitle() {\n var $scopedSlots = this.$scopedSlots,\n $slots = this.$slots;\n return !this.noHeader && !this.hasNormalizedSlot(SLOT_NAME_HEADER) && !!(this.normalizeSlot(SLOT_NAME_TITLE, this.slotScope, $scopedSlots, $slots) || this.title);\n },\n titleId: function titleId() {\n return this.hasTitle ? this.safeId('__title__') : null;\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n tabindex: '-1',\n role: 'dialog',\n 'aria-modal': this.backdrop ? 'true' : 'false',\n 'aria-hidden': this.localShow ? null : 'true',\n 'aria-label': this.ariaLabel || null,\n 'aria-labelledby': this.ariaLabelledby || this.titleId || null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localShow = newValue;\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState(newValue);\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_watch, \"$route\", function $route() {\n var newValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var oldValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.noCloseOnRouteChange && newValue.fullPath !== oldValue.fullPath) {\n this.hide();\n }\n }), _watch),\n created: function created() {\n // Define non-reactive properties\n this.$_returnFocusEl = null;\n },\n mounted: function mounted() {\n var _this = this;\n\n // Add `$root` listeners\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggle);\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, this.handleSync); // Send out a gratuitous state event to ensure toggle button is synced\n\n this.$nextTick(function () {\n _this.emitState(_this.localShow);\n });\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n this.localShow = false;\n this.$_returnFocusEl = null;\n },\n methods: {\n hide: function hide() {\n this.localShow = false;\n },\n emitState: function emitState() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.localShow;\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, this.safeId(), state);\n },\n emitSync: function emitSync() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.localShow;\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), state);\n },\n handleToggle: function handleToggle(id) {\n // Note `safeId()` can be null until after mount\n if (id && id === this.safeId()) {\n this.localShow = !this.localShow;\n }\n },\n handleSync: function handleSync(id) {\n var _this2 = this;\n\n // Note `safeId()` can be null until after mount\n if (id && id === this.safeId()) {\n this.$nextTick(function () {\n _this2.emitSync(_this2.localShow);\n });\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (!this.noCloseOnEsc && keyCode === CODE_ESC && this.localShow) {\n this.hide();\n }\n },\n onBackdropClick: function onBackdropClick() {\n if (this.localShow && !this.noCloseOnBackdrop) {\n this.hide();\n }\n },\n\n /* istanbul ignore next */\n onTopTrapFocus: function onTopTrapFocus() {\n var tabables = getTabables(this.$refs.content);\n this.enforceFocus(tabables.reverse()[0]);\n },\n\n /* istanbul ignore next */\n onBottomTrapFocus: function onBottomTrapFocus() {\n var tabables = getTabables(this.$refs.content);\n this.enforceFocus(tabables[0]);\n },\n onBeforeEnter: function onBeforeEnter() {\n // Returning focus to `document.body` may cause unwanted scrolls,\n // so we exclude setting focus on body\n this.$_returnFocusEl = getActiveElement(IS_BROWSER ? [document.body] : []); // Trigger lazy render\n\n this.isOpen = true;\n },\n onAfterEnter: function onAfterEnter(el) {\n if (!contains(el, getActiveElement())) {\n this.enforceFocus(el);\n }\n\n this.$emit(EVENT_NAME_SHOWN);\n },\n onAfterLeave: function onAfterLeave() {\n this.enforceFocus(this.$_returnFocusEl);\n this.$_returnFocusEl = null; // Trigger lazy render\n\n this.isOpen = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n enforceFocus: function enforceFocus(el) {\n if (!this.noEnforceFocus) {\n attemptFocus(el);\n }\n }\n },\n render: function render(h) {\n var _ref;\n\n var bgVariant = this.bgVariant,\n width = this.width,\n textVariant = this.textVariant,\n localShow = this.localShow;\n var shadow = this.shadow === '' ? true : this.shadow;\n var $sidebar = h(this.tag, {\n staticClass: CLASS_NAME,\n class: [(_ref = {\n shadow: shadow === true\n }, _defineProperty(_ref, \"shadow-\".concat(shadow), shadow && shadow !== true), _defineProperty(_ref, \"\".concat(CLASS_NAME, \"-right\"), this.right), _defineProperty(_ref, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_ref, \"text-\".concat(textVariant), textVariant), _ref), this.sidebarClass],\n style: {\n width: width\n },\n attrs: this.computedAttrs,\n directives: [{\n name: 'show',\n value: localShow\n }],\n ref: 'content'\n }, [renderContent(h, this)]);\n $sidebar = h('transition', {\n props: this.transitionProps,\n on: {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n afterLeave: this.onAfterLeave\n }\n }, [$sidebar]);\n var $backdrop = h(BVTransition, {\n props: {\n noFade: this.noSlide\n }\n }, [renderBackdrop(h, this)]);\n var $tabTrapTop = h();\n var $tabTrapBottom = h();\n\n if (this.backdrop && localShow) {\n $tabTrapTop = h('div', {\n attrs: {\n tabindex: '0'\n },\n on: {\n focus: this.onTopTrapFocus\n }\n });\n $tabTrapBottom = h('div', {\n attrs: {\n tabindex: '0'\n },\n on: {\n focus: this.onBottomTrapFocus\n }\n });\n }\n\n return h('div', {\n staticClass: 'b-sidebar-outer',\n style: {\n zIndex: this.zIndex\n },\n attrs: {\n tabindex: '-1'\n },\n on: {\n keydown: this.onKeydown\n }\n }, [$tabTrapTop, $sidebar, $tabTrapBottom, $backdrop]);\n }\n});","import { BProgress } from './progress';\nimport { BProgressBar } from './progress-bar';\nimport { pluginFactory } from '../../utils/plugins';\nvar ProgressPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BProgress: BProgress,\n BProgressBar: BProgressBar\n }\n});\nexport { ProgressPlugin, BProgress, BProgressBar };","import { BSidebar } from './sidebar';\nimport { VBTogglePlugin } from '../../directives/toggle';\nimport { pluginFactory } from '../../utils/plugins';\nvar SidebarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BSidebar: BSidebar\n },\n plugins: {\n VBTogglePlugin: VBTogglePlugin\n }\n});\nexport { SidebarPlugin, BSidebar };","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SKELETON } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animation: makeProp(PROP_TYPE_STRING, 'wave'),\n height: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text'),\n variant: makeProp(PROP_TYPE_STRING),\n width: makeProp(PROP_TYPE_STRING)\n}, NAME_SKELETON); // --- Main component ---\n// @vue/component\n\nexport var BSkeleton = /*#__PURE__*/Vue.extend({\n name: NAME_SKELETON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var data = _ref.data,\n props = _ref.props;\n var size = props.size,\n animation = props.animation,\n variant = props.variant;\n return h('div', mergeData(data, {\n staticClass: 'b-skeleton',\n style: {\n width: size || props.width,\n height: size || props.height\n },\n class: (_class = {}, _defineProperty(_class, \"b-skeleton-\".concat(props.type), true), _defineProperty(_class, \"b-skeleton-animate-\".concat(animation), animation), _defineProperty(_class, \"bg-\".concat(variant), variant), _class)\n }));\n }\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SKELETON_ICON } from '../../constants/components';\nimport { PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BIcon } from '../../icons'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animation: makeProp(PROP_TYPE_STRING, 'wave'),\n icon: makeProp(PROP_TYPE_STRING),\n iconProps: makeProp(PROP_TYPE_OBJECT, {})\n}, NAME_SKELETON_ICON); // --- Main component ---\n// @vue/component\n\nexport var BSkeletonIcon = /*#__PURE__*/Vue.extend({\n name: NAME_SKELETON_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props;\n var icon = props.icon,\n animation = props.animation;\n var $icon = h(BIcon, {\n staticClass: 'b-skeleton-icon',\n props: _objectSpread(_objectSpread({}, props.iconProps), {}, {\n icon: icon\n })\n });\n return h('div', mergeData(data, {\n staticClass: 'b-skeleton-icon-wrapper position-relative d-inline-block overflow-hidden',\n class: _defineProperty({}, \"b-skeleton-animate-\".concat(animation), animation)\n }), [$icon]);\n }\n});","function _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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SKELETON_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BAspect } from '../aspect';\nimport { BSkeleton } from './skeleton'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animation: makeProp(PROP_TYPE_STRING),\n aspect: makeProp(PROP_TYPE_STRING, '16:9'),\n cardImg: makeProp(PROP_TYPE_STRING),\n height: makeProp(PROP_TYPE_STRING),\n noAspect: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING),\n width: makeProp(PROP_TYPE_STRING)\n}, NAME_SKELETON_IMG); // --- Main component ---\n// @vue/component\n\nexport var BSkeletonImg = /*#__PURE__*/Vue.extend({\n name: NAME_SKELETON_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props;\n var aspect = props.aspect,\n width = props.width,\n height = props.height,\n animation = props.animation,\n variant = props.variant,\n cardImg = props.cardImg;\n var $img = h(BSkeleton, mergeData(data, {\n props: {\n type: 'img',\n width: width,\n height: height,\n animation: animation,\n variant: variant\n },\n class: _defineProperty({}, \"card-img-\".concat(cardImg), cardImg)\n }));\n return props.noAspect ? $img : h(BAspect, {\n props: {\n aspect: aspect\n }\n }, [$img]);\n }\n});","// Mixin to determine if an event listener has been registered\n// either via `v-on:name` (in the parent) or programmatically\n// via `vm.$on('name', ...)`\n// See: https://github.com/vuejs/vue/issues/10825\nimport { Vue } from '../vue';\nimport { isArray, isUndefined } from '../utils/inspect'; // @vue/component\n\nexport var hasListenerMixin = Vue.extend({\n methods: {\n hasListener: function hasListener(name) {\n // Only includes listeners registered via `v-on:name`\n var $listeners = this.$listeners || {}; // Includes `v-on:name` and `this.$on('name')` registered listeners\n // Note this property is not part of the public Vue API, but it is\n // the only way to determine if a listener was added via `vm.$on`\n\n var $events = this._events || {}; // Registered listeners in `this._events` are always an array,\n // but might be zero length\n\n return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\n }\n }\n});","function _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\nimport { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var stackedMixin = Vue.extend({\n props: props,\n computed: {\n isStacked: function isStacked() {\n var stacked = this.stacked; // `true` when always stacked, or returns breakpoint specified\n\n return stacked === '' ? true : stacked;\n },\n isStackedAlways: function isStackedAlways() {\n return this.isStacked === true;\n },\n stackedTableClasses: function stackedTableClasses() {\n var isStackedAlways = this.isStackedAlways;\n return _defineProperty({\n 'b-table-stacked': isStackedAlways\n }, \"b-table-stacked-\".concat(this.stacked), !isStackedAlways && this.isStacked);\n }\n }\n});","function 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\nimport { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { identity } from '../../../utils/identity';\nimport { isBoolean } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { attrsMixin } from '../../../mixins/attrs'; // Main `` render mixin\n// Includes all main table styling options\n// --- Props ---\n\nexport var props = {\n bordered: makeProp(PROP_TYPE_BOOLEAN, false),\n borderless: makeProp(PROP_TYPE_BOOLEAN, false),\n captionTop: makeProp(PROP_TYPE_BOOLEAN, false),\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n hover: makeProp(PROP_TYPE_BOOLEAN, false),\n noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),\n outlined: makeProp(PROP_TYPE_BOOLEAN, false),\n responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n // If a string, it is assumed to be the table `max-height` value\n stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false),\n tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tableVariant: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tableRendererMixin = Vue.extend({\n mixins: [attrsMixin],\n provide: function provide() {\n return {\n bvTable: this\n };\n },\n // Don't place attributes on root element automatically,\n // as table could be wrapped in responsive ``\n inheritAttrs: false,\n props: props,\n computed: {\n // Layout related computed props\n isResponsive: function isResponsive() {\n var responsive = this.responsive;\n return responsive === '' ? true : responsive;\n },\n isStickyHeader: function isStickyHeader() {\n var stickyHeader = this.stickyHeader;\n stickyHeader = stickyHeader === '' ? true : stickyHeader;\n return this.isStacked ? false : stickyHeader;\n },\n wrapperClasses: function wrapperClasses() {\n var isResponsive = this.isResponsive;\n return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? \"table-responsive-\".concat(this.responsive) : ''].filter(identity);\n },\n wrapperStyles: function wrapperStyles() {\n var isStickyHeader = this.isStickyHeader;\n return isStickyHeader && !isBoolean(isStickyHeader) ? {\n maxHeight: isStickyHeader\n } : {};\n },\n tableClasses: function tableClasses() {\n var hover = this.hover,\n tableVariant = this.tableVariant;\n hover = this.isTableSimple ? hover : hover && this.computedItems.length > 0 && !this.computedBusy;\n return [// User supplied classes\n this.tableClass, // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': hover,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n // The following are b-table custom styles\n border: this.outlined,\n 'b-table-fixed': this.fixed,\n 'b-table-caption-top': this.captionTop,\n 'b-table-no-border-collapse': this.noBorderCollapse\n }, tableVariant ? \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(tableVariant) : '', // Stacked table classes\n this.stackedTableClasses, // Selectable classes\n this.selectableTableClasses];\n },\n tableAttrs: function tableAttrs() {\n var items = this.computedItems,\n filteredItems = this.filteredItems,\n fields = this.computedFields,\n selectableTableAttrs = this.selectableTableAttrs;\n var ariaAttrs = this.isTableSimple ? {} : {\n 'aria-busy': toString(this.computedBusy),\n 'aria-colcount': toString(fields.length),\n // Preserve user supplied `aria-describedby`, if provided\n 'aria-describedby': this.bvAttrs['aria-describedby'] || this.$refs.caption ? this.captionId : null\n };\n var rowCount = items && filteredItems && filteredItems.length > items.length ? toString(filteredItems.length) : null;\n return _objectSpread(_objectSpread(_objectSpread({\n // We set `aria-rowcount` before merging in `$attrs`,\n // in case user has supplied their own\n 'aria-rowcount': rowCount\n }, this.bvAttrs), {}, {\n // Now we can override any `$attrs` here\n id: this.safeId(),\n role: this.bvAttrs.role || 'table'\n }, ariaAttrs), selectableTableAttrs);\n }\n },\n render: function render(h) {\n var wrapperClasses = this.wrapperClasses,\n renderCaption = this.renderCaption,\n renderColgroup = this.renderColgroup,\n renderThead = this.renderThead,\n renderTbody = this.renderTbody,\n renderTfoot = this.renderTfoot;\n var $content = [];\n\n if (this.isTableSimple) {\n $content.push(this.normalizeSlot());\n } else {\n // Build the `` (from caption mixin)\n $content.push(renderCaption ? renderCaption() : null); // Build the ``\n\n $content.push(renderColgroup ? renderColgroup() : null); // Build the ``\n\n $content.push(renderThead ? renderThead() : null); // Build the ``\n\n $content.push(renderTbody ? renderTbody() : null); // Build the ``\n\n $content.push(renderTfoot ? renderTfoot() : null);\n } // Assemble ``\n\n\n var $table = h('table', {\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs,\n key: 'b-table'\n }, $content.filter(identity)); // Add responsive/sticky wrapper if needed and return table\n\n return wrapperClasses.length > 0 ? h('div', {\n class: wrapperClasses,\n style: this.wrapperStyles,\n key: 'wrap'\n }, [$table]) : $table;\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_TABLE_SIMPLE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), stackedProps), tableRendererProps)), NAME_TABLE_SIMPLE); // --- Main component ---\n// @vue/component\n\nexport var BTableSimple = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_SIMPLE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [// General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin, // Required table mixins\n tableRendererMixin, // Table features mixins\n // Stacked requires extra handling by users via\n // the table cell `stacked-heading` prop\n stackedMixin],\n props: props,\n computed: {\n isTableSimple: function isTableSimple() {\n return true;\n }\n } // Render function is provided by `tableRendererMixin`\n\n});","function 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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SKELETON_TABLE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { createArray } from '../../utils/array';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSkeleton } from './skeleton';\nimport { BTableSimple } from '../table'; // --- Helper methods ---\n\nvar isPositiveNumber = function isPositiveNumber(value) {\n return value > 0;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n animation: makeProp(PROP_TYPE_STRING),\n columns: makeProp(PROP_TYPE_NUMBER, 5, isPositiveNumber),\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER, 3, isPositiveNumber),\n showFooter: makeProp(PROP_TYPE_BOOLEAN, false),\n tableProps: makeProp(PROP_TYPE_OBJECT, {})\n}, NAME_SKELETON_TABLE); // --- Main component ---\n// @vue/component\n\nexport var BSkeletonTable = /*#__PURE__*/Vue.extend({\n name: NAME_SKELETON_TABLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props;\n var animation = props.animation,\n columns = props.columns;\n var $th = h('th', [h(BSkeleton, {\n props: {\n animation: animation\n }\n })]);\n var $thTr = h('tr', createArray(columns, $th));\n var $td = h('td', [h(BSkeleton, {\n props: {\n width: '75%',\n animation: animation\n }\n })]);\n var $tdTr = h('tr', createArray(columns, $td));\n var $tbody = h('tbody', createArray(props.rows, $tdTr));\n var $thead = !props.hideHeader ? h('thead', [$thTr]) : h();\n var $tfoot = props.showFooter ? h('tfoot', [$thTr]) : h();\n return h(BTableSimple, mergeData(data, {\n props: _objectSpread({}, props.tableProps)\n }), [$thead, $tbody, $tfoot]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_SKELETON_WRAPPER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_LOADING } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n loading: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_SKELETON_WRAPPER); // --- Main component ---\n// @vue/component\n\nexport var BSkeletonWrapper = /*#__PURE__*/Vue.extend({\n name: NAME_SKELETON_WRAPPER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var slotScope = {};\n\n if (props.loading) {\n return h('div', mergeData(data, {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-busy': true\n },\n staticClass: 'b-skeleton-wrapper',\n key: 'loading'\n }), normalizeSlot(SLOT_NAME_LOADING, slotScope, $scopedSlots, $slots));\n }\n\n return normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots);\n }\n});","import { pluginFactory } from '../../utils/plugins';\nimport { BSkeleton } from './skeleton';\nimport { BSkeletonIcon } from './skeleton-icon';\nimport { BSkeletonImg } from './skeleton-img';\nimport { BSkeletonTable } from './skeleton-table';\nimport { BSkeletonWrapper } from './skeleton-wrapper';\nvar SkeletonPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BSkeleton: BSkeleton,\n BSkeletonIcon: BSkeletonIcon,\n BSkeletonImg: BSkeletonImg,\n BSkeletonTable: BSkeletonTable,\n BSkeletonWrapper: BSkeletonWrapper\n }\n});\nexport { SkeletonPlugin, BSkeleton, BSkeletonIcon, BSkeletonImg, BSkeletonTable, BSkeletonWrapper };","import { BSpinner } from './spinner';\nimport { pluginFactory } from '../../utils/plugins';\nvar SpinnerPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BSpinner: BSpinner\n }\n});\nexport { SpinnerPlugin, BSpinner };","function 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\nimport { Vue } from '../../vue';\nimport { NAME_TR } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar LIGHT = 'light';\nvar DARK = 'dark'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TR); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTr = /*#__PURE__*/Vue.extend({\n name: NAME_TR,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableTr: this\n };\n },\n inject: {\n bvTableRowGroup: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / ``\n inTbody: function inTbody() {\n return this.bvTableRowGroup.isTbody;\n },\n // Sniffed by `` / ``\n inThead: function inThead() {\n return this.bvTableRowGroup.isThead;\n },\n // Sniffed by `` / ``\n inTfoot: function inTfoot() {\n return this.bvTableRowGroup.isTfoot;\n },\n // Sniffed by `` / ``\n isDark: function isDark() {\n return this.bvTableRowGroup.isDark;\n },\n // Sniffed by `` / ``\n isStacked: function isStacked() {\n return this.bvTableRowGroup.isStacked;\n },\n // Sniffed by `` / ``\n isResponsive: function isResponsive() {\n return this.bvTableRowGroup.isResponsive;\n },\n // Sniffed by `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return this.bvTableRowGroup.isStickyHeader;\n },\n // Sniffed by / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTableRowGroup.hasStickyHeader;\n },\n // Sniffed by `` / ``\n tableVariant: function tableVariant() {\n return this.bvTableRowGroup.tableVariant;\n },\n // Sniffed by `` / ``\n headVariant: function headVariant() {\n return this.inThead ? this.bvTableRowGroup.headVariant : null;\n },\n // Sniffed by `` / ``\n footVariant: function footVariant() {\n return this.inTfoot ? this.bvTableRowGroup.footVariant : null;\n },\n isRowDark: function isRowDark() {\n return this.headVariant === LIGHT || this.footVariant === LIGHT ?\n /* istanbul ignore next */\n false : this.headVariant === DARK || this.footVariant === DARK ?\n /* istanbul ignore next */\n true : this.isDark;\n },\n trClasses: function trClasses() {\n var variant = this.variant;\n return [variant ? \"\".concat(this.isRowDark ? 'bg' : 'table', \"-\").concat(variant) : null];\n },\n trAttrs: function trAttrs() {\n return _objectSpread({\n role: 'row'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('tr', {\n class: this.trClasses,\n attrs: this.trAttrs,\n // Pass native listeners to child\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_BOTTOM_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var bottomRowMixin = Vue.extend({\n props: props,\n methods: {\n renderBottomRow: function renderBottomRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_BOTTOM_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-bottom-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-bottom') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-bottom') : tbodyTrAttr,\n key: 'b-bottom-row'\n }, this.normalizeSlot(SLOT_NAME_BOTTOM_ROW, {\n columns: fields.length,\n fields: fields\n }));\n }\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_TABLE_CELL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Helper methods ---\n// Parse a rowspan or colspan into a digit (or `null` if < `1` )\n\nvar parseSpan = function parseSpan(value) {\n value = toInteger(value, 0);\n return value > 0 ? value : null;\n};\n/* istanbul ignore next */\n\n\nvar spanValidator = function spanValidator(value) {\n return isUndefinedOrNull(value) || parseSpan(value) > 0;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n colspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n rowspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n stackedHeading: makeProp(PROP_TYPE_STRING),\n stickyColumn: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TABLE_CELL); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTd = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_CELL,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n inject: {\n bvTableTr: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Overridden by ``\n tag: function tag() {\n return 'td';\n },\n inTbody: function inTbody() {\n return this.bvTableTr.inTbody;\n },\n inThead: function inThead() {\n return this.bvTableTr.inThead;\n },\n inTfoot: function inTfoot() {\n return this.bvTableTr.inTfoot;\n },\n isDark: function isDark() {\n return this.bvTableTr.isDark;\n },\n isStacked: function isStacked() {\n return this.bvTableTr.isStacked;\n },\n // We only support stacked-heading in tbody in stacked mode\n isStackedCell: function isStackedCell() {\n return this.inTbody && this.isStacked;\n },\n isResponsive: function isResponsive() {\n return this.bvTableTr.isResponsive;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return this.bvTableTr.isStickyHeader;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return this.bvTableTr.hasStickyHeader;\n },\n // Needed to handle background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky column cells are only available in responsive\n // mode (horizontal scrolling) or when sticky header mode\n // Applies to cells in `thead`, `tbody` and `tfoot`\n isStickyColumn: function isStickyColumn() {\n return !this.isStacked && (this.isResponsive || this.hasStickyHeader) && this.stickyColumn;\n },\n rowVariant: function rowVariant() {\n return this.bvTableTr.variant;\n },\n headVariant: function headVariant() {\n return this.bvTableTr.headVariant;\n },\n footVariant: function footVariant() {\n return this.bvTableTr.footVariant;\n },\n tableVariant: function tableVariant() {\n return this.bvTableTr.tableVariant;\n },\n computedColspan: function computedColspan() {\n return parseSpan(this.colspan);\n },\n computedRowspan: function computedRowspan() {\n return parseSpan(this.rowspan);\n },\n // We use computed props here for improved performance by caching\n // the results of the string interpolation\n cellClasses: function cellClasses() {\n var variant = this.variant,\n headVariant = this.headVariant,\n isStickyColumn = this.isStickyColumn;\n\n if (!variant && this.isStickyHeader && !headVariant || !variant && isStickyColumn && this.inTfoot && !this.footVariant || !variant && isStickyColumn && this.inThead && !headVariant || !variant && isStickyColumn && this.inTbody) {\n // Needed for sticky-header mode as Bootstrap v4 table cells do\n // not inherit parent's `background-color`\n variant = this.rowVariant || this.tableVariant || 'b-table-default';\n }\n\n return [variant ? \"\".concat(this.isDark ? 'bg' : 'table', \"-\").concat(variant) : null, isStickyColumn ? 'b-table-sticky-column' : null];\n },\n cellAttrs: function cellAttrs() {\n var stackedHeading = this.stackedHeading; // We use computed props here for improved performance by caching\n // the results of the object spread (Object.assign)\n\n var headOrFoot = this.inThead || this.inTfoot; // Make sure col/rowspan's are > 0 or null\n\n var colspan = this.computedColspan;\n var rowspan = this.computedRowspan; // Default role and scope\n\n var role = 'cell';\n var scope = null; // Compute role and scope\n // We only add scopes with an explicit span of 1 or greater\n\n if (headOrFoot) {\n // Header or footer cells\n role = 'columnheader';\n scope = colspan > 0 ? 'colspan' : 'col';\n } else if (isTag(this.tag, 'th')) {\n // th's in tbody\n role = 'rowheader';\n scope = rowspan > 0 ? 'rowgroup' : 'row';\n }\n\n return _objectSpread(_objectSpread({\n colspan: colspan,\n rowspan: rowspan,\n role: role,\n scope: scope\n }, this.bvAttrs), {}, {\n // Add in the stacked cell label data-attribute if in\n // stacked mode (if a stacked heading label is provided)\n 'data-label': this.isStackedCell && !isUndefinedOrNull(stackedHeading) ?\n /* istanbul ignore next */\n toString(stackedHeading) : null\n });\n }\n },\n render: function render(h) {\n var $content = [this.normalizeSlot()];\n return h(this.tag, {\n class: this.cellClasses,\n attrs: this.cellAttrs,\n // Transfer any native listeners\n on: this.bvListeners\n }, [this.isStackedCell ? h('div', [$content]) : $content]);\n }\n});","function _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\nimport { Vue } from '../../../vue';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Constants ---\n\nvar MODEL_PROP_NAME_BUSY = 'busy';\nvar MODEL_EVENT_NAME_BUSY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_BUSY; // --- Props ---\n\nexport var props = _defineProperty({}, MODEL_PROP_NAME_BUSY, makeProp(PROP_TYPE_BOOLEAN, false)); // --- Mixin ---\n// @vue/component\n\nexport var busyMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localBusy: false\n };\n },\n computed: {\n computedBusy: function computedBusy() {\n return this[MODEL_PROP_NAME_BUSY] || this.localBusy;\n }\n },\n watch: {\n localBusy: function localBusy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_BUSY, newValue);\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy: function stopIfBusy(event) {\n // If table is busy (via provider) then don't propagate\n if (this.computedBusy) {\n stopEvent(event);\n return true;\n }\n\n return false;\n },\n // Render the busy indicator or return `null` if not busy\n renderBusy: function renderBusy() {\n var tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Return a busy indicator row, or `null` if not busy\n\n if (this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY)) {\n return h(BTr, {\n staticClass: 'b-table-busy-slot',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, SLOT_NAME_TABLE_BUSY) : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, SLOT_NAME_TABLE_BUSY) : tbodyTrAttr,\n key: 'table-busy-slot'\n }, [h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [this.normalizeSlot(SLOT_NAME_TABLE_BUSY)])]);\n } // We return `null` here so that we can determine if we need to\n // render the table items rows or not\n\n\n return null;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING) // `caption-top` is part of table-render mixin (styling)\n // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)\n\n}; // --- Mixin ---\n// @vue/component\n\nexport var captionMixin = Vue.extend({\n props: props,\n computed: {\n captionId: function captionId() {\n return this.isStacked ? this.safeId('_caption_') : null;\n }\n },\n methods: {\n renderCaption: function renderCaption() {\n var caption = this.caption,\n captionHtml = this.captionHtml;\n var h = this.$createElement;\n var $caption = h();\n var hasCaptionSlot = this.hasNormalizedSlot(SLOT_NAME_TABLE_CAPTION);\n\n if (hasCaptionSlot || caption || captionHtml) {\n $caption = h('caption', {\n attrs: {\n id: this.captionId\n },\n domProps: hasCaptionSlot ? {} : htmlOrText(captionHtml, caption),\n key: 'caption',\n ref: 'caption'\n }, this.normalizeSlot(SLOT_NAME_TABLE_CAPTION));\n }\n\n return $caption;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var colgroupMixin = Vue.extend({\n methods: {\n renderColgroup: function renderColgroup() {\n var fields = this.computedFields;\n var h = this.$createElement;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_EMPTYFILTERED, SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Props ---\n\nexport var props = {\n emptyFilteredHtml: makeProp(PROP_TYPE_STRING),\n emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),\n emptyHtml: makeProp(PROP_TYPE_STRING),\n emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),\n showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var emptyMixin = Vue.extend({\n props: props,\n methods: {\n renderEmpty: function renderEmpty() {\n var items = this.computedItems;\n var h = this.$createElement;\n var $empty = h();\n\n if (this.showEmpty && (!items || items.length === 0) && !(this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY))) {\n var fields = this.computedFields,\n isFiltered = this.isFiltered,\n emptyText = this.emptyText,\n emptyHtml = this.emptyHtml,\n emptyFilteredText = this.emptyFilteredText,\n emptyFilteredHtml = this.emptyFilteredHtml,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n $empty = this.normalizeSlot(isFiltered ? SLOT_NAME_EMPTYFILTERED : SLOT_NAME_EMPTY, {\n emptyFilteredHtml: emptyFilteredHtml,\n emptyFilteredText: emptyFilteredText,\n emptyHtml: emptyHtml,\n emptyText: emptyText,\n fields: fields,\n // Not sure why this is included, as it will always be an empty array\n items: items\n });\n\n if (!$empty) {\n $empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: isFiltered ? htmlOrText(emptyFilteredHtml, emptyFilteredText) : htmlOrText(emptyHtml, emptyText)\n });\n }\n\n $empty = h(BTd, {\n props: {\n colspan: fields.length || null\n }\n }, [h('div', {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite'\n }\n }, [$empty])]);\n $empty = h(BTr, {\n staticClass: 'b-table-empty-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-empty') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-empty') : tbodyTrAttr,\n key: isFiltered ? 'b-empty-filtered-row' : 'b-empty-row'\n }, [$empty]);\n }\n\n return $empty;\n }\n }\n});","import { isDate, isObject, isUndefinedOrNull } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string'; // Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Strings are returned as-is\n// Numbers get converted to string\n// `null` and `undefined` values are filtered out\n// Dates are converted to their native string format\n\nexport var stringifyObjectValues = function stringifyObjectValues(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n } // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n\n\n if (isObject(value) && !isDate(value)) {\n return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .map(function (k) {\n return stringifyObjectValues(value[k]);\n }).filter(function (v) {\n return !!v;\n }) // Ignore empty strings\n .join(' ');\n }\n\n return toString(value);\n};","function 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\n// Constants used by table helpers\nexport var FIELD_KEY_CELL_VARIANT = '_cellVariants';\nexport var FIELD_KEY_ROW_VARIANT = '_rowVariant';\nexport var FIELD_KEY_SHOW_DETAILS = '_showDetails'; // Object of item keys that should be ignored for headers and\n// stringification and filter events\n\nexport var IGNORED_FIELD_KEYS = [FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS].reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, true));\n}, {}); // Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\n\nexport var EVENT_FILTER = ['a', 'a *', // Include content inside links\n'button', 'button *', // Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');","import { arrayIncludes } from '../../../utils/array';\nimport { isArray, isFunction } from '../../../utils/inspect';\nimport { clone, keys, pick } from '../../../utils/object';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Return a copy of a row after all reserved fields have been filtered out\n\nexport var sanitizeRow = function sanitizeRow(row, ignoreFields, includeFields) {\n var fieldsObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // We first need to format the row based on the field configurations\n // This ensures that we add formatted values for keys that may not\n // exist in the row itself\n var formattedRow = keys(fieldsObj).reduce(function (result, key) {\n var field = fieldsObj[key];\n var filterByFormatted = field.filterByFormatted;\n var formatter = isFunction(filterByFormatted) ?\n /* istanbul ignore next */\n filterByFormatted : filterByFormatted ?\n /* istanbul ignore next */\n field.formatter : null;\n\n if (isFunction(formatter)) {\n result[key] = formatter(row[key], key, row);\n }\n\n return result;\n }, clone(row)); // Determine the allowed keys:\n // - Ignore special fields that start with `_`\n // - Ignore fields in the `ignoreFields` array\n // - Include only fields in the `includeFields` array\n\n var allowedKeys = keys(formattedRow).filter(function (key) {\n return !IGNORED_FIELD_KEYS[key] && !(isArray(ignoreFields) && ignoreFields.length > 0 && arrayIncludes(ignoreFields, key)) && !(isArray(includeFields) && includeFields.length > 0 && !arrayIncludes(includeFields, key));\n });\n return pick(formattedRow, allowedKeys);\n};","import { isObject } from '../../../utils/inspect';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\nimport { sanitizeRow } from './sanitize-row'; // Stringifies the values of a record, ignoring any special top level field keys\n// TODO: Add option to stringify `scopedSlot` items\n\nexport var stringifyRecordValues = function stringifyRecordValues(row, ignoreFields, includeFields, fieldsObj) {\n return isObject(row) ? stringifyObjectValues(sanitizeRow(row, ignoreFields, includeFields, fieldsObj)) :\n /* istanbul ignore next */\n '';\n};","function _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 _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 _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 _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\nimport { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_FILTERED } from '../../../constants/events';\nimport { PROP_TYPE_REG_EXP, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY, PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { RX_DIGITS, RX_SPACES } from '../../../constants/regex';\nimport { concat } from '../../../utils/array';\nimport { cloneDeep } from '../../../utils/clone-deep';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { toInteger } from '../../../utils/number';\nimport { hasPropFunction, makeProp } from '../../../utils/props';\nimport { escapeRegExp } from '../../../utils/string';\nimport { warn } from '../../../utils/warn';\nimport { stringifyRecordValues } from './stringify-record-values'; // --- Constants ---\n\nvar DEBOUNCE_DEPRECATED_MSG = 'Prop \"filter-debounce\" is deprecated. Use the debounce feature of \"\" instead.'; // --- Props ---\n\nexport var props = {\n filter: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_REG_EXP])),\n filterDebounce: makeProp(PROP_TYPE_NUMBER_STRING, 0, function (value) {\n return RX_DIGITS.test(String(value));\n }),\n filterFunction: makeProp(PROP_TYPE_FUNCTION),\n filterIgnoredFields: makeProp(PROP_TYPE_ARRAY, []),\n filterIncludedFields: makeProp(PROP_TYPE_ARRAY, [])\n}; // --- Mixin ---\n// @vue/component\n\nexport var filteringMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n // Flag for displaying which empty slot to show and some event triggering\n isFiltered: false,\n // Where we store the copy of the filter criteria after debouncing\n // We pre-set it with the sanitized filter value\n localFilter: this.filterSanitize(this.filter)\n };\n },\n computed: {\n computedFilterIgnored: function computedFilterIgnored() {\n return concat(this.filterIgnoredFields || []).filter(identity);\n },\n computedFilterIncluded: function computedFilterIncluded() {\n return concat(this.filterIncludedFields || []).filter(identity);\n },\n computedFilterDebounce: function computedFilterDebounce() {\n var ms = toInteger(this.filterDebounce, 0);\n /* istanbul ignore next */\n\n if (ms > 0) {\n warn(DEBOUNCE_DEPRECATED_MSG, NAME_TABLE);\n }\n\n return ms;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true;\n },\n // For watching changes to `filteredItems` vs `localItems`\n filteredCheck: function filteredCheck() {\n var filteredItems = this.filteredItems,\n localItems = this.localItems,\n localFilter = this.localFilter;\n return {\n filteredItems: filteredItems,\n localItems: localItems,\n localFilter: localFilter\n };\n },\n // Sanitized/normalize filter-function prop\n localFilterFn: function localFilterFn() {\n // Return `null` to signal to use internal filter function\n var filterFunction = this.filterFunction;\n return hasPropFunction(filterFunction) ? filterFunction : null;\n },\n // Returns the records in `localItems` that match the filter criteria\n // Returns the original `localItems` array if not sorting\n filteredItems: function filteredItems() {\n // Note the criteria is debounced and sanitized\n var items = this.localItems,\n criteria = this.localFilter; // Resolve the filtering function, when requested\n // We prefer the provided filtering function and fallback to the internal one\n // When no filtering criteria is specified the filtering factories will return `null`\n\n var filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null; // We only do local filtering when requested and there are records to filter\n\n return filterFn && items.length > 0 ? items.filter(filterFn) : items;\n }\n },\n watch: {\n // Watch for debounce being set to 0\n computedFilterDebounce: function computedFilterDebounce(newValue) {\n if (!newValue && this.$_filterTimer) {\n this.clearFilterTimer();\n this.localFilter = this.filterSanitize(this.filter);\n }\n },\n // Watch for changes to the filter criteria, and debounce if necessary\n filter: {\n // We need a deep watcher in case the user passes\n // an object when using `filter-function`\n deep: true,\n handler: function handler(newCriteria) {\n var _this = this;\n\n var timeout = this.computedFilterDebounce;\n this.clearFilterTimer();\n\n if (timeout && timeout > 0) {\n // If we have a debounce time, delay the update of `localFilter`\n this.$_filterTimer = setTimeout(function () {\n _this.localFilter = _this.filterSanitize(newCriteria);\n }, timeout);\n } else {\n // Otherwise, immediately update `localFilter` with `newFilter` value\n this.localFilter = this.filterSanitize(newCriteria);\n }\n }\n },\n // Watch for changes to the filter criteria and filtered items vs `localItems`\n // Set visual state and emit events as required\n filteredCheck: function filteredCheck(_ref) {\n var filteredItems = _ref.filteredItems,\n localFilter = _ref.localFilter;\n // Determine if the dataset is filtered or not\n var isFiltered = false;\n\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false;\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false;\n } else if (localFilter) {\n // If filter criteria is truthy\n isFiltered = true;\n }\n\n if (isFiltered) {\n this.$emit(EVENT_NAME_FILTERED, filteredItems, filteredItems.length);\n }\n\n this.isFiltered = isFiltered;\n },\n isFiltered: function isFiltered(newValue, oldValue) {\n if (newValue === false && oldValue === true) {\n // We need to emit a filtered event if `isFiltered` transitions from `true` to\n // `false` so that users can update their pagination controls\n var localItems = this.localItems;\n this.$emit(EVENT_NAME_FILTERED, localItems, localItems.length);\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create private non-reactive props\n this.$_filterTimer = null; // If filter is \"pre-set\", set the criteria\n // This will trigger any watchers/dependents\n // this.localFilter = this.filterSanitize(this.filter)\n // Set the initial filtered state in a `$nextTick()` so that\n // we trigger a filtered event if needed\n\n this.$nextTick(function () {\n _this2.isFiltered = Boolean(_this2.localFilter);\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearFilterTimer();\n },\n methods: {\n clearFilterTimer: function clearFilterTimer() {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n },\n filterSanitize: function filterSanitize(criteria) {\n // Sanitizes filter criteria based on internal or external filtering\n if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {\n // If using internal filter function, which only accepts string or RegExp,\n // return '' to signify no filter\n return '';\n } // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue's reactive observers\n\n\n return cloneDeep(criteria);\n },\n // Filter Function factories\n filterFnFactory: function filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions\n // Wrap the provided filter-function and return a new function\n // Returns `null` if no filter-function defined or if criteria is falsey\n // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {\n return null;\n } // Build the wrapped filter test function, passing the criteria to the provided function\n\n\n var fn = function fn(item) {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria);\n }; // Return the wrapped function\n\n\n return fn;\n },\n defaultFilterFnFactory: function defaultFilterFnFactory(criteria) {\n var _this3 = this;\n\n // Generates the default filter function, using the given filter criteria\n // Returns `null` if no criteria or criteria format not supported\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null;\n } // Build the RegExp needed for filtering\n\n\n var regExp = criteria;\n\n if (isString(regExp)) {\n // Escape special RegExp characters in the string and convert contiguous\n // whitespace to \\s+ matches\n var pattern = escapeRegExp(criteria).replace(RX_SPACES, '\\\\s+'); // Build the RegExp (no need for global flag, as we only need\n // to find the value once in the string)\n\n regExp = new RegExp(\".*\".concat(pattern, \".*\"), 'i');\n } // Generate the wrapped filter test function to use\n\n\n var fn = function fn(item) {\n // This searches all row values (and sub property values) in the entire (excluding\n // special `_` prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields)\n // Users can ignore filtering on specific fields, or on only certain fields,\n // and can optionall specify searching results of fields with formatter\n //\n // TODO: Enable searching on scoped slots (optional, as it will be SLOW)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n //\n // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag\n regExp.lastIndex = 0;\n return regExp.test(stringifyRecordValues(item, _this3.computedFilterIgnored, _this3.computedFilterIncluded, _this3.computedFieldsObj));\n }; // Return the generated function\n\n\n return fn;\n }\n }\n});","import { identity } from '../../../utils/identity';\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect';\nimport { clone, keys } from '../../../utils/object';\nimport { startCase } from '../../../utils/string';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Private function to massage field entry into common object format\n\nvar processField = function processField(key, value) {\n var field = null;\n\n if (isString(value)) {\n // Label shortcut\n field = {\n key: key,\n label: value\n };\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = {\n key: key,\n formatter: value\n };\n } else if (isObject(value)) {\n field = clone(value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n\n /* istanbul ignore next */\n field = {\n key: key\n };\n }\n\n return field;\n}; // We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\n\n\nexport var normalizeFields = function normalizeFields(origFields, items) {\n var fields = [];\n\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(identity).forEach(function (f) {\n if (isString(f)) {\n fields.push({\n key: f,\n label: startCase(f)\n });\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(clone(f));\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n\n if (field) {\n fields.push(field);\n }\n }\n });\n } // If no field provided, take a sample from first record (if exits)\n\n\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n var sample = items[0];\n keys(sample).forEach(function (k) {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({\n key: k,\n label: startCase(k)\n });\n }\n });\n } // Ensure we have a unique array of fields and that they have String labels\n\n\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = isString(f.label) ? f.label : startCase(f.key);\n return true;\n }\n\n return false;\n });\n};","function 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\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isArray, isFunction, isString } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { makeModelMixin } from '../../../utils/model';\nimport { toInteger } from '../../../utils/number';\nimport { clone, sortKeys } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { normalizeFields } from './normalize-fields'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_ARRAY,\n defaultValue: []\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, _defineProperty({\n fields: makeProp(PROP_TYPE_ARRAY, null),\n // Provider mixin adds in `Function` type\n items: makeProp(PROP_TYPE_ARRAY, []),\n // Primary key for record\n // If provided the value in each row must be unique!\n primaryKey: makeProp(PROP_TYPE_STRING)\n}, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])))); // --- Mixin ---\n// @vue/component\n\nexport var itemsMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var items = this.items;\n return {\n // Our local copy of the items\n // Must be an array\n localItems: isArray(items) ? items.slice() : []\n };\n },\n computed: {\n computedFields: function computedFields() {\n // We normalize fields into an array of objects\n // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n return normalizeFields(this.fields, this.localItems);\n },\n computedFieldsObj: function computedFieldsObj() {\n // Fields as a simple lookup hash object\n // Mainly for formatter lookup and use in `scopedSlots` for convenience\n // If the field has a formatter, it normalizes formatter to a\n // function ref or `undefined` if no formatter\n var $parent = this.$parent;\n return this.computedFields.reduce(function (obj, f) {\n // We use object spread here so we don't mutate the original field object\n obj[f.key] = clone(f);\n\n if (f.formatter) {\n // Normalize formatter to a function ref or `undefined`\n var formatter = f.formatter;\n\n if (isString(formatter) && isFunction($parent[formatter])) {\n formatter = $parent[formatter];\n } else if (!isFunction(formatter)) {\n /* istanbul ignore next */\n formatter = undefined;\n } // Return formatter function or `undefined` if none\n\n\n obj[f.key].formatter = formatter;\n }\n\n return obj;\n }, {});\n },\n computedItems: function computedItems() {\n // Fallback if various mixins not provided\n return (this.paginatedItems || this.sortedItems || this.filteredItems || this.localItems ||\n /* istanbul ignore next */\n []).slice();\n },\n context: function context() {\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: mathMax(toInteger(this.perPage, 0), 0),\n currentPage: mathMax(toInteger(this.currentPage, 0), 1),\n apiUrl: this.apiUrl\n };\n }\n },\n watch: {\n items: function items(newValue) {\n // Set `localItems`/`filteredItems` to a copy of the provided array\n this.localItems = isArray(newValue) ? newValue.slice() : [];\n },\n // Watch for changes on `computedItems` and update the `v-model`\n computedItems: function computedItems(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n },\n // Watch for context changes\n context: function context(newValue, oldValue) {\n // Emit context information for external paging/filtering/sorting handling\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);\n }\n }\n },\n mounted: function mounted() {\n // Initially update the `v-model` of displayed items\n this.$emit(MODEL_EVENT_NAME, this.computedItems);\n },\n methods: {\n // Method to get the formatter method for a given field key\n getFieldFormatter: function getFieldFormatter(key) {\n var field = this.computedFieldsObj[key]; // `this.computedFieldsObj` has pre-normalized the formatter to a\n // function ref if present, otherwise `undefined`\n\n return field ? field.formatter : undefined;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { mathMax } from '../../../utils/math';\nimport { toInteger } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)\n}; // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n props: props,\n computed: {\n localPaging: function localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true;\n },\n paginatedItems: function paginatedItems() {\n var items = this.sortedItems || this.filteredItems || this.localItems || [];\n var currentPage = mathMax(toInteger(this.currentPage, 1), 1);\n var perPage = mathMax(toInteger(this.perPage, 0), 0); // Apply local pagination\n\n if (this.localPaging && perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n } // Return the items to display in the table\n\n\n return items;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_REFRESH, EVENT_NAME_REFRESHED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { warn } from '../../../utils/warn';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_REFRESHED = getRootEventName(NAME_TABLE, EVENT_NAME_REFRESHED);\nvar ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_NAME_REFRESH); // --- Props ---\n\nexport var props = {\n // Passed to the context object\n // Not used by `` directly\n apiUrl: makeProp(PROP_TYPE_STRING),\n // Adds in 'Function' support\n items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),\n noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var providerMixin = Vue.extend({\n mixins: [listenOnRootMixin],\n props: props,\n computed: {\n hasProvider: function hasProvider() {\n return isFunction(this.items);\n },\n providerTriggerContext: function providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n var ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n };\n\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter;\n }\n\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy;\n ctx.sortDesc = this.localSortDesc;\n }\n\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage;\n ctx.currentPage = this.currentPage;\n }\n\n return clone(ctx);\n }\n },\n watch: {\n // Provider update triggering\n items: function items(newValue) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || isFunction(newValue)) {\n this.$nextTick(this._providerUpdate);\n }\n },\n providerTriggerContext: function providerTriggerContext(newValue, oldValue) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newValue, oldValue)) {\n this.$nextTick(this._providerUpdate);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate();\n } // Listen for global messages to tell us to force refresh the table\n\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REFRESH, function (id) {\n if (id === _this.id || id === _this) {\n _this.refresh();\n }\n });\n },\n methods: {\n refresh: function refresh() {\n var items = this.items,\n refresh = this.refresh; // Public Method: Force a refresh of the provider function\n\n this.$off(EVENT_NAME_REFRESHED, refresh);\n\n if (this.computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on(EVENT_NAME_REFRESHED, refresh);\n }\n } else {\n this.clearSelected();\n\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate);\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(items) ? items.slice() : [];\n }\n }\n },\n // Provider related methods\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : [];\n this.localBusy = false;\n this.$emit(EVENT_NAME_REFRESHED); // New root emit\n\n if (this.id) {\n this.emitOnRoot(ROOT_EVENT_NAME_REFRESHED, this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this2 = this;\n\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return;\n } // If table is busy, wait until refreshed before calling again\n\n\n if (this.computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh);\n return;\n } // Set internal busy state\n\n\n this.localBusy = true; // Call provider function with context and optional callback after DOM is fully updated\n\n this.$nextTick(function () {\n try {\n // Call provider function passing it the context and optional callback\n var data = _this2.items(_this2.context, _this2._providerSetLocal);\n\n if (isPromise(data)) {\n // Provider returned Promise\n data.then(function (items) {\n // Provider resolved with items\n _this2._providerSetLocal(items);\n });\n } else if (isArray(data)) {\n // Provider returned Array data\n _this2._providerSetLocal(data);\n } else {\n /* istanbul ignore if */\n if (_this2.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n\n /* istanbul ignore next */\n warn(\"Provider function didn't request callback and did not return a promise or data.\", NAME_TABLE);\n _this2.localBusy = false;\n }\n }\n } catch (e)\n /* istanbul ignore next */\n {\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(\"Provider function error [\".concat(e.name, \"] \").concat(e.message, \".\"), NAME_TABLE);\n _this2.localBusy = false;\n\n _this2.$off(EVENT_NAME_REFRESHED, _this2.refresh);\n }\n });\n }\n }\n});","function _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\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED, EVENT_NAME_FILTERED, EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_SELECTED } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes, createArray } from '../../../utils/array';\nimport { identity } from '../../../utils/identity';\nimport { isArray, isNumber } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax, mathMin } from '../../../utils/math';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { sanitizeRow } from './sanitize-row'; // --- Constants ---\n\nvar SELECT_MODES = ['range', 'multi', 'single'];\nvar ROLE_GRID = 'grid'; // --- Props ---\n\nexport var props = {\n // Disable use of click handlers for row selection\n noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),\n selectMode: makeProp(PROP_TYPE_STRING, 'multi', function (value) {\n return arrayIncludes(SELECT_MODES, value);\n }),\n selectable: makeProp(PROP_TYPE_BOOLEAN, false),\n selectedVariant: makeProp(PROP_TYPE_STRING, 'active')\n}; // --- Mixin ---\n// @vue/component\n\nexport var selectableMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n };\n },\n computed: {\n isSelectable: function isSelectable() {\n return this.selectable && this.selectMode;\n },\n hasSelectableRowClick: function hasSelectableRowClick() {\n return this.isSelectable && !this.noSelectOnClick;\n },\n supportsSelectableRows: function supportsSelectableRows() {\n return true;\n },\n selectableHasSelection: function selectableHasSelection() {\n var selectedRows = this.selectedRows;\n return this.isSelectable && selectedRows && selectedRows.length > 0 && selectedRows.some(identity);\n },\n selectableIsMultiSelect: function selectableIsMultiSelect() {\n return this.isSelectable && arrayIncludes(['range', 'multi'], this.selectMode);\n },\n selectableTableClasses: function selectableTableClasses() {\n var _ref;\n\n var isSelectable = this.isSelectable;\n return _ref = {\n 'b-table-selectable': isSelectable\n }, _defineProperty(_ref, \"b-table-select-\".concat(this.selectMode), isSelectable), _defineProperty(_ref, 'b-table-selecting', this.selectableHasSelection), _defineProperty(_ref, 'b-table-selectable-no-click', isSelectable && !this.hasSelectableRowClick), _ref;\n },\n selectableTableAttrs: function selectableTableAttrs() {\n if (!this.isSelectable) {\n return {};\n }\n\n var role = this.bvAttrs.role || ROLE_GRID;\n return {\n role: role,\n // TODO:\n // Should this attribute not be included when `no-select-on-click` is set\n // since this attribute implies keyboard navigation?\n 'aria-multiselectable': role === ROLE_GRID ? toString(this.selectableIsMultiSelect) : null\n };\n }\n },\n watch: {\n computedItems: function computedItems(newValue, oldValue) {\n // Reset for selectable\n var equal = false;\n\n if (this.isSelectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newValue) && isArray(oldValue) && newValue.length === oldValue.length;\n\n for (var i = 0; equal && i < newValue.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newValue[i]), sanitizeRow(oldValue[i]));\n }\n }\n\n if (!equal) {\n this.clearSelected();\n }\n },\n selectable: function selectable(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(newValue);\n },\n selectMode: function selectMode() {\n this.clearSelected();\n },\n hasSelectableRowClick: function hasSelectableRowClick(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(!newValue);\n },\n selectedRows: function selectedRows(_selectedRows, oldValue) {\n var _this = this;\n\n if (this.isSelectable && !looseEqual(_selectedRows, oldValue)) {\n var items = []; // `.forEach()` skips over non-existent indices (on sparse arrays)\n\n _selectedRows.forEach(function (v, idx) {\n if (v) {\n items.push(_this.computedItems[idx]);\n }\n });\n\n this.$emit(EVENT_NAME_ROW_SELECTED, items);\n }\n }\n },\n beforeMount: function beforeMount() {\n // Set up handlers if needed\n if (this.isSelectable) {\n this.setSelectionHandlers(true);\n }\n },\n methods: {\n // Public methods\n selectRow: function selectRow(index) {\n // Select a particular row (indexed based on computedItems)\n if (this.isSelectable && isNumber(index) && index >= 0 && index < this.computedItems.length && !this.isRowSelected(index)) {\n var selectedRows = this.selectableIsMultiSelect ? this.selectedRows.slice() : [];\n selectedRows[index] = true;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n unselectRow: function unselectRow(index) {\n // Un-select a particular row (indexed based on `computedItems`)\n if (this.isSelectable && isNumber(index) && this.isRowSelected(index)) {\n var selectedRows = this.selectedRows.slice();\n selectedRows[index] = false;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n selectAllRows: function selectAllRows() {\n var length = this.computedItems.length;\n\n if (this.isSelectable && length > 0) {\n this.selectedLastClicked = -1;\n this.selectedRows = this.selectableIsMultiSelect ? createArray(length, true) : [true];\n }\n },\n isRowSelected: function isRowSelected(index) {\n // Determine if a row is selected (indexed based on `computedItems`)\n return !!(isNumber(index) && this.selectedRows[index]);\n },\n clearSelected: function clearSelected() {\n // Clear any active selected row(s)\n this.selectedLastClicked = -1;\n this.selectedRows = [];\n },\n // Internal private methods\n selectableRowClasses: function selectableRowClasses(index) {\n if (this.isSelectable && this.isRowSelected(index)) {\n var variant = this.selectedVariant;\n return _defineProperty({\n 'b-table-row-selected': true\n }, \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(variant), variant);\n }\n\n return {};\n },\n selectableRowAttrs: function selectableRowAttrs(index) {\n return {\n 'aria-selected': !this.isSelectable ? null : this.isRowSelected(index) ? 'true' : 'false'\n };\n },\n setSelectionHandlers: function setSelectionHandlers(on) {\n var method = on && !this.noSelectOnClick ? '$on' : '$off'; // Handle row-clicked event\n\n this[method](EVENT_NAME_ROW_CLICKED, this.selectionHandler); // Clear selection on filter, pagination, and sort changes\n\n this[method](EVENT_NAME_FILTERED, this.clearSelected);\n this[method](EVENT_NAME_CONTEXT_CHANGED, this.clearSelected);\n },\n selectionHandler: function selectionHandler(item, index, event) {\n /* istanbul ignore if: should never happen */\n if (!this.isSelectable || this.noSelectOnClick) {\n // Don't do anything if table is not in selectable mode\n this.clearSelected();\n return;\n }\n\n var selectMode = this.selectMode,\n selectedLastRow = this.selectedLastRow;\n var selectedRows = this.selectedRows.slice();\n var selected = !selectedRows[index]; // Note 'multi' mode needs no special event handling\n\n if (selectMode === 'single') {\n selectedRows = [];\n } else if (selectMode === 'range') {\n if (selectedLastRow > -1 && event.shiftKey) {\n // range\n for (var idx = mathMin(selectedLastRow, index); idx <= mathMax(selectedLastRow, index); idx++) {\n selectedRows[idx] = true;\n }\n\n selected = true;\n } else {\n if (!(event.ctrlKey || event.metaKey)) {\n // Clear range selection if any\n selectedRows = [];\n selected = true;\n }\n\n if (selected) this.selectedLastRow = index;\n }\n }\n\n selectedRows[index] = selected;\n this.selectedRows = selectedRows;\n }\n }\n});","var _props, _watch;\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\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED, EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { stableSort } from '../../../utils/stable-sort';\nimport { trim } from '../../../utils/string';\nimport { defaultSortCompare } from './default-sort-compare'; // --- Constants ---\n\nvar MODEL_PROP_NAME_SORT_BY = 'sortBy';\nvar MODEL_EVENT_NAME_SORT_BY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_BY;\nvar MODEL_PROP_NAME_SORT_DESC = 'sortDesc';\nvar MODEL_EVENT_NAME_SORT_DESC = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_DESC;\nvar SORT_DIRECTION_ASC = 'asc';\nvar SORT_DIRECTION_DESC = 'desc';\nvar SORT_DIRECTION_LAST = 'last';\nvar SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION_LAST]; // --- Props ---\n\nexport var props = (_props = {\n labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort ascending'),\n labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),\n labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort descending'),\n noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n // Another prop that should have had a better name\n // It should be `noSortClear` (on non-sortable headers)\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n noSortReset: makeProp(PROP_TYPE_BOOLEAN, false)\n}, _defineProperty(_props, MODEL_PROP_NAME_SORT_BY, makeProp(PROP_TYPE_STRING)), _defineProperty(_props, \"sortCompare\", makeProp(PROP_TYPE_FUNCTION)), _defineProperty(_props, \"sortCompareLocale\", makeProp(PROP_TYPE_ARRAY_STRING)), _defineProperty(_props, \"sortCompareOptions\", makeProp(PROP_TYPE_OBJECT, {\n numeric: true\n})), _defineProperty(_props, MODEL_PROP_NAME_SORT_DESC, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortDirection\", makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, function (value) {\n return arrayIncludes(SORT_DIRECTIONS, value);\n})), _defineProperty(_props, \"sortIconLeft\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortNullLast\", makeProp(PROP_TYPE_BOOLEAN, false)), _props); // --- Mixin ---\n// @vue/component\n\nexport var sortingMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localSortBy: this[MODEL_PROP_NAME_SORT_BY] || '',\n localSortDesc: this[MODEL_PROP_NAME_SORT_DESC] || false\n };\n },\n computed: {\n localSorting: function localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting;\n },\n isSortable: function isSortable() {\n return this.computedFields.some(function (f) {\n return f.sortable;\n });\n },\n // Sorts the filtered items and returns a new array of the sorted items\n // When not sorted, the original items array will be returned\n sortedItems: function sortedItems() {\n var sortBy = this.localSortBy,\n sortDesc = this.localSortDesc,\n locale = this.sortCompareLocale,\n nullLast = this.sortNullLast,\n sortCompare = this.sortCompare,\n localSorting = this.localSorting;\n var items = (this.filteredItems || this.localItems || []).slice();\n\n var localeOptions = _objectSpread(_objectSpread({}, this.sortCompareOptions), {}, {\n usage: 'sort'\n });\n\n if (sortBy && localSorting) {\n var field = this.computedFieldsObj[sortBy] || {};\n var sortByFormatted = field.sortByFormatted;\n var formatter = isFunction(sortByFormatted) ?\n /* istanbul ignore next */\n sortByFormatted : sortByFormatted ? this.getFieldFormatter(sortBy) : undefined; // `stableSort` returns a new array, and leaves the original array intact\n\n return stableSort(items, function (a, b) {\n var result = null; // Call user provided `sortCompare` routine first\n\n if (isFunction(sortCompare)) {\n // TODO:\n // Change the `sortCompare` signature to the one of `defaultSortCompare`\n // with the next major version bump\n result = sortCompare(a, b, sortBy, sortDesc, formatter, localeOptions, locale);\n } // Fallback to built-in `defaultSortCompare` if `sortCompare`\n // is not defined or returns `null`/`false`\n\n\n if (isUndefinedOrNull(result) || result === false) {\n result = defaultSortCompare(a, b, {\n sortBy: sortBy,\n formatter: formatter,\n locale: locale,\n localeOptions: localeOptions,\n nullLast: nullLast\n });\n } // Negate result if sorting in descending order\n\n\n return (result || 0) * (sortDesc ? -1 : 1);\n });\n }\n\n return items;\n }\n },\n watch: (_watch = {\n /* istanbul ignore next: pain in the butt to test */\n isSortable: function isSortable(newValue) {\n if (newValue) {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n } else {\n this.$off(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n }\n }, _defineProperty(_watch, MODEL_PROP_NAME_SORT_DESC, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortDesc) {\n return;\n }\n\n this.localSortDesc = newValue || false;\n }), _defineProperty(_watch, MODEL_PROP_NAME_SORT_BY, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortBy) {\n return;\n }\n\n this.localSortBy = newValue || '';\n }), _defineProperty(_watch, \"localSortDesc\", function localSortDesc(newValue, oldValue) {\n // Emit update to sort-desc.sync\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_DESC, newValue);\n }\n }), _defineProperty(_watch, \"localSortBy\", function localSortBy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_BY, newValue);\n }\n }), _watch),\n created: function created() {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort: function handleSort(key, field, event, isFoot) {\n var _this = this;\n\n if (!this.isSortable) {\n /* istanbul ignore next */\n return;\n }\n\n if (isFoot && this.noFooterSorting) {\n return;\n } // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n\n\n var sortChanged = false;\n\n var toggleLocalSortDesc = function toggleLocalSortDesc() {\n var sortDirection = field.sortDirection || _this.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n _this.localSortDesc = false;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n _this.localSortDesc = true;\n } else {// sortDirection === 'last'\n // Leave at last sort direction from previous column\n }\n };\n\n if (field.sortable) {\n var sortKey = !this.localSorting && field.sortKey ? field.sortKey : key;\n\n if (this.localSortBy === sortKey) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = sortKey; // this.localSortDesc = false\n\n toggleLocalSortDesc();\n }\n\n sortChanged = true;\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = '';\n toggleLocalSortDesc();\n sortChanged = true;\n }\n\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit(EVENT_NAME_SORT_CHANGED, this.context);\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses: function sortTheadThClasses(key, field, isFoot) {\n return {\n // If sortable and sortIconLeft are true, then place sort icon on the left\n 'b-table-sort-icon-left': field.sortable && this.sortIconLeft && !(isFoot && this.noFooterSorting)\n };\n },\n sortTheadThAttrs: function sortTheadThAttrs(key, field, isFoot) {\n var _field$sortKey;\n\n var isSortable = this.isSortable,\n noFooterSorting = this.noFooterSorting,\n localSortDesc = this.localSortDesc,\n localSortBy = this.localSortBy,\n localSorting = this.localSorting;\n\n if (!isSortable || isFoot && noFooterSorting) {\n // No attributes if not a sortable table\n return {};\n }\n\n var sortable = field.sortable;\n var sortKey = !localSorting ? (_field$sortKey = field.sortKey) !== null && _field$sortKey !== void 0 ? _field$sortKey : key : key; // Assemble the aria-sort attribute value\n\n var ariaSort = sortable && localSortBy === sortKey ? localSortDesc ? 'descending' : 'ascending' : sortable ? 'none' : null; // Return the attribute\n\n return {\n 'aria-sort': ariaSort\n };\n },\n // A label to be placed in an `.sr-only` element in the header cell\n sortTheadThLabel: function sortTheadThLabel(key, field, isFoot) {\n // No label if not a sortable table\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n return null;\n }\n\n var localSortBy = this.localSortBy,\n localSortDesc = this.localSortDesc,\n labelSortAsc = this.labelSortAsc,\n labelSortDesc = this.labelSortDesc;\n var sortable = field.sortable; // The correctness of these labels is very important for screen reader users\n\n var labelSorting = '';\n\n if (sortable) {\n if (localSortBy === key) {\n // Currently sorted sortable column\n labelSorting = localSortDesc ? labelSortAsc : labelSortDesc;\n } else {\n // Not currently sorted sortable column\n // Not using nested ternary's here for clarity/readability\n // Default for `aria-label`\n labelSorting = localSortDesc ? labelSortDesc : labelSortAsc; // Handle `sortDirection` setting\n\n var sortDirection = this.sortDirection || field.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n labelSorting = labelSortAsc;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n labelSorting = labelSortDesc;\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n labelSorting = localSortBy ? this.labelSortClear : '';\n } // Return the `.sr-only` sort label or `null` if no label\n\n\n return trim(labelSorting) || null;\n }\n }\n});","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","import { get } from '../../../utils/get';\nimport { isDate, isFunction, isNumber, isNumeric, isUndefinedOrNull } from '../../../utils/inspect';\nimport { toFloat } from '../../../utils/number';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\n\nvar normalizeValue = function normalizeValue(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n }\n\n if (isNumeric(value)) {\n return toFloat(value, value);\n }\n\n return value;\n}; // Default sort compare routine\n//\n// TODO:\n// Add option to sort by multiple columns (tri-state per column,\n// plus order of columns in sort) where `sortBy` could be an array\n// of objects `[ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]`\n// or an array of arrays `[ ['foo','asc'], ['bar','desc'] ]`\n// Multisort will most likely be handled in `mixin-sort.js` by\n// calling this method for each sortBy\n\n\nexport var defaultSortCompare = function defaultSortCompare(a, b) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? null : _ref$sortBy,\n _ref$formatter = _ref.formatter,\n formatter = _ref$formatter === void 0 ? null : _ref$formatter,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? undefined : _ref$locale,\n _ref$localeOptions = _ref.localeOptions,\n localeOptions = _ref$localeOptions === void 0 ? {} : _ref$localeOptions,\n _ref$nullLast = _ref.nullLast,\n nullLast = _ref$nullLast === void 0 ? false : _ref$nullLast;\n\n // Get the value by `sortBy`\n var aa = get(a, sortBy, null);\n var bb = get(b, sortBy, null); // Apply user-provided formatter\n\n if (isFunction(formatter)) {\n aa = formatter(aa, sortBy, a);\n bb = formatter(bb, sortBy, b);\n } // Internally normalize value\n // `null` / `undefined` => ''\n // `'0'` => `0`\n\n\n aa = normalizeValue(aa);\n bb = normalizeValue(bb);\n\n if (isDate(aa) && isDate(bb) || isNumber(aa) && isNumber(bb)) {\n // Special case for comparing dates and numbers\n // Internally dates are compared via their epoch number values\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n } else if (nullLast && aa === '' && bb !== '') {\n // Special case when sorting `null` / `undefined` / '' last\n return 1;\n } else if (nullLast && aa !== '' && bb === '') {\n // Special case when sorting `null` / `undefined` / '' last\n return -1;\n } // Do localized string comparison\n\n\n return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOptions);\n};","function 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\nimport { Vue } from '../../vue';\nimport { NAME_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTbody = /*#__PURE__*/Vue.extend({\n name: NAME_TBODY,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTbody: function isTbody() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n },\n tbodyProps: function tbodyProps() {\n var tbodyTransitionProps = this.tbodyTransitionProps;\n return tbodyTransitionProps ? _objectSpread(_objectSpread({}, tbodyTransitionProps), {}, {\n tag: 'tbody'\n }) : {};\n }\n },\n render: function render(h) {\n var data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n }\n});","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","import { getSel, isElement } from '../../../utils/dom'; // Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nexport var textSelectionActive = function textSelectionActive() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ?\n /* istanbul ignore next */\n sel.containsNode(el, true) : false;\n};","import { Vue } from '../../vue';\nimport { NAME_TH } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BTd, props as BTdProps } from './td'; // --- Props ---\n\nexport var props = makePropsConfigurable(BTdProps, NAME_TH); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTh = /*#__PURE__*/Vue.extend({\n name: NAME_TH,\n extends: BTd,\n props: props,\n computed: {\n tag: function tag() {\n return 'th';\n }\n }\n});","function 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\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 _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 _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 _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\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT_FUNCTION } from '../../../constants/props';\nimport { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';\nimport { get } from '../../../utils/get';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nimport { FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS } from './constants'; // --- Props ---\n\nexport var props = {\n detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),\n tbodyTrClass: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_FUNCTION]))\n}; // --- Mixin ---\n// @vue/component\n\nexport var tbodyRowMixin = Vue.extend({\n props: props,\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n getTdValues: function getTdValues(item, key, tdValue, defaultValue) {\n var $parent = this.$parent;\n\n if (tdValue) {\n var value = get(item, key, '');\n\n if (isFunction(tdValue)) {\n return tdValue(value, key, item);\n } else if (isString(tdValue) && isFunction($parent[tdValue])) {\n return $parent[tdValue](value, key, item);\n }\n\n return tdValue;\n }\n\n return defaultValue;\n },\n getThValues: function getThValues(item, key, thValue, type, defaultValue) {\n var $parent = this.$parent;\n\n if (thValue) {\n var value = get(item, key, '');\n\n if (isFunction(thValue)) {\n return thValue(value, key, item, type);\n } else if (isString(thValue) && isFunction($parent[thValue])) {\n return $parent[thValue](value, key, item, type);\n }\n\n return thValue;\n }\n\n return defaultValue;\n },\n // Method to get the value for a field\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = this.getFieldFormatter(key);\n var value = get(item, key, null);\n\n if (isFunction(formatter)) {\n value = formatter(value, key, item);\n }\n\n return isUndefinedOrNull(value) ? '' : value;\n },\n // Factory function methods\n toggleDetailsFactory: function toggleDetailsFactory(hasDetailsSlot, item) {\n var _this = this;\n\n // Returns a function to toggle a row's details slot\n return function () {\n if (hasDetailsSlot) {\n _this.$set(item, FIELD_KEY_SHOW_DETAILS, !item[FIELD_KEY_SHOW_DETAILS]);\n }\n };\n },\n // Row event handlers\n rowHovered: function rowHovered(event) {\n // `mouseenter` handler (non-bubbling)\n // `this.tbodyRowEventStopped` from tbody mixin\n if (!this.tbodyRowEventStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_HOVERED, event);\n }\n },\n rowUnhovered: function rowUnhovered(event) {\n // `mouseleave` handler (non-bubbling)\n // `this.tbodyRowEventStopped` from tbody mixin\n if (!this.tbodyRowEventStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_UNHOVERED, event);\n }\n },\n // Renders a TD or TH for a row's field\n renderTbodyRowCell: function renderTbodyRowCell(field, colIndex, item, rowIndex) {\n var _this2 = this;\n\n var isStacked = this.isStacked;\n var key = field.key,\n label = field.label,\n isRowHeader = field.isRowHeader;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var formatted = this.getFormattedValue(item, field);\n var stickyColumn = !isStacked && (this.isResponsive || this.stickyHeader) && field.stickyColumn; // We only uses the helper components for sticky columns to\n // improve performance of BTable/BTableLite by reducing the\n // total number of vue instances created during render\n\n var cellTag = stickyColumn ? isRowHeader ? BTh : BTd : isRowHeader ? 'th' : 'td';\n var cellVariant = item[FIELD_KEY_CELL_VARIANT] && item[FIELD_KEY_CELL_VARIANT][key] ? item[FIELD_KEY_CELL_VARIANT][key] : field.variant || null;\n var data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys could be duplicated)\n // TODO: Although we do prevent duplicate field keys...\n // So we could change this to: `row-${rowIndex}-cell-${key}`\n class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n props: {},\n attrs: _objectSpread({\n 'aria-colindex': String(colIndex + 1)\n }, isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {})),\n key: \"row-\".concat(rowIndex, \"-cell-\").concat(colIndex, \"-\").concat(key)\n };\n\n if (stickyColumn) {\n // We are using the helper BTd or BTh\n data.props = {\n stackedHeading: isStacked ? label : null,\n stickyColumn: true,\n variant: cellVariant\n };\n } else {\n // Using native TD or TH element, so we need to\n // add in the attributes and variant class\n data.attrs['data-label'] = isStacked && !isUndefinedOrNull(label) ? toString(label) : null;\n data.attrs.role = isRowHeader ? 'rowheader' : 'cell';\n data.attrs.scope = isRowHeader ? 'row' : null; // Add in the variant class\n\n if (cellVariant) {\n data.class.push(\"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(cellVariant));\n }\n }\n\n var slotScope = {\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, key, ''),\n value: formatted,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n detailsShowing: Boolean(item[FIELD_KEY_SHOW_DETAILS])\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n slotScope.rowSelected = this.isRowSelected(rowIndex);\n\n slotScope.selectRow = function () {\n return _this2.selectRow(rowIndex);\n };\n\n slotScope.unselectRow = function () {\n return _this2.unselectRow(rowIndex);\n };\n } // The new `v-slot` syntax doesn't like a slot name starting with\n // a square bracket and if using in-document HTML templates, the\n // v-slot attributes are lower-cased by the browser.\n // Switched to round bracket syntax to prevent confusion with\n // dynamic slot name syntax.\n // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n // Will be `null` if no slot (or fallback slot) exists\n\n\n var slotName = this.$_bodyFieldSlotNameCache[key];\n var $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', [$childNodes])];\n } // Render either a td or th cell\n\n\n return h(cellTag, data, [$childNodes]);\n },\n // Renders an item's row (or rows if details supported)\n renderTbodyRow: function renderTbodyRow(item, rowIndex) {\n var _this3 = this;\n\n var fields = this.computedFields,\n striped = this.striped,\n primaryKey = this.primaryKey,\n currentPage = this.currentPage,\n perPage = this.perPage,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var rowShowDetails = item[FIELD_KEY_SHOW_DETAILS] && hasDetailsSlot;\n var hasRowClickHandler = this.$listeners[EVENT_NAME_ROW_CLICKED] || this.hasSelectableRowClick; // We can return more than one TR if rowDetails enabled\n\n var $rows = []; // Details ID needed for `aria-details` when details showing\n // We set it to `null` when not showing so that attribute\n // does not appear on the element\n\n var detailsId = rowShowDetails ? this.safeId(\"_details_\".concat(rowIndex, \"_\")) : null; // For each item data field in row\n\n var $tds = fields.map(function (field, colIndex) {\n return _this3.renderTbodyRowCell(field, colIndex, item, rowIndex);\n }); // Calculate the row number in the dataset (indexed from 1)\n\n var ariaRowIndex = null;\n\n if (currentPage && perPage && perPage > 0) {\n ariaRowIndex = String((currentPage - 1) * perPage + rowIndex + 1);\n } // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n\n\n var primaryKeyValue = toString(get(item, primaryKey)) || null;\n var rowKey = primaryKeyValue || toString(rowIndex); // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n\n var rowId = primaryKeyValue ? this.safeId(\"_row_\".concat(primaryKeyValue)) : null; // Selectable classes and attributes\n\n var selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n var selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}; // Additional classes and attributes\n\n var userTrClasses = isFunction(tbodyTrClass) ? tbodyTrClass(item, 'row') : tbodyTrClass;\n var userTrAttrs = isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(item, 'row') : tbodyTrAttr; // Add the item row\n\n $rows.push(h(BTr, {\n class: [userTrClasses, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({\n id: rowId\n }, userTrAttrs), {}, {\n // Users cannot override the following attributes\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': primaryKeyValue || null,\n 'aria-details': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex\n }, selectableAttrs),\n on: {\n // Note: These events are not A11Y friendly!\n mouseenter: this.rowHovered,\n mouseleave: this.rowUnhovered\n },\n key: \"__b-table-row-\".concat(rowKey, \"__\"),\n ref: 'item-rows',\n refInFor: true\n }, $tds)); // Row Details slot\n\n if (rowShowDetails) {\n var detailsScope = {\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n detailsScope.rowSelected = this.isRowSelected(rowIndex);\n\n detailsScope.selectRow = function () {\n return _this3.selectRow(rowIndex);\n };\n\n detailsScope.unselectRow = function () {\n return _this3.unselectRow(rowIndex);\n };\n } // Render the details slot in a TD\n\n\n var $details = h(BTd, {\n props: {\n colspan: fields.length\n },\n class: this.detailsTdClass\n }, [this.normalizeSlot(SLOT_NAME_ROW_DETAILS, detailsScope)]); // Add a hidden row to keep table row striping consistent when details showing\n // Only added if the table is striped\n\n if (striped) {\n $rows.push( // We don't use `BTr` here as we don't need the extra functionality\n h('tr', {\n staticClass: 'd-none',\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n },\n key: \"__b-table-details-stripe__\".concat(rowKey)\n }));\n } // Add the actual details row\n\n\n var userDetailsTrClasses = isFunction(this.tbodyTrClass) ?\n /* istanbul ignore next */\n this.tbodyTrClass(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrClass;\n var userDetailsTrAttrs = isFunction(this.tbodyTrAttr) ?\n /* istanbul ignore next */\n this.tbodyTrAttr(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrAttr;\n $rows.push(h(BTr, {\n staticClass: 'b-table-details',\n class: [userDetailsTrClasses],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({}, userDetailsTrAttrs), {}, {\n // Users cannot override the following attributes\n id: detailsId,\n tabindex: '-1'\n }),\n key: \"__b-table-details__\".concat(rowKey)\n }, [$details]));\n } else if (hasDetailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h());\n\n if (striped) {\n // Add extra placeholder if table is striped\n $rows.push(h());\n }\n } // Return the row(s)\n\n\n return $rows;\n }\n }\n});","function 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\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED } from '../../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_SPACE, CODE_UP } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { arrayIncludes, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, isActiveElement, isElement } from '../../../utils/dom';\nimport { stopEvent } from '../../../utils/events';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, pluckProps } from '../../../utils/props';\nimport { BTbody, props as BTbodyProps } from '../tbody';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\nimport { tbodyRowMixin, props as tbodyRowProps } from './mixin-tbody-row'; // --- Helper methods ---\n\nvar getCellSlotName = function getCellSlotName(value) {\n return \"cell(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread({}, BTbodyProps), tbodyRowProps), {}, {\n tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})); // --- Mixin ---\n// @vue/component\n\nexport var tbodyMixin = Vue.extend({\n mixins: [tbodyRowMixin],\n props: props,\n beforeDestroy: function beforeDestroy() {\n this.$_bodyFieldSlotNameCache = null;\n },\n methods: {\n // Returns all the item TR elements (excludes detail and spacer rows)\n // `this.$refs['item-rows']` is an array of item TR components/elements\n // Rows should all be `` components, but we map to TR elements\n // Also note that `this.$refs['item-rows']` may not always be in document order\n getTbodyTrs: function getTbodyTrs() {\n var $refs = this.$refs;\n var tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n var trs = ($refs['item-rows'] || []).map(function (tr) {\n return tr.$el || tr;\n });\n return tbody && tbody.children && tbody.children.length > 0 && trs && trs.length > 0 ? arrayFrom(tbody.children).filter(function (tr) {\n return arrayIncludes(trs, tr);\n }) :\n /* istanbul ignore next */\n [];\n },\n // Returns index of a particular TBODY item TR\n // We set `true` on closest to include self in result\n getTbodyTrIndex: function getTbodyTrIndex(el) {\n /* istanbul ignore next: should not normally happen */\n if (!isElement(el)) {\n return -1;\n }\n\n var tr = el.tagName === 'TR' ? el : closest('tr', el, true);\n return tr ? this.getTbodyTrs().indexOf(tr) : -1;\n },\n // Emits a row event, with the item object, row index and original event\n emitTbodyRowEvent: function emitTbodyRowEvent(type, event) {\n if (type && this.hasListener(type) && event && event.target) {\n var rowIndex = this.getTbodyTrIndex(event.target);\n\n if (rowIndex > -1) {\n // The array of TRs correlate to the `computedItems` array\n var item = this.computedItems[rowIndex];\n this.$emit(type, item, rowIndex, event);\n }\n }\n },\n tbodyRowEventStopped: function tbodyRowEventStopped(event) {\n return this.stopIfBusy && this.stopIfBusy(event);\n },\n // Delegated row event handlers\n onTbodyRowKeydown: function onTbodyRowKeydown(event) {\n // Keyboard navigation and row click emulation\n var target = event.target,\n keyCode = event.keyCode;\n\n if (this.tbodyRowEventStopped(event) || target.tagName !== 'TR' || !isActiveElement(target) || target.tabIndex !== 0) {\n // Early exit if not an item row TR\n return;\n }\n\n if (arrayIncludes([CODE_ENTER, CODE_SPACE], keyCode)) {\n // Emulated click for keyboard users, transfer to click handler\n stopEvent(event);\n this.onTBodyRowClicked(event);\n } else if (arrayIncludes([CODE_UP, CODE_DOWN, CODE_HOME, CODE_END], keyCode)) {\n // Keyboard navigation\n var rowIndex = this.getTbodyTrIndex(target);\n\n if (rowIndex > -1) {\n stopEvent(event);\n var trs = this.getTbodyTrs();\n var shift = event.shiftKey;\n\n if (keyCode === CODE_HOME || shift && keyCode === CODE_UP) {\n // Focus first row\n attemptFocus(trs[0]);\n } else if (keyCode === CODE_END || shift && keyCode === CODE_DOWN) {\n // Focus last row\n attemptFocus(trs[trs.length - 1]);\n } else if (keyCode === CODE_UP && rowIndex > 0) {\n // Focus previous row\n attemptFocus(trs[rowIndex - 1]);\n } else if (keyCode === CODE_DOWN && rowIndex < trs.length - 1) {\n // Focus next row\n attemptFocus(trs[rowIndex + 1]);\n }\n }\n }\n },\n onTBodyRowClicked: function onTBodyRowClicked(event) {\n var $refs = this.$refs;\n var tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null; // Don't emit event when the table is busy, the user clicked\n // on a non-disabled control or is selecting text\n\n if (this.tbodyRowEventStopped(event) || filterEvent(event) || textSelectionActive(tbody || this.$el)) {\n return;\n }\n\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event);\n },\n onTbodyRowMiddleMouseRowClicked: function onTbodyRowMiddleMouseRowClicked(event) {\n if (!this.tbodyRowEventStopped(event) && event.which === 2) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_MIDDLE_CLICKED, event);\n }\n },\n onTbodyRowContextmenu: function onTbodyRowContextmenu(event) {\n if (!this.tbodyRowEventStopped(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CONTEXTMENU, event);\n }\n },\n onTbodyRowDblClicked: function onTbodyRowDblClicked(event) {\n if (!this.tbodyRowEventStopped(event) && !filterEvent(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_DBLCLICKED, event);\n }\n },\n // Render the tbody element and children\n // Note:\n // Row hover handlers are handled by the tbody-row mixin\n // As mouseenter/mouseleave events do not bubble\n renderTbody: function renderTbody() {\n var _this = this;\n\n var items = this.computedItems,\n renderBusy = this.renderBusy,\n renderTopRow = this.renderTopRow,\n renderEmpty = this.renderEmpty,\n renderBottomRow = this.renderBottomRow;\n var h = this.$createElement;\n var hasRowClickHandler = this.hasListener(EVENT_NAME_ROW_CLICKED) || this.hasSelectableRowClick; // Prepare the tbody rows\n\n var $rows = []; // Add the item data rows or the busy slot\n\n var $busy = renderBusy ? renderBusy() : null;\n\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy);\n } else {\n // Table isn't busy, or we don't have a busy slot\n // Create a slot cache for improved performance when looking up cell slot names\n // Values will be keyed by the field's `key` and will store the slot's name\n // Slots could be dynamic (i.e. `v-if`), so we must compute on each render\n // Used by tbody-row mixin render helper\n var cache = {};\n var defaultSlotName = getCellSlotName();\n defaultSlotName = this.hasNormalizedSlot(defaultSlotName) ? defaultSlotName : null;\n this.computedFields.forEach(function (field) {\n var key = field.key;\n var slotName = getCellSlotName(key);\n var lowercaseSlotName = getCellSlotName(key.toLowerCase());\n cache[key] = _this.hasNormalizedSlot(slotName) ? slotName : _this.hasNormalizedSlot(lowercaseSlotName) ?\n /* istanbul ignore next */\n lowercaseSlotName : defaultSlotName;\n }); // Created as a non-reactive property so to not trigger component updates\n // Must be a fresh object each render\n\n this.$_bodyFieldSlotNameCache = cache; // Add static top row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderTopRow ? renderTopRow() : h()); // Render the rows\n\n items.forEach(function (item, rowIndex) {\n // Render the individual item row (rows if details slot)\n $rows.push(_this.renderTbodyRow(item, rowIndex));\n }); // Empty items / empty filtered row slot (only shows if `items.length < 1`)\n\n $rows.push(renderEmpty ? renderEmpty() : h()); // Static bottom row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderBottomRow ? renderBottomRow() : h());\n } // Note: these events will only emit if a listener is registered\n\n\n var handlers = {\n auxclick: this.onTbodyRowMiddleMouseRowClicked,\n // TODO:\n // Perhaps we do want to automatically prevent the\n // default context menu from showing if there is a\n // `row-contextmenu` listener registered\n contextmenu: this.onTbodyRowContextmenu,\n // The following event(s) is not considered A11Y friendly\n dblclick: this.onTbodyRowDblClicked // Hover events (`mouseenter`/`mouseleave`) are handled by `tbody-row` mixin\n\n }; // Add in click/keydown listeners if needed\n\n if (hasRowClickHandler) {\n handlers.click = this.onTBodyRowClicked;\n handlers.keydown = this.onTbodyRowKeydown;\n } // Assemble rows into the tbody\n\n\n var $tbody = h(BTbody, {\n class: this.tbodyClass || null,\n props: pluckProps(BTbodyProps, this.$props),\n // BTbody transfers all native event listeners to the root element\n // TODO: Only set the handlers if the table is not busy\n on: handlers,\n ref: 'tbody'\n }, $rows); // Return the assembled tbody\n\n return $tbody;\n }\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTfoot = /*#__PURE__*/Vue.extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTfoot: function isTfoot() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'rowgroup'\n });\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot'; // --- Props ---\n\nexport var props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tfootMixin = Vue.extend({\n props: props,\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n\n return h();\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Also sniffed by `` / `` / ``\n // Supported values: 'lite', 'dark', or `null`\n headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BThead = /*#__PURE__*/Vue.extend({\n name: NAME_THEAD,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isThead: function isThead() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n theadClasses: function theadClasses() {\n return [this.headVariant ? \"thead-\".concat(this.headVariant) : null];\n },\n theadAttrs: function theadAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","function _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 _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 _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 _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 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\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active'; // --- Helper methods ---\n\nvar getHeadSlotName = function getHeadSlotName(value) {\n return \"head(\".concat(value || '', \")\");\n};\n\nvar getFootSlotName = function getFootSlotName(value) {\n return \"foot(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var theadMixin = Vue.extend({\n props: props,\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field () classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var fields = this.computedFields,\n isSortable = this.isSortable,\n isSelectable = this.isSelectable,\n headVariant = this.headVariant,\n footVariant = this.footVariant,\n headRowVariant = this.headRowVariant,\n footRowVariant = this.footRowVariant;\n var h = this.$createElement; // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n\n var hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED); // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n\n var selectAllRows = isSelectable ? this.selectAllRows : noop;\n var clearSelected = isSelectable ? this.clearSelected : noop; // Helper function to generate a field cell\n\n var makeCell = function makeCell(field, colIndex) {\n var label = field.label,\n labelHtml = field.labelHtml,\n variant = field.variant,\n stickyColumn = field.stickyColumn,\n key = field.key;\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var on = {};\n\n if (hasHeadClickListener) {\n on.click = function (event) {\n _this.headClicked(event, field, isFoot);\n };\n\n on.keydown = function (event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n _this.headClicked(event, field, isFoot);\n }\n };\n }\n\n var sortAttrs = isSortable ? _this.sortTheadThAttrs(key, field, isFoot) : {};\n var sortClass = isSortable ? _this.sortTheadThClasses(key, field, isFoot) : null;\n var sortLabel = isSortable ? _this.sortTheadThLabel(key, field, isFoot) : null;\n var data = {\n class: [{\n // We need to make the header cell relative when we have\n // a `.sr-only` sort label to work around overflow issues\n 'position-relative': sortLabel\n }, _this.fieldClasses(field), sortClass],\n props: {\n variant: variant,\n stickyColumn: stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread(_objectSpread({\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel\n }, _this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {})), sortAttrs),\n on: on,\n key: key\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()]; // Footer will fallback to header slot names\n\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName()].concat(_toConsumableArray(slotNames));\n }\n\n var scope = {\n label: label,\n column: key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n var $content = _this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n var $srLabel = sortLabel ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(sortLabel, \")\")) : null; // Return the header cell\n\n return h(BTh, data, [$content, $srLabel].filter(identity));\n }; // Generate the array of cells\n\n\n var $cells = fields.map(makeCell).filter(identity); // Generate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant :\n /* istanbul ignore next */\n footRowVariant\n }\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TOP_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var topRowMixin = Vue.extend({\n methods: {\n renderTopRow: function renderTopRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_TOP_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-top-row',\n class: [isFunction(tbodyTrClass) ? tbodyTrClass(null, 'row-top') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? tbodyTrAttr(null, 'row-top') : tbodyTrAttr,\n key: 'b-top-row'\n }, [this.normalizeSlot(SLOT_NAME_TOP_ROW, {\n columns: fields.length,\n fields: fields\n })]);\n }\n }\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_TABLE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { bottomRowMixin, props as bottomRowProps } from './helpers/mixin-bottom-row';\nimport { busyMixin, props as busyProps } from './helpers/mixin-busy';\nimport { captionMixin, props as captionProps } from './helpers/mixin-caption';\nimport { colgroupMixin, props as colgroupProps } from './helpers/mixin-colgroup';\nimport { emptyMixin, props as emptyProps } from './helpers/mixin-empty';\nimport { filteringMixin, props as filteringProps } from './helpers/mixin-filtering';\nimport { itemsMixin, props as itemsProps } from './helpers/mixin-items';\nimport { paginationMixin, props as paginationProps } from './helpers/mixin-pagination';\nimport { providerMixin, props as providerProps } from './helpers/mixin-provider';\nimport { selectableMixin, props as selectableProps } from './helpers/mixin-selectable';\nimport { sortingMixin, props as sortingProps } from './helpers/mixin-sorting';\nimport { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer';\nimport { tbodyMixin, props as tbodyProps } from './helpers/mixin-tbody';\nimport { tfootMixin, props as tfootProps } from './helpers/mixin-tfoot';\nimport { theadMixin, props as theadProps } from './helpers/mixin-thead';\nimport { topRowMixin, props as topRowProps } from './helpers/mixin-top-row'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), bottomRowProps), busyProps), captionProps), colgroupProps), emptyProps), filteringProps), itemsProps), paginationProps), providerProps), selectableProps), sortingProps), stackedProps), tableRendererProps), tbodyProps), tfootProps), theadProps), topRowProps)), NAME_TABLE); // --- Main component ---\n// @vue/component\n\nexport var BTable = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [// General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin, // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Table features mixins\n stackedMixin, filteringMixin, sortingMixin, paginationMixin, captionMixin, colgroupMixin, selectableMixin, emptyMixin, topRowMixin, bottomRowMixin, busyMixin, providerMixin],\n props: props // Render function is provided by `tableRendererMixin`\n\n});","function 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\nimport { Vue } from '../../vue';\nimport { NAME_TABLE_LITE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { captionMixin, props as captionProps } from './helpers/mixin-caption';\nimport { colgroupMixin, props as colgroupProps } from './helpers/mixin-colgroup';\nimport { itemsMixin, props as itemsProps } from './helpers/mixin-items';\nimport { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer';\nimport { tbodyMixin, props as tbodyProps } from './helpers/mixin-tbody';\nimport { tfootMixin, props as tfootProps } from './helpers/mixin-tfoot';\nimport { theadMixin, props as theadProps } from './helpers/mixin-thead'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), captionProps), colgroupProps), itemsProps), stackedProps), tableRendererProps), tbodyProps), tfootProps), theadProps)), NAME_TABLE_LITE); // --- Main component ---\n// @vue/component\n\nexport var BTableLite = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_LITE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [// General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin, // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Table features mixins\n // These are pretty lightweight, and are useful for lightweight tables\n captionMixin, colgroupMixin],\n props: props // Render function is provided by `tableRendererMixin`\n\n});","var _watch;\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\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/Vue.extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n bvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvent: function handleEvent(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvent = this.handleEvent;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvent,\n keydown: handleEvent\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this2 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this2.$nextTick(function () {\n requestAF(function () {\n _this2.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs.filter(function ($tab) {\n return $tab.$children.filter(function ($t) {\n return $t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this3 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this3.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this4.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true\n });\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});","import { BTable } from './table';\nimport { BTableLite } from './table-lite';\nimport { BTableSimple } from './table-simple';\nimport { BTbody } from './tbody';\nimport { BThead } from './thead';\nimport { BTfoot } from './tfoot';\nimport { BTr } from './tr';\nimport { BTd } from './td';\nimport { BTh } from './th';\nimport { pluginFactory } from '../../utils/plugins';\nvar TableLitePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTableLite: BTableLite\n }\n});\nvar TableSimplePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTableSimple: BTableSimple,\n BTbody: BTbody,\n BThead: BThead,\n BTfoot: BTfoot,\n BTr: BTr,\n BTd: BTd,\n BTh: BTh\n }\n});\nvar TablePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTable: BTable\n },\n plugins: {\n TableLitePlugin: TableLitePlugin,\n TableSimplePlugin: TableSimplePlugin\n }\n});\nexport { // Plugins\nTablePlugin, TableLitePlugin, TableSimplePlugin, // Table components\nBTable, BTableLite, BTableSimple, // Helper components\nBTbody, BThead, BTfoot, BTr, BTd, BTh };","var _objectSpread2, _watch;\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\nimport { Vue } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ACTIVE = 'active';\nvar MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_ACTIVE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"buttonId\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"disabled\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"lazy\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"noBody\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"tag\", makeProp(PROP_TYPE_STRING, 'div')), _defineProperty(_objectSpread2, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"titleItemClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _defineProperty(_objectSpread2, \"titleLinkAttributes\", makeProp(PROP_TYPE_OBJECT)), _defineProperty(_objectSpread2, \"titleLinkClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _objectSpread2))), NAME_TAB); // --- Main component ---\n// @vue/component\n\nexport var BTab = /*#__PURE__*/Vue.extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {};\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n },\n tabClasses: function tabClasses() {\n var active = this.localActive,\n disabled = this.disabled;\n return [{\n active: active,\n disabled: disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_ACTIVE, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n var firstTab = this.bvTabs.firstTab;\n\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n }), _defineProperty(_watch, \"localActive\", function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }), _watch),\n mounted: function mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n var updateButton = this.bvTabs.updateButton;\n\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `` of our presence\n var registerTab = this.bvTabs.registerTab;\n\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab: function unregisterTab() {\n // Inform `` of our departure\n var unregisterTab = this.bvTabs.unregisterTab;\n\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate: function activate() {\n // Not inside a `` component or tab is disabled\n var activateTab = this.bvTabs.activateTab;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate: function deactivate() {\n // Not inside a `` component or not active to begin with\n var deactivateTab = this.bvTabs.deactivateTab;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render: function render(h) {\n var localActive = this.localActive;\n var $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n }, // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});","var _watch;\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\nimport { Portal, Wormhole } from 'portal-vue';\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_TOAST, NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_DESTROYED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_TOAST_TITLE } from '../../constants/slots';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { requestAF } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { BButtonClose } from '../button/button-close';\nimport { BLink, props as BLinkProps } from '../link/link';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BToaster } from './toaster'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar MIN_DURATION = 1000; // --- Props ---\n\nvar linkProps = pick(BLinkProps, ['href', 'to']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), linkProps), {}, {\n appendToast: makeProp(PROP_TYPE_BOOLEAN, false),\n autoHideDelay: makeProp(PROP_TYPE_NUMBER_STRING, 5000),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n // Switches role to 'status' and aria-live to 'polite'\n isStatus: makeProp(PROP_TYPE_BOOLEAN, false),\n noAutoHide: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseButton: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\n solid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Render the toast in place, rather than in a portal-target\n static: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n toastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toaster: makeProp(PROP_TYPE_STRING, 'b-toaster-top-right'),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_TOAST); // --- Main component ---\n// @vue/component\n\nexport var BToast = /*#__PURE__*/Vue.extend({\n name: NAME_TOAST,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin, scopedStyleMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n isMounted: false,\n doRender: false,\n localShow: false,\n isTransitioning: false,\n isHiding: false,\n order: 0,\n dismissStarted: 0,\n resumeDismiss: 0\n };\n },\n computed: {\n toastClasses: function toastClasses() {\n var appendToast = this.appendToast,\n variant = this.variant;\n return _defineProperty({\n 'b-toast-solid': this.solid,\n 'b-toast-append': appendToast,\n 'b-toast-prepend': !appendToast\n }, \"b-toast-\".concat(variant), variant);\n },\n slotScope: function slotScope() {\n var hide = this.hide;\n return {\n hide: hide\n };\n },\n computedDuration: function computedDuration() {\n // Minimum supported duration is 1 second\n return mathMax(toInteger(this.autoHideDelay, 0), MIN_DURATION);\n },\n computedToaster: function computedToaster() {\n return String(this.toaster);\n },\n transitionHandlers: function transitionHandlers() {\n return {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n afterLeave: this.onAfterLeave\n };\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n id: this.safeId(),\n tabindex: '0'\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this[newValue ? 'show' : 'hide']();\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n if (newValue !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _defineProperty(_watch, \"toaster\", function toaster() {\n // If toaster target changed, make sure toaster exists\n this.$nextTick(this.ensureToaster);\n }), _defineProperty(_watch, \"static\", function _static(newValue) {\n // If static changes to true, and the toast is showing,\n // ensure the toaster target exists\n if (newValue && this.localShow) {\n this.ensureToaster();\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_dismissTimer = null;\n },\n mounted: function mounted() {\n var _this = this;\n\n this.isMounted = true;\n this.$nextTick(function () {\n if (_this[MODEL_PROP_NAME]) {\n requestAF(function () {\n _this.show();\n });\n }\n }); // Listen for global $root show events\n\n this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), function (id) {\n if (id === _this.safeId()) {\n _this.show();\n }\n }); // Listen for global $root hide events\n\n this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), function (id) {\n if (!id || id === _this.safeId()) {\n _this.hide();\n }\n }); // Make sure we hide when toaster is destroyed\n\n /* istanbul ignore next: difficult to test */\n\n this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), function (toaster) {\n /* istanbul ignore next */\n if (toaster === _this.computedToaster) {\n _this.hide();\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDismissTimer();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n if (!this.localShow) {\n this.ensureToaster();\n var showEvent = this.buildEvent(EVENT_NAME_SHOW);\n this.emitEvent(showEvent);\n this.dismissStarted = this.resumeDismiss = 0;\n this.order = Date.now() * (this.appendToast ? 1 : -1);\n this.isHiding = false;\n this.doRender = true;\n this.$nextTick(function () {\n // We show the toast after we have rendered the portal and b-toast wrapper\n // so that screen readers will properly announce the toast\n requestAF(function () {\n _this2.localShow = true;\n });\n });\n }\n },\n hide: function hide() {\n var _this3 = this;\n\n if (this.localShow) {\n var hideEvent = this.buildEvent(EVENT_NAME_HIDE);\n this.emitEvent(hideEvent);\n this.setHoverHandler(false);\n this.dismissStarted = this.resumeDismiss = 0;\n this.clearDismissTimer();\n this.isHiding = true;\n requestAF(function () {\n _this3.localShow = false;\n });\n }\n },\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvEvent(type, _objectSpread(_objectSpread({\n cancelable: false,\n target: this.$el || null,\n relatedTarget: null\n }, options), {}, {\n vueTarget: this,\n componentId: this.safeId()\n }));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_TOAST, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n ensureToaster: function ensureToaster() {\n if (this.static) {\n return;\n }\n\n var computedToaster = this.computedToaster;\n\n if (!Wormhole.hasTarget(computedToaster)) {\n var div = document.createElement('div');\n document.body.appendChild(div);\n var toaster = new BToaster({\n parent: this.$root,\n propsData: {\n name: computedToaster\n }\n });\n toaster.$mount(div);\n }\n },\n startDismissTimer: function startDismissTimer() {\n this.clearDismissTimer();\n\n if (!this.noAutoHide) {\n this.$_dismissTimer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration);\n this.dismissStarted = Date.now();\n this.resumeDismiss = 0;\n }\n },\n clearDismissTimer: function clearDismissTimer() {\n clearTimeout(this.$_dismissTimer);\n this.$_dismissTimer = null;\n },\n setHoverHandler: function setHoverHandler(on) {\n var el = this.$refs['b-toast'];\n eventOnOff(on, el, 'mouseenter', this.onPause, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, el, 'mouseleave', this.onUnPause, EVENT_OPTIONS_NO_CAPTURE);\n },\n onPause: function onPause() {\n // Determine time remaining, and then pause timer\n if (this.noAutoHide || this.noHoverPause || !this.$_dismissTimer || this.resumeDismiss) {\n return;\n }\n\n var passed = Date.now() - this.dismissStarted;\n\n if (passed > 0) {\n this.clearDismissTimer();\n this.resumeDismiss = mathMax(this.computedDuration - passed, MIN_DURATION);\n }\n },\n onUnPause: function onUnPause() {\n // Restart timer with max of time remaining or 1 second\n if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n this.resumeDismiss = this.dismissStarted = 0;\n return;\n }\n\n this.startDismissTimer();\n },\n onLinkClick: function onLinkClick() {\n var _this4 = this;\n\n // We delay the close to allow time for the\n // browser to process the link click\n this.$nextTick(function () {\n requestAF(function () {\n _this4.hide();\n });\n });\n },\n onBeforeEnter: function onBeforeEnter() {\n this.isTransitioning = true;\n },\n onAfterEnter: function onAfterEnter() {\n this.isTransitioning = false;\n var hiddenEvent = this.buildEvent(EVENT_NAME_SHOWN);\n this.emitEvent(hiddenEvent);\n this.startDismissTimer();\n this.setHoverHandler(true);\n },\n onBeforeLeave: function onBeforeLeave() {\n this.isTransitioning = true;\n },\n onAfterLeave: function onAfterLeave() {\n this.isTransitioning = false;\n this.order = 0;\n this.resumeDismiss = this.dismissStarted = 0;\n var hiddenEvent = this.buildEvent(EVENT_NAME_HIDDEN);\n this.emitEvent(hiddenEvent);\n this.doRender = false;\n },\n // Render helper for generating the toast\n makeToast: function makeToast(h) {\n var _this5 = this;\n\n var title = this.title,\n slotScope = this.slotScope;\n var link = isLink(this);\n var $headerContent = [];\n var $title = this.normalizeSlot(SLOT_NAME_TOAST_TITLE, slotScope);\n\n if ($title) {\n $headerContent.push($title);\n } else if (title) {\n $headerContent.push(h('strong', {\n staticClass: 'mr-2'\n }, title));\n }\n\n if (!this.noCloseButton) {\n $headerContent.push(h(BButtonClose, {\n staticClass: 'ml-auto mb-1',\n on: {\n click: function click() {\n _this5.hide();\n }\n }\n }));\n }\n\n var $header = h();\n\n if ($headerContent.length > 0) {\n $header = h(this.headerTag, {\n staticClass: 'toast-header',\n class: this.headerClass\n }, $headerContent);\n }\n\n var $body = h(link ? BLink : 'div', {\n staticClass: 'toast-body',\n class: this.bodyClass,\n props: link ? pluckProps(linkProps, this) : {},\n on: link ? {\n click: this.onLinkClick\n } : {}\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, slotScope));\n return h('div', {\n staticClass: 'toast',\n class: this.toastClass,\n attrs: this.computedAttrs,\n key: \"toast-\".concat(this[COMPONENT_UID_KEY]),\n ref: 'toast'\n }, [$header, $body]);\n }\n },\n render: function render(h) {\n if (!this.doRender || !this.isMounted) {\n return h();\n }\n\n var order = this.order,\n isStatic = this.static,\n isHiding = this.isHiding,\n isStatus = this.isStatus;\n var name = \"b-toast-\".concat(this[COMPONENT_UID_KEY]);\n var $toast = h('div', {\n staticClass: 'b-toast',\n class: this.toastClasses,\n attrs: _objectSpread(_objectSpread({}, isStatic ? {} : this.scopedStyleAttrs), {}, {\n id: this.safeId('_toast_outer'),\n role: isHiding ? null : isStatus ? 'status' : 'alert',\n 'aria-live': isHiding ? null : isStatus ? 'polite' : 'assertive',\n 'aria-atomic': isHiding ? null : 'true'\n }),\n key: name,\n ref: 'b-toast'\n }, [h(BVTransition, {\n props: {\n noFade: this.noFade\n },\n on: this.transitionHandlers\n }, [this.localShow ? this.makeToast(h) : h()])]);\n return h(Portal, {\n props: {\n name: name,\n to: this.computedToaster,\n order: order,\n slim: true,\n disabled: isStatic\n }\n }, [$toast]);\n }\n});","import { BTabs } from './tabs';\nimport { BTab } from './tab';\nimport { pluginFactory } from '../../utils/plugins';\nvar TabsPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTabs: BTabs,\n BTab: BTab\n }\n});\nexport { TabsPlugin, BTabs, BTab };","import { BTime } from './time';\nimport { pluginFactory } from '../../utils/plugins';\nvar TimePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTime: BTime\n }\n});\nexport { TimePlugin, BTime };","import { PortalTarget, Wormhole } from 'portal-vue';\nimport { Vue } from '../../vue';\nimport { NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_DESTROYED } from '../../constants/events';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { removeClass, requestAF } from '../../utils/dom';\nimport { getRootEventName } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { warn } from '../../utils/warn';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Helper components ---\n// @vue/component\n\nexport var DefaultTransition = /*#__PURE__*/Vue.extend({\n mixins: [normalizeSlotMixin],\n data: function data() {\n return {\n // Transition classes base name\n name: 'b-toaster'\n };\n },\n methods: {\n onAfterEnter: function onAfterEnter(el) {\n var _this = this;\n\n // Work around a Vue.js bug where `*-enter-to` class is not removed\n // See: https://github.com/vuejs/vue/pull/7901\n // The `*-move` class is also stuck on elements that moved,\n // but there are no JavaScript hooks to handle after move\n // See: https://github.com/vuejs/vue/pull/7906\n requestAF(function () {\n removeClass(el, \"\".concat(_this.name, \"-enter-to\"));\n });\n }\n },\n render: function render(h) {\n return h('transition-group', {\n props: {\n tag: 'div',\n name: this.name\n },\n on: {\n afterEnter: this.onAfterEnter\n }\n }, this.normalizeSlot());\n }\n}); // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Allowed: 'true' or 'false' or `null`\n ariaAtomic: makeProp(PROP_TYPE_STRING),\n ariaLive: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING, undefined, true),\n // Required\n // Aria role\n role: makeProp(PROP_TYPE_STRING)\n}, NAME_TOASTER); // --- Main component ---\n// @vue/component\n\nexport var BToaster = /*#__PURE__*/Vue.extend({\n name: NAME_TOASTER,\n mixins: [listenOnRootMixin],\n props: props,\n data: function data() {\n return {\n // We don't render on SSR or if a an existing target found\n doRender: false,\n dead: false,\n // Toaster names cannot change once created\n staticName: this.name\n };\n },\n beforeMount: function beforeMount() {\n var name = this.name;\n this.staticName = name;\n /* istanbul ignore if */\n\n if (Wormhole.hasTarget(name)) {\n warn(\"A \\\"\\\" with name \\\"\".concat(name, \"\\\" already exists in the document.\"), NAME_TOASTER);\n this.dead = true;\n } else {\n this.doRender = true;\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Let toasts made with `this.$bvToast.toast()` know that this toaster\n // is being destroyed and should should also destroy/hide themselves\n if (this.doRender) {\n this.emitOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), this.name);\n }\n },\n destroyed: function destroyed() {\n // Remove from DOM if needed\n var $el = this.$el;\n /* istanbul ignore next: difficult to test */\n\n if ($el && $el.parentNode) {\n $el.parentNode.removeChild($el);\n }\n },\n render: function render(h) {\n var $toaster = h('div', {\n class: ['d-none', {\n 'b-dead-toaster': this.dead\n }]\n });\n\n if (this.doRender) {\n var $target = h(PortalTarget, {\n staticClass: 'b-toaster-slot',\n props: {\n name: this.staticName,\n multiple: true,\n tag: 'div',\n slim: false,\n // transition: this.transition || DefaultTransition\n transition: DefaultTransition\n }\n });\n $toaster = h('div', {\n staticClass: 'b-toaster',\n class: [this.staticName],\n attrs: {\n id: this.staticName,\n // Fallback to null to make sure attribute doesn't exist\n role: this.role || null,\n 'aria-live': this.ariaLive,\n 'aria-atomic': this.ariaAtomic\n }\n }, [$target]);\n }\n\n return $toaster;\n }\n});","function _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 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\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 _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 _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 _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\n/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\nimport { NAME_TOAST, NAME_TOASTER, NAME_TOAST_POP } from '../../../constants/components';\nimport { EVENT_NAME_DESTROYED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootEventName, getRootActionEventName } from '../../../utils/events';\nimport { isUndefined, isString } from '../../../utils/inspect';\nimport { assign, defineProperties, defineProperty, hasOwnProperty, keys, omit, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient } from '../../../utils/warn';\nimport { BToast, props as toastProps } from '../toast'; // --- Constants ---\n\nvar PROP_NAME = '$bvToast';\nvar PROP_NAME_PRIV = '_bv__toast'; // Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\n\nvar BASE_PROPS = ['id'].concat(_toConsumableArray(keys(omit(toastProps, ['static', 'visible'])))); // Map prop names to toast slot names\n\nvar propsToSlots = {\n toastContent: 'default',\n title: 'toast-title'\n}; // --- Helper methods ---\n// Method to filter only recognized props that are not undefined\n\nvar filterOptions = function filterOptions(options) {\n return BASE_PROPS.reduce(function (memo, key) {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n\n return memo;\n }, {});\n}; // Method to install `$bvToast` VM injection\n\n\nvar plugin = function plugin(Vue) {\n // Create a private sub-component constructor that\n // extends BToast and self-destructs after hidden\n // @vue/component\n var BVToastPop = Vue.extend({\n name: NAME_TOAST_POP,\n extends: BToast,\n destroyed: function destroyed() {\n // Make sure we not in document any more\n var $el = this.$el;\n\n if ($el && $el.parentNode) {\n $el.parentNode.removeChild($el);\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Self destruct handler\n var handleDestroy = function handleDestroy() {\n // Ensure the toast has been force hidden\n _this.localShow = false;\n _this.doRender = false;\n\n _this.$nextTick(function () {\n _this.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n // and to allow the portal-target time to remove the content\n requestAF(function () {\n _this.$destroy();\n });\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy); // Self destruct when toaster is destroyed\n\n this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), function (toaster) {\n /* istanbul ignore next: hard to test */\n if (toaster === _this.toaster) {\n handleDestroy();\n }\n });\n }\n }); // Private method to generate the on-demand toast\n\n var makeToast = function makeToast(props, $parent) {\n if (warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n } // Create an instance of `BVToastPop` component\n\n\n var toast = new BVToastPop({\n // We set parent as the local VM so these toasts can emit events on the\n // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n parent: $parent,\n propsData: _objectSpread(_objectSpread(_objectSpread({}, filterOptions(getComponentConfig(NAME_TOAST))), omit(props, keys(propsToSlots))), {}, {\n // Props that can't be overridden\n static: false,\n visible: true\n })\n }); // Convert certain props to slots\n\n keys(propsToSlots).forEach(function (prop) {\n var value = props[prop];\n\n if (!isUndefined(value)) {\n // Can be a string, or array of VNodes\n if (prop === 'title' && isString(value)) {\n // Special case for title if it is a string, we wrap in a \n value = [$parent.$createElement('strong', {\n class: 'mr-2'\n }, value)];\n }\n\n toast.$slots[propsToSlots[prop]] = concat(value);\n }\n }); // Create a mount point (a DIV) and mount it (which triggers the show)\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n toast.$mount(div);\n }; // Declare BvToast instance property class\n\n\n var BvToast = /*#__PURE__*/function () {\n function BvToast(vm) {\n _classCallCheck(this, BvToast);\n\n // Assign the new properties to this instance\n assign(this, {\n _vm: vm,\n _root: vm.$root\n }); // Set these properties as read-only and non-enumerable\n\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n } // --- Public Instance methods ---\n // Opens a user defined toast and returns immediately\n\n\n _createClass(BvToast, [{\n key: \"toast\",\n value: function toast(content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!content || warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n }\n\n makeToast(_objectSpread(_objectSpread({}, filterOptions(options)), {}, {\n toastContent: content\n }), this._vm);\n } // shows a `` component with the specified ID\n\n }, {\n key: \"show\",\n value: function show(id) {\n if (id) {\n this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), id);\n }\n } // Hide a toast with specified ID, or if not ID all toasts\n\n }, {\n key: \"hide\",\n value: function hide() {\n var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), id);\n }\n }]);\n\n return BvToast;\n }(); // Add our instance mixin\n\n\n Vue.mixin({\n beforeCreate: function beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvToast` for each VM\n this[PROP_NAME_PRIV] = new BvToast(this);\n }\n }); // Define our read-only `$bvToast` instance property\n // Placed in an if just in case in HMR mode\n\n if (!hasOwnProperty(Vue.prototype, PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get: function get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(\"\\\"\".concat(PROP_NAME, \"\\\" must be accessed from a Vue instance \\\"this\\\" context.\"), NAME_TOAST);\n }\n\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\n\nexport var BVToastPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n plugin: plugin\n }\n});","import { BVToastPlugin } from './helpers/bv-toast';\nimport { BToast } from './toast';\nimport { BToaster } from './toaster';\nimport { pluginFactory } from '../../utils/plugins';\nvar ToastPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BToast: BToast,\n BToaster: BToaster\n },\n // $bvToast injection\n plugins: {\n BVToastPlugin: BVToastPlugin\n }\n});\nexport { ToastPlugin, BToast, BToaster };","function 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\nimport { NAME_TOOLTIP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip'; // Key which we use to store tooltip object on element\n\nvar BV_TOOLTIP = '__BV_Tooltip__'; // Default trigger\n\nvar DefaultTrigger = 'hover focus'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noninteractiveRE = /^noninteractive$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Tooltip config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'top',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n id: null,\n html: false,\n interactive: true,\n disabled: false,\n delay: getComponentConfig(NAME_TOOLTIP, 'delay', 50),\n boundary: String(getComponentConfig(NAME_TOOLTIP, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_TOOLTIP, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_TOOLTIP, 'variant'),\n customClass: getComponentConfig(NAME_TOOLTIP, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is tooltip content (HTML optionally supported)\n config.title = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Title generator function\n config.title = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (noninteractiveRE.test(mod)) {\n // Noninteractive\n config.interactive = false;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of tooltip\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of tooltip\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n } // Return the config\n\n\n return config;\n}; // Add/update Tooltip on our element\n\n\nvar applyTooltip = function applyTooltip(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_TOOLTIP]) {\n var $parent = vnode.context;\n el[BV_TOOLTIP] = new BVTooltip({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_TOOLTIP].__bv_prev_data__ = {};\n el[BV_TOOLTIP].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the tooltip, we update the title if it is a function\n if (isFunction(config.title)) {\n el[BV_TOOLTIP].updateData({\n title: config.title(el)\n });\n }\n });\n }\n\n var data = {\n title: config.title,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n interactive: config.interactive,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_TOOLTIP].__bv_prev_data__;\n el[BV_TOOLTIP].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // if title is a function, we execute it here\n newData[prop] = prop === 'title' && isFunction(data[prop]) ? data[prop](el) : data[prop];\n }\n });\n el[BV_TOOLTIP].updateData(newData);\n }\n}; // Remove Tooltip on our element\n\n\nvar removeTooltip = function removeTooltip(el) {\n if (el[BV_TOOLTIP]) {\n el[BV_TOOLTIP].$destroy();\n el[BV_TOOLTIP] = null;\n }\n\n delete el[BV_TOOLTIP];\n}; // Export our directive\n\n\nexport var VBTooltip = {\n bind: function bind(el, bindings, vnode) {\n applyTooltip(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent render update loops\n vnode.context.$nextTick(function () {\n applyTooltip(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removeTooltip(el);\n }\n};","import { VBTooltip } from './tooltip';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBTooltipPlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBTooltip: VBTooltip\n }\n});\nexport { VBTooltipPlugin, VBTooltip };","import { BTooltip } from './tooltip';\nimport { VBTooltipPlugin } from '../../directives/tooltip';\nimport { pluginFactory } from '../../utils/plugins';\nvar TooltipPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTooltip: BTooltip\n },\n plugins: {\n VBTooltipPlugin: VBTooltipPlugin\n }\n});\nexport { TooltipPlugin, BTooltip };","import { pluginFactory } from '../utils/plugins'; // Component group plugins\n\nimport { AlertPlugin } from './alert';\nimport { AspectPlugin } from './aspect';\nimport { AvatarPlugin } from './avatar';\nimport { BadgePlugin } from './badge';\nimport { BreadcrumbPlugin } from './breadcrumb';\nimport { ButtonPlugin } from './button';\nimport { ButtonGroupPlugin } from './button-group';\nimport { ButtonToolbarPlugin } from './button-toolbar';\nimport { CalendarPlugin } from './calendar';\nimport { CardPlugin } from './card';\nimport { CarouselPlugin } from './carousel';\nimport { CollapsePlugin } from './collapse';\nimport { DropdownPlugin } from './dropdown';\nimport { EmbedPlugin } from './embed';\nimport { FormPlugin } from './form';\nimport { FormCheckboxPlugin } from './form-checkbox';\nimport { FormDatepickerPlugin } from './form-datepicker';\nimport { FormFilePlugin } from './form-file';\nimport { FormGroupPlugin } from './form-group';\nimport { FormInputPlugin } from './form-input';\nimport { FormRadioPlugin } from './form-radio';\nimport { FormRatingPlugin } from './form-rating';\nimport { FormSelectPlugin } from './form-select';\nimport { FormSpinbuttonPlugin } from './form-spinbutton';\nimport { FormTagsPlugin } from './form-tags';\nimport { FormTextareaPlugin } from './form-textarea';\nimport { FormTimepickerPlugin } from './form-timepicker';\nimport { ImagePlugin } from './image';\nimport { InputGroupPlugin } from './input-group';\nimport { JumbotronPlugin } from './jumbotron';\nimport { LayoutPlugin } from './layout';\nimport { LinkPlugin } from './link';\nimport { ListGroupPlugin } from './list-group';\nimport { MediaPlugin } from './media';\nimport { ModalPlugin } from './modal';\nimport { NavPlugin } from './nav';\nimport { NavbarPlugin } from './navbar';\nimport { OverlayPlugin } from './overlay';\nimport { PaginationPlugin } from './pagination';\nimport { PaginationNavPlugin } from './pagination-nav';\nimport { PopoverPlugin } from './popover';\nimport { ProgressPlugin } from './progress';\nimport { SidebarPlugin } from './sidebar';\nimport { SkeletonPlugin } from './skeleton';\nimport { SpinnerPlugin } from './spinner'; // Table plugin includes TableLitePlugin and TableSimplePlugin\n\nimport { TablePlugin } from './table';\nimport { TabsPlugin } from './tabs';\nimport { TimePlugin } from './time';\nimport { ToastPlugin } from './toast';\nimport { TooltipPlugin } from './tooltip'; // Main plugin to install all component group plugins\n\nexport var componentsPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n AlertPlugin: AlertPlugin,\n AspectPlugin: AspectPlugin,\n AvatarPlugin: AvatarPlugin,\n BadgePlugin: BadgePlugin,\n BreadcrumbPlugin: BreadcrumbPlugin,\n ButtonPlugin: ButtonPlugin,\n ButtonGroupPlugin: ButtonGroupPlugin,\n ButtonToolbarPlugin: ButtonToolbarPlugin,\n CalendarPlugin: CalendarPlugin,\n CardPlugin: CardPlugin,\n CarouselPlugin: CarouselPlugin,\n CollapsePlugin: CollapsePlugin,\n DropdownPlugin: DropdownPlugin,\n EmbedPlugin: EmbedPlugin,\n FormPlugin: FormPlugin,\n FormCheckboxPlugin: FormCheckboxPlugin,\n FormDatepickerPlugin: FormDatepickerPlugin,\n FormFilePlugin: FormFilePlugin,\n FormGroupPlugin: FormGroupPlugin,\n FormInputPlugin: FormInputPlugin,\n FormRadioPlugin: FormRadioPlugin,\n FormRatingPlugin: FormRatingPlugin,\n FormSelectPlugin: FormSelectPlugin,\n FormSpinbuttonPlugin: FormSpinbuttonPlugin,\n FormTagsPlugin: FormTagsPlugin,\n FormTextareaPlugin: FormTextareaPlugin,\n FormTimepickerPlugin: FormTimepickerPlugin,\n ImagePlugin: ImagePlugin,\n InputGroupPlugin: InputGroupPlugin,\n JumbotronPlugin: JumbotronPlugin,\n LayoutPlugin: LayoutPlugin,\n LinkPlugin: LinkPlugin,\n ListGroupPlugin: ListGroupPlugin,\n MediaPlugin: MediaPlugin,\n ModalPlugin: ModalPlugin,\n NavPlugin: NavPlugin,\n NavbarPlugin: NavbarPlugin,\n OverlayPlugin: OverlayPlugin,\n PaginationPlugin: PaginationPlugin,\n PaginationNavPlugin: PaginationNavPlugin,\n PopoverPlugin: PopoverPlugin,\n ProgressPlugin: ProgressPlugin,\n SidebarPlugin: SidebarPlugin,\n SkeletonPlugin: SkeletonPlugin,\n SpinnerPlugin: SpinnerPlugin,\n TablePlugin: TablePlugin,\n TabsPlugin: TabsPlugin,\n TimePlugin: TimePlugin,\n ToastPlugin: ToastPlugin,\n TooltipPlugin: TooltipPlugin\n }\n});","import { VBHover } from './hover';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBHoverPlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBHover: VBHover\n }\n});\nexport { VBHoverPlugin, VBHover };","import { VBModal } from './modal';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBModalPlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBModal: VBModal\n }\n});\nexport { VBModalPlugin, VBModal };","function 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\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\n/*\n * Scrollspy class definition\n */\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../../../constants/events';\nimport { RX_HREF } from '../../../constants/regex';\nimport { addClass, closest, getAttr, getBCR, hasClass, isElement, isVisible, matches, offset, position, removeClass, select, selectAll } from '../../../utils/dom';\nimport { getRootEventName, eventOn, eventOff } from '../../../utils/events';\nimport { identity } from '../../../utils/identity';\nimport { isString, isUndefined } from '../../../utils/inspect';\nimport { mathMax } from '../../../utils/math';\nimport { toInteger } from '../../../utils/number';\nimport { hasOwnProperty, toString as objectToString } from '../../../utils/object';\nimport { observeDom } from '../../../utils/observe-dom';\nimport { warn } from '../../../utils/warn';\n/*\n * Constants / Defaults\n */\n\nvar NAME = 'v-b-scrollspy';\nvar CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nvar CLASS_NAME_ACTIVE = 'active';\nvar SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nvar SELECTOR_NAV_LINKS = '.nav-link';\nvar SELECTOR_NAV_ITEMS = '.nav-item';\nvar SELECTOR_LIST_ITEMS = '.list-group-item';\nvar SELECTOR_DROPDOWN = '.dropdown, .dropup';\nvar SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\nvar SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\nvar ROOT_EVENT_NAME_ACTIVATE = getRootEventName('BVScrollspy', 'activate');\nvar METHOD_OFFSET = 'offset';\nvar METHOD_POSITION = 'position';\nvar Default = {\n element: 'body',\n offset: 10,\n method: 'auto',\n throttle: 75\n};\nvar DefaultType = {\n element: '(string|element|component)',\n offset: 'number',\n method: 'string',\n throttle: 'number'\n}; // Transition Events\n\nvar TransitionEndEvents = ['webkitTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd'];\n/*\n * Utility Methods\n */\n// Better var type detection\n\nvar toType = function toType(obj)\n/* istanbul ignore next: not easy to test */\n{\n return objectToString(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\n}; // Check config properties for expected types\n\n/* istanbul ignore next */\n\n\nvar typeCheckConfig = function typeCheckConfig(componentName, config, configTypes)\n/* istanbul ignore next: not easy to test */\n{\n for (var property in configTypes) {\n if (hasOwnProperty(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value); // handle Vue instances\n\n valueType = value && value._isVue ? 'component' : valueType;\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n /* istanbul ignore next */\n warn(\"\".concat(componentName, \": Option \\\"\").concat(property, \"\\\" provided type \\\"\").concat(valueType, \"\\\" but expected type \\\"\").concat(expectedTypes, \"\\\"\"));\n }\n }\n }\n};\n/*\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n/* istanbul ignore next: not easy to test */\n\n\nexport var BVScrollspy\n/* istanbul ignore next: not easy to test */\n= /*#__PURE__*/function () {\n function BVScrollspy(element, config, $root) {\n _classCallCheck(this, BVScrollspy);\n\n // The element we activate links in\n this.$el = element;\n this.$scroller = null;\n this.$selector = [SELECTOR_NAV_LINKS, SELECTOR_LIST_ITEMS, SELECTOR_DROPDOWN_ITEMS].join(',');\n this.$offsets = [];\n this.$targets = [];\n this.$activeTarget = null;\n this.$scrollHeight = 0;\n this.$resizeTimeout = null;\n this.$scrollerObserver = null;\n this.$targetsObserver = null;\n this.$root = $root || null;\n this.$config = null;\n this.updateConfig(config);\n }\n\n _createClass(BVScrollspy, [{\n key: \"updateConfig\",\n value: function updateConfig(config, $root) {\n if (this.$scroller) {\n // Just in case out scroll element has changed\n this.unlisten();\n this.$scroller = null;\n }\n\n var cfg = _objectSpread(_objectSpread({}, this.constructor.Default), config);\n\n if ($root) {\n this.$root = $root;\n }\n\n typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType);\n this.$config = cfg;\n\n if (this.$root) {\n var self = this;\n this.$root.$nextTick(function () {\n self.listen();\n });\n } else {\n this.listen();\n }\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.unlisten();\n clearTimeout(this.$resizeTimeout);\n this.$resizeTimeout = null;\n this.$el = null;\n this.$config = null;\n this.$scroller = null;\n this.$selector = null;\n this.$offsets = null;\n this.$targets = null;\n this.$activeTarget = null;\n this.$scrollHeight = null;\n }\n }, {\n key: \"listen\",\n value: function listen() {\n var _this = this;\n\n var scroller = this.getScroller();\n\n if (scroller && scroller.tagName !== 'BODY') {\n eventOn(scroller, 'scroll', this, EVENT_OPTIONS_NO_CAPTURE);\n }\n\n eventOn(window, 'scroll', this, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(window, 'resize', this, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(window, 'orientationchange', this, EVENT_OPTIONS_NO_CAPTURE);\n TransitionEndEvents.forEach(function (eventName) {\n eventOn(window, eventName, _this, EVENT_OPTIONS_NO_CAPTURE);\n });\n this.setObservers(true); // Schedule a refresh\n\n this.handleEvent('refresh');\n }\n }, {\n key: \"unlisten\",\n value: function unlisten() {\n var _this2 = this;\n\n var scroller = this.getScroller();\n this.setObservers(false);\n\n if (scroller && scroller.tagName !== 'BODY') {\n eventOff(scroller, 'scroll', this, EVENT_OPTIONS_NO_CAPTURE);\n }\n\n eventOff(window, 'scroll', this, EVENT_OPTIONS_NO_CAPTURE);\n eventOff(window, 'resize', this, EVENT_OPTIONS_NO_CAPTURE);\n eventOff(window, 'orientationchange', this, EVENT_OPTIONS_NO_CAPTURE);\n TransitionEndEvents.forEach(function (eventName) {\n eventOff(window, eventName, _this2, EVENT_OPTIONS_NO_CAPTURE);\n });\n }\n }, {\n key: \"setObservers\",\n value: function setObservers(on) {\n var _this3 = this;\n\n // We observe both the scroller for content changes, and the target links\n this.$scrollerObserver && this.$scrollerObserver.disconnect();\n this.$targetsObserver && this.$targetsObserver.disconnect();\n this.$scrollerObserver = null;\n this.$targetsObserver = null;\n\n if (on) {\n this.$targetsObserver = observeDom(this.$el, function () {\n _this3.handleEvent('mutation');\n }, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['href']\n });\n this.$scrollerObserver = observeDom(this.getScroller(), function () {\n _this3.handleEvent('mutation');\n }, {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['id', 'style', 'class']\n });\n }\n } // General event handler\n\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n var type = isString(event) ? event : event.type;\n var self = this;\n\n var resizeThrottle = function resizeThrottle() {\n if (!self.$resizeTimeout) {\n self.$resizeTimeout = setTimeout(function () {\n self.refresh();\n self.process();\n self.$resizeTimeout = null;\n }, self.$config.throttle);\n }\n };\n\n if (type === 'scroll') {\n if (!this.$scrollerObserver) {\n // Just in case we are added to the DOM before the scroll target is\n // We re-instantiate our listeners, just in case\n this.listen();\n }\n\n this.process();\n } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {\n // Postpone these events by throttle time\n resizeThrottle();\n }\n } // Refresh the list of target links on the element we are applied to\n\n }, {\n key: \"refresh\",\n value: function refresh() {\n var _this4 = this;\n\n var scroller = this.getScroller();\n\n if (!scroller) {\n return;\n }\n\n var autoMethod = scroller !== scroller.window ? METHOD_POSITION : METHOD_OFFSET;\n var method = this.$config.method === 'auto' ? autoMethod : this.$config.method;\n var methodFn = method === METHOD_POSITION ? position : offset;\n var offsetBase = method === METHOD_POSITION ? this.getScrollTop() : 0;\n this.$offsets = [];\n this.$targets = [];\n this.$scrollHeight = this.getScrollHeight(); // Find all the unique link HREFs that we will control\n\n selectAll(this.$selector, this.$el) // Get HREF value\n .map(function (link) {\n return getAttr(link, 'href');\n }) // Filter out HREFs that do not match our RegExp\n .filter(function (href) {\n return href && RX_HREF.test(href || '');\n }) // Find all elements with ID that match HREF hash\n .map(function (href) {\n // Convert HREF into an ID (including # at beginning)\n var id = href.replace(RX_HREF, '$1').trim();\n\n if (!id) {\n return null;\n } // Find the element with the ID specified by id\n\n\n var el = select(id, scroller);\n\n if (el && isVisible(el)) {\n return {\n offset: toInteger(methodFn(el).top, 0) + offsetBase,\n target: id\n };\n }\n\n return null;\n }).filter(identity) // Sort them by their offsets (smallest first)\n .sort(function (a, b) {\n return a.offset - b.offset;\n }) // record only unique targets/offsets\n .reduce(function (memo, item) {\n if (!memo[item.target]) {\n _this4.$offsets.push(item.offset);\n\n _this4.$targets.push(item.target);\n\n memo[item.target] = true;\n }\n\n return memo;\n }, {}); // Return this for easy chaining\n\n return this;\n } // Handle activating/clearing\n\n }, {\n key: \"process\",\n value: function process() {\n var scrollTop = this.getScrollTop() + this.$config.offset;\n var scrollHeight = this.getScrollHeight();\n var maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight();\n\n if (this.$scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this.$targets[this.$targets.length - 1];\n\n if (this.$activeTarget !== target) {\n this.activate(target);\n }\n\n return;\n }\n\n if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {\n this.$activeTarget = null;\n this.clear();\n return;\n }\n\n for (var i = this.$offsets.length; i--;) {\n var isActiveTarget = this.$activeTarget !== this.$targets[i] && scrollTop >= this.$offsets[i] && (isUndefined(this.$offsets[i + 1]) || scrollTop < this.$offsets[i + 1]);\n\n if (isActiveTarget) {\n this.activate(this.$targets[i]);\n }\n }\n }\n }, {\n key: \"getScroller\",\n value: function getScroller() {\n if (this.$scroller) {\n return this.$scroller;\n }\n\n var scroller = this.$config.element;\n\n if (!scroller) {\n return null;\n } else if (isElement(scroller.$el)) {\n scroller = scroller.$el;\n } else if (isString(scroller)) {\n scroller = select(scroller);\n }\n\n if (!scroller) {\n return null;\n }\n\n this.$scroller = scroller.tagName === 'BODY' ? window : scroller;\n return this.$scroller;\n }\n }, {\n key: \"getScrollTop\",\n value: function getScrollTop() {\n var scroller = this.getScroller();\n return scroller === window ? scroller.pageYOffset : scroller.scrollTop;\n }\n }, {\n key: \"getScrollHeight\",\n value: function getScrollHeight() {\n return this.getScroller().scrollHeight || mathMax(document.body.scrollHeight, document.documentElement.scrollHeight);\n }\n }, {\n key: \"getOffsetHeight\",\n value: function getOffsetHeight() {\n var scroller = this.getScroller();\n return scroller === window ? window.innerHeight : getBCR(scroller).height;\n }\n }, {\n key: \"activate\",\n value: function activate(target) {\n var _this5 = this;\n\n this.$activeTarget = target;\n this.clear(); // Grab the list of target links ()\n\n var links = selectAll(this.$selector // Split out the base selectors\n .split(',') // Map to a selector that matches links with HREF ending in the ID (including '#')\n .map(function (selector) {\n return \"\".concat(selector, \"[href$=\\\"\").concat(target, \"\\\"]\");\n }) // Join back into a single selector string\n .join(','), this.$el);\n links.forEach(function (link) {\n if (hasClass(link, CLASS_NAME_DROPDOWN_ITEM)) {\n // This is a dropdown item, so find the .dropdown-toggle and set its state\n var dropdown = closest(SELECTOR_DROPDOWN, link);\n\n if (dropdown) {\n _this5.setActiveState(select(SELECTOR_DROPDOWN_TOGGLE, dropdown), true);\n } // Also set this link's state\n\n\n _this5.setActiveState(link, true);\n } else {\n // Set triggered link as active\n _this5.setActiveState(link, true);\n\n if (matches(link.parentElement, SELECTOR_NAV_ITEMS)) {\n // Handle nav-link inside nav-item, and set nav-item active\n _this5.setActiveState(link.parentElement, true);\n } // Set triggered links parents as active\n // With both and markup a parent is the previous sibling of any nav ancestor\n\n\n var el = link;\n\n while (el) {\n el = closest(SELECTOR_NAV_LIST_GROUP, el);\n var sibling = el ? el.previousElementSibling : null;\n\n if (sibling && matches(sibling, \"\".concat(SELECTOR_NAV_LINKS, \", \").concat(SELECTOR_LIST_ITEMS))) {\n _this5.setActiveState(sibling, true);\n } // Handle special case where nav-link is inside a nav-item\n\n\n if (sibling && matches(sibling, SELECTOR_NAV_ITEMS)) {\n _this5.setActiveState(select(SELECTOR_NAV_LINKS, sibling), true); // Add active state to nav-item as well\n\n\n _this5.setActiveState(sibling, true);\n }\n }\n }\n }); // Signal event to via $root, passing ID of activated target and reference to array of links\n\n if (links && links.length > 0 && this.$root) {\n this.$root.$emit(ROOT_EVENT_NAME_ACTIVATE, target, links);\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n var _this6 = this;\n\n selectAll(\"\".concat(this.$selector, \", \").concat(SELECTOR_NAV_ITEMS), this.$el).filter(function (el) {\n return hasClass(el, CLASS_NAME_ACTIVE);\n }).forEach(function (el) {\n return _this6.setActiveState(el, false);\n });\n }\n }, {\n key: \"setActiveState\",\n value: function setActiveState(el, active) {\n if (!el) {\n return;\n }\n\n if (active) {\n addClass(el, CLASS_NAME_ACTIVE);\n } else {\n removeClass(el, CLASS_NAME_ACTIVE);\n }\n }\n }], [{\n key: \"Name\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return BVScrollspy;\n}();","import { IS_BROWSER } from '../../constants/env';\nimport { isNumber, isObject, isString } from '../../utils/inspect';\nimport { mathRound } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVScrollspy } from './helpers/bv-scrollspy.class'; // Key we use to store our instance\n\nvar BV_SCROLLSPY = '__BV_Scrollspy__'; // Pre-compiled regular expressions\n\nvar onlyDigitsRE = /^\\d+$/;\nvar offsetRE = /^(auto|position|offset)$/; // Build a Scrollspy config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\n/* istanbul ignore next: not easy to test */\n\nvar parseBindings = function parseBindings(bindings)\n/* istanbul ignore next: not easy to test */\n{\n var config = {}; // If argument, assume element ID\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.element = \"#\".concat(bindings.arg);\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (onlyDigitsRE.test(mod)) {\n // Offset value\n config.offset = toInteger(mod, 0);\n } else if (offsetRE.test(mod)) {\n // Offset method\n config.method = mod;\n }\n }); // Process value\n\n if (isString(bindings.value)) {\n // Value is a CSS ID or selector\n config.element = bindings.value;\n } else if (isNumber(bindings.value)) {\n // Value is offset\n config.offset = mathRound(bindings.value);\n } else if (isObject(bindings.value)) {\n // Value is config object\n // Filter the object based on our supported config options\n keys(bindings.value).filter(function (k) {\n return !!BVScrollspy.DefaultType[k];\n }).forEach(function (k) {\n config[k] = bindings.value[k];\n });\n }\n\n return config;\n}; // Add or update Scrollspy on our element\n\n\nvar applyScrollspy = function applyScrollspy(el, bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings);\n\n if (el[BV_SCROLLSPY]) {\n el[BV_SCROLLSPY].updateConfig(config, vnode.context.$root);\n } else {\n el[BV_SCROLLSPY] = new BVScrollspy(el, config, vnode.context.$root);\n }\n}; // Remove Scrollspy on our element\n\n/* istanbul ignore next: not easy to test */\n\n\nvar removeScrollspy = function removeScrollspy(el)\n/* istanbul ignore next: not easy to test */\n{\n if (el[BV_SCROLLSPY]) {\n el[BV_SCROLLSPY].dispose();\n el[BV_SCROLLSPY] = null;\n delete el[BV_SCROLLSPY];\n }\n};\n/*\n * Export our directive\n */\n\n\nexport var VBScrollspy = {\n /* istanbul ignore next: not easy to test */\n bind: function bind(el, bindings, vnode) {\n applyScrollspy(el, bindings, vnode);\n },\n\n /* istanbul ignore next: not easy to test */\n inserted: function inserted(el, bindings, vnode) {\n applyScrollspy(el, bindings, vnode);\n },\n\n /* istanbul ignore next: not easy to test */\n update: function update(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyScrollspy(el, bindings, vnode);\n }\n },\n\n /* istanbul ignore next: not easy to test */\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyScrollspy(el, bindings, vnode);\n }\n },\n\n /* istanbul ignore next: not easy to test */\n unbind: function unbind(el) {\n removeScrollspy(el);\n }\n};","import { VBScrollspy } from './scrollspy';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBScrollspyPlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBScrollspy: VBScrollspy\n }\n});\nexport { VBScrollspyPlugin, VBScrollspy };","import { VBVisible } from './visible';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBVisiblePlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBVisible: VBVisible\n }\n});\nexport { VBVisiblePlugin, VBVisible };","import { pluginFactory } from '../utils/plugins';\nimport { VBHoverPlugin } from './hover';\nimport { VBModalPlugin } from './modal';\nimport { VBPopoverPlugin } from './popover';\nimport { VBScrollspyPlugin } from './scrollspy';\nimport { VBTogglePlugin } from './toggle';\nimport { VBTooltipPlugin } from './tooltip';\nimport { VBVisiblePlugin } from './visible'; // Main plugin for installing all directive plugins\n\nexport var directivesPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n VBHoverPlugin: VBHoverPlugin,\n VBModalPlugin: VBModalPlugin,\n VBPopoverPlugin: VBPopoverPlugin,\n VBScrollspyPlugin: VBScrollspyPlugin,\n VBTogglePlugin: VBTogglePlugin,\n VBTooltipPlugin: VBTooltipPlugin,\n VBVisiblePlugin: VBVisiblePlugin\n }\n});","/*!\n * BootstrapVue 2.22.0\n *\n * @link https://bootstrap-vue.org\n * @source https://github.com/bootstrap-vue/bootstrap-vue\n * @copyright (c) 2016-2022 BootstrapVue\n * @license MIT\n * https://github.com/bootstrap-vue/bootstrap-vue/blob/master/LICENSE\n */\nimport { installFactory } from './utils/plugins';\nimport { componentsPlugin } from './components';\nimport { directivesPlugin } from './directives';\nimport { BVConfigPlugin } from './bv-config';\nvar NAME = 'BootstrapVue'; // --- BootstrapVue installer ---\n\nvar install = /*#__PURE__*/installFactory({\n plugins: {\n componentsPlugin: componentsPlugin,\n directivesPlugin: directivesPlugin\n }\n}); // --- BootstrapVue plugin ---\n\nvar BootstrapVue = /*#__PURE__*/{\n install: install,\n NAME: NAME\n}; // --- Named exports for BvConfigPlugin ---\n\nexport { // Installer exported in case the consumer does not import `default`\n// as the plugin in CommonJS build (or does not have interop enabled for CommonJS)\n// Both the following will work:\n// BootstrapVue = require('bootstrap-vue')\n// BootstrapVue = require('bootstrap-vue').default\n// Vue.use(BootstrapVue)\ninstall, NAME, // BootstrapVue config plugin\nBVConfigPlugin, // `BVConfigPlugin` has been documented as `BVConfig` as well,\n// so we add an alias to the shorter name for backwards compat\nBVConfigPlugin as BVConfig, // Main BootstrapVue plugin\nBootstrapVue }; // --- Export named injection plugins ---\n// TODO:\n// We should probably move injections into their own\n// parent directory (i.e. `/src/injections`)\n\nexport { BVModalPlugin } from './components/modal/helpers/bv-modal';\nexport { BVToastPlugin } from './components/toast/helpers/bv-toast'; // Webpack 4 has optimization difficulties with re-export of re-exports,\n// so we import the components individually here for better tree shaking\n//\n// Webpack v5 fixes the optimizations with re-export of re-exports so this\n// can be reverted back to `export * from './table'` when Webpack v5 is released\n// See: https://github.com/webpack/webpack/pull/9203 (available in Webpack v5.0.0-alpha.15)\n// -- Export Icon components and IconPlugin/BootstrapVueIcons ---\n// export * from './icons'\n\nexport { IconsPlugin, BootstrapVueIcons } from './icons/plugin';\nexport { BIcon } from './icons/icon';\nexport { BIconstack } from './icons/iconstack'; // This re-export is only a single level deep, which\n// Webpack 4 (usually) handles correctly when tree shaking\n\nexport * from './icons/icons'; // --- Export all individual components and component group plugins as named exports ---\n// export * from './components/alert'\n\nexport { AlertPlugin } from './components/alert';\nexport { BAlert } from './components/alert/alert'; // export * from './components/aspect'\n\nexport { AspectPlugin } from './components/aspect';\nexport { BAspect } from './components/aspect/aspect'; // export * from './components/avatar'\n\nexport { AvatarPlugin } from './components/avatar';\nexport { BAvatar } from './components/avatar/avatar';\nexport { BAvatarGroup } from './components/avatar/avatar-group'; // export * from './components/badge'\n\nexport { BadgePlugin } from './components/badge';\nexport { BBadge } from './components/badge/badge'; // export * from './components/breadcrumb'\n\nexport { BreadcrumbPlugin } from './components/breadcrumb';\nexport { BBreadcrumb } from './components/breadcrumb/breadcrumb';\nexport { BBreadcrumbItem } from './components/breadcrumb/breadcrumb-item'; // export * from './components/button'\n\nexport { ButtonPlugin } from './components/button';\nexport { BButton } from './components/button/button';\nexport { BButtonClose } from './components/button/button-close'; // export * from './components/button-group'\n\nexport { ButtonGroupPlugin } from './components/button-group';\nexport { BButtonGroup } from './components/button-group/button-group'; // export * from './components/button-toolbar'\n\nexport { ButtonToolbarPlugin } from './components/button-toolbar';\nexport { BButtonToolbar } from './components/button-toolbar/button-toolbar'; // export * from './components/calendar'\n\nexport { CalendarPlugin } from './components/calendar';\nexport { BCalendar } from './components/calendar/calendar'; // export * from './components/card'\n\nexport { CardPlugin } from './components/card';\nexport { BCard } from './components/card/card';\nexport { BCardBody } from './components/card/card-body';\nexport { BCardFooter } from './components/card/card-footer';\nexport { BCardGroup } from './components/card/card-group';\nexport { BCardHeader } from './components/card/card-header';\nexport { BCardImg } from './components/card/card-img';\nexport { BCardImgLazy } from './components/card/card-img-lazy';\nexport { BCardSubTitle } from './components/card/card-sub-title';\nexport { BCardText } from './components/card/card-text';\nexport { BCardTitle } from './components/card/card-title'; // export * from './components/carousel'\n\nexport { CarouselPlugin } from './components/carousel';\nexport { BCarousel } from './components/carousel/carousel';\nexport { BCarouselSlide } from './components/carousel/carousel-slide'; // export * from './components/collapse'\n\nexport { CollapsePlugin } from './components/collapse';\nexport { BCollapse } from './components/collapse/collapse'; // export * from './components/dropdown'\n\nexport { DropdownPlugin } from './components/dropdown';\nexport { BDropdown } from './components/dropdown/dropdown';\nexport { BDropdownItem } from './components/dropdown/dropdown-item';\nexport { BDropdownItemButton } from './components/dropdown/dropdown-item-button';\nexport { BDropdownDivider } from './components/dropdown/dropdown-divider';\nexport { BDropdownForm } from './components/dropdown/dropdown-form';\nexport { BDropdownGroup } from './components/dropdown/dropdown-group';\nexport { BDropdownHeader } from './components/dropdown/dropdown-header';\nexport { BDropdownText } from './components/dropdown/dropdown-text'; // export * from './components/embed'\n\nexport { EmbedPlugin } from './components/embed';\nexport { BEmbed } from './components/embed/embed'; // export * from './components/form'\n\nexport { FormPlugin } from './components/form';\nexport { BForm } from './components/form/form';\nexport { BFormDatalist } from './components/form/form-datalist';\nexport { BFormText } from './components/form/form-text';\nexport { BFormInvalidFeedback } from './components/form/form-invalid-feedback';\nexport { BFormValidFeedback } from './components/form/form-valid-feedback'; // export * from './components/form-checkbox'\n\nexport { FormCheckboxPlugin } from './components/form-checkbox';\nexport { BFormCheckbox } from './components/form-checkbox/form-checkbox';\nexport { BFormCheckboxGroup } from './components/form-checkbox/form-checkbox-group'; // export * from './components/form-datepicker'\n\nexport { FormDatepickerPlugin } from './components/form-datepicker';\nexport { BFormDatepicker } from './components/form-datepicker/form-datepicker'; // export * from './components/form-file'\n\nexport { FormFilePlugin } from './components/form-file';\nexport { BFormFile } from './components/form-file/form-file'; // export * from './components/form-group'\n\nexport { FormGroupPlugin } from './components/form-group';\nexport { BFormGroup } from './components/form-group/form-group'; // export * from './components/form-input'\n\nexport { FormInputPlugin } from './components/form-input';\nexport { BFormInput } from './components/form-input/form-input'; // export * from './components/form-radio'\n\nexport { FormRadioPlugin } from './components/form-radio';\nexport { BFormRadio } from './components/form-radio/form-radio';\nexport { BFormRadioGroup } from './components/form-radio/form-radio-group'; // export * from './components/form-rating'\n\nexport { FormRatingPlugin } from './components/form-rating';\nexport { BFormRating } from './components/form-rating/form-rating'; // export * from './components/form-tags'\n\nexport { FormTagsPlugin } from './components/form-tags';\nexport { BFormTags } from './components/form-tags/form-tags';\nexport { BFormTag } from './components/form-tags/form-tag'; // export * from './components/form-select'\n\nexport { FormSelectPlugin } from './components/form-select';\nexport { BFormSelect } from './components/form-select/form-select';\nexport { BFormSelectOption } from './components/form-select/form-select-option';\nexport { BFormSelectOptionGroup } from './components/form-select/form-select-option-group'; // export * from './components/form-spinbutton'\n\nexport { FormSpinbuttonPlugin } from './components/form-spinbutton';\nexport { BFormSpinbutton } from './components/form-spinbutton/form-spinbutton'; // export * from './components/form-textarea'\n\nexport { FormTextareaPlugin } from './components/form-textarea';\nexport { BFormTextarea } from './components/form-textarea/form-textarea'; // export * from './components/form-timepicker'\n\nexport { FormTimepickerPlugin } from './components/form-timepicker';\nexport { BFormTimepicker } from './components/form-timepicker/form-timepicker'; // export * from './components/image'\n\nexport { ImagePlugin } from './components/image';\nexport { BImg } from './components/image/img';\nexport { BImgLazy } from './components/image/img-lazy'; // export * from './components/input-group'\n\nexport { InputGroupPlugin } from './components/input-group';\nexport { BInputGroup } from './components/input-group/input-group';\nexport { BInputGroupAddon } from './components/input-group/input-group-addon';\nexport { BInputGroupAppend } from './components/input-group/input-group-append';\nexport { BInputGroupPrepend } from './components/input-group/input-group-prepend';\nexport { BInputGroupText } from './components/input-group/input-group-text'; // export * from './components/jumbotron'\n\nexport { JumbotronPlugin } from './components/jumbotron';\nexport { BJumbotron } from './components/jumbotron/jumbotron'; // export * from './components/layout'\n\nexport { LayoutPlugin } from './components/layout';\nexport { BContainer } from './components/layout/container';\nexport { BRow } from './components/layout/row';\nexport { BCol } from './components/layout/col';\nexport { BFormRow } from './components/layout/form-row'; // export * from './components/link'\n\nexport { LinkPlugin } from './components/link';\nexport { BLink } from './components/link/link'; // export * from './components/list-group'\n\nexport { ListGroupPlugin } from './components/list-group';\nexport { BListGroup } from './components/list-group/list-group';\nexport { BListGroupItem } from './components/list-group/list-group-item'; // export * from './components/media'\n\nexport { MediaPlugin } from './components/media';\nexport { BMedia } from './components/media/media';\nexport { BMediaAside } from './components/media/media-aside';\nexport { BMediaBody } from './components/media/media-body'; // export * from './components/modal'\n\nexport { ModalPlugin } from './components/modal';\nexport { BModal } from './components/modal/modal'; // export * from './components/nav'\n\nexport { NavPlugin } from './components/nav';\nexport { BNav } from './components/nav/nav';\nexport { BNavForm } from './components/nav/nav-form';\nexport { BNavItem } from './components/nav/nav-item';\nexport { BNavItemDropdown } from './components/nav/nav-item-dropdown';\nexport { BNavText } from './components/nav/nav-text'; // export * from './components/navbar'\n\nexport { NavbarPlugin } from './components/navbar';\nexport { BNavbar } from './components/navbar/navbar';\nexport { BNavbarBrand } from './components/navbar/navbar-brand';\nexport { BNavbarNav } from './components/navbar/navbar-nav';\nexport { BNavbarToggle } from './components/navbar/navbar-toggle'; // export * from './components/overlay'\n\nexport { OverlayPlugin } from './components/overlay';\nexport { BOverlay } from './components/overlay/overlay'; // export * from './components/pagination'\n\nexport { PaginationPlugin } from './components/pagination';\nexport { BPagination } from './components/pagination/pagination'; // export * from './components/pagination-nav'\n\nexport { PaginationNavPlugin } from './components/pagination-nav';\nexport { BPaginationNav } from './components/pagination-nav/pagination-nav'; // export * from './components/popover'\n\nexport { PopoverPlugin } from './components/popover';\nexport { BPopover } from './components/popover/popover'; // export * from './components/progress'\n\nexport { ProgressPlugin } from './components/progress';\nexport { BProgress } from './components/progress/progress';\nexport { BProgressBar } from './components/progress/progress-bar'; // export * from './components/sidebar'\n\nexport { SidebarPlugin } from './components/sidebar';\nexport { BSidebar } from './components/sidebar/sidebar'; // export * from './components/skeleton'\n\nexport { SkeletonPlugin } from './components/skeleton';\nexport { BSkeleton } from './components/skeleton/skeleton';\nexport { BSkeletonIcon } from './components/skeleton/skeleton-icon';\nexport { BSkeletonImg } from './components/skeleton/skeleton-img';\nexport { BSkeletonTable } from './components/skeleton/skeleton-table';\nexport { BSkeletonWrapper } from './components/skeleton/skeleton-wrapper'; // export * from './components/spinner'\n\nexport { SpinnerPlugin } from './components/spinner';\nexport { BSpinner } from './components/spinner/spinner'; // export * from './components/table'\n\nexport { TablePlugin, TableLitePlugin, TableSimplePlugin } from './components/table';\nexport { BTable } from './components/table/table';\nexport { BTableLite } from './components/table/table-lite';\nexport { BTableSimple } from './components/table/table-simple';\nexport { BTbody } from './components/table/tbody';\nexport { BThead } from './components/table/thead';\nexport { BTfoot } from './components/table/tfoot';\nexport { BTr } from './components/table/tr';\nexport { BTh } from './components/table/th';\nexport { BTd } from './components/table/td'; // export * from './components/tabs'\n\nexport { TabsPlugin } from './components/tabs';\nexport { BTabs } from './components/tabs/tabs';\nexport { BTab } from './components/tabs/tab'; // export * from './components/time'\n\nexport { TimePlugin } from './components/time';\nexport { BTime } from './components/time/time'; // export * from './components/toast'\n\nexport { ToastPlugin } from './components/toast';\nexport { BToast } from './components/toast/toast';\nexport { BToaster } from './components/toast/toaster'; // export * from './components/tooltip'\n\nexport { TooltipPlugin } from './components/tooltip';\nexport { BTooltip } from './components/tooltip/tooltip'; // --- Named exports of all directives (VB) and plugins (VBPlugin) ---\n// Webpack 4 has optimization difficulties with re-export of re-exports,\n// so we import the directives individually here for better tree shaking\n//\n// Webpack v5 fixes the optimizations with re-export of re-exports so this\n// can be reverted back to `export * from './scrollspy'` when Webpack v5 is released\n// https://github.com/webpack/webpack/pull/9203 (available in Webpack v5.0.0-alpha.15)\n// export * from './directives/hover'\n\nexport { VBHoverPlugin } from './directives/hover';\nexport { VBHover } from './directives/hover/hover'; // export * from './directives/modal'\n\nexport { VBModalPlugin } from './directives/modal';\nexport { VBModal } from './directives/modal/modal'; // export * from './directives/popover'\n\nexport { VBPopoverPlugin } from './directives/popover';\nexport { VBPopover } from './directives/popover/popover'; // export * from './directives/scrollspy'\n\nexport { VBScrollspyPlugin } from './directives/scrollspy';\nexport { VBScrollspy } from './directives/scrollspy/scrollspy'; // export * from './directives/toggle'\n\nexport { VBTogglePlugin } from './directives/toggle';\nexport { VBToggle } from './directives/toggle/toggle'; // export * from './directives/tooltip'\n\nexport { VBTooltipPlugin } from './directives/tooltip';\nexport { VBTooltip } from './directives/tooltip/tooltip'; // export * from './directives/tooltip'\n\nexport { VBVisiblePlugin } from './directives/visible';\nexport { VBVisible } from './directives/visible/visible'; // Default export is the BootstrapVue plugin\n\nexport default BootstrapVue;","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n/* globals document: false */\nvar documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {};\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (value === documentDotAll) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (typeof value === 'function' && !value.prototype) { return true; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (value === documentDotAll) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (typeof value === 'function' && !value.prototype) { return true; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\treturn strClass === fnClass || strClass === genClass;\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","import { VNode } from 'vue'\nimport { Transport } from '../types'\n\nexport const inBrowser = typeof window !== 'undefined'\n\nexport function freeze(item: R[]): ReadonlyArray {\n if (Array.isArray(item) || typeof item === 'object') {\n return Object.freeze(item)\n }\n return item\n}\n\nexport function combinePassengers(\n transports: Transport[],\n slotProps = {}\n): Array {\n return transports.reduce(\n (passengers, transport) => {\n const temp = transport.passengers[0]\n const newPassengers =\n typeof temp === 'function'\n ? (temp(slotProps) as VNode[])\n : (transport.passengers as VNode[])\n return passengers.concat(newPassengers)\n },\n [] as Array\n )\n}\n\nexport function stableSort(array: T[], compareFn: Function) {\n return array\n .map((v: T, idx: number) => {\n return [idx, v] as [number, T]\n })\n .sort(function(a, b) {\n return compareFn(a[1], b[1]) || a[0] - b[0]\n })\n .map(c => c[1])\n}\n\nexport function pick(\n obj: T,\n keys: K[]\n): Pick {\n return keys.reduce(\n (acc, key) => {\n if (obj.hasOwnProperty(key)) {\n acc[key] = obj[key]\n }\n return acc\n },\n {} as Pick\n )\n}\n","import Vue from 'vue'\nimport { freeze, inBrowser, stableSort } from '../utils'\nimport {\n Transports,\n Transport,\n TransportInput,\n TransportVector,\n VMRegister,\n} from '../types'\n\nconst transports: Transports = {}\nconst targets: VMRegister = {}\nconst sources: VMRegister = {}\n\nexport const Wormhole = Vue.extend({\n data: () => ({\n transports,\n targets,\n sources,\n trackInstances: inBrowser,\n }),\n methods: {\n open(transport: TransportInput) {\n if (!inBrowser) return\n const { to, from, passengers, order = Infinity } = transport\n if (!to || !from || !passengers) return\n\n const newTransport = {\n to,\n from,\n passengers: freeze(passengers),\n order,\n } as Transport\n const keys = Object.keys(this.transports)\n\n if (keys.indexOf(to) === -1) {\n Vue.set(this.transports, to, [])\n }\n\n const currentIndex = this.$_getTransportIndex(newTransport)\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n const newTransports = this.transports[to].slice(0)\n if (currentIndex === -1) {\n newTransports.push(newTransport)\n } else {\n newTransports[currentIndex] = newTransport\n }\n\n this.transports[to] = stableSort(\n newTransports,\n (a: Transport, b: Transport) => a.order - b.order\n )\n },\n\n close(transport: TransportVector, force = false) {\n const { to, from } = transport\n if (!to || (!from && force === false)) return\n if (!this.transports[to]) {\n return\n }\n\n if (force) {\n this.transports[to] = []\n } else {\n const index = this.$_getTransportIndex(transport)\n if (index >= 0) {\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n const newTransports = this.transports[to].slice(0)\n newTransports.splice(index, 1)\n this.transports[to] = newTransports\n }\n }\n },\n registerTarget(target: string, vm: Vue, force?: boolean): void {\n if (!inBrowser) return\n if (this.trackInstances && !force && this.targets[target]) {\n console.warn(`[portal-vue]: Target ${target} already exists`)\n }\n this.$set(this.targets, target, Object.freeze([vm]))\n },\n unregisterTarget(target: string) {\n this.$delete(this.targets, target)\n },\n registerSource(source: string, vm: Vue, force?: boolean): void {\n if (!inBrowser) return\n if (this.trackInstances && !force && this.sources[source]) {\n console.warn(`[portal-vue]: source ${source} already exists`)\n }\n this.$set(this.sources, source, Object.freeze([vm]))\n },\n unregisterSource(source: string) {\n this.$delete(this.sources, source)\n },\n hasTarget(to: string) {\n return !!(this.targets[to] && this.targets[to][0])\n },\n hasSource(to: string) {\n return !!(this.sources[to] && this.sources[to][0])\n },\n hasContentFor(to: string) {\n return !!this.transports[to] && !!this.transports[to].length\n },\n // Internal\n $_getTransportIndex({ to, from }: TransportVector): number {\n for (const i in this.transports[to]) {\n if (this.transports[to][i].from === from) {\n return +i\n }\n }\n return -1\n },\n },\n})\n\nconst wormhole = new Wormhole(transports)\nexport { wormhole }\n","import Vue from 'vue'\nimport { VNode } from 'vue'\nimport { TransportInput, TransportVector } from '../types'\nimport { wormhole } from './wormhole'\n\nlet _id = 1\n\nexport default Vue.extend({\n name: 'portal',\n props: {\n disabled: { type: Boolean },\n name: { type: String, default: () => String(_id++) },\n order: { type: Number, default: 0 },\n slim: { type: Boolean },\n slotProps: { type: Object, default: () => ({}) },\n tag: { type: String, default: 'DIV' },\n to: {\n type: String,\n default: () => String(Math.round(Math.random() * 10000000)),\n },\n },\n created() {\n this.$nextTick(() => {\n wormhole.registerSource(this.name, this)\n })\n },\n mounted() {\n if (!this.disabled) {\n this.sendUpdate()\n }\n },\n\n updated() {\n if (this.disabled) {\n this.clear()\n } else {\n this.sendUpdate()\n }\n },\n\n beforeDestroy() {\n wormhole.unregisterSource(this.name)\n this.clear()\n },\n watch: {\n to(newValue: string, oldValue: string): void {\n oldValue && oldValue !== newValue && this.clear(oldValue)\n this.sendUpdate()\n },\n },\n\n methods: {\n clear(target?: string) {\n const closer: TransportVector = {\n from: this.name,\n to: target || this.to,\n }\n wormhole.close(closer)\n },\n normalizeSlots(): Function[] | VNode[] | undefined {\n return this.$scopedSlots.default\n ? [this.$scopedSlots.default]\n : this.$slots.default\n },\n normalizeOwnChildren(children: VNode[] | Function): VNode[] {\n return typeof children === 'function'\n ? children(this.slotProps)\n : children\n },\n sendUpdate() {\n const slotContent = this.normalizeSlots()\n if (slotContent) {\n const transport: TransportInput = {\n from: this.name,\n to: this.to,\n passengers: [...slotContent],\n order: this.order,\n }\n wormhole.open(transport)\n } else {\n this.clear()\n }\n },\n },\n\n render(h): VNode {\n const children: VNode[] | Function =\n this.$slots.default || this.$scopedSlots.default || []\n const Tag = this.tag\n if (children && this.disabled) {\n return children.length <= 1 && this.slim ? (\n this.normalizeOwnChildren(children)[0]\n ) : (\n {this.normalizeOwnChildren(children)}\n )\n } else {\n return this.slim\n ? h()\n : h(Tag, {\n class: { 'v-portal': true },\n style: { display: 'none' },\n key: 'v-portal-placeholder',\n })\n }\n },\n})\n","import Vue from 'vue'\nimport { VNode, PropOptions } from 'vue'\nimport { combinePassengers } from '@/utils'\nimport { Transport, PropWithComponent } from '../types'\n\nimport { wormhole } from '@/components/wormhole'\n\nexport default Vue.extend({\n name: 'portalTarget',\n props: {\n multiple: { type: Boolean, default: false },\n name: { type: String, required: true },\n slim: { type: Boolean, default: false },\n slotProps: { type: Object, default: () => ({}) },\n tag: { type: String, default: 'div' },\n transition: { type: [String, Object, Function] } as PropOptions<\n PropWithComponent\n >,\n },\n data() {\n return {\n transports: wormhole.transports,\n firstRender: true,\n }\n },\n created() {\n this.$nextTick(() => {\n wormhole.registerTarget(this.name, this)\n })\n },\n watch: {\n ownTransports() {\n this.$emit('change', this.children().length > 0)\n },\n name(newVal, oldVal) {\n /**\n * TODO\n * This should warn as well ...\n */\n wormhole.unregisterTarget(oldVal)\n wormhole.registerTarget(newVal, this)\n },\n },\n mounted() {\n if (this.transition) {\n this.$nextTick(() => {\n // only when we have a transition, because it causes a re-render\n this.firstRender = false\n })\n }\n },\n beforeDestroy() {\n wormhole.unregisterTarget(this.name)\n },\n\n computed: {\n ownTransports(): Transport[] {\n const transports: Transport[] = this.transports[this.name] || []\n if (this.multiple) {\n return transports\n }\n return transports.length === 0 ? [] : [transports[transports.length - 1]]\n },\n passengers(): VNode[] {\n return combinePassengers(this.ownTransports, this.slotProps)\n },\n },\n\n methods: {\n // can't be a computed prop because it has to \"react\" to $slot changes.\n children(): VNode[] {\n return this.passengers.length !== 0\n ? this.passengers\n : this.$scopedSlots.default\n ? (this.$scopedSlots.default(this.slotProps) as VNode[])\n : this.$slots.default || []\n },\n // can't be a computed prop because it has to \"react\" to this.children().\n noWrapper() {\n const noWrapper = this.slim && !this.transition\n if (noWrapper && this.children().length > 1) {\n console.warn(\n '[portal-vue]: PortalTarget with `slim` option received more than one child element.'\n )\n }\n return noWrapper\n },\n },\n render(h): VNode {\n const noWrapper = this.noWrapper()\n const children = this.children()\n const Tag = this.transition || this.tag\n\n return noWrapper\n ? children[0]\n : this.slim && !Tag\n ? h()\n : h(\n Tag,\n {\n props: {\n // if we have a transition component, pass the tag if it exists\n tag: this.transition && this.tag ? this.tag : undefined,\n },\n class: { 'vue-portal-target': true },\n },\n\n children\n )\n },\n})\n","import Vue from 'vue'\nimport { VNode, VueConstructor, PropOptions } from 'vue'\nimport Portal from './portal'\nimport PortalTarget from './portal-target'\nimport { wormhole } from './wormhole'\nimport { pick } from '@/utils'\n\nimport { PropWithComponent } from '../types'\n\nlet _id = 0\n\nexport type withPortalTarget = VueConstructor<\n Vue & {\n portalTarget: any\n }\n>\n\nconst portalProps = [\n 'disabled',\n 'name',\n 'order',\n 'slim',\n 'slotProps',\n 'tag',\n 'to',\n]\n\nconst targetProps = ['multiple', 'transition']\n\nexport default (Vue as withPortalTarget).extend({\n name: 'MountingPortal',\n inheritAttrs: false,\n props: {\n append: { type: [Boolean, String] },\n bail: {\n type: Boolean,\n },\n mountTo: { type: String, required: true },\n\n // Portal\n disabled: { type: Boolean },\n // name for the portal\n name: {\n type: String,\n default: () => 'mounted_' + String(_id++),\n },\n order: { type: Number, default: 0 },\n slim: { type: Boolean },\n slotProps: { type: Object, default: () => ({}) },\n tag: { type: String, default: 'DIV' },\n // name for the target\n to: {\n type: String,\n default: () => String(Math.round(Math.random() * 10000000)),\n },\n\n // Target\n multiple: { type: Boolean, default: false },\n targetSlim: { type: Boolean },\n targetSlotProps: { type: Object, default: () => ({}) },\n targetTag: { type: String, default: 'div' },\n transition: { type: [String, Object, Function] } as PropOptions<\n PropWithComponent\n >,\n },\n created() {\n if (typeof document === 'undefined') return\n let el: HTMLElement | null = document.querySelector(this.mountTo)\n\n if (!el) {\n console.error(\n `[portal-vue]: Mount Point '${this.mountTo}' not found in document`\n )\n return\n }\n\n const props = this.$props\n\n // Target already exists\n if (wormhole.targets[props.name]) {\n if (props.bail) {\n console.warn(`[portal-vue]: Target ${props.name} is already mounted.\n Aborting because 'bail: true' is set`)\n } else {\n this.portalTarget = wormhole.targets[props.name]\n }\n return\n }\n\n const { append } = props\n if (append) {\n const type = typeof append === 'string' ? append : 'DIV'\n const mountEl = document.createElement(type)\n el.appendChild(mountEl)\n el = mountEl\n }\n\n // get props for target from $props\n // we have to rename a few of them\n const _props = pick(this.$props, targetProps)\n _props.slim = this.targetSlim\n _props.tag = this.targetTag\n _props.slotProps = this.targetSlotProps\n _props.name = this.to\n\n this.portalTarget = new PortalTarget({\n el,\n parent: this.$parent || this,\n propsData: _props,\n })\n },\n\n beforeDestroy() {\n const target = this.portalTarget\n if (this.append) {\n const el = target.$el\n el.parentNode.removeChild(el)\n }\n target.$destroy()\n },\n\n render(h): VNode {\n if (!this.portalTarget) {\n console.warn(\"[portal-vue] Target wasn't mounted\")\n return h()\n }\n\n // if there's no \"manual\" scoped slot, so we create a ourselves\n if (!this.$scopedSlots.manual) {\n const props = pick(this.$props, portalProps)\n return h(\n Portal,\n {\n props: props,\n attrs: this.$attrs,\n on: this.$listeners,\n scopedSlots: this.$scopedSlots,\n },\n this.$slots.default\n )\n }\n\n // else, we render the scoped slot\n let content: VNode = (this.$scopedSlots.manual({\n to: this.to,\n }) as unknown) as VNode\n\n // if user used for the scoped slot\n // content will be an array\n if (Array.isArray(content)) {\n content = content[0]\n }\n\n if (!content) return h()\n\n return content\n },\n})\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","/*!\n * vue-router v3.5.4\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) { this$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.5.4';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","/*!\n * Vue.js v2.6.14\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i], vm);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\n if (!valid && haveExpectedTypes) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n\nfunction assertType (value, type, vm) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n try {\n valid = value instanceof type;\n } catch (e) {\n warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n valid = false;\n }\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\nvar functionTypeCheckRE = /^\\s*function (\\w+)/;\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(functionTypeCheckRE);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n // check if we need to specify expected value\n if (\n expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n isExplicable(typeof value) &&\n !isBoolean(expectedType, receivedType)\n ) {\n message += \" with value \" + (styleValue(value, expectedType));\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + (styleValue(value, receivedType)) + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nvar EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\nfunction isExplicable (value) {\n return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. , , v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n var vnode = res && res[0];\n return res && (\n !vnode ||\n (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode)) // #9658, #10391\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering \n */\nfunction renderSlot (\n name,\n fallbackRender,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) {\n // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn('slot v-bind without argument expects an Object', this);\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes =\n scopedSlotFn(props) ||\n (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n } else {\n nodes =\n this.$slots[name] ||\n (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n return eventKeyCode === undefined\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n // we know it's MountedComponentVNode but flow doesn't\n vnode,\n // activeInstance in lifecycle state\n parent\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn) && data.tag !== 'component') {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\n (!newScopedSlots && vm.$scopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n var info = \"callback for watcher \\\"\" + (this.expression) + \"\\\"\";\n invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n } else if (vm.$options.methods && key in vm.$options.methods) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a method.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n var info = \"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\";\n pushTarget();\n invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\n popTarget();\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var entry = cache[key];\n if (entry) {\n var name = entry.name;\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var entry = cache[key];\n if (entry && (!current || entry.tag !== current.tag)) {\n entry.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n methods: {\n cacheVNode: function cacheVNode() {\n var ref = this;\n var cache = ref.cache;\n var keys = ref.keys;\n var vnodeToCache = ref.vnodeToCache;\n var keyToCache = ref.keyToCache;\n if (vnodeToCache) {\n var tag = vnodeToCache.tag;\n var componentInstance = vnodeToCache.componentInstance;\n var componentOptions = vnodeToCache.componentOptions;\n cache[keyToCache] = {\n name: getComponentName(componentOptions),\n tag: tag,\n componentInstance: componentInstance,\n };\n keys.push(keyToCache);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n this.vnodeToCache = null;\n }\n }\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.cacheVNode();\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n updated: function updated () {\n this.cacheVNode();\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n // delay setting the cache until update\n this.vnodeToCache = vnode;\n this.keyToCache = key;\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.14';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n // allow arbitrary string value for contenteditable\n : key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n createElement: createElement$1,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n};\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key &&\n a.asyncFactory === b.asyncFactory && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (nodeOps.parentNode(ref$$1) === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by \n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (\n oldVnode,\n vnode,\n insertedVnodeQueue,\n ownerArray,\n index,\n removeOnly\n ) {\n if (oldVnode === vnode) {\n return\n }\n\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n ', or missing . Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur, vnode.data.pre);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value, isInPre) {\n if (isInPre || el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. Select one\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for ,\n // but Flash expects a value of \"true\" when used on tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, convertEnumeratedValue(key, value));\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // ... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && value !== '' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n};\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n};\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n name,\n handler,\n capture,\n passive\n) {\n // async edge case #6566: inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // the solution is simple: we save the timestamp when a handler is attached,\n // and the handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (useMicrotaskFix) {\n var attachedTimestamp = currentFlushTimestamp;\n var original = handler;\n handler = original._wrapper = function (e) {\n if (\n // no bubbling, should always fire.\n // this is just a safety net in case event.timeStamp is unreliable in\n // certain weird environments...\n e.target === e.currentTarget ||\n // event is fired after handler attachment\n e.timeStamp >= attachedTimestamp ||\n // bail for environments that have buggy event.timeStamp implementations\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n // #9681 QtWebEngine event.timeStamp is negative value\n e.timeStamp <= 0 ||\n // #9448 bail if event is fired in another document in a multi-page\n // electron/nw.js app, since event.timeStamp will be using a different\n // starting reference\n e.target.ownerDocument !== document\n ) {\n return original.apply(this, arguments)\n }\n };\n }\n target$1.addEventListener(\n name,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n name,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n name,\n handler._wrapper || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n};\n\n/* */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (!(key in props)) {\n elm[key] = '';\n }\n }\n\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n // IE doesn't support innerHTML for SVG elements\n svgContainer = svgContainer || document.createElement('div');\n svgContainer.innerHTML = \"\" + cur + \"\";\n var svg = svgContainer.firstChild;\n while (elm.firstChild) {\n elm.removeChild(elm.firstChild);\n }\n while (svg.firstChild) {\n elm.appendChild(svg.firstChild);\n }\n } else if (\n // skip the update if old and new VDOM state is the same.\n // `value` is handled separately because the DOM value may be temporarily\n // out of sync with VDOM state due to focus, composition and modifiers.\n // This #4521 by skipping the unnecessary `checked` update.\n cur !== oldProps[key]\n ) {\n // some property updates can throw\n // e.g. `value` on w/ non-finite value\n try {\n elm[key] = cur;\n } catch (e) {}\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n};\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n};\n\n/* */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def$$1) {\n if (!def$$1) {\n return\n }\n /* istanbul ignore else */\n if (typeof def$$1 === 'object') {\n var res = {};\n if (def$$1.css !== false) {\n extend(res, autoCssTransition(def$$1.name || 'v'));\n }\n extend(res, def$$1);\n return res\n } else if (typeof def$$1 === 'string') {\n return autoCssTransition(def$$1)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the component managing this\n // transition. One edge case to check is when the is placed\n // as the root node of a child component. In that case we need to check\n // 's parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n context = transitionNode.context;\n transitionNode = transitionNode.parent;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show && el.parentNode) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \" explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \" explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {};\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n];\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \" \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n};\n\nvar platformDirectives = {\n model: directive,\n show: show\n};\n\n/* */\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. \n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(isNotTextNode);\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n ' can only be used on a single element. Use ' +\n ' for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n};\n\n/* */\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n beforeMount: function beforeMount () {\n var this$1 = this;\n\n var update = this._update;\n this._update = function (vnode, hydrating) {\n var restoreActiveInstance = setActiveInstance(this$1);\n // force removing pass\n this$1.__patch__(\n this$1._vnode,\n this$1.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this$1._vnode = this$1.kept;\n restoreActiveInstance();\n update.call(this$1, vnode, hydrating);\n };\n },\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\" children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (e && e.target !== el) {\n return\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n};\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n};\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test'\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nexport default Vue;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}"],"names":["normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","exports","isCallable","tryToString","$TypeError","TypeError","module","argument","isConstructor","$String","String","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","configurable","value","key","charAt","S","index","unicode","length","isPrototypeOf","it","Prototype","isObject","ArrayBuffer","DataView","fails","buffer","Object","isExtensible","NAME","Constructor","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","hasOwn","classof","createNonEnumerableProperty","defineBuiltIn","getPrototypeOf","setPrototypeOf","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","klass","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","error","error2","exportTypedArrayStaticMethod","Function","get","uncurryThis","FunctionName","defineBuiltIns","anInstance","toIntegerOrInfinity","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","arraySlice","setToStringTag","InternalStateModule","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","setInternalState","set","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","RangeError","fill","reverse","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","store","byteLength","bytes","start","byteOffset","conversion","i","INCORRECT_ARRAY_BUFFER_NAME","name","NaN","keys","j","constructor","testView","$setInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","offset","getUint8","getInt16","arguments","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toObject","toAbsoluteIndex","lengthOfArrayLike","deletePropertyOrThrow","min","Math","copyWithin","target","O","len","to","from","end","inc","argumentsLength","endPos","$forEach","arrayMethodIsStrict","STRICT_METHOD","forEach","callbackfn","list","result","bind","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","step","iterator","next","iteratorMethod","done","toIndexedObject","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","IndexedObject","arraySpeciesCreate","push","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","self","boundFunction","map","filter","some","every","find","findIndex","filterReject","apply","$lastIndexOf","lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","array","foo","Boolean","method","aCallable","IS_RIGHT","memo","left","right","max","k","fin","n","slice","floor","mergeSort","comparefn","middle","insertionSort","merge","element","llength","rlength","lindex","rindex","isArray","originalArray","arraySpeciesConstructor","anObject","iteratorClose","fn","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","toString","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","tag","callee","$Error","Error","replace","TEST","arg","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","test","dropEntries","prepareStackTrace","iterate","defineIterator","setSpecies","fastKey","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","ADDER","iterable","type","first","last","size","AS_ENTRIES","define","previous","state","entry","getEntry","removed","clear","data","prev","has","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","getWeakData","ArrayIterationModule","splice","id","uncaughtFrozenStore","frozen","UncaughtFrozenStore","entries","findUncaughtFrozen","$","isForced","InternalMetadataModule","checkCorrectnessOfIteration","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","REPLACE","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","source","exceptions","f","getOwnPropertyDescriptor","F","requireObjectCoercible","quot","string","attribute","p1","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","ENUMERABLE_NEXT","bitmap","enumerable","writable","toPropertyKey","propertyKey","makeBuiltIn","descriptor","getter","setter","defineGlobalProperty","simple","src","IS_PURE","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","proto","path","wrappedWellKnownSymbolModule","Symbol","P","document","EXISTS","createElement","MAX_SAFE_INTEGER","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","classList","DOMTokenListPrototype","userAgent","firefox","match","window","Deno","UA","Pebble","process","getBuiltIn","version","versions","v8","split","webkit","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","sham","regexpExec","RegExpPrototype","RegExp","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","nativeMethod","regexp","str","arg2","forceStringMethod","$exec","preventExtensions","NATIVE_BIND","FunctionPrototype","Reflect","hasOwnProperty","$Function","join","factories","construct","argsLength","args","partArgs","getDescriptor","aFunction","namespace","getMethod","usingIterator","V","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","check","globalThis","g","a","b","console","abs","pow","log","LN2","mantissaLength","exponent","mantissa","c","exponentLength","eMax","eBias","rt","sign","Infinity","nBits","propertyIsEnumerable","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","cause","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","onFreeze","meta","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","wmget","wmhas","wmset","metadata","facade","STATE","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","toLowerCase","Number","isInteger","isFinite","MATCH","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","innerResult","innerError","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","obj","enforceInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","ceil","trunc","x","flush","head","notify","toggle","node","promise","then","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","queueMicrotask","domain","exit","enter","resolve","nextTick","createTextNode","observe","characterData","task","NATIVE_SYMBOL","keyFor","getOwnPropertySymbols","symbol","PromiseCapability","reject","$$resolve","$$reject","$default","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","assign","A","B","alphabet","chr","T","activeXDocument","definePropertiesModule","enumBugKeys","html","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","style","display","appendChild","contentWindow","open","NullProtoObject","ActiveXObject","Properties","V8_PROTOTYPE_DEFINE_BUG","defineProperties","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","__proto__","input","pref","val","valueOf","NativePromiseConstructor","IS_BROWSER","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability","promiseCapability","all","Target","Source","Queue","tail","item","R","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","regExpFlags","$RegExp","MISSED_STICKY","is","y","TAG","SHARED","mode","copyright","license","aConstructor","defaultConstructor","charCodeAt","CONVERT_TO_STRING","pos","second","codeAt","$RangeError","whitespaces","non","whitespace","ltrim","rtrim","trim","SymbolPrototype","TO_PRIMITIVE","hint","location","defer","channel","port","validateArgumentsLength","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","run","runner","listener","event","post","postMessage","protocol","host","handler","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","integer","toPrimitive","prim","BigInt","toPositiveInteger","BYTES","isSymbol","ordinaryToPrimitive","exoticToPrim","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","round","BYTES_PER_ELEMENT","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","arrayFromConstructorAndList","typedArraySpeciesConstructor","speciesConstructor","postfix","random","passed","required","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","proxyAccessor","normalizeStringArgument","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","message","wrapErrorConstructorWithCause","AGGREGATE_ERROR","$AggregateError","errors","AggregateError","init","isInstance","AggregateErrorPrototype","errorsArray","arrayBufferModule","doesNotExceedSafeInteger","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","addToUnscopables","$filter","HAS_SPECIES_SUPPORT","$findIndex","FIND_INDEX","SKIPS_HOLES","$find","FIND","INCORRECT_ITERATION","$includes","BROKEN_ON_SPARSE","ARRAY_ITERATOR","Arguments","un$Join","ES3_STRINGS","separator","$map","un$Slice","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","fromCharCode","v","getSortCompare","itemsLength","items","arrayLength","deleteCount","insertCount","actualDeleteCount","actualStart","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","FUNCTION_NAME_EXISTS","nameRE","regExpExec","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","$replacer","fixIllFormed","stringify","space","JSON","collection","collectionStrong","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","toNumber","third","radix","maxCode","digits","parseInt","NumberWrapper","isNaN","$repeat","repeat","un$ToFixed","toFixed","acc","x2","multiply","c2","divide","dataToString","s","t","fractionDigits","e","z","fractDigits","$freeze","freeze","getOwnPropertyDescriptors","$getOwnPropertySymbols","nativeGetPrototypeOf","$isFrozen","isFrozen","nativeKeys","newPromiseCapabilityModule","perform","PROMISE_STATICS_INCORRECT_ITERATION","capability","$promiseResolve","remaining","alreadyCalled","real","onRejected","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","wrap","promiseResolve","NON_GENERIC","onFinally","isFunction","race","r","PromiseConstructorWrapper","CHECK_WRAPPER","functionApply","OPTIONAL_ARGUMENTS_LIST","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","newTarget","$args","isDataDescriptor","receiver","getRegExpFlags","NativeRegExp","SyntaxError","stringIndexOf","IS_NCG","CORRECT_NEW","BASE_FORCED","handleDotAll","brackets","handleNCG","named","ncg","groupid","groupname","RegExpWrapper","pattern","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","defineBuiltInAccessor","un$Test","$toString","TO_STRING","n$ToString","NOT_GENERIC","INCORRECT_NAME","createHTML","forcedStringHTMLMethod","fixed","STRING_ITERATOR","point","link","url","fixRegExpWellKnownSymbolLogic","advanceStringIndex","nativeMatch","maybeCallNative","matcher","rx","res","fullUnicode","matchStr","getSubstitution","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","small","callRegExpExec","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","p","q","$trim","forcedStringTrimMethod","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","defineSymbolToPrimitive","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","$create","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","desc","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","relativeIndex","$ArrayCopyWithin","u$ArrayCopyWithin","$every","$fill","toBigInt","CONVERSION_BUG","actualValue","fromSpeciesAndList","predicate","createTypedArrayConstructor","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","$join","$reduceRight","$reduce","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","$some","ACCEPT_INCORRECT_ARGUMENTS","mod","expected","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","InternalWeakMap","collectionWeak","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","_typeof","__esModule","_classCallCheck","isDeepEqual","isDeepStrictEqual","_require","require","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","_require2","inspect","_require$types","isPromise","objectAssign","objectIs","Map","lazyLoadComparison","comparison","warned","assert","NO_EXCEPTION_SENTINEL","innerFail","actual","operator","stackStartFn","internalMessage","argsLen","warn","emitWarning","errArgs","err","generatedMessage","innerOk","argLen","_len","_key","notDeepStrictEqual","equal","notEqual","deepEqual","notDeepEqual","deepStrictEqual","strictEqual","notStrictEqual","Comparison","_this","compareExceptionKey","expectedException","msg","getActual","checkIsPromise","catch","waitForActual","promiseFn","resultPromise","expectsError","details","fnType","expectsNoError","strict","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","tmp2","shift","tmp1","_objectSpread","_defineProperty","_defineProperties","_createClass","protoProps","staticProps","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_inherits","subClass","superClass","_setPrototypeOf","_wrapNativeSuper","Class","_cache","_isNativeFunction","_construct","_getPrototypeOf","isNativeReflectConstruct","Proxy","Date","Parent","o","endsWith","search","this_len","substring","maxCount","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","kMaxShortLength","copyError","inspectValue","compact","customInspect","depth","maxArrayLength","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","other","lastPos","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","maxLength","stderr","isTTY","columns","pop","maxLines","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","_Error","stackTraceLimit","getColorDepth","base","_res","knownOperators","captureStackTrace","custom","recurseTimes","ctx","util","createErrorType","Base","getMessage","arg1","arg3","NodeError","_Base","oneOf","thing","startsWith","substr","determiner","inspected","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_d","_e","_s","_i","regexFlagsSupported","arrayFromSet","arrayFromMap","objectGetOwnPropertySymbols","numberIsNaN","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","getOwnNonIndexProperties","compare","ONLY_ENUMERABLE","kStrict","kLoose","kNoIterator","kIsArray","kIsSet","kIsMap","areSimilarRegExps","areSimilarFloatArrays","areSimilarTypedArrays","areEqualArrayBuffers","buf1","buf2","isEqualBoxedPrimitive","val1","val2","innerDeepEqual","memos","val1Tag","val2Tag","keys1","keys2","keyCheck","getTime","_keys","_keys2","getEnumerables","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","val2MemoA","val2MemoB","areEq","objEquiv","delete","setHasEqualElement","setValues","findLooseMatchingPrimitives","setMightHaveLoosePrim","altValue","mapMightHaveLoosePrim","curB","setEquiv","aValues","Set","bValues","_val","mapHasEqualEntry","key1","item1","key2","mapEquiv","aEntries","_aEntries$i","item2","bEntries","_i2","_bEntries$_i","keysA","HAS_WINDOW_SUPPORT","HAS_DOCUMENT_SUPPORT","HAS_NAVIGATOR_SUPPORT","navigator","HAS_PROMISE_SUPPORT","HAS_MUTATION_OBSERVER_SUPPORT","MozMutationObserver","WINDOW","DOCUMENT","NAVIGATOR","USER_AGENT","IS_JSDOM","HAS_PASSIVE_EVENT_SUPPORT","passiveEventSupported","passive","removeEventListener","_unused","HAS_TOUCH_SUPPORT","documentElement","maxTouchPoints","HAS_POINTER_EVENT_SUPPORT","PointerEvent","MSPointerEvent","HAS_INTERACTION_OBSERVER_SUPPORT","IntersectionObserverEntry","PROP_NAME","DEFAULT_BREAKPOINT","RX_ARRAY_NOTATION","RX_BV_PREFIX","RX_DIGITS","RX_EXTENSION","RX_HASH","RX_HASH_ID","RX_HTML_TAGS","RX_HYPHENATE","RX_LOWER_UPPER","RX_NUMBER","RX_PLUS","RX_REGEXP_REPLACE","RX_SPACES","RX_SPACE_SPLIT","RX_STAR","RX_START_SPACE_WORD","RX_TRIM_LEFT","RX_UNDERSCORE","RX_UN_KEBAB","RX_DATE","RX_DATE_SPLIT","RX_TIME","RX_HREF","RX_ENCODED_COMMA","RX_ENCODE_REVERSE","RX_QUERY_START","RX_ASPECT","RX_ASPECT_SEPARATOR","RX_COL_CLASS","RX_ICON_PREFIX","RX_STRIP_LOCALE_MODS","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","Element","_Object","_super","HTMLElement","_Element","_super2","SVGElement","_Element2","_super3","File","_Object2","_super4","toType","toRawType","isUndefined","isNull","isUndefinedOrNull","isBoolean","isString","isNumber","isNumeric","isPlainObject","isEvent","Event","isFile","enumerableOnly","optionalProps","prop","clone","pick","reduce","omit","mergeDeep","sortKeys","readonlyDescriptor","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","iter","arr2","cloneDeep","defaultValue","identity","getRaw","steps","getEnv","fallback","env","getNoWarn","warnNotClient","warnNoPromiseSupport","warnNoMutationObserverSupport","BvConfig","$_config","config","configKeys","subConfig","setConfig","Vue","OurVue","checkMultipleVue","checkMultipleVueWarned","MULTIPLE_VUE_WARNING","installFactory","_ref","components","directives","plugins","install","installed","registerComponents","registerDirectives","registerPlugins","pluginFactory","extend","plugin","use","registerComponent","def","component","registerDirective","directive","kebab","styleProp","styleList","camelReplace","_substr","toUpperCase","parseStyle","styleMap","_a","_b","mergeData","mergeTarget","COMPONENT_UID_KEY","NAME_ALERT","NAME_ASPECT","NAME_AVATAR","NAME_AVATAR_GROUP","NAME_BADGE","NAME_BREADCRUMB","NAME_BREADCRUMB_ITEM","NAME_BREADCRUMB_LINK","NAME_BUTTON","NAME_BUTTON_CLOSE","NAME_BUTTON_GROUP","NAME_BUTTON_TOOLBAR","NAME_CALENDAR","NAME_CARD","NAME_CARD_BODY","NAME_CARD_FOOTER","NAME_CARD_GROUP","NAME_CARD_HEADER","NAME_CARD_IMG","NAME_CARD_IMG_LAZY","NAME_CARD_SUB_TITLE","NAME_CARD_TEXT","NAME_CARD_TITLE","NAME_CAROUSEL","NAME_CAROUSEL_SLIDE","NAME_COL","NAME_COLLAPSE","NAME_CONTAINER","NAME_DROPDOWN","NAME_DROPDOWN_DIVIDER","NAME_DROPDOWN_FORM","NAME_DROPDOWN_GROUP","NAME_DROPDOWN_HEADER","NAME_DROPDOWN_ITEM","NAME_DROPDOWN_ITEM_BUTTON","NAME_DROPDOWN_TEXT","NAME_EMBED","NAME_FORM","NAME_FORM_CHECKBOX","NAME_FORM_CHECKBOX_GROUP","NAME_FORM_DATALIST","NAME_FORM_DATEPICKER","NAME_FORM_FILE","NAME_FORM_GROUP","NAME_FORM_INPUT","NAME_FORM_INVALID_FEEDBACK","NAME_FORM_RADIO","NAME_FORM_RADIO_GROUP","NAME_FORM_RATING","NAME_FORM_ROW","NAME_FORM_SELECT","NAME_FORM_SELECT_OPTION","NAME_FORM_SELECT_OPTION_GROUP","NAME_FORM_SPINBUTTON","NAME_FORM_TAG","NAME_FORM_TAGS","NAME_FORM_TEXT","NAME_FORM_TEXTAREA","NAME_FORM_TIMEPICKER","NAME_FORM_VALID_FEEDBACK","NAME_ICON","NAME_ICON_BASE","NAME_IMG","NAME_IMG_LAZY","NAME_INPUT_GROUP","NAME_INPUT_GROUP_ADDON","NAME_INPUT_GROUP_APPEND","NAME_INPUT_GROUP_PREPEND","NAME_INPUT_GROUP_TEXT","NAME_JUMBOTRON","NAME_LINK","NAME_LIST_GROUP","NAME_LIST_GROUP_ITEM","NAME_MEDIA","NAME_MEDIA_ASIDE","NAME_MEDIA_BODY","NAME_MODAL","NAME_MSG_BOX","NAME_NAV","NAME_NAVBAR","NAME_NAVBAR_BRAND","NAME_NAVBAR_NAV","NAME_NAVBAR_TOGGLE","NAME_NAV_FORM","NAME_NAV_ITEM","NAME_NAV_ITEM_DROPDOWN","NAME_NAV_TEXT","NAME_OVERLAY","NAME_PAGINATION","NAME_PAGINATION_NAV","NAME_POPOVER","NAME_PROGRESS","NAME_PROGRESS_BAR","NAME_ROW","NAME_SIDEBAR","NAME_SKELETON","NAME_SKELETON_ICON","NAME_SKELETON_IMG","NAME_SKELETON_TABLE","NAME_SKELETON_WRAPPER","NAME_SPINNER","NAME_TAB","NAME_TABLE","NAME_TABLE_CELL","NAME_TABLE_LITE","NAME_TABLE_SIMPLE","NAME_TABS","NAME_TBODY","NAME_TFOOT","NAME_TH","NAME_THEAD","NAME_TIME","NAME_TOAST","NAME_TOASTER","NAME_TOOLTIP","NAME_TR","NAME_COLLAPSE_HELPER","NAME_FORM_BUTTON_LABEL_CONTROL","NAME_FORM_RATING_STAR","NAME_POPOVER_HELPER","NAME_POPOVER_TEMPLATE","NAME_POPPER","NAME_TAB_BUTTON_HELPER","NAME_TOAST_POP","NAME_TOOLTIP_HELPER","NAME_TOOLTIP_TEMPLATE","NAME_TRANSITION","NAME_TRANSPORTER","NAME_TRANSPORTER_TARGET","EVENT_NAME_ACTIVATE_TAB","EVENT_NAME_BLUR","EVENT_NAME_CANCEL","EVENT_NAME_CHANGE","EVENT_NAME_CHANGED","EVENT_NAME_CLICK","EVENT_NAME_CLOSE","EVENT_NAME_CONTEXT","EVENT_NAME_CONTEXT_CHANGED","EVENT_NAME_DESTROYED","EVENT_NAME_DISABLE","EVENT_NAME_DISABLED","EVENT_NAME_DISMISSED","EVENT_NAME_DISMISS_COUNT_DOWN","EVENT_NAME_ENABLE","EVENT_NAME_ENABLED","EVENT_NAME_FILTERED","EVENT_NAME_FIRST","EVENT_NAME_FOCUS","EVENT_NAME_FOCUSIN","EVENT_NAME_FOCUSOUT","EVENT_NAME_HEAD_CLICKED","EVENT_NAME_HIDDEN","EVENT_NAME_HIDE","EVENT_NAME_IMG_ERROR","EVENT_NAME_INPUT","EVENT_NAME_LAST","EVENT_NAME_MOUSEENTER","EVENT_NAME_MOUSELEAVE","EVENT_NAME_NEXT","EVENT_NAME_OK","EVENT_NAME_OPEN","EVENT_NAME_PAGE_CLICK","EVENT_NAME_PAUSED","EVENT_NAME_PREV","EVENT_NAME_REFRESH","EVENT_NAME_REFRESHED","EVENT_NAME_REMOVE","EVENT_NAME_ROW_CLICKED","EVENT_NAME_ROW_CONTEXTMENU","EVENT_NAME_ROW_DBLCLICKED","EVENT_NAME_ROW_HOVERED","EVENT_NAME_ROW_MIDDLE_CLICKED","EVENT_NAME_ROW_SELECTED","EVENT_NAME_ROW_UNHOVERED","EVENT_NAME_SELECTED","EVENT_NAME_SHOW","EVENT_NAME_SHOWN","EVENT_NAME_SLIDING_END","EVENT_NAME_SLIDING_START","EVENT_NAME_SORT_CHANGED","EVENT_NAME_TAG_STATE","EVENT_NAME_TOGGLE","EVENT_NAME_UNPAUSED","EVENT_NAME_UPDATE","HOOK_EVENT_NAME_BEFORE_DESTROY","HOOK_EVENT_NAME_DESTROYED","MODEL_EVENT_NAME_PREFIX","ROOT_EVENT_NAME_PREFIX","ROOT_EVENT_NAME_SEPARATOR","EVENT_OPTIONS_PASSIVE","EVENT_OPTIONS_NO_CAPTURE","PROP_TYPE_ANY","PROP_TYPE_ARRAY","PROP_TYPE_BOOLEAN","PROP_TYPE_DATE","PROP_TYPE_FUNCTION","PROP_TYPE_NUMBER","PROP_TYPE_OBJECT","PROP_TYPE_REG_EXP","PROP_TYPE_STRING","PROP_TYPE_ARRAY_FUNCTION","PROP_TYPE_ARRAY_OBJECT","PROP_TYPE_ARRAY_OBJECT_STRING","PROP_TYPE_ARRAY_STRING","PROP_TYPE_BOOLEAN_NUMBER","PROP_TYPE_BOOLEAN_NUMBER_STRING","PROP_TYPE_BOOLEAN_STRING","PROP_TYPE_DATE_STRING","PROP_TYPE_FUNCTION_STRING","PROP_TYPE_NUMBER_STRING","PROP_TYPE_NUMBER_OBJECT_STRING","PROP_TYPE_OBJECT_FUNCTION","PROP_TYPE_OBJECT_STRING","SLOT_NAME_ADD_BUTTON_TEXT","SLOT_NAME_APPEND","SLOT_NAME_ASIDE","SLOT_NAME_BADGE","SLOT_NAME_BOTTOM_ROW","SLOT_NAME_BUTTON_CONTENT","SLOT_NAME_CUSTOM_FOOT","SLOT_NAME_DECREMENT","SLOT_NAME_DEFAULT","SLOT_NAME_DESCRIPTION","SLOT_NAME_DISMISS","SLOT_NAME_DROP_PLACEHOLDER","SLOT_NAME_ELLIPSIS_TEXT","SLOT_NAME_EMPTY","SLOT_NAME_EMPTYFILTERED","SLOT_NAME_FILE_NAME","SLOT_NAME_FIRST","SLOT_NAME_FIRST_TEXT","SLOT_NAME_FOOTER","SLOT_NAME_HEADER","SLOT_NAME_HEADER_CLOSE","SLOT_NAME_ICON_CLEAR","SLOT_NAME_ICON_EMPTY","SLOT_NAME_ICON_FULL","SLOT_NAME_ICON_HALF","SLOT_NAME_IMG","SLOT_NAME_INCREMENT","SLOT_NAME_INVALID_FEEDBACK","SLOT_NAME_LABEL","SLOT_NAME_LAST_TEXT","SLOT_NAME_LEAD","SLOT_NAME_LOADING","SLOT_NAME_MODAL_BACKDROP","SLOT_NAME_MODAL_CANCEL","SLOT_NAME_MODAL_FOOTER","SLOT_NAME_MODAL_HEADER","SLOT_NAME_MODAL_HEADER_CLOSE","SLOT_NAME_MODAL_OK","SLOT_NAME_MODAL_TITLE","SLOT_NAME_NAV_NEXT_DECADE","SLOT_NAME_NAV_NEXT_MONTH","SLOT_NAME_NAV_NEXT_YEAR","SLOT_NAME_NAV_PEV_DECADE","SLOT_NAME_NAV_PEV_MONTH","SLOT_NAME_NAV_PEV_YEAR","SLOT_NAME_NAV_THIS_MONTH","SLOT_NAME_NEXT_TEXT","SLOT_NAME_OVERLAY","SLOT_NAME_PAGE","SLOT_NAME_PLACEHOLDER","SLOT_NAME_PREPEND","SLOT_NAME_PREV_TEXT","SLOT_NAME_ROW_DETAILS","SLOT_NAME_TABLE_BUSY","SLOT_NAME_TABLE_CAPTION","SLOT_NAME_TABLE_COLGROUP","SLOT_NAME_TABS_END","SLOT_NAME_TABS_START","SLOT_NAME_TEXT","SLOT_NAME_THEAD_TOP","SLOT_NAME_TITLE","SLOT_NAME_TOAST_TITLE","SLOT_NAME_TOP_ROW","SLOT_NAME_VALID_FEEDBACK","arrayIncludes","createArray","fillFn","mapFn","flatten","flattenDeep","toInteger","toFloat","float","parseFloat","precision","kebabCase","pascalCase","startCase","$1","$2","lowerFirst","upperFirst","escapeRegExp","spaces","trimLeft","lowerCase","ELEMENT_PROTO","TABABLE_SELECTOR","matchesEl","matches","msMatchesSelector","webkitMatchesSelector","closestEl","closest","sel","parentElement","parentNode","nodeType","Node","ELEMENT_NODE","requestAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","cb","MutationObs","removeNode","isElement","getActiveElement","excludes","activeElement","isTag","isActiveElement","isVisible","contains","body","getStyle","bcr","getBCR","height","width","isDisabled","disabled","hasAttr","hasClass","reflow","offsetHeight","selectAll","selector","root","arrayFrom","querySelectorAll","select","querySelector","includeRoot","child","getById","getElementById","addClass","className","removeClass","remove","setAttr","attr","setAttribute","removeAttr","removeAttribute","getAttr","getAttribute","hasAttribute","setStyle","removeStyle","getBoundingClientRect","getCS","getComputedStyle","getSel","getSelection","_offset","top","getClientRects","win","ownerDocument","defaultView","pageYOffset","pageXOffset","parentOffset","elStyles","doc","offsetParent","offsetParentStyles","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getTabables","rootEl","tabIndex","attemptFocus","focus","attemptBlur","blur","_unused2","memoize","cache","argsKey","VueProto","getConfigValue","bvConfig","getComponentConfig","propKey","getBreakpoints","_getBreakpointsCached","getBreakpointsCached","getBreakpointsUpCached","breakpoints","prefixPropName","prefix","unprefixPropName","suffixPropName","suffix","makeProp","requiredOrValidator","validator","default","copyProps","transformFn","copied","pluckProps","keysToPluck","objToPluck","makePropConfigurable","componentKey","makePropsConfigurable","configurablePropDefaultFnName","hasPropFunction","makeModelMixin","_ref$type","_ref$defaultValue","_ref$validator","_ref$event","mixin","model","hasNormalizedSlot","$scopedSlots","$slots","normalizeSlot","slot","scope","normalizeSlotMixin","scopedSlots","slots","_hasNormalizedSlot","vNodes","_normalizeSlot","parseEventOptions","eventOn","eventName","eventOff","eventOnOff","on","stopEvent","_ref$preventDefault","preventDefault","_ref$propagation","propagation","_ref$immediatePropaga","immediatePropagation","stopPropagation","stopImmediatePropagation","getBaseEventName","getRootEventName","getRootActionEventName","actionName","ariaLabel","textVariant","BButtonClose","componentData","staticClass","class","attrs","click","domProps","innerHTML","_watch","NO_FADE_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","FADE_PROPS","appear","noFade","transProps","BVTransition","children","appearClass","appearActiveClass","appearToClass","css","_makeModelMixin","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","parseCountDown","show","parseShow","dismissLabel","dismissible","fade","variant","BAlert","mixins","countDown","localShow","watch","newValue","clearCountDownInterval","$emit","$_countDownTimeout","$nextTick","created","$_filterTimer","beforeDestroy","dismiss","clearTimeout","$alert","$dismissButton","role","AlertPlugin","mathMin","mathMax","mathAbs","mathCeil","mathFloor","mathPow","mathRound","CLASS_NAME","aspect","BAspect","computed","padding","ratio","_aspect$split$map","_aspect$split$map2","$sizer","paddingBottom","$content","AspectPlugin","ANCHOR_TAG","encodeReserveReplacer","encode","encodeURIComponent","decode","decodeURIComponent","stringifyQueryObj","query","value2","parseQuery","parsed","param","parts","isLink","href","isRouterLink","computeTag","thisOrParent","routerComponentName","hasRouter","$router","$nuxt","computeRel","_ref2","rel","computeHref","_ref3","toFallback","hash","BASE_ATTRS","viewBox","focusable","STACKED_ATTRS","animation","flipH","flipV","fontScale","rotate","scale","shiftH","shiftV","stacked","title","BVIconBase","_class","hasScale","hasTransforms","hasShift","hasContent","transforms","$inner","transform","$title","fontSize","xmlns","iconProps","BVIconBaseProps","makeIcon","kebabName","iconName","iconNameClass","iconTitle","svgContent","BIconBlank","BIconCalendar","BIconCalendarFill","BIconChevronBarLeft","BIconChevronDoubleLeft","BIconChevronDown","BIconChevronLeft","BIconChevronUp","BIconCircleFill","BIconClock","BIconClockFill","BIconDash","BIconPersonFill","BIconPlus","BIconStar","BIconStarFill","BIconStarHalf","BIconX","findIconComponent","iconComponent","$parent","icon","BIcon","CODE_BACKSPACE","CODE_DELETE","CODE_DOWN","CODE_END","CODE_ENTER","CODE_ESC","CODE_HOME","CODE_LEFT","CODE_PAGEDOWN","CODE_PAGEUP","CODE_RIGHT","CODE_SPACE","CODE_UP","compareArrays","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","isEmpty","makePropWatcher","propName","oldValue","$delete","$data","makePropCacheMixin","proxyPropName","attrsMixin","PROP","listenOnRootMixin","callback","listenOffRoot","registerRootListener","unregisterRootListener","listenOnRoot","$on","listenOnRootOnce","_this2","_callback","$once","$off","emitOnRoot","_this$$root","listenersMixin","ROOT_EVENT_NAME_CLICKED","routerLinkProps","activeClass","append","exact","exactActiveClass","exactPath","exactPathActiveClass","routerTag","nuxtLinkProps","noPrefetch","prefetch","active","BLink","inheritAttrs","computedTag","_isRouterLink","computedRel","computedHref","computedProps","computedAttrs","bvAttrs","tabindex","computedListeners","bvListeners","onClick","_arguments","eventIsEvent","suppliedHandler","currentTarget","__vue__","$el","linkProps","BLinkProps","block","pill","pressed","squared","handleFocus","isLinkStrict","isToggle","isButton","isNonStandardTag","computeClass","computeLinkProps","computeAttrs","button","nonStandardTag","hashLink","autocomplete","BButton","listeners","keydown","keyCode","focusin","focusout","SIZES","FONT_SIZE_SCALE","BADGE_FONT_SIZE_SCALE","computeSize","alt","badge","badgeLeft","badgeOffset","badgeTop","badgeVariant","buttonType","rounded","square","text","BAvatar","inject","bvAvatarGroup","localSrc","computedSize","computedVariant","computedRounded","fontStyle","marginStyle","overlapScale","marginRight","badgeStyle","bottom","onImgError","_class2","$badge","hasBadgeSlot","badgeText","overlap","BAvatarGroup","provide","paddingStyle","paddingLeft","paddingRight","AvatarPlugin","BBadge","BadgePlugin","stripTags","htmlOrText","textContent","ariaCurrent","BBreadcrumbLink","suppliedProps","BBreadcrumbLinkProps","BBreadcrumbItem","BBreadcrumb","childNodes","activeDefined","idx","_item","BreadcrumbPlugin","ButtonPlugin","BBtn","BBtnClose","buttonProps","ariaRole","vertical","BButtonGroup","ButtonGroupPlugin","BBtnGroup","ITEM_SELECTOR","justify","keyNav","BButtonToolbar","mounted","getItems","focusFirst","focusPrev","focusNext","focusLast","onFocusin","relatedTarget","onKeydown","shiftKey","ButtonToolbarPlugin","BBtnToolbar","CALENDAR_GREGORY","CALENDAR_LONG","CALENDAR_NARROW","CALENDAR_SHORT","DATE_FORMAT_2_DIGIT","DATE_FORMAT_NUMERIC","createDate","parseYMD","date","_date$split$map","_date$split$map2","year","month","day","getFullYear","getMonth","getDate","formatYMD","resolveLocale","locales","calendar","fmt","Intl","DateTimeFormat","resolvedOptions","locale","createDateFormatter","dtf","format","datesEqual","date1","date2","firstDateOfMonth","setDate","lastDateOfMonth","setMonth","addYears","numberOfYears","setFullYear","oneMonthAgo","oneMonthAhead","oneYearAgo","oneYearAhead","oneDecadeAgo","oneDecadeAhead","constrainDate","RTL_LANGS","isLocaleRTL","locale1","locale2","idMixin","localId_","safeId","idProps","ariaControls","dateDisabledFn","dateFormatOptions","weekday","dateInfoFn","direction","headerTag","hidden","hideHeader","initialDate","labelCalendar","labelCurrentMonth","labelHelp","labelNav","labelNextDecade","labelNextMonth","labelNextYear","labelNoDateSelected","labelPrevDecade","labelPrevMonth","labelPrevYear","labelSelected","labelToday","navButtonVariant","noHighlightToday","noKeyNav","readonly","roleDescription","selectedVariant","showDecadeNav","startWeekday","todayVariant","valueAsDate","weekdayHeaderFormat","BCalendar","selected","selectedYMD","activeYMD","_constrainDate","getToday","gridHasFocus","isLive","valueId","widgetId","navId","gridId","gridCaptionId","gridHelpId","activeId","selectedDate","activeDate","computedMin","computedMax","computedWeekStarts","computedLocale","computedDateDisabledFn","computedDateInfoFn","calendarLocale","calendarYear","calendarMonth","calendarFirstDay","calendarDaysInMonth","computedTodayVariant","computedNavButtonVariant","isRTL","dir","selectedFormatted","formatDateString","activeFormatted","dateDisabled","rtl","dateOutOfRange","rangeFn","ymd","hour","minute","formatYearMonth","formatWeekdayName","formatWeekdayNameShort","formatDay","nf","NumberFormat","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","notation","prevDecadeDisabled","prevYearDisabled","prevMonthDisabled","thisMonthDisabled","nextMonthDisabled","nextYearDisabled","nextDecadeDisabled","matrix","firstDay","daysInMonth","startIndex","getDay","weekOffset","currentDay","week","dayYMD","dayDisabled","dateInfo","label","isThisMonth","info","calendarHeadings","d","old","newYMD","oldYMD","setLive","_this3","activated","deactivated","$refs","grid","_this4","emitSelected","_this5","setGridFocusFlag","onKeydownWrapper","altKey","ctrlKey","checkDate","constrainedToday","onKeydownGrid","onClickDay","clickedDate","gotoPrevDecade","gotoPrevYear","gotoPrevMonth","gotoCurrentMonth","gotoNextMonth","gotoNextYear","gotoNextDecade","onHeaderClick","_this6","hideDecadeNav","todayYMD","highlightToday","$header","for","labelSelectedDate","navScope","navProps","navPrevProps","navNextProps","$prevDecadeIcon","$prevYearIcon","$prevMonthIcon","$thisMonthIcon","$nextMonthIcon","$nextYearIcon","$nextDecadeIcon","makeNavBtn","btnDisabled","shortcut","$nav","$gridCaption","$gridWeekDays","$gridBody","$cells","dIndex","isSelected","isActive","isToday","idCell","$btn","pointerEvents","$gridHelp","$grid","ref","$slot","$widget","lang","CalendarPlugin","bgVariant","borderVariant","titleTag","BCardTitle","subTitle","subTitleTag","subTitleTextVariant","BCardSubTitle","titleProps","subTitleProps","cardProps","bodyClass","overlay","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$subTitle","bodyTag","BCardProps","header","headerClass","headerHtml","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","footer","footerClass","footerHtml","BCardFooter","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","BLANK_TEMPLATE","makeBlankImgSrc","color","blank","blankColor","center","fluid","fluidGrow","sizes","srcset","thumbnail","BImg","align","BImgProps","BCardImg","baseClass","cardImgProps","BCardImgProps","imgSrc","BCardBodyProps","BCardHeaderProps","BCardFooterProps","noBody","BCard","imgLeft","imgRight","imgStart","imgEnd","imgBottom","slotScope","$imgFirst","$imgLast","$img","hasHeaderSlot","$footer","hasFooterSlot","OBSERVER_PROP_NAME","VisibilityObserver","vnode","margin","once","observer","visible","doneOnce","createObserver","IntersectionObserver","rootMargin","threshold","isIntersecting","intersectionRatio","disconnect","destroy","modifiers","_prevModifiers","componentUpdated","unbind","VBVisible","MODEL_PROP_NAME_SHOW","MODEL_EVENT_NAME_SHOW","imgProps","blankHeight","blankSrc","blankWidth","BImgLazy","isShown","computedSrc","computedBlank","computedWidth","computedHeight","computedSrcset","computedSizes","updateShowProp","doShow","_modifiers","$props","BImgLazyProps","BCardImgLazy","textTag","BCardText","deck","BCardGroup","CardPlugin","observeDom","obs","mutations","changed","mutation","TEXT_NODE","addedNodes","removedNodes","childList","subtree","DIRECTION","dirClass","overlayClass","TRANS_DURATION","TOUCH_EVENT_COMPAT_WAIT","SWIPE_THRESHOLD","PointerType","TOUCH","PEN","TransitionEndEvents","WebkitTransition","MozTransition","OTransition","transition","getTransitionEndEvent","background","controls","imgHeight","imgWidth","indicators","interval","labelGotoSlide","labelIndicators","labelNext","labelPrev","noAnimation","noHoverPause","noTouch","noWrap","BCarousel","bvCarousel","isSliding","transitionEndEvent","slides","isPaused","touchStartX","touchDeltaX","numSlides","setSlide","pause","doSlide","$_interval","$_animationTimeout","$_touchTimeout","$_observer","updateSlides","setObserver","clearInterval","clearAnimationTimeout","clearTouchTimeout","_clearInterval","inner","attributes","attributeFilter","slide","visibilityState","setInterval","restart","isCycling","calcDirection","currentSlide","nextSlide","onceTransEnd","events","curIndex","nextIndex","handleClick","handleSwipe","absDeltaX","touchStart","pointerType","clientX","touches","touchMove","touchEnd","idInner","$controls","makeControl","handlerWrapper","$indicators","mouseenter","mouseleave","tagName","imgAlt","imgBlank","imgBlankColor","caption","captionHtml","captionTag","contentTag","contentVisibleUp","textHtml","BCarouselSlide","contentClasses","dragstart","$contentChildren","$child","CarouselPlugin","CLASS_NAME_SHOW","onEnter","scrollHeight","onAfterEnter","onLeave","onAfterLeave","TRANSITION_PROPS","TRANSITION_HANDLERS","afterEnter","leave","afterLeave","BVCollapse","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","ROOT_EVENT_NAME_ACCORDION","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","accordion","isNav","BCollapse","transitioning","classObject","collapse","emitState","handleToggleEvent","handleAccordionEvent","setWindowEvents","handleResize","emitSync","updated","checkDisplayBlock","restore","isBlock","clickHandler","openedId","openAccordion","isThis","CLASS_BV_TOGGLE_COLLAPSED","CLASS_BV_TOGGLE_NOT_COLLAPSED","BV_BASE","BV_TOGGLE_ROOT_HANDLER","BV_TOGGLE_CLICK_HANDLER","BV_TOGGLE_STATE","BV_TOGGLE_TARGETS","STRING_FALSE","STRING_TRUE","ATTR_ARIA_CONTROLS","ATTR_ARIA_EXPANDED","ATTR_ROLE","ATTR_TABINDEX","STYLE_OVERFLOW_ANCHOR","KEYDOWN_KEY_CODES","getTargets","targets","removeClickListener","addClickListener","removeRootListeners","addRootListeners","setToggleState","resetProp","handleUpdate","binding","VBToggle","VBTogglePlugin","CollapsePlugin","timeoutDuration","longerTimeoutBrowsers","isBrowser","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getType","getStyleComputedProperty","getParentNode","nodeName","getScrollParent","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","getClientRect","offsets","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","modifiersToRun","enabled","update","isDestroyed","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","setStyles","unit","setAttributes","applyStyle","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","_extends","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","sideCapitalized","altSide","opSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","_data$offsets$arrow","getOppositeVariation","validPlacements","placements","clockwise","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","preventOverflow","transformProp","popperStyles","priority","escapeWithReference","shiftvariation","shiftOffsets","hide","bound","subtractLength","Popper","debounce","Defaults","jquery","onLoad","Utils","PopperUtils","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","BvEvent","eventInit","cancelable","nativeEvent","vueTarget","componentId","defaultPrevented","clickOutMixin","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","filterVisibles","els","boundary","dropleft","dropright","dropup","noFlip","popperOpts","dropdownMixin","bvDropdown","bvNavbar","visibleChangePrevented","inNavbar","toggler","directionClass","boundaryClass","hideDelay","bvEvent","menu","emitEvent","focusToggler","showMenu","hideMenu","$_popper","$_hideTimeout","whileOpenListen","destroyPopper","clearHideTimeout","createPopper","focusMenu","getPopperConfig","updatePopper","popperConfig","isOpen","rootCloseListener","vm","refocus","_event","onMousedown","onEsc","onSplitClick","hideHandler","up","focusItem","dropdownProps","lazy","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleAttrs","toggleClass","toggleTag","toggleText","BDropdown","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","$split","btnProps","ariaHasPopupRoles","$toggle","mousedown","$menu","linkClass","BDropdownItem","closeDropdown","buttonClass","BDropdownItemButton","BDropdownHeader","BDropdownDivider","inline","novalidate","validated","BForm","formControlProps","formClass","BDropdownForm","textClass","BDropdownText","ariaDescribedby","headerClasses","headerVariant","BDropdownGroup","headerId","ariaDescribedBy","DropdownPlugin","BDd","BDdItem","BDropdownItemBtn","BDdItemButton","BDdItemBtn","BDdHeader","BDdDivider","BDdForm","BDdText","BDdGroup","TYPES","BEmbed","EmbedPlugin","OPTIONS_OBJECT_DEPRECATED_MSG","disabledField","htmlField","textField","valueField","formOptionsMixin","formOptions","normalizeOptions","normalizeOption","option","formOptionsProps","BFormDatalist","_methods","BFormText","ariaLive","forceShow","tooltip","BFormInvalidFeedback","BFormValidFeedback","BFormRow","FormPlugin","BDatalist","BFormFeedback","looseIndexOf","SELECTOR","autofocus","form","formControlMixin","handleAutofocus","plain","formCustomMixin","formSizeMixin","sizeFormClass","formStateMixin","computedState","stateClass","computedAriaInvalid","ariaInvalid","_objectSpread2","formSizeProps","formStateProps","formCustomProps","ariaLabelledby","buttonVariant","formRadioCheckMixin","localChecked","isGroup","bvGroup","hasFocus","computedLocalChecked","isChecked","isRadio","isBtnMode","buttons","isPlain","isCustom","isSwitch","switches","switch","isInline","computedName","groupName","computedForm","computedButtonVariant","buttonClasses","computedLocalCheckedWatcher","checked","$input","change","handleChange","$button","$label","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","formRadioCheckProps","BFormCheckbox","setIndeterminate","indeterminate","_ref$target","uncheckedValue","BFormRadio","PASS_DOWN_ATTRS","formRadioCheckGroupMixin","groupClasses","classes","isRadioGroup","$attrs","optionComponent","$inputs","formRadioCheckGroupProps","BFormCheckboxGroup","bvCheckGroup","FormCheckboxPlugin","BCheckbox","BCheck","BCheckboxGroup","BCheckGroup","MOUSEENTER","MOUSELEAVE","createListener","updateListeners","_ref$value","hasListener","handlerChanged","VBHover","buttonOnly","formattedValue","placeholder","BVFormBtnLabelControl","isHovered","idButton","idLabel","idMenu","idWrapper","computedDir","setFocus","handleHover","hovered","invalid","btnScope","opened","$hidden","calendarProps","BCalendarProps","formBtnLabelControlProps","BVFormBtnLabelControlProps","calendarWidth","closeButton","closeButtonVariant","dark","labelCloseButton","labelResetButton","labelTodayButton","noCloseOnSelect","resetButton","resetButtonVariant","resetValue","todayButton","todayButtonVariant","BFormDatepicker","localYMD","localLocale","calendarYM","computedLang","computedResetValue","control","setAndClose","onSelected","onInput","onContext","onTodayButton","onResetButton","onCloseButton","onShow","onShown","onHidden","defaultButtonFn","$createElement","_label","_label2","$calendar","shown","FormDatepickerPlugin","BDatepicker","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","getDataTransferItemEntry","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","isDirectory","getAllFileEntriesInDirectory","createReader","file","$path","directoryReader","entryPromises","readDirectoryEntries","readEntries","accept","browseText","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","BFormFile","files","dragging","dropAllowed","computedAccept","extOrType","startMatch","endMatch","computedCapture","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","allowed","filesTraversed","reset","$_form","$form","isFileValid","isFilesArrayValid","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","handleFiles","isDrop","filteredFiles","focusHandler","onChange","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","onDrop","zIndex","dragenter","dragover","dragleave","drop","FormFilePlugin","BFile","escapeChar","cssEscape","firstCharCode","char","charCode","ALIGN_SELF_VALUES","computeBreakpoint","breakpoint","computeBreakpointClass","breakpointPropMap","generateProps","breakpointCol","breakpointOffset","breakpointOrder","col","alignSelf","cols","BCol","_classList$push","hasColClasses","INPUTS","INPUT_SELECTOR","LEGEND_INTERACTIVE_ELEMENTS","feedbackAriaLive","invalidFeedback","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","BFormGroup","contentColProps","getColProps","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","updateAriaDescribedby","propValue","newIds","oldIds","ids","onLegendClick","inputs","isFieldset","labelId","labelTag","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","FormGroupPlugin","BFormFieldset","formSelectionMixin","selectionStart","selectionEnd","selectionDirection","_this$$refs$input","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","formatter","lazyFormatter","plaintext","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","formatValue","force","updateValue","doUpdate","composing","onBlur","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","formTextProps","noWheel","BFormInput","localType","setWheelStopper","onWheelFocus","onWheelBlur","stopWheel","FormInputPlugin","BInput","BFormRadioGroup","bvRadioGroup","FormRadioPlugin","BRadio","BRadioGroup","MIN_STARS","DEFAULT_STARS","computeStars","stars","clampValue","BVFormRatingStar","focused","hasClear","rating","star","minStar","iconClear","iconEmpty","iconFull","iconHalf","noBorder","showClear","showValue","showValueMax","BFormRating","computedStars","computedRating","isInteractive","formattedRating","formatOptions","amountRtl","onFocus","renderIcon","iconEmptyFn","iconHalfFn","iconFullFn","iconClearFn","$icon","half","full","FormRatingPlugin","BRating","labelField","optionsField","optionsMixin","BFormSelectOption","BFormSelectOptionGroup","selectSize","BFormSelect","computedSelectSize","inputClass","selectedValue","_value","FormSelectPlugin","BSelect","BSelectOption","BSelectOptionGroup","DEFAULT_MIN","DEFAULT_MAX","DEFAULT_STEP","DEFAULT_REPEAT_DELAY","DEFAULT_REPEAT_INTERVAL","DEFAULT_REPEAT_THRESHOLD","DEFAULT_REPEAT_MULTIPLIER","KEY_CODES","formatterFn","labelDecrement","labelIncrement","repeatDelay","repeatInterval","repeatStepMultiplier","repeatThreshold","BFormSpinbutton","spinId","computedInline","computedReadonly","computedRequired","computedStep","computedDelay","delay","computedInterval","computedThreshold","computedStepMultiplier","computedPrecision","computedMultiplier","valueAsFixed","computedRTL","defaultFormatter","useGrouping","computedFormatter","computedSpinAttrs","hasValue","_disabled","clearRepeat","_readonly","$_autoDelayTimer","$_autoRepeatTimer","$_keyIsDown","spinner","emitChange","stepValue","multiplier","onFocusBlur","stepUp","stepDown","metaKey","resetTimers","handleStepRepeat","onKeyup","stepper","onMouseup","setMouseup","makeButton","IconCmp","keyRef","slotName","touchstart","$increment","$decrement","$spin","keyup","FormSpinbuttonPlugin","BSpinbutton","noRemove","removeLabel","BFormTag","onRemove","tagId","tagLabelId","$remove","$tag","DEFAULT_INPUT_FOCUS_SELECTOR","escapeRegExpChars","cleanTags","tags","processEventValue","cleanTagsState","valid","duplicate","addButtonText","addButtonVariant","addOnChange","duplicateTagText","ignoreInputFocusSelector","inputAttrs","inputId","inputType","invalidTagText","limitTagsText","noAddOnEnter","noOuterFocus","noTagRemove","removeOnDelete","tagClass","tagPills","tagRemoveLabel","tagRemovedLabel","tagValidator","tagVariant","BFormTags","newTag","removedTags","tagsState","focusState","computedInputId","computedInputType","computedInputAttrs","computedInputHandlers","onInputBlur","onInputChange","onInputFocus","onInputInput","onInputKeydown","computedSeparator","computedSeparatorRegExp","computedJoiner","joiner","computeIgnoreInputFocusSelector","disableAddButton","splitTags","validateTag","duplicateTags","hasDuplicateTags","invalidTags","hasInvalidTags","isLimitReached","addTag","parseTags","getInput","invalidAndDuplicates","removeTag","separatorRe","ignoreFocusSelector","onFocusout","_this7","defaultRender","inputHandlers","isDuplicate","isInvalid","$tags","duplicateFeedbackId","limitFeedbackId","outline","minWidth","invisible","tagListId","$field","$ul","$feedback","$invalid","$duplicate","$limit","$output","$removed","hasTags","FormTagsPlugin","BTags","BTag","maxRows","noAutoShrink","noResize","rows","BFormTextarea","heightInPx","resize","computedRows","computedMinRows","computedMaxRows","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","border","borderBottomWidth","paddingTop","minHeight","oldHeight","contentRows","FormTextareaPlugin","BTextarea","NUMERIC","padLeftZeros","parseHMS","hh","mm","ss","_value$split$map","_value$split$map2","hours","minutes","seconds","ampm","formatHMS","requireSeconds","hms","BFormSpinbuttonProps","hour12","labelAm","labelAmpm","labelHours","labelMinutes","labelNoTimeSelected","labelPm","labelSeconds","minutesStep","secondsStep","showSeconds","BTime","modelHours","modelMinutes","modelSeconds","modelAmpm","computedHMS","resolved","hourCycle","computedHourCycle","is12Hour","formatted","formattedTimeString","computedAriaLabelledby","timeFormatter","timeZone","numberFormatter","UTC","spinScopedSlots","increment","decrement","_parseHMS","newHours","oldHours","spinners","formatHours","formatMinutes","formatSeconds","formatAmpm","setHours","setMinutes","setSeconds","setAmpm","onSpinLeftRight","cmp","spinIds","makeSpinbutton","spinbuttonProps","refInFor","makeColon","$spinners","$value","timeProps","BTimeProps","labelNowButton","noCloseButton","nowButton","nowButtonVariant","BFormTimepicker","localHMS","onNowButton","getHours","getMinutes","getSeconds","time","$time","FormTimepickerPlugin","BTimepicker","ImagePlugin","BInputGroupText","isText","BInputGroupAddon","BInputGroupAddonProps","BInputGroupAppend","BInputGroupPrepend","appendHtml","prepend","prependHtml","BInputGroup","$prepend","hasPrependSlot","$append","hasAppendSlot","InputGroupPlugin","BContainer","container","containerFluid","headerLevel","lead","leadHtml","leadTag","BJumbotron","$lead","hasLeadSlot","$children","JumbotronPlugin","COMMON_ALIGNMENT","computeRowColsClass","computeRowColsBreakpoint","rowColsPropList","rowColsProps","alignContent","alignH","alignV","noGutters","BRow","LayoutPlugin","LinkPlugin","horizontal","BListGroup","actionTags","action","BListGroupItem","itemProps","ListGroupPlugin","verticalAlign","BMediaAside","BMediaBody","rightAlign","BMedia","$aside","MediaPlugin","listenOnDocumentMixin","listenOffDocument","registerDocumentListener","unregisterDocumentListener","listenDocument","listenOnDocument","listenOnWindowMixin","listenOffWindow","registerWindowListener","unregisterWindowListener","listenWindow","listenOnWindow","getScopeId","scopedStyleMixin","scopedStyleAttrs","BVTransporterTarget","abstract","nodes","updatedNodes","destroyed","$nodes","BVTransporter","immediate","unmountTarget","mountTarget","$_defaultFn","$_target","beforeMount","updateTarget","getContainer","$container","propsData","defaultFn","$destroy","_get","_superPropBase","BvModalEvent","_BvEvent","trigger","DEFAULT_ZINDEX","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","SELECTOR_NAVBAR_TOGGLER","ModalManager","modals","baseZIndex","scrollbarWidth","isBodyOverflowing","modalCount","modalsAreOpen","newCount","oldCount","getScrollbarWidth","checkScrollbar","setScrollbar","resetScrollbar","updateModals","registerModal","modal","unregisterModal","_isBeingDestroyed","_isDestroyed","resetModal","getBaseZIndex","div","isTop","_getBCR","_paddingChangedForModal","_marginChangedForModal","actualPadding","actualMargin","modalManager","TRIGGER_BACKDROP","TRIGGER_ESC","TRIGGER_FORCE","TRIGGER_TOGGLE","BUTTON_CANCEL","BUTTON_CLOSE","BUTTON_OK","BUTTONS","OBSERVER_CONFIG","autoFocusButton","busy","buttonSize","cancelDisabled","cancelTitle","cancelTitleHtml","cancelVariant","centered","contentClass","dialogClass","headerCloseContent","headerCloseLabel","headerCloseVariant","hideBackdrop","hideFooter","hideHeaderClose","ignoreEnforceFocusSelector","modalClass","noCloseOnBackdrop","noCloseOnEsc","noEnforceFocus","noStacking","okDisabled","okOnly","okTitle","okTitleHtml","okVariant","returnFocus","scrollable","static","titleClass","titleHtml","titleSrOnly","BModal","isHidden","isTransitioning","isShow","isOpening","isClosing","ignoreBackdropClick","isModalOverflowing","modalId","modalOuterId","modalHeaderId","modalBodyId","modalTitleId","modalContentId","modalFooterId","modalBackdropId","modalClasses","modalStyles","sbWidth","dialogClasses","titleClasses","bodyClasses","footerClasses","_ref4","modalOuterStyle","cancel","onCancel","onClose","onOk","computeIgnoreEnforceFocusSelector","computedModalAttrs","$_returnFocus","showHandler","toggleHandler","modalListener","checkModalOverflow","updateModel","buildEvent","showEvent","hideEvent","triggerEl","_getActiveElement","onBeforeEnter","setResizeEvent","setEnforceFocus","onBeforeLeave","returnFocusTo","onDialogMousedown","onceModalMouseup","onClickOut","tabables","bottomTrap","topTrap","preventScroll","autoFocus","makeModal","$modalHeader","$closeButton","$body","$modalFooter","$cancelButton","$okButton","$modalContent","$tabTrapTop","$tabTrapBottom","$modalDialog","$modal","beforeEnter","beforeLeave","$backdrop","ROOT_ACTION_EVENT_NAME_SHOW","PROPERTY","getTarget","_ref$modifiers","getTriggerElement","setRole","oldProp","VBModal","inserted","PROP_NAME_PRIV","BASE_PROPS","modalProps","defaultResolver","propsToSlots","msgBoxContent","filterOptions","BMsgBox","extends","handleDestroy","$route","$watch","asyncMsgBox","resolver","msgBox","bvModalEvent","$mount","makeMsgBox","BvModal","_vm","_root","_this$_root","_this$_root2","BVModalPlugin","ModalPlugin","computeJustifyContent","cardHeader","justified","pills","tabs","BNav","linkAttrs","linkClasses","BNavItem","BNavText","formProps","BFormProps","BNavForm","BDropdownProps","BNavItemDropdown","toggleId","menuId","NavPlugin","BNavItemDd","BNavDropdown","BNavDd","print","toggleable","BNavbar","breakpointClass","xs","BNavProps","BNavbarNav","BNavbarBrand","BNavbarToggle","toggleState","handleStateEvent","expanded","NavbarPlugin","BNavToggle","BSpinner","POSITION_COVER","bgColor","noCenter","opacity","overlayTag","spinnerSmall","spinnerType","spinnerVariant","wrapTag","BOverlay","defaultOverlayFn","$overlay","$background","backgroundColor","backdropFilter","OverlayPlugin","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","makePageArray","startNumber","numberOfPages","sanitizeLimit","sanitizeCurrentPage","page","onSpaceKey","ellipsisClass","ellipsisText","firstClass","firstNumber","firstText","hideEllipsis","hideGotoEndButtons","labelFirstPage","labelLastPage","labelNextPage","labelPage","labelPrevPage","lastClass","lastNumber","lastText","nextClass","nextText","pageClass","prevClass","prevText","paginationMixin","currentPage","localNumberOfPages","localLimit","btnSize","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","lastPageNumber","pageList","_this$paginationParam","pages","_i3","handleKeyNav","getButtons","btn","focusCurrent","pageNumbers","_this$paginationParam2","$buttons","isActivePage","pageNumber","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","$btnContent","makeEllipsis","isLast","makePageButton","btnContent","makePage","$firstPageBtn","$lastPageBtn","$pagination","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","sanitizePerPage","sanitizeTotalRows","paginationProps","perPage","totalRows","BPagination","pageSizeNumberOfPages","clickEvent","pageNum","PaginationPlugin","sanitizeNumberOfPages","_linkProps","baseUrl","linkGen","noPageDetect","pageGen","useRouter","BPaginationNav","computedValue","setNumberOfPages","guessCurrentPage","getPageInfo","_link","makeLink","resolveLink","_link2","pathname","resolveRoute","route","guess","currentRoute","loc","currentLink","PaginationNavPlugin","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","arrowPadding","boundaryPadding","fallbackPlacement","BVPopper","attachment","getAttachment","templateType","getOffset","popperPlacementChange","popperCreate","arrowOffset","renderTemplate","BVTooltipTemplate","customClass","interactive","templateClasses","noninteractive","templateAttributes","templateListeners","_makePropsConfigurabl","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","triggers","BVTooltip","activeTrigger","hover","computedId","computedTriggers","isWithActiveTrigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","disable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","updateData","titleUpdated","fixTitle","createTemplateAndShow","Template","$tip","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","hideTemplate","clearActiveTriggers","localPlacementTarget","removeAriaDescribedby","restoreTitle","getTemplateElement","dropdownOpen","addAriaDescribedby","tip","prevHoverState","getTargetId","isInModal","isDropdown","setRootListener","doHide","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","_this9","eventTarget","_this10","_this11","MODEL_PROP_NAME_ENABLED","MODEL_EVENT_NAME_ENABLED","BTooltip","localTitle","localContent","templateTitleContent","$_toolpop","updateContent","doOpen","doClose","Component","getComponent","$toolpop","onHide","onDisabled","onEnabled","setTitle","setContent","BVPopoverTemplate","titleDomProps","contentDomProps","BVPopover","BTooltipProps","BPopover","BV_POPOVER","DefaultTrigger","validTriggers","manual","htmlRE","noFadeRE","placementRE","boundaryRE","delayRE","delayShowRE","delayHideRE","offsetRE","variantRE","spacesRE","parseBindings","bindings","selectedTriggers","applyPopover","__bv_prev_data__","oldData","newData","removePopover","VBPopover","VBPopoverPlugin","PopoverPlugin","animated","labelHtml","showProgress","striped","BProgressBar","bvProgress","progressBarClasses","computedAnimated","computedStriped","progressBarStyles","computedProgress","computedShowProgress","computedShowValue","progressBarProps","BProgressBarProps","BProgress","progressHeight","$childNodes","ProgressPlugin","backdrop","backdropVariant","closeLabel","noCloseOnRouteChange","noHeader","noHeaderClose","noSlide","shadow","sidebarClass","renderHeaderTitle","renderHeaderClose","renderHeader","$close","renderBody","renderFooter","renderContent","renderBackdrop","onBackdropClick","BSidebar","transitionProps","hasTitle","titleId","fullPath","$_returnFocusEl","handleToggle","handleSync","onTopTrapFocus","enforceFocus","onBottomTrapFocus","$sidebar","SidebarPlugin","BSkeleton","BSkeletonIcon","cardImg","noAspect","BSkeletonImg","hasListenerMixin","$listeners","$events","_events","stackedMixin","isStacked","isStackedAlways","stackedTableClasses","bordered","borderless","captionTop","noBorderCollapse","outlined","responsive","stickyHeader","tableClass","tableVariant","tableRendererMixin","bvTable","isResponsive","isStickyHeader","wrapperClasses","wrapperStyles","maxHeight","tableClasses","isTableSimple","computedItems","computedBusy","selectableTableClasses","tableAttrs","filteredItems","fields","computedFields","selectableTableAttrs","ariaAttrs","captionId","rowCount","renderCaption","renderColgroup","renderThead","renderTbody","renderTfoot","$table","stackedProps","tableRendererProps","BTableSimple","isPositiveNumber","showFooter","tableProps","BSkeletonTable","$th","$thTr","$td","$tdTr","$tbody","$thead","$tfoot","loading","BSkeletonWrapper","SkeletonPlugin","SpinnerPlugin","LIGHT","DARK","BTr","bvTableTr","bvTableRowGroup","inTbody","isTbody","inThead","isThead","inTfoot","isTfoot","isDark","hasStickyHeader","headVariant","footVariant","isRowDark","trClasses","trAttrs","bottomRowMixin","renderBottomRow","tbodyTrClass","tbodyTrAttr","parseSpan","spanValidator","colspan","rowspan","stackedHeading","stickyColumn","BTd","isStackedCell","isStickyColumn","rowVariant","computedColspan","computedRowspan","cellClasses","cellAttrs","headOrFoot","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","stopIfBusy","renderBusy","captionMixin","$caption","hasCaptionSlot","colgroupMixin","$colgroup","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","$empty","isFiltered","stringifyObjectValues","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","EVENT_FILTER","sanitizeRow","row","ignoreFields","includeFields","fieldsObj","formattedRow","field","filterByFormatted","allowedKeys","stringifyRecordValues","DEBOUNCE_DEPRECATED_MSG","filterDebounce","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","computedFilterIgnored","computedFilterIncluded","computedFilterDebounce","ms","localFiltering","hasProvider","noProviderFiltering","filteredCheck","localItems","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","clearFilterTimer","deep","newCriteria","timeout","regExp","computedFieldsObj","processField","normalizeFields","origFields","sample","primaryKey","itemsMixin","paginatedItems","sortedItems","sortBy","localSortBy","sortDesc","localSortDesc","apiUrl","getFieldFormatter","localPaging","noProviderPaging","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","noProviderSorting","providerMixin","providerTriggerContext","_providerUpdate","refresh","clearSelected","_providerSetLocal","_props","SELECT_MODES","ROLE_GRID","noSelectOnClick","selectMode","selectable","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","selectableIsMultiSelect","setSelectionHandlers","_selectedRows","selectRow","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","selectableRowAttrs","selectionHandler","stableSort","compareFn","normalizeValue","defaultSortCompare","_ref$sortBy","_ref$formatter","_ref$locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","bb","localeCompare","MODEL_PROP_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_BY","MODEL_PROP_NAME_SORT_DESC","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SORT_DIRECTION_LAST","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","numeric","sortingMixin","localSorting","isSortable","sortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","_field$sortKey","ariaSort","sortTheadThLabel","labelSorting","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","TABLE_TAG_NAMES","filterEvent","textSelectionActive","containsNode","BTdProps","BTh","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","getThValues","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","rowHovered","tbodyRowEventStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","isRowHeader","cellTag","cellVariant","tdClass","thAttr","tdAttr","unformatted","toggleDetails","detailsShowing","rowSelected","$_bodyFieldSlotNameCache","renderTbodyRow","rowShowDetails","hasRowClickHandler","$rows","detailsId","$tds","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableAttrs","userTrClasses","userTrAttrs","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","BTbodyProps","tbodyRowProps","tbodyClass","tbodyMixin","getTbodyTrs","tbody","trs","tr","getTbodyTrIndex","onTbodyRowKeydown","onTBodyRowClicked","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTopRow","$busy","defaultSlotName","lowercaseSlotName","handlers","auxclick","contextmenu","dblclick","BTfoot","tfootClasses","tfootAttrs","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","BThead","theadClasses","theadAttrs","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","makeCell","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","slotNames","column","$srLabel","$trs","topRowMixin","bottomRowProps","busyProps","captionProps","colgroupProps","emptyProps","filteringProps","itemsProps","providerProps","selectableProps","sortingProps","tfootProps","theadProps","topRowProps","BTable","BTableLite","TableLitePlugin","TableSimplePlugin","TablePlugin","notDisabled","tab","BVTabButton","bvTabs","posInSet","setSize","_this$tab","localActive","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","activeTabClass","card","navClass","navWrapperClass","noNavStyle","BTabs","currentTab","registeredTabs","localNavClass","$tab","activateTab","previousTab","nextTab","updateTabs","registerTab","unregisterTab","$t","getTabs","$tabs","_isTab","getButtonForTab","updateButton","$forceUpdate","tabEvent","deactivateTab","focusButton","emitTabClick","clickTab","firstTab","currentIndex","lastTab","$activeTab","$fallbackTab","_on","controlledBy","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","BTab","tabClasses","buttonId","computedNoFade","computedLazy","activate","deactivate","TabsPlugin","TimePlugin","DefaultTransition","ariaAtomic","BToaster","doRender","dead","staticName","Wormhole","$toaster","$target","PortalTarget","slim","MIN_DURATION","appendToast","autoHideDelay","isStatus","noAutoHide","solid","toastClass","toaster","BToast","isMounted","isHiding","dismissStarted","resumeDismiss","toastClasses","computedDuration","computedToaster","transitionHandlers","ensureToaster","$_dismissTimer","clearDismissTimer","setHoverHandler","startDismissTimer","onPause","onUnPause","onLinkClick","hiddenEvent","makeToast","$headerContent","isStatic","$toast","Portal","toastProps","toastContent","BVToastPop","toast","BvToast","BVToastPlugin","ToastPlugin","BV_TOOLTIP","noninteractiveRE","applyTooltip","removeTooltip","VBTooltip","VBTooltipPlugin","TooltipPlugin","componentsPlugin","VBHoverPlugin","VBModalPlugin","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","ROOT_EVENT_NAME_ACTIVATE","METHOD_OFFSET","METHOD_POSITION","Default","throttle","DefaultType","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","_isVue","BVScrollspy","$scroller","$selector","$offsets","$targets","$activeTarget","$scrollHeight","$resizeTimeout","$scrollerObserver","$targetsObserver","$config","updateConfig","unlisten","cfg","Name","scroller","getScroller","setObservers","resizeThrottle","autoMethod","methodFn","offsetBase","getScrollTop","getScrollHeight","maxScroll","getOffsetHeight","isActiveTarget","links","dropdown","setActiveState","sibling","previousElementSibling","BV_SCROLLSPY","onlyDigitsRE","applyScrollspy","removeScrollspy","dispose","VBScrollspy","VBScrollspyPlugin","VBVisiblePlugin","directivesPlugin","BootstrapVue","GetIntrinsic","callBind","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$max","originalFunction","applyBind","times","functions","timeEnd","trace","consoleAssert","tuple","duration","expression","hasSymbols","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicates","firstSource","nextSource","keysArray","nextKey","polyfill","forEachArray","forEachString","forEachObject","thisArg","ERROR_MESSAGE","funcType","binder","boundLength","boundArgs","Empty","implementation","$SyntaxError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","INTRINSICS","Atomics","decodeURI","encodeURI","eval","EvalError","FinalizationRegistry","SharedArrayBuffer","URIError","WeakRef","WeakSet","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","symObj","symVal","syms","toStringTag","ctor","superCtor","super_","TempCtor","hasToStringTag","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","fnClass","genClass","documentDotAll","strClass","GeneratorFunction","isFnRegex","getGeneratorFunc","generatorFunc","getPolyfill","shim","availableTypedArrays","typedArrays","$slice","toStrTags","gOPD","typedArray","superProto","tryTypedArrays","anyTrue","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","isArguments","theKeys","skipProto","skipConstructor","origKeys","originalKeys","keysWorksWithArguments","inBrowser","combinePassengers","transports","slotProps","passengers","transport","newPassengers","sources","trackInstances","newTransport","$_getTransportIndex","newTransports","registerTarget","unregisterTarget","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","wormhole","_id","sendUpdate","closer","normalizeSlots","normalizeOwnChildren","slotContent","Tag","firstRender","ownTransports","newVal","oldVal","noWrapper","portalProps","targetProps","bail","mountTo","targetSlim","targetSlotProps","targetTag","portalTarget","mountEl","portalName","portalTargetName","MountingPortalName","MountingPortal","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","browser","argv","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","copy","readUInt8","isArgumentsObject","isGeneratorFunction","whichTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isMapToString","working","isSetToString","isWeakMapToString","isWeakMap","isWeakSetToString","isWeakSet","isArrayBufferToString","isDataViewToString","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","descriptors","formatRegExp","objects","deprecate","noDeprecation","deprecated","throwDeprecation","traceDeprecation","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","opts","seen","stylize","stylizeNoColor","colors","_extend","stylizeWithColor","styleType","arrayToHash","ret","primitive","formatPrimitive","visibleKeys","isError","formatError","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","l","line","numLinesEst","ar","isNullOrUndefined","isPrimitive","pad","debuglog","pid","types","isBuffer","months","timestamp","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","callbackify","original","callbackified","maybeCb","rej","promisify","promiseReject","encodeReserveRE","commaRE","resolveQuery","extraQuery","_parseQuery","parsedQuery","parse","castQueryParamValue","stringifyQuery","trailingSlashRE","createRoute","record","redirectedFrom","router","params","getFullPath","formatMatch","START","unshift","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aVal","bKey","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","cbs","enteredCbs","i$1","View","routerView","_routerViewCache","inactive","_routerRoot","vnodeData","keepAlive","_directInactive","_inactive","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","prepatch","componentInstance","propsToPass","resolveProps","resolvePath","relative","firstChar","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","pretty","token","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","_normalized","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","Link","ariaCurrentValue","this$1","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","$hasNormal","navigate","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","isDef","registerInstance","callVal","_parentVnode","_router","defineReactive","history","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","performance","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","replaceState","handlePopState","handleScroll","isPop","app","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","scrollTo","supportsPushState","ua","pushState","runQueue","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","cid","resolvedDef","isESModule","comp","hasSymbol","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","extractGuards","records","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathLowerCase","baseLowerCase","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","prototypeAccessors","registerHook","createHref","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","back","forward","getMatchedComponents","normalizedTo","START_LOCATION","emptyObject","isUndef","isTrue","isFalse","_toString","isValidArrayIndex","makeMap","expectsLowerCase","isReservedAttribute","cached","hit","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","toArray","_from","no","isObjectA","isObjectB","isArrayA","isArrayB","keysB","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","silent","productionTip","devtools","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","_isServer","hasProto","inWeex","WXEnvironment","platform","weexPlatform","isIE9","isEdge","isIOS","isFF","nativeWatch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","Dep","subs","addSub","sub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","cloned","arrayProto","arrayMethods","methodsToPatch","ob","__ob__","observeArray","dep","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","asRootData","defineReactive$$1","customSetter","shallow","childOb","dependArray","del","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","key$1","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","def$$1","mergeOptions","_base","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","functionTypeCheckRE","isSameType","handleError","errorCaptured","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","flushCallbacks","copies","textNode","_resolve","seenObjects","traverse","_traverse","isA","depId","normalizeEvent","once$$1","createFnInvoker","fns","invoker","arguments$1","oldOn","remove$$1","createOnceHandler","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","fallbackRender","bindObject","scopedSlotFn","resolveFilter","isKeyNotMatch","expect","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","_o","_l","_t","_q","_m","_f","_k","_v","_u","_g","_p","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","_c","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","mountedNode","createComponentInstanceForVnode","activeInstance","oldVnode","updateChildComponent","insert","_isMounted","callHook","queueActivatedComponent","activateChildComponent","deactivateChildComponent","hooksToMerge","createComponent","baseCtor","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","installComponentHooks","_isComponent","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","_render","ensureCtor","factory","errorComp","owner","owners","loadingComp","sync","timerLoading","timerTimeout","forceRender","renderCompleted","getFirstComponentChild","initEvents","_hasHookEvent","updateComponentListeners","remove$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","setActiveInstance","prevActiveInstance","initLifecycle","_watcher","lifecycleMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","_watchers","_data","mountComponent","updateComponent","Watcher","before","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","propKeys","_propKeys","isInInactiveTree","direct","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","timeStamp","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","user","dirty","deps","newDeps","depIds","newDepIds","cleanupDeps","tmp","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","stateMixin","dataDef","propsDef","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","modified","latest","sealed","sealedOptions","initUse","installedPlugins","_installedPlugins","initMixin$1","initExtend","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","pruneCache","keepAliveInstance","pruneCacheEntry","patternTypes","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","ref$1","builtInComponents","initGlobalAPI","configDef","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","isTextInputType","createElement$1","createElementNS","createComment","insertBefore","newNode","nextSibling","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","firstChild","fullInvoke","isInitialPatch","isRealElement","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","callInsert","emptyModifiers","getRawDirName","rawName","baseModules","updateAttrs","oldAttrs","removeAttributeNS","isInPre","baseSetAttr","setAttributeNS","__ieph","blocker","updateClass","cls","transitionClass","_transitionClasses","_prevClass","target$1","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","updateDOMListeners","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","tar","resolveTransition","autoCssTransition","hasTransition","TRANSITION","ANIMATION","transitionProp","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","toggleDisplay","_enterCb","enterCancelled","beforeAppear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","selectedIndex","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","platformDirectives","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","kept","prevChildren","rawChildren","transitionData","c$1","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","dy","platformComponents","foundName","possibleNames","out"],"sourceRoot":""}
, or missing