{"version":3,"file":"js/chunk-vendors-94540e98-legacy.44b8bcfb.js","mappings":"yRAkBIA,EAAgB,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,EAAY,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,GAGH,EAAQ,CAGjBE,cAAc,QAAS,KAAyB,GAEhDC,UAAU,QAAS,CAAC,KAAa,MAAmB,gBAGpDC,iBAAiB,QAAS,KAAyB,GACnDC,mBAAmB,QAAS,KAAwB,QACpDC,QAAQ,QAAS,KAAyB,GAC1CC,WAAW,QAAS,KAAkB,OAEtCC,QAAQ,QAAS,CAAC,KAAa,QAItBC,GAAwB,QAAO,CACxCC,KAAM,KACNC,OAAQ,CAAC,KACTC,MAAO,EACPC,KAAM,WACJ,MAAO,CAELC,QAAQ,EAERC,WAAW,EACXC,WAAYC,KAAKC,cAAcD,KAAKV,WAExC,EACAY,SAAU,CAERC,aAAc,WAEZ,MAAO,SACT,EACAC,aAAc,WACZ,IAAIC,EAAQL,KAERV,EAAYU,KAAKV,UACrB,MAAO,CACLA,UAAWU,KAAKC,cAAcX,GAC9BgB,UAAW,CACTjB,OAAQ,CACNA,OAAQW,KAAKO,UAAUjB,IAEzBkB,KAAM,CACJC,SAAUT,KAAKZ,mBAIjBsB,MAAO,CACLC,QAAS,UAEXC,gBAAiB,CACfC,QAASb,KAAKb,gBACd2B,kBAAmBd,KAAKd,WAG5B6B,SAAU,SAAkBnB,GAEtBA,EAAKoB,oBAAsBpB,EAAKN,WAElCe,EAAMY,sBAAsBrB,EAEhC,EACAsB,SAAU,SAAkBtB,GAE1BS,EAAMY,sBAAsBrB,EAC9B,EAEJ,GAEFuB,QAAS,WACP,IAAIC,EAASpB,KAIbA,KAAKqB,SAAW,KAEhBrB,KAAKF,WAAY,EAEjBE,KAAKsB,IAAI,MAAiB,SAAUC,GAClCH,EAAOI,aAAaD,EACtB,IAEA,IAAIE,EAAgB,WAClBL,EAAOM,WAAU,YAEf,SAAU,WACRN,EAAOO,UACT,GACF,GACF,EAGA3B,KAAK4B,SAASC,MAAM,KAA2BJ,GAE/CzB,KAAK6B,MAAM,KAAmBJ,EAChC,EACAK,YAAa,WAGX9B,KAAKD,WAAaC,KAAKC,cAAcD,KAAKV,UAC5C,EACAyC,QAAS,WAGP/B,KAAKgC,cACP,EACAC,cAAe,WACbjC,KAAKkC,eACP,EACAC,UAAW,WAET,IAAIZ,EAAKvB,KAAKoC,IACdb,GAAMA,EAAGc,YAAcd,EAAGc,WAAWC,YAAYf,EACnD,EACAgB,QAAS,CAEPC,KAAM,WACJxC,KAAKF,WAAY,CACnB,EAEAG,cAAe,SAAuBX,GACpC,OAAOpB,EAAcuE,OAAOnD,GAAWoD,gBAAkB,MAC3D,EACAnC,UAAW,SAAmBjB,GAC5B,IAAKU,KAAKX,OAAQ,CAEhB,IAAIqB,EAAQV,KAAK2C,MAAMjC,QAAS,QAAO,SAAUV,KAAKoC,KAClDQ,GAAc,SAAQ,QAAMlC,GAAOmC,MAAO,IAAK,QAAQ7C,KAAKf,aAAc,GAE9E,OAAQD,EAAUyD,OAAOnD,GAAWoD,gBAAkB,GAEpD,KAAK,EAEH,MAAO,WAAWI,OAAOF,EAAa,MAIxC,KAAM,EAEJ,MAAO,WAAWE,OAAOF,EAAa,MAExC,QACE,OAAO,EAEb,CAIA,OAAO5C,KAAKX,MACd,EACAmC,aAAc,SAAsBD,GAClCvB,KAAKkC,gBAGLlC,KAAKqB,SAAW,IAAI,IAAOrB,KAAKT,OAAQgC,EAAIvB,KAAKI,aACnD,EACA8B,cAAe,WACblC,KAAKqB,UAAYrB,KAAKqB,SAAS0B,UAC/B/C,KAAKqB,SAAW,IAClB,EACAW,aAAc,WACZhC,KAAKqB,UAAYrB,KAAKqB,SAAS2B,gBACjC,EACA/B,sBAAuB,SAA+BrB,GAEpDI,KAAKD,WAAaC,KAAKC,cAAcL,EAAKN,UAC5C,EAGA2D,eAAgB,SAAwBC,GAEtC,OAAOA,EAAE,MACX,GAEFC,OAAQ,SAAgBD,GACtB,IAAIE,EAASpD,KAETH,EAASG,KAAKH,OAElB,OAAOqD,EAAE,IAAc,CAErBvD,MAAO,CACL0D,QAAQ,EACRxD,OAAQA,GAEVyD,GAAI,CAEFC,YAAa,SAAqBhC,GAChC,OAAO6B,EAAOI,MAAM,KAAiBjC,EACvC,EACAkC,WAAY,SAAoBlC,GAC9B,OAAO6B,EAAOI,MAAM,KAAkBjC,EACxC,EACAmC,YAAa,SAAqBnC,GAChC,OAAO6B,EAAOI,MAAM,KAAiBjC,EACvC,EACAoC,WAAY,SAAoBpC,GAC9B,OAAO6B,EAAOI,MAAM,KAAmBjC,EACzC,IAED,CAACvB,KAAKF,UAAYE,KAAKiD,eAAeC,GAAKA,KAChD,IC9PF,SAASU,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASU,EAAclF,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAId,EAAQI,OAAOa,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,EAAgBzF,EAAQwF,EAAKF,EAAOE,GAAO,IAAKf,OAAOiB,0BAA4BjB,OAAOkB,iBAAiB3F,EAAQyE,OAAOiB,0BAA0BJ,IAAWjB,EAAQI,OAAOa,IAASC,SAAQ,SAAUC,GAAOf,OAAOmB,eAAe5F,EAAQwF,EAAKf,OAAOK,yBAAyBQ,EAAQE,GAAO,GAAI,CAAE,OAAOxF,CAAQ,CAEzf,SAASyF,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOpB,OAAOmB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOf,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,CAAK,CAWzM,IAAI,EAAQ,CAEjBI,MAAM,QAAS,MAAmB,GAElCC,IAAI,QAAS,OAIJC,GAAiC,QAAO,CACjDjG,KAAM,KACNkG,QAASnG,EACTE,OAAQ,CAAC,KACTC,MAAO,EACPC,KAAM,WAGJ,MAAO,CACLgG,MAAO,GACPC,QAAS,GACTC,QAAS,KACTC,YAAa,KACbC,aAAa,EAEjB,EACA9F,SAAU,CACRC,aAAc,WACZ,MAAO,SACT,EACA8F,gBAAiB,WACf,IAAIC,EAEAJ,EAAU9F,KAAK8F,QACf/F,EAAaC,KAAKD,WAClBI,EAAeH,KAAKG,aACxB,MAAO,EAAE+F,EAAO,CAGdC,gBAAiBnG,KAAKgG,aACrBhB,EAAgBkB,EAAM,KAAKpD,OAAO3C,EAAc,KAAK2C,OAAOgD,GAAUA,GAAUd,EAAgBkB,EAAM,MAAMpD,OAAO3C,EAAc,KAAK2C,OAAO/C,GAAaA,GAAamG,GAAOlG,KAAK+F,YACxL,EACAK,mBAAoB,WAClB,IAAIX,EAAKzF,KAAKyF,GACd,OAAOhB,EAAcA,EAAc,CAAC,EAAGzE,KAAK4B,SAASA,SAASyE,QAAS,CAAC,EAAG,CACzEZ,GAAIA,EACJa,KAAM,UACNC,SAAU,MACTvG,KAAKwG,iBACV,EACAC,kBAAmB,WACjB,IAAIpG,EAAQL,KAGZ,MAAO,CACL0G,WAEA,SAAoBC,GAClBtG,EAAMmD,MAAM,KAAuBmD,EACrC,EACAC,WAEA,SAAoBD,GAClBtG,EAAMmD,MAAM,KAAuBmD,EACrC,EACAE,QAEA,SAAiBF,GACftG,EAAMmD,MAAM,KAAoBmD,EAClC,EACAG,SAEA,SAAkBH,GAChBtG,EAAMmD,MAAM,KAAqBmD,EACnC,EAEJ,GAEFpE,QAAS,CACPU,eAAgB,SAAwBC,GACtC,IAAI0C,EAAQ5F,KAAK4F,MAEbmB,GAAS,QAAWnB,GAASA,EAAM,CAAC,GAAKA,EAEzCoB,EAAWhH,KAAKwF,QAAS,QAAWI,GAAS,CAC/CqB,UAAWrB,GACT,CAAC,EACL,OAAO1C,EAAE,MAAO,CACdgE,YAAa,oBACbC,MAAOnH,KAAKiG,gBACZmB,MAAOpH,KAAKoG,mBACZ9C,GAAItD,KAAKyG,mBACR,CAACvD,EAAE,MAAO,CACXgE,YAAa,QACbG,IAAK,UACHnE,EAAE,MAAO,CACXgE,YAAa,gBACbF,SAAUA,GACT,CAACD,KACN,I,4HChHJ,SAASnD,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASU,EAAclF,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAId,EAAQI,OAAOa,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,EAAgBzF,EAAQwF,EAAKF,EAAOE,GAAO,IAAKf,OAAOiB,0BAA4BjB,OAAOkB,iBAAiB3F,EAAQyE,OAAOiB,0BAA0BJ,IAAWjB,EAAQI,OAAOa,IAASC,SAAQ,SAAUC,GAAOf,OAAOmB,eAAe5F,EAAQwF,EAAKf,OAAOK,yBAAyBQ,EAAQE,GAAO,GAAI,CAAE,OAAOxF,CAAQ,CAEzf,SAASyF,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOpB,OAAOmB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOf,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,CAAK,CAahN,IAAIkC,EAAgB,CAClB7H,KAAM,GACN8H,WAAY,GACZC,iBAAkB,GAClBC,aAAc,OACdC,WAAY,OACZC,iBAAkB,GAClBC,aAAc,IAGZC,EAAapD,EAAcA,EAAc,CAAC,EAAG6C,GAAgB,CAAC,EAAG,CACnEE,iBAAkB,OAClBG,iBAAkB,SAIThI,EAAQ,CAEjB0D,QAAQ,QAAS,MAAmB,GAEpCyE,MAAM,QAAS,MAGfjI,QAAQ,QAAS,MAAmB,GAEpCkI,YAAY,QAAS,OAIZC,GAA4B,QAAO,CAC5CvI,KAAM,KACNwI,YAAY,EACZtI,MAAOA,EACPwD,OAAQ,SAAgBD,EAAGgD,GACzB,IAAIgC,EAAWhC,EAAKgC,SAChBtI,EAAOsG,EAAKtG,KACZD,EAAQuG,EAAKvG,MACboI,EAAapI,EAAMoI,YAElB,QAAcA,KACjBA,EAAapI,EAAME,OAASyH,EAAgBO,EAExClI,EAAM0D,SAER0E,EAAatD,EAAcA,EAAc,CAAC,EAAGsD,GAAa,CAAC,EAAG,CAC5D1E,QAAQ,EACR8E,YAAaJ,EAAWR,WACxBa,kBAAmBL,EAAWP,iBAC9Ba,cAAeN,EAAWN,iBAKhCM,EAAatD,EAAcA,EAAc,CACvCqD,KAAMnI,EAAMmI,MACXC,GAAa,CAAC,EAAG,CAElBO,KAAK,IAGP,IAAIC,EAAW9D,EAAc,CAAC,EAAG7E,GAGjC,cADO2I,EAAS5I,MACTuD,EAAE,cACT,OAAUqF,EAAU,CAClB5I,MAAOoI,IACLG,EACN,G,8DCpFEM,E,kVCaOC,GAAiC,QAAO,CACjD/I,OAAQ,CAAC,KACTE,KAAM,WACJ,MAAO,CAELH,KAAM,YAEV,EACA8C,QAAS,CACPmG,aAAc,SAAsBnH,GAClC,IAAIlB,EAAQL,MAOZ,SAAU,YACR,QAAYuB,EAAI,GAAGuB,OAAOzC,EAAMZ,KAAM,aACxC,GACF,GAEF0D,OAAQ,SAAgBD,GACtB,OAAOA,EAAE,mBAAoB,CAC3BvD,MAAO,CACLgJ,IAAK,MACLlJ,KAAMO,KAAKP,MAEb6D,GAAI,CACFG,WAAYzD,KAAK0I,eAElB1I,KAAK4I,gBACV,IAGS,GAAQ,QAAsB,CAEvCC,YAAY,QAAS,MACrBC,UAAU,QAAS,MACnBrJ,MAAM,QAAS,UAAkBsJ,GAAW,GAG5CzC,MAAM,QAAS,OACd,MAGQ0C,GAAwB,QAAO,CACxCvJ,KAAM,KACNC,OAAQ,CAAC,KACTC,MAAO,EACPC,KAAM,WACJ,MAAO,CAELqJ,UAAU,EACVC,MAAM,EAENC,WAAYnJ,KAAKP,KAErB,EACAqC,YAAa,WACX,IAAIrC,EAAOO,KAAKP,KAChBO,KAAKmJ,WAAa1J,EAGd,KAAS2J,UAAU3J,KACrB,EAAA4J,EAAA,IAAK,kCAAqCvG,OAAOrD,EAAM,qCAAuC,MAC9FO,KAAKkJ,MAAO,GAEZlJ,KAAKiJ,UAAW,CAEpB,EACAhH,cAAe,WAGTjC,KAAKiJ,UACPjJ,KAAKsJ,YAAW,QAAiB,KAAc,MAAuBtJ,KAAKP,KAE/E,EACA0C,UAAW,WAET,IAAIC,EAAMpC,KAAKoC,IAGXA,GAAOA,EAAIC,YACbD,EAAIC,WAAWC,YAAYF,EAE/B,EACAe,OAAQ,SAAgBD,GACtB,IAAIqG,EAAWrG,EAAE,MAAO,CACtBiE,MAAO,CAAC,SAAU,CAChB,iBAAkBnH,KAAKkJ,SAI3B,GAAIlJ,KAAKiJ,SAAU,CACjB,IAAIO,EAAUtG,EAAE,KAAc,CAC5BgE,YAAa,iBACbvH,MAAO,CACLF,KAAMO,KAAKmJ,WACXM,UAAU,EACVd,IAAK,MACLe,MAAM,EAENC,WAAYlB,KAGhBc,EAAWrG,EAAE,MAAO,CAClBgE,YAAa,YACbC,MAAO,CAACnH,KAAKmJ,YACb/B,MAAO,CACL3B,GAAIzF,KAAKmJ,WAET7C,KAAMtG,KAAKsG,MAAQ,KACnB,YAAatG,KAAK8I,SAClB,cAAe9I,KAAK6I,aAErB,CAACW,GACN,CAEA,OAAOD,CACT,IDnIF,SAAS3F,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASU,EAAclF,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAId,EAAQI,OAAOa,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,EAAgBzF,EAAQwF,EAAKF,EAAOE,GAAO,IAAKf,OAAOiB,0BAA4BjB,OAAOkB,iBAAiB3F,EAAQyE,OAAOiB,0BAA0BJ,IAAWjB,EAAQI,OAAOa,IAASC,SAAQ,SAAUC,GAAOf,OAAOmB,eAAe5F,EAAQwF,EAAKf,OAAOK,yBAAyBQ,EAAQE,GAAO,GAAI,CAAE,OAAOxF,CAAQ,CAEzf,SAASyF,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOpB,OAAOmB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOf,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,CAAK,CA4BhN,IAAIwE,GAAkB,OAAe,UAAW,CAC9CC,KAAM,KACNC,cAAc,EACdnD,MAAO,OAELoD,EAAaH,EAAgBI,MAC7BC,EAAaL,EAAgBjK,MAC7BuK,EAAkBN,EAAgBO,KAClCC,EAAmBR,EAAgBjD,MAEnC0D,EAAe,IAEfC,GAAY,QAAK,KAAY,CAAC,OAAQ,OAC/B,GAAQ,SAAsB,QAAS7F,EAAcA,EAAcA,EAAcA,EAAc,CAAC,EAAGgB,EAAA,GAAUwE,GAAaK,GAAY,CAAC,EAAG,CACnJC,aAAa,QAAS,MAAmB,GACzCC,eAAe,QAAS,KAAyB,KACjDC,WAAW,QAAS,MACpBC,aAAa,QAAS,MACtBC,WAAW,QAAS,KAAkB,UAEtCC,UAAU,QAAS,MAAmB,GACtCC,YAAY,QAAS,MAAmB,GACxCC,eAAe,QAAS,MAAmB,GAC3CjL,QAAQ,QAAS,MAAmB,GACpCkL,cAAc,QAAS,MAAmB,GAC1CC,OAAO,QAAS,MAAmB,GAEnCC,QAAQ,QAAS,MAAmB,GACpCrF,OAAO,QAAS,MAChBsF,YAAY,QAAS,MACrBC,SAAS,QAAS,KAAkB,uBACpCrF,SAAS,QAAS,SACf,SAGMsF,GAAsB,QAAO,CACtC3L,KAAM,QACNC,OAAQ,CAAC0H,EAAA,EAAY3B,EAAA,EAASsE,EAAY,IAAmB,IAAoB,KACjFsB,cAAc,EACd1L,MAAO,EACPC,KAAM,WACJ,MAAO,CACL0L,WAAW,EACXrC,UAAU,EACVnJ,WAAW,EACXyL,iBAAiB,EACjBC,UAAU,EACVC,MAAO,EACPC,eAAgB,EAChBC,cAAe,EAEnB,EACAzL,SAAU,CACR0L,aAAc,WACZ,IAAIrB,EAAcvK,KAAKuK,YACnBzE,EAAU9F,KAAK8F,QACnB,OAAOd,EAAgB,CACrB,gBAAiBhF,KAAKgL,MACtB,iBAAkBT,EAClB,mBAAoBA,GACnB,WAAWzH,OAAOgD,GAAUA,EACjC,EACA+F,UAAW,WACT,IAAIrJ,EAAOxC,KAAKwC,KAChB,MAAO,CACLA,KAAMA,EAEV,EACAsJ,iBAAkB,WAEhB,OAAO,EAAAC,EAAA,KAAQ,QAAU/L,KAAKwK,cAAe,GAAIH,EACnD,EACA2B,gBAAiB,WACf,OAAOvJ,OAAOzC,KAAKmL,QACrB,EACAc,mBAAoB,WAClB,MAAO,CACL1I,YAAavD,KAAKkM,cAClBzI,WAAYzD,KAAK0I,aACjBhF,YAAa1D,KAAKmM,cAClBxI,WAAY3D,KAAKoM,aAErB,EACAC,cAAe,WACb,OAAO5H,EAAcA,EAAc,CAAC,EAAGzE,KAAKsM,SAAU,CAAC,EAAG,CACxD7G,GAAIzF,KAAKuM,SACThG,SAAU,KAEd,GAEFiG,OAAQhE,EAAS,CAAC,EAAGxD,EAAgBwD,EAAQ0B,GAAiB,SAAUuC,GACtEzM,KAAKyM,EAAW,OAAS,SAC3B,IAAIzH,EAAgBwD,EAAQ,aAAa,SAAmBiE,GACtDA,IAAazM,KAAKkK,IACpBlK,KAAKwD,MAAM4G,EAAkBqC,EAEjC,IAAIzH,EAAgBwD,EAAQ,WAAW,WAErCxI,KAAK0B,UAAU1B,KAAK0M,cACtB,IAAI1H,EAAgBwD,EAAQ,UAAU,SAAiBiE,GAGjDA,GAAYzM,KAAKF,WACnBE,KAAK0M,eAET,IAAIlE,GACJrH,QAAS,WAEPnB,KAAK2M,eAAiB,IACxB,EACAC,QAAS,WACP,IAAIvM,EAAQL,KAEZA,KAAKsL,WAAY,EACjBtL,KAAK0B,WAAU,WACTrB,EAAM6J,KACR,SAAU,WACR7J,EAAMwM,MACR,GAEJ,IAEA7M,KAAK8M,cAAa,QAAuB,QAAY,OAAkB,SAAUrH,GAC3EA,IAAOpF,EAAMkM,UACflM,EAAMwM,MAEV,IAEA7M,KAAK8M,cAAa,QAAuB,QAAY,OAAkB,SAAUrH,GAC1EA,GAAMA,IAAOpF,EAAMkM,UACtBlM,EAAMmC,MAEV,IAIAxC,KAAK8M,cAAa,QAAiB,KAAc,OAAuB,SAAU3B,GAE5EA,IAAY9K,EAAM2L,iBACpB3L,EAAMmC,MAEV,GACF,EACAP,cAAe,WACbjC,KAAK+M,mBACP,EACAxK,QAAS,CACPsK,KAAM,WACJ,IAAIzL,EAASpB,KAEb,IAAKA,KAAKF,UAAW,CACnBE,KAAK0M,gBACL,IAAIM,EAAYhN,KAAKiN,WAAW,MAChCjN,KAAKkN,UAAUF,GACfhN,KAAK0L,eAAiB1L,KAAK2L,cAAgB,EAC3C3L,KAAKyL,MAAQ0B,KAAKC,OAASpN,KAAKuK,YAAc,GAAK,GACnDvK,KAAKwL,UAAW,EAChBxL,KAAKiJ,UAAW,EAChBjJ,KAAK0B,WAAU,YAGb,SAAU,WACRN,EAAOtB,WAAY,CACrB,GACF,GACF,CACF,EACA0C,KAAM,WACJ,IAAIY,EAASpD,KAEb,GAAIA,KAAKF,UAAW,CAClB,IAAIuN,EAAYrN,KAAKiN,WAAW,MAChCjN,KAAKkN,UAAUG,GACfrN,KAAKsN,iBAAgB,GACrBtN,KAAK0L,eAAiB1L,KAAK2L,cAAgB,EAC3C3L,KAAK+M,oBACL/M,KAAKwL,UAAW,GAChB,SAAU,WACRpI,EAAOtD,WAAY,CACrB,GACF,CACF,EACAmN,WAAY,SAAoBpD,GAC9B,IAAI0D,EAAU5I,UAAUC,OAAS,QAAsBmE,IAAjBpE,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAO,IAAI,IAAQkF,EAAMpF,EAAcA,EAAc,CACnD+I,YAAY,EACZjO,OAAQS,KAAKoC,KAAO,KACpBqL,cAAe,MACdF,GAAU,CAAC,EAAG,CACfG,UAAW1N,KACX2N,YAAa3N,KAAKuM,WAEtB,EACAW,UAAW,SAAmBU,GAC5B,IAAI/D,EAAO+D,EAAQ/D,KACnB7J,KAAKsJ,YAAW,QAAiB,QAAYO,GAAO+D,GACpD5N,KAAKwD,MAAMqG,EAAM+D,EACnB,EACAlB,cAAe,WACb,IAAI1M,KAAKiL,OAAT,CAIA,IAAIe,EAAkBhM,KAAKgM,gBAE3B,IAAK,KAAS5C,UAAU4C,GAAkB,CACxC,IAAI6B,EAAMC,SAASC,cAAc,OACjCD,SAASE,KAAKC,YAAYJ,GAC1B,IAAI1C,GAAU,OAAwBnL,KAAKkO,YAAalF,EAAU,CAChEmF,UAAW,CACT1O,KAAMuM,KAGVb,EAAQiD,OAAOP,EACjB,CAbA,CAcF,EACAQ,kBAAmB,WACjBrO,KAAK+M,oBAEA/M,KAAK6K,aACR7K,KAAK2M,eAAiB2B,WAAWtO,KAAKwC,KAAMxC,KAAK2L,eAAiB3L,KAAK8L,kBACvE9L,KAAK0L,eAAiByB,KAAKC,MAC3BpN,KAAK2L,cAAgB,EAEzB,EACAoB,kBAAmB,WACjBwB,aAAavO,KAAK2M,gBAClB3M,KAAK2M,eAAiB,IACxB,EACAW,gBAAiB,SAAyBhK,GACxC,IAAI/B,EAAKvB,KAAK2C,MAAM,YACpB,QAAWW,EAAI/B,EAAI,aAAcvB,KAAKwO,QAAS,OAC/C,QAAWlL,EAAI/B,EAAI,aAAcvB,KAAKyO,UAAW,KACnD,EACAD,QAAS,WAEP,IAAIxO,KAAK6K,aAAc7K,KAAK+K,cAAiB/K,KAAK2M,iBAAkB3M,KAAK2L,cAAzE,CAIA,IAAI+C,EAASvB,KAAKC,MAAQpN,KAAK0L,eAE3BgD,EAAS,IACX1O,KAAK+M,oBACL/M,KAAK2L,eAAgB,EAAAI,EAAA,IAAQ/L,KAAK8L,iBAAmB4C,EAAQrE,GAN/D,CAQF,EACAoE,UAAW,WAELzO,KAAK6K,YAAc7K,KAAK+K,eAAiB/K,KAAK2L,cAChD3L,KAAK2L,cAAgB3L,KAAK0L,eAAiB,EAI7C1L,KAAKqO,mBACP,EACAM,YAAa,WACX,IAAIC,EAAS5O,KAIbA,KAAK0B,WAAU,YACb,SAAU,WACRkN,EAAOpM,MACT,GACF,GACF,EACA0J,cAAe,WACblM,KAAKuL,iBAAkB,CACzB,EACA7C,aAAc,WACZ1I,KAAKuL,iBAAkB,EACvB,IAAIsD,EAAc7O,KAAKiN,WAAW,MAClCjN,KAAKkN,UAAU2B,GACf7O,KAAKqO,oBACLrO,KAAKsN,iBAAgB,EACvB,EACAnB,cAAe,WACbnM,KAAKuL,iBAAkB,CACzB,EACAa,aAAc,WACZpM,KAAKuL,iBAAkB,EACvBvL,KAAKyL,MAAQ,EACbzL,KAAK2L,cAAgB3L,KAAK0L,eAAiB,EAC3C,IAAImD,EAAc7O,KAAKiN,WAAW,MAClCjN,KAAKkN,UAAU2B,GACf7O,KAAKiJ,UAAW,CAClB,EAEA6F,UAAW,SAAmB5L,GAC5B,IAAI6L,EAAS/O,KAET4F,EAAQ5F,KAAK4F,MACbiG,EAAY7L,KAAK6L,UACjBmD,GAAO,QAAOhP,MACdiP,EAAiB,GACjBlI,EAAS/G,KAAK4I,cAAc,KAAuBiD,GAEnD9E,EACFkI,EAAe1K,KAAKwC,GACXnB,GACTqJ,EAAe1K,KAAKrB,EAAE,SAAU,CAC9BgE,YAAa,QACZtB,IAGA5F,KAAK8K,eACRmE,EAAe1K,KAAKrB,EAAE,IAAc,CAClCgE,YAAa,eACb5D,GAAI,CACF4L,MAAO,WACLH,EAAOvM,MACT,MAKN,IAAI2M,EAAUjM,IAEV+L,EAAerK,OAAS,IAC1BuK,EAAUjM,EAAElD,KAAK2K,UAAW,CAC1BzD,YAAa,eACbC,MAAOnH,KAAK0K,aACXuE,IAGL,IAAIG,EAAQlM,EAAE8L,EAAO,KAAQ,MAAO,CAClC9H,YAAa,aACbC,MAAOnH,KAAKyK,UACZ9K,MAAOqP,GAAO,QAAW1E,EAAWtK,MAAQ,CAAC,EAC7CsD,GAAI0L,EAAO,CACTE,MAAOlP,KAAK2O,aACV,CAAC,GACJ3O,KAAK4I,cAAc,KAAmBiD,IACzC,OAAO3I,EAAE,MAAO,CACdgE,YAAa,QACbC,MAAOnH,KAAKkL,WACZ9D,MAAOpH,KAAKqM,cACZtH,IAAK,SAASjC,OAAO9C,KAAK,OAC1BqH,IAAK,SACJ,CAAC8H,EAASC,GACf,GAEFjM,OAAQ,SAAgBD,GACtB,IAAKlD,KAAKiJ,WAAajJ,KAAKsL,UAC1B,OAAOpI,IAGT,IAAIuI,EAAQzL,KAAKyL,MACb4D,EAAWrP,KAAKiL,OAChBO,EAAWxL,KAAKwL,SAChBZ,EAAW5K,KAAK4K,SAChBnL,EAAO,WAAWqD,OAAO9C,KAAK,OAC9BsP,EAASpM,EAAE,MAAO,CACpBgE,YAAa,UACbC,MAAOnH,KAAK4L,aACZxE,MAAO3C,EAAcA,EAAc,CAAC,EAAG4K,EAAW,CAAC,EAAIrP,KAAKwG,kBAAmB,CAAC,EAAG,CACjFf,GAAIzF,KAAKuM,OAAO,gBAChBjG,KAAMkF,EAAW,KAAOZ,EAAW,SAAW,QAC9C,YAAaY,EAAW,KAAOZ,EAAW,SAAW,YACrD,cAAeY,EAAW,KAAO,SAEnCzG,IAAKtF,EACL4H,IAAK,WACJ,CAACnE,EAAE,IAAc,CAClBvD,MAAO,CACLE,OAAQG,KAAKH,QAEfyD,GAAItD,KAAKiM,oBACR,CAACjM,KAAKF,UAAYE,KAAK8O,UAAU5L,GAAKA,QACzC,OAAOA,EAAE,KAAQ,CACfvD,MAAO,CACLF,KAAMA,EACN8P,GAAIvP,KAAKgM,gBACTP,MAAOA,EACP/B,MAAM,EACN8F,SAAUH,IAEX,CAACC,GACN,IE7ZF,SAASG,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAExJ,SAASC,EAAkBtQ,EAAQI,GAAS,IAAK,IAAI+E,EAAI,EAAGA,EAAI/E,EAAMiF,OAAQF,IAAK,CAAE,IAAIoL,EAAanQ,EAAM+E,GAAIoL,EAAWxL,WAAawL,EAAWxL,aAAc,EAAOwL,EAAWxK,cAAe,EAAU,UAAWwK,IAAYA,EAAWvK,UAAW,GAAMvB,OAAOmB,eAAe5F,EAAQuQ,EAAW/K,IAAK+K,EAAa,CAAE,CAE5T,SAASC,EAAaJ,EAAaK,EAAYC,GAAyN,OAAtMD,GAAYH,EAAkBF,EAAYO,UAAWF,GAAiBC,GAAaJ,EAAkBF,EAAaM,GAAcjM,OAAOmB,eAAewK,EAAa,YAAa,CAAEpK,UAAU,IAAiBoK,CAAa,CAE5R,SAAS,EAAQ9L,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAAS,GAAcxE,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAI,EAAQV,OAAOa,IAAS,GAAIC,SAAQ,SAAUC,GAAO,GAAgBxF,EAAQwF,EAAKF,EAAOE,GAAO,IAAKf,OAAOiB,0BAA4BjB,OAAOkB,iBAAiB3F,EAAQyE,OAAOiB,0BAA0BJ,IAAW,EAAQb,OAAOa,IAASC,SAAQ,SAAUC,GAAOf,OAAOmB,eAAe5F,EAAQwF,EAAKf,OAAOK,yBAAyBQ,EAAQE,GAAO,GAAI,CAAE,OAAOxF,CAAQ,CAEzf,SAAS,GAAgB6F,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOpB,OAAOmB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOf,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,CAAK,CAEhN,SAAS+K,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIZ,UAAU,uIAAyI,CAE7L,SAASW,GAA4BE,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOE,GAAkBF,EAAGC,GAAS,IAAIE,EAAI5M,OAAOkM,UAAUW,SAASC,KAAKL,GAAGM,MAAM,GAAI,GAAiE,MAAnD,WAANH,GAAkBH,EAAEO,cAAaJ,EAAIH,EAAEO,YAAYvR,MAAgB,QAANmR,GAAqB,QAANA,EAAoBK,MAAMC,KAAKT,GAAc,cAANG,GAAqB,2CAA2CO,KAAKP,GAAWD,GAAkBF,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAASJ,GAAiBc,GAAQ,GAAsB,qBAAXC,QAAmD,MAAzBD,EAAKC,OAAOC,WAA2C,MAAtBF,EAAK,cAAuB,OAAOH,MAAMC,KAAKE,EAAO,CAE7J,SAASf,GAAmBD,GAAO,GAAIa,MAAMM,QAAQnB,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKoB,IAAkB,MAAPA,GAAeA,EAAMpB,EAAIxL,UAAQ4M,EAAMpB,EAAIxL,QAAQ,IAAK,IAAIF,EAAI,EAAG+M,EAAO,IAAIR,MAAMO,GAAM9M,EAAI8M,EAAK9M,IAAO+M,EAAK/M,GAAK0L,EAAI1L,GAAM,OAAO+M,CAAM,CAoBtL,IAAIC,GAAY,WACZC,GAAiB,aAKjBC,GAAa,CAAC,MAAM9O,OAAOqN,IAAmB,SAAK,QAAK,EAAY,CAAC,SAAU,eAE/E0B,GAAe,CACjBC,aAAc,UACdlM,MAAO,eAILmM,GAAgB,SAAuBxE,GACzC,OAAOqE,GAAWI,QAAO,SAAUC,EAAMlN,GAKvC,OAJK,QAAYwI,EAAQxI,MACvBkN,EAAKlN,GAAOwI,EAAQxI,IAGfkN,CACT,GAAG,CAAC,EACN,EAGI,GAAS,SAAgBC,GAI3B,IAAIC,EAAaD,EAAIE,OAAO,CAC1B3S,KAAM,KACNkG,QAASyF,EACT1L,OAAQ,CAAC,KACTyC,UAAW,WAET,IAAIC,EAAMpC,KAAKoC,IAEXA,GAAOA,EAAIC,YACbD,EAAIC,WAAWC,YAAYF,EAE/B,EACAwK,QAAS,WACP,IAAIvM,EAAQL,KAGRyB,EAAgB,WAElBpB,EAAMP,WAAY,EAClBO,EAAM4I,UAAW,EAEjB5I,EAAMqB,WAAU,WACdrB,EAAMqB,WAAU,YAGd,SAAU,WACRrB,EAAMsB,UACR,GACF,GACF,GACF,EAGA3B,KAAK4B,SAASC,MAAM,KAA2BJ,GAE/CzB,KAAK6B,MAAM,KAAmBJ,GAE9BzB,KAAK8M,cAAa,QAAiB,KAAc,OAAuB,SAAU3B,GAE5EA,IAAY9K,EAAM8K,SACpB1J,GAEJ,GACF,IAGEqN,EAAY,SAAmBnP,EAAO0S,GACxC,KAAI,EAAAhJ,EAAA,IAAcqI,IAAlB,CAMA,IAAIY,GAAQ,OAAwBD,EAAQF,EAAY,CAGtDhE,UAAW,GAAc,GAAc,GAAc,CAAC,EAAG4D,IAAc,QAAmB,YAAe,QAAKpS,GAAO,QAAKkS,MAAiB,CAAC,EAAG,CAE7I5G,QAAQ,EACRsH,SAAS,OAIb,QAAKV,IAAc/M,SAAQ,SAAUqF,GACnC,IAAI9E,EAAQ1F,EAAMwK,IAEb,QAAY9E,KAEF,UAAT8E,IAAoB,QAAS9E,KAE/BA,EAAQ,CAACgN,EAAOG,eAAe,SAAU,CACvCrL,MAAO,QACN9B,KAGLiN,EAAMG,OAAOZ,GAAa1H,KAAS,QAAO9E,GAE9C,IAEA,IAAIwI,EAAMC,SAASC,cAAc,OACjCD,SAASE,KAAKC,YAAYJ,GAC1ByE,EAAMlE,OAAOP,EA/Bb,CAgCF,EAGI6E,EAAuB,WACzB,SAASA,EAAQC,GACflD,EAAgBzP,KAAM0S,IAGtB,QAAO1S,KAAM,CACX4S,IAAKD,EACLE,OAAO,OAAaF,MAGtB,QAAiB3S,KAAM,CACrB4S,KAAK,UACLC,OAAO,WAEX,CAoCA,OAhCA9C,EAAa2C,EAAS,CAAC,CACrB3N,IAAK,QACLM,MAAO,SAAeQ,GACpB,IAAI0H,EAAU5I,UAAUC,OAAS,QAAsBmE,IAAjBpE,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE9EkB,KAAW,EAAAwD,EAAA,IAAcqI,KAK9B5C,EAAU,GAAc,GAAc,CAAC,EAAGiD,GAAcxE,IAAW,CAAC,EAAG,CACrEuE,aAAcjM,IACZ7F,KAAK4S,IACX,GAEC,CACD7N,IAAK,OACLM,MAAO,SAAcI,GACfA,GACFzF,KAAK6S,MAAMrP,OAAM,QAAuB,QAAY,MAAkBiC,EAE1E,GAEC,CACDV,IAAK,OACLM,MAAO,WACL,IAAII,EAAKd,UAAUC,OAAS,QAAsBmE,IAAjBpE,UAAU,GAAmBA,UAAU,GAAK,KAE7E3E,KAAK6S,MAAMrP,OAAM,QAAuB,QAAY,MAAkBiC,EACxE,KAGKiN,CACT,CAnD2B,GAsD3BR,EAAIlI,MAAM,CACR8I,aAAc,WAGZ9S,KAAK2R,IAAkB,IAAIe,EAAQ1S,KACrC,KAIG,QAAekS,EAAIhC,UAAWwB,MACjC,QAAeQ,EAAIhC,UAAWwB,GAAW,CACvCqB,IAAK,WAMH,OAJK/S,MAASA,KAAK2R,MACjB,EAAAtI,EAAA,IAAK,IAAKvG,OAAO4O,GAAW,0DAA8D,SAGrF1R,KAAK2R,GACd,GAGN,EAEWqB,IAA6B,QAAc,CACpDC,QAAS,CACPC,OAAQ,MCvORC,IAA2B,QAAc,CAC3CC,WAAY,CACVhI,OAAQA,EACRpC,SAAUA,GAGZiK,QAAS,CACPD,cAAeA,K,6FCRfK,GAA6B,QAAc,CAC7CD,WAAY,CACVE,SAAU,KAEZL,QAAS,CACPM,gBAAiB,M,iSCRrB,SAAS3P,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASU,EAAclF,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAId,EAAQI,OAAOa,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,EAAgBzF,EAAQwF,EAAKF,EAAOE,GAAO,IAAKf,OAAOiB,0BAA4BjB,OAAOkB,iBAAiB3F,EAAQyE,OAAOiB,0BAA0BJ,IAAWjB,EAAQI,OAAOa,IAASC,SAAQ,SAAUC,GAAOf,OAAOmB,eAAe5F,EAAQwF,EAAKf,OAAOK,yBAAyBQ,EAAQE,GAAO,GAAI,CAAE,OAAOxF,CAAQ,CAEzf,SAASyF,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOpB,OAAOmB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOf,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,CAAK,CA6BhN,IAAIoO,EAAiB,iBAEjBC,GAA+B,QAAiB,KAAY,MAE5DC,EAAmB,aAEnBC,EAAqB,CAACH,EAAgBE,GAAkBE,KAAK,MAE7DC,EAAiB,WACjBC,EAAyB,sBAEzBC,EAAkB,sBAGlBC,EAAe,CAEjBpO,MAAO,GAEPC,QAAS,GAETC,QAAS,KAETC,YAAa,KAEbkO,SAAU,GAEV3U,UAAW,OAEXF,kBAAmB,OAInBG,OAAQ,KAER2U,UAAW,KAGXrU,QAAQ,EAERX,SAAU,eAGVC,gBAAiB,EAEjBE,OAAQ,EAER8U,MAAO,EAGPlV,aAAc,EAEd+G,aAAa,EAEbwJ,UAAU,EAEV/J,GAAI,KAEJD,MAAM,GAIG4O,GAAyB,QAAO,CACzC3U,KAAM,KACNC,OAAQ,CAAC,IAAmB,KAC5BE,KAAM,WACJ,OAAO6E,EAAcA,EAAc,CAAC,EAAGuP,GAAe,CAAC,EAAG,CAExDK,cAAe,CAEbC,OAAO,EACPpF,OAAO,EACPqF,OAAO,GAETzU,WAAW,GAEf,EACAI,SAAU,CACRC,aAAc,WAEZ,MAAO,SACT,EACAqU,WAAY,WACV,OAAOxU,KAAKyF,IAAM,QAAQ3C,OAAO9C,KAAKG,aAAc,KAAK2C,OAAO9C,KAAK,MAAoB,KAC3F,EACAyU,cAAe,WAEb,IAAIN,EAAQ,CACVtH,KAAM,EACNrK,KAAM,GAUR,OAPI,QAAcxC,KAAKmU,QACrBA,EAAMtH,MAAO,SAAQ,QAAU7M,KAAKmU,MAAMtH,KAAM,GAAI,GACpDsH,EAAM3R,MAAO,SAAQ,QAAUxC,KAAKmU,MAAM3R,KAAM,GAAI,MAC3C,QAASxC,KAAKmU,SAAU,QAASnU,KAAKmU,UAC/CA,EAAMtH,KAAOsH,EAAM3R,MAAO,SAAQ,QAAUxC,KAAKmU,MAAO,GAAI,IAGvDA,CACT,EACAO,iBAAkB,WAGhB,OAAO,QAAO1U,KAAKiU,UAAU9P,OAAO,KAAUyP,KAAK,KAAKe,OAAOC,cAAcC,MAAM,OAAOC,MAC5F,EACAC,oBAAqB,WACnB,IAAK,IAAIC,KAAWhV,KAAKqU,cACvB,GAAIrU,KAAKqU,cAAcW,GACrB,OAAO,EAIX,OAAO,CACT,EACAC,qBAAsB,WACpB,IAAIrP,EAAQ5F,KAAK4F,MACbC,EAAU7F,KAAK6F,QACfC,EAAU9F,KAAK8F,QACfC,EAAc/F,KAAK+F,YACnBlG,EAASG,KAAKH,OACdmG,EAAchG,KAAKgG,YACvB,MAAO,CACLJ,MAAOA,EACPC,QAASA,EACTC,QAASA,EACTC,YAAaA,EACblG,OAAQA,EACRmG,YAAaA,EAEjB,GAEFwG,MAAO,CACLkI,iBAAkB,SAA0BQ,EAAaC,GACvD,IAAI9U,EAAQL,MAKP,OAAWkV,EAAaC,IAC3BnV,KAAK0B,WAAU,WAEbrB,EAAM+U,WAGND,EAAYrQ,SAAQ,SAAUkQ,IACvB,QAAcE,EAAaF,IAC1B3U,EAAMgU,cAAcW,KACtB3U,EAAMgU,cAAcW,IAAW,EAGrC,IAEA3U,EAAMgV,QACR,GAEJ,EACAJ,qBAAsB,WAGpBjV,KAAKsV,sBACP,EACA1P,MAAO,SAAe6G,EAAU8I,GAE1B9I,IAAa8I,GAAa9I,GAC5BzM,KAAKwC,MAET,EACAgN,SAAU,SAAkB/C,GACtBA,EACFzM,KAAKwV,UAELxV,KAAKyV,QAET,GAEFtU,QAAS,WACP,IAAIC,EAASpB,KAGbA,KAAK0V,MAAQ,KACb1V,KAAK2V,eAAiB,KACtB3V,KAAK4V,aAAe,GACpB5V,KAAK6V,kBAAoB,KACzB7V,KAAK8V,WAAa9V,KAAKwP,SACvBxP,KAAK+V,OAAS,IAAKC,KAAKhW,MAEpBA,KAAK4B,UACP5B,KAAK4B,SAASC,MAAM,MAAgC,WAClDT,EAAOM,WAAU,YAEf,SAAU,WACRN,EAAOO,UACT,GACF,GACF,IAGF3B,KAAK0B,WAAU,WACb,IAAInC,EAAS6B,EAAO6U,YAEhB1W,IAAU,QAASuO,SAASE,KAAMzO,IAEpC6B,EAAO8U,SAAU,OAAW9U,EAAOQ,UAEnCR,EAAOiU,WAGP,SAAK,QAASjU,EAAO7B,QAAU,yCAA0CuD,OAAO1B,EAAO7B,OAAQ,kBAAqB,gDAAiD6B,EAAOjB,aAEhL,GACF,EAGA4B,QAAS,WAEP/B,KAAK0B,UAAU1B,KAAKsV,qBACtB,EAGAa,YAAa,WAGXnW,KAAKoW,WACP,EACAnU,cAAe,WAEbjC,KAAKoV,WACLpV,KAAKqW,uBAAsB,GAE3BrW,KAAKsW,oBACLtW,KAAKuW,0BAELvW,KAAKwW,kBAELxW,KAAK+V,OAAS,IAChB,EACAxT,QAAS,CAEPkU,YAAa,WAEX,OAAO,GACT,EACAC,WAAY,WACV,IAAItT,EAASpD,KAETJ,EAAO+E,UAAUC,OAAS,QAAsBmE,IAAjBpE,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAG5EgS,GAAe,GACnB,QAAK3C,GAAclP,SAAQ,SAAUqF,IAC9B,QAAYvK,EAAKuK,KAAU/G,EAAO+G,KAAUvK,EAAKuK,KACpD/G,EAAO+G,GAAQvK,EAAKuK,GAEP,UAATA,IACFwM,GAAe,GAGrB,IAIIA,GAAgB3W,KAAKF,WACvBE,KAAK4W,UAET,EACAC,sBAAuB,WAErB,IAAI3C,EAAYlU,KAAK8W,eACjBC,EAAW/W,KAAKyW,cAChBO,EAAOhX,KAAK0V,OAAQ,OAAwB1V,KAAM+W,EAAU,CAE9D5I,UAAW,CAET1I,GAAIzF,KAAKwU,WACThP,KAAMxF,KAAKwF,KACXlG,UAAWU,KAAKV,UAChBF,kBAAmBY,KAAKZ,kBACxBG,OAAQS,KAAKiX,qBACb/X,SAAUc,KAAKkX,cAEf7X,QAAQ,QAAUW,KAAKX,OAAQ,GAC/BJ,cAAc,QAAUe,KAAKf,aAAc,GAC3CE,iBAAiB,QAAUa,KAAKb,gBAAiB,MAIrDa,KAAKsV,uBAGL0B,EAAKnV,MAAM,KAAiB7B,KAAKmX,gBAEjCH,EAAKnV,MAAM,KAAkB7B,KAAKoX,iBAElCJ,EAAKnV,MAAM,KAAiB7B,KAAKqX,gBAEjCL,EAAKnV,MAAM,KAAmB7B,KAAKsX,kBAEnCN,EAAKnV,MAAM,KAA2B7B,KAAKwW,iBAI3CQ,EAAK1V,IAAI,KAAoBtB,KAAKuX,aAClCP,EAAK1V,IAAI,KAAqBtB,KAAKuX,aACnCP,EAAK1V,IAAI,KAAuBtB,KAAKuX,aACrCP,EAAK1V,IAAI,KAAuBtB,KAAKuX,aAErCP,EAAK5I,OAAO8F,EAAUjG,YAAYH,SAASC,cAAc,QAC3D,EACAyJ,aAAc,WAKZxX,KAAK0V,OAAS1V,KAAK0V,MAAMlT,OAEzBxC,KAAKyX,sBAELzX,KAAK4V,aAAe,EACtB,EAEAY,gBAAiB,WACfxW,KAAKqW,uBAAsB,GAC3BrW,KAAKsW,oBACLtW,KAAK4V,aAAe,GACpB5V,KAAKyX,sBACLzX,KAAK0X,qBAAuB,KAE5B,IACE1X,KAAK0V,MAAM/T,UACb,CAAE,MAAOgW,GAAU,CAEnB3X,KAAK0V,MAAQ,KACb1V,KAAK4X,wBACL5X,KAAK6X,eACL7X,KAAKF,WAAY,CACnB,EACAgY,mBAAoB,WAClB,OAAO9X,KAAK0V,MAAQ1V,KAAK0V,MAAMtT,IAAM,IACvC,EACAkT,qBAAsB,WACpB,IAAI1G,EAAS5O,KAITgX,EAAOhX,KAAK0V,MAEhB,GAAIsB,EAAM,CACR,IAAIrX,EAAQ,CAAC,QAAS,UAAW,UAAW,cAAe,SAAU,eAErEA,EAAMmF,SAAQ,SAAUqF,GAClB6M,EAAK7M,KAAUyE,EAAOzE,KACxB6M,EAAK7M,GAAQyE,EAAOzE,GAExB,GACF,CACF,EAGA0C,KAAM,WACJ,IAAItN,EAASS,KAAKiW,YAElB,GAAK1W,IAAW,QAASuO,SAASE,KAAMzO,KAAY,QAAUA,KAAWS,KAAK+X,mBAAmB,OAAkB/X,KAAK4F,QAAyB,KAAf5F,KAAK4F,SAAkB,OAAkB5F,KAAK6F,UAA6B,KAAjB7F,KAAK6F,WAQ7L7F,KAAK0V,QAAS1V,KAAKF,UAAvB,CAMAE,KAAKF,WAAY,EAEjB,IAAIkN,EAAYhN,KAAKiN,WAAW,KAAiB,CAC/CO,YAAY,IAEdxN,KAAKkN,UAAUF,GAIXA,EAAUgL,iBAEZhY,KAAKwW,mBAKPxW,KAAK4W,WAEL5W,KAAKiY,qBAELjY,KAAK6W,wBAvBL,CAwBF,EACArU,KAAM,WACJ,IAAI0V,EAAQvT,UAAUC,OAAS,QAAsBmE,IAAjBpE,UAAU,IAAmBA,UAAU,GAEvEwT,EAAMnY,KAAK8X,qBAGf,GAAKK,GAAQnY,KAAKF,UAAlB,CAOA,IAAIuN,EAAYrN,KAAKiN,WAAW,KAAiB,CAC/CO,YAAa0K,IAEflY,KAAKkN,UAAUG,GAGXA,EAAU2K,kBAMdhY,KAAKwX,cAhBL,MAFExX,KAAK6X,cAmBT,EACAzB,UAAW,WAET,IAAI+B,EAAMnY,KAAK8X,qBAEVK,GAAQnY,KAAKF,YAOlBE,KAAKqW,uBAAsB,GAE3BrW,KAAKsW,oBACLtW,KAAK4V,aAAe,GACpB5V,KAAKyX,sBAEDzX,KAAK0V,QACP1V,KAAK0V,MAAM7V,QAAS,GAItBG,KAAKwC,MAAK,GACZ,EACAiT,OAAQ,WACNzV,KAAK8V,WAAY,EAEjB9V,KAAKkN,UAAUlN,KAAKiN,WAAW,MACjC,EACAuI,QAAS,WACPxV,KAAK8V,WAAY,EAEjB9V,KAAKkN,UAAUlN,KAAKiN,WAAW,MACjC,EAGAkK,eAAgB,WAEdnX,KAAKqW,uBAAsB,EAC7B,EAEAe,gBAAiB,WACf,IAAIgB,EAAiBpY,KAAK4V,aAC1B5V,KAAK4V,aAAe,GAGG,QAAnBwC,GACFpY,KAAKqY,MAAM,MAIbrY,KAAKkN,UAAUlN,KAAKiN,WAAW,MACjC,EAEAoK,eAAgB,WAEdrX,KAAKqW,uBAAsB,EAC7B,EAEAiB,iBAAkB,WAEhBtX,KAAKwW,kBAELxW,KAAKkN,UAAUlN,KAAKiN,WAAW,MACjC,EAEAgJ,UAAW,WACT,IAAI1W,EAASS,KAAKT,OAUlB,OARI,QAASA,GACXA,GAAS,QAAQA,EAAO+Y,QAAQ,KAAM,MAC7B,QAAW/Y,GACpBA,EAASA,IACAA,IACTA,EAASA,EAAO6C,KAAO7C,IAGlB,QAAUA,GAAUA,EAAS,IACtC,EACA0X,mBAAoB,WAQlB,OAAOjX,KAAKiW,WACd,EACAsC,YAAa,WAEX,IAAIhZ,EAASS,KAAKiW,YAClB,OAAO1W,GAAUA,EAAOkG,GAAKlG,EAAOkG,GAAK,IAC3C,EACAqR,aAAc,WAEZ,IAAI5C,IAAYlU,KAAKkU,YAAYlU,KAAKkU,UAAU9R,KAAOpC,KAAKkU,WACxDlG,EAAOF,SAASE,KAChBzO,EAASS,KAAKiW,YAQlB,OAAqB,IAAd/B,GAAsB,QAAQP,EAAoBpU,IAAWyO,GAEpE,QAASkG,KAET,QAAQA,EAAUoE,QAAQ,KAAM,MAEhCtK,CACF,EACAkJ,YAAa,WACX,OAAOlX,KAAKd,SAAWc,KAAKd,SAASkD,KAAOpC,KAAKd,SAAW,cAC9D,EACAsZ,UAAW,WACT,IAAIjZ,EAASS,KAAKiW,YAClB,OAAO1W,IAAU,QAAQiU,EAAgBjU,EAC3C,EACAkZ,WAAY,WAEV,IAAIlZ,EAASS,KAAKiW,YAClB,OAAO1W,IAAU,QAASA,EAAQsU,EACpC,EACAkE,aAAc,WAEZ,IAAIxY,EAASS,KAAKiW,YAClB,OAAOjW,KAAKyY,cAAgBlZ,IAAU,QAAOuU,EAAwBvU,EACvE,EACA+W,kBAAmB,WACjB/H,aAAavO,KAAK2V,gBAClB3V,KAAK2V,eAAiB,IACxB,EACAY,wBAAyB,WACvBmC,cAAc1Y,KAAK6V,mBACnB7V,KAAK6V,kBAAoB,IAC3B,EACA4B,oBAAqB,WACnB,IAAK,IAAIzC,KAAWhV,KAAKqU,cACvBrU,KAAKqU,cAAcW,IAAW,CAElC,EACAiD,mBAAoB,WAElB,IAAI1Y,EAASS,KAAKiW,YACd0C,GAAO,QAAQpZ,EAAQ,qBAAuB,GAClDoZ,EAAOA,EAAK9D,MAAM,OAAO/R,OAAO9C,KAAKwU,YAAYZ,KAAK,KAAKe,QAE3D,QAAQpV,EAAQ,mBAAoBoZ,EACtC,EACAf,sBAAuB,WACrB,IAAI7I,EAAS/O,KAGTT,EAASS,KAAKiW,YACd0C,GAAO,QAAQpZ,EAAQ,qBAAuB,GAClDoZ,EAAOA,EAAK9D,MAAM,OAAO1Q,QAAO,SAAUyU,GACxC,OAAOA,IAAM7J,EAAOyF,UACtB,IAAGZ,KAAK,KAAKe,OAETgE,GAEF,QAAQpZ,EAAQ,mBAAoBoZ,IAEpC,QAAWpZ,EAAQ,mBAEvB,EACAqX,SAAU,WAGR,IAAIrX,EAASS,KAAKiW,YAElB,IAAI,QAAQ1W,EAAQ,SAAU,CAE5B,IAAIqG,GAAQ,QAAQrG,EAAQ,UAC5B,QAAQA,EAAQ,QAAS,IAErBqG,IACF,QAAQrG,EAAQwU,EAAiBnO,EAErC,CACF,EACAiS,aAAc,WAGZ,IAAItY,EAASS,KAAKiW,YAElB,IAAI,QAAQ1W,EAAQwU,GAAkB,CAEpC,IAAInO,GAAQ,QAAQrG,EAAQwU,IAC5B,QAAWxU,EAAQwU,GAEfnO,IACF,QAAQrG,EAAQ,QAASqG,EAE7B,CACF,EAEAqH,WAAY,SAAoBpD,GAC9B,IAAI0D,EAAU5I,UAAUC,OAAS,QAAsBmE,IAAjBpE,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,OAAO,IAAI,IAAQkF,EAAMpF,EAAc,CACrC+I,YAAY,EACZjO,OAAQS,KAAKiW,YACbxI,cAAezN,KAAK8X,sBAAwB,KAC5CnK,YAAa3N,KAAKwU,WAClB9G,UAAW1N,MACVuN,GACL,EACAL,UAAW,SAAmBU,GAC5B,IAAI/D,EAAO+D,EAAQ/D,KACnB7J,KAAKsJ,YAAW,QAAiBtJ,KAAKG,aAAc0J,GAAO+D,GAC3D5N,KAAKwD,MAAMqG,EAAM+D,EACnB,EAEAyH,OAAQ,WACN,IAAIwD,EAAS7Y,KAGTuB,EAAKvB,KAAKiW,YAET1U,IAMLvB,KAAK8Y,iBAAgB,GAErB9Y,KAAK0U,iBAAiB5P,SAAQ,SAAUkQ,GACtB,UAAZA,GACF,QAAQzT,EAAI,QAASsX,EAAOtB,YAAa,MACpB,UAAZvC,IACT,QAAQzT,EAAI,UAAWsX,EAAOtB,YAAa,OAC3C,QAAQhW,EAAI,WAAYsX,EAAOtB,YAAa,OACvB,SAAZvC,GAIT,QAAQzT,EAAI,WAAYsX,EAAOtB,YAAa,MACvB,UAAZvC,KACT,QAAQzT,EAAI,aAAcsX,EAAOtB,YAAa,OAC9C,QAAQhW,EAAI,aAAcsX,EAAOtB,YAAa,MAElD,GAAGvX,MACL,EAGAoV,SAAU,WACR,IAAI2D,EAAS/Y,KAGTgZ,EAAS,CAAC,QAAS,UAAW,WAAY,aAAc,cACxDzZ,EAASS,KAAKiW,YAElBjW,KAAK8Y,iBAAgB,GAErBE,EAAOlU,SAAQ,SAAU6B,GACvBpH,IAAU,QAASA,EAAQoH,EAAOoS,EAAOxB,YAAa,KACxD,GAAGvX,KACL,EACA8Y,gBAAiB,SAAyBxV,GAExC,IAAI2V,EAAS3V,EAAK,eAAiB,gBAC/BuG,EAAO7J,KAAKG,aAChBH,KAAKiZ,IAAQ,QAAuBpP,EAAM,MAAkB7J,KAAKkZ,QACjElZ,KAAKiZ,IAAQ,QAAuBpP,EAAM,MAAkB7J,KAAKmZ,QACjEnZ,KAAKiZ,IAAQ,QAAuBpP,EAAM,MAAqB7J,KAAKoZ,WACpEpZ,KAAKiZ,IAAQ,QAAuBpP,EAAM,MAAoB7J,KAAKqZ,SACrE,EACAhD,sBAAuB,SAA+B/S,GAGpDtD,KAAKsZ,iBAAiBhW,GAEtBtD,KAAKuZ,oBAAoBjW,GAGzBtD,KAAKwZ,aAAalW,GAElBtD,KAAKyZ,wBAAwBnW,EAC/B,EAEAkW,aAAc,SAAsBlW,GAClC,IAAIoW,EAAS1Z,KAEbA,KAAKuW,0BACL,IAAIhX,EAASS,KAAKiW,YAEd3S,IACFtD,KAAK6V,kBAAoB8D,aAAY,WACnC,IAAIxB,EAAMuB,EAAO5B,sBAEbK,IAAOuB,EAAO5Z,WAAeP,EAAO8C,aAAe,QAAU9C,IAE/Dma,EAAOtD,WAEX,GAAG,KAEP,EACAkD,iBAAkB,SAA0BhW,GAEtCtD,KAAKwY,aAEPxY,KAAKsD,EAAK,eAAiB,iBAAiBmQ,EAA8BzT,KAAKoW,UAEnF,EAGAqD,wBAAyB,SAAiCnW,GACxD,IAAIsW,EAAS5Z,KAMT,iBAAkB8N,SAAS+L,kBAC7B,QAAU/L,SAASE,KAAK9F,UAAUpD,SAAQ,SAAUvD,IAClD,QAAW+B,EAAI/B,EAAI,YAAaqY,EAAO7D,OACzC,GAEJ,EACAwD,oBAAqB,SAA6BjW,GAChD,IAAI/D,EAASS,KAAKiW,YAElB,GAAK1W,GAAWS,KAAKkO,aAAgBlO,KAAKyY,WAA1C,CAWA,IAAI/I,GAAW,QAAuBnQ,GAElCmQ,GACFA,EAASpM,EAAK,MAAQ,QAAQ,KAAkBtD,KAAKoW,UAZvD,CAcF,EAEAmB,YAAa,SAAqB5Q,GAGhC,IAAIpH,EAASS,KAAKiW,YAElB,GAAK1W,KAAU,QAAWA,IAAYS,KAAK8V,YAAa9V,KAAK+X,eAA7D,CAOA,IAAIlO,EAAOlD,EAAMkD,KACboK,EAAWjU,KAAK0U,iBAEpB,GAAa,UAAT7K,IAAoB,QAAcoK,EAAU,SAC9CjU,KAAKkP,MAAMvI,QACN,GAAa,eAATkD,IAAyB,QAAcoK,EAAU,SAE1DjU,KAAK8Z,MAAMnT,QACN,GAAa,YAATkD,IAAsB,QAAcoK,EAAU,SAGvDjU,KAAK8Z,MAAMnT,QACN,GAAa,aAATkD,KAAwB,QAAcoK,EAAU,WAAY,QAAcA,EAAU,UAAqB,eAATpK,IAAyB,QAAcoK,EAAU,SAAU,CAIpK,IAAIkE,EAAMnY,KAAK8X,qBAEXiC,EAAcpT,EAAMpH,OAEpBkO,EAAgB9G,EAAM8G,cAG1B,GACA0K,IAAO,QAASA,EAAK4B,KAAgB,QAASxa,EAAQkO,IACtD0K,IAAO,QAAS5Y,EAAQwa,KAAgB,QAAS5B,EAAK1K,IACtD0K,IAAO,QAASA,EAAK4B,KAAgB,QAAS5B,EAAK1K,KACnD,QAASlO,EAAQwa,KAAgB,QAASxa,EAAQkO,GAEhD,OAIFzN,KAAKqY,MAAM1R,EACb,CApCA,CAqCF,EACAuS,OAAQ,SAAgBzT,GAEjBA,GAAMzF,KAAKuY,gBAAkB9S,GAAMzF,KAAKwU,aAAe/O,GAE1DzF,KAAKoW,WAET,EACA+C,OAAQ,SAAgB1T,GAEjBA,GAAMzF,KAAKuY,gBAAkB9S,GAAMzF,KAAKwU,aAAe/O,GAE1DzF,KAAK6M,MAET,EAGAuM,UAAW,SAAmB3T,GAIvBA,GAAMzF,KAAKuY,gBAAkB9S,GAAMzF,KAAKwU,aAAe/O,GAE1DzF,KAAKwV,SAET,EAGA6D,SAAU,SAAkB5T,GAIrBA,GAAMzF,KAAKuY,gBAAkB9S,GAAMzF,KAAKwU,aAAe/O,GAE1DzF,KAAKyV,QAET,EACAvG,MAAO,SAAevI,GACf3G,KAAK8V,YAAa9V,KAAK+X,kBAW5B,QAAapR,EAAMqT,eACnBha,KAAKqU,cAAcnF,OAASlP,KAAKqU,cAAcnF,MAE3ClP,KAAK+U,oBACP/U,KAAK8Z,MAAM,MAGX9Z,KAAKqY,MAAM,MAEf,EAGA4B,OAAQ,WAEDja,KAAK8V,YAAa9V,KAAK+X,iBAOxB/X,KAAKF,UACPE,KAAKqY,MAAM,MAEXrY,KAAK8Z,MAAM,MAEf,EACAA,MAAO,WACL,IAAII,EAAUla,KAEV2G,EAAQhC,UAAUC,OAAS,QAAsBmE,IAAjBpE,UAAU,GAAmBA,UAAU,GAAK,KAI5EgC,IACF3G,KAAKqU,cAA6B,YAAf1N,EAAMkD,KAAqB,QAAU,UAAW,GAKjE7J,KAAKF,WAAmC,OAAtBE,KAAK4V,aACzB5V,KAAK4V,aAAe,MAItB5V,KAAKsW,oBACLtW,KAAK4V,aAAe,KAEf5V,KAAKyU,cAAc5H,MAItB7M,KAAK4W,WACL5W,KAAK2V,eAAiBrH,YAAW,WAEF,OAAzB4L,EAAQtE,aACVsE,EAAQrN,OACEqN,EAAQpa,WAClBoa,EAAQrC,cAEZ,GAAG7X,KAAKyU,cAAc5H,OAXtB7M,KAAK6M,OAaT,EACAwL,MAAO,WACL,IAAI8B,EAAUna,KAEV2G,EAAQhC,UAAUC,OAAS,QAAsBmE,IAAjBpE,UAAU,GAAmBA,UAAU,GAAK,KAI5EgC,IACF3G,KAAKqU,cAA6B,aAAf1N,EAAMkD,KAAsB,QAAU,UAAW,EAGjD,aAAflD,EAAMkD,OAAuB,QAAc7J,KAAK0U,iBAAkB,UAEpE1U,KAAKqU,cAAcnF,OAAQ,EAC3BlP,KAAKqU,cAAcC,OAAQ,IAM3BtU,KAAK+U,sBAIT/U,KAAKsW,oBACLtW,KAAK4V,aAAe,MAEf5V,KAAKyU,cAAcjS,KAGtBxC,KAAK2V,eAAiBrH,YAAW,WACF,QAAzB6L,EAAQvE,cACVuE,EAAQ3X,MAEZ,GAAGxC,KAAKyU,cAAcjS,MANtBxC,KAAKwC,OAQT,I,yMC38BA4X,GAAmC,QAAO,CAI5CC,UAAU,EACV5a,KAAM,KACNE,MAAO,CAGL2a,OAAO,QAAS,OAElB1a,KAAM,SAAc+S,GAClB,MAAO,CACL4H,aAAc5H,EAAG2H,MAErB,EACAnY,UAAW,YACT,QAAWnC,KAAKoC,IAClB,EACAe,OAAQ,SAAgBD,GACtB,IAAIqX,EAAeva,KAAKua,aACpBC,GAAS,QAAWD,GAAgBA,EAAa,CAAC,GAAKA,EAG3D,OAFAC,GAAS,QAAOA,GAAQrW,OAAO,KAE3BqW,GAAUA,EAAO5V,OAAS,IAAM4V,EAAO,GAAGC,KACrCD,EAAO,GAKTtX,GACT,IAGSvD,EAAQ,CAIjBuU,WAAW,QAAS,CAAC,KAAa,MAAmB,QACrD1E,UAAU,QAAS,MAAmB,GAEtC7G,KAAK,QAAS,KAAkB,QAI9B+R,GAAiC,QAAO,CAC1Cjb,KAAM,KACNC,OAAQ,CAAC,KACTC,MAAOA,EACP6M,MAAO,CACLgD,SAAU,CACRmL,WAAW,EACXC,QAAS,SAAiBpL,GACxBA,EAAWxP,KAAK6a,gBAAkB7a,KAAK0B,UAAU1B,KAAK8a,YACxD,IAGJ3Z,QAAS,WAEPnB,KAAK+a,YAAc,KACnB/a,KAAKgb,SAAW,IAClB,EACAlZ,YAAa,WACX9B,KAAK8a,aACP,EACA/Y,QAAS,WAOP/B,KAAKib,cACP,EACAhZ,cAAe,WACbjC,KAAK6a,gBACL7a,KAAK+a,YAAc,IACrB,EACAxY,QAAS,CAEPuU,aAAc,WAEZ,GAAI,KAAY,CACd,IAAI5C,EAAYlU,KAAKkU,UACrB,OAAO,QAASA,IAAa,QAAOA,GAAaA,CACnD,CACE,OAAO,IAEX,EAEA4G,YAAa,WACX,IAAK9a,KAAKgb,SAAU,CAClB,IAAIE,EAAalb,KAAK8W,eAEtB,GAAIoE,EAAY,CACd,IAAI9Y,EAAM0L,SAASC,cAAc,OACjCmN,EAAWjN,YAAY7L,GACvBpC,KAAKgb,UAAW,OAAwBhb,KAAMoa,EAAqB,CACjE7Y,GAAIa,EACJ+L,UAAW,CAETmM,OAAO,QAAOta,KAAK4I,mBAGzB,CACF,CACF,EAEAqS,aAAc,WACZ,GAAI,MAAcjb,KAAKgb,SAAU,CAC/B,IAAIG,EAAYnb,KAAKob,aAAaC,QAE7Brb,KAAKwP,WAEJ2L,GAAanb,KAAK+a,cAAgBI,EAIpCnb,KAAKgb,SAAST,aAAeY,EACnBA,IAEVnb,KAAKgb,SAAST,aAAeva,KAAKyS,OAAO4I,UAK7Crb,KAAK+a,YAAcI,CACrB,CACF,EAEAN,cAAe,WACb7a,KAAKgb,UAAYhb,KAAKgb,SAASrZ,WAC/B3B,KAAKgb,SAAW,IAClB,GAEF7X,OAAQ,SAAgBD,GAEtB,GAAIlD,KAAKwP,SAAU,CACjB,IAAIgL,GAAS,QAAOxa,KAAK4I,iBAAiBzE,OAAO,KAEjD,GAAIqW,EAAO5V,OAAS,IAAM4V,EAAO,GAAGC,KAClC,OAAOD,EAAO,EAElB,CAEA,OAAOtX,GACT,IAEEoY,GAAiC,QAAO,CAC1C7b,KAAM,KACNC,OAAQ,CAAC,KACTC,MAAOA,EACPwD,OAAQ,SAAgBD,GACtB,GAAIlD,KAAKwP,SAAU,CACjB,IAAIgL,GAAS,QAAOxa,KAAK4I,iBAAiBzE,OAAO,KAEjD,GAAIqW,EAAO5V,OAAS,EAClB,OAAO4V,EAAO,EAElB,CAEA,OAAOtX,EAAE,aAAIqY,SAAU,CACrBhM,GAAIvP,KAAKkU,WACRlU,KAAK4I,gBACV,IAES4S,EAAgB,KAASF,EAAoBZ,C,mFChMpDe,EAAuBjT,E,4IAE3B,SAAS5E,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASU,EAAclF,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAId,EAAQI,OAAOa,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,EAAgBzF,EAAQwF,EAAKF,EAAOE,GAAO,IAAKf,OAAOiB,0BAA4BjB,OAAOkB,iBAAiB3F,EAAQyE,OAAOiB,0BAA0BJ,IAAWjB,EAAQI,OAAOa,IAASC,SAAQ,SAAUC,GAAOf,OAAOmB,eAAe5F,EAAQwF,EAAKf,OAAOK,yBAAyBQ,EAAQE,GAAO,GAAI,CAAE,OAAOxF,CAAQ,CAEzf,SAASyF,EAAgBI,EAAKL,EAAKM,GAAiK,OAApJN,KAAOK,EAAOpB,OAAOmB,eAAeC,EAAKL,EAAK,CAAEM,MAAOA,EAAOf,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBH,EAAIL,GAAOM,EAAgBD,CAAK,CAgBhN,IAAIsW,EAA0B,WAC1BC,EAA2B,KAA0BD,EACrDE,EAAuB,OACvBC,EAAwB,KAA0BD,EAE3Cjc,GAAQ,SAAuB8b,EAAwB,CAIhEvc,UAAU,QAAS,CAAC,KAAa,KAAkB,MAAmB,gBACtEC,iBAAiB,QAAS,KAAyB,IAInD+U,WAAW,QAAS,CAAC,KAAa,KAAkB,OACpDnO,aAAa,QAAS,MACtBoO,OAAO,QAAS,KAAgC,KAC/CnP,EAAgByW,EAAuBC,GAAyB,QAAS,MAAmB,IAAS1W,EAAgByW,EAAuB,qBAAqB,QAAS,KAAwB,SAAUzW,EAAgByW,EAAuB,MAAM,QAAS,OAAoBzW,EAAgByW,EAAuB,UAAU,QAAS,MAAmB,IAASzW,EAAgByW,EAAuB,kBAAkB,QAAS,MAAmB,IAASzW,EAAgByW,EAAuB,UAAU,QAAS,KAAyB,IAAKzW,EAAgByW,EAAuB,aAAa,QAAS,KAAkB,QAASzW,EAAgByW,EAAuBG,GAAsB,QAAS,MAAmB,IAAS5W,EAAgByW,EAAuB,UAAU,QAAS,CAAC,KAAa,KAAY,KAAoB,KAAkB,WAAmB1S,GAAW,IAAQ/D,EAAgByW,EAAuB,SAAS,QAAS,OAAoBzW,EAAgByW,EAAuB,YAAY,QAAS,KAAwB,gBAAiBzW,EAAgByW,EAAuB,WAAW,QAAS,OAAoBA,GAAwB,MAG7oCnI,GAAwB,QAAO,CACxC7T,KAAM,KACNC,OAAQ,CAAC,IAAoB,KAC7B2L,cAAc,EACd1L,MAAOA,EACPC,KAAM,WACJ,MAAO,CACLE,UAAWE,KAAK4b,GAChBE,WAAY,GACZC,aAAc,GAElB,EACA7b,SAAU,CAER8T,aAAc,WACZ,OAAOvP,EAAc,CACnBmB,MAAO5F,KAAK8b,WACZjW,QAAS7F,KAAK+b,aACd/V,aAAchG,KAAKmG,iBAClB,QAAKnG,KAAKgc,OAAQ,CAAC,WAAY,kBAAmB,YAAa,cAAe,QAAS,oBAAqB,KAAM,SAAU,SAAU,YAAa,SAAU,SAAU,WAAY,UAAWN,IACnM,EAEAO,qBAAsB,WACpB,IAAIrW,EAAQ5F,KAAK4F,MACbC,EAAU7F,KAAK6F,QACnB,MAAO,CACLD,MAAOA,EACPC,QAASA,EAEb,GAEF2G,OAAQhE,EAAS,CAAC,EAAGxD,EAAgBwD,EAAQoT,GAAsB,SAAUnP,EAAU8I,GACjF9I,IAAa8I,GAAY9I,IAAazM,KAAKF,WAAaE,KAAKkc,YAC3DzP,EACFzM,KAAKkc,UAAUrP,OAGf7M,KAAKkc,UAAU9F,YAGrB,IAAIpR,EAAgBwD,EAAQkT,GAAyB,SAAUjP,GACzDA,EACFzM,KAAKoZ,YAELpZ,KAAKqZ,UAET,IAAIrU,EAAgBwD,EAAQ,aAAa,SAAmBiE,GAE1DzM,KAAKwD,MAAMqY,EAAuBpP,EACpC,IAAIzH,EAAgBwD,EAAQ,gBAAgB,WAC1C,IAAInI,EAAQL,KAEZA,KAAK0B,WAAU,WACTrB,EAAM6b,WACR7b,EAAM6b,UAAUxF,WAAWrW,EAAM2T,aAErC,GACF,IAAIhP,EAAgBwD,EAAQ,wBAAwB,WAClDxI,KAAK0B,UAAU1B,KAAKmc,cACtB,IAAI3T,GACJrH,QAAS,WAEPnB,KAAKkc,UAAY,IACnB,EACAna,QAAS,WAGP/B,KAAK0B,UAAU1B,KAAKmc,cACtB,EACAla,cAAe,WAEbjC,KAAKoc,KAAK,KAAiBpc,KAAKqc,QAChCrc,KAAKoc,KAAK,KAAkBpc,KAAKsc,SACjCtc,KAAKoc,KAAK,KAAoBpc,KAAKoZ,WACnCpZ,KAAKoc,KAAK,KAAmBpc,KAAKqZ,UAE9BrZ,KAAKkc,YACPlc,KAAKkc,UAAUva,WACf3B,KAAKkc,UAAY,KAErB,EACAtP,QAAS,WACP,IAAIxL,EAASpB,KAKbA,KAAK0B,WAAU,WAEb,IAAI6a,EAAYnb,EAAOob,eAGvBpb,EAAO+a,gBAGP,IAAIjG,GAAU,OAAW9U,KAAW,OAAWA,EAAOQ,UAElD6a,EAAWrb,EAAO8a,WAAY,OAAwB9a,EAAQmb,EAAW,CAE3EG,SAAUxG,QAAWnN,IAGvB0T,EAAS/F,WAAWtV,EAAO4S,cAE3ByI,EAASnb,IAAI,KAAiBF,EAAOub,QACrCF,EAASnb,IAAI,KAAkBF,EAAOwb,SACtCH,EAASnb,IAAI,KAAiBF,EAAOyb,QACrCJ,EAASnb,IAAI,KAAmBF,EAAO0b,UACvCL,EAASnb,IAAI,KAAqBF,EAAO2b,YACzCN,EAASnb,IAAI,KAAoBF,EAAO4b,WAEpC5b,EAAOsa,IAETta,EAAOgY,YAIThY,EAAOE,IAAI,KAAiBF,EAAOib,QAGnCjb,EAAOE,IAAI,KAAkBF,EAAOkb,SAGpClb,EAAOE,IAAI,KAAoBF,EAAOgY,WAGtChY,EAAOE,IAAI,KAAmBF,EAAOiY,UAGjCjY,EAAOtB,WACT2c,EAAS5P,MAEb,GACF,EACAtK,QAAS,CACPia,aAAc,WAEZ,OAAO,GACT,EACAL,cAAe,WAMbnc,KAAKid,SAASjd,KAAK4I,iBAAmB5I,KAAK4F,MAC7C,EAEAqX,SAAU,SAAkB5X,GAC1BA,GAAQ,OAAkBA,GAAS,GAAKA,EAEpCrF,KAAK8b,aAAezW,IACtBrF,KAAK8b,WAAazW,EAEtB,EACA6X,WAAY,SAAoB7X,GAC9BA,GAAQ,OAAkBA,GAAS,GAAKA,EAEpCrF,KAAK+b,eAAiB1W,IACxBrF,KAAK+b,aAAe1W,EAExB,EAEAsX,OAAQ,SAAgB/O,GAEtB5N,KAAKwD,MAAM,KAAiBoK,GAExBA,IACF5N,KAAKF,WAAa8N,EAAQoK,iBAE9B,EACA4E,QAAS,SAAiBhP,GAExB5N,KAAKF,WAAY,EACjBE,KAAKwD,MAAM,KAAkBoK,EAC/B,EACAiP,OAAQ,SAAgBjP,GACtB5N,KAAKwD,MAAM,KAAiBoK,EAC9B,EACAkP,SAAU,SAAkBlP,GAE1B5N,KAAKwD,MAAM,KAAmBoK,GAC9B5N,KAAKF,WAAY,CACnB,EACAid,WAAY,SAAoBnP,GAG1BA,GAAWA,EAAQ/D,OAAS,OAC9B7J,KAAKwD,MAAMmY,GAA0B,GACrC3b,KAAKwD,MAAM,KAAqBoK,GAEpC,EACAoP,UAAW,SAAmBpP,GAGxBA,GAAWA,EAAQ/D,OAAS,OAC9B7J,KAAKwD,MAAMmY,GAA0B,GACrC3b,KAAKwD,MAAM,KAAoBoK,GAEnC,EAEAyO,OAAQ,YACLrc,KAAKF,WAAaE,KAAKkc,WAAalc,KAAKkc,UAAUrP,MACtD,EACAyP,QAAS,WACPtc,KAAKF,WAAaE,KAAKkc,WAAalc,KAAKkc,UAAU1Z,MACrD,EACA4W,UAAW,WACTpZ,KAAKkc,WAAalc,KAAKkc,UAAU1G,SACnC,EACA6D,SAAU,WACRrZ,KAAKkc,WAAalc,KAAKkc,UAAUzG,QACnC,GAEFtS,OAAQ,SAAgBD,GAKtB,OAAOA,GACT,G","sources":["webpack://frog/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/transition/bv-transition.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/toast/toast.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/toast/toaster.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/toast/helpers/bv-toast.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/toast/index.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/tooltip/index.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/transporter/transporter.js","webpack://frog/./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.js"],"sourcesContent":["// 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 { extend } 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 { useParentMixin } from '../../../mixins/use-parent';\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__*/extend({\n  name: NAME_POPPER,\n  mixins: [useParentMixin],\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.bvParent.$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 { extend } 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__*/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.bvParent.bvParent.$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// 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 { extend, 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__*/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\n    var dataCopy = _objectSpread({}, data);\n\n    delete dataCopy.props;\n    return h('transition', // Any transition event listeners will get merged here\n    mergeData(dataCopy, {\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 { Portal, Wormhole } from 'portal-vue';\nimport { COMPONENT_UID_KEY, extend } 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 { createNewChildComponent } from '../../utils/create-new-child-component';\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__*/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 = createNewChildComponent(this.bvEventRoot, BToaster, {\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 { PortalTarget, Wormhole } from 'portal-vue';\nimport { extend } 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__*/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__*/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 \\\"<portal-target>\\\" 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 { useParentMixin } from '../../../mixins/use-parent';\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 { createNewChildComponent } from '../../../utils/create-new-child-component';\nimport { getEventRoot } from '../../../utils/get-event-root';\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    mixins: [useParentMixin],\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.bvParent.$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 = createNewChildComponent(parent, 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      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 <strong>\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: getEventRoot(vm)\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 `<b-toast>` 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 };","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 };","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, extend } 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 { useParentMixin } from '../../../mixins/use-parent';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { getInstanceFromElement } from '../../../utils/element-to-vue-instance-registry';\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 { createNewChildComponent } from '../../../utils/create-new-child-component';\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__*/extend({\n  name: NAME_TOOLTIP_HELPER,\n  mixins: [listenOnRootMixin, useParentMixin],\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.bvParent) {\n      this.bvParent.$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.bvParent); // 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 = createNewChildComponent(this, Template, {\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 method = on ? 'listenOnRoot' : 'listenOffRoot';\n      var type = this.templateType;\n      this[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n      this[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n      this[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n      this[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\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 <keepalive>, 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[on ? 'listenOnRoot' : 'listenOffRoot'](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.bvEventRoot || !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      var instance = getInstanceFromElement(target);\n\n      if (instance) {\n        instance[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});","import { Vue, extend, isVue3 } 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';\nimport { createNewChildComponent } from '../../utils/create-new-child-component'; // --- 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__*/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\nvar BVTransporterVue2 = /*#__PURE__*/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 = createNewChildComponent(this, BVTransporterTarget, {\n            el: $el,\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});\nvar BVTransporterVue3 = /*#__PURE__*/extend({\n  name: NAME_TRANSPORTER,\n  mixins: [normalizeSlotMixin],\n  props: props,\n  render: function render(h) {\n    if (this.disabled) {\n      var $nodes = concat(this.normalizeSlot()).filter(identity);\n\n      if ($nodes.length > 0) {\n        return $nodes[0];\n      }\n    }\n\n    return h(Vue.Teleport, {\n      to: this.container\n    }, this.normalizeSlot());\n  }\n});\nexport var BVTransporter = isVue3 ? BVTransporterVue3 : BVTransporterVue2;","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 { extend } 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 { useParentMixin } from '../../mixins/use-parent';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { pick } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { createNewChildComponent } from '../../utils/create-new-child-component';\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__*/extend({\n  name: NAME_TOOLTIP,\n  mixins: [normalizeSlotMixin, useParentMixin],\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.bvParent); // Create the instance\n\n      var $toolpop = _this2.$_toolpop = createNewChildComponent(_this2, Component, {\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});"],"names":["AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","TOPLEFT","TOPRIGHT","RIGHTTOP","RIGHTBOTTOM","BOTTOMLEFT","BOTTOMRIGHT","LEFTTOP","LEFTBOTTOM","OffsetMap","arrowPadding","boundary","boundaryPadding","fallbackPlacement","offset","placement","target","BVPopper","name","mixins","props","data","noFade","localShow","attachment","this","getAttachment","computed","templateType","popperConfig","_this","modifiers","getOffset","flip","behavior","arrow","element","preventOverflow","padding","boundariesElement","onCreate","originalPlacement","popperPlacementChange","onUpdate","created","_this2","$_popper","$on","el","popperCreate","handleDestroy","$nextTick","$destroy","bvParent","$once","beforeMount","updated","updatePopper","beforeDestroy","destroyPopper","destroyed","$el","parentNode","removeChild","methods","hide","String","toUpperCase","$refs","arrowOffset","width","concat","destroy","scheduleUpdate","renderTemplate","h","render","_this3","appear","on","beforeEnter","$emit","afterEnter","beforeLeave","afterLeave","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","html","id","BVTooltipTemplate","extends","title","content","variant","customClass","interactive","templateClasses","_ref","noninteractive","templateAttributes","$attrs","role","tabindex","scopedStyleAttrs","templateListeners","mouseenter","event","mouseleave","focusin","focusout","$title","domProps","innerHTML","staticClass","class","attrs","ref","NO_FADE_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","FADE_PROPS","mode","transProps","BVTransition","functional","children","appearClass","appearActiveClass","appearToClass","css","dataCopy","_watch","DefaultTransition","onAfterEnter","tag","normalizeSlot","ariaAtomic","ariaLive","undefined","BToaster","doRender","dead","staticName","hasTarget","warn","emitOnRoot","$toaster","$target","multiple","slim","transition","_makeModelMixin","type","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","MIN_DURATION","linkProps","appendToast","autoHideDelay","bodyClass","headerClass","headerTag","isStatus","noAutoHide","noCloseButton","noHoverPause","solid","static","toastClass","toaster","BToast","inheritAttrs","isMounted","isTransitioning","isHiding","order","dismissStarted","resumeDismiss","toastClasses","slotScope","computedDuration","math","computedToaster","transitionHandlers","onBeforeEnter","onBeforeLeave","onAfterLeave","computedAttrs","bvAttrs","safeId","watch","newValue","ensureToaster","$_dismissTimer","mounted","show","listenOnRoot","clearDismissTimer","showEvent","buildEvent","emitEvent","Date","now","hideEvent","setHoverHandler","options","cancelable","relatedTarget","vueTarget","componentId","bvEvent","div","document","createElement","body","appendChild","bvEventRoot","propsData","$mount","startDismissTimer","setTimeout","clearTimeout","onPause","onUnPause","passed","onLinkClick","_this4","hiddenEvent","makeToast","_this5","link","$headerContent","click","$header","$body","isStatic","$toast","to","disabled","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototype","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","call","slice","constructor","Array","from","test","iter","Symbol","iterator","isArray","len","arr2","PROP_NAME","PROP_NAME_PRIV","BASE_PROPS","propsToSlots","toastContent","filterOptions","reduce","memo","Vue","BVToastPop","extend","parent","toast","visible","$createElement","$slots","BvToast","vm","_vm","_root","beforeCreate","get","BVToastPlugin","plugins","plugin","ToastPlugin","components","TooltipPlugin","BTooltip","VBTooltipPlugin","MODAL_SELECTOR","ROOT_EVENT_NAME_MODAL_HIDDEN","SIDEBAR_SELECTOR","CONTAINER_SELECTOR","join","DROPDOWN_CLASS","DROPDOWN_OPEN_SELECTOR","DATA_TITLE_ATTR","templateData","triggers","container","delay","BVTooltip","activeTrigger","hover","focus","computedId","computedDelay","computedTriggers","trim","toLowerCase","split","sort","isWithActiveTrigger","trigger","computedTemplateData","newTriggers","oldTriggers","unListen","listen","handleTemplateUpdate","oldValue","disable","enable","$_tip","$_hoverTimeout","$_hoverState","$_visibleInterval","$_enabled","$_noop","bind","getTarget","scopeId","deactivated","forceHide","setWhileOpenListeners","clearHoverTimeout","clearVisibilityInterval","destroyTemplate","getTemplate","updateData","titleUpdated","fixTitle","createTemplateAndShow","getContainer","Template","$tip","getPlacementTarget","getBoundary","onTemplateShow","onTemplateShown","onTemplateHide","onTemplateHidden","handleEvent","hideTemplate","clearActiveTriggers","localPlacementTarget","_unused","removeAriaDescribedby","restoreTitle","getTemplateElement","dropdownOpen","defaultPrevented","addAriaDescribedby","force","tip","prevHoverState","leave","replace","getTargetId","isInModal","isDropdown","clearInterval","desc","d","_this6","setRootListener","_this7","events","method","doHide","doShow","doDisable","doEnable","setModalListener","setDropdownListener","visibleCheck","setOnTouchStartListener","_this8","setInterval","_this9","documentElement","enter","eventTarget","currentTarget","toggle","_this10","_this11","BVTransporterTarget","abstract","nodes","updatedNodes","$nodes","text","BVTransporterVue2","immediate","handler","unmountTarget","mountTarget","$_defaultFn","$_target","updateTarget","$container","defaultFn","$scopedSlots","default","BVTransporterVue3","Teleport","BVTransporter","_makePropsConfigurabl","MODEL_PROP_NAME_ENABLED","MODEL_EVENT_NAME_ENABLED","MODEL_PROP_NAME_SHOW","MODEL_EVENT_NAME_SHOW","localTitle","localContent","$props","templateTitleContent","$_toolpop","updateContent","$off","doOpen","doClose","Component","getComponent","$toolpop","_scopeId","onShow","onShown","onHide","onHidden","onDisabled","onEnabled","setTitle","setContent"],"sourceRoot":""}