{"version":3,"file":"js/chunk-vendors-8c31e91d.0107f5e8.js","mappings":"qnCAKA,MAAMA,EAAQ,GAOd,SAASC,EAAKC,KAAQC,IAGlBC,EAAAA,EAAAA,MACA,MAAMC,EAAWL,EAAMM,OAASN,EAAMA,EAAMM,OAAS,GAAGC,UAAY,KAC9DC,EAAiBH,GAAYA,EAASI,WAAWC,OAAOC,YACxDC,EAAQC,IACd,GAAIL,EACAM,EAAsBN,EAAgBH,EAAU,GAA2B,CACvEH,EAAMC,EAAKY,KAAK,IAChBV,GAAYA,EAASW,MACrBJ,EACKK,KAAI,EAAGC,MAAAA,KAAa,OAAMC,GAAoBd,EAAUa,EAAME,WAC9DL,KAAK,MACVH,QAGH,CACD,MAAMS,EAAW,CAAE,eAAcnB,OAAUC,GAEvCS,EAAMN,QAGNe,EAASC,KAAM,QAAQC,EAAYX,IAEvCY,QAAQvB,QAAQoB,IAEpBI,EAAAA,EAAAA,MAEJ,SAASZ,IACL,IAAIa,EAAe1B,EAAMA,EAAMM,OAAS,GACxC,IAAKoB,EACD,MAAO,GAKX,MAAMC,EAAkB,GACxB,MAAOD,EAAc,CACjB,MAAME,EAAOD,EAAgB,GACzBC,GAAQA,EAAKV,QAAUQ,EACvBE,EAAKC,eAGLF,EAAgBL,KAAK,CACjBJ,MAAOQ,EACPG,aAAc,IAGtB,MAAMC,EAAiBJ,EAAanB,WAAamB,EAAanB,UAAUwB,OACxEL,EAAeI,GAAkBA,EAAeZ,MAEpD,OAAOS,EAGX,SAASJ,EAAYX,GACjB,MAAMoB,EAAO,GAIb,OAHApB,EAAMqB,SAAQ,CAACC,EAAOC,KAClBH,EAAKV,QAAe,IAANa,EAAU,GAAK,CAAE,SAAUC,EAAiBF,OAEvDF,EAEX,SAASI,GAAiB,MAAElB,EAAF,aAASW,IAC/B,MAAMQ,EAAUR,EAAe,EAAK,QAAOA,qBAAmC,GACxES,IAASpB,EAAMX,WAAsC,MAA1BW,EAAMX,UAAUwB,OAC3CQ,EAAQ,QAAOpB,GAAoBD,EAAMX,UAAWW,EAAME,KAAMkB,KAChEE,EAAS,IAAKH,EACpB,OAAOnB,EAAMuB,MACP,CAACF,KAASG,EAAYxB,EAAMuB,OAAQD,GACpC,CAACD,EAAOC,GAGlB,SAASE,EAAYD,GACjB,MAAME,EAAM,GACNC,EAAOC,OAAOD,KAAKH,GAOzB,OANAG,EAAKE,MAAM,EAAG,GAAGb,SAAQc,IACrBJ,EAAIrB,QAAQ0B,EAAWD,EAAKN,EAAMM,QAElCH,EAAKtC,OAAS,GACdqC,EAAIrB,KAAM,QAEPqB,EAGX,SAASK,EAAWD,EAAKE,EAAOC,GAC5B,OAAIC,EAAAA,EAAAA,IAASF,IACTA,EAAQG,KAAKC,UAAUJ,GAChBC,EAAMD,EAAQ,CAAE,GAAEF,KAAOE,MAEV,kBAAVA,GACK,mBAAVA,GACE,MAATA,EACOC,EAAMD,EAAQ,CAAE,GAAEF,KAAOE,MAE3BK,EAAAA,EAAAA,IAAML,IACXA,EAAQD,EAAWD,GAAKQ,EAAAA,EAAAA,IAAMN,EAAMA,QAAQ,GACrCC,EAAMD,EAAQ,CAAE,GAAEF,SAAYE,EAAQ,OAExCO,EAAAA,EAAAA,IAAWP,GACT,CAAE,GAAEF,OAASE,EAAMQ,KAAQ,IAAGR,EAAMQ,QAAW,OAGtDR,GAAQM,EAAAA,EAAAA,IAAMN,GACPC,EAAMD,EAAQ,CAAE,GAAEF,KAAQE,IAoCzC,SAASnC,EAAsB4C,EAAIrD,EAAUe,EAAMjB,GAC/C,IAAIwC,EACJ,IACIA,EAAMxC,EAAOuD,KAAMvD,GAAQuD,IAE/B,MAAOC,GACHC,EAAYD,EAAKtD,EAAUe,GAE/B,OAAOuB,EAEX,SAASkB,EAA2BH,EAAIrD,EAAUe,EAAMjB,GACpD,IAAIqD,EAAAA,EAAAA,IAAWE,GAAK,CAChB,MAAMf,EAAM7B,EAAsB4C,EAAIrD,EAAUe,EAAMjB,GAMtD,OALIwC,IAAOmB,EAAAA,EAAAA,IAAUnB,IACjBA,EAAIoB,OAAMJ,IACNC,EAAYD,EAAKtD,EAAUe,MAG5BuB,EAEX,MAAMqB,EAAS,GACf,IAAK,IAAI7B,EAAI,EAAGA,EAAIuB,EAAGpD,OAAQ6B,IAC3B6B,EAAO1C,KAAKuC,EAA2BH,EAAGvB,GAAI9B,EAAUe,EAAMjB,IAElE,OAAO6D,EAEX,SAASJ,EAAYD,EAAKtD,EAAUe,EAAM6C,GAAa,GACnD,MAAMC,EAAe7D,EAAWA,EAASa,MAAQ,KACjD,GAAIb,EAAU,CACV,IAAI8D,EAAM9D,EAAS0B,OAEnB,MAAMqC,EAAkB/D,EAASW,MAE3BqD,EAA+EjD,EACrF,MAAO+C,EAAK,CACR,MAAMG,EAAqBH,EAAII,GAC/B,GAAID,EACA,IAAK,IAAInC,EAAI,EAAGA,EAAImC,EAAmBhE,OAAQ6B,IAC3C,IAA+D,IAA3DmC,EAAmBnC,GAAGwB,EAAKS,EAAiBC,GAC5C,OAIZF,EAAMA,EAAIpC,OAGd,MAAMyC,EAAkBnE,EAASI,WAAWC,OAAO+D,aACnD,GAAID,EAEA,YADA1D,EAAsB0D,EAAiB,KAAM,GAA4B,CAACb,EAAKS,EAAiBC,IAIxGK,EAASf,EAAKvC,EAAM8C,EAAcD,GAEtC,SAASS,EAASf,EAAKvC,EAAM8C,EAAcD,GAAa,GAoBhDzC,QAAQmD,MAAMhB,GAItB,IAAIiB,GAAa,EACbC,GAAiB,EACrB,MAAMC,EAAQ,GACd,IAAIC,EAAa,EACjB,MAAMC,EAAqB,GAC3B,IAAIC,EAAoB,KACpBC,EAAgB,EACpB,MAAMC,EAAsB,GAC5B,IAAIC,EAAqB,KACrBC,EAAiB,EACrB,MAAMC,EAAkBC,QAAQC,UAChC,IAAIC,EAAsB,KACtBC,EAA2B,KAE/B,SAASC,EAASjC,GACd,MAAMkC,EAAIH,GAAuBH,EACjC,OAAO5B,EAAKkC,EAAEC,KAAKC,KAAOpC,EAAGqC,KAAKD,MAAQpC,GAAMkC,EAMpD,SAASI,EAAmBC,GAExB,IAAIC,EAAQnB,EAAa,EACrBoB,EAAMrB,EAAMxE,OAChB,MAAO4F,EAAQC,EAAK,CAChB,MAAMC,EAAUF,EAAQC,IAAS,EAC3BE,EAAcC,EAAMxB,EAAMsB,IAChCC,EAAcJ,EAAMC,EAAQE,EAAS,EAAMD,EAAMC,EAErD,OAAOF,EAEX,SAASK,EAASC,GAOR1B,EAAMxE,QACPwE,EAAM2B,SAASD,EAAK5B,GAAc4B,EAAIE,aAAe3B,EAAa,EAAIA,IACvEyB,IAAQd,IACM,MAAVc,EAAIP,GACJnB,EAAMxD,KAAKkF,GAGX1B,EAAM6B,OAAOX,EAAmBQ,EAAIP,IAAK,EAAGO,GAEhDI,KAGR,SAASA,IACAhC,GAAeC,IAChBA,GAAiB,EACjBY,EAAsBH,EAAgBO,KAAKgB,IAGnD,SAASC,EAAcN,GACnB,MAAMrE,EAAI2C,EAAMiC,QAAQP,GACpBrE,EAAI4C,GACJD,EAAM6B,OAAOxE,EAAG,GAGxB,SAAS6E,EAAQC,EAAIC,EAAaC,EAAcC,IACvCC,EAAAA,EAAAA,IAAQJ,GAUTE,EAAa7F,QAAQ2F,GAThBC,GACAA,EAAYT,SAASQ,EAAIA,EAAGP,aAAeU,EAAQ,EAAIA,IACxDD,EAAa7F,KAAK2F,GAS1BL,IAEJ,SAASU,EAAgBL,GACrBD,EAAQC,EAAIhC,EAAmBD,EAAoBE,GAEvD,SAASqC,EAAiBN,GACtBD,EAAQC,EAAI7B,EAAoBD,EAAqBE,GAEzD,SAASmC,EAAiBC,EAAMC,EAAY,MACxC,GAAI1C,EAAmB1E,OAAQ,CAO3B,IANAoF,EAA2BgC,EAC3BzC,EAAoB,IAAI,IAAI0C,IAAI3C,IAChCA,EAAmB1E,OAAS,EAIvB4E,EAAgB,EAAGA,EAAgBD,EAAkB3E,OAAQ4E,IAK9DD,EAAkBC,KAEtBD,EAAoB,KACpBC,EAAgB,EAChBQ,EAA2B,KAE3B8B,EAAiBC,EAAMC,IAG/B,SAASE,EAAkBH,GACvB,GAAItC,EAAoB7E,OAAQ,CAC5B,MAAMuH,EAAU,IAAI,IAAIF,IAAIxC,IAG5B,GAFAA,EAAoB7E,OAAS,EAEzB8E,EAEA,YADAA,EAAmB9D,QAAQuG,GAQ/B,IALAzC,EAAqByC,EAIrBzC,EAAmB0C,MAAK,CAACC,EAAGC,IAAM1B,EAAMyB,GAAKzB,EAAM0B,KAC9C3C,EAAiB,EAAGA,EAAiBD,EAAmB9E,OAAQ+E,IAKjED,EAAmBC,KAEvBD,EAAqB,KACrBC,EAAiB,GAGzB,MAAMiB,EAASE,GAAkB,MAAVA,EAAIP,GAAagC,EAAAA,EAAWzB,EAAIP,GACvD,SAASY,EAAUY,GACf5C,GAAiB,EACjBD,GAAa,EAIb4C,EAAiBC,GAQjB3C,EAAMgD,MAAK,CAACC,EAAGC,IAAM1B,EAAMyB,GAAKzB,EAAM0B,KAQhCE,EAAAA,GACN,IACI,IAAKnD,EAAa,EAAGA,EAAaD,EAAMxE,OAAQyE,IAAc,CAC1D,MAAMyB,EAAM1B,EAAMC,GACdyB,IAAsB,IAAfA,EAAI2B,QAKXrH,EAAsB0F,EAAK,KAAM,KAR7C,QAaIzB,EAAa,EACbD,EAAMxE,OAAS,EACfsH,EAAkBH,GAClB7C,GAAa,EACba,EAAsB,MAGlBX,EAAMxE,QACN0E,EAAmB1E,QACnB6E,EAAoB7E,SACpBuG,EAAUY,IA4BK,IAAIE,IAanB,IAAIS,IAgNhB,SAASC,EAAOhI,EAAUiI,KAAUC,GAChC,MAAM9F,EAAQpC,EAASa,MAAMuB,OAAS+F,EAAAA,GAsBtC,IAAIrI,EAAOoI,EACX,MAAME,EAAkBH,EAAMI,WAAW,WAEnCC,EAAWF,GAAmBH,EAAMxF,MAAM,GAChD,GAAI6F,GAAYA,KAAYlG,EAAO,CAC/B,MAAMmG,EAAgB,GAAe,eAAbD,EAA4B,QAAUA,cACxD,OAAEE,EAAF,KAAUC,GAASrG,EAAMmG,IAAiBJ,EAAAA,GAC5CM,EACA3I,EAAOoI,EAAQtH,KAAI8G,GAAKA,EAAEe,SAErBD,IACL1I,EAAOoI,EAAQtH,IAAI8H,EAAAA,KAgB3B,IAAIC,EACJ,IAAIC,EAAUxG,EAAOuG,GAAcE,EAAAA,EAAAA,IAAaZ,KAE5C7F,EAAOuG,GAAcE,EAAAA,EAAAA,KAAaC,EAAAA,EAAAA,IAASb,MAG1CW,GAAWR,IACZQ,EAAUxG,EAAOuG,GAAcE,EAAAA,EAAAA,KAAaE,EAAAA,EAAAA,IAAUd,MAEtDW,GACApF,EAA2BoF,EAAS5I,EAAU,EAAiCF,GAEnF,MAAMkJ,EAAc5G,EAAMuG,EAAe,QACzC,GAAIK,EAAa,CACb,GAAKhJ,EAASiJ,SAGT,GAAIjJ,EAASiJ,QAAQN,GACtB,YAHA3I,EAASiJ,QAAU,GAKvBjJ,EAASiJ,QAAQN,IAAe,EAChCnF,EAA2BwF,EAAahJ,EAAU,EAAiCF,IAG3F,SAASoJ,EAAsBC,EAAM/I,EAAYgJ,GAAU,GACvD,MAAMC,EAAQjJ,EAAWkJ,WACnBC,EAASF,EAAMG,IAAIL,GACzB,QAAeM,IAAXF,EACA,OAAOA,EAEX,MAAM1G,EAAMsG,EAAKO,MACjB,IAAIC,EAAa,GAEbC,GAAa,EACjB,KAA4BzG,EAAAA,EAAAA,IAAWgG,GAAO,CAC1C,MAAMU,EAAehH,IACjB,MAAMiH,EAAuBZ,EAAsBrG,EAAKzC,GAAY,GAChE0J,IACAF,GAAa,GACbG,EAAAA,EAAAA,IAAOJ,EAAYG,MAGtBV,GAAWhJ,EAAW4J,OAAO/J,QAC9BG,EAAW4J,OAAOpI,QAAQiI,GAE1BV,EAAKc,SACLJ,EAAYV,EAAKc,SAEjBd,EAAKa,QACLb,EAAKa,OAAOpI,QAAQiI,GAG5B,OAAKhH,GAAQ+G,IAIT5C,EAAAA,EAAAA,IAAQnE,GACRA,EAAIjB,SAAQc,GAAQiH,EAAWjH,GAAO,QAGtCqH,EAAAA,EAAAA,IAAOJ,EAAY9G,GAEvBwG,EAAMa,IAAIf,EAAMQ,GACTA,IAVHN,EAAMa,IAAIf,EAAM,MACT,MAcf,SAASgB,EAAeC,EAAS1H,GAC7B,SAAK0H,KAAYC,EAAAA,EAAAA,IAAK3H,MAGtBA,EAAMA,EAAID,MAAM,GAAG6H,QAAQ,QAAS,KAC5BC,EAAAA,EAAAA,IAAOH,EAAS1H,EAAI,GAAG8H,cAAgB9H,EAAID,MAAM,MACrD8H,EAAAA,EAAAA,IAAOH,GAASrB,EAAAA,EAAAA,IAAUrG,MAC1B6H,EAAAA,EAAAA,IAAOH,EAAS1H,IAOxB,IAAI+H,EAA2B,KAC3BC,EAAiB,KAWrB,SAASC,EAA4B3K,GACjC,MAAM4K,EAAOH,EAGb,OAFAA,EAA2BzK,EAC3B0K,EAAkB1K,GAAYA,EAASe,KAAK8J,WAAc,KACnDD,EAMX,SAASE,EAAYlF,GACjB8E,EAAiB9E,EAOrB,SAASmF,IACLL,EAAiB,KAWrB,SAASM,EAAQ3H,EAAI4H,EAAMR,EAA0BS,GAEjD,IAAKD,EACD,OAAO5H,EAEX,GAAIA,EAAG8H,GACH,OAAO9H,EAEX,MAAM+H,EAAsB,IAAItL,KAMxBsL,EAAoBC,IACpBC,IAAkB,GAEtB,MAAMC,EAAeZ,EAA4BM,GAC3C3I,EAAMe,KAAMvD,GAQlB,OAPA6K,EAA4BY,GACxBH,EAAoBC,IACpBC,GAAiB,GAKdhJ,GAUX,OAPA8I,EAAoBD,IAAK,EAIzBC,EAAoBI,IAAK,EAEzBJ,EAAoBC,IAAK,EAClBD,EAYX,SAASK,EAAoBzL,GACzB,MAAQe,KAAM2K,EAAR,MAAmB7K,EAAnB,MAA0BF,EAA1B,UAAiCgL,EAAjC,MAA4CvJ,EAAOwJ,cAAeA,GAAlE,MAAiFC,EAAjF,MAAwFC,EAAxF,KAA+FC,EAA/F,OAAqGC,EAArG,YAA6GC,EAA7G,KAA0HC,EAA1H,WAAgIC,EAAhI,IAA4IlB,EAA5I,aAAiJmB,GAAiBpM,EACxK,IAAIqM,EACAC,EACJ,MAAM1B,EAAOD,EAA4B3K,GAIzC,IACI,GAAsB,EAAlBa,EAAM0L,UAAwC,CAG9C,MAAMC,EAAab,GAAahL,EAChC0L,EAASI,GAAeT,EAAOU,KAAKF,EAAYA,EAAYP,EAAa7J,EAAO+J,EAAYD,EAAMjB,IAClGqB,EAAmBR,MAElB,CAED,MAAME,EAASN,EAEViB,EAGLN,EAASI,GAAeT,EAAO/L,OAAS,EAClC+L,EAAO5J,EASH,CAAE0J,MAAAA,EAAOD,MAAAA,EAAOE,KAAAA,IACpBC,EAAO5J,EAAO,OACpBkK,EAAmBZ,EAAUtJ,MACvB0J,EACAc,EAAyBd,IAGvC,MAAOxI,GACHuJ,GAAW5M,OAAS,EACpBsD,EAAYD,EAAKtD,EAAU,GAC3BqM,EAASS,GAAYC,IAKzB,IAAIC,EAAOX,EAOX,GAAIC,IAAqC,IAAjBF,EAAwB,CAC5C,MAAM7J,EAAOC,OAAOD,KAAK+J,IACnB,UAAEC,GAAcS,EAClBzK,EAAKtC,QACW,EAAZsM,IACIX,GAAgBrJ,EAAK0K,KAAK7E,EAAAA,MAK1BkE,EAAmBY,EAAqBZ,EAAkBV,IAE9DoB,EAAOG,GAAWH,EAAMV,IA4DpC,OAtBIzL,EAAMuM,OAKNJ,EAAKI,KAAOJ,EAAKI,KAAOJ,EAAKI,KAAKC,OAAOxM,EAAMuM,MAAQvM,EAAMuM,MAG7DvM,EAAMyM,aAKNN,EAAKM,WAAazM,EAAMyM,YAMxBjB,EAASW,EAEbrC,EAA4BC,GACrByB,EAoDX,MAAMO,EAA4Bd,IAC9B,IAAIxJ,EACJ,IAAK,MAAMI,KAAOoJ,GACF,UAARpJ,GAA2B,UAARA,IAAmB2H,EAAAA,EAAAA,IAAK3H,OAC1CJ,IAAQA,EAAM,KAAKI,GAAOoJ,EAAMpJ,IAGzC,OAAOJ,GAEL4K,EAAuB,CAACpB,EAAO1J,KACjC,MAAME,EAAM,GACZ,IAAK,MAAMI,KAAOoJ,GACT1D,EAAAA,EAAAA,IAAgB1F,IAAUA,EAAID,MAAM,KAAML,IAC3CE,EAAII,GAAOoJ,EAAMpJ,IAGzB,OAAOJ,GAOX,SAASiL,EAAsBC,EAAWC,EAAWC,GACjD,MAAQtL,MAAOuL,EAAWC,SAAUC,EAA9B,UAA4C3N,GAAcsN,GACxDpL,MAAO0L,EAAWF,SAAUG,EAA9B,UAA4CC,GAAcP,EAC1D/D,EAAQxJ,EAAU+N,aAQxB,GAAIR,EAAUL,MAAQK,EAAUH,WAC5B,OAAO,EAEX,KAAII,GAAaM,GAAa,GA2B1B,SAAIH,IAAgBE,GACXA,GAAiBA,EAAaG,UAInCP,IAAcG,IAGbH,GAGAG,GAGEK,GAAgBR,EAAWG,EAAWpE,KALhCoE,GAnCb,GAAgB,KAAZE,EAGA,OAAO,EAEX,GAAgB,GAAZA,EACA,OAAKL,EAIEQ,GAAgBR,EAAWG,EAAWpE,KAHhCoE,EAKZ,GAAgB,EAAZE,EAA2B,CAChC,MAAMI,EAAeX,EAAUW,aAC/B,IAAK,IAAItM,EAAI,EAAGA,EAAIsM,EAAanO,OAAQ6B,IAAK,CAC1C,MAAMY,EAAM0L,EAAatM,GACzB,GAAIgM,EAAUpL,KAASiL,EAAUjL,KAC5ByH,EAAeT,EAAOhH,GACvB,OAAO,GAwBvB,OAAO,EAEX,SAASyL,GAAgBR,EAAWG,EAAWG,GAC3C,MAAMI,EAAW7L,OAAOD,KAAKuL,GAC7B,GAAIO,EAASpO,SAAWuC,OAAOD,KAAKoL,GAAW1N,OAC3C,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAIuM,EAASpO,OAAQ6B,IAAK,CACtC,MAAMY,EAAM2L,EAASvM,GACrB,GAAIgM,EAAUpL,KAASiL,EAAUjL,KAC5ByH,EAAe8D,EAAcvL,GAC9B,OAAO,EAGf,OAAO,EAEX,SAAS4L,IAAgB,MAAEzN,EAAF,OAASa,GAAU6M,GAExC,MAAO7M,GAAUA,EAAO8M,UAAY3N,GAC/BA,EAAQa,EAAOb,OAAO0N,GAAKA,EAC5B7M,EAASA,EAAOA,OAIxB,MAAM+M,GAAc1N,GAASA,EAAK2N,aAoZlC,SAASC,GAAwBtL,EAAIuL,GAC7BA,GAAYA,EAASC,eACjB7H,EAAAA,EAAAA,IAAQ3D,GACRuL,EAASE,QAAQ7N,QAAQoC,GAGzBuL,EAASE,QAAQ7N,KAAKoC,GAI1B6D,EAAiB7D,GAezB,SAAS0L,GAAQrM,EAAKE,GAClB,GAAKoM,GAKA,CACD,IAAIC,EAAWD,GAAgBC,SAM/B,MAAMC,EAAiBF,GAAgBtN,QAAUsN,GAAgBtN,OAAOuN,SACpEC,IAAmBD,IACnBA,EAAWD,GAAgBC,SAAWzM,OAAO2M,OAAOD,IAGxDD,EAASvM,GAAOE,OAhBX+J,EAmBb,SAASyC,GAAO1M,EAAK2M,EAAcC,GAAwB,GAGvD,MAAMtP,EAAWgP,IAAmBvE,EACpC,GAAIzK,EAAU,CAIV,MAAMiP,EAA8B,MAAnBjP,EAAS0B,OACpB1B,EAASa,MAAMT,YAAcJ,EAASa,MAAMT,WAAW6O,SACvDjP,EAAS0B,OAAOuN,SACtB,GAAIA,GAAYvM,KAAOuM,EAEnB,OAAOA,EAASvM,GAEf,GAAI6M,UAAUtP,OAAS,EACxB,OAAOqP,IAAyBnM,EAAAA,EAAAA,IAAWkM,GACrCA,EAAa3C,KAAK1M,EAASW,OAC3B0O,OAMJ1C,EAMd,SAAS6C,GAAYC,EAAQrF,GACzB,OAAOsF,GAAQD,EAAQ,KAAMrF,GAajC,MAAMuF,GAAwB,GAE9B,SAASC,GAAMC,EAAQjJ,EAAIwD,GAMvB,OAAOsF,GAAQG,EAAQjJ,EAAIwD,GAE/B,SAASsF,GAAQG,EAAQjJ,GAAI,UAAEkJ,EAAF,KAAaC,EAAb,MAAmBC,EAAnB,QAA0BC,EAA1B,UAAmCC,GAAc/H,EAAAA,IAW1E,MAIMnI,EAAWgP,GACjB,IAAImB,EAuDAC,EAtDAC,GAAe,EACfC,GAAgB,EAiDpB,IAhDIrN,EAAAA,EAAAA,IAAM4M,IACNM,EAAS,IAAMN,EAAOjN,MACtByN,GAAeE,EAAAA,EAAAA,IAAYV,KAEtBW,EAAAA,EAAAA,IAAWX,IAChBM,EAAS,IAAMN,EACfE,GAAO,IAEF/I,EAAAA,EAAAA,IAAQ6I,IACbS,GAAgB,EAChBD,EAAeR,EAAO5C,KAAKuD,EAAAA,IAC3BL,EAAS,IAAMN,EAAOjP,KAAI6P,IAClBxN,EAAAA,EAAAA,IAAMwN,GACCA,EAAE7N,OAEJ4N,EAAAA,EAAAA,IAAWC,GACTC,GAASD,IAEXtN,EAAAA,EAAAA,IAAWsN,GACThQ,EAAsBgQ,EAAGzQ,EAAU,QADzC,KAWLmQ,GAHChN,EAAAA,EAAAA,IAAW0M,GACZjJ,EAES,IAAMnG,EAAsBoP,EAAQ7P,EAAU,GAI9C,KACL,IAAIA,IAAYA,EAAS2Q,YAMzB,OAHIP,GACAA,IAEG5M,EAA2BqM,EAAQ7P,EAAU,EAAwB,CAAC4Q,KAK5E/I,EAAAA,GAGTjB,GAAMmJ,EAAM,CACZ,MAAMc,EAAaV,EACnBA,EAAS,IAAMO,GAASG,KAG5B,IAAID,EAAavN,IACb+M,EAAUX,EAAOqB,OAAS,KACtBrQ,EAAsB4C,EAAIrD,EAAU,KAK5C,GAAI+Q,GAaA,OAXAH,EAAY/I,EAAAA,GACPjB,EAGIkJ,GACLtM,EAA2BoD,EAAI5G,EAAU,EAAwB,CAC7DmQ,IACAG,EAAgB,QAAK7G,EACrBmH,IANJT,IASGtI,EAAAA,GAEX,IAAImJ,EAAWV,EAAgB,GAAKX,GACpC,MAAMxJ,EAAM,KACR,GAAKsJ,EAAO3H,OAGZ,GAAIlB,EAAI,CAEJ,MAAMqK,EAAWxB,EAAOyB,OACpBnB,GACAM,IACCC,EACKW,EAAShE,MAAK,CAACkE,EAAGrP,KAAMsP,EAAAA,EAAAA,IAAWD,EAAGH,EAASlP,OAC/CsP,EAAAA,EAAAA,IAAWH,EAAUD,OAGvBZ,GACAA,IAEJ5M,EAA2BoD,EAAI5G,EAAU,EAAwB,CAC7DiR,EAEAD,IAAarB,QAAwBlG,EAAYuH,EACjDJ,IAEJI,EAAWC,QAKfxB,EAAOyB,OAMf,IAAIG,EADJlL,EAAIE,eAAiBO,EAGjByK,EADU,SAAVrB,EACY7J,EAEG,SAAV6J,EACO,IAAMsB,GAAsBnL,EAAKnG,GAAYA,EAAS4O,UAItD,MACH5O,GAAYA,EAASuR,UACtBtK,EAAgBd,GAKhBA,KAIZ,MAAMsJ,EAAS,IAAI+B,EAAAA,GAAerB,EAAQkB,GAoB1C,OAdIzK,EACIkJ,EACA3J,IAGA6K,EAAWvB,EAAOyB,MAGP,SAAVlB,EACLsB,GAAsB7B,EAAOyB,IAAIxL,KAAK+J,GAASzP,GAAYA,EAAS4O,UAGpEa,EAAOyB,MAEJ,KACHzB,EAAOgC,OACHzR,GAAYA,EAAS0R,QACrBC,EAAAA,EAAAA,IAAO3R,EAAS0R,MAAM5C,QAASW,IAK3C,SAASmC,GAAc/B,EAAQjN,EAAOwH,GAClC,MAAMyH,EAAapM,KAAK9E,MAClBwP,GAASrN,EAAAA,EAAAA,IAAS+M,GAClBA,EAAOzJ,SAAS,KACZ0L,GAAiBD,EAAYhC,GAC7B,IAAMgC,EAAWhC,GACrBA,EAAOnK,KAAKmM,EAAYA,GAC9B,IAAIjL,GACAzD,EAAAA,EAAAA,IAAWP,GACXgE,EAAKhE,GAGLgE,EAAKhE,EAAMgG,QACXwB,EAAUxH,GAEd,MAAMkB,EAAMkL,GACZ+C,GAAmBtM,MACnB,MAAMnD,EAAMoN,GAAQS,EAAQvJ,EAAGlB,KAAKmM,GAAazH,GAOjD,OANItG,EACAiO,GAAmBjO,GAGnBkO,KAEG1P,EAEX,SAASwP,GAAiB7G,EAAKgH,GAC3B,MAAMC,EAAWD,EAAKE,MAAM,KAC5B,MAAO,KACH,IAAIrO,EAAMmH,EACV,IAAK,IAAInJ,EAAI,EAAGA,EAAIoQ,EAASjS,QAAU6D,EAAKhC,IACxCgC,EAAMA,EAAIoO,EAASpQ,IAEvB,OAAOgC,GAGf,SAAS4M,GAAS9N,EAAOwE,GACrB,KAAKgL,EAAAA,EAAAA,IAASxP,IAAUA,EAAM,YAC1B,OAAOA,EAGX,GADAwE,EAAOA,GAAQ,IAAIE,IACfF,EAAKiL,IAAIzP,GACT,OAAOA,EAGX,GADAwE,EAAKkL,IAAI1P,IACLK,EAAAA,EAAAA,IAAML,GACN8N,GAAS9N,EAAMA,MAAOwE,QAErB,IAAIJ,EAAAA,EAAAA,IAAQpE,GACb,IAAK,IAAId,EAAI,EAAGA,EAAIc,EAAM3C,OAAQ6B,IAC9B4O,GAAS9N,EAAMd,GAAIsF,QAGtB,IAAImL,EAAAA,EAAAA,IAAM3P,KAAU4P,EAAAA,EAAAA,IAAM5P,GAC3BA,EAAMhB,SAASuP,IACXT,GAASS,EAAG/J,WAGf,IAAIqL,EAAAA,EAAAA,IAAc7P,GACnB,IAAK,MAAMF,KAAOE,EACd8N,GAAS9N,EAAMF,GAAM0E,GAG7B,OAAOxE,EAGX,SAAS8P,KACL,MAAMC,EAAQ,CACVpB,WAAW,EACXqB,WAAW,EACXC,cAAc,EACdC,cAAe,IAAI/K,KAQvB,OANAgL,IAAU,KACNJ,EAAMpB,WAAY,KAEtByB,IAAgB,KACZL,EAAME,cAAe,KAElBF,EAEX,MAAMM,GAA0B,CAACC,SAAUC,OACrCC,GAAqB,CACvBhQ,KAAO,iBACPhB,MAAO,CACHiR,KAAMC,OACNC,OAAQC,QACRC,UAAWD,QAEXE,cAAeT,GACfU,QAASV,GACTW,aAAcX,GACdY,iBAAkBZ,GAElBa,cAAeb,GACfc,QAASd,GACTe,aAAcf,GACdgB,iBAAkBhB,GAElBiB,eAAgBjB,GAChBkB,SAAUlB,GACVmB,cAAenB,GACfoB,kBAAmBpB,IAEvBqB,MAAMlS,GAAO,MAAEyJ,IACX,MAAM7L,EAAWuU,KACX5B,EAAQD,KACd,IAAI8B,EACJ,MAAO,KACH,MAAM5G,EAAW/B,EAAM4I,SAAWC,GAAyB7I,EAAM4I,WAAW,GAC5E,IAAK7G,IAAaA,EAAS3N,OACvB,OASJ,MAAM0U,GAAWzR,EAAAA,EAAAA,IAAMd,IACjB,KAAEiR,GAASsB,EAQjB,MAAMC,EAAQhH,EAAS,GACvB,GAAI+E,EAAMC,UACN,OAAOiC,GAAiBD,GAI5B,MAAME,EAAaC,GAAkBH,GACrC,IAAKE,EACD,OAAOD,GAAiBD,GAE5B,MAAMI,EAAaC,GAAuBH,EAAYH,EAAUhC,EAAO3S,GACvEkV,GAAmBJ,EAAYE,GAC/B,MAAMG,EAAWnV,EAASwO,QACpB4G,EAAgBD,GAAYJ,GAAkBI,GACpD,IAAIE,GAAuB,EAC3B,MAAM,iBAAEC,GAAqBR,EAAW/T,KACxC,GAAIuU,EAAkB,CAClB,MAAM5S,EAAM4S,SACc7L,IAAtB+K,EACAA,EAAoB9R,EAEfA,IAAQ8R,IACbA,EAAoB9R,EACpB2S,GAAuB,GAI/B,GAAID,GACAA,EAAcrU,OAASgM,MACrBwI,GAAgBT,EAAYM,IAAkBC,GAAuB,CACvE,MAAMG,EAAeP,GAAuBG,EAAeT,EAAUhC,EAAO3S,GAI5E,GAFAkV,GAAmBE,EAAeI,GAErB,WAATnC,EAOA,OANAV,EAAMC,WAAY,EAElB4C,EAAaC,WAAa,KACtB9C,EAAMC,WAAY,EAClB5S,EAAS0V,UAENb,GAAiBD,GAEV,WAATvB,GAAqByB,EAAW/T,OAASgM,KAC9CyI,EAAaG,WAAa,CAACpH,EAAIqH,EAAaC,KACxC,MAAMC,EAAqBC,GAAuBpD,EAAOyC,GACzDU,EAAmBxC,OAAO8B,EAAc1S,MAAQ0S,EAEhD7G,EAAGyH,SAAW,KACVJ,IACArH,EAAGyH,cAAWvM,SACPuL,EAAWa,cAEtBb,EAAWa,aAAeA,IAItC,OAAOjB,KAMbqB,GAAiB7C,GACvB,SAAS2C,GAAuBpD,EAAO9R,GACnC,MAAM,cAAEiS,GAAkBH,EAC1B,IAAImD,EAAqBhD,EAActJ,IAAI3I,EAAME,MAKjD,OAJK+U,IACDA,EAAqBtT,OAAO2M,OAAO,MACnC2D,EAAc5I,IAAIrJ,EAAME,KAAM+U,IAE3BA,EAIX,SAASb,GAAuBpU,EAAOuB,EAAOuQ,EAAO3S,GACjD,MAAM,OAAEuT,EAAF,KAAUF,EAAV,UAAgBI,GAAY,EAA5B,cAAmCC,EAAnC,QAAkDC,EAAlD,aAA2DC,EAA3D,iBAAyEC,EAAzE,cAA2FC,EAA3F,QAA0GC,EAA1G,aAAmHC,EAAnH,iBAAiIC,EAAjI,eAAmJC,EAAnJ,SAAmKC,EAAnK,cAA6KC,EAA7K,kBAA4LC,GAAsBjS,EAClNM,EAAM4Q,OAAOzS,EAAM6B,KACnBoT,EAAqBC,GAAuBpD,EAAO9R,GACnDqV,EAAW,CAACC,EAAMrW,KACpBqW,GACI3S,EAA2B2S,EAAMnW,EAAU,EAAyBF,IAEtEsW,EAAQ,CACV/C,KAAAA,EACAI,UAAAA,EACA4C,YAAY9H,GACR,IAAI4H,EAAOzC,EACX,IAAKf,EAAMpB,UAAW,CAClB,IAAIgC,EAIA,OAHA4C,EAAOjC,GAAkBR,EAO7BnF,EAAGyH,UACHzH,EAAGyH,UAAS,GAGhB,MAAMM,EAAeR,EAAmBpT,GACpC4T,GACAf,GAAgB1U,EAAOyV,IACvBA,EAAa/H,GAAGyH,UAEhBM,EAAa/H,GAAGyH,WAEpBE,EAASC,EAAM,CAAC5H,KAEpBgI,MAAMhI,GACF,IAAI4H,EAAOxC,EACP6C,EAAY5C,EACZ6C,EAAa5C,EACjB,IAAKlB,EAAMpB,UAAW,CAClB,IAAIgC,EAMA,OALA4C,EAAOhC,GAAYR,EACnB6C,EAAYpC,GAAiBR,EAC7B6C,EAAapC,GAAqBR,EAM1C,IAAI6C,GAAS,EACb,MAAMC,EAAQpI,EAAGqI,SAAYC,IACrBH,IAEJA,GAAS,EAELR,EADAW,EACSJ,EAGAD,EAHY,CAACjI,IAKtB6H,EAAMP,cACNO,EAAMP,eAEVtH,EAAGqI,cAAWnN,IAEd0M,GACAA,EAAK5H,EAAIoI,GACLR,EAAKlW,QAAU,GACf0W,KAIJA,KAGRG,MAAMvI,EAAIoD,GACN,MAAMjP,EAAM4Q,OAAOzS,EAAM6B,KAIzB,GAHI6L,EAAGqI,UACHrI,EAAGqI,UAAS,GAEZjE,EAAME,aACN,OAAOlB,IAEXuE,EAASpC,EAAe,CAACvF,IACzB,IAAImI,GAAS,EACb,MAAMC,EAAQpI,EAAGyH,SAAYa,IACrBH,IAEJA,GAAS,EACT/E,IAEIuE,EADAW,EACS5C,EAGAD,EAHkB,CAACzF,IAKhCA,EAAGyH,cAAWvM,EACVqM,EAAmBpT,KAAS7B,UACrBiV,EAAmBpT,KAGlCoT,EAAmBpT,GAAO7B,EACtBkT,GACAA,EAAQxF,EAAIoI,GACR5C,EAAQ9T,QAAU,GAClB0W,KAIJA,KAGRI,MAAMlW,GACF,OAAOoU,GAAuBpU,EAAOuB,EAAOuQ,EAAO3S,KAG3D,OAAOoW,EAMX,SAASvB,GAAiBhU,GACtB,GAAImW,GAAYnW,GAGZ,OAFAA,EAAQsM,GAAWtM,GACnBA,EAAM+M,SAAW,KACV/M,EAGf,SAASkU,GAAkBlU,GACvB,OAAOmW,GAAYnW,GACbA,EAAM+M,SACF/M,EAAM+M,SAAS,QACfnE,EACJ5I,EAEV,SAASqU,GAAmBrU,EAAOuV,GACT,EAAlBvV,EAAM0L,WAAiC1L,EAAMX,UAC7CgV,GAAmBrU,EAAMX,UAAUsO,QAAS4H,GAErB,IAAlBvV,EAAM0L,WACX1L,EAAMoW,UAAU3J,WAAa8I,EAAMW,MAAMlW,EAAMoW,WAC/CpW,EAAMqW,WAAW5J,WAAa8I,EAAMW,MAAMlW,EAAMqW,aAGhDrW,EAAMyM,WAAa8I,EAG3B,SAAS1B,GAAyB9G,EAAUuJ,GAAc,GACtD,IAAIC,EAAM,GACNC,EAAqB,EACzB,IAAK,IAAIvV,EAAI,EAAGA,EAAI8L,EAAS3N,OAAQ6B,IAAK,CACtC,MAAM8S,EAAQhH,EAAS9L,GAEnB8S,EAAM7T,OAASuW,IACO,IAAlB1C,EAAM5G,WACNqJ,IACJD,EAAMA,EAAI/J,OAAOqH,GAAyBE,EAAMhH,SAAUuJ,MAGrDA,GAAevC,EAAM7T,OAASgM,KACnCqK,EAAInW,KAAK2T,GAOjB,GAAIyC,EAAqB,EACrB,IAAK,IAAIvV,EAAI,EAAGA,EAAIsV,EAAInX,OAAQ6B,IAC5BsV,EAAItV,GAAGkM,WAAa,EAG5B,OAAOoJ,EAIX,SAASG,GAAgBnN,GACrB,OAAOjH,EAAAA,EAAAA,IAAWiH,GAAW,CAAEkK,MAAOlK,EAAShH,KAAMgH,EAAQhH,MAASgH,EAG1E,MAAMoN,GAAkB1V,KAAQA,EAAEf,KAAK0W,cA0IvC,MAAMT,GAAenW,GAAUA,EAAME,KAAK2W,cAQhBC,OACAA,OAwM1B,SAASC,GAAQC,EAASzU,GACtB,OAAI4D,EAAAA,EAAAA,IAAQ6Q,GACDA,EAAQ5K,MAAM1H,GAAMqS,GAAQrS,EAAGnC,MAEjCN,EAAAA,EAAAA,IAAS+U,GACPA,EAAQ1F,MAAM,KAAK/L,SAAShD,KAE9ByU,EAAQC,MACND,EAAQC,KAAK1U,GAK5B,SAAS2U,GAAY5B,EAAM6B,GACvBC,GAAsB9B,EAAM,IAAqB6B,GAErD,SAASE,GAAc/B,EAAM6B,GACzBC,GAAsB9B,EAAM,KAAwB6B,GAExD,SAASC,GAAsB9B,EAAMpV,EAAMiX,EAAShJ,IAIhD,MAAMmJ,EAAchC,EAAKiC,QACpBjC,EAAKiC,MAAQ,KAEV,IAAIC,EAAUL,EACd,MAAOK,EAAS,CACZ,GAAIA,EAAQC,cACR,OAEJD,EAAUA,EAAQ3W,OAEtB,OAAOyU,MAQf,GANAoC,GAAWxX,EAAMoX,EAAaH,GAM1BA,EAAQ,CACR,IAAIK,EAAUL,EAAOtW,OACrB,MAAO2W,GAAWA,EAAQ3W,OAClBsV,GAAYqB,EAAQ3W,OAAOb,QAC3B2X,GAAsBL,EAAapX,EAAMiX,EAAQK,GAErDA,EAAUA,EAAQ3W,QAI9B,SAAS8W,GAAsBrC,EAAMpV,EAAMiX,EAAQS,GAG/C,MAAMC,EAAWH,GAAWxX,EAAMoV,EAAMsC,GAAe,GACvDE,IAAY,MACRhH,EAAAA,EAAAA,IAAO8G,EAAc1X,GAAO2X,KAC7BV,GAEP,SAASY,GAAe/X,GACpB,IAAI0L,EAAY1L,EAAM0L,UACN,IAAZA,IACAA,GAAa,KAED,IAAZA,IACAA,GAAa,KAEjB1L,EAAM0L,UAAYA,EAEtB,SAASsM,GAAchY,GACnB,OAAyB,IAAlBA,EAAM0L,UAAiC1L,EAAMoW,UAAYpW,EAGpE,SAAS0X,GAAWxX,EAAMoV,EAAM6B,EAAShJ,GAAiB8J,GAAU,GAChE,GAAId,EAAQ,CACR,MAAM5B,EAAQ4B,EAAOjX,KAAUiX,EAAOjX,GAAQ,IAIxCoX,EAAchC,EAAK4C,QACpB5C,EAAK4C,MAAQ,IAAIjZ,KACd,GAAIkY,EAAOrH,YACP,QAIJ5Q,EAAAA,EAAAA,MAIAgS,GAAmBiG,GACnB,MAAM1V,EAAMkB,EAA2B2S,EAAM6B,EAAQjX,EAAMjB,GAG3D,OAFAkS,MACA5Q,EAAAA,EAAAA,MACOkB,IAQf,OANIwW,EACA1C,EAAM4C,QAAQb,GAGd/B,EAAMnV,KAAKkX,GAERA,GAYf,MAAMc,GAAcC,GAAc,CAAC/C,EAAM6B,EAAShJ,OAEhD+B,IAAuC,OAAdmI,IACvBX,GAAWW,EAAW/C,EAAM6B,GAC1BmB,GAAgBF,GAAW,MAC3BlG,GAAYkG,GAAW,KACvBG,GAAiBH,GAAW,MAC5BI,GAAYJ,GAAW,KACvBjG,GAAkBiG,GAAW,OAC7BN,GAAcM,GAAW,MACzBK,GAAmBL,GAAW,MAC9BM,GAAoBN,GAAW,OAC/BO,GAAkBP,GAAW,OACnC,SAASQ,GAAgBtD,EAAM6B,EAAShJ,IACpCuJ,GAAW,KAA2BpC,EAAM6B,GAchD,IAAI0B,IAAoB,EACxB,SAASC,GAAa3Z,GAClB,MAAMoK,EAAUwP,GAAqB5Z,GAC/B6R,EAAa7R,EAASW,MACtBsK,EAAMjL,EAASiL,IAErByO,IAAoB,EAGhBtP,EAAQyP,cACR3D,GAAS9L,EAAQyP,aAAc7Z,EAAU,MAE7C,MAEAkM,KAAM4N,EAAaC,SAAUC,EAFvB,QAEwCC,EAASrK,MAAOsK,EAAcnL,QAASoL,EAAgB/K,OAAQgL,EAFvG,QAINC,EAJM,YAIGC,EAJH,QAIgBC,EAJhB,aAIyBC,EAJzB,QAIuCC,EAJvC,UAIgDC,EAJhD,YAI2DC,EAJ3D,cAIwEC,EAJxE,cAIuFC,EAJvF,UAIsGC,EAJtG,UAIiHC,EAJjH,OAI4H/O,EAJ5H,cAIoIgP,EAJpI,gBAImJC,EAJnJ,cAIoKC,EAJpK,eAImLC,EAJnL,OAMNC,EANM,aAMEhP,EANF,WAQNiP,EARM,WAQMC,EARN,QAQkBC,GAAYnR,EAC9BoR,EAAgG,KAmBtG,GAHIpB,GACAqB,GAAkBrB,EAAenP,EAAKuQ,EAA0Bxb,EAASI,WAAWC,OAAOqb,mBAE3FzB,EACA,IAAK,MAAMvX,KAAOuX,EAAS,CACvB,MAAM0B,EAAgB1B,EAAQvX,IAC1BS,EAAAA,EAAAA,IAAWwY,KAaP1Q,EAAIvI,GAAOiZ,EAAcjW,KAAKmM,IAY9C,GAAIiI,EAAa,CACRnN,EAIL,MAAMT,EAAO4N,EAAYpN,KAAKmF,EAAYA,GACrClF,GAKAyF,EAAAA,EAAAA,IAASlG,KAIVlM,EAASkM,MAAO0P,EAAAA,EAAAA,IAAS1P,IAmBjC,GADAwN,IAAoB,EAChBM,EACA,IAAK,MAAMtX,KAAOsX,EAAiB,CAC/B,MAAM6B,EAAM7B,EAAgBtX,GACtB8G,GAAMrG,EAAAA,EAAAA,IAAW0Y,GACjBA,EAAInW,KAAKmM,EAAYA,IACrB1O,EAAAA,EAAAA,IAAW0Y,EAAIrS,KACXqS,EAAIrS,IAAI9D,KAAKmM,EAAYA,GACzBhK,EAAAA,GACL8E,EAGL,MAAMzC,IAAO/G,EAAAA,EAAAA,IAAW0Y,KAAQ1Y,EAAAA,EAAAA,IAAW0Y,EAAI3R,KACzC2R,EAAI3R,IAAIxE,KAAKmM,GAKThK,EAAAA,GACJiU,EAAI/B,GAAS,CACfvQ,IAAAA,EACAU,IAAAA,IAEJ1H,OAAOuZ,eAAe9Q,EAAKvI,EAAK,CAC5BsZ,YAAY,EACZC,cAAc,EACdzS,IAAK,IAAMsS,EAAElZ,MACbsH,IAAKiH,GAAM2K,EAAElZ,MAAQuO,IAOjC,GAAI+I,EACA,IAAK,MAAMxX,KAAOwX,EACdgC,GAAchC,EAAaxX,GAAMuI,EAAK4G,EAAYnP,GAG1D,GAAIyX,EAAgB,CAChB,MAAMlL,GAAW9L,EAAAA,EAAAA,IAAWgX,GACtBA,EAAezN,KAAKmF,GACpBsI,EACNgC,QAAQC,QAAQnN,GAAUrN,SAAQc,IAC9BqM,GAAQrM,EAAKuM,EAASvM,OAM9B,SAAS2Z,EAAsBC,EAAUnG,IACjCnP,EAAAA,EAAAA,IAAQmP,GACRA,EAAKvU,SAAQ2a,GAASD,EAASC,EAAM7W,KAAKmM,MAErCsE,GACLmG,EAASnG,EAAKzQ,KAAKmM,IAe3B,GAvBIwI,GACAnE,GAASmE,EAASra,EAAU,KAUhCqc,EAAsBlD,GAAemB,GACrC+B,EAAsBtJ,GAAWwH,GACjC8B,EAAsBjD,GAAgBoB,GACtC6B,EAAsBhD,GAAWoB,GACjC4B,EAAsBtE,GAAa2C,GACnC2B,EAAsBnE,GAAeyC,GACrC0B,EAAsB5C,GAAiByB,GACvCmB,EAAsB7C,GAAiBwB,GACvCqB,EAAsB9C,GAAmB0B,GACzCoB,EAAsBrJ,GAAiB6H,GACvCwB,EAAsB1D,GAAaoC,GACnCsB,EAAsB/C,GAAkB6B,IACpCnU,EAAAA,EAAAA,IAAQoU,GACR,GAAIA,EAAOnb,OAAQ,CACf,MAAMuc,EAAUxc,EAASwc,UAAYxc,EAASwc,QAAU,IACxDpB,EAAOxZ,SAAQc,IACXF,OAAOuZ,eAAeS,EAAS9Z,EAAK,CAChC8G,IAAK,IAAMqI,EAAWnP,GACtBwH,IAAKuS,GAAQ5K,EAAWnP,GAAO+Z,YAIjCzc,EAASwc,UACfxc,EAASwc,QAAU,IAKvBxQ,GAAUhM,EAASgM,SAAWnE,EAAAA,KAC9B7H,EAASgM,OAASA,GAEF,MAAhBI,IACApM,EAASoM,aAAeA,GAGxBiP,IACArb,EAASqb,WAAaA,GACtBC,IACAtb,EAASsb,WAAaA,GAE9B,SAASG,GAAkBrB,EAAenP,EAAKuQ,EAA2B3T,EAAAA,GAAM6U,GAAY,IACpF1V,EAAAA,EAAAA,IAAQoT,KACRA,EAAgBuC,GAAgBvC,IAEpC,IAAK,MAAM1X,KAAO0X,EAAe,CAC7B,MAAMyB,EAAMzB,EAAc1X,GAC1B,IAAIgW,EAGIA,GAFJtG,EAAAA,EAAAA,IAASyJ,GACL,YAAaA,EACFzM,GAAOyM,EAAIe,MAAQla,EAAKmZ,EAAIpH,SAAS,GAGrCrF,GAAOyM,EAAIe,MAAQla,GAIvB0M,GAAOyM,IAElB5Y,EAAAA,EAAAA,IAAMyV,IAEFgE,EACAla,OAAOuZ,eAAe9Q,EAAKvI,EAAK,CAC5BsZ,YAAY,EACZC,cAAc,EACdzS,IAAK,IAAMkP,EAAS9V,MACpBsH,IAAKiH,GAAMuH,EAAS9V,MAAQuO,IAepClG,EAAIvI,GAAOgW,GAOvB,SAASxC,GAASC,EAAMnW,EAAUe,GAC9ByC,GAA2BwD,EAAAA,EAAAA,IAAQmP,GAC7BA,EAAKvV,KAAIic,GAAKA,EAAEnX,KAAK1F,EAASW,SAC9BwV,EAAKzQ,KAAK1F,EAASW,OAAQX,EAAUe,GAE/C,SAASmb,GAAcrZ,EAAKoI,EAAK4G,EAAYnP,GACzC,MAAMyN,EAASzN,EAAI0D,SAAS,KACtB0L,GAAiBD,EAAYnP,GAC7B,IAAMmP,EAAWnP,GACvB,IAAII,EAAAA,EAAAA,IAASD,GAAM,CACf,MAAM+F,EAAUqC,EAAIpI,IAChBM,EAAAA,EAAAA,IAAWyF,IACXgH,GAAMO,EAAQvH,QAMjB,IAAIzF,EAAAA,EAAAA,IAAWN,GAChB+M,GAAMO,EAAQtN,EAAI6C,KAAKmM,SAEtB,IAAIO,EAAAA,EAAAA,IAASvP,GACd,IAAImE,EAAAA,EAAAA,IAAQnE,GACRA,EAAIjB,SAAQkb,GAAKZ,GAAcY,EAAG7R,EAAK4G,EAAYnP,SAElD,CACD,MAAMkG,GAAUzF,EAAAA,EAAAA,IAAWN,EAAI+F,SACzB/F,EAAI+F,QAAQlD,KAAKmM,GACjB5G,EAAIpI,EAAI+F,UACVzF,EAAAA,EAAAA,IAAWyF,IACXgH,GAAMO,EAAQvH,EAAS/F,QAOzB8J,EASd,SAASiN,GAAqB5Z,GAC1B,MAAM+c,EAAO/c,EAASe,MAChB,OAAEiJ,EAAQC,QAAS+S,GAAmBD,GACpC/S,OAAQiT,EAAcC,aAAc7T,EAAOhJ,QAAQ,sBAAE8c,IAA4Bnd,EAASI,WAC5FmJ,EAASF,EAAMG,IAAIuT,GACzB,IAAIK,EAiBJ,OAhBI7T,EACA6T,EAAW7T,EAEL0T,EAAahd,QAAW+J,GAAWgT,GAMzCI,EAAW,GACPH,EAAahd,QACbgd,EAAarb,SAAQyb,GAAKC,GAAaF,EAAUC,EAAGF,GAAuB,KAE/EG,GAAaF,EAAUL,EAAMI,IARzBC,EAAWL,EAUnB1T,EAAMa,IAAI6S,EAAMK,GACTA,EAEX,SAASE,GAAaC,EAAIX,EAAMY,EAAQpU,GAAU,GAC9C,MAAM,OAAEY,EAAQC,QAAS+S,GAAmBJ,EACxCI,GACAM,GAAaC,EAAIP,EAAgBQ,GAAQ,GAEzCxT,GACAA,EAAOpI,SAASyb,GAAMC,GAAaC,EAAIF,EAAGG,GAAQ,KAEtD,IAAK,MAAM9a,KAAOka,EACd,GAAIxT,GAAmB,WAAR1G,OAKV,CACD,MAAM+a,EAAQC,GAA0Bhb,IAAS8a,GAAUA,EAAO9a,GAClE6a,EAAG7a,GAAO+a,EAAQA,EAAMF,EAAG7a,GAAMka,EAAKla,IAAQka,EAAKla,GAG3D,OAAO6a,EAEX,MAAMG,GAA4B,CAC9BxR,KAAMyR,GACNvb,MAAOwb,GACPlU,MAAOkU,GAEP3D,QAAS2D,GACT7D,SAAU6D,GAEV/D,aAAcgE,GACdxD,QAASwD,GACTvD,YAAauD,GACbtD,QAASsD,GACTrD,aAAcqD,GACdpD,QAASoD,GACTjD,cAAeiD,GACfhD,cAAegD,GACf/C,UAAW+C,GACX9C,UAAW8C,GACXnD,UAAWmD,GACXlD,YAAakD,GACb3C,cAAe2C,GACf1C,eAAgB0C,GAEhBxC,WAAYuC,GACZtC,WAAYsC,GAEZhO,MAAOkO,GAEP/O,QAAS4O,GACTvO,OAAQ2O,IAEZ,SAASJ,GAAYJ,EAAIX,GACrB,OAAKA,EAGAW,EAGE,WACH,OAAQxT,EAAAA,EAAAA,KAAQ5G,EAAAA,EAAAA,IAAWoa,GAAMA,EAAG7Q,KAAKjH,KAAMA,MAAQ8X,GAAIpa,EAAAA,EAAAA,IAAWyZ,GAAQA,EAAKlQ,KAAKjH,KAAMA,MAAQmX,IAH/FA,EAHAW,EASf,SAASQ,GAAYR,EAAIX,GACrB,OAAOgB,GAAmBjB,GAAgBY,GAAKZ,GAAgBC,IAEnE,SAASD,GAAgB9Z,GACrB,IAAImE,EAAAA,EAAAA,IAAQnE,GAAM,CACd,MAAMP,EAAM,GACZ,IAAK,IAAIR,EAAI,EAAGA,EAAIe,EAAI5C,OAAQ6B,IAC5BQ,EAAIO,EAAIf,IAAMe,EAAIf,GAEtB,OAAOQ,EAEX,OAAOO,EAEX,SAASgb,GAAaN,EAAIX,GACtB,OAAOW,EAAK,IAAI,IAAIjW,IAAI,GAAG+F,OAAOkQ,EAAIX,KAAUA,EAEpD,SAASgB,GAAmBL,EAAIX,GAC5B,OAAOW,GAAKxT,EAAAA,EAAAA,KAAOA,EAAAA,EAAAA,IAAOvH,OAAO2M,OAAO,MAAOoO,GAAKX,GAAQA,EAEhE,SAASkB,GAAkBP,EAAIX,GAC3B,IAAKW,EACD,OAAOX,EACX,IAAKA,EACD,OAAOW,EACX,MAAMS,GAASjU,EAAAA,EAAAA,IAAOvH,OAAO2M,OAAO,MAAOoO,GAC3C,IAAK,MAAM7a,KAAOka,EACdoB,EAAOtb,GAAOmb,GAAaN,EAAG7a,GAAMka,EAAKla,IAE7C,OAAOsb,EAGX,SAASC,GAAUje,EAAU2U,EAAUuJ,EACvCC,GAAQ,GACJ,MAAM/b,EAAQ,GACR0J,EAAQ,IACdsS,EAAAA,EAAAA,IAAItS,EAAOuS,GAAmB,GAC9Bre,EAASse,cAAgB9b,OAAO2M,OAAO,MACvCoP,GAAave,EAAU2U,EAAUvS,EAAO0J,GAExC,IAAK,MAAMpJ,KAAO1C,EAAS4L,aAAa,GAC9BlJ,KAAON,IACTA,EAAMM,QAAO+G,GAOjByU,EAEAle,EAASoC,MAAQ+b,EAAQ/b,GAAQoc,EAAAA,EAAAA,IAAgBpc,GAG5CpC,EAASe,KAAKqB,MAMfpC,EAASoC,MAAQA,EAJjBpC,EAASoC,MAAQ0J,EAOzB9L,EAAS8L,MAAQA,EAErB,SAAS2S,GAAYze,EAAU2U,EAAU+J,EAAchR,GACnD,MAAM,MAAEtL,EAAF,MAAS0J,EAAOjL,OAAO,UAAEmN,IAAgBhO,EACzC2e,GAAkBzb,EAAAA,EAAAA,IAAMd,IACvBgI,GAAWpK,EAAS4L,aAC3B,IAAIgT,GAAkB,EACtB,KAOKlR,GAAaM,EAAY,IACZ,GAAZA,EAgCD,CAOD,IAAI6Q,EALAN,GAAave,EAAU2U,EAAUvS,EAAO0J,KACxC8S,GAAkB,GAKtB,IAAK,MAAMlc,KAAOic,EACThK,KAECpK,EAAAA,EAAAA,IAAOoK,EAAUjS,KAGbmc,GAAW9V,EAAAA,EAAAA,IAAUrG,MAAUA,IAAQ6H,EAAAA,EAAAA,IAAOoK,EAAUkK,MAC1DzU,GACIsU,QAEuBjV,IAAtBiV,EAAahc,SAEiB+G,IAA3BiV,EAAaG,KACjBzc,EAAMM,GAAOoc,GAAiB1U,EAASuU,EAAiBjc,OAAK+G,EAAWzJ,GAAU,WAI/EoC,EAAMM,IAMzB,GAAIoJ,IAAU6S,EACV,IAAK,MAAMjc,KAAOoJ,EACT6I,IACCpK,EAAAA,EAAAA,IAAOoK,EAAUjS,YAEZoJ,EAAMpJ,GACbkc,GAAkB,QApE9B,GAAgB,EAAZ5Q,EAA2B,CAG3B,MAAM+Q,EAAgB/e,EAASa,MAAMuN,aACrC,IAAK,IAAItM,EAAI,EAAGA,EAAIid,EAAc9e,OAAQ6B,IAAK,CAC3C,IAAIY,EAAMqc,EAAcjd,GAExB,MAAMc,EAAQ+R,EAASjS,GACvB,GAAI0H,EAGA,IAAIG,EAAAA,EAAAA,IAAOuB,EAAOpJ,GACVE,IAAUkJ,EAAMpJ,KAChBoJ,EAAMpJ,GAAOE,EACbgc,GAAkB,OAGrB,CACD,MAAMI,GAAelW,EAAAA,EAAAA,IAASpG,GAC9BN,EAAM4c,GAAgBF,GAAiB1U,EAASuU,EAAiBK,EAAcpc,EAAO5C,GAAU,QAIhG4C,IAAUkJ,EAAMpJ,KAChBoJ,EAAMpJ,GAAOE,EACbgc,GAAkB,IAiDlCA,IACAK,EAAAA,EAAAA,IAAQjf,EAAU,MAAiB,UAM3C,SAASue,GAAave,EAAU2U,EAAUvS,EAAO0J,GAC7C,MAAO1B,EAAS8U,GAAgBlf,EAAS4L,aACzC,IACIuT,EADAP,GAAkB,EAEtB,GAAIjK,EACA,IAAK,IAAIjS,KAAOiS,EAAU,CAEtB,IAAIyK,EAAAA,EAAAA,IAAe1c,GACf,SAEJ,MAAME,EAAQ+R,EAASjS,GAGvB,IAAI2c,EACAjV,IAAWG,EAAAA,EAAAA,IAAOH,EAAUiV,GAAWvW,EAAAA,EAAAA,IAASpG,IAC3Cwc,GAAiBA,EAAa9Y,SAASiZ,IAIvCF,IAAkBA,EAAgB,KAAKE,GAAYzc,EAHpDR,EAAMid,GAAYzc,EAMhBuH,EAAenK,EAASiO,aAAcvL,IACtCA,KAAOoJ,GAAUlJ,IAAUkJ,EAAMpJ,KACnCoJ,EAAMpJ,GAAOE,EACbgc,GAAkB,GAKlC,GAAIM,EAAc,CACd,MAAMP,GAAkBzb,EAAAA,EAAAA,IAAMd,GACxBkd,EAAaH,GAAiBhX,EAAAA,GACpC,IAAK,IAAIrG,EAAI,EAAGA,EAAIod,EAAajf,OAAQ6B,IAAK,CAC1C,MAAMY,EAAMwc,EAAapd,GACzBM,EAAMM,GAAOoc,GAAiB1U,EAASuU,EAAiBjc,EAAK4c,EAAW5c,GAAM1C,IAAWuK,EAAAA,EAAAA,IAAO+U,EAAY5c,KAGpH,OAAOkc,EAEX,SAASE,GAAiB1U,EAAShI,EAAOM,EAAKE,EAAO5C,EAAUuf,GAC5D,MAAM1D,EAAMzR,EAAQ1H,GACpB,GAAW,MAAPmZ,EAAa,CACb,MAAM2D,GAAajV,EAAAA,EAAAA,IAAOsR,EAAK,WAE/B,GAAI2D,QAAwB/V,IAAV7G,EAAqB,CACnC,MAAMyM,EAAewM,EAAIpH,QACzB,GAAIoH,EAAI9a,OAASmS,WAAY/P,EAAAA,EAAAA,IAAWkM,GAAe,CACnD,MAAM,cAAEiP,GAAkBte,EACtB0C,KAAO4b,EACP1b,EAAQ0b,EAAc5b,IAGtBqP,GAAmB/R,GACnB4C,EAAQ0b,EAAc5b,GAAO2M,EAAa3C,KAAK,KAAMtK,GACrD4P,WAIJpP,EAAQyM,EAIZwM,EAAI,KACA0D,IAAaC,EACb5c,GAAQ,GAEHiZ,EAAI,IACE,KAAVjZ,GAAgBA,KAAUmG,EAAAA,EAAAA,IAAUrG,KACrCE,GAAQ,IAIpB,OAAOA,EAEX,SAAS6c,GAAsBtW,EAAM/I,EAAYgJ,GAAU,GACvD,MAAMC,EAAQjJ,EAAWsf,WACnBnW,EAASF,EAAMG,IAAIL,GACzB,GAAII,EACA,OAAOA,EAEX,MAAM1G,EAAMsG,EAAK/G,MACXuH,EAAa,GACbuV,EAAe,GAErB,IAAItV,GAAa,EACjB,KAA4BzG,EAAAA,EAAAA,IAAWgG,GAAO,CAC1C,MAAMwW,EAAe9c,IACjB+G,GAAa,EACb,MAAOxH,EAAOG,GAAQkd,GAAsB5c,EAAKzC,GAAY,IAC7D2J,EAAAA,EAAAA,IAAOJ,EAAYvH,GACfG,GACA2c,EAAaje,QAAQsB,KAExB6G,GAAWhJ,EAAW4J,OAAO/J,QAC9BG,EAAW4J,OAAOpI,QAAQ+d,GAE1BxW,EAAKc,SACL0V,EAAYxW,EAAKc,SAEjBd,EAAKa,QACLb,EAAKa,OAAOpI,QAAQ+d,GAG5B,IAAK9c,IAAQ+G,EAET,OADAP,EAAMa,IAAIf,EAAMyW,EAAAA,IACTA,EAAAA,GAEX,IAAI5Y,EAAAA,EAAAA,IAAQnE,GACR,IAAK,IAAIf,EAAI,EAAGA,EAAIe,EAAI5C,OAAQ6B,IAAK,CAC5B6K,EAGL,MAAMkT,GAAgB/W,EAAAA,EAAAA,IAASjG,EAAIf,IAC/Bge,GAAiBD,KACjBlW,EAAWkW,GAAiB1X,EAAAA,SAInC,GAAItF,EAAK,CACL8J,EAGL,IAAK,MAAMjK,KAAOG,EAAK,CACnB,MAAMgd,GAAgB/W,EAAAA,EAAAA,IAASpG,GAC/B,GAAIod,GAAiBD,GAAgB,CACjC,MAAMhE,EAAMhZ,EAAIH,GACVqd,EAAQpW,EAAWkW,IACrB7Y,EAAAA,EAAAA,IAAQ6U,KAAQ1Y,EAAAA,EAAAA,IAAW0Y,GAAO,CAAE9a,KAAM8a,GAAQA,EACtD,GAAIkE,EAAM,CACN,MAAMC,EAAeC,GAAazM,QAASuM,EAAKhf,MAC1Cmf,EAAcD,GAAa3M,OAAQyM,EAAKhf,MAC9Cgf,EAAK,GAAsBC,GAAgB,EAC3CD,EAAK,GACDG,EAAc,GAAKF,EAAeE,GAElCF,GAAgB,IAAKzV,EAAAA,EAAAA,IAAOwV,EAAM,aAClCb,EAAaje,KAAK4e,MAMtC,MAAMvd,EAAM,CAACqH,EAAYuV,GAEzB,OADA7V,EAAMa,IAAIf,EAAM7G,GACTA,EAEX,SAASwd,GAAiBpd,GACtB,MAAe,MAAXA,EAAI,GAUZ,SAASyd,GAAQC,GACb,MAAMC,EAAQD,GAAQA,EAAKE,WAAWD,MAAM,sBAC5C,OAAOA,EAAQA,EAAM,GAAc,OAATD,EAAgB,OAAS,GAEvD,SAASG,GAAW7Y,EAAGC,GACnB,OAAOwY,GAAQzY,KAAOyY,GAAQxY,GAElC,SAASsY,GAAalf,EAAMyf,GACxB,OAAIxZ,EAAAA,EAAAA,IAAQwZ,GACDA,EAAcC,WAAUC,GAAKH,GAAWG,EAAG3f,MAE7CoC,EAAAA,EAAAA,IAAWqd,IACTD,GAAWC,EAAezf,GAAQ,GAErC,EAqIZ,MAAM4f,GAAiBje,GAAmB,MAAXA,EAAI,IAAsB,YAARA,EAC3Cke,GAAsBhe,IAAUoE,EAAAA,EAAAA,IAAQpE,GACxCA,EAAMhC,IAAI6L,IACV,CAACA,GAAe7J,IAChBie,GAAgB,CAACne,EAAKoe,EAAS7V,KACjC,MAAMtB,EAAaqB,GAAQ,IAAIlL,IAMpB8gB,GAAmBE,KAAWhhB,KACtCmL,GAEH,OADAtB,EAAW6B,IAAK,EACT7B,GAELoX,GAAuB,CAACC,EAAUnV,EAAO7L,KAC3C,MAAMiL,EAAM+V,EAASC,KACrB,IAAK,MAAMve,KAAOse,EAAU,CACxB,GAAIL,GAAcje,GACd,SACJ,MAAME,EAAQoe,EAASte,GACvB,IAAIS,EAAAA,EAAAA,IAAWP,GACXiJ,EAAMnJ,GAAOme,GAAcne,EAAKE,EAAOqI,QAEtC,GAAa,MAATrI,EAAe,CACf+J,EAKL,MAAMhD,EAAaiX,GAAmBhe,GACtCiJ,EAAMnJ,GAAO,IAAMiH,KAIzBuX,GAAsB,CAAClhB,EAAU4N,KAOnC,MAAMjE,EAAaiX,GAAmBhT,GACtC5N,EAAS6L,MAAM4I,QAAU,IAAM9K,GAE7BwX,GAAY,CAACnhB,EAAU4N,KACzB,GAA+B,GAA3B5N,EAASa,MAAM0L,UAAqC,CACpD,MAAMxL,EAAO6M,EAASwT,EAClBrgB,GAGAf,EAAS6L,OAAQ3I,EAAAA,EAAAA,IAAM0K,IAEvBwQ,EAAAA,EAAAA,IAAIxQ,EAAU,IAAK7M,IAGnBggB,GAAqBnT,EAAW5N,EAAS6L,MAAQ,SAIrD7L,EAAS6L,MAAQ,GACb+B,GACAsT,GAAoBlhB,EAAU4N,IAGtCwQ,EAAAA,EAAAA,IAAIpe,EAAS6L,MAAOwS,GAAmB,IAErCgD,GAAc,CAACrhB,EAAU4N,EAAUF,KACrC,MAAM,MAAE7M,EAAF,MAASgL,GAAU7L,EACzB,IAAIshB,GAAoB,EACpBC,EAA2BpZ,EAAAA,GAC/B,GAAsB,GAAlBtH,EAAM0L,UAAqC,CAC3C,MAAMxL,EAAO6M,EAASwT,EAClBrgB,EAOS2M,GAAsB,IAAT3M,EAGlBugB,GAAoB,IAKpBvX,EAAAA,EAAAA,IAAO8B,EAAO+B,GAKTF,GAAsB,IAAT3M,UACP8K,EAAMuV,IAKrBE,GAAqB1T,EAASM,QAC9B6S,GAAqBnT,EAAU/B,IAEnC0V,EAA2B3T,OAEtBA,IAELsT,GAAoBlhB,EAAU4N,GAC9B2T,EAA2B,CAAE9M,QAAS,IAG1C,GAAI6M,EACA,IAAK,MAAM5e,KAAOmJ,EACT8U,GAAcje,IAAUA,KAAO6e,UACzB1V,EAAMnJ,IA0B7B,SAAS8e,GAAe3gB,EAAOya,GAC3B,MAAMmG,EAAmBhX,EACzB,GAAyB,OAArBgX,EAEA,OAAO5gB,EAEX,MAAMb,EAAWyhB,EAAiB9gB,MAC5B+gB,EAAW7gB,EAAMuM,OAASvM,EAAMuM,KAAO,IAC7C,IAAK,IAAItL,EAAI,EAAGA,EAAIwZ,EAAWrb,OAAQ6B,IAAK,CACxC,IAAK6f,EAAK/e,EAAOgf,EAAKC,EAAY1Z,EAAAA,IAAamT,EAAWxZ,IACtDqB,EAAAA,EAAAA,IAAWwe,KACXA,EAAM,CACFpH,QAASoH,EACTlH,QAASkH,IAGbA,EAAI5R,MACJW,GAAS9N,GAEb8e,EAASzgB,KAAK,CACV0gB,IAAAA,EACA3hB,SAAAA,EACA4C,MAAAA,EACAoO,cAAU,EACV4Q,IAAAA,EACAC,UAAAA,IAGR,OAAOhhB,EAEX,SAASihB,GAAoBjhB,EAAO2M,EAAWxN,EAAUoD,GACrD,MAAMse,EAAW7gB,EAAMuM,KACjB2U,EAAcvU,GAAaA,EAAUJ,KAC3C,IAAK,IAAItL,EAAI,EAAGA,EAAI4f,EAASzhB,OAAQ6B,IAAK,CACtC,MAAMkgB,EAAUN,EAAS5f,GACrBigB,IACAC,EAAQhR,SAAW+Q,EAAYjgB,GAAGc,OAEtC,IAAIuT,EAAO6L,EAAQL,IAAIve,GACnB+S,KAGApW,EAAAA,EAAAA,MACAyD,EAA2B2S,EAAMnW,EAAU,EAAwB,CAC/Da,EAAM0N,GACNyT,EACAnhB,EACA2M,KAEJpM,EAAAA,EAAAA,QAKZ,SAAS6gB,KACL,MAAO,CACHC,IAAK,KACL7hB,OAAQ,CACJ8hB,YAAaC,EAAAA,GACbC,aAAa,EACbC,iBAAkB,GAClBnF,sBAAuB,GACvB/Y,kBAAcqF,EACdnJ,iBAAamJ,EACb8Y,gBAAiB,IAErBvY,OAAQ,GACRqR,WAAY,GACZC,WAAY,GACZrM,SAAUzM,OAAO2M,OAAO,MACxB+N,aAAc,IAAIsF,QAClB9C,WAAY,IAAI8C,QAChBlZ,WAAY,IAAIkZ,SAGxB,IAAIC,GAAM,EACV,SAASC,GAAa1W,EAAQ2W,GAC1B,OAAO,SAAmBC,EAAeC,EAAY,MAChC,MAAbA,IAAsBzQ,EAAAA,EAAAA,IAASyQ,KAE/BA,EAAY,MAEhB,MAAMC,EAAUb,KACVc,EAAmB,IAAIzb,IAC7B,IAAIiK,GAAY,EAChB,MAAM2Q,EAAOY,EAAQZ,IAAM,CACvBc,KAAMP,KACNQ,WAAYL,EACZM,OAAQL,EACRM,WAAY,KACZC,SAAUN,EACVO,UAAW,KACXC,QAAAA,GACIjjB,aACA,OAAOyiB,EAAQziB,QAEfA,WAAO8Q,GACFxE,GAIT4W,IAAIC,KAAWpZ,GAgBX,OAfI2Y,EAAiB1Q,IAAImR,KAGhBA,IAAUrgB,EAAAA,EAAAA,IAAWqgB,EAAOC,UACjCV,EAAiBzQ,IAAIkR,GACrBA,EAAOC,QAAQvB,KAAQ9X,KAElBjH,EAAAA,EAAAA,IAAWqgB,KAChBT,EAAiBzQ,IAAIkR,GACrBA,EAAOtB,KAAQ9X,KAMZ8X,GAEXwB,MAAMA,GAaF,OAXSZ,EAAQ9Y,OAAO5D,SAASsd,IACzBZ,EAAQ9Y,OAAO/I,KAAKyiB,GAUrBxB,GAEXhiB,UAAUkD,EAAMlD,GAIZ,OAAKA,GAML4iB,EAAQzH,WAAWjY,GAAQlD,EACpBgiB,GANIY,EAAQzH,WAAWjY,IAQlCugB,UAAUvgB,EAAMugB,GAIZ,OAAKA,GAMLb,EAAQxH,WAAWlY,GAAQugB,EACpBzB,GANIY,EAAQxH,WAAWlY,IAQlCwgB,MAAMC,EAAeC,EAAWC,GAC5B,IAAKxS,EAAW,CACZ,MAAM1Q,EAAQiM,GAAY8V,EAAeC,GAuBzC,OApBAhiB,EAAMT,WAAa0iB,EAOfgB,GAAanB,EACbA,EAAQ9hB,EAAOgjB,GAGf7X,EAAOnL,EAAOgjB,EAAeE,GAEjCxS,GAAY,EACZ2Q,EAAIiB,WAAaU,EACjBA,EAAcG,YAAc9B,EAKrB+B,GAAepjB,EAAMX,YAAcW,EAAMX,UAAUS,QASlEujB,UACQ3S,IACAvF,EAAO,KAAMkW,EAAIiB,mBAKVjB,EAAIiB,WAAWa,cAM9BjV,QAAQrM,EAAKE,GAQT,OADAkgB,EAAQ7T,SAASvM,GAAOE,EACjBsf,IAGf,OAAOA,GAOf,SAASiC,GAAOC,EAAQC,EAAWC,EAAgBzjB,EAAO0jB,GAAY,GAClE,IAAIvd,EAAAA,EAAAA,IAAQod,GAER,YADAA,EAAOxiB,SAAQ,CAACkb,EAAGhb,IAAMqiB,GAAOrH,EAAGuH,KAAcrd,EAAAA,EAAAA,IAAQqd,GAAaA,EAAUviB,GAAKuiB,GAAYC,EAAgBzjB,EAAO0jB,KAG5H,GAAI/M,GAAe3W,KAAW0jB,EAG1B,OAEJ,MAAMC,EAA6B,EAAlB3jB,EAAM0L,UACjB0X,GAAepjB,EAAMX,YAAcW,EAAMX,UAAUS,MACnDE,EAAM0N,GACN3L,EAAQ2hB,EAAY,KAAOC,GACzB1iB,EAAG2iB,EAAO3H,EAAG4H,GAAQN,EAM7B,MAAMO,EAASN,GAAaA,EAAUvH,EAChC8H,EAAOH,EAAMG,OAASzc,EAAAA,GAAasc,EAAMG,KAAO,GAAMH,EAAMG,KAC5DzY,EAAasY,EAAMtY,WAazB,GAXc,MAAVwY,GAAkBA,IAAWD,KACzB5hB,EAAAA,EAAAA,IAAS6hB,IACTC,EAAKD,GAAU,MACXpa,EAAAA,EAAAA,IAAO4B,EAAYwY,KACnBxY,EAAWwY,GAAU,QAGpB1hB,EAAAA,EAAAA,IAAM0hB,KACXA,EAAO/hB,MAAQ,QAGnBO,EAAAA,EAAAA,IAAWuhB,GACXjkB,EAAsBikB,EAAKD,EAAO,GAAuB,CAAC7hB,EAAOgiB,QAEhE,CACD,MAAMC,GAAY/hB,EAAAA,EAAAA,IAAS4hB,GACrBI,GAAS7hB,EAAAA,EAAAA,IAAMyhB,GACrB,GAAIG,GAAaC,EAAQ,CACrB,MAAMC,EAAQ,KACV,GAAIX,EAAOY,EAAG,CACV,MAAMC,EAAWJ,EAAYD,EAAKF,GAAOA,EAAI9hB,MACzC2hB,GACAvd,EAAAA,EAAAA,IAAQie,KAAatT,EAAAA,EAAAA,IAAOsT,EAAUT,IAGjCxd,EAAAA,EAAAA,IAAQie,GAUHA,EAAS7e,SAASoe,IACxBS,EAAShkB,KAAKujB,GAVVK,EACAD,EAAKF,GAAO,CAACF,IAGbE,EAAI9hB,MAAQ,CAAC4hB,GACTJ,EAAOc,IACPN,EAAKR,EAAOc,GAAKR,EAAI9hB,aAQhCiiB,GACLD,EAAKF,GAAO9hB,GACR2H,EAAAA,EAAAA,IAAO4B,EAAYuY,KACnBvY,EAAWuY,GAAO9hB,KAGjBK,EAAAA,EAAAA,IAAMyhB,KACXA,EAAI9hB,MAAQA,EACRwhB,EAAOc,IACPN,EAAKR,EAAOc,GAAKtiB,KAMzBA,GACAmiB,EAAMnf,IAAM,EACZ0L,GAAsByT,EAAOT,IAG7BS,SAGEpY,GA0XlB,SAASwY,MAoBT,MAAM7T,GAAwB3C,GAiB9B,SAASyW,GAAehb,GACpB,OAAOib,GAAmBjb,GAS9B,SAASib,GAAmBjb,EAASkb,GAG7BH,KAEJ,MAAMnN,GAASuN,EAAAA,EAAAA,MACfvN,EAAOwN,SAAU,EAIjB,MAAQC,OAAQC,EAAY/T,OAAQgU,EAAYC,UAAWC,EAAeC,cAAeC,EAAmBC,WAAYC,EAAgBC,cAAeC,EAAmBC,QAASC,EAAaC,eAAgBC,EAAoBC,WAAYC,EAAgBC,YAAaC,EAAiBC,WAAYC,EAAiBhf,EAAAA,GAAMif,UAAWC,EAAeC,oBAAqBC,GAA4B7c,EAGtY8c,EAAQ,CAACC,EAAIC,EAAIC,EAAWC,EAAS,KAAMC,EAAkB,KAAMjD,EAAiB,KAAMP,GAAQ,EAAOyD,EAAe,KAAM9Z,IAAiF0Z,EAAGK,mBACpN,GAAIN,IAAOC,EACP,OAGAD,IAAO5R,GAAgB4R,EAAIC,KAC3BE,EAASI,EAAgBP,GACzBjD,EAAQiD,EAAII,EAAiBjD,GAAgB,GAC7C6C,EAAK,OAEa,IAAlBC,EAAGpZ,YACHN,GAAY,EACZ0Z,EAAGK,gBAAkB,MAEzB,MAAM,KAAE1mB,EAAF,IAAQ2jB,EAAR,UAAanY,GAAc6a,EACjC,OAAQrmB,GACJ,KAAK4mB,GACDC,EAAYT,EAAIC,EAAIC,EAAWC,GAC/B,MACJ,KAAKva,GACD8a,EAAmBV,EAAIC,EAAIC,EAAWC,GACtC,MACJ,KAAKQ,GACS,MAANX,GACAY,EAAgBX,EAAIC,EAAWC,EAAQvD,GAK3C,MACJ,KAAKzM,GACD0Q,EAAgBb,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GACjG,MACJ,QACoB,EAAZnB,EACA0b,EAAed,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAE/E,EAAZnB,EACL2b,EAAiBf,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,IAEjF,GAAZnB,GAGY,IAAZA,IAFLxL,EAAK4L,QAAQwa,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,EAAWya,IAU1G,MAAPzD,GAAe6C,GACfpD,GAAOO,EAAKyC,GAAMA,EAAGzC,IAAKJ,EAAgB8C,GAAMD,GAAKC,IAGvDQ,EAAc,CAACT,EAAIC,EAAIC,EAAWC,KACpC,GAAU,MAANH,EACAzB,EAAY0B,EAAG7Y,GAAK0X,EAAemB,EAAGxZ,UAAYyZ,EAAWC,OAE5D,CACD,MAAM/Y,EAAM6Y,EAAG7Y,GAAK4Y,EAAG5Y,GACnB6Y,EAAGxZ,WAAauZ,EAAGvZ,UACnByY,EAAY9X,EAAI6Y,EAAGxZ,YAIzBia,EAAqB,CAACV,EAAIC,EAAIC,EAAWC,KACjC,MAANH,EACAzB,EAAY0B,EAAG7Y,GAAK4X,EAAkBiB,EAAGxZ,UAAY,IAAMyZ,EAAWC,GAItEF,EAAG7Y,GAAK4Y,EAAG5Y,IAGbwZ,EAAkB,CAACX,EAAIC,EAAWC,EAAQvD,MAC3CqD,EAAG7Y,GAAI6Y,EAAGE,QAAUL,EAAwBG,EAAGxZ,SAAUyZ,EAAWC,EAAQvD,EAAOqD,EAAG7Y,GAAI6Y,EAAGE,SAkB5Fc,EAAiB,EAAG7Z,GAAAA,EAAI+Y,OAAAA,GAAUD,EAAWX,KAC/C,IAAI2B,EACJ,MAAO9Z,GAAMA,IAAO+Y,EAChBe,EAAO1B,EAAgBpY,GACvBmX,EAAWnX,EAAI8Y,EAAWX,GAC1BnY,EAAK8Z,EAET3C,EAAW4B,EAAQD,EAAWX,IAE5B4B,EAAmB,EAAG/Z,GAAAA,EAAI+Y,OAAAA,MAC5B,IAAIe,EACJ,MAAO9Z,GAAMA,IAAO+Y,EAChBe,EAAO1B,EAAgBpY,GACvBoX,EAAWpX,GACXA,EAAK8Z,EAET1C,EAAW2B,IAETW,EAAiB,CAACd,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KACrGqW,EAAQA,GAAqB,QAAZqD,EAAGrmB,KACV,MAANomB,EACAoB,EAAanB,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAG1F8a,EAAarB,EAAIC,EAAIG,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,IAG7E6a,EAAe,CAAC1nB,EAAOwmB,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KAClG,IAAIa,EACAka,EACJ,MAAM,KAAE1nB,EAAF,MAAQqB,EAAR,UAAemK,EAAf,WAA0Be,EAA1B,UAAsCU,EAAtC,KAAiDZ,GAASvM,EAChE,GACIA,EAAM0N,SACY9E,IAAlBsd,IACe,IAAf/Y,EAKAO,EAAK1N,EAAM0N,GAAKwY,EAAclmB,EAAM0N,QAEnC,CAcD,GAbAA,EAAK1N,EAAM0N,GAAKwX,EAAkBllB,EAAME,KAAMgjB,EAAO3hB,GAASA,EAAMsmB,GAAItmB,GAGxD,EAAZmK,EACAga,EAAmBhY,EAAI1N,EAAM+M,UAEZ,GAAZrB,GACLoc,EAAc9nB,EAAM+M,SAAUW,EAAI,KAAMgZ,EAAiBjD,EAAgBP,GAAkB,kBAAThjB,EAA0BymB,EAAc9Z,GAE1HN,GACA0U,GAAoBjhB,EAAO,KAAM0mB,EAAiB,WAGlDnlB,EAAO,CACP,IAAK,MAAMM,KAAON,EACF,UAARM,IAAoB0c,EAAAA,EAAAA,IAAe1c,IACnCmjB,EAActX,EAAI7L,EAAK,KAAMN,EAAMM,GAAMqhB,EAAOljB,EAAM+M,SAAU2Z,EAAiBjD,EAAgBsE,GAYrG,UAAWxmB,GACXyjB,EAActX,EAAI,QAAS,KAAMnM,EAAMQ,QAEtC6lB,EAAYrmB,EAAMymB,qBACnBC,GAAgBL,EAAWlB,EAAiB1mB,GAIpD+lB,EAAWrY,EAAI1N,EAAOA,EAAMkoB,QAASvB,EAAcD,GAYnDna,GACA0U,GAAoBjhB,EAAO,KAAM0mB,EAAiB,eAItD,MAAMyB,IAA4B1E,GAAmBA,IAAmBA,EAAezV,gBACnFvB,IACCA,EAAWmG,UACZuV,GACA1b,EAAW+I,YAAY9H,GAE3BmX,EAAWnX,EAAI8Y,EAAWC,KACrBmB,EAAYrmB,GAASA,EAAM6mB,iBAC5BD,GACA5b,IACAkE,IAAsB,KAClBmX,GAAaK,GAAgBL,EAAWlB,EAAiB1mB,GACzDmoB,GAA2B1b,EAAWiJ,MAAMhI,GAC5CnB,GAAQ0U,GAAoBjhB,EAAO,KAAM0mB,EAAiB,aAC3DjD,IAGLsC,EAAa,CAACrY,EAAI1N,EAAOkoB,EAASvB,EAAcD,KAIlD,GAHIwB,GACAlC,EAAetY,EAAIwa,GAEnBvB,EACA,IAAK,IAAI1lB,EAAI,EAAGA,EAAI0lB,EAAavnB,OAAQ6B,IACrC+kB,EAAetY,EAAIiZ,EAAa1lB,IAGxC,GAAIylB,EAAiB,CACjB,IAAI/Y,EAAU+Y,EAAgB/Y,QAO9B,GAAI3N,IAAU2N,EAAS,CACnB,MAAM0a,EAAc3B,EAAgB1mB,MACpC+lB,EAAWrY,EAAI2a,EAAaA,EAAYH,QAASG,EAAY1B,aAAcD,EAAgB7lB,WAIjGinB,EAAgB,CAAC/a,EAAUyZ,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,EAAW7H,EAAQ,KACzH,IAAK,IAAI/D,EAAI+D,EAAO/D,EAAI8L,EAAS3N,OAAQ6B,IAAK,CAC1C,MAAM8S,EAAShH,EAAS9L,GAAK4L,EACvByb,GAAevb,EAAS9L,IACxB2K,GAAemB,EAAS9L,IAC9BolB,EAAM,KAAMtS,EAAOyS,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KAG9F8a,EAAe,CAACrB,EAAIC,EAAIG,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KAChF,MAAMa,EAAM6Y,EAAG7Y,GAAK4Y,EAAG5Y,GACvB,IAAI,UAAEP,EAAF,gBAAayZ,EAAb,KAA8Bra,GAASga,EAG3CpZ,GAA4B,GAAfmZ,EAAGnZ,UAChB,MAAMob,EAAWjC,EAAG/kB,OAAS+F,EAAAA,GACvBkhB,EAAWjC,EAAGhlB,OAAS+F,EAAAA,GAC7B,IAAIsgB,EAEJlB,GAAmB+B,GAAc/B,GAAiB,IAC7CkB,EAAYY,EAASE,sBACtBT,GAAgBL,EAAWlB,EAAiBH,EAAID,GAEhD/Z,GACA0U,GAAoBsF,EAAID,EAAII,EAAiB,gBAEjDA,GAAmB+B,GAAc/B,GAAiB,GAOlD,MAAMiC,EAAiBzF,GAAqB,kBAAZqD,EAAGrmB,KAWnC,GAVI0mB,EACAgC,EAAmBtC,EAAGM,gBAAiBA,EAAiBlZ,EAAIgZ,EAAiBjD,EAAgBkF,EAAgBhC,GAKvG9Z,GAENgc,EAAcvC,EAAIC,EAAI7Y,EAAI,KAAMgZ,EAAiBjD,EAAgBkF,EAAgBhC,GAAc,GAE/FxZ,EAAY,EAAG,CAKf,GAAgB,GAAZA,EAEA2b,EAAWpb,EAAI6Y,EAAIgC,EAAUC,EAAU9B,EAAiBjD,EAAgBP,QAqBxE,GAhBgB,EAAZ/V,GACIob,EAASQ,QAAUP,EAASO,OAC5B/D,EAActX,EAAI,QAAS,KAAM8a,EAASO,MAAO7F,GAKzC,EAAZ/V,GACA6X,EAActX,EAAI,QAAS6a,EAASS,MAAOR,EAASQ,MAAO9F,GAQ/C,EAAZ/V,EAA2B,CAE3B,MAAM+Q,EAAgBqI,EAAGhZ,aACzB,IAAK,IAAItM,EAAI,EAAGA,EAAIid,EAAc9e,OAAQ6B,IAAK,CAC3C,MAAMY,EAAMqc,EAAcjd,GACpB8I,EAAOwe,EAAS1mB,GAChB2lB,EAAOgB,EAAS3mB,GAElB2lB,IAASzd,GAAgB,UAARlI,GACjBmjB,EAActX,EAAI7L,EAAKkI,EAAMyd,EAAMtE,EAAOoD,EAAGvZ,SAAU2Z,EAAiBjD,EAAgBsE,IAOxF,EAAZ5a,GACImZ,EAAGvZ,WAAawZ,EAAGxZ,UACnB2Y,EAAmBhY,EAAI6Y,EAAGxZ,eAI5BF,GAAgC,MAAnB+Z,GAEnBkC,EAAWpb,EAAI6Y,EAAIgC,EAAUC,EAAU9B,EAAiBjD,EAAgBP,KAEvE0E,EAAYY,EAASS,iBAAmB1c,IACzCkE,IAAsB,KAClBmX,GAAaK,GAAgBL,EAAWlB,EAAiBH,EAAID,GAC7D/Z,GAAQ0U,GAAoBsF,EAAID,EAAII,EAAiB,aACtDjD,IAILmF,EAAqB,CAACM,EAAaC,EAAaC,EAAmB1C,EAAiBjD,EAAgBP,EAAOyD,KAC7G,IAAK,IAAI1lB,EAAI,EAAGA,EAAIkoB,EAAY/pB,OAAQ6B,IAAK,CACzC,MAAMooB,EAAWH,EAAYjoB,GACvBqoB,EAAWH,EAAYloB,GAEvBulB,EAGN6C,EAAS3b,KAGJ2b,EAASnpB,OAASuW,KAGd/B,GAAgB2U,EAAUC,IAE3B,GAAAD,EAAS3d,WACXka,EAAeyD,EAAS3b,IAGtB0b,EACR/C,EAAMgD,EAAUC,EAAU9C,EAAW,KAAME,EAAiBjD,EAAgBP,EAAOyD,GAAc,KAGnGmC,EAAa,CAACpb,EAAI1N,EAAOuoB,EAAUC,EAAU9B,EAAiBjD,EAAgBP,KAChF,GAAIqF,IAAaC,EAAU,CACvB,IAAK,MAAM3mB,KAAO2mB,EAAU,CAExB,IAAIjK,EAAAA,EAAAA,IAAe1c,GACf,SACJ,MAAM2lB,EAAOgB,EAAS3mB,GAChBkI,EAAOwe,EAAS1mB,GAElB2lB,IAASzd,GAAgB,UAARlI,GACjBmjB,EAActX,EAAI7L,EAAKkI,EAAMyd,EAAMtE,EAAOljB,EAAM+M,SAAU2Z,EAAiBjD,EAAgBsE,GAGnG,GAAIQ,IAAajhB,EAAAA,GACb,IAAK,MAAMzF,KAAO0mB,GACThK,EAAAA,EAAAA,IAAe1c,IAAUA,KAAO2mB,GACjCxD,EAActX,EAAI7L,EAAK0mB,EAAS1mB,GAAM,KAAMqhB,EAAOljB,EAAM+M,SAAU2Z,EAAiBjD,EAAgBsE,GAI5G,UAAWS,GACXxD,EAActX,EAAI,QAAS6a,EAASxmB,MAAOymB,EAASzmB,SAI1DolB,EAAkB,CAACb,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KACtG,MAAM0c,EAAuBhD,EAAG7Y,GAAK4Y,EAAKA,EAAG5Y,GAAK0X,EAAe,IAC3DoE,EAAqBjD,EAAGE,OAASH,EAAKA,EAAGG,OAASrB,EAAe,IACvE,IAAI,UAAEjY,EAAF,gBAAayZ,EAAiBD,aAAc8C,GAAyBlD,EAQrEkD,IACA9C,EAAeA,EACTA,EAAana,OAAOid,GACpBA,GAEA,MAANnD,GACAzB,EAAW0E,EAAqB/C,EAAWC,GAC3C5B,EAAW2E,EAAmBhD,EAAWC,GAIzCqB,EAAcvB,EAAGxZ,SAAUyZ,EAAWgD,EAAmB9C,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,IAG3GM,EAAY,GACA,GAAZA,GACAyZ,GAGAN,EAAGM,iBAGHgC,EAAmBtC,EAAGM,gBAAiBA,EAAiBJ,EAAWE,EAAiBjD,EAAgBP,EAAOyD,IASjG,MAAVJ,EAAG1kB,KACE6kB,GAAmBH,IAAOG,EAAgB/Y,UAC3C+b,GAAuBpD,EAAIC,GAAI,IAQnCsC,EAAcvC,EAAIC,EAAIC,EAAWgD,EAAmB9C,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,IAIhHwa,EAAmB,CAACf,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KACvG0Z,EAAGI,aAAeA,EACR,MAANL,EACmB,IAAfC,EAAG7a,UACHgb,EAAgBtc,IAAIuf,SAASpD,EAAIC,EAAWC,EAAQvD,EAAOrW,GAG3D+c,EAAerD,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOrW,GAIlFgd,EAAgBvD,EAAIC,EAAI1Z,IAG1B+c,EAAiB,CAACE,EAActD,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOrW,KAC7F,MAAM1N,EAAY2qB,EAAazqB,UAAY0qB,GAAwBD,EAAcpD,EAAiBjD,GAwBlG,GAfItN,GAAY2T,KACZ3qB,EAASiL,IAAI4f,SAAW1C,IAOxB2C,GAAe9qB,GAOfA,EAAS+qB,UAIT,GAHAzG,GAAkBA,EAAe0G,YAAYhrB,EAAUirB,IAGlDN,EAAapc,GAAI,CAClB,MAAM2c,EAAelrB,EAASwO,QAAU1B,GAAYC,IACpD8a,EAAmB,KAAMqD,EAAa7D,EAAWC,SAIzD2D,EAAkBjrB,EAAU2qB,EAActD,EAAWC,EAAQhD,EAAgBP,EAAOrW,IAMlFgd,EAAkB,CAACvD,EAAIC,EAAI1Z,KAC7B,MAAM1N,EAAYonB,EAAGlnB,UAAYinB,EAAGjnB,UACpC,GAAIqN,EAAsB4Z,EAAIC,EAAI1Z,GAAY,CAC1C,GAAI1N,EAAS+qB,WACR/qB,EAASmrB,cAUV,YAJAC,EAAyBprB,EAAUonB,EAAI1Z,GAQvC1N,EAASqoB,KAAOjB,EAGhB3gB,EAAczG,EAAS0V,QAEvB1V,EAAS0V,cAKb0R,EAAGlnB,UAAYinB,EAAGjnB,UAClBknB,EAAG7Y,GAAK4Y,EAAG5Y,GACXvO,EAASa,MAAQumB,GAGnB6D,EAAoB,CAACjrB,EAAU2qB,EAActD,EAAWC,EAAQhD,EAAgBP,EAAOrW,KACzF,MAAM2d,EAAoB,KACtB,GAAKrrB,EAASuR,UAsFT,CAID,IAEIkX,GAFA,KAAEJ,EAAF,GAAQiD,EAAR,EAAYC,EAAZ,OAAe7pB,EAAf,MAAuBb,GAAUb,EACjCwrB,EAAanD,EAEZ1b,EAIL2c,GAActpB,GAAU,GACpBqoB,GACAA,EAAK9Z,GAAK1N,EAAM0N,GAChB6c,EAAyBprB,EAAUqoB,EAAM3a,IAGzC2a,EAAOxnB,EAGPyqB,IACAG,EAAAA,EAAAA,IAAeH,IAGd7C,EAAYJ,EAAKjmB,OAASimB,EAAKjmB,MAAMmnB,sBACtCT,GAAgBL,EAAW/mB,EAAQ2mB,EAAMxnB,GAE7CyoB,GAActpB,GAAU,GAKxB,MAAM0rB,EAAWjgB,EAAoBzL,GAChC2M,EAGL,MAAMgf,EAAW3rB,EAASwO,QAC1BxO,EAASwO,QAAUkd,EAInBxE,EAAMyE,EAAUD,EAEhBjF,EAAekF,EAASpd,IAExBmZ,EAAgBiE,GAAW3rB,EAAUskB,EAAgBP,GAIrDsE,EAAK9Z,GAAKmd,EAASnd,GACA,OAAfid,GAIAld,GAAgBtO,EAAU0rB,EAASnd,IAGnCgd,GACAja,GAAsBia,EAAGjH,IAGxBmE,EAAYJ,EAAKjmB,OAASimB,EAAKjmB,MAAM0nB,iBACtCxY,IAAsB,IAAMwX,GAAgBL,EAAW/mB,EAAQ2mB,EAAMxnB,IAAQyjB,OApJ5D,CACrB,IAAImE,EACJ,MAAM,GAAEla,EAAF,MAAMnM,GAAUuoB,GAChB,GAAEiB,EAAF,EAAMvO,EAAN,OAAS3b,GAAW1B,EACpB6rB,EAAsBrU,GAAemT,GAY3C,GAXArB,GAActpB,GAAU,GAEpB4rB,IACAH,EAAAA,EAAAA,IAAeG,IAGdC,IACApD,EAAYrmB,GAASA,EAAMymB,qBAC5BC,GAAgBL,EAAW/mB,EAAQipB,GAEvCrB,GAActpB,GAAU,GACpBuO,GAAMud,GAAa,CAEnB,MAAMC,EAAiB,KAInB/rB,EAASwO,QAAU/C,EAAoBzL,GAOvC8rB,GAAYvd,EAAIvO,EAASwO,QAASxO,EAAUskB,EAAgB,OAK5DuH,EACAlB,EAAa5pB,KAAK0W,gBAAgBjS,MAKlC,KAAOxF,EAAS2Q,aAAeob,MAG/BA,QAGH,CACIpf,EAGL,MAAM6B,EAAWxO,EAASwO,QAAU/C,EAAoBzL,GACnD2M,EAMLua,EAAM,KAAM1Y,EAAS6Y,EAAWC,EAAQtnB,EAAUskB,EAAgBP,GAIlE4G,EAAapc,GAAKC,EAAQD,GAO9B,GAJI8O,GACA/L,GAAsB+L,EAAGiH,IAGxBuH,IACApD,EAAYrmB,GAASA,EAAM6mB,gBAAiB,CAC7C,MAAM+C,EAAqBrB,EAC3BrZ,IAAsB,IAAMwX,GAAgBL,EAAW/mB,EAAQsqB,IAAqB1H,GAK3D,IAAzBqG,EAAape,WACbvM,EAAS0H,GAAK4J,GAAsBtR,EAAS0H,EAAG4c,GAEpDtkB,EAASuR,WAAY,EAKrBoZ,EAAetD,EAAYC,EAAS,OA2EtC7X,EAAUzP,EAASyP,OAAS,IAAI+B,EAAAA,GAAe6Z,GAAmB,IAAMnlB,EAASlG,EAAS0V,SAAS1V,EAAS0R,OAE5GgE,EAAU1V,EAAS0V,OAASjG,EAAOyB,IAAIxL,KAAK+J,GAClDiG,EAAO9P,GAAK5F,EAASyiB,IAGrB6G,GAActpB,GAAU,GAWxB0V,KAEE0V,EAA2B,CAACprB,EAAUyN,EAAWC,KACnDD,EAAUvN,UAAYF,EACtB,MAAM2N,EAAY3N,EAASa,MAAMuB,MACjCpC,EAASa,MAAQ4M,EACjBzN,EAASqoB,KAAO,KAChB5J,GAAYze,EAAUyN,EAAUrL,MAAOuL,EAAWD,GAClD2T,GAAYrhB,EAAUyN,EAAUG,SAAUF,IAC1C3N,EAAAA,EAAAA,MAGAoH,OAAiBsC,EAAWzJ,EAAS0V,SACrCtU,EAAAA,EAAAA,OAEEsoB,EAAgB,CAACvC,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAAY,KAChH,MAAMue,EAAK9E,GAAMA,EAAGvZ,SACdse,EAAgB/E,EAAKA,EAAG5a,UAAY,EACpC4f,EAAK/E,EAAGxZ,UACR,UAAEI,EAAF,UAAazB,GAAc6a,EAEjC,GAAIpZ,EAAY,EAAG,CACf,GAAgB,IAAZA,EAIA,YADAoe,EAAmBH,EAAIE,EAAI9E,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAGnG,GAAgB,IAAZM,EAGL,YADAqe,EAAqBJ,EAAIE,EAAI9E,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAK9F,EAAZnB,GAEoB,GAAhB2f,GACAtD,EAAgBqD,EAAI1E,EAAiBjD,GAErC6H,IAAOF,GACP1F,EAAmBc,EAAW8E,IAId,GAAhBD,EAEgB,GAAZ3f,EAEA6f,EAAmBH,EAAIE,EAAI9E,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAIpGkb,EAAgBqD,EAAI1E,EAAiBjD,GAAgB,IAMrC,EAAhB4H,GACA3F,EAAmBc,EAAW,IAGlB,GAAZ9a,GACAoc,EAAcwD,EAAI9E,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KAKrG2e,EAAuB,CAACJ,EAAIE,EAAI9E,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KAC3Gue,EAAKA,GAAMrM,EAAAA,GACXuM,EAAKA,GAAMvM,EAAAA,GACX,MAAM0M,EAAYL,EAAGhsB,OACfssB,EAAYJ,EAAGlsB,OACfusB,EAAeC,KAAKC,IAAIJ,EAAWC,GACzC,IAAIzqB,EACJ,IAAKA,EAAI,EAAGA,EAAI0qB,EAAc1qB,IAAK,CAC/B,MAAM6qB,EAAaR,EAAGrqB,GAAK4L,EACrByb,GAAegD,EAAGrqB,IAClB2K,GAAe0f,EAAGrqB,IACxBolB,EAAM+E,EAAGnqB,GAAI6qB,EAAWtF,EAAW,KAAME,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAE/F4e,EAAYC,EAEZ3D,EAAgBqD,EAAI1E,EAAiBjD,GAAgB,GAAM,EAAOkI,GAIlE7D,EAAcwD,EAAI9E,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,EAAW8e,IAIxGJ,EAAqB,CAACH,EAAIE,EAAI9E,EAAWuF,EAAcrF,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,KAC/G,IAAI5L,EAAI,EACR,MAAM+qB,EAAKV,EAAGlsB,OACd,IAAI6sB,EAAKb,EAAGhsB,OAAS,EACjB8sB,EAAKF,EAAK,EAId,MAAO/qB,GAAKgrB,GAAMhrB,GAAKirB,EAAI,CACvB,MAAM5F,EAAK8E,EAAGnqB,GACRslB,EAAM+E,EAAGrqB,GAAK4L,EACdyb,GAAegD,EAAGrqB,IAClB2K,GAAe0f,EAAGrqB,IACxB,IAAIyT,GAAgB4R,EAAIC,GAIpB,MAHAF,EAAMC,EAAIC,EAAIC,EAAW,KAAME,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAKzF5L,IAKJ,MAAOA,GAAKgrB,GAAMhrB,GAAKirB,EAAI,CACvB,MAAM5F,EAAK8E,EAAGa,GACR1F,EAAM+E,EAAGY,GAAMrf,EACfyb,GAAegD,EAAGY,IAClBtgB,GAAe0f,EAAGY,IACxB,IAAIxX,GAAgB4R,EAAIC,GAIpB,MAHAF,EAAMC,EAAIC,EAAIC,EAAW,KAAME,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAKzFof,IACAC,IASJ,GAAIjrB,EAAIgrB,GACJ,GAAIhrB,GAAKirB,EAAI,CACT,MAAMC,EAAUD,EAAK,EACfzF,EAAS0F,EAAUH,EAAKV,EAAGa,GAASze,GAAKqe,EAC/C,MAAO9qB,GAAKirB,EACR7F,EAAM,KAAOiF,EAAGrqB,GAAK4L,EACfyb,GAAegD,EAAGrqB,IAClB2K,GAAe0f,EAAGrqB,IAAMulB,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GACvG5L,UAWP,GAAIA,EAAIirB,EACT,MAAOjrB,GAAKgrB,EACR5I,EAAQ+H,EAAGnqB,GAAIylB,EAAiBjD,GAAgB,GAChDxiB,QAOH,CACD,MAAMmrB,EAAKnrB,EACLorB,EAAKprB,EAELqrB,EAAmB,IAAIplB,IAC7B,IAAKjG,EAAIorB,EAAIprB,GAAKirB,EAAIjrB,IAAK,CACvB,MAAM6qB,EAAaR,EAAGrqB,GAAK4L,EACrByb,GAAegD,EAAGrqB,IAClB2K,GAAe0f,EAAGrqB,IACH,MAAjB6qB,EAAUjqB,KAIVyqB,EAAiBjjB,IAAIyiB,EAAUjqB,IAAKZ,GAK5C,IAAIsrB,EACAC,EAAU,EACd,MAAMC,EAAcP,EAAKG,EAAK,EAC9B,IAAIK,GAAQ,EAERC,EAAmB,EAMvB,MAAMC,EAAwB,IAAIta,MAAMma,GACxC,IAAKxrB,EAAI,EAAGA,EAAIwrB,EAAaxrB,IACzB2rB,EAAsB3rB,GAAK,EAC/B,IAAKA,EAAImrB,EAAInrB,GAAKgrB,EAAIhrB,IAAK,CACvB,MAAM4rB,EAAYzB,EAAGnqB,GACrB,GAAIurB,GAAWC,EAAa,CAExBpJ,EAAQwJ,EAAWnG,EAAiBjD,GAAgB,GACpD,SAEJ,IAAIqJ,EACJ,GAAqB,MAAjBD,EAAUhrB,IACVirB,EAAWR,EAAiB3jB,IAAIkkB,EAAUhrB,UAI1C,IAAK0qB,EAAIF,EAAIE,GAAKL,EAAIK,IAClB,GAAsC,IAAlCK,EAAsBL,EAAIF,IAC1B3X,GAAgBmY,EAAWvB,EAAGiB,IAAK,CACnCO,EAAWP,EACX,WAIK3jB,IAAbkkB,EACAzJ,EAAQwJ,EAAWnG,EAAiBjD,GAAgB,IAGpDmJ,EAAsBE,EAAWT,GAAMprB,EAAI,EACvC6rB,GAAYH,EACZA,EAAmBG,EAGnBJ,GAAQ,EAEZrG,EAAMwG,EAAWvB,EAAGwB,GAAWtG,EAAW,KAAME,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GACtG2f,KAKR,MAAMO,EAA6BL,EAC7BM,GAAYJ,GACZ7N,EAAAA,GAGN,IAFAwN,EAAIQ,EAA2B3tB,OAAS,EAEnC6B,EAAIwrB,EAAc,EAAGxrB,GAAK,EAAGA,IAAK,CACnC,MAAMgsB,EAAYZ,EAAKprB,EACjB6qB,EAAYR,EAAG2B,GACfxG,EAASwG,EAAY,EAAIjB,EAAKV,EAAG2B,EAAY,GAAGvf,GAAKqe,EAC1B,IAA7Ba,EAAsB3rB,GAEtBolB,EAAM,KAAMyF,EAAWtF,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,GAE3F6f,IAIDH,EAAI,GAAKtrB,IAAM8rB,EAA2BR,GAC1CW,EAAKpB,EAAWtF,EAAWC,EAAQ,GAGnC8F,QAMdW,EAAO,CAACltB,EAAOwmB,EAAWC,EAAQ0G,EAAU1J,EAAiB,QAC/D,MAAM,GAAE/V,EAAF,KAAMxN,EAAN,WAAYuM,EAAZ,SAAwBM,EAAxB,UAAkCrB,GAAc1L,EACtD,GAAgB,EAAZ0L,EAEA,YADAwhB,EAAKltB,EAAMX,UAAUsO,QAAS6Y,EAAWC,EAAQ0G,GAGrD,GAAgB,IAAZzhB,EAEA,YADA1L,EAAM+N,SAASmf,KAAK1G,EAAWC,EAAQ0G,GAG3C,GAAgB,GAAZzhB,EAEA,YADAxL,EAAKgtB,KAAKltB,EAAOwmB,EAAWC,EAAQa,IAGxC,GAAIpnB,IAASuW,GAAU,CACnBoO,EAAWnX,EAAI8Y,EAAWC,GAC1B,IAAK,IAAIxlB,EAAI,EAAGA,EAAI8L,EAAS3N,OAAQ6B,IACjCisB,EAAKngB,EAAS9L,GAAIulB,EAAWC,EAAQ0G,GAGzC,YADAtI,EAAW7kB,EAAMymB,OAAQD,EAAWC,GAGxC,GAAIvmB,IAAS+mB,GAET,YADAM,EAAevnB,EAAOwmB,EAAWC,GAIrC,MAAM2G,EAA8B,IAAbD,GACP,EAAZzhB,GACAe,EACJ,GAAI2gB,EACA,GAAiB,IAAbD,EACA1gB,EAAW+I,YAAY9H,GACvBmX,EAAWnX,EAAI8Y,EAAWC,GAC1BhW,IAAsB,IAAMhE,EAAWiJ,MAAMhI,IAAK+V,OAEjD,CACD,MAAM,MAAExN,EAAF,WAASnB,EAAT,WAAqBF,GAAenI,EACpCqE,EAAS,IAAM+T,EAAWnX,EAAI8Y,EAAWC,GACzC4G,EAAe,KACjBpX,EAAMvI,GAAI,KACNoD,IACA8D,GAAcA,QAGlBE,EACAA,EAAWpH,EAAIoD,EAAQuc,GAGvBA,SAKRxI,EAAWnX,EAAI8Y,EAAWC,IAG5BpD,EAAU,CAACrjB,EAAO0mB,EAAiBjD,EAAgB6J,GAAW,EAAOzgB,GAAY,KACnF,MAAM,KAAE3M,EAAF,MAAQqB,EAAR,IAAesiB,EAAf,SAAoB9W,EAApB,gBAA8B6Z,EAA9B,UAA+Clb,EAA/C,UAA0DyB,EAA1D,KAAqEZ,GAASvM,EAKpF,GAHW,MAAP6jB,GACAP,GAAOO,EAAK,KAAMJ,EAAgBzjB,GAAO,GAE7B,IAAZ0L,EAEA,YADAgb,EAAgBtc,IAAImjB,WAAWvtB,GAGnC,MAAMwtB,EAA+B,EAAZ9hB,GAA+Ba,EAClDkhB,GAAyB9W,GAAe3W,GAC9C,IAAI4nB,EAKJ,GAJI6F,IACC7F,EAAYrmB,GAASA,EAAMmsB,uBAC5BzF,GAAgBL,EAAWlB,EAAiB1mB,GAEhC,EAAZ0L,EACAiiB,EAAiB3tB,EAAMX,UAAWokB,EAAgB6J,OAEjD,CACD,GAAgB,IAAZ5hB,EAEA,YADA1L,EAAM+N,SAASsV,QAAQI,EAAgB6J,GAGvCE,GACAvM,GAAoBjhB,EAAO,KAAM0mB,EAAiB,iBAEtC,GAAZhb,EACA1L,EAAME,KAAK4Q,OAAO9Q,EAAO0mB,EAAiBjD,EAAgB5W,EAAWya,GAAWgG,GAE3E1G,IAEJ1mB,IAASuW,IACLtJ,EAAY,GAAiB,GAAZA,GAEtB4a,EAAgBnB,EAAiBF,EAAiBjD,GAAgB,GAAO,IAEnEvjB,IAASuW,IACN,IAATtJ,IAEEN,GAAyB,GAAZnB,IACfqc,EAAgBhb,EAAU2Z,EAAiBjD,GAE3C6J,GACAxc,EAAO9Q,IAGVytB,IACA7F,EAAYrmB,GAASA,EAAMqsB,mBAC5BJ,IACA/c,IAAsB,KAClBmX,GAAaK,GAAgBL,EAAWlB,EAAiB1mB,GACzDwtB,GACIvM,GAAoBjhB,EAAO,KAAM0mB,EAAiB,eACvDjD,IAGL3S,EAAS9Q,IACX,MAAM,KAAEE,EAAF,GAAQwN,EAAR,OAAY+Y,EAAZ,WAAoBha,GAAezM,EACzC,GAAIE,IAASuW,GAET,YADAoX,EAAengB,EAAI+Y,GAGvB,GAAIvmB,IAAS+mB,GAET,YADAQ,EAAiBznB,GAGrB,MAAM8tB,EAAgB,KAClBhJ,EAAWpX,GACPjB,IAAeA,EAAWmG,WAAanG,EAAWmI,YAClDnI,EAAWmI,cAGnB,GAAsB,EAAlB5U,EAAM0L,WACNe,IACCA,EAAWmG,UAAW,CACvB,MAAM,MAAEqD,EAAF,WAASnB,GAAerI,EACxB4gB,EAAe,IAAMpX,EAAMvI,EAAIogB,GACjChZ,EACAA,EAAW9U,EAAM0N,GAAIogB,EAAeT,GAGpCA,SAIJS,KAGFD,EAAiB,CAAC5qB,EAAKgC,KAGzB,IAAIuiB,EACJ,MAAOvkB,IAAQgC,EACXuiB,EAAO1B,EAAgB7iB,GACvB6hB,EAAW7hB,GACXA,EAAMukB,EAEV1C,EAAW7f,IAET0oB,EAAmB,CAACxuB,EAAUskB,EAAgB6J,KAIhD,MAAM,IAAES,EAAF,MAAOld,EAAP,OAAcgE,EAAd,QAAsBlH,EAAtB,GAA+BqgB,GAAO7uB,EAExC4uB,IACAnD,EAAAA,EAAAA,IAAemD,GAGnBld,EAAMD,OAGFiE,IAEAA,EAAO5N,QAAS,EAChBoc,EAAQ1V,EAASxO,EAAUskB,EAAgB6J,IAG3CU,GACAvd,GAAsBud,EAAIvK,GAE9BhT,IAAsB,KAClBtR,EAAS2Q,aAAc,IACxB2T,GAICA,GACAA,EAAezV,gBACdyV,EAAe3T,aAChB3Q,EAAS+qB,WACR/qB,EAASmrB,eACVnrB,EAAS8uB,aAAexK,EAAeyK,YACvCzK,EAAe0K,OACa,IAAxB1K,EAAe0K,MACf1K,EAAenf,YAOrByjB,EAAkB,CAAChb,EAAU2Z,EAAiBjD,EAAgB6J,GAAW,EAAOzgB,GAAY,EAAO7H,EAAQ,KAC7G,IAAK,IAAI/D,EAAI+D,EAAO/D,EAAI8L,EAAS3N,OAAQ6B,IACrCoiB,EAAQtW,EAAS9L,GAAIylB,EAAiBjD,EAAgB6J,EAAUzgB,IAGlEga,EAAkB7mB,GACE,EAAlBA,EAAM0L,UACCmb,EAAgB7mB,EAAMX,UAAUsO,SAErB,IAAlB3N,EAAM0L,UACC1L,EAAM+N,SAASyZ,OAEnB1B,EAAiB9lB,EAAMymB,QAAUzmB,EAAM0N,IAE5CvC,EAAS,CAACnL,EAAOwmB,EAAWtD,KACjB,MAATljB,EACIwmB,EAAU4H,QACV/K,EAAQmD,EAAU4H,OAAQ,KAAM,MAAM,GAI1C/H,EAAMG,EAAU4H,QAAU,KAAMpuB,EAAOwmB,EAAW,KAAM,KAAM,KAAMtD,GAExExc,IACA8f,EAAU4H,OAASpuB,GAEjBsnB,GAAY,CACd5iB,EAAG2hB,EACH2H,GAAI3K,EACJ7G,EAAG0Q,EACHjR,EAAGnL,EACHud,GAAIzE,EACJ0E,GAAIxG,EACJyG,GAAI1F,EACJ2F,IAAK5F,EACL6F,EAAG5H,EACH6H,EAAGnlB,GAEP,IAAIuY,GACAmJ,GAIJ,OAHIxG,KACC3C,GAASmJ,IAAexG,EAAmB6C,KAEzC,CACHnc,OAAAA,EACA2W,QAAAA,GACA6M,UAAW9M,GAAa1W,EAAQ2W,KAGxC,SAAS2G,IAAc,OAAE7Z,EAAF,OAAUiG,GAAU+Z,GACvChgB,EAAOpJ,aAAeqP,EAAOrP,aAAeopB,EAahD,SAASlF,GAAuBpD,EAAIC,EAAIsI,GAAU,GAC9C,MAAMC,EAAMxI,EAAGvZ,SACTgiB,EAAMxI,EAAGxZ,SACf,IAAI5G,EAAAA,EAAAA,IAAQ2oB,KAAQ3oB,EAAAA,EAAAA,IAAQ4oB,GACxB,IAAK,IAAI9tB,EAAI,EAAGA,EAAI6tB,EAAI1vB,OAAQ6B,IAAK,CAGjC,MAAMmqB,EAAK0D,EAAI7tB,GACf,IAAIqqB,EAAKyD,EAAI9tB,GACM,EAAfqqB,EAAG5f,YAAgC4f,EAAG1E,mBAClC0E,EAAGne,WAAa,GAAsB,KAAjBme,EAAGne,aACxBme,EAAKyD,EAAI9tB,GAAKqnB,GAAeyG,EAAI9tB,IACjCqqB,EAAG5d,GAAK0d,EAAG1d,IAEVmhB,GACDnF,GAAuB0B,EAAIE,KAW/C,SAAS0B,GAAYgC,GACjB,MAAMtqB,EAAIsqB,EAAIptB,QACR4J,EAAS,CAAC,GAChB,IAAIvK,EAAGsrB,EAAG7B,EAAGpa,EAAG2K,EAChB,MAAMgU,EAAMD,EAAI5vB,OAChB,IAAK6B,EAAI,EAAGA,EAAIguB,EAAKhuB,IAAK,CACtB,MAAMiuB,EAAOF,EAAI/tB,GACjB,GAAa,IAATiuB,EAAY,CAEZ,GADA3C,EAAI/gB,EAAOA,EAAOpM,OAAS,GACvB4vB,EAAIzC,GAAK2C,EAAM,CACfxqB,EAAEzD,GAAKsrB,EACP/gB,EAAOpL,KAAKa,GACZ,SAEJypB,EAAI,EACJpa,EAAI9E,EAAOpM,OAAS,EACpB,MAAOsrB,EAAIpa,EACP2K,EAAKyP,EAAIpa,GAAM,EACX0e,EAAIxjB,EAAOyP,IAAMiU,EACjBxE,EAAIzP,EAAI,EAGR3K,EAAI2K,EAGRiU,EAAOF,EAAIxjB,EAAOkf,MACdA,EAAI,IACJhmB,EAAEzD,GAAKuK,EAAOkf,EAAI,IAEtBlf,EAAOkf,GAAKzpB,IAIxBypB,EAAIlf,EAAOpM,OACXkR,EAAI9E,EAAOkf,EAAI,GACf,MAAOA,KAAM,EACTlf,EAAOkf,GAAKpa,EACZA,EAAI5L,EAAE4L,GAEV,OAAO9E,EAGX,MAAM2jB,GAAcjvB,GAASA,EAAKkvB,aAC5BC,GAAsB9tB,GAAUA,IAAUA,EAAM+tB,UAA+B,KAAnB/tB,EAAM+tB,UAClEC,GAAepY,GAAiC,qBAAfqY,YAA8BrY,aAAkBqY,WACjFC,GAAgB,CAACluB,EAAOmuB,KAC1B,MAAMC,EAAiBpuB,GAASA,EAAMmb,GACtC,IAAIza,EAAAA,EAAAA,IAAS0tB,GAAiB,CAC1B,GAAKD,EAMA,CACD,MAAMvY,EAASuY,EAAOC,GAQtB,OAAOxY,EAXP,OAAO,KAkBX,OAAOwY,GAGTC,GAAe,CACjBR,cAAc,EACdtjB,QAAQwa,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,EAAWya,GAChG,MAAQgH,GAAIxG,EAAeyG,GAAI1F,EAAe2F,IAAK5F,EAAoB8F,GAAG,OAAE9J,EAAF,cAAUiL,EAAV,WAAyB1K,EAAzB,cAAqCE,IAAoBiC,EAC7HgI,EAAWD,GAAmB9I,EAAGhlB,OACvC,IAAI,UAAEmK,EAAF,SAAaqB,EAAb,gBAAuB6Z,GAAoBL,EAO/C,GAAU,MAAND,EAAY,CAEZ,MAAM+D,EAAe9D,EAAG7Y,GAElByX,EAAW,IACX2K,EAAcvJ,EAAGE,OAEjBtB,EAAW,IACjBP,EAAOyF,EAAa7D,EAAWC,GAC/B7B,EAAOkL,EAAYtJ,EAAWC,GAC9B,MAAMtP,EAAUoP,EAAGpP,OAASsY,GAAclJ,EAAGhlB,MAAOsuB,GAC9CE,EAAgBxJ,EAAGwJ,aAAe5K,EAAW,IAC/ChO,IACAyN,EAAOmL,EAAc5Y,GAErB+L,EAAQA,GAASqM,GAAYpY,IAKjC,MAAM4L,EAAQ,CAACyD,EAAWC,KAGN,GAAZ/a,GACAoc,EAAc/a,EAAUyZ,EAAWC,EAAQC,EAAiBjD,EAAgBP,EAAOyD,EAAc9Z,IAGrGyiB,EACAvM,EAAMyD,EAAWsJ,GAEZ3Y,GACL4L,EAAM5L,EAAQ4Y,OAGjB,CAEDxJ,EAAG7Y,GAAK4Y,EAAG5Y,GACX,MAAMoiB,EAAcvJ,EAAGE,OAASH,EAAGG,OAC7BtP,EAAUoP,EAAGpP,OAASmP,EAAGnP,OACzB4Y,EAAgBxJ,EAAGwJ,aAAezJ,EAAGyJ,aACrCC,EAAcX,GAAmB/I,EAAG/kB,OACpC0uB,EAAmBD,EAAcxJ,EAAYrP,EAC7C+Y,EAAgBF,EAAcF,EAAaC,EAajD,GAZA7M,EAAQA,GAASqM,GAAYpY,GACzByP,GAEAgC,EAAmBtC,EAAGM,gBAAiBA,EAAiBqJ,EAAkBvJ,EAAiBjD,EAAgBP,EAAOyD,GAIlH+C,GAAuBpD,EAAIC,GAAI,IAEzB1Z,GACNgc,EAAcvC,EAAIC,EAAI0J,EAAkBC,EAAexJ,EAAiBjD,EAAgBP,EAAOyD,GAAc,GAE7G2I,EACKU,GAGDG,GAAa5J,EAAIC,EAAWsJ,EAAYxI,EAAW,QAKvD,IAAKf,EAAGhlB,OAASglB,EAAGhlB,MAAMmb,OAAS4J,EAAG/kB,OAAS+kB,EAAG/kB,MAAMmb,IAAK,CACzD,MAAM0T,EAAc7J,EAAGpP,OAASsY,GAAclJ,EAAGhlB,MAAOsuB,GACpDO,GACAD,GAAa5J,EAAI6J,EAAY,KAAM9I,EAAW,QAM7C0I,GAGLG,GAAa5J,EAAIpP,EAAQ4Y,EAAczI,EAAW,KAKlExW,OAAO9Q,EAAO0mB,EAAiBjD,EAAgB5W,GAAamhB,GAAI3K,EAASqL,GAAK5d,OAAQgU,IAAgBwI,GAClG,MAAM,UAAE5hB,EAAF,SAAaqB,EAAb,OAAuB0Z,EAAvB,aAA+BsJ,EAA/B,OAA6C5Y,EAA7C,MAAqD5V,GAAUvB,EAKrE,GAJImX,GACA2N,EAAWiL,IAGXzC,IAAa+B,GAAmB9tB,MAChCujB,EAAW2B,GACK,GAAZ/a,GACA,IAAK,IAAIzK,EAAI,EAAGA,EAAI8L,EAAS3N,OAAQ6B,IAAK,CACtC,MAAM8S,EAAQhH,EAAS9L,GACvBoiB,EAAQtP,EAAO2S,EAAiBjD,GAAgB,IAAQ1P,EAAM6S,mBAK9EsG,KAAMiD,GACNrO,QAASuO,IAEb,SAASF,GAAanwB,EAAOwmB,EAAWuF,GAAgB2C,GAAG,OAAE9J,GAAUpI,EAAG0Q,GAAQC,EAAW,GAExE,IAAbA,GACAvI,EAAO5kB,EAAM+vB,aAAcvJ,EAAWuF,GAE1C,MAAM,GAAEre,EAAF,OAAM+Y,EAAN,UAAc/a,EAAd,SAAyBqB,EAAzB,MAAmCxL,GAAUvB,EAC7CswB,EAAyB,IAAbnD,EAQlB,GANImD,GACA1L,EAAOlX,EAAI8Y,EAAWuF,KAKrBuE,GAAajB,GAAmB9tB,KAEjB,GAAZmK,EACA,IAAK,IAAIzK,EAAI,EAAGA,EAAI8L,EAAS3N,OAAQ6B,IACjCisB,EAAKngB,EAAS9L,GAAIulB,EAAWuF,EAAc,GAKnDuE,GACA1L,EAAO6B,EAAQD,EAAWuF,GAGlC,SAASsE,GAAgBE,EAAMvwB,EAAO0mB,EAAiBjD,EAAgBkD,EAAc9Z,GAAa6hB,GAAG,YAAE7I,EAAF,WAAeF,EAAf,cAA2BkK,IAAmBW,GAC/I,MAAMrZ,EAAUnX,EAAMmX,OAASsY,GAAczvB,EAAMuB,MAAOsuB,GAC1D,GAAI1Y,EAAQ,CAGR,MAAMsZ,EAAatZ,EAAOuZ,MAAQvZ,EAAOwZ,WACnB,GAAlB3wB,EAAM0L,YACF2jB,GAAmBrvB,EAAMuB,QACzBvB,EAAMymB,OAAS+J,EAAgB3K,EAAY0K,GAAOvwB,EAAO2lB,EAAW4K,GAAO7J,EAAiBjD,EAAgBkD,EAAc9Z,GAC1H7M,EAAM+vB,aAAeU,IAGrBzwB,EAAMymB,OAASZ,EAAY0K,GAC3BvwB,EAAM+vB,aAAeS,EAAgBC,EAAYzwB,EAAOmX,EAAQuP,EAAiBjD,EAAgBkD,EAAc9Z,IAEnHsK,EAAOuZ,KACH1wB,EAAM+vB,cAAgBlK,EAAY7lB,EAAM+vB,eAGpD,OAAO/vB,EAAMymB,QAAUZ,EAAY7lB,EAAMymB,QAG7C,MAAMmK,GAAWhB,GAEXiB,GAAa,aAKnB,SAASC,GAAiBvuB,EAAMwuB,GAC5B,OAAOC,GAAaH,GAAYtuB,GAAM,EAAMwuB,IAAuBxuB,EAEvE,MAAM0uB,GAAyBC,SAI/B,SAASC,GAAwB9xB,GAC7B,OAAI4C,EAAAA,EAAAA,IAAS5C,GACF2xB,GAAaH,GAAYxxB,GAAW,IAAUA,EAI7CA,GAAa4xB,GAU7B,SAASD,GAAa9wB,EAAMqC,EAAM6uB,GAAc,EAAML,GAAqB,GACvE,MAAM5xB,EAAWyK,GAA4BuE,GAC7C,GAAIhP,EAAU,CACV,MAAM0L,EAAY1L,EAASe,KAE3B,GAAIA,IAAS2wB,GAAY,CACrB,MAAMQ,EAAWC,GAAiBzmB,GAClC,GAAIwmB,IACCA,IAAa9uB,GACV8uB,KAAappB,EAAAA,EAAAA,IAAS1F,IACtB8uB,KAAaE,EAAAA,EAAAA,KAAWtpB,EAAAA,EAAAA,IAAS1F,KACrC,OAAOsI,EAGf,MAAMpJ,EAGN6C,GAAQnF,EAASe,IAAS2K,EAAU3K,GAAOqC,IAEvC+B,GAAQnF,EAASI,WAAWW,GAAOqC,GACvC,OAAKd,GAAOsvB,EAEDlmB,EASJpJ,GAOf,SAAS6C,GAAQktB,EAAUjvB,GACvB,OAAQivB,IACHA,EAASjvB,IACNivB,GAASvpB,EAAAA,EAAAA,IAAS1F,KAClBivB,GAASD,EAAAA,EAAAA,KAAWtpB,EAAAA,EAAAA,IAAS1F,MAGzC,MAAMkU,GAAWya,YAA8DtoB,GACzEke,GAAOoK,YAA0DtoB,GACjEsD,GAAUglB,YAA6DtoB,GACvEqe,GAASiK,YAA4DtoB,GAMrEoD,GAAa,GACnB,IAAIylB,GAAe,KAiBnB,SAASC,GAAUC,GAAkB,GACjC3lB,GAAW5L,KAAMqxB,GAAeE,EAAkB,KAAO,IAE7D,SAASC,KACL5lB,GAAW6lB,MACXJ,GAAezlB,GAAWA,GAAW5M,OAAS,IAAM,KAMxD,IAAI0yB,GAAqB,EAiBzB,SAASrnB,GAAiB1I,GACtB+vB,IAAsB/vB,EAE1B,SAASgwB,GAAW/xB,GAWhB,OATAA,EAAM4mB,gBACFkL,GAAqB,EAAIL,IAAgB1S,EAAAA,GAAY,KAEzD6S,KAGIE,GAAqB,GAAKL,IAC1BA,GAAarxB,KAAKJ,GAEfA,EAKX,SAASgyB,GAAmB9xB,EAAMqB,EAAOwL,EAAUI,EAAWI,EAAc7B,GACxE,OAAOqmB,GAAWE,GAAgB/xB,EAAMqB,EAAOwL,EAAUI,EAAWI,EAAc7B,GAAW,IASjG,SAASwmB,GAAYhyB,EAAMqB,EAAOwL,EAAUI,EAAWI,GACnD,OAAOwkB,GAAW9lB,GAAY/L,EAAMqB,EAAOwL,EAAUI,EAAWI,GAAc,IAElF,SAAS4kB,GAAQpwB,GACb,QAAOA,IAA8B,IAAtBA,EAAMqwB,YAEzB,SAAS1d,GAAgB4R,EAAIC,GAOzB,OAAOD,EAAGpmB,OAASqmB,EAAGrmB,MAAQomB,EAAGzkB,MAAQ0kB,EAAG1kB,IAYhD,MAKM2b,GAAqB,cACrB6U,GAAe,EAAGxwB,IAAAA,KAAiB,MAAPA,EAAcA,EAAM,KAChDywB,GAAe,EAAGzO,IAAAA,EAAK0O,QAAAA,EAASC,QAAAA,KACnB,MAAP3O,GACF5hB,EAAAA,EAAAA,IAAS4hB,KAAQzhB,EAAAA,EAAAA,IAAMyhB,KAAQvhB,EAAAA,EAAAA,IAAWuhB,GACtC,CAAE5iB,EAAG2I,EAA0BqS,EAAG4H,EAAKQ,EAAGkO,EAASpO,IAAKqO,GACxD3O,EACJ,KAEV,SAASoO,GAAgB/xB,EAAMqB,EAAQ,KAAMwL,EAAW,KAAMI,EAAY,EAAGI,EAAe,KAAM7B,GAAYxL,IAASuW,GAAW,EAAI,GAAiBgc,GAAc,EAAOC,GAAgC,GACxM,MAAM1yB,EAAQ,CACVoyB,aAAa,EACbO,UAAU,EACVzyB,KAAAA,EACAqB,MAAAA,EACAM,IAAKN,GAAS8wB,GAAa9wB,GAC3BsiB,IAAKtiB,GAAS+wB,GAAa/wB,GAC3B2mB,QAASre,EACT8c,aAAc,KACd5Z,SAAAA,EACA1N,UAAW,KACX0O,SAAU,KACVqI,UAAW,KACXC,WAAY,KACZ9J,KAAM,KACNE,WAAY,KACZiB,GAAI,KACJ+Y,OAAQ,KACRtP,OAAQ,KACR4Y,aAAc,KACd6C,YAAa,EACblnB,UAAAA,EACAyB,UAAAA,EACAI,aAAAA,EACAqZ,gBAAiB,KACjBrnB,WAAY,MAoChB,OAlCImzB,GACAG,GAAkB7yB,EAAO+M,GAET,IAAZrB,GACAxL,EAAK4yB,UAAU9yB,IAGd+M,IAGL/M,EAAM0L,YAAazJ,EAAAA,EAAAA,IAAS8K,GACtB,EACA,IAON+kB,GAAqB,IAEpBW,GAEDhB,KAKCzxB,EAAMmN,UAAY,GAAiB,EAAZzB,IAGJ,KAApB1L,EAAMmN,WACNskB,GAAarxB,KAAKJ,GAEfA,EAEX,MAAMiM,GAAwF8mB,GAC9F,SAASA,GAAa7yB,EAAMqB,EAAQ,KAAMwL,EAAW,KAAMI,EAAY,EAAGI,EAAe,KAAMklB,GAAc,GAOzG,GANKvyB,GAAQA,IAAS+wB,KAIlB/wB,EAAOgM,IAEPimB,GAAQjyB,GAAO,CAIf,MAAM8yB,EAAS1mB,GAAWpM,EAAMqB,GAAO,GAIvC,OAHIwL,GACA8lB,GAAkBG,EAAQjmB,GAEvBimB,EAOX,GAJIC,GAAiB/yB,KACjBA,EAAOA,EAAKgzB,WAGZ3xB,EAAO,CAEPA,EAAQ4xB,GAAmB5xB,GAC3B,IAAMwnB,MAAOqK,EAAT,MAAgBpK,GAAUznB,EAC1B6xB,KAAUnxB,EAAAA,EAAAA,IAASmxB,KACnB7xB,EAAMwnB,OAAQsK,EAAAA,EAAAA,IAAeD,KAE7B7hB,EAAAA,EAAAA,IAASyX,MAGLsK,EAAAA,EAAAA,IAAQtK,MAAW7iB,EAAAA,EAAAA,IAAQ6iB,KAC3BA,GAAQ9f,EAAAA,EAAAA,IAAO,GAAI8f,IAEvBznB,EAAMynB,OAAQuK,EAAAA,EAAAA,IAAevK,IAIrC,MAAMtd,GAAYzJ,EAAAA,EAAAA,IAAS/B,GACrB,EACA0N,GAAW1N,GACP,IACAivB,GAAWjvB,GACP,IACAqR,EAAAA,EAAAA,IAASrR,GACL,GACAoC,EAAAA,EAAAA,IAAWpC,GACP,EACA,EAQtB,OAAO+xB,GAAgB/xB,EAAMqB,EAAOwL,EAAUI,EAAWI,EAAc7B,EAAW+mB,GAAa,GAEnG,SAASU,GAAmB5xB,GACxB,OAAKA,GAEE+xB,EAAAA,EAAAA,IAAQ/xB,IAAUic,MAAqBjc,GACxC2H,EAAAA,EAAAA,IAAO,GAAI3H,GACXA,EAHK,KAKf,SAAS+K,GAAWtM,EAAOwzB,EAAYC,GAAW,GAG9C,MAAM,MAAElyB,EAAF,IAASsiB,EAAT,UAAc1W,EAAd,SAAyBJ,GAAa/M,EACtC0zB,EAAcF,EAAaG,GAAWpyB,GAAS,GAAIiyB,GAAcjyB,EACjEyxB,EAAS,CACXZ,aAAa,EACbO,UAAU,EACVzyB,KAAMF,EAAME,KACZqB,MAAOmyB,EACP7xB,IAAK6xB,GAAerB,GAAaqB,GACjC7P,IAAK2P,GAAcA,EAAW3P,IAItB4P,GAAY5P,GACN1d,EAAAA,EAAAA,IAAQ0d,GACJA,EAAIrX,OAAO8lB,GAAakB,IACxB,CAAC3P,EAAKyO,GAAakB,IACvBlB,GAAakB,GACrB3P,EACNqE,QAASloB,EAAMkoB,QACfvB,aAAc3mB,EAAM2mB,aACpB5Z,SAEMA,EACNoK,OAAQnX,EAAMmX,OACd4Y,aAAc/vB,EAAM+vB,aACpB6C,YAAa5yB,EAAM4yB,YACnBlnB,UAAW1L,EAAM0L,UAKjByB,UAAWqmB,GAAcxzB,EAAME,OAASuW,IACnB,IAAftJ,EACI,GACY,GAAZA,EACJA,EACNI,aAAcvN,EAAMuN,aACpBqZ,gBAAiB5mB,EAAM4mB,gBACvBrnB,WAAYS,EAAMT,WAClBgN,KAAMvM,EAAMuM,KACZE,WAAYzM,EAAMyM,WAKlBpN,UAAWW,EAAMX,UACjB0O,SAAU/N,EAAM+N,SAChBqI,UAAWpW,EAAMoW,WAAa9J,GAAWtM,EAAMoW,WAC/CC,WAAYrW,EAAMqW,YAAc/J,GAAWtM,EAAMqW,YACjD3I,GAAI1N,EAAM0N,GACV+Y,OAAQzmB,EAAMymB,QAElB,OAAOuM,EAgBX,SAASY,GAAgBC,EAAO,IAAKC,EAAO,GACxC,OAAO7nB,GAAY6a,GAAM,KAAM+M,EAAMC,GAKzC,SAASC,GAAkBC,EAASC,GAGhC,MAAMj0B,EAAQiM,GAAYgb,GAAQ,KAAM+M,GAExC,OADAh0B,EAAM4yB,YAAcqB,EACbj0B,EAKX,SAASk0B,GAAmBL,EAAO,GAGnCM,GAAU,GACN,OAAOA,GACAzC,KAAaQ,GAAYhmB,GAAS,KAAM2nB,IACzC5nB,GAAYC,GAAS,KAAM2nB,GAErC,SAASjoB,GAAemI,GACpB,OAAa,MAATA,GAAkC,mBAAVA,EAEjB9H,GAAYC,KAEd/F,EAAAA,EAAAA,IAAQ4N,GAEN9H,GAAYwK,GAAU,KAE7B1C,EAAMnS,SAEgB,kBAAVmS,EAGLuU,GAAevU,GAIf9H,GAAY6a,GAAM,KAAMrU,OAAOsB,IAI9C,SAASuU,GAAevU,GACpB,OAAoB,OAAbA,EAAMrG,IAAeqG,EAAMqgB,KAAOrgB,EAAQzH,GAAWyH,GAEhE,SAAS8e,GAAkB7yB,EAAO+M,GAC9B,IAAI7M,EAAO,EACX,MAAM,UAAEwL,GAAc1L,EACtB,GAAgB,MAAZ+M,EACAA,EAAW,UAEV,IAAI5G,EAAAA,EAAAA,IAAQ4G,GACb7M,EAAO,QAEN,GAAwB,kBAAb6M,EAAuB,CACnC,GAAgB,GAAZrB,EAAmD,CAEnD,MAAM2oB,EAAOtnB,EAAS6G,QAOtB,YANIygB,IAEAA,EAAK1pB,KAAO0pB,EAAK7pB,IAAK,GACtBqoB,GAAkB7yB,EAAOq0B,KACzBA,EAAK1pB,KAAO0pB,EAAK7pB,IAAK,KAIzB,CACDtK,EAAO,GACP,MAAMo0B,EAAWvnB,EAASwT,EACrB+T,GAAc9W,MAAqBzQ,EAGlB,IAAbunB,GAAkC1qB,IAGE,IAArCA,EAAyBoB,MAAMuV,EAC/BxT,EAASwT,EAAI,GAGbxT,EAASwT,EAAI,EACbvgB,EAAMmN,WAAa,OAVvBJ,EAASqT,KAAOxW,QAenBtH,EAAAA,EAAAA,IAAWyK,IAChBA,EAAW,CAAE6G,QAAS7G,EAAUqT,KAAMxW,GACtC1J,EAAO,KAGP6M,EAAW0F,OAAO1F,GAEF,GAAZrB,GACAxL,EAAO,GACP6M,EAAW,CAAC6mB,GAAgB7mB,KAG5B7M,EAAO,GAGfF,EAAM+M,SAAWA,EACjB/M,EAAM0L,WAAaxL,EAEvB,SAASyzB,MAAc10B,GACnB,MAAMsX,EAAM,GACZ,IAAK,IAAItV,EAAI,EAAGA,EAAIhC,EAAKG,OAAQ6B,IAAK,CAClC,MAAMszB,EAAUt1B,EAAKgC,GACrB,IAAK,MAAMY,KAAO0yB,EACd,GAAY,UAAR1yB,EACI0U,EAAIwS,QAAUwL,EAAQxL,QACtBxS,EAAIwS,OAAQsK,EAAAA,EAAAA,IAAe,CAAC9c,EAAIwS,MAAOwL,EAAQxL,cAGlD,GAAY,UAARlnB,EACL0U,EAAIyS,OAAQuK,EAAAA,EAAAA,IAAe,CAAChd,EAAIyS,MAAOuL,EAAQvL,aAE9C,IAAIxf,EAAAA,EAAAA,IAAK3H,GAAM,CAChB,MAAMuiB,EAAW7N,EAAI1U,GACf2yB,EAAWD,EAAQ1yB,IACrB2yB,GACApQ,IAAaoQ,IACXruB,EAAAA,EAAAA,IAAQie,IAAaA,EAAS7e,SAASivB,KACzCje,EAAI1U,GAAOuiB,EACL,GAAG5X,OAAO4X,EAAUoQ,GACpBA,OAGG,KAAR3yB,IACL0U,EAAI1U,GAAO0yB,EAAQ1yB,IAI/B,OAAO0U,EAEX,SAAS0R,GAAgB3S,EAAMnW,EAAUa,EAAO2M,EAAY,MACxDhK,EAA2B2S,EAAMnW,EAAU,EAAoB,CAC3Da,EACA2M,IAOR,SAAS8nB,GAAWzlB,EAAQ0lB,EAAYlsB,EAAOtC,GAC3C,IAAIqQ,EACJ,MAAM7N,EAAUF,GAASA,EAAMtC,GAC/B,IAAIC,EAAAA,EAAAA,IAAQ6I,KAAW/M,EAAAA,EAAAA,IAAS+M,GAAS,CACrCuH,EAAM,IAAIjE,MAAMtD,EAAO5P,QACvB,IAAK,IAAI6B,EAAI,EAAG0zB,EAAI3lB,EAAO5P,OAAQ6B,EAAI0zB,EAAG1zB,IACtCsV,EAAItV,GAAKyzB,EAAW1lB,EAAO/N,GAAIA,OAAG2H,EAAWF,GAAUA,EAAOzH,SAGjE,GAAsB,kBAAX+N,EAAqB,CAC5BlD,EAILyK,EAAM,IAAIjE,MAAMtD,GAChB,IAAK,IAAI/N,EAAI,EAAGA,EAAI+N,EAAQ/N,IACxBsV,EAAItV,GAAKyzB,EAAWzzB,EAAI,EAAGA,OAAG2H,EAAWF,GAAUA,EAAOzH,SAG7D,IAAIsQ,EAAAA,EAAAA,IAASvC,GACd,GAAIA,EAAOkiB,OAAO0D,UACdre,EAAMjE,MAAMyJ,KAAK/M,GAAQ,CAAC6lB,EAAM5zB,IAAMyzB,EAAWG,EAAM5zB,OAAG2H,EAAWF,GAAUA,EAAOzH,UAErF,CACD,MAAMS,EAAOC,OAAOD,KAAKsN,GACzBuH,EAAM,IAAIjE,MAAM5Q,EAAKtC,QACrB,IAAK,IAAI6B,EAAI,EAAG0zB,EAAIjzB,EAAKtC,OAAQ6B,EAAI0zB,EAAG1zB,IAAK,CACzC,MAAMY,EAAMH,EAAKT,GACjBsV,EAAItV,GAAKyzB,EAAW1lB,EAAOnN,GAAMA,EAAKZ,EAAGyH,GAAUA,EAAOzH,UAKlEsV,EAAM,GAKV,OAHI/N,IACAA,EAAMtC,GAASqQ,GAEZA,EAOX,SAASue,GAAY9pB,EAAO+pB,GACxB,IAAK,IAAI9zB,EAAI,EAAGA,EAAI8zB,EAAa31B,OAAQ6B,IAAK,CAC1C,MAAMozB,EAAOU,EAAa9zB,GAE1B,IAAIkF,EAAAA,EAAAA,IAAQkuB,GACR,IAAK,IAAI9H,EAAI,EAAGA,EAAI8H,EAAKj1B,OAAQmtB,IAC7BvhB,EAAMqpB,EAAK9H,GAAGhqB,MAAQ8xB,EAAK9H,GAAG/pB,QAG7B6xB,IAELrpB,EAAMqpB,EAAK9xB,MAAQ8xB,EAAK7xB,IAGhC,OAAOwI,EAOX,SAASgqB,GAAWhqB,EAAOzI,EAAMhB,EAAQ,GAGzC0zB,EAAUC,GACN,GAAItrB,EAAyBurB,KACzB,OAAOlpB,GAAY,OAAiB,YAAT1J,EAAqB,KAAO,CAAEA,KAAAA,GAAQ0yB,GAAYA,KAEjF,IAAIZ,EAAOrpB,EAAMzI,GAWb8xB,GAAQA,EAAK1pB,KACb0pB,EAAK7pB,IAAK,GAEdknB,KACA,MAAM0D,EAAmBf,GAAQgB,GAAiBhB,EAAK9yB,IACjD+zB,EAAWpD,GAAYzb,GAAU,CAAE5U,IAAKN,EAAMM,KAAQ,IAAGU,KAAU6yB,IAAqBH,EAAWA,IAAa,IAAKG,GAAgC,IAAZpqB,EAAMuV,EAC/I,IACC,GAOP,OANK2U,GAAaI,EAASpN,UACvBoN,EAAS3O,aAAe,CAAC2O,EAASpN,QAAU,OAE5CmM,GAAQA,EAAK1pB,KACb0pB,EAAK7pB,IAAK,GAEP8qB,EAEX,SAASD,GAAiBE,GACtB,OAAOA,EAAOnpB,MAAK2H,IACVoe,GAAQpe,IAETA,EAAM7T,OAASgM,MAEf6H,EAAM7T,OAASuW,KACd4e,GAAiBthB,EAAMhH,aAI1BwoB,EACA,KAwBV,MAAMC,GAAqBv0B,GAClBA,EAEDw0B,GAAoBx0B,GACbmiB,GAAeniB,IAAMA,EAAEnB,MAC3B01B,GAAkBv0B,EAAEJ,QAHhB,KAKT60B,IAAsBxsB,EAAAA,EAAAA,IAAOvH,OAAO2M,OAAO,MAAO,CACpDqnB,EAAG10B,GAAKA,EACR20B,IAAK30B,GAAKA,EAAEjB,MAAM0N,GAClBmoB,MAAO50B,GAAKA,EAAEoK,KACdyqB,OAAQ70B,GAA2EA,EAAEM,MACrFw0B,OAAQ90B,GAA2EA,EAAEgK,MACrF+qB,OAAQ/0B,GAA2EA,EAAE+J,MACrFirB,MAAOh1B,GAA0EA,EAAE8iB,KACnFmS,QAASj1B,GAAKu0B,GAAkBv0B,EAAEJ,QAClCs1B,MAAOl1B,GAAKu0B,GAAkBv0B,EAAEkL,MAChCiqB,MAAOn1B,GAAKA,EAAEiK,KACdmrB,SAAUp1B,GAA4B8X,GAAqB9X,GAC3Dq1B,aAAcr1B,GAAK,IAAMoE,EAASpE,EAAE4T,QACpC0hB,UAAWt1B,GAAKwD,EAASI,KAAK5D,EAAEnB,OAChC02B,OAAQv1B,GAA4B8P,GAAclM,KAAK5D,KAErDw1B,GAA8B,CAChC9tB,KAAM4X,EAAGphB,GAAY0C,GACjB,MAAM,IAAEuI,EAAF,WAAOkB,EAAP,KAAmBD,EAAnB,MAAyB9J,EAAzB,YAAgCm1B,EAAhC,KAA6Cx2B,EAA7C,WAAmDX,GAAeJ,EAqBxE,IAAIw3B,EACJ,GAAe,MAAX90B,EAAI,GAAY,CAChB,MAAM4sB,EAAIiI,EAAY70B,GACtB,QAAU+G,IAAN6lB,EACA,OAAQA,GACJ,KAAK,EACD,OAAOnjB,EAAWzJ,GACtB,KAAK,EACD,OAAOwJ,EAAKxJ,GAChB,KAAK,EACD,OAAOuI,EAAIvI,GACf,KAAK,EACD,OAAON,EAAMM,OAIpB,IAAIyJ,IAAehE,EAAAA,KAAaoC,EAAAA,EAAAA,IAAO4B,EAAYzJ,GAEpD,OADA60B,EAAY70B,GAAO,EACZyJ,EAAWzJ,GAEjB,GAAIwJ,IAAS/D,EAAAA,KAAaoC,EAAAA,EAAAA,IAAO2B,EAAMxJ,GAExC,OADA60B,EAAY70B,GAAO,EACZwJ,EAAKxJ,GAEX,IAGJ80B,EAAkBx3B,EAAS4L,aAAa,MACrCrB,EAAAA,EAAAA,IAAOitB,EAAiB90B,GAExB,OADA60B,EAAY70B,GAAO,EACZN,EAAMM,GAEZ,GAAIuI,IAAQ9C,EAAAA,KAAaoC,EAAAA,EAAAA,IAAOU,EAAKvI,GAEtC,OADA60B,EAAY70B,GAAO,EACZuI,EAAIvI,GAEkBgX,KAC7B6d,EAAY70B,GAAO,IAG3B,MAAM+0B,EAAelB,GAAoB7zB,GACzC,IAAIg1B,EAAWpV,EAEf,OAAImV,GACY,WAAR/0B,IACAi1B,EAAAA,EAAAA,GAAM33B,EAAU,MAAiB0C,GAG9B+0B,EAAaz3B,KAIvB03B,EAAY32B,EAAK62B,gBACbF,EAAYA,EAAUh1B,IAChBg1B,EAEFzsB,IAAQ9C,EAAAA,KAAaoC,EAAAA,EAAAA,IAAOU,EAAKvI,IAEtC60B,EAAY70B,GAAO,EACZuI,EAAIvI,KAIb4f,EAAmBliB,EAAWC,OAAOiiB,kBACnC/X,EAAAA,EAAAA,IAAO+X,EAAkB5f,GAEd4f,EAAiB5f,QAL3B,IA0BTwH,KAAMkX,EAAGphB,GAAY0C,EAAKE,GACtB,MAAM,KAAEsJ,EAAF,WAAQC,EAAR,IAAoBlB,GAAQjL,EAClC,OAAImM,IAAehE,EAAAA,KAAaoC,EAAAA,EAAAA,IAAO4B,EAAYzJ,IAC/CyJ,EAAWzJ,GAAOE,GACX,GAEFsJ,IAAS/D,EAAAA,KAAaoC,EAAAA,EAAAA,IAAO2B,EAAMxJ,IACxCwJ,EAAKxJ,GAAOE,GACL,KAEF2H,EAAAA,EAAAA,IAAOvK,EAASoC,MAAOM,MAKjB,MAAXA,EAAI,MAAcA,EAAID,MAAM,KAAMzC,MAe9BiL,EAAIvI,GAAOE,GAGZ,KAEXyP,KAAM+O,GAAG,KAAElV,EAAF,WAAQC,EAAR,YAAoBorB,EAApB,IAAiCtsB,EAAjC,WAAsC7K,EAAtC,aAAkDwL,IAAkBlJ,GACzE,IAAI80B,EACJ,QAAUD,EAAY70B,IACjBwJ,IAAS/D,EAAAA,KAAaoC,EAAAA,EAAAA,IAAO2B,EAAMxJ,IACnCyJ,IAAehE,EAAAA,KAAaoC,EAAAA,EAAAA,IAAO4B,EAAYzJ,KAC9C80B,EAAkB5rB,EAAa,MAAOrB,EAAAA,EAAAA,IAAOitB,EAAiB90B,KAChE6H,EAAAA,EAAAA,IAAOU,EAAKvI,KACZ6H,EAAAA,EAAAA,IAAOgsB,GAAqB7zB,KAC5B6H,EAAAA,EAAAA,IAAOnK,EAAWC,OAAOiiB,iBAAkB5f,IAEnDqZ,eAAe/D,EAAQtV,EAAKm1B,GAOxB,OANsB,MAAlBA,EAAWruB,IACX/D,KAAKyE,IAAI8N,EAAQtV,EAAKm1B,EAAWruB,MAAO,MAEf,MAApBquB,EAAWj1B,OAChB6C,KAAKyE,IAAI8N,EAAQtV,EAAKm1B,EAAWj1B,MAAO,MAErCuZ,QAAQJ,eAAe/D,EAAQtV,EAAKm1B,KAqFnD,MAAMC,GAAkB7V,KACxB,IAAI8V,GAAQ,EACZ,SAASnN,GAAwB/pB,EAAOa,EAAQkN,GAC5C,MAAM7N,EAAOF,EAAME,KAEbX,GAAcsB,EAASA,EAAOtB,WAAaS,EAAMT,aAAe03B,GAChE93B,EAAW,CACbyiB,IAAKsV,KACLl3B,MAAAA,EACAE,KAAAA,EACAW,OAAAA,EACAtB,WAAAA,EACA4M,KAAM,KACNqb,KAAM,KACN7Z,QAAS,KACTiB,OAAQ,KACRiG,OAAQ,KACRhE,MAAO,IAAIsmB,EAAAA,IAAY,GACvBhsB,OAAQ,KACRrL,MAAO,KACP6b,QAAS,KACTyb,YAAa,KACbtsB,UAAW,KACXsD,SAAUvN,EAASA,EAAOuN,SAAWzM,OAAO2M,OAAO/O,EAAW6O,UAC9DsoB,YAAa,KACbtrB,YAAa,GAEboP,WAAY,KACZC,WAAY,KAEZ1P,aAAc6T,GAAsB1e,EAAMX,GAC1C6N,aAAc/E,EAAsBnI,EAAMX,GAE1C2L,KAAM,KACN9C,QAAS,KAETqV,cAAenW,EAAAA,GAEfiE,aAAcrL,EAAKqL,aAEnBnB,IAAK9C,EAAAA,GACL+D,KAAM/D,EAAAA,GACN/F,MAAO+F,EAAAA,GACP2D,MAAO3D,EAAAA,GACP0D,MAAO1D,EAAAA,GACPyc,KAAMzc,EAAAA,GACNgE,WAAYhE,EAAAA,GACZ+vB,aAAc,KAEdtpB,SAAAA,EACAkgB,WAAYlgB,EAAWA,EAASmgB,UAAY,EAC5ChE,SAAU,KACVI,eAAe,EAGf5Z,WAAW,EACXZ,aAAa,EACb2H,eAAe,EACf6f,GAAI,KACJrc,EAAG,KACH8P,GAAI,KACJvO,EAAG,KACHiO,GAAI,KACJC,EAAG,KACHsD,GAAI,KACJD,IAAK,KACLwJ,GAAI,KACJ1wB,EAAG,KACH2wB,IAAK,KACLC,IAAK,KACLp0B,GAAI,KACJq0B,GAAI,MAcR,OARIv4B,EAASiL,IAAM,CAAEmW,EAAGphB,GAExBA,EAASgN,KAAOtL,EAASA,EAAOsL,KAAOhN,EACvCA,EAAS+L,KAAO/D,EAAOtC,KAAK,KAAM1F,GAE9Ba,EAAM23B,IACN33B,EAAM23B,GAAGx4B,GAENA,EAEX,IAAIgP,GAAkB,KACtB,MAAMuF,GAAqB,IAAMvF,IAAmBvE,EAC9CsH,GAAsB/R,IACxBgP,GAAkBhP,EAClBA,EAAS0R,MAAM+mB,MAEbzmB,GAAuB,KACzBhD,IAAmBA,GAAgB0C,MAAMgnB,MACzC1pB,GAAkB,MAStB,SAASsnB,GAAoBt2B,GACzB,OAAkC,EAA3BA,EAASa,MAAM0L,UAE1B,IAiHIosB,GACAC,GAlHA7nB,IAAwB,EAC5B,SAAS+Z,GAAe9qB,EAAUme,GAAQ,GACtCpN,GAAwBoN,EACxB,MAAM,MAAE/b,EAAF,SAASwL,GAAa5N,EAASa,MAC/Bqd,EAAaoY,GAAoBt2B,GACvCie,GAAUje,EAAUoC,EAAO8b,EAAYC,GACvCgD,GAAUnhB,EAAU4N,GACpB,MAAMirB,EAAc3a,EACd4a,GAAuB94B,EAAUme,QACjC1U,EAEN,OADAsH,IAAwB,EACjB8nB,EAEX,SAASC,GAAuB94B,EAAUme,GACtC,MAAMzS,EAAY1L,EAASe,KAwB3Bf,EAASu3B,YAAc/0B,OAAO2M,OAAO,MAGrCnP,EAASW,OAAQo4B,EAAAA,EAAAA,IAAQ,IAAIC,MAAMh5B,EAASiL,IAAKqsB,KAKjD,MAAM,MAAEhjB,GAAU5I,EAClB,GAAI4I,EAAO,CACP,MAAM4jB,EAAgBl4B,EAASk4B,aAC3B5jB,EAAMrU,OAAS,EAAIg5B,GAAmBj5B,GAAY,KACtD+R,GAAmB/R,IACnBD,EAAAA,EAAAA,MACA,MAAM84B,EAAcp4B,EAAsB6T,EAAOtU,EAAU,EAAwB,CAA6EA,EAASoC,MAAO81B,IAGhL,IAFA92B,EAAAA,EAAAA,MACA4Q,MACIvO,EAAAA,EAAAA,IAAUo1B,GAAc,CAExB,GADAA,EAAYrzB,KAAKwM,GAAsBA,IACnCmM,EAEA,OAAO0a,EACFrzB,MAAM0zB,IACPC,GAAkBn5B,EAAUk5B,EAAgB/a,MAE3Cza,OAAM01B,IACP71B,EAAY61B,EAAGp5B,EAAU,MAM7BA,EAAS+qB,SAAW8N,OAIxBM,GAAkBn5B,EAAU64B,EAAa1a,QAI7Ckb,GAAqBr5B,EAAUme,GAGvC,SAASgb,GAAkBn5B,EAAU64B,EAAa1a,IAC1Chb,EAAAA,EAAAA,IAAW01B,GAEP74B,EAASe,KAAKu4B,kBAGdt5B,EAASu5B,UAAYV,EAGrB74B,EAASgM,OAAS6sB,GAGjBzmB,EAAAA,EAAAA,IAASymB,KAUd74B,EAASmM,YAAaqtB,EAAAA,EAAAA,IAAUX,IAQpCQ,GAAqBr5B,EAAUme,GAkBnC,SAASkb,GAAqBr5B,EAAUme,EAAOsb,GAC3C,MAAM/tB,EAAY1L,EAASe,KAG3B,IAAKf,EAASgM,OAAQ,CAGlB,IAAKmS,GAASwa,KAAYjtB,EAAUM,OAAQ,CACxC,MAAM0tB,EAAWhuB,EAAUguB,SAC3B,GAAIA,EAAU,CACL/sB,EAGL,MAAM,gBAAEgtB,EAAF,gBAAmBpX,GAAoBviB,EAASI,WAAWC,QAC3D,WAAEu5B,EAAYrX,gBAAiBsX,GAA6BnuB,EAC5DouB,GAAuB/vB,EAAAA,EAAAA,KAAOA,EAAAA,EAAAA,IAAO,CACvC4vB,gBAAAA,EACAC,WAAAA,GACDrX,GAAkBsX,GACrBnuB,EAAUM,OAAS2sB,GAAQe,EAAUI,IAM7C95B,EAASgM,OAAUN,EAAUM,QAAUnE,EAAAA,GAInC+wB,IACAA,GAAiB54B,GAKrB+R,GAAmB/R,IACnBD,EAAAA,EAAAA,MACA4Z,GAAa3Z,IACboB,EAAAA,EAAAA,MACA4Q,KAiBR,SAAS+nB,GAAiB/5B,GACtB,OAAO,IAAIg5B,MAAMh5B,EAAS8L,MAgBpB,CACEtC,IAAIwO,EAAQtV,GAER,OADAi1B,EAAAA,EAAAA,GAAM33B,EAAU,MAAiB,UAC1BgY,EAAOtV,MAI9B,SAASu2B,GAAmBj5B,GACxB,MAAMob,EAASoB,IAIXxc,EAASwc,QAAUA,GAAW,IAElC,IAAI1Q,EAkBA,MAAO,CACCA,YACA,OAAOA,IAAUA,EAAQiuB,GAAiB/5B,KAE9C6L,MAAO7L,EAAS6L,MAChBE,KAAM/L,EAAS+L,KACfqP,OAAAA,GAIZ,SAAS6I,GAAejkB,GACpB,GAAIA,EAASwc,QACT,OAAQxc,EAASi4B,cACZj4B,EAASi4B,YAAc,IAAIe,OAAMQ,EAAAA,EAAAA,KAAUT,EAAAA,EAAAA,IAAQ/4B,EAASwc,UAAW,CACpEhT,IAAIwO,EAAQtV,GACR,OAAIA,KAAOsV,EACAA,EAAOtV,GAETA,KAAO6zB,GACLA,GAAoB7zB,GAAK1C,QAD/B,MAOzB,MAAMg6B,GAAa,kBACbC,GAAYC,GAAQA,EAAI5vB,QAAQ0vB,IAAYle,GAAKA,EAAEqe,gBAAe7vB,QAAQ,QAAS,IACzF,SAAS6nB,GAAiBzmB,GACtB,OAAOvI,EAAAA,EAAAA,IAAWuI,IACZA,EAAU0uB,aACV1uB,EAAUtI,KAGpB,SAAStC,GAAoBd,EAAU0L,EAAWzJ,GAAS,GACvD,IAAImB,EAAO+uB,GAAiBzmB,GAC5B,IAAKtI,GAAQsI,EAAU2uB,OAAQ,CAC3B,MAAMha,EAAQ3U,EAAU2uB,OAAOha,MAAM,mBACjCA,IACAjd,EAAOid,EAAM,IAGrB,IAAKjd,GAAQpD,GAAYA,EAAS0B,OAAQ,CAEtC,MAAM44B,EAAqBjI,IACvB,IAAK,MAAM3vB,KAAO2vB,EACd,GAAIA,EAAS3vB,KAASgJ,EAClB,OAAOhJ,GAInBU,EACIk3B,EAAkBt6B,EAASqb,YACvBrb,EAAS0B,OAAOX,KAAKsa,aAAeif,EAAkBt6B,EAASI,WAAWib,YAEtF,OAAOjY,EAAO62B,GAAS72B,GAAQnB,EAAU,MAAQ,YAErD,SAAS6xB,GAAiBlxB,GACtB,OAAOO,EAAAA,EAAAA,IAAWP,IAAU,cAAeA,EAG/C,MAAMmX,GAAY,CAACwgB,EAAiBC,KAEzBC,EAAAA,EAAAA,IAAWF,EAAiBC,EAAczpB,IA4JrD,SAAS8L,GAAE9b,EAAM25B,EAAiB9sB,GAC9B,MAAM4nB,EAAIjmB,UAAUtP,OACpB,OAAU,IAANu1B,GACIpjB,EAAAA,EAAAA,IAASsoB,MAAqB1zB,EAAAA,EAAAA,IAAQ0zB,GAElC1H,GAAQ0H,GACD5tB,GAAY/L,EAAM,KAAM,CAAC25B,IAG7B5tB,GAAY/L,EAAM25B,GAIlB5tB,GAAY/L,EAAM,KAAM25B,IAI/BlF,EAAI,EACJ5nB,EAAWuF,MAAMwnB,UAAUl4B,MAAMiK,KAAK6C,UAAW,GAEtC,IAANimB,GAAWxC,GAAQplB,KACxBA,EAAW,CAACA,IAETd,GAAY/L,EAAM25B,EAAiB9sB,IAI5BmkB,OAAiE,IAyOvF,MAAMzO,GAAU","sources":["webpack://microsoft-academy/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js"],"sourcesContent":["import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, reactive, shallowReactive, trigger, isProxy, shallowReadonly, track, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, def, isReservedProp, EMPTY_ARR, capitalize, toRawType, makeMap, isBuiltInDirective, NO, normalizeClass, normalizeStyle, isGloballyWhitelisted } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"sp\" /* SERVER_PREFETCH */]: 'serverPrefetch hook',\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(id) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < id ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n if (job.id == null) {\r\n queue.push(job);\r\n }\r\n else {\r\n queue.splice(findInsertionIndex(job.id), 0, job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > flushIndex) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex])) {\r\n continue;\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\r\n continue;\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n // conditional usage of checkRecursiveUpdate must be determined out of\r\n // try ... catch block since Rollup by default de-optimizes treeshaking\r\n // inside try-catch. This can leave all warning code unshaked. Although\r\n // they would get eventually shaken by a minifier like terser, some minifiers\r\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\r\n const check = (process.env.NODE_ENV !== 'production')\r\n ? (job) => checkRecursiveUpdates(seen, job)\r\n : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\r\n continue;\r\n }\r\n // console.log(`running:`, job.id)\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length ||\r\n pendingPreFlushCbs.length ||\r\n pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n return true;\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n // eslint-disable-next-line no-restricted-globals\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(options || {}, { flush: 'post' })\r\n : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(options || {}, { flush: 'sync' })\r\n : { flush: 'sync' }));\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n const instance = currentInstance;\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow$1(source);\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some(isReactive);\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n let onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isInSSRComponentSetup) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = NOOP;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return NOOP;\r\n }\r\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = effect.run();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n : hasChanged(newValue, oldValue)) ||\r\n (false )) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n effect.run();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job; // the scheduler function gets called directly\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => {\r\n if (!instance || instance.isMounted) {\r\n queuePreFlushCb(job);\r\n }\r\n else {\r\n // with 'pre' option, the first call must happen before\r\n // the component is mounted so it is called synchronously.\r\n job();\r\n }\r\n };\r\n }\r\n const effect = new ReactiveEffect(getter, scheduler);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = effect.run();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\r\n }\r\n else {\r\n effect.run();\r\n }\r\n return () => {\r\n effect.stop();\r\n if (instance && instance.scope) {\r\n remove(instance.scope.effects, effect);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? source.includes('.')\r\n ? createPathGetter(publicThis, source)\r\n : () => publicThis[source]\r\n : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n }\r\n else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const cur = currentInstance;\r\n setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n if (cur) {\r\n setCurrentInstance(cur);\r\n }\r\n else {\r\n unsetCurrentInstance();\r\n }\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split('.');\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, seen) {\r\n if (!isObject(value) || value[\"__v_skip\" /* SKIP */]) {\r\n return value;\r\n }\r\n seen = seen || new Set();\r\n if (seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else if (isPlainObject(value)) {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' && mode !== 'out-in' && mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest =\r\n loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n name: 'AsyncComponentWrapper',\r\n __asyncLoader: load,\r\n get __asyncResolved() {\r\n return resolvedComp;\r\n },\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (isInSSRComponentSetup)) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\r\n // parent is keep-alive, force update so the loaded component's\r\n // name is taken into account\r\n queueJob(instance.parent.update);\r\n }\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\r\n // for KeepAlive, we just need to render its children\r\n if (!sharedContext.renderer) {\r\n return slots.default;\r\n }\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n instance.__v_cache = cache;\r\n }\r\n const parentSuspense = instance.suspense;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense, true);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n // for async components, name check should be based in its loaded\r\n // inner component if available\r\n const name = getComponentName(isAsyncWrapper(vnode)\r\n ? vnode.type.__asyncResolved || {}\r\n : comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').includes(name);\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n return hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n unsetCurrentInstance();\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\r\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* SERVER_PREFETCH */) &&\r\n injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onServerPrefetch = createHook(\"sp\" /* SERVER_PREFETCH */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nfunction onErrorCaptured(hook, target = currentInstance) {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n}\n\nfunction createDuplicateChecker() {\r\n const cache = Object.create(null);\r\n return (type, key) => {\r\n if (cache[key]) {\r\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\r\n }\r\n else {\r\n cache[key] = type;\r\n }\r\n };\r\n}\r\nlet shouldCacheAccess = true;\r\nfunction applyOptions(instance) {\r\n const options = resolveMergedOptions(instance);\r\n const publicThis = instance.proxy;\r\n const ctx = instance.ctx;\r\n // do not cache property access on public proxy during state initialization\r\n shouldCacheAccess = false;\r\n // call beforeCreate first before accessing other options since\r\n // the hook may mutate resolved options (#2791)\r\n if (options.beforeCreate) {\r\n callHook(options.beforeCreate, instance, \"bc\" /* BEFORE_CREATE */);\r\n }\r\n const { \r\n // state\r\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \r\n // lifecycle\r\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \r\n // public API\r\n expose, inheritAttrs, \r\n // assets\r\n components, directives, filters } = options;\r\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const [propsOptions] = instance.propsOptions;\r\n if (propsOptions) {\r\n for (const key in propsOptions) {\r\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\r\n }\r\n }\r\n }\r\n // options initialization order (to be consistent with Vue 2):\r\n // - props (already done outside of this function)\r\n // - inject\r\n // - methods\r\n // - data (deferred since it relies on `this` access)\r\n // - computed\r\n // - watch (deferred since it relies on `this` access)\r\n if (injectOptions) {\r\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\r\n }\r\n if (methods) {\r\n for (const key in methods) {\r\n const methodHandler = methods[key];\r\n if (isFunction(methodHandler)) {\r\n // In dev mode, we use the `createRenderContext` function to define\r\n // methods to the proxy target, and those are read-only but\r\n // reconfigurable, so it needs to be redefined here\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n Object.defineProperty(ctx, key, {\r\n value: methodHandler.bind(publicThis),\r\n configurable: true,\r\n enumerable: true,\r\n writable: true\r\n });\r\n }\r\n else {\r\n ctx[key] = methodHandler.bind(publicThis);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\r\n `Did you reference the function correctly?`);\r\n }\r\n }\r\n }\r\n if (dataOptions) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\r\n warn(`The data option must be a function. ` +\r\n `Plain object usage is no longer supported.`);\r\n }\r\n const data = dataOptions.call(publicThis, publicThis);\r\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\r\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\r\n `intend to perform data fetching before component renders, use ` +\r\n `async setup() + .`);\r\n }\r\n if (!isObject(data)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\r\n }\r\n else {\r\n instance.data = reactive(data);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n for (const key in data) {\r\n checkDuplicateProperties(\"Data\" /* DATA */, key);\r\n // expose data on ctx during dev\r\n if (key[0] !== '$' && key[0] !== '_') {\r\n Object.defineProperty(ctx, key, {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => data[key],\r\n set: NOOP\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // state initialization complete at this point - start caching access\r\n shouldCacheAccess = true;\r\n if (computedOptions) {\r\n for (const key in computedOptions) {\r\n const opt = computedOptions[key];\r\n const get = isFunction(opt)\r\n ? opt.bind(publicThis, publicThis)\r\n : isFunction(opt.get)\r\n ? opt.get.bind(publicThis, publicThis)\r\n : NOOP;\r\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\r\n warn(`Computed property \"${key}\" has no getter.`);\r\n }\r\n const set = !isFunction(opt) && isFunction(opt.set)\r\n ? opt.set.bind(publicThis)\r\n : (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\r\n }\r\n : NOOP;\r\n const c = computed({\r\n get,\r\n set\r\n });\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => c.value,\r\n set: v => (c.value = v)\r\n });\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\r\n }\r\n }\r\n }\r\n if (watchOptions) {\r\n for (const key in watchOptions) {\r\n createWatcher(watchOptions[key], ctx, publicThis, key);\r\n }\r\n }\r\n if (provideOptions) {\r\n const provides = isFunction(provideOptions)\r\n ? provideOptions.call(publicThis)\r\n : provideOptions;\r\n Reflect.ownKeys(provides).forEach(key => {\r\n provide(key, provides[key]);\r\n });\r\n }\r\n if (created) {\r\n callHook(created, instance, \"c\" /* CREATED */);\r\n }\r\n function registerLifecycleHook(register, hook) {\r\n if (isArray(hook)) {\r\n hook.forEach(_hook => register(_hook.bind(publicThis)));\r\n }\r\n else if (hook) {\r\n register(hook.bind(publicThis));\r\n }\r\n }\r\n registerLifecycleHook(onBeforeMount, beforeMount);\r\n registerLifecycleHook(onMounted, mounted);\r\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\r\n registerLifecycleHook(onUpdated, updated);\r\n registerLifecycleHook(onActivated, activated);\r\n registerLifecycleHook(onDeactivated, deactivated);\r\n registerLifecycleHook(onErrorCaptured, errorCaptured);\r\n registerLifecycleHook(onRenderTracked, renderTracked);\r\n registerLifecycleHook(onRenderTriggered, renderTriggered);\r\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\r\n registerLifecycleHook(onUnmounted, unmounted);\r\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\r\n if (isArray(expose)) {\r\n if (expose.length) {\r\n const exposed = instance.exposed || (instance.exposed = {});\r\n expose.forEach(key => {\r\n Object.defineProperty(exposed, key, {\r\n get: () => publicThis[key],\r\n set: val => (publicThis[key] = val)\r\n });\r\n });\r\n }\r\n else if (!instance.exposed) {\r\n instance.exposed = {};\r\n }\r\n }\r\n // options that are handled when creating the instance but also need to be\r\n // applied from mixins\r\n if (render && instance.render === NOOP) {\r\n instance.render = render;\r\n }\r\n if (inheritAttrs != null) {\r\n instance.inheritAttrs = inheritAttrs;\r\n }\r\n // asset options.\r\n if (components)\r\n instance.components = components;\r\n if (directives)\r\n instance.directives = directives;\r\n}\r\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\r\n if (isArray(injectOptions)) {\r\n injectOptions = normalizeInject(injectOptions);\r\n }\r\n for (const key in injectOptions) {\r\n const opt = injectOptions[key];\r\n let injected;\r\n if (isObject(opt)) {\r\n if ('default' in opt) {\r\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\r\n }\r\n else {\r\n injected = inject(opt.from || key);\r\n }\r\n }\r\n else {\r\n injected = inject(opt);\r\n }\r\n if (isRef(injected)) {\r\n // TODO remove the check in 3.3\r\n if (unwrapRef) {\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => injected.value,\r\n set: v => (injected.value = v)\r\n });\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\r\n `and no longer needs \\`.value\\` in the next minor release. ` +\r\n `To opt-in to the new behavior now, ` +\r\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\r\n `temporary and will not be needed in the future.)`);\r\n }\r\n ctx[key] = injected;\r\n }\r\n }\r\n else {\r\n ctx[key] = injected;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\r\n }\r\n }\r\n}\r\nfunction callHook(hook, instance, type) {\r\n callWithAsyncErrorHandling(isArray(hook)\r\n ? hook.map(h => h.bind(instance.proxy))\r\n : hook.bind(instance.proxy), instance, type);\r\n}\r\nfunction createWatcher(raw, ctx, publicThis, key) {\r\n const getter = key.includes('.')\r\n ? createPathGetter(publicThis, key)\r\n : () => publicThis[key];\r\n if (isString(raw)) {\r\n const handler = ctx[raw];\r\n if (isFunction(handler)) {\r\n watch(getter, handler);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\r\n }\r\n }\r\n else if (isFunction(raw)) {\r\n watch(getter, raw.bind(publicThis));\r\n }\r\n else if (isObject(raw)) {\r\n if (isArray(raw)) {\r\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\r\n }\r\n else {\r\n const handler = isFunction(raw.handler)\r\n ? raw.handler.bind(publicThis)\r\n : ctx[raw.handler];\r\n if (isFunction(handler)) {\r\n watch(getter, handler, raw);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\r\n }\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch option: \"${key}\"`, raw);\r\n }\r\n}\r\n/**\r\n * Resolve merged options and cache it on the component.\r\n * This is done only once per-component since the merging does not involve\r\n * instances.\r\n */\r\nfunction resolveMergedOptions(instance) {\r\n const base = instance.type;\r\n const { mixins, extends: extendsOptions } = base;\r\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\r\n const cached = cache.get(base);\r\n let resolved;\r\n if (cached) {\r\n resolved = cached;\r\n }\r\n else if (!globalMixins.length && !mixins && !extendsOptions) {\r\n {\r\n resolved = base;\r\n }\r\n }\r\n else {\r\n resolved = {};\r\n if (globalMixins.length) {\r\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\r\n }\r\n mergeOptions(resolved, base, optionMergeStrategies);\r\n }\r\n cache.set(base, resolved);\r\n return resolved;\r\n}\r\nfunction mergeOptions(to, from, strats, asMixin = false) {\r\n const { mixins, extends: extendsOptions } = from;\r\n if (extendsOptions) {\r\n mergeOptions(to, extendsOptions, strats, true);\r\n }\r\n if (mixins) {\r\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\r\n }\r\n for (const key in from) {\r\n if (asMixin && key === 'expose') {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\r\n `It should only be declared in the base component itself.`);\r\n }\r\n else {\r\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\r\n to[key] = strat ? strat(to[key], from[key]) : from[key];\r\n }\r\n }\r\n return to;\r\n}\r\nconst internalOptionMergeStrats = {\r\n data: mergeDataFn,\r\n props: mergeObjectOptions,\r\n emits: mergeObjectOptions,\r\n // objects\r\n methods: mergeObjectOptions,\r\n computed: mergeObjectOptions,\r\n // lifecycle\r\n beforeCreate: mergeAsArray,\r\n created: mergeAsArray,\r\n beforeMount: mergeAsArray,\r\n mounted: mergeAsArray,\r\n beforeUpdate: mergeAsArray,\r\n updated: mergeAsArray,\r\n beforeDestroy: mergeAsArray,\r\n beforeUnmount: mergeAsArray,\r\n destroyed: mergeAsArray,\r\n unmounted: mergeAsArray,\r\n activated: mergeAsArray,\r\n deactivated: mergeAsArray,\r\n errorCaptured: mergeAsArray,\r\n serverPrefetch: mergeAsArray,\r\n // assets\r\n components: mergeObjectOptions,\r\n directives: mergeObjectOptions,\r\n // watch\r\n watch: mergeWatchOptions,\r\n // provide / inject\r\n provide: mergeDataFn,\r\n inject: mergeInject\r\n};\r\nfunction mergeDataFn(to, from) {\r\n if (!from) {\r\n return to;\r\n }\r\n if (!to) {\r\n return from;\r\n }\r\n return function mergedDataFn() {\r\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\r\n };\r\n}\r\nfunction mergeInject(to, from) {\r\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\r\n}\r\nfunction normalizeInject(raw) {\r\n if (isArray(raw)) {\r\n const res = {};\r\n for (let i = 0; i < raw.length; i++) {\r\n res[raw[i]] = raw[i];\r\n }\r\n return res;\r\n }\r\n return raw;\r\n}\r\nfunction mergeAsArray(to, from) {\r\n return to ? [...new Set([].concat(to, from))] : from;\r\n}\r\nfunction mergeObjectOptions(to, from) {\r\n return to ? extend(extend(Object.create(null), to), from) : from;\r\n}\r\nfunction mergeWatchOptions(to, from) {\r\n if (!to)\r\n return from;\r\n if (!from)\r\n return to;\r\n const merged = extend(Object.create(null), to);\r\n for (const key in from) {\r\n merged[key] = mergeAsArray(to[key], from[key]);\r\n }\r\n return merged;\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n instance.propsDefaults = Object.create(null);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // ensure all declared prop keys are present\r\n for (const key in instance.propsOptions[0]) {\r\n if (!(key in props)) {\r\n props[key] = undefined;\r\n }\r\n }\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n let key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\r\n }\r\n }\r\n else {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n if (setFullProps(instance, rawProps, props, attrs)) {\r\n hasAttrsChanged = true;\r\n }\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps ||\r\n (!hasOwn(rawProps, key) &&\r\n (!false ))) {\r\n delete attrs[key];\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n if (hasAttrsChanged) {\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n let rawCastValues;\r\n if (rawProps) {\r\n for (let key in rawProps) {\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n const value = rawProps[key];\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\r\n props[camelKey] = value;\r\n }\r\n else {\r\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\r\n }\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n if (!(key in attrs) || value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n const castValues = rawCastValues || EMPTY_OBJ;\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\r\n }\r\n }\r\n return hasAttrsChanged;\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction(defaultValue)) {\r\n const { propsDefaults } = instance;\r\n if (key in propsDefaults) {\r\n value = propsDefaults[key];\r\n }\r\n else {\r\n setCurrentInstance(instance);\r\n value = propsDefaults[key] = defaultValue.call(null, props);\r\n unsetCurrentInstance();\r\n }\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (isAbsent && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.propsCache;\r\n const cached = cache.get(comp);\r\n if (cached) {\r\n return cached;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, EMPTY_ARR);\r\n return EMPTY_ARR;\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const res = [normalized, needCastKeys];\r\n cache.set(comp, res);\r\n return res;\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : ctor === null ? 'null' : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n return expectedTypes.findIndex(t => isSameType(t, type));\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(rawProps, props, instance) {\r\n const resolvedValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else if (expectedType === 'null') {\r\n valid = value === null;\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => {\r\n const normalized = withCtx((...args) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(...args));\r\n }, ctx);\r\n normalized._c = false;\r\n return normalized;\r\n};\r\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !(false )) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !isKeepAlive(instance.vnode) &&\r\n !(false )) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // users can get the shallow readonly version of the slots object through `this.$slots`,\r\n // we should avoid the proxy object polluting the slots of the internal instance\r\n instance.slots = toRaw(children);\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children, optimized) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (optimized && type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n // #2893\r\n // when rendering the optimized slots by manually written render function,\r\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\r\n // i.e. let the `renderSlot` create the bailed Fragment\r\n if (!optimized && type === 1 /* STABLE */) {\r\n delete slots._;\r\n }\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n if (dir.deep) {\r\n traverse(value);\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n let hook = binding.dir[name];\r\n if (hook) {\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n resetTracking();\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n errorHandler: undefined,\r\n warnHandler: undefined,\r\n compilerOptions: {}\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null),\r\n optionsCache: new WeakMap(),\r\n propsCache: new WeakMap(),\r\n emitsCache: new WeakMap()\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n _instance: null,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate, isSVG) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer, isSVG);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer, isSVG);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = vnode.component;\r\n devtoolsInitApp(app, version);\r\n }\r\n return getExposeProxy(vnode.component) || vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = null;\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\n/**\r\n * Function for handling a template ref\r\n */\r\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\r\n if (isArray(rawRef)) {\r\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\r\n return;\r\n }\r\n if (isAsyncWrapper(vnode) && !isUnmount) {\r\n // when mounting async components, nothing needs to be done,\r\n // because the template ref is forwarded to inner component\r\n return;\r\n }\r\n const refValue = vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */\r\n ? getExposeProxy(vnode.component) || vnode.component.proxy\r\n : vnode.el;\r\n const value = isUnmount ? null : refValue;\r\n const { i: owner, r: ref } = rawRef;\r\n if ((process.env.NODE_ENV !== 'production') && !owner) {\r\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\r\n `A vnode with ref must be created inside the render function.`);\r\n return;\r\n }\r\n const oldRef = oldRawRef && oldRawRef.r;\r\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\r\n const setupState = owner.setupState;\r\n // dynamic ref changed. unset old ref\r\n if (oldRef != null && oldRef !== ref) {\r\n if (isString(oldRef)) {\r\n refs[oldRef] = null;\r\n if (hasOwn(setupState, oldRef)) {\r\n setupState[oldRef] = null;\r\n }\r\n }\r\n else if (isRef(oldRef)) {\r\n oldRef.value = null;\r\n }\r\n }\r\n if (isFunction(ref)) {\r\n callWithErrorHandling(ref, owner, 12 /* FUNCTION_REF */, [value, refs]);\r\n }\r\n else {\r\n const _isString = isString(ref);\r\n const _isRef = isRef(ref);\r\n if (_isString || _isRef) {\r\n const doSet = () => {\r\n if (rawRef.f) {\r\n const existing = _isString ? refs[ref] : ref.value;\r\n if (isUnmount) {\r\n isArray(existing) && remove(existing, refValue);\r\n }\r\n else {\r\n if (!isArray(existing)) {\r\n if (_isString) {\r\n refs[ref] = [refValue];\r\n }\r\n else {\r\n ref.value = [refValue];\r\n if (rawRef.k)\r\n refs[rawRef.k] = ref.value;\r\n }\r\n }\r\n else if (!existing.includes(refValue)) {\r\n existing.push(refValue);\r\n }\r\n }\r\n }\r\n else if (_isString) {\r\n refs[ref] = value;\r\n if (hasOwn(setupState, ref)) {\r\n setupState[ref] = value;\r\n }\r\n }\r\n else if (isRef(ref)) {\r\n ref.value = value;\r\n if (rawRef.k)\r\n refs[rawRef.k] = value;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\r\n }\r\n };\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\r\n }\r\n }\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if (!container.hasChildNodes()) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n flushPostFlushCbs();\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type.toLowerCase() !==\r\n node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n vnode.slotScopeIds = slotScopeIds;\r\n const container = parentNode(node);\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n // #3787\r\n // if component is async, it may get moved / unmounted before its\r\n // inner component is loaded, so we need to give it a placeholder\r\n // vnode that matches its adopted DOM.\r\n if (isAsyncWrapper(vnode)) {\r\n let subTree;\r\n if (isFragmentStart) {\r\n subTree = createVNode(Fragment);\r\n subTree.anchor = nextNode\r\n ? nextNode.previousSibling\r\n : container.lastChild;\r\n }\r\n else {\r\n subTree =\r\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\r\n }\r\n subTree.el = node;\r\n vnode.component.subTree = subTree;\r\n }\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\r\n // #4006 for form elements with non-string v-model value bindings\r\n // e.g.